diff --git a/distrib/sets/lists/base/ad.aarch64 b/distrib/sets/lists/base/ad.aarch64
index 32f42f2..2a28f83 100644
--- a/distrib/sets/lists/base/ad.aarch64
+++ b/distrib/sets/lists/base/ad.aarch64
@@ -316,7 +316,7 @@
 ./usr/lib/eabi/libusbhid.so.1			base-compat-shlib	compat,pic
 ./usr/lib/eabi/libusbhid.so.1.0			base-compat-shlib	compat,pic
 ./usr/lib/eabi/libutil.so.7			base-compat-shlib	compat,pic
-./usr/lib/eabi/libutil.so.7.21			base-compat-shlib	compat,pic
+./usr/lib/eabi/libutil.so.7.23			base-compat-shlib	compat,pic
 ./usr/lib/eabi/libwind.so.0			base-compat-shlib	compat,pic,kerberos
 ./usr/lib/eabi/libwind.so.0.0			base-compat-shlib	compat,pic,kerberos
 ./usr/lib/eabi/libwrap.so.1			base-compat-shlib	compat,pic
@@ -630,7 +630,7 @@
 #./usr/lib/eabihf/libusbhid.so.1			base-compat-shlib	compat,pic
 #./usr/lib/eabihf/libusbhid.so.1.0			base-compat-shlib	compat,pic
 #./usr/lib/eabihf/libutil.so.7			base-compat-shlib	compat,pic
-#./usr/lib/eabihf/libutil.so.7.21			base-compat-shlib	compat,pic
+#./usr/lib/eabihf/libutil.so.7.23			base-compat-shlib	compat,pic
 #./usr/lib/eabihf/libwind.so.0			base-compat-shlib	compat,pic,kerberos
 #./usr/lib/eabihf/libwind.so.0.0			base-compat-shlib	compat,pic,kerberos
 #./usr/lib/eabihf/libwrap.so.1			base-compat-shlib	compat,pic
@@ -944,7 +944,7 @@
 ./usr/lib/oabi/libusbhid.so.1			base-compat-shlib	compat,pic
 ./usr/lib/oabi/libusbhid.so.1.0			base-compat-shlib	compat,pic
 ./usr/lib/oabi/libutil.so.7			base-compat-shlib	compat,pic
-./usr/lib/oabi/libutil.so.7.21			base-compat-shlib	compat,pic
+./usr/lib/oabi/libutil.so.7.23			base-compat-shlib	compat,pic
 ./usr/lib/oabi/libwind.so.0			base-compat-shlib	compat,pic,kerberos
 ./usr/lib/oabi/libwind.so.0.0			base-compat-shlib	compat,pic,kerberos
 ./usr/lib/oabi/libwrap.so.1			base-compat-shlib	compat,pic
diff --git a/distrib/sets/lists/base/ad.arm b/distrib/sets/lists/base/ad.arm
index d940ad9..68a5866 100644
--- a/distrib/sets/lists/base/ad.arm
+++ b/distrib/sets/lists/base/ad.arm
@@ -330,7 +330,7 @@
 ./usr/lib/oabi/libusbhid.so.1			base-compat-shlib	compat,pic
 ./usr/lib/oabi/libusbhid.so.1.0			base-compat-shlib	compat,pic
 ./usr/lib/oabi/libutil.so.7			base-compat-shlib	compat,pic
-./usr/lib/oabi/libutil.so.7.21			base-compat-shlib	compat,pic
+./usr/lib/oabi/libutil.so.7.23			base-compat-shlib	compat,pic
 ./usr/lib/oabi/libwind.so.0			base-compat-shlib	compat,pic,kerberos
 ./usr/lib/oabi/libwind.so.0.0			base-compat-shlib	compat,pic,kerberos
 ./usr/lib/oabi/libwrap.so.1			base-compat-shlib	compat,pic
diff --git a/distrib/sets/lists/base/ad.mips b/distrib/sets/lists/base/ad.mips
index 7ba085a..9b67d53 100644
--- a/distrib/sets/lists/base/ad.mips
+++ b/distrib/sets/lists/base/ad.mips
@@ -324,7 +324,7 @@
 ./usr/lib/64/libusbhid.so.1			base-compat-shlib	compat,pic,arch64
 ./usr/lib/64/libusbhid.so.1.0			base-compat-shlib	compat,pic,arch64
 ./usr/lib/64/libutil.so.7			base-compat-shlib	compat,pic,arch64
-./usr/lib/64/libutil.so.7.21			base-compat-shlib	compat,pic,arch64
+./usr/lib/64/libutil.so.7.23			base-compat-shlib	compat,pic,arch64
 ./usr/lib/64/libwind.so.0			base-compat-shlib	compat,pic,kerberos,arch64
 ./usr/lib/64/libwind.so.0.0			base-compat-shlib	compat,pic,kerberos,arch64
 ./usr/lib/64/libwrap.so.1			base-compat-shlib	compat,pic,arch64
@@ -666,7 +666,7 @@
 ./usr/lib/o32/libusbhid.so.1			base-compat-shlib	compat,pic,arch64
 ./usr/lib/o32/libusbhid.so.1.0			base-compat-shlib	compat,pic,arch64
 ./usr/lib/o32/libutil.so.7			base-compat-shlib	compat,pic,arch64
-./usr/lib/o32/libutil.so.7.21			base-compat-shlib	compat,pic,arch64
+./usr/lib/o32/libutil.so.7.23			base-compat-shlib	compat,pic,arch64
 ./usr/lib/o32/libwind.so.0			base-compat-shlib	compat,pic,kerberos,arch64
 ./usr/lib/o32/libwind.so.0.0			base-compat-shlib	compat,pic,kerberos,arch64
 ./usr/lib/o32/libwrap.so.1			base-compat-shlib	compat,pic,arch64
diff --git a/distrib/sets/lists/base/ad.powerpc b/distrib/sets/lists/base/ad.powerpc
index 20526fd..e11f3a4 100644
--- a/distrib/sets/lists/base/ad.powerpc
+++ b/distrib/sets/lists/base/ad.powerpc
@@ -296,7 +296,7 @@
 ./usr/lib/powerpc/libusbhid.so.1		base-compat-shlib	compat,arch64,pic
 ./usr/lib/powerpc/libusbhid.so.1.0		base-compat-shlib	compat,arch64,pic
 ./usr/lib/powerpc/libutil.so.7			base-compat-shlib	compat,arch64,pic
-./usr/lib/powerpc/libutil.so.7.21		base-compat-shlib	compat,arch64,pic
+./usr/lib/powerpc/libutil.so.7.23		base-compat-shlib	compat,arch64,pic
 ./usr/lib/powerpc/libwind.so.0			base-compat-shlib	compat,arch64,pic,kerberos
 ./usr/lib/powerpc/libwind.so.0.0		base-compat-shlib	compat,arch64,pic,kerberos
 ./usr/lib/powerpc/libwrap.so.1			base-compat-shlib	compat,arch64,pic
diff --git a/distrib/sets/lists/base/md.amd64 b/distrib/sets/lists/base/md.amd64
index b69ee6c..6292a43 100644
--- a/distrib/sets/lists/base/md.amd64
+++ b/distrib/sets/lists/base/md.amd64
@@ -67,6 +67,12 @@
 ./usr/lib/i386/libamu.so.4.0			base-compat-shlib	compat,pic
 ./usr/lib/i386/libarchive.so.3			base-compat-shlib	compat,pic
 ./usr/lib/i386/libarchive.so.3.1		base-compat-shlib	compat,pic
+./usr/lib/i386/libavl.a				base-compat-lib		compat,zfs
+./usr/lib/i386/libavl.so			base-compat-shlib	compat,zfs
+./usr/lib/i386/libavl.so.0			base-compat-shlib	compat,zfs
+./usr/lib/i386/libavl.so.0.0			base-compat-shlib	compat,zfs
+./usr/lib/i386/libavl_p.a			base-compat-lib		compat,zfs
+./usr/lib/i386/libavl_pic.a			base-compat-lib		compat,zfs
 ./usr/lib/i386/libasan.so.0			base-compat-shlib	compat,pic,gcc=48
 ./usr/lib/i386/libasan.so.0.0			base-compat-shlib	compat,pic,gcc=48
 ./usr/lib/i386/libasn1.so.9			base-compat-shlib	compat,pic,kerberos
@@ -224,6 +230,12 @@
 ./usr/lib/i386/libnetpgpverify.so.4.0		base-compat-shlib	compat,pic
 ./usr/lib/i386/libnpf.so.0			base-compat-shlib	compat,pic,npf
 ./usr/lib/i386/libnpf.so.0.0			base-compat-shlib	compat,pic,npf
+./usr/lib/i386/libnvpair.a			base-compat-lib		compat,zfs
+./usr/lib/i386/libnvpair.so			base-compat-shlib	compat,zfs
+./usr/lib/i386/libnvpair.so.0			base-compat-shlib	compat,zfs
+./usr/lib/i386/libnvpair.so.0.0			base-compat-shlib	compat,zfs
+./usr/lib/i386/libnvpair_p.a			base-compat-lib		compat,zfs
+./usr/lib/i386/libnvpair_pic.a			base-compat-lib		compat,zfs
 ./usr/lib/i386/libobjc.so.3			base-compat-shlib	compat,pic,gcccmds,gcc=4
 ./usr/lib/i386/libobjc.so.3			base-compat-shlib	compat,pic,gcccmds,gcc=45
 ./usr/lib/i386/libobjc.so.3.0			base-compat-shlib	compat,pic,gcccmds,gcc=4
@@ -321,8 +333,20 @@
 ./usr/lib/i386/libukfs.so.1.0			base-compat-shlib	compat,pic,rump
 ./usr/lib/i386/libusbhid.so.1			base-compat-shlib	compat,pic
 ./usr/lib/i386/libusbhid.so.1.0			base-compat-shlib	compat,pic
+./usr/lib/i386/libumem.a			base-compat-lib		compat,zfs
+./usr/lib/i386/libumem.so			base-compat-shlib	compat,zfs
+./usr/lib/i386/libumem.so.0			base-compat-shlib	compat,zfs
+./usr/lib/i386/libumem.so.0.0			base-compat-shlib	compat,zfs
+./usr/lib/i386/libumem_p.a			base-compat-lib		compat,zfs
+./usr/lib/i386/libumem_pic.a			base-compat-lib		compat,zfs
 ./usr/lib/i386/libutil.so.7			base-compat-shlib	compat,pic
-./usr/lib/i386/libutil.so.7.21			base-compat-shlib	compat,pic
+./usr/lib/i386/libutil.so.7.23			base-compat-shlib	compat,pic
+./usr/lib/i386/libuutil.a			base-compat-lib		compat,zfs
+./usr/lib/i386/libuutil.so			base-compat-shlib	compat,zfs
+./usr/lib/i386/libuutil.so.0			base-compat-shlib	compat,zfs
+./usr/lib/i386/libuutil.so.0.0			base-compat-shlib	compat,zfs
+./usr/lib/i386/libuutil_p.a			base-compat-lib		compat,zfs
+./usr/lib/i386/libuutil_pic.a			base-compat-lib		compat,zfs
 ./usr/lib/i386/libwind.so.0			base-compat-shlib	compat,pic,kerberos
 ./usr/lib/i386/libwind.so.0.0			base-compat-shlib	compat,pic,kerberos
 ./usr/lib/i386/libwrap.so.1			base-compat-shlib	compat,pic
@@ -371,6 +395,30 @@
 ./usr/lib/i386/security/pam_skey.so.4		base-compat-shlib	compat,pic,skey,pam
 ./usr/lib/i386/security/pam_ssh.so.4		base-compat-shlib	compat,pic,crypto,pam
 ./usr/lib/i386/security/pam_unix.so.4		base-compat-shlib	compat,pic,pam
+./usr/lib/i386/libctf.a				base-compat-lib		compat,dtrace
+./usr/lib/i386/libctf.so			base-compat-shlib	compat,pic,dtrace
+./usr/lib/i386/libctf.so.3			base-compat-shlib	compat,pic,dtrace
+./usr/lib/i386/libctf.so.3.0			base-compat-shlib	compat,pic,dtrace
+./usr/lib/i386/libctf_p.a			base-compat-lib		compat,dtrace
+./usr/lib/i386/libctf_pic.a			base-compat-lib		compat,dtrace
+./usr/lib/i386/libdtrace.a			base-compat-lib		compat,dtrace
+./usr/lib/i386/libdtrace.so			base-compat-shlib	compat,pic,dtrace
+./usr/lib/i386/libdtrace.so.3			base-compat-shlib	compat,pic,dtrace
+./usr/lib/i386/libdtrace.so.3.0			base-compat-shlib	compat,pic,dtrace
+./usr/lib/i386/libdtrace_p.a			base-compat-lib		compat,dtrace
+./usr/lib/i386/libdtrace_pic.a			base-compat-lib		compat,dtrace
+./usr/lib/i386/libproc.a			base-compat-lib		compat,dtrace
+./usr/lib/i386/libproc.so			base-compat-shlib	compat,pic,dtrace
+./usr/lib/i386/libproc.so.0			base-compat-shlib	compat,pic,dtrace
+./usr/lib/i386/libproc.so.0.0			base-compat-shlib	compat,pic,dtrace
+./usr/lib/i386/libproc_p.a			base-compat-lib		compat,dtrace
+./usr/lib/i386/libproc_pic.a			base-compat-lib		compat,dtrace
+./usr/lib/i386/librtld_db.a			base-compat-lib		compat,dtrace
+./usr/lib/i386/librtld_db.so			base-compat-shlib	compat,pic,dtrace
+./usr/lib/i386/librtld_db.so.0			base-compat-shlib	compat,pic,dtrace
+./usr/lib/i386/librtld_db.so.0.0		base-compat-shlib	compat,pic,dtrace
+./usr/lib/i386/librtld_db_p.a			base-compat-lib		compat,dtrace
+./usr/lib/i386/librtld_db_pic.a			base-compat-lib		compat,dtrace
 ./usr/lib/libx86_64.so				base-sys-shlib		pic
 ./usr/lib/libx86_64.so.0			base-sys-shlib		pic
 ./usr/lib/libx86_64.so.0.0			base-sys-shlib		pic
diff --git a/distrib/sets/lists/base/md.sparc64 b/distrib/sets/lists/base/md.sparc64
index d2ebee2..955553f 100644
--- a/distrib/sets/lists/base/md.sparc64
+++ b/distrib/sets/lists/base/md.sparc64
@@ -315,7 +315,7 @@
 ./usr/lib/sparc/libusbhid.so.1			base-compat-shlib	compat,pic
 ./usr/lib/sparc/libusbhid.so.1.0		base-compat-shlib	compat,pic
 ./usr/lib/sparc/libutil.so.7			base-compat-shlib	compat,pic
-./usr/lib/sparc/libutil.so.7.21			base-compat-shlib	compat,pic
+./usr/lib/sparc/libutil.so.7.23			base-compat-shlib	compat,pic
 ./usr/lib/sparc/libwind.so.0			base-compat-shlib	compat,pic,kerberos
 ./usr/lib/sparc/libwind.so.0.0			base-compat-shlib	compat,pic,kerberos
 ./usr/lib/sparc/libwrap.so.1			base-compat-shlib	compat,pic
diff --git a/distrib/sets/lists/base/mi b/distrib/sets/lists/base/mi
index 969a388..5d1b5d7 100644
--- a/distrib/sets/lists/base/mi
+++ b/distrib/sets/lists/base/mi
@@ -1173,6 +1173,11 @@
 ./usr/include/uvm				base-c-usr
 ./usr/include/vm				base-obsolete		obsolete
 ./usr/lib					base-sys-usr
+./usr/lib/dtrace				base-sys-usr		dtrace
+./usr/lib/dtrace/errno.d			base-sys-usr		dtrace
+./usr/lib/dtrace/psinfo.d			base-sys-usr		dtrace
+./usr/lib/dtrace/signal.d			base-sys-usr		dtrace
+./usr/lib/dtrace/unistd.d			base-sys-usr		dtrace
 ./usr/lib/i18n					base-i18n-root
 ./usr/lib/libntp.so				base-obsolete		obsolete
 ./usr/lib/libssp.so				base-obsolete		obsolete
diff --git a/distrib/sets/lists/base/shl.mi b/distrib/sets/lists/base/shl.mi
index 2f41cf8..9bd7e4a 100644
--- a/distrib/sets/lists/base/shl.mi
+++ b/distrib/sets/lists/base/shl.mi
@@ -84,7 +84,7 @@
 ./lib/libtermlib.so.0.6				base-sys-shlib		dynamicroot
 ./lib/libutil.so				base-sys-shlib		dynamicroot
 ./lib/libutil.so.7				base-sys-shlib		dynamicroot
-./lib/libutil.so.7.21				base-sys-shlib		dynamicroot
+./lib/libutil.so.7.23				base-sys-shlib		dynamicroot
 ./lib/libz.so					base-sys-shlib		dynamicroot
 ./lib/libz.so.1					base-sys-shlib		dynamicroot
 ./lib/libz.so.1.0				base-sys-shlib		dynamicroot
@@ -229,8 +229,8 @@
 ./usr/lib/libcrypto_rc5.so.7.0			base-crypto-shlib	crypto,crypto_rc5
 ./usr/lib/libcrypto_rc5_pic.a			base-crypto-shlib	crypto,crypto_rc5,picinstall
 ./usr/lib/libctf.so				base-sys-shlib		dtrace
-./usr/lib/libctf.so.2				base-sys-shlib		dtrace
-./usr/lib/libctf.so.2.0				base-sys-shlib		dtrace
+./usr/lib/libctf.so.3				base-sys-shlib		dtrace
+./usr/lib/libctf.so.3.0				base-sys-shlib		dtrace
 ./usr/lib/libcurses.so				base-sys-shlib
 ./usr/lib/libcurses.so.7			base-sys-shlib
 ./usr/lib/libcurses.so.7.0			base-sys-shlib
@@ -250,8 +250,8 @@
 ./usr/lib/libdns_sd.so.0			base-mdns-shlib		mdns
 ./usr/lib/libdns_sd.so.0.0			base-mdns-shlib		mdns
 ./usr/lib/libdtrace.so				base-sys-shlib		dtrace
-./usr/lib/libdtrace.so.2			base-sys-shlib		dtrace
-./usr/lib/libdtrace.so.2.0			base-sys-shlib		dtrace
+./usr/lib/libdtrace.so.3			base-sys-shlib		dtrace
+./usr/lib/libdtrace.so.3.0			base-sys-shlib		dtrace
 ./usr/lib/libdwarf.so				base-sys-shlib
 ./usr/lib/libdwarf.so.1				base-sys-shlib
 ./usr/lib/libdwarf.so.1.0			base-sys-shlib
@@ -445,6 +445,9 @@
 ./usr/lib/libprop.so				base-sys-shlib
 ./usr/lib/libprop.so.1				base-sys-shlib
 ./usr/lib/libprop.so.1.1			base-sys-shlib
+./usr/lib/libproc.so				base-sys-shlib		dtrace
+./usr/lib/libproc.so.0				base-sys-shlib		dtrace
+./usr/lib/libproc.so.0.0			base-sys-shlib		dtrace
 ./usr/lib/libpthread.so				base-sys-shlib
 ./usr/lib/libpthread.so.1			base-sys-shlib
 ./usr/lib/libpthread.so.1.2			base-sys-shlib
@@ -475,6 +478,9 @@
 ./usr/lib/librt.so				base-sys-shlib
 ./usr/lib/librt.so.1				base-sys-shlib
 ./usr/lib/librt.so.1.1				base-sys-shlib
+./usr/lib/librtld_db.so				base-sys-shlib		dtrace
+./usr/lib/librtld_db.so.0			base-sys-shlib		dtrace
+./usr/lib/librtld_db.so.0.0			base-sys-shlib		dtrace
 ./usr/lib/librump.so				base-rump-shlib		rump
 ./usr/lib/librump.so.0				base-rump-shlib		rump
 ./usr/lib/librump.so.0.0			base-rump-shlib		rump
@@ -792,7 +798,7 @@
 ./usr/lib/libusbhid.so.1.0			base-sys-shlib
 ./usr/lib/libutil.so				base-sys-shlib
 ./usr/lib/libutil.so.7				base-sys-shlib
-./usr/lib/libutil.so.7.21			base-sys-shlib
+./usr/lib/libutil.so.7.23			base-sys-shlib
 ./usr/lib/libuutil.so				base-zfs-shlib		dynamicroot,zfs
 ./usr/lib/libuutil.so.0				base-zfs-shlib		dynamicroot,zfs
 ./usr/lib/libuutil.so.0.0			base-zfs-shlib		zfs,dynamicroot
diff --git a/distrib/sets/lists/comp/mi b/distrib/sets/lists/comp/mi
index 4820a3d..3d351ce 100644
--- a/distrib/sets/lists/comp/mi
+++ b/distrib/sets/lists/comp/mi
@@ -2469,6 +2469,7 @@
 ./usr/include/libintl.h				comp-c-include
 ./usr/include/libmilter/mfapi.h			comp-obsolete		obsolete
 ./usr/include/libmilter/mfdef.h			comp-obsolete		obsolete
+./usr/include/libproc.h				comp-c-include		dtrace
 ./usr/include/limits.h				comp-c-include
 ./usr/include/link.h				comp-c-include
 ./usr/include/link_aout.h			comp-c-include
@@ -3050,6 +3051,7 @@
 ./usr/include/rpcsvc/ypclnt.h			comp-c-include
 ./usr/include/rpcsvc/yppasswd.h			comp-c-include
 ./usr/include/rpcsvc/yppasswd.x			comp-c-include
+./usr/include/rtld_db.h				comp-c-include	dtrace
 ./usr/include/rump/p2k.h			comp-puffs-include	rump
 ./usr/include/rump/rump.h			comp-c-include	rump
 ./usr/include/rump/rump_namei.h			comp-c-include	rump
@@ -3717,6 +3719,8 @@
 ./usr/lib/libposix_p.a				comp-c-proflib		profile
 ./usr/lib/libppath.a				comp-c-lib
 ./usr/lib/libppath_p.a				comp-c-proflib		profile
+./usr/lib/libproc.a				comp-c-lib		dtrace
+./usr/lib/libproc_p.a				comp-c-lib		dtrace
 ./usr/lib/libprop.a				comp-c-lib
 ./usr/lib/libprop_p.a				comp-c-proflib		profile
 ./usr/lib/libpthread.a				comp-c-lib
@@ -3740,6 +3744,8 @@
 ./usr/lib/librpcsvc_p.a				comp-c-proflib		profile
 ./usr/lib/librt.a				comp-c-lib
 ./usr/lib/librt_p.a				comp-c-proflib		profile
+./usr/lib/librtld_db.a				comp-c-lib		dtrace
+./usr/lib/librtld_db_p.a			comp-c-lib		dtrace
 ./usr/lib/librump.a				comp-c-lib		rump
 ./usr/lib/librump_p.a				comp-c-proflib		profile,rump
 ./usr/lib/librumpclient.a			comp-c-lib		rump
@@ -4058,6 +4064,7 @@
 ./usr/libdata/lint/llib-lperfuse.ln		comp-perfuse-lintlib	lint
 ./usr/libdata/lint/llib-lposix.ln		comp-c-lintlib		lint
 ./usr/libdata/lint/llib-lppath.ln		comp-c-lintlib		lint
+./usr/libdata/lint/llib-lproc.ln		comp-c-lintlib		lint
 ./usr/libdata/lint/llib-lprop.ln		comp-c-lintlib		lint
 ./usr/libdata/lint/llib-lpthread.ln		comp-c-lintlib		lint
 ./usr/libdata/lint/llib-lpthread_dbg.ln		comp-c-lintlib		lint
@@ -4070,6 +4077,7 @@
 ./usr/libdata/lint/llib-lroken.ln		comp-krb5-lintlib	lint,kerberos
 ./usr/libdata/lint/llib-lrpcsvc.ln		comp-c-lintlib		lint
 ./usr/libdata/lint/llib-lrt.ln			comp-c-lintlib		lint
+./usr/libdata/lint/llib-lrtld_db.ln		comp-c-lintlib		lint
 ./usr/libdata/lint/llib-lrumpclient.ln		comp-c-lintlib		lint,rump
 ./usr/libdata/lint/llib-lrumphijack.ln		comp-c-lintlib		lint,rump
 ./usr/libdata/lint/llib-lrumpnet_netbt.ln	comp-c-lintlib		lint,rump
@@ -7114,6 +7122,7 @@
 ./usr/share/man/cat3/keypad.0			comp-c-catman		.cat
 ./usr/share/man/cat3/killchar.0			comp-c-catman		.cat
 ./usr/share/man/cat3/killpg.0			comp-c-catman		.cat
+./usr/share/man/cat3/kinfo_getvmmap.0		comp-c-catman		.cat
 ./usr/share/man/cat3/krb5.0			comp-obsolete		obsolete
 ./usr/share/man/cat3/krb524_convert_creds_kdc.0	comp-krb5-catman	kerberos,.cat
 ./usr/share/man/cat3/krb524_convert_creds_kdc_ccache.0	comp-krb5-catman	kerberos,.cat
@@ -7851,6 +7860,7 @@
 ./usr/share/man/cat3/libperfuse.0		comp-perfuse-catman	.cat
 ./usr/share/man/cat3/libquota.0			comp-c-catman		.cat
 ./usr/share/man/cat3/libradius.0		comp-c-catman		.cat
+./usr/share/man/cat3/librtld_db.0		comp-c-catman		.cat
 ./usr/share/man/cat3/libsaslc.0			comp-c-catman		crypto,.cat
 ./usr/share/man/cat3/libusb.0			comp-obsolete		obsolete
 ./usr/share/man/cat3/libusbhid.0		comp-c-catman		.cat
@@ -13976,6 +13986,7 @@
 ./usr/share/man/html3/keypad.html		comp-c-htmlman		html
 ./usr/share/man/html3/killchar.html		comp-c-htmlman		html
 ./usr/share/man/html3/killpg.html		comp-c-htmlman		html
+./usr/share/man/html3/kinfo_getvmmap.html	comp-c-htmlman		html
 ./usr/share/man/html3/krb5.html			comp-obsolete		obsolete
 ./usr/share/man/html3/krb524_convert_creds_kdc.html	comp-krb5-htmlman	kerberos,html
 ./usr/share/man/html3/krb524_convert_creds_kdc_ccache.html	comp-krb5-htmlman	kerberos,html
@@ -14693,6 +14704,7 @@
 ./usr/share/man/html3/libperfuse.html		comp-perfuse-htmlman	html
 ./usr/share/man/html3/libquota.html		comp-c-htmlman		html
 ./usr/share/man/html3/libradius.html		comp-c-htmlman		html
+./usr/share/man/html3/librtld_db.html		comp-c-htmlman		html,dtrace
 ./usr/share/man/html3/libsaslc.html		comp-c-htmlman		crypto,html
 ./usr/share/man/html3/libusbhid.html		comp-c-htmlman		html
 ./usr/share/man/html3/libutil.html		comp-c-htmlman		html
@@ -20758,6 +20770,7 @@
 ./usr/share/man/man3/keypad.3			comp-c-man		.man
 ./usr/share/man/man3/killchar.3			comp-c-man		.man
 ./usr/share/man/man3/killpg.3			comp-c-man		.man
+./usr/share/man/man3/kinfo_getvmmap.3		comp-c-man		.man
 ./usr/share/man/man3/krb5.3			comp-obsolete		obsolete
 ./usr/share/man/man3/krb524_convert_creds_kdc.3	comp-krb5-man		kerberos,.man
 ./usr/share/man/man3/krb524_convert_creds_kdc_ccache.3	comp-krb5-man		kerberos,.man
@@ -21495,6 +21508,7 @@
 ./usr/share/man/man3/libperfuse.3		comp-perfuse-man	.man
 ./usr/share/man/man3/libquota.3			comp-c-man		.man
 ./usr/share/man/man3/libradius.3		comp-c-man		.man
+./usr/share/man/man3/librtld_db.3		comp-c-man		.man,dtrace
 ./usr/share/man/man3/libsaslc.3			comp-c-man		crypto,.man
 ./usr/share/man/man3/libusb.3			comp-obsolete		obsolete
 ./usr/share/man/man3/libusbhid.3		comp-c-man		.man
diff --git a/distrib/sets/lists/comp/shl.mi b/distrib/sets/lists/comp/shl.mi
index e1e728d..57e94c1 100644
--- a/distrib/sets/lists/comp/shl.mi
+++ b/distrib/sets/lists/comp/shl.mi
@@ -136,6 +136,9 @@
 ./usr/lib/libperfuse_pic.a			comp-perfuse-piclib	picinstall
 ./usr/lib/libposix_pic.a			comp-c-piclib	picinstall
 ./usr/lib/libppath_pic.a			comp-c-piclib	picinstall
+./usr/lib/libproc.so				comp-c-shlib	dtrace
+./usr/lib/libproc.so.0				comp-c-shlib	dtrace
+./usr/lib/libproc_pic.a				comp-c-piclib	dtrace
 ./usr/lib/libprop_pic.a				comp-c-piclib	picinstall
 ./usr/lib/libpthread_dbg_pic.a			comp-c-piclib	picinstall
 ./usr/lib/libpthread_pic.a			comp-c-piclib	picinstall
@@ -147,6 +150,9 @@
 ./usr/lib/libroken_pic.a			comp-c-piclib		kerberos,picinstall
 ./usr/lib/librpcsvc_pic.a			comp-c-piclib	picinstall
 ./usr/lib/librt_pic.a				comp-c-piclib	picinstall
+./usr/lib/librtld_db.so				comp-c-shlib	dtrace
+./usr/lib/librtld_db.so.0			comp-c-shlib	dtrace
+./usr/lib/librtld_db_pic.a			comp-c-piclib	dtrace
 ./usr/lib/librump_pic.a				comp-c-piclib		rump,picinstall
 ./usr/lib/librumpclient_pic.a			comp-c-piclib		rump,picinstall
 ./usr/lib/librumpcrypto_pic.a			comp-obsolete		obsolete
diff --git a/distrib/sets/lists/debug/ad.aarch64 b/distrib/sets/lists/debug/ad.aarch64
index 26a1458..60f7071 100644
--- a/distrib/sets/lists/debug/ad.aarch64
+++ b/distrib/sets/lists/debug/ad.aarch64
@@ -177,7 +177,7 @@
 ./usr/libdata/debug/usr/lib/eabi/libukfs.so.1.0.debug	comp-sys-debug	debug,compat,rump
 ./usr/libdata/debug/usr/lib/eabi/libumem.so.0.0.debug	comp-zfs-debug	zfs,dynamicroot,debug,compat
 ./usr/libdata/debug/usr/lib/eabi/libusbhid.so.1.0.debug	comp-sys-debug	debug,compat
-./usr/libdata/debug/usr/lib/eabi/libutil.so.7.21.debug	comp-sys-debug	debug,compat
+./usr/libdata/debug/usr/lib/eabi/libutil.so.7.23.debug	comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/eabi/libuutil.so.0.0.debug	comp-zfs-debug	zfs,dynamicroot,debug,compat
 ./usr/libdata/debug/usr/lib/eabi/libwind.so.0.0.debug	comp-compat-shlib	compat,pic,kerberos,debug
 ./usr/libdata/debug/usr/lib/eabi/libwrap.so.1.0.debug	comp-net-debug	debug,compat
@@ -329,7 +329,7 @@
 #./usr/libdata/debug/usr/lib/eabihf/libukfs.so.1.0.debug	comp-sys-debug	debug,compat,rump
 #./usr/libdata/debug/usr/lib/eabihf/libumem.so.0.0.debug	comp-zfs-debug	zfs,dynamicroot,debug,compat
 #./usr/libdata/debug/usr/lib/eabihf/libusbhid.so.1.0.debug	comp-sys-debug	debug,compat
-#./usr/libdata/debug/usr/lib/eabihf/libutil.so.7.21.debug	comp-sys-debug	debug,compat
+#./usr/libdata/debug/usr/lib/eabihf/libutil.so.7.23.debug	comp-sys-debug	debug,compat
 #./usr/libdata/debug/usr/lib/eabihf/libuutil.so.0.0.debug	comp-zfs-debug	zfs,dynamicroot,debug,compat
 #./usr/libdata/debug/usr/lib/eabihf/libwind.so.0.0.debug	comp-compat-shlib	compat,pic,kerberos,debug
 #./usr/libdata/debug/usr/lib/eabihf/libwrap.so.1.0.debug	comp-net-debug	debug,compat
@@ -482,7 +482,7 @@
 ./usr/libdata/debug/usr/lib/oabi/libukfs.so.1.0.debug		comp-sys-debug	debug,compat,rump
 ./usr/libdata/debug/usr/lib/oabi/libumem.so.0.0.debug		comp-zfs-debug	zfs,dynamicroot,debug,compat
 ./usr/libdata/debug/usr/lib/oabi/libusbhid.so.1.0.debug		comp-sys-debug	debug,compat
-./usr/libdata/debug/usr/lib/oabi/libutil.so.7.21.debug		comp-sys-debug	debug,compat
+./usr/libdata/debug/usr/lib/oabi/libutil.so.7.23.debug		comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/oabi/libuutil.so.0.0.debug		comp-zfs-debug	zfs,dynamicroot,debug,compat
 ./usr/libdata/debug/usr/lib/oabi/libwind.so.0.0.debug		comp-compat-shlib	compat,pic,kerberos,debug
 ./usr/libdata/debug/usr/lib/oabi/libwrap.so.1.0.debug		comp-net-debug	debug,compat
diff --git a/distrib/sets/lists/debug/ad.arm b/distrib/sets/lists/debug/ad.arm
index e5d52a7..07bbc50 100644
--- a/distrib/sets/lists/debug/ad.arm
+++ b/distrib/sets/lists/debug/ad.arm
@@ -337,7 +337,7 @@
 ./usr/libdata/debug/usr/lib/oabi/libukfs.so.1.0.debug	comp-sys-debug	debug,compat,rump
 ./usr/libdata/debug/usr/lib/oabi/libumem.so.0.0.debug	comp-zfs-debug	zfs,dynamicroot,debug,compat
 ./usr/libdata/debug/usr/lib/oabi/libusbhid.so.1.0.debug	comp-sys-debug	debug,compat
-./usr/libdata/debug/usr/lib/oabi/libutil.so.7.21.debug	comp-sys-debug	debug,compat
+./usr/libdata/debug/usr/lib/oabi/libutil.so.7.23.debug	comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/oabi/libuutil.so.0.0.debug	comp-zfs-debug	zfs,dynamicroot,debug,compat
 ./usr/libdata/debug/usr/lib/oabi/libwind.so.0.0.debug	comp-compat-shlib	 compat,pic,kerberos,debug
 ./usr/libdata/debug/usr/lib/oabi/libwrap.so.1.0.debug	comp-net-debug	debug,compat
diff --git a/distrib/sets/lists/debug/ad.mips b/distrib/sets/lists/debug/ad.mips
index a7c8c53..3d2a478 100644
--- a/distrib/sets/lists/debug/ad.mips
+++ b/distrib/sets/lists/debug/ad.mips
@@ -201,7 +201,7 @@
 ./usr/libdata/debug/usr/lib/64/libukfs.so.1.0.debug	comp-sys-debug	debug,compat,rump,arch64
 ./usr/libdata/debug/usr/lib/64/libumem.so.0.0.debug	comp-zfs-debug	zfs,dynamicroot,debug,compat,arch64
 ./usr/libdata/debug/usr/lib/64/libusbhid.so.1.0.debug	comp-sys-debug	debug,compat,arch64
-./usr/libdata/debug/usr/lib/64/libutil.so.7.21.debug	comp-sys-debug	debug,compat,arch64
+./usr/libdata/debug/usr/lib/64/libutil.so.7.23.debug	comp-sys-debug	debug,compat,arch64
 ./usr/libdata/debug/usr/lib/64/libuutil.so.0.0.debug	comp-zfs-debug	zfs,dynamicroot,debug,compat,arch64
 ./usr/libdata/debug/usr/lib/64/libwind.so.0.0.debug	comp-compat-shlib	 compat,pic,kerberos,debug,arch64
 ./usr/libdata/debug/usr/lib/64/libwrap.so.1.0.debug	comp-net-debug	debug,compat,arch64
@@ -380,7 +380,7 @@
 ./usr/libdata/debug/usr/lib/o32/libukfs.so.1.0.debug	comp-sys-debug	debug,compat,rump,arch64
 ./usr/libdata/debug/usr/lib/o32/libumem.so.0.0.debug	comp-zfs-debug	zfs,dynamicroot,debug,compat,arch64
 ./usr/libdata/debug/usr/lib/o32/libusbhid.so.1.0.debug	comp-sys-debug	debug,compat,arch64
-./usr/libdata/debug/usr/lib/o32/libutil.so.7.21.debug	comp-sys-debug	debug,compat,arch64
+./usr/libdata/debug/usr/lib/o32/libutil.so.7.23.debug	comp-sys-debug	debug,compat,arch64
 ./usr/libdata/debug/usr/lib/o32/libuutil.so.0.0.debug	comp-zfs-debug	zfs,dynamicroot,debug,compat,arch64
 ./usr/libdata/debug/usr/lib/o32/libwind.so.0.0.debug		comp-compat-shlib	 compat,pic,kerberos,debug,arch64
 ./usr/libdata/debug/usr/lib/o32/libwrap.so.1.0.debug	comp-net-debug	debug,compat,arch64
diff --git a/distrib/sets/lists/debug/ad.powerpc b/distrib/sets/lists/debug/ad.powerpc
index bfeb90c..678490d 100644
--- a/distrib/sets/lists/debug/ad.powerpc
+++ b/distrib/sets/lists/debug/ad.powerpc
@@ -260,7 +260,7 @@
 ./usr/libdata/debug/usr/lib/powerpc/libtre.so.0.8.debug			comp-compat-shlib	compat,arch64,debug,pic
 ./usr/libdata/debug/usr/lib/powerpc/libukfs.so.1.0.debug			comp-compat-shlib	compat,arch64,debug,pic,rump
 ./usr/libdata/debug/usr/lib/powerpc/libusbhid.so.1.0.debug		comp-compat-shlib	compat,arch64,debug,pic
-./usr/libdata/debug/usr/lib/powerpc/libutil.so.7.21.debug			comp-compat-shlib	compat,arch64,debug,pic
+./usr/libdata/debug/usr/lib/powerpc/libutil.so.7.23.debug			comp-compat-shlib	compat,arch64,debug,pic
 ./usr/libdata/debug/usr/lib/powerpc/libwind.so.0.0.debug			comp-compat-shlib	compat,arch64,debug,pic,kerberos
 ./usr/libdata/debug/usr/lib/powerpc/libwrap.so.1.0.debug			comp-compat-shlib	compat,arch64,debug,pic
 ./usr/libdata/debug/usr/lib/powerpc/libz.so.1.0.debug			comp-compat-shlib	compat,arch64,debug,pic
diff --git a/distrib/sets/lists/debug/md.amd64 b/distrib/sets/lists/debug/md.amd64
index 07880d0..c305ec5 100644
--- a/distrib/sets/lists/debug/md.amd64
+++ b/distrib/sets/lists/debug/md.amd64
@@ -197,6 +197,7 @@
 ./usr/libdata/debug/usr/lib/i386/libatf-c++.so.0.0.debug	comp-compat-shlib	compat,pic,atf,debug,obsolete
 ./usr/libdata/debug/usr/lib/i386/libatf-c++.so.1.0.debug	comp-compat-shlib	compat,pic,atf,debug
 ./usr/libdata/debug/usr/lib/i386/libatf-c.so.0.0.debug	comp-compat-shlib	compat,pic,atf,debug
+./usr/libdata/debug/usr/lib/i386/libavl.so.0.0.debug	comp-compat-shlib	compat,debug,zfs
 ./usr/libdata/debug/usr/lib/i386/libbfd.so.13.0.debug	comp-compat-shlib	compat,pic,binutils,debug
 ./usr/libdata/debug/usr/lib/i386/libbind9.so.8.2.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libblacklist.so.0.0.debug	comp-compat-shlib	compat,pic,debug
@@ -210,12 +211,14 @@
 ./usr/libdata/debug/usr/lib/i386/libcrypt.so.1.0.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libcrypto.so.8.4.debug	comp-compat-shlib	crypto,compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libcrypto_rc5.so.7.0.debug	comp-compat-shlib	crypto,crypto_rc5,compat,pic,debug
+./usr/libdata/debug/usr/lib/i386/libctf.so.3.0.debug	comp-compat-shlib	compat,debug,dtrace
 ./usr/libdata/debug/usr/lib/i386/libcurses.so.7.0.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libdes.so.8.2.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libdevmapper.so.1.0.debug	comp-compat-shlib	compat,pic,lvm,debug
 ./usr/libdata/debug/usr/lib/i386/libdm.so.0.0.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libdns.so.8.2.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libdns_sd.so.0.0.debug	comp-compat-shlib	compat,pic,debug
+./usr/libdata/debug/usr/lib/i386/libdtrace.so.3.0.debug	comp-compat-shlib	compat,debug,dtrace
 ./usr/libdata/debug/usr/lib/i386/libdwarf.so.1.0.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libedit.so.3.1.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libelf.so.1.0.debug	comp-compat-shlib	compat,pic,debug
@@ -280,6 +283,7 @@
 ./usr/libdata/debug/usr/lib/i386/libnetpgp.so.3.0.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libnetpgpverify.so.4.0.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libnpf.so.0.0.debug	comp-compat-shlib	compat,pic,npf,debug
+./usr/libdata/debug/usr/lib/i386/libnvpair.so.0.0.debug	comp-compat-shlib	compat,debug,zfs
 ./usr/libdata/debug/usr/lib/i386/libobjc.so.3.0.debug	comp-compat-shlib	gcc=4,compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libobjc.so.3.0.debug	comp-compat-shlib	gcc=45,compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libobjc.so.4.0.debug	comp-compat-shlib	gcc=48,compat,pic,debug
@@ -328,8 +332,10 @@
 ./usr/libdata/debug/usr/lib/i386/libtre.so.0.8.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libtspi.so.3.0.debug	comp-compat-shlib	compat,pic,debug,tpm
 ./usr/libdata/debug/usr/lib/i386/libukfs.so.1.0.debug	comp-compat-shlib	compat,pic,debug,rump
+./usr/libdata/debug/usr/lib/i386/libumem.so.0.0.debug	comp-compat-shlib	compat,debug,zfs
 ./usr/libdata/debug/usr/lib/i386/libusbhid.so.1.0.debug	comp-compat-shlib	compat,pic,debug
-./usr/libdata/debug/usr/lib/i386/libutil.so.7.21.debug	comp-compat-shlib	compat,pic,debug
+./usr/libdata/debug/usr/lib/i386/libutil.so.7.23.debug	comp-compat-shlib	compat,pic,debug
+./usr/libdata/debug/usr/lib/i386/libuutil.so.0.0.debug	comp-compat-shlib	compat,debug,zfs
 ./usr/libdata/debug/usr/lib/i386/libwind.so.0.0.debug	comp-compat-shlib	compat,pic,kerberos,debug
 ./usr/libdata/debug/usr/lib/i386/libwrap.so.1.0.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libz.so.1.0.debug	comp-compat-shlib	compat,pic,debug
@@ -339,6 +345,8 @@
 ./usr/libdata/debug/usr/lib/i386/npf/libext_log.so.0.0.debug	comp-obsolete	obsolete
 ./usr/libdata/debug/usr/lib/i386/npf/libext_normalise.so.0.0.debug	comp-obsolete	obsolete
 ./usr/libdata/debug/usr/lib/i386/npf/libext_rndblock.so.0.0.debug	comp-obsolete	obsolete
+./usr/libdata/debug/usr/lib/i386/libproc.so.0.0.debug	comp-compat-shlib	compat,pic,debug
+./usr/libdata/debug/usr/lib/i386/librtld_db.so.0.0.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/libx86_64.so.0.0.debug	comp-sys-shlib		pic,debug
 ./usr/libdata/debug/usr/libexec/ld.elf_so-i386	comp-obsolete	obsolete
 ./usr/libdata/debug/usr/libexec/ld.elf_so-i386.debug	comp-sys-debug		debug,compat
diff --git a/distrib/sets/lists/debug/md.sparc64 b/distrib/sets/lists/debug/md.sparc64
index d9c8349..df56def 100644
--- a/distrib/sets/lists/debug/md.sparc64
+++ b/distrib/sets/lists/debug/md.sparc64
@@ -319,7 +319,7 @@
 ./usr/libdata/debug/usr/lib/sparc/libtre.so.0.8.debug			comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/sparc/libukfs.so.1.0.debug			comp-compat-shlib	compat,pic,debug,rump
 ./usr/libdata/debug/usr/lib/sparc/libusbhid.so.1.0.debug		comp-compat-shlib	compat,pic,debug
-./usr/libdata/debug/usr/lib/sparc/libutil.so.7.21.debug			comp-compat-shlib	compat,pic,debug
+./usr/libdata/debug/usr/lib/sparc/libutil.so.7.23.debug			comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/sparc/libwind.so.0.0.debug			comp-compat-shlib	compat,pic,kerberos,debug
 ./usr/libdata/debug/usr/lib/sparc/libwrap.so.1.0.debug			comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/sparc/libz.so.1.0.debug			comp-compat-shlib	compat,pic,debug
@@ -331,5 +331,6 @@
 ./usr/libdata/debug/usr/lib/sparc/npf/libext_rndblock.so.0.0.debug	comp-obsolete	obsolete
 ./usr/libdata/debug/usr/libexec/ld.elf_so-sparc.debug	comp-sys-debug		debug,compat
 ./usr/libdata/debug/usr/libexec/ld.elf_so.sparc	comp-obsolete		obsolete
+./usr/libdata/debug/usr/lib/librtld_db.so.0.0.debug	comp-compat-shlib		compat,pic,debug,dtrace
 ./usr/libdata/debug/usr/sbin/eeprom.debug	comp-sysutil-debug	debug
 ./usr/libdata/debug/usr/sbin/ofctl.debug	comp-sysutil-debug	debug
diff --git a/distrib/sets/lists/debug/mi b/distrib/sets/lists/debug/mi
index c284948..20d5cc4 100644
--- a/distrib/sets/lists/debug/mi
+++ b/distrib/sets/lists/debug/mi
@@ -123,6 +123,8 @@
 ./usr/lib/libperfuse_g.a			comp-c-debuglib		debuglib
 ./usr/lib/libposix_g.a				comp-c-debuglib		debuglib
 ./usr/lib/libppath_g.a				comp-c-debuglib		debuglib
+./usr/lib/libproc_g.a				comp-c-libdebug		debuglib,dtrace
+./usr/lib/libproc_p.a				comp-c-debuglib		debuglib,dtrace
 ./usr/lib/libprop_g.a				comp-c-debuglib		debuglib
 ./usr/lib/libpthread_dbg_g.a			comp-c-debuglib		debuglib
 ./usr/lib/libpthread_g.a			comp-c-debuglib		debuglib
@@ -135,6 +137,7 @@
 ./usr/lib/libroken_g.a				comp-c-debuglib		debuglib,kerberos
 ./usr/lib/librpcsvc_g.a				comp-c-debuglib		debuglib
 ./usr/lib/librt_g.a				comp-c-debuglib		debuglib
+./usr/lib/librtld_db_g.a			comp-c-debuglib		debuglib,dtrace
 ./usr/lib/librump_g.a				comp-c-debuglib		debuglib,rump
 ./usr/lib/librumpclient_g.a			comp-c-debuglib		debuglib,rump
 ./usr/lib/librumpcrypto_g.a			comp-obsolete		obsolete
@@ -2085,6 +2088,8 @@
 ./usr/libdata/debug/usr/tests/lib/libposix/posix1/t_rename.debug	tests-lib-debug		debug,atf
 ./usr/libdata/debug/usr/tests/lib/libposix/posix2/t_rename.debug	tests-lib-debug		debug,atf
 ./usr/libdata/debug/usr/tests/lib/libppath/t_ppath.debug			tests-lib-debug		debug,atf
+./usr/libdata/debug/usr/tests/lib/libproc/proc_test.debug		tests-lib-debugq	debug,atf,dtrace
+./usr/libdata/debug/usr/tests/lib/libproc/target_prog.debug		tests-lib-debugq	debug,atf,dtrace
 ./usr/libdata/debug/usr/tests/lib/libprop/t_basic.debug			tests-lib-debug		debug,atf
 ./usr/libdata/debug/usr/tests/lib/libpthread/dlopen/h_pthread_dlopen.so.1.debug	tests-lib-debug	debug,atf,pic
 ./usr/libdata/debug/usr/tests/lib/libpthread/dlopen/t_dlopen.debug	tests-lib-debug	debug,atf,pic
diff --git a/distrib/sets/lists/debug/shl.mi b/distrib/sets/lists/debug/shl.mi
index b42f0cf..7abf6d5 100644
--- a/distrib/sets/lists/debug/shl.mi
+++ b/distrib/sets/lists/debug/shl.mi
@@ -20,7 +20,7 @@
 ./usr/libdata/debug/lib/libradius.so.4.0.debug		comp-sys-debug	debug
 ./usr/libdata/debug/lib/librumpclient.so.0.0.debug	comp-sys-debug	debug,rump
 ./usr/libdata/debug/lib/libterminfo.so.1.0.debug	comp-sys-debug	debug
-./usr/libdata/debug/lib/libutil.so.7.21.debug		comp-sys-debug	debug
+./usr/libdata/debug/lib/libutil.so.7.23.debug		comp-sys-debug	debug
 ./usr/libdata/debug/lib/libz.so.1.0.debug		comp-sys-debug	debug
 ./usr/libdata/debug/lib/npf/ext_log.so.0.0.debug	comp-sys-debug	debug,npf
 ./usr/libdata/debug/lib/npf/ext_normalize.so.0.0.debug	comp-sys-debug	debug,npf
@@ -71,14 +71,14 @@
 ./usr/libdata/debug/usr/lib/libcrypto_idea.so.7.0.debug	comp-obsolete		obsolete
 ./usr/libdata/debug/usr/lib/libcrypto_mdc2.so.7.0.debug	comp-obsolete		obsolete
 ./usr/libdata/debug/usr/lib/libcrypto_rc5.so.7.0.debug	comp-crypto-debug	crypto,crypto_rc5,debug
-./usr/libdata/debug/usr/lib/libctf.so.2.0.debug		comp-sys-debug	dtrace,debug
+./usr/libdata/debug/usr/lib/libctf.so.3.0.debug		comp-sys-debug	dtrace,debug
 ./usr/libdata/debug/usr/lib/libcurses.so.7.0.debug	comp-sys-debug	debug
 ./usr/libdata/debug/usr/lib/libdes.so.8.2.debug		comp-crypto-debug	crypto,debug
 ./usr/libdata/debug/usr/lib/libdevmapper.so.1.0.debug	comp-lvm-debug	lvm,debug
 ./usr/libdata/debug/usr/lib/libdm.so.0.0.debug 		comp-sys-debug	debug
 ./usr/libdata/debug/usr/lib/libdns.so.8.2.debug 	comp-bind-debug debug
 ./usr/libdata/debug/usr/lib/libdns_sd.so.0.0.debug	comp-mdns-debug	mdns,debug
-./usr/libdata/debug/usr/lib/libdtrace.so.2.0.debug	comp-sys-debug	dtrace,debug
+./usr/libdata/debug/usr/lib/libdtrace.so.3.0.debug	comp-sys-debug	dtrace,debug
 ./usr/libdata/debug/usr/lib/libdwarf.so.1.0.debug	comp-sys-debug	debug
 ./usr/libdata/debug/usr/lib/libedit.so.3.1.debug	comp-sys-debug	debug
 ./usr/libdata/debug/usr/lib/libelf.so.1.0.debug		comp-sys-debug	debug
@@ -153,6 +153,7 @@
 ./usr/libdata/debug/usr/lib/libperfuse.so.0.0.debug	comp-perfuse-debug	debug
 ./usr/libdata/debug/usr/lib/libposix.so.0.1.debug	comp-sys-debug	debug
 ./usr/libdata/debug/usr/lib/libppath.so.0.0.debug	comp-sys-debug	debug
+./usr/libdata/debug/usr/lib/libproc.so.0.0.debug	comp-sys-debug	debug,dtrace
 ./usr/libdata/debug/usr/lib/libprop.so.1.1.debug	comp-sys-debug	debug
 ./usr/libdata/debug/usr/lib/libpthread.so.1.2.debug	comp-sys-debug	debug
 ./usr/libdata/debug/usr/lib/libpthread_dbg.so.2.0.debug	comp-sys-debug	debug
@@ -164,6 +165,7 @@
 ./usr/libdata/debug/usr/lib/libroken.so.19.0.debug	comp-krb5-debug	kerberos,debug
 ./usr/libdata/debug/usr/lib/librpcsvc.so.1.0.debug	comp-net-debug	debug
 ./usr/libdata/debug/usr/lib/librt.so.1.1.debug		comp-sys-debug	debug
+./usr/libdata/debug/usr/lib/librtld_db.so.0.0.debug	comp-sys-debug	debug,dtrace
 ./usr/libdata/debug/usr/lib/librump.so.0.0.debug	comp-rump-debug	debug,rump
 ./usr/libdata/debug/usr/lib/librumpclient.so.0.0.debug	comp-rump-debug	debug,rump
 ./usr/libdata/debug/usr/lib/librumpdev.so.0.0.debug	comp-rump-debug	debug,rump
@@ -263,7 +265,7 @@
 ./usr/libdata/debug/usr/lib/libukfs.so.1.0.debug	comp-sys-debug	debug,rump
 ./usr/libdata/debug/usr/lib/libumem.so.0.0.debug	comp-zfs-debug	zfs,dynamicroot,debug
 ./usr/libdata/debug/usr/lib/libusbhid.so.1.0.debug	comp-sys-debug	debug
-./usr/libdata/debug/usr/lib/libutil.so.7.21.debug	comp-sys-debug	debug
+./usr/libdata/debug/usr/lib/libutil.so.7.23.debug	comp-sys-debug	debug
 ./usr/libdata/debug/usr/lib/libuutil.so.0.0.debug	comp-zfs-debug	zfs,dynamicroot,debug
 ./usr/libdata/debug/usr/lib/libwind.so.0.0.debug		comp-krb5-debug	kerberos,debug
 ./usr/libdata/debug/usr/lib/libwrap.so.1.0.debug	comp-net-debug	debug
diff --git a/distrib/sets/lists/man/mi b/distrib/sets/lists/man/mi
index 7b4d066..82d8c12 100644
--- a/distrib/sets/lists/man/mi
+++ b/distrib/sets/lists/man/mi
@@ -2022,6 +2022,7 @@
 ./usr/share/man/cat5/cidr_table.0		man-postfix-catman	postfix,.cat
 ./usr/share/man/cat5/core.0			man-sys-catman		.cat
 ./usr/share/man/cat5/crontab.0			man-cron-catman		.cat
+./usr/share/man/cat5/ctf.0			man-sys-catman		dtrace,.cat
 ./usr/share/man/cat5/daily.0			man-sys-catman		.cat
 ./usr/share/man/cat5/daily.conf.0		man-sys-catman		.cat
 ./usr/share/man/cat5/dhclient.conf.0		man-dhclient-catman	.cat
@@ -4995,6 +4996,7 @@
 ./usr/share/man/html5/cidr_table.html		man-postfix-htmlman	postfix,html
 ./usr/share/man/html5/core.html			man-sys-htmlman		html
 ./usr/share/man/html5/crontab.html		man-cron-htmlman	html
+./usr/share/man/html5/ctf.html			man-sys-catman		dtrace,html
 ./usr/share/man/html5/daily.conf.html		man-sys-htmlman		html
 ./usr/share/man/html5/daily.html		man-sys-htmlman		html
 ./usr/share/man/html5/dhclient.conf.html	man-dhclient-htmlman	html
@@ -7905,6 +7907,7 @@
 ./usr/share/man/man5/cidr_table.5		man-postfix-man		postfix,.man
 ./usr/share/man/man5/core.5			man-sys-man		.man
 ./usr/share/man/man5/crontab.5			man-cron-man		.man
+./usr/share/man/man5/ctf.5			man-sys-man		dtrace,.man
 ./usr/share/man/man5/daily.5			man-sys-man		.man
 ./usr/share/man/man5/daily.conf.5		man-sys-man		.man
 ./usr/share/man/man5/dhclient.conf.5		man-dhclient-man	.man
diff --git a/distrib/sets/lists/modules/md.amd64 b/distrib/sets/lists/modules/md.amd64
index 49a38a5..3fb28e8 100644
--- a/distrib/sets/lists/modules/md.amd64
+++ b/distrib/sets/lists/modules/md.amd64
@@ -67,6 +67,10 @@
 ./@MODULEDIR@/drmkms_linux/drmkms_linux.kmod	base-kernel-modules	kmod
 ./@MODULEDIR@/drmkms_pci			base-kernel-modules	kmod
 ./@MODULEDIR@/drmkms_pci/drmkms_pci.kmod	base-kernel-modules	kmod
+./@MODULEDIR@/dtrace_syscall_linux32		base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/dtrace_syscall_linux32/dtrace_syscall_linux32.kmod	base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/dtrace_syscall_netbsd32		base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/dtrace_syscall_netbsd32/dtrace_syscall_netbsd32.kmod	base-kernel-modules	kmod,dtrace
 ./@MODULEDIR@/emdtv				base-kernel-modules	kmod
 ./@MODULEDIR@/emdtv/emdtv.kmod			base-kernel-modules	kmod
 ./@MODULEDIR@/est				base-kernel-modules	kmod
@@ -266,6 +270,24 @@
 ./stand/amd64-xen/@OSRELEASE@/modules/drmkms_linux/drmkms_linux.kmod	base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/drmkms_pci			base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/drmkms_pci/drmkms_pci.kmod	base-kernel-modules	kmod,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace				base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace/dtrace.kmod		base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace_fbt			base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace_fbt/dtrace_fbt.kmod	base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace_lockstat			base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace_lockstat/dtrace_lockstat.kmod	base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace_profile				base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace_profile/dtrace_profile.kmod	base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace_sdt			base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace_sdt/dtrace_sdt.kmod	base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace_syscall			base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace_syscall/dtrace_syscall.kmod	base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace_syscall_linux		base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace_syscall_linux/dtrace_syscall_linux.kmod	base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace_syscall_linux32		base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace_syscall_linux32/dtrace_syscall_linux32.kmod	base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace_syscall_netbsd32		base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/dtrace_syscall_netbsd32/dtrace_syscall_netbsd32.kmod	base-kernel-modules	kmod,dtrace,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/dtv				base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/dtv/dtv.kmod			base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/dtv_math				base-kernel-modules	kmod,compatmodules
@@ -284,8 +306,8 @@
 ./stand/amd64-xen/@OSRELEASE@/modules/exec_script/exec_script.kmod		base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/ext2fs				base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/ext2fs/ext2fs.kmod		base-kernel-modules	kmod,compatmodules
-./stand/amd64-xen/@OSRELEASE@/modules/fbt				base-kernel-modules	kmod,dtrace,compatmodules
-./stand/amd64-xen/@OSRELEASE@/modules/fbt/fbt.kmod			base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/fbt				base-obsolete		obsolete
+./stand/amd64-xen/@OSRELEASE@/modules/fbt/fbt.kmod			base-obsolete		obsolete
 ./stand/amd64-xen/@OSRELEASE@/modules/fdesc				base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/fdesc/fdesc.kmod			base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/ffs				base-kernel-modules	kmod,compatmodules
@@ -326,12 +348,12 @@
 ./stand/amd64-xen/@OSRELEASE@/modules/hpqlb/hpqlb.kmod			base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/hythygtemp			base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/hythygtemp/hythygtemp.kmod	base-kernel-modules	kmod,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/i2cexec				base-kernel-modules	kmod,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/i2cexec/i2cexec.kmod		base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/i915drm				base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/i915drm/i915drm.kmod		base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/i915drmkms			base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/i915drmkms/i915drmkms.kmod	base-kernel-modules	kmod,compatmodules
-./stand/amd64-xen/@OSRELEASE@/modules/i2cexec				base-kernel-modules	kmod,compatmodules
-./stand/amd64-xen/@OSRELEASE@/modules/i2cexec/i2cexec.kmod		base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/if_axe				base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/if_axe/if_axe.kmod		base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/if_axen				base-kernel-modules	kmod,compatmodules
@@ -428,8 +450,8 @@
 ./stand/amd64-xen/@OSRELEASE@/modules/ppp_deflate/ppp_deflate.kmod		base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/procfs				base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/procfs/procfs.kmod		base-kernel-modules	kmod,compatmodules
-./stand/amd64-xen/@OSRELEASE@/modules/profile				base-kernel-modules	kmod,dtrace,compatmodules
-./stand/amd64-xen/@OSRELEASE@/modules/profile/profile.kmod		base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/profile				base-obsolete		obsolete
+./stand/amd64-xen/@OSRELEASE@/modules/profile/profile.kmod		base-obsolete		obsolete
 ./stand/amd64-xen/@OSRELEASE@/modules/ptyfs				base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/ptyfs/ptyfs.kmod			base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/puffs				base-kernel-modules	kmod,compatmodules
@@ -440,8 +462,8 @@
 ./stand/amd64-xen/@OSRELEASE@/modules/pwdog/pwdog.kmod			base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/scsiverbose			base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/scsiverbose/scsiverbose.kmod		base-kernel-modules	kmod,compatmodules
-./stand/amd64-xen/@OSRELEASE@/modules/sdt				base-kernel-modules	kmod,dtrace,compatmodules
-./stand/amd64-xen/@OSRELEASE@/modules/sdt/sdt.kmod			base-kernel-modules	kmod,dtrace,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/sdt				base-obsolete		obsolete
+./stand/amd64-xen/@OSRELEASE@/modules/sdt/sdt.kmod			base-obsolete		obsolete
 ./stand/amd64-xen/@OSRELEASE@/modules/sdtemp				base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/sdtemp/sdtemp.kmod		base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/secmodel_bsd44			base-kernel-modules	kmod,compatmodules
diff --git a/distrib/sets/lists/modules/md.evbppc.powerpc b/distrib/sets/lists/modules/md.evbppc.powerpc
index d1438c9..3c8d26a 100644
--- a/distrib/sets/lists/modules/md.evbppc.powerpc
+++ b/distrib/sets/lists/modules/md.evbppc.powerpc
@@ -50,6 +50,10 @@
 ./stand/powerpc-4xx/@OSRELEASE@/modules/dm/dm.kmod			base-kernel-modules	kmod,compatmodules,lvm
 ./stand/powerpc-4xx/@OSRELEASE@/modules/dtrace				base-kernel-modules	kmod,compatmodules,dtrace
 ./stand/powerpc-4xx/@OSRELEASE@/modules/dtrace/dtrace.kmod		base-kernel-modules	kmod,compatmodules,dtrace
+./stand/powerpc-4xx/@OSRELEASE@/modules/dtrace_fbt				base-kernel-modules	kmod,compatmodules,dtrace
+./stand/powerpc-4xx/@OSRELEASE@/modules/dtrace_fbt/dtrace_fbt.kmod		base-kernel-modules	kmod,compatmodules,dtrace
+./stand/powerpc-4xx/@OSRELEASE@/modules/dtrace_sdt				base-kernel-modules	kmod,compatmodules,dtrace
+./stand/powerpc-4xx/@OSRELEASE@/modules/dtrace_sdt/dtrace_sdt.kmod		base-kernel-modules	kmod,compatmodules,dtrace
 ./stand/powerpc-4xx/@OSRELEASE@/modules/dtv				base-kernel-modules	kmod,compatmodules
 ./stand/powerpc-4xx/@OSRELEASE@/modules/dtv/dtv.kmod			base-kernel-modules	kmod,compatmodules
 ./stand/powerpc-4xx/@OSRELEASE@/modules/dtv_math			base-kernel-modules	kmod,compatmodules
@@ -62,8 +66,8 @@
 ./stand/powerpc-4xx/@OSRELEASE@/modules/exec_script/exec_script.kmod	base-kernel-modules	kmod,compatmodules
 ./stand/powerpc-4xx/@OSRELEASE@/modules/ext2fs				base-kernel-modules	kmod,compatmodules
 ./stand/powerpc-4xx/@OSRELEASE@/modules/ext2fs/ext2fs.kmod		base-kernel-modules	kmod,compatmodules
-./stand/powerpc-4xx/@OSRELEASE@/modules/fbt				base-kernel-modules	kmod,compatmodules,dtrace
-./stand/powerpc-4xx/@OSRELEASE@/modules/fbt/fbt.kmod			base-kernel-modules	kmod,compatmodules,dtrace
+./stand/powerpc-4xx/@OSRELEASE@/modules/fbt				base-obsolete		obsolete
+./stand/powerpc-4xx/@OSRELEASE@/modules/fbt/fbt.kmod			base-obsolete		obsolete
 ./stand/powerpc-4xx/@OSRELEASE@/modules/fdesc				base-kernel-modules	kmod,compatmodules
 ./stand/powerpc-4xx/@OSRELEASE@/modules/fdesc/fdesc.kmod		base-kernel-modules	kmod,compatmodules
 ./stand/powerpc-4xx/@OSRELEASE@/modules/ffs				base-kernel-modules	kmod,compatmodules
@@ -184,8 +188,8 @@
 ./stand/powerpc-4xx/@OSRELEASE@/modules/putter/putter.kmod		base-kernel-modules	kmod,compatmodules
 ./stand/powerpc-4xx/@OSRELEASE@/modules/scsiverbose			base-kernel-modules	kmod,compatmodules
 ./stand/powerpc-4xx/@OSRELEASE@/modules/scsiverbose/scsiverbose.kmod	base-kernel-modules	kmod,compatmodules
-./stand/powerpc-4xx/@OSRELEASE@/modules/sdt				base-kernel-modules	kmod,compatmodules,dtrace
-./stand/powerpc-4xx/@OSRELEASE@/modules/sdt/sdt.kmod			base-kernel-modules	kmod,compatmodules,dtrace
+./stand/powerpc-4xx/@OSRELEASE@/modules/sdt				base-obsolete		obsolete
+./stand/powerpc-4xx/@OSRELEASE@/modules/sdt/sdt.kmod			base-obsolete		obsolete
 ./stand/powerpc-4xx/@OSRELEASE@/modules/sdtemp			base-kernel-modules     kmod
 ./stand/powerpc-4xx/@OSRELEASE@/modules/sdtemp/sdtemp.kmod		base-kernel-modules     kmod
 ./stand/powerpc-4xx/@OSRELEASE@/modules/secmodel_bsd44			base-kernel-modules	kmod,compatmodules
@@ -287,6 +291,10 @@
 ./stand/powerpc-booke/@OSRELEASE@/modules/dm/dm.kmod			base-kernel-modules	kmod,compatmodules,lvm
 ./stand/powerpc-booke/@OSRELEASE@/modules/dtrace				base-kernel-modules	kmod,compatmodules,dtrace
 ./stand/powerpc-booke/@OSRELEASE@/modules/dtrace/dtrace.kmod		base-kernel-modules	kmod,compatmodules,dtrace
+./stand/powerpc-booke/@OSRELEASE@/modules/dtrace_fbt				base-kernel-modules	kmod,compatmodules,dtrace
+./stand/powerpc-booke/@OSRELEASE@/modules/dtrace_fbt/dtrace_fbt.kmod		base-kernel-modules	kmod,compatmodules,dtrace
+./stand/powerpc-booke/@OSRELEASE@/modules/dtrace_sdt				base-kernel-modules	kmod,compatmodules,dtrace
+./stand/powerpc-booke/@OSRELEASE@/modules/dtrace_sdt/dtrace_sdt.kmod		base-kernel-modules	kmod,compatmodules,dtrace
 ./stand/powerpc-booke/@OSRELEASE@/modules/dtv				base-kernel-modules	kmod,compatmodules
 ./stand/powerpc-booke/@OSRELEASE@/modules/dtv/dtv.kmod			base-kernel-modules	kmod,compatmodules
 ./stand/powerpc-booke/@OSRELEASE@/modules/dtv_math			base-kernel-modules	kmod,compatmodules
@@ -299,8 +307,8 @@
 ./stand/powerpc-booke/@OSRELEASE@/modules/exec_script/exec_script.kmod	base-kernel-modules	kmod,compatmodules
 ./stand/powerpc-booke/@OSRELEASE@/modules/ext2fs				base-kernel-modules	kmod,compatmodules
 ./stand/powerpc-booke/@OSRELEASE@/modules/ext2fs/ext2fs.kmod		base-kernel-modules	kmod,compatmodules
-./stand/powerpc-booke/@OSRELEASE@/modules/fbt				base-kernel-modules	kmod,compatmodules,dtrace
-./stand/powerpc-booke/@OSRELEASE@/modules/fbt/fbt.kmod			base-kernel-modules	kmod,compatmodules,dtrace
+./stand/powerpc-booke/@OSRELEASE@/modules/fbt				base-obsolete		obsolete
+./stand/powerpc-booke/@OSRELEASE@/modules/fbt/fbt.kmod			base-obsolete		obsolete
 ./stand/powerpc-booke/@OSRELEASE@/modules/fdesc				base-kernel-modules	kmod,compatmodules
 ./stand/powerpc-booke/@OSRELEASE@/modules/fdesc/fdesc.kmod			base-kernel-modules	kmod,compatmodules
 ./stand/powerpc-booke/@OSRELEASE@/modules/ffs				base-kernel-modules	kmod,compatmodules
@@ -421,8 +429,8 @@
 ./stand/powerpc-booke/@OSRELEASE@/modules/putter/putter.kmod		base-kernel-modules	kmod,compatmodules
 ./stand/powerpc-booke/@OSRELEASE@/modules/scsiverbose			base-kernel-modules	kmod,compatmodules
 ./stand/powerpc-booke/@OSRELEASE@/modules/scsiverbose/scsiverbose.kmod	base-kernel-modules	kmod,compatmodules
-./stand/powerpc-booke/@OSRELEASE@/modules/sdt				base-kernel-modules	kmod,compatmodules,dtrace
-./stand/powerpc-booke/@OSRELEASE@/modules/sdt/sdt.kmod			base-kernel-modules	kmod,compatmodules,dtrace
+./stand/powerpc-booke/@OSRELEASE@/modules/sdt				base-obsolete		obsolete
+./stand/powerpc-booke/@OSRELEASE@/modules/sdt/sdt.kmod			base-obsolete		obsolete
 ./stand/powerpc-booke/@OSRELEASE@/modules/sdtemp			base-kernel-modules     kmod
 ./stand/powerpc-booke/@OSRELEASE@/modules/sdtemp/sdtemp.kmod		base-kernel-modules     kmod
 ./stand/powerpc-booke/@OSRELEASE@/modules/secmodel_bsd44		base-kernel-modules	kmod,compatmodules
diff --git a/distrib/sets/lists/modules/md.i386 b/distrib/sets/lists/modules/md.i386
index d4815b8..6427255 100644
--- a/distrib/sets/lists/modules/md.i386
+++ b/distrib/sets/lists/modules/md.i386
@@ -286,12 +286,25 @@
 ./stand/i386-xen/@OSRELEASE@/modules/dm/dm.kmod				base-kernel-modules	kmod,compatmodules
 ./stand/i386-xen/@OSRELEASE@/modules/drm				base-kernel-modules	kmod,compatmodules
 ./stand/i386-xen/@OSRELEASE@/modules/drm/drm.kmod			base-kernel-modules	kmod,compatmodules
-./stand/i386-xen/@OSRELEASE@/modules/drmkms					base-kernel-modules	kmod
-./stand/i386-xen/@OSRELEASE@/modules/drmkms/drmkms.kmod				base-kernel-modules	kmod
-./stand/i386-xen/@OSRELEASE@/modules/drmkms_linux				base-kernel-modules	kmod
-./stand/i386-xen/@OSRELEASE@/modules/drmkms_linux/drmkms_linux.kmod		base-kernel-modules	kmod
-./stand/i386-xen/@OSRELEASE@/modules/drmkms_pci					base-kernel-modules	kmod
-./stand/i386-xen/@OSRELEASE@/modules/drmkms_pci/drmkms_pci.kmod			base-kernel-modules	kmod
+./stand/i386-xen/@OSRELEASE@/modules/drmkms				base-kernel-modules	kmod,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/drmkms/drmkms.kmod			base-kernel-modules	kmod,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/drmkms_linux			base-kernel-modules	kmod,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/drmkms_linux/drmkms_linux.kmod	base-kernel-modules	kmod,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/drmkms_pci				base-kernel-modules	kmod,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/drmkms_pci/drmkms_pci.kmod		base-kernel-modules	kmod,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/dtrace				base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/dtrace/dtrace.kmod			base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/dtrace_fbt				base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/dtrace_fbt/dtrace_fbt.kmod		base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/dtrace_profile			base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/dtrace_profile/dtrace_profile.kmod	base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/dtrace_sdt				base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/dtrace_sdt/dtrace_sdt.kmod		base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/dtrace_syscall			base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/dtrace_syscall/dtrace_syscall.kmod	base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/dtrace_syscall_linux		base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/dtrace_syscall_linux/dtrace_syscall_linux.kmod	base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/dtv				base-kernel-modules	kmod,compatmodules
 ./stand/i386-xen/@OSRELEASE@/modules/dtv				base-kernel-modules	kmod,compatmodules
 ./stand/i386-xen/@OSRELEASE@/modules/dtv/dtv.kmod			base-kernel-modules	kmod,compatmodules
 ./stand/i386-xen/@OSRELEASE@/modules/dtv_math				base-kernel-modules	kmod,compatmodules
@@ -675,12 +688,24 @@
 ./stand/i386pae-xen/@OSRELEASE@/modules/dm/dm.kmod			base-kernel-modules	kmod,compatmodules
 ./stand/i386pae-xen/@OSRELEASE@/modules/drm				base-kernel-modules	kmod,compatmodules
 ./stand/i386pae-xen/@OSRELEASE@/modules/drm/drm.kmod			base-kernel-modules	kmod,compatmodules
-./stand/i386pae-xen/@OSRELEASE@/modules/drmkms					base-kernel-modules	kmod
-./stand/i386pae-xen/@OSRELEASE@/modules/drmkms/drmkms.kmod			base-kernel-modules	kmod
-./stand/i386pae-xen/@OSRELEASE@/modules/drmkms_linux				base-kernel-modules	kmod
-./stand/i386pae-xen/@OSRELEASE@/modules/drmkms_linux/drmkms_linux.kmod		base-kernel-modules	kmod
-./stand/i386pae-xen/@OSRELEASE@/modules/drmkms_pci				base-kernel-modules	kmod
-./stand/i386pae-xen/@OSRELEASE@/modules/drmkms_pci/drmkms_pci.kmod		base-kernel-modules	kmod
+./stand/i386pae-xen/@OSRELEASE@/modules/drmkms				base-kernel-modules	kmod,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/drmkms/drmkms.kmod		base-kernel-modules	kmod,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/drmkms_linux			base-kernel-modules	kmod,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/drmkms_linux/drmkms_linux.kmod	base-kernel-modules	kmod,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/drmkms_pci			base-kernel-modules	kmod,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/drmkms_pci/drmkms_pci.kmod	base-kernel-modules	kmod,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/dtrace				base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/dtrace/dtrace.kmod		base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/dtrace_fbt			base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/dtrace_fbt/dtrace_fbt.kmod	base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/dtrace_profile				base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/dtrace_profile/dtrace_profile.kmod	base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/dtrace_sdt			base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/dtrace_sdt/dtrace_sdt.kmod	base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/dtrace_syscall			base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/dtrace_syscall/dtrace_syscall.kmod	base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/dtrace_syscall_linux			base-kernel-modules	kmod,dtrace,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/dtrace_syscall_linux/dtrace_syscall_linux.kmod	base-kernel-modules	kmod,dtrace,compatmodules
 ./stand/i386pae-xen/@OSRELEASE@/modules/dtv				base-kernel-modules	kmod,compatmodules
 ./stand/i386pae-xen/@OSRELEASE@/modules/dtv/dtv.kmod			base-kernel-modules	kmod,compatmodules
 ./stand/i386pae-xen/@OSRELEASE@/modules/dtv_math			base-kernel-modules	kmod,compatmodules
diff --git a/distrib/sets/lists/modules/mi b/distrib/sets/lists/modules/mi
index c94d245..5601ae9 100644
--- a/distrib/sets/lists/modules/mi
+++ b/distrib/sets/lists/modules/mi
@@ -58,6 +58,18 @@
 ./@MODULEDIR@/dm/dm.kmod			base-kernel-modules	lvm,kmod
 ./@MODULEDIR@/dtrace				base-kernel-modules	kmod,dtrace
 ./@MODULEDIR@/dtrace/dtrace.kmod		base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/dtrace_fbt				base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/dtrace_fbt/dtrace_fbt.kmod		base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/dtrace_lockstat				base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/dtrace_lockstat/dtrace_lockstat.kmod	base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/dtrace_profile				base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/dtrace_profile/dtrace_profile.kmod	base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/dtrace_sdt				base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/dtrace_sdt/dtrace_sdt.kmod		base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/dtrace_syscall				base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/dtrace_syscall/dtrace_syscall.kmod	base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/dtrace_syscall_linux			base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/dtrace_syscall_linux/dtrace_syscall_linux.kmod	base-kernel-modules	kmod,dtrace
 ./@MODULEDIR@/dtv				base-kernel-modules	kmod
 ./@MODULEDIR@/dtv/dtv.kmod			base-kernel-modules	kmod
 ./@MODULEDIR@/dtv_math				base-kernel-modules	kmod
@@ -68,8 +80,8 @@
 ./@MODULEDIR@/exec_script/exec_script.kmod	base-kernel-modules	kmod
 ./@MODULEDIR@/ext2fs				base-kernel-modules	kmod
 ./@MODULEDIR@/ext2fs/ext2fs.kmod		base-kernel-modules	kmod
-./@MODULEDIR@/fbt				base-kernel-modules	kmod,dtrace
-./@MODULEDIR@/fbt/fbt.kmod			base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/fbt				base-obsolete		obsolete
+./@MODULEDIR@/fbt/fbt.kmod			base-obsolete		obsolete
 ./@MODULEDIR@/fdesc				base-kernel-modules	kmod
 ./@MODULEDIR@/fdesc/fdesc.kmod			base-kernel-modules	kmod
 ./@MODULEDIR@/ffs				base-kernel-modules	kmod
@@ -178,8 +190,8 @@
 ./@MODULEDIR@/ppp_deflate/ppp_deflate.kmod	base-kernel-modules	kmod
 ./@MODULEDIR@/procfs				base-kernel-modules	kmod
 ./@MODULEDIR@/procfs/procfs.kmod		base-kernel-modules	kmod
-./@MODULEDIR@/profile				base-kernel-modules	kmod,dtrace
-./@MODULEDIR@/profile/profile.kmod		base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/profile				base-obsolete		obsolete
+./@MODULEDIR@/profile/profile.kmod		base-obsolete		obsolete
 ./@MODULEDIR@/ptyfs				base-kernel-modules	kmod
 ./@MODULEDIR@/ptyfs/ptyfs.kmod			base-kernel-modules	kmod
 ./@MODULEDIR@/puffs				base-kernel-modules	kmod
@@ -188,8 +200,8 @@
 ./@MODULEDIR@/putter/putter.kmod		base-kernel-modules	kmod
 ./@MODULEDIR@/scsiverbose			base-kernel-modules	kmod
 ./@MODULEDIR@/scsiverbose/scsiverbose.kmod	base-kernel-modules	kmod
-./@MODULEDIR@/sdt				base-kernel-modules	kmod,dtrace
-./@MODULEDIR@/sdt/sdt.kmod			base-kernel-modules	kmod,dtrace
+./@MODULEDIR@/sdt				base-obsolete		obsolete
+./@MODULEDIR@/sdt/sdt.kmod			base-obsolete		obsolete
 ./@MODULEDIR@/sdtemp				base-kernel-modules	kmod
 ./@MODULEDIR@/sdtemp/sdtemp.kmod		base-kernel-modules	kmod
 ./@MODULEDIR@/secmodel_bsd44			base-kernel-modules	kmod
diff --git a/distrib/sets/lists/tests/mi b/distrib/sets/lists/tests/mi
index 3edbca4..74d9610 100644
--- a/distrib/sets/lists/tests/mi
+++ b/distrib/sets/lists/tests/mi
@@ -121,6 +121,7 @@
 ./usr/libdata/debug/usr/tests/lib/libposix/posix1			tests-lib-debug
 ./usr/libdata/debug/usr/tests/lib/libposix/posix2			tests-lib-debug
 ./usr/libdata/debug/usr/tests/lib/libppath				tests-lib-debug
+./usr/libdata/debug/usr/tests/lib/libproc				tests-lib-debug
 ./usr/libdata/debug/usr/tests/lib/libprop				tests-lib-debug
 ./usr/libdata/debug/usr/tests/lib/libpthread				tests-lib-debug
 ./usr/libdata/debug/usr/tests/lib/libpthread/dlopen			tests-lib-debug
@@ -2902,6 +2903,10 @@
 ./usr/tests/lib/libppath/Atffile		tests-lib-tests		atf
 ./usr/tests/lib/libppath/Kyuafile		tests-lib-tests		atf,kyua
 ./usr/tests/lib/libppath/t_ppath		tests-lib-tests		atf
+./usr/tests/lib/libproc				tests-lib-debug		atf
+./usr/tests/lib/libproc/Atffile			tests-lib-debug		atf,dtrace
+./usr/tests/lib/libproc/proc_test		tests-lib-debug		atf,dtrace
+./usr/tests/lib/libproc/target_prog		tests-lib-debug		atf,dtrace
 ./usr/tests/lib/libprop				tests-lib-tests		atf
 ./usr/tests/lib/libprop/Atffile			tests-lib-tests		atf
 ./usr/tests/lib/libprop/Kyuafile		tests-lib-tests		atf,kyua
diff --git a/doc/3RDPARTY b/doc/3RDPARTY
index c034c26..09a55b3 100644
--- a/doc/3RDPARTY
+++ b/doc/3RDPARTY
@@ -1550,3 +1550,25 @@ Mailing List:	none
 Responsible:	christos
 License:	BSD-like (2-clause)
 Location:	usr.bin/timeout
+
+Package:        libproc
+Version:        FreeBSD-2015-09-24
+Current Vers:   FreeBSD-XXXX-YY-ZZ
+Maintainer:     Rui Paulo <rpaulo@FreeBSD.org>
+Archive Site:   none
+Home Page:      none
+Mailing List:   none
+Responsible:    christos
+License:        BSD-like (2-clause)
+Location:       external/bsd/libproc/dist
+
+Package:        librtld_db
+Version:        FreeBSD-2015-09-24
+Current Vers:   FreeBSD-XXXX-YY-ZZ
+Maintainer:     Rui Paulo <rpaulo@FreeBSD.org>
+Archive Site:   none
+Home Page:      none
+Mailing List:   none
+Responsible:    christos
+License:        BSD-like (2-clause)
+Location:       external/bsd/librtld_db/dist
diff --git a/etc/mtree/Makefile b/etc/mtree/Makefile
index 3869268..dd3cfc1 100644
--- a/etc/mtree/Makefile
+++ b/etc/mtree/Makefile
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.24 2013/10/16 14:50:43 christos Exp $
+#	$NetBSD: Makefile,v 1.30 2015/10/09 19:23:18 riz Exp $
 
 .include <bsd.own.mk>
 
@@ -24,6 +24,10 @@ EXTRA_DIST_FILES+=	${.CURDIR}/NetBSD.dist.earm
 EXTRA_DIST_FILES+=	${.CURDIR}/NetBSD.dist.tests
 .endif
 
+.if ${MKDTRACE} != "no"
+EXTRA_DIST_FILES+=	${.CURDIR}/NetBSD.dist.dtrace
+.endif
+
 .if ${MKEXTSRC} != "no"
 EXTRA_DIST_FILES+=	${.CURDIR}/NetBSD.dist.extsrc
 .endif
diff --git a/etc/mtree/NetBSD.dist.dtrace b/etc/mtree/NetBSD.dist.dtrace
new file mode 100644
index 0000000..4f72da3
--- /dev/null
+++ b/etc/mtree/NetBSD.dist.dtrace
@@ -0,0 +1,3 @@
+#	$NetBSD: NetBSD.dist.dtrace,v 1.1 2015/10/09 19:23:18 riz Exp $
+
+./usr/lib/dtrace
diff --git a/etc/mtree/NetBSD.dist.tests b/etc/mtree/NetBSD.dist.tests
index 26b317e..55629f0 100644
--- a/etc/mtree/NetBSD.dist.tests
+++ b/etc/mtree/NetBSD.dist.tests
@@ -1,4 +1,4 @@
-#	$NetBSD: NetBSD.dist.tests,v 1.108 2014/06/30 21:32:59 alnsn Exp $
+#	$NetBSD: NetBSD.dist.tests,v 1.120 2015/09/24 16:02:39 christos Exp $
 
 ./usr/libdata/debug/usr/tests
 ./usr/libdata/debug/usr/tests/atf
@@ -109,6 +109,7 @@
 ./usr/libdata/debug/usr/tests/lib/libposix/posix1
 ./usr/libdata/debug/usr/tests/lib/libposix/posix2
 ./usr/libdata/debug/usr/tests/lib/libppath
+./usr/libdata/debug/usr/tests/lib/libproc
 ./usr/libdata/debug/usr/tests/lib/libprop
 ./usr/libdata/debug/usr/tests/lib/libpthread
 ./usr/libdata/debug/usr/tests/lib/libpthread/dlopen
@@ -281,6 +282,7 @@
 ./usr/tests/lib/libposix/posix1
 ./usr/tests/lib/libposix/posix2
 ./usr/tests/lib/libppath
+./usr/tests/lib/libproc
 ./usr/tests/lib/libprop
 ./usr/tests/lib/libpthread
 ./usr/tests/lib/libpthread/dlopen
diff --git a/external/bsd/Makefile b/external/bsd/Makefile
index e7e44a7..da63306 100644
--- a/external/bsd/Makefile
+++ b/external/bsd/Makefile
@@ -4,8 +4,8 @@
 
 SUBDIR=	acpica am-utils bind byacc cron dhcpcd ekermit elftosb \
 	fetch file flex less \
-	libarchive libevent liblzf libpcap mdocml ntp openresolv tcpdump \
-	tmux top tre wpa
+	libarchive libevent liblzf libpcap mdocml \
+	ntp openresolv tcpdump tmux top tre wpa
 
 .if (${MKATF} != "no")
 SUBDIR+= atf
@@ -35,6 +35,10 @@ SUBDIR+= llvm
 .if (${MKPCC} != "no")
 SUBDIR+= pcc
 .endif
+.if (${MKDTRACE} != "no")
+SUBDIR+= libproc
+SUBDIR+= librtld_db
+.endif
 
 SUBDIR+= blacklist pdisk dhcp nvi ppp smbfs
 
diff --git a/external/bsd/elftoolchain/dist/common/_elftc.h b/external/bsd/elftoolchain/dist/common/_elftc.h
index 42a7d95..1017833 100644
--- a/external/bsd/elftoolchain/dist/common/_elftc.h
+++ b/external/bsd/elftoolchain/dist/common/_elftc.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: _elftc.h,v 1.2 2014/03/09 16:58:03 christos Exp $	*/
+/*	$NetBSD: _elftc.h,v 1.3 2015/09/29 19:43:39 christos Exp $	*/
 
 /*-
  * Copyright (c) 2009 Joseph Koshy
@@ -317,6 +317,10 @@ struct name {							\
 #endif	/* __GNUC__ */
 #endif
 
+#ifndef ELFTC_VCSID
+#define	ELFTC_VCSID(ID)		/**/
+#endif
+
 #endif	/* ELFTC_VCSID */
 
 /*
diff --git a/external/bsd/elftoolchain/dist/libelf/_libelf_config.h b/external/bsd/elftoolchain/dist/libelf/_libelf_config.h
index 6b86104..ac1ee34 100644
--- a/external/bsd/elftoolchain/dist/libelf/_libelf_config.h
+++ b/external/bsd/elftoolchain/dist/libelf/_libelf_config.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: _libelf_config.h,v 1.2 2014/03/09 16:58:04 christos Exp $	*/
+/*	$NetBSD: _libelf_config.h,v 1.3 2015/09/29 19:43:39 christos Exp $	*/
 
 /*-
  * Copyright (c) 2008-2011 Joseph Koshy
@@ -115,7 +115,7 @@
 
 #endif	/* __minix */
 
-#ifdef __NetBSD__
+#if defined(__NetBSD__) || defined(HAVE_NBTOOL_CONFIG_H)
 
 #include <machine/elf_machdep.h>
 
@@ -135,7 +135,7 @@
 #define	Elf_Note		Elf64_Nhdr
 #endif
 
-#endif	/* __NetBSD__ */
+#endif	/* __NetBSD__ || HAVE_NBTOOL_CONFIG_H */
 
 #if defined(__OpenBSD__)
 
diff --git a/external/bsd/elftoolchain/dist/libelf/libelf.h b/external/bsd/elftoolchain/dist/libelf/libelf.h
index f97c274..1d57e963 100644
--- a/external/bsd/elftoolchain/dist/libelf/libelf.h
+++ b/external/bsd/elftoolchain/dist/libelf/libelf.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: libelf.h,v 1.2 2014/03/09 16:58:04 christos Exp $	*/
+/*	$NetBSD: libelf.h,v 1.4 2015/09/29 22:14:14 christos Exp $	*/
 
 /*-
  * Copyright (c) 2006,2008-2010 Joseph Koshy
@@ -35,12 +35,18 @@
 # include "nbtool_config.h"
 #endif
 
-#include <sys/types.h>
-#ifdef __NetBSD__
-#include <sys/exec_elf.h>
+
+#if HAVE_NBTOOL_CONFIG_H
+# include <nbinclude/sys/exec_elf.h>
+#elif defined(__NetBSD__)
+# include <sys/types.h>
+# include <sys/exec_elf.h>
+#elif defined(__FreeBSD__)
+# include <sys/types.h>
+# include <sys/elf32.h>
+# include <sys/elf64.h>
 #else
-#include <sys/elf32.h>
-#include <sys/elf64.h>
+# error "Unsupported platform"
 #endif
 
 /* Library private data structures */
diff --git a/external/bsd/libproc/Makefile b/external/bsd/libproc/Makefile
new file mode 100644
index 0000000..40f9647
--- /dev/null
+++ b/external/bsd/libproc/Makefile
@@ -0,0 +1,5 @@
+# $NetBSD: Makefile,v 1.1 2015/09/24 14:12:47 christos Exp $
+
+SUBDIR= lib .WAIT tests
+
+.include <bsd.subdir.mk>
diff --git a/external/bsd/libproc/Makefile.inc b/external/bsd/libproc/Makefile.inc
new file mode 100644
index 0000000..80395ab
--- /dev/null
+++ b/external/bsd/libproc/Makefile.inc
@@ -0,0 +1,3 @@
+# $NetBSD: Makefile.inc,v 1.1 2015/09/24 14:12:48 christos Exp $
+
+LIBPROCDIR:=	${.PARSEDIR}/dist
diff --git a/external/bsd/libproc/dist/Makefile b/external/bsd/libproc/dist/Makefile
new file mode 100644
index 0000000..3a96a18
--- /dev/null
+++ b/external/bsd/libproc/dist/Makefile
@@ -0,0 +1,49 @@
+# $FreeBSD: head/lib/libproc/Makefile 284345 2015-06-13 19:20:56Z sjg $
+
+.include <src.opts.mk>
+
+LIB=	proc
+
+SRCS=	proc_bkpt.c		\
+	proc_create.c		\
+	proc_regs.c		\
+	proc_sym.c		\
+	proc_rtld.c		\
+	proc_util.c
+
+INCS=	libproc.h
+
+CFLAGS+=	-I${.CURDIR}
+# avoid cyclic dependency
+CFLAGS+=	-I${.CURDIR:H}/librtld_db
+GENDIRDEPS_FILTER+= Nlib/librtld_db
+
+.if ${MK_CXX} == "no"
+CFLAGS+=	-DNO_CXA_DEMANGLE
+.elif ${MK_LIBCPLUSPLUS} != "no"
+LIBADD+=		cxxrt
+.else
+LIBADD+=	supcplusplus
+.endif
+
+LIBADD+=	elf rtld_db util
+
+.if ${MK_CDDL} != "no"
+LIBADD+=	ctf
+IGNORE_PRAGMA=	YES
+CFLAGS+=	-I${.CURDIR}/../../cddl/contrib/opensolaris/lib/libctf/common \
+		-I${.CURDIR}/../../sys/cddl/contrib/opensolaris/uts/common \
+		-I${.CURDIR}/../../sys/cddl/compat/opensolaris
+.else
+CFLAGS+=	-DNO_CTF
+.endif
+
+SHLIB_MAJOR=	3
+
+MAN=
+
+.if ${MK_TESTS} != "no"
+SUBDIR+=	tests
+.endif
+
+.include <bsd.lib.mk>
diff --git a/external/bsd/libproc/dist/Makefile.depend b/external/bsd/libproc/dist/Makefile.depend
new file mode 100644
index 0000000..43ed7ab
--- /dev/null
+++ b/external/bsd/libproc/dist/Makefile.depend
@@ -0,0 +1,23 @@
+# $FreeBSD: head/lib/libproc/Makefile.depend 284345 2015-06-13 19:20:56Z sjg $
+# Autogenerated - do NOT edit!
+
+DIRDEPS = \
+	cddl/lib/libctf \
+	gnu/lib/csu \
+	gnu/lib/libgcc \
+	include \
+	include/xlocale \
+	lib/${CSU_DIR} \
+	lib/libc \
+	lib/libcompiler_rt \
+	lib/libcxxrt \
+	lib/libelf \
+	lib/libutil \
+	usr.bin/xinstall.host \
+
+
+.include <dirdeps.mk>
+
+.if ${DEP_RELDIR} == ${_DEP_RELDIR}
+# local dependencies - needed for -jN in clean tree
+.endif
diff --git a/external/bsd/libproc/dist/_libproc.h b/external/bsd/libproc/dist/_libproc.h
new file mode 100644
index 0000000..d524a4f
--- /dev/null
+++ b/external/bsd/libproc/dist/_libproc.h
@@ -0,0 +1,59 @@
+/*-
+ * Copyright (c) 2008 John Birrell (jb@freebsd.org)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: head/lib/libproc/_libproc.h 265255 2014-05-03 04:44:03Z markj $
+ */
+
+#include <sys/cdefs.h>
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/event.h>
+#include <sys/ptrace.h>
+#include <rtld_db.h>
+
+#include "libproc.h"
+
+struct proc_handle {
+	pid_t	pid;			/* Process ID. */
+	int	kq;			/* Kernel event queue ID. */
+	int	flags;			/* Process flags. */
+	int	status;			/* Process status (PS_*). */
+	int	wstat;			/* Process wait status. */
+	rd_agent_t *rdap;		/* librtld_db agent */
+	rd_loadobj_t *rdobjs;
+	size_t	rdobjsz;
+	size_t	nobjs;
+	struct lwpstatus lwps;
+	rd_loadobj_t *rdexec;		/* rdobj index of program executable. */
+	char	execname[MAXPATHLEN];	/* Path to program executable. */
+};
+
+#ifdef DEBUG
+#define	DPRINTF(...) 	warn(__VA_ARGS__)
+#define	DPRINTFX(...)	warnx(__VA_ARGS__)
+#else
+#define	DPRINTF(...)    do { } while (0)
+#define	DPRINTFX(...)   do { } while (0)
+#endif
diff --git a/external/bsd/libproc/dist/libproc.h b/external/bsd/libproc/dist/libproc.h
new file mode 100644
index 0000000..e833e31
--- /dev/null
+++ b/external/bsd/libproc/dist/libproc.h
@@ -0,0 +1,164 @@
+/*-
+ * Copyright (c) 2010 The FreeBSD Foundation
+ * Copyright (c) 2008 John Birrell (jb@freebsd.org)
+ * All rights reserved.
+ *
+ * Portions of this software were developed by Rui Paulo under sponsorship
+ * from the FreeBSD Foundation.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: head/lib/libproc/libproc.h 272488 2014-10-03 23:20:37Z markj $
+ */
+
+#ifndef	_LIBPROC_H_
+#define	_LIBPROC_H_
+
+#include <gelf.h>
+#include <rtld_db.h>
+#include <limits.h>
+#include <sys/ptrace.h>
+
+struct ctf_file;
+struct proc_handle;
+
+typedef void (*proc_child_func)(void *);
+
+/* Values returned by proc_state(). */
+#define PS_IDLE		1
+#define PS_STOP		2
+#define PS_RUN		3
+#define PS_UNDEAD	4
+#define PS_DEAD		5
+#define PS_LOST		6
+
+/* Reason values for proc_detach(). */
+#define PRELEASE_HANG	1
+#define PRELEASE_KILL	2
+
+typedef struct prmap {
+	uintptr_t	pr_vaddr;	/* Virtual address. */
+	size_t		pr_size;	/* Mapping size in bytes */
+	size_t		pr_offset;	/* Mapping offset in object */
+	char		pr_mapname[PATH_MAX];	/* Mapping filename */
+	uint8_t		pr_mflags;	/* Protection flags */
+#define	MA_READ		0x01
+#define	MA_WRITE	0x02
+#define	MA_EXEC		0x04
+#define	MA_COW		0x08
+#define MA_NEEDS_COPY	0x10
+#define	MA_NOCOREDUMP	0x20
+} prmap_t;
+
+typedef struct prsyminfo {
+	u_int		prs_lmid;	/* Map id. */
+	u_int		prs_id;		/* Symbol id. */
+} prsyminfo_t;
+
+typedef int proc_map_f(void *, const prmap_t *, const char *);
+typedef int proc_sym_f(void *, const GElf_Sym *, const char *);
+
+/* Values for ELF sections */
+#define	PR_SYMTAB	1
+#define PR_DYNSYM	2
+
+/* Values for the 'mask' parameter in the iteration functions */
+#define	BIND_LOCAL	0x0001
+#define BIND_GLOBAL	0x0002
+#define BIND_WEAK	0x0004
+#define BIND_ANY	(BIND_LOCAL|BIND_GLOBAL|BIND_WEAK)
+#define TYPE_NOTYPE	0x0100
+#define TYPE_OBJECT	0x0200
+#define TYPE_FUNC	0x0400
+#define TYPE_SECTION	0x0800
+#define TYPE_FILE	0x1000
+#define TYPE_ANY	(TYPE_NOTYPE|TYPE_OBJECT|TYPE_FUNC|TYPE_SECTION|\
+    			 TYPE_FILE)
+
+typedef enum {
+	REG_PC,
+	REG_SP,
+	REG_RVAL1,
+	REG_RVAL2
+} proc_reg_t;
+
+#define SIG2STR_MAX	8
+
+typedef struct lwpstatus {
+	int pr_why;
+#define PR_REQUESTED	1
+#define PR_FAULTED	2
+#define PR_SYSENTRY	3
+#define PR_SYSEXIT	4
+#define PR_SIGNALLED	5
+	int pr_what;
+#define FLTBPT		-1
+} lwpstatus_t;
+
+typedef struct {
+	uint8_t data[PTRACE_BREAKPOINT_SIZE];
+} proc_breakpoint_t;
+
+typedef unsigned long proc_regvalue_t;
+
+/* Function prototype definitions. */
+__BEGIN_DECLS
+
+prmap_t *proc_addr2map(struct proc_handle *, uintptr_t);
+prmap_t *proc_name2map(struct proc_handle *, const char *);
+char	*proc_objname(struct proc_handle *, uintptr_t, char *, size_t);
+prmap_t *proc_obj2map(struct proc_handle *, const char *);
+int	proc_iter_objs(struct proc_handle *, proc_map_f *, void *);
+int	proc_iter_symbyaddr(struct proc_handle *, const char *, int,
+	     int, proc_sym_f *, void *);
+int	proc_addr2sym(struct proc_handle *, uintptr_t, char *, size_t, GElf_Sym *);
+int	proc_attach(pid_t pid, int flags, struct proc_handle **pphdl);
+int	proc_continue(struct proc_handle *);
+int	proc_clearflags(struct proc_handle *, int);
+int	proc_create(const char *, char * const *, proc_child_func *, void *,
+	    struct proc_handle **);
+int	proc_detach(struct proc_handle *, int);
+int	proc_getflags(struct proc_handle *);
+int	proc_name2sym(struct proc_handle *, const char *, const char *,
+	    GElf_Sym *, prsyminfo_t *);
+struct ctf_file *proc_name2ctf(struct proc_handle *, const char *);
+int	proc_setflags(struct proc_handle *, int);
+int	proc_state(struct proc_handle *);
+pid_t	proc_getpid(struct proc_handle *);
+int	proc_wstatus(struct proc_handle *);
+int	proc_getwstat(struct proc_handle *);
+char *	proc_signame(int, char *, size_t);
+int	proc_read(struct proc_handle *, void *, size_t, size_t);
+const lwpstatus_t *proc_getlwpstatus(struct proc_handle *);
+void	proc_free(struct proc_handle *);
+rd_agent_t *proc_rdagent(struct proc_handle *);
+void	proc_updatesyms(struct proc_handle *);
+int	proc_bkptset(struct proc_handle *, uintptr_t, proc_breakpoint_t *);
+int	proc_bkptdel(struct proc_handle *, uintptr_t, proc_breakpoint_t *);
+void	proc_bkptregadj(unsigned long *);
+int	proc_bkptexec(struct proc_handle *, proc_breakpoint_t *);
+int	proc_regget(struct proc_handle *, proc_reg_t, proc_regvalue_t *);
+int	proc_regset(struct proc_handle *, proc_reg_t, proc_regvalue_t);
+
+__END_DECLS
+
+#endif /* !_LIBPROC_H_ */
diff --git a/external/bsd/libproc/dist/proc_bkpt.c b/external/bsd/libproc/dist/proc_bkpt.c
new file mode 100644
index 0000000..a7cdd3d
--- /dev/null
+++ b/external/bsd/libproc/dist/proc_bkpt.c
@@ -0,0 +1,243 @@
+/*
+ * Copyright (c) 2010 The FreeBSD Foundation 
+ * All rights reserved. 
+ * 
+ * This software was developed by Rui Paulo under sponsorship from the
+ * FreeBSD Foundation. 
+ *  
+ * Redistribution and use in source and binary forms, with or without 
+ * modification, are permitted provided that the following conditions 
+ * are met: 
+ * 1. Redistributions of source code must retain the above copyright 
+ *    notice, this list of conditions and the following disclaimer. 
+ * 2. Redistributions in binary form must reproduce the above copyright 
+ *    notice, this list of conditions and the following disclaimer in the 
+ *    documentation and/or other materials provided with the distribution. 
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
+ * SUCH DAMAGE. 
+ */ 
+
+#include <sys/cdefs.h>
+#ifdef __FBSDID
+__FBSDID("$FreeBSD: head/lib/libproc/proc_bkpt.c 287106 2015-08-24 12:17:15Z andrew $");
+#else
+__RCSID("$NetBSD: proc_bkpt.c,v 1.4 2015/09/25 19:09:38 christos Exp $");
+#endif
+
+#include <sys/types.h>
+#include <sys/ptrace.h>
+#include <sys/wait.h>
+
+#include <assert.h>
+#include <string.h>
+#include <err.h>
+#include <errno.h>
+#include <inttypes.h>
+#include <signal.h>
+#include <stdio.h>
+#include "_libproc.h"
+
+#ifndef PTRACE_BREAKPOINT
+#error "Add support for your architecture"
+#endif
+
+static int
+proc_stop(struct proc_handle *phdl)
+{
+	int status;
+
+	if (kill(proc_getpid(phdl), SIGSTOP) == -1) {
+		DPRINTF("kill %d", proc_getpid(phdl));
+		return (-1);
+	} else if (waitpid(proc_getpid(phdl), &status, WSTOPPED) == -1) {
+		DPRINTF("waitpid %d", proc_getpid(phdl));
+		return (-1);
+	} else if (!WIFSTOPPED(status)) {
+		DPRINTFX("waitpid: unexpected status 0x%x", status);
+		return (-1);
+	}
+
+	return (0);
+}
+
+int
+proc_bkptset(struct proc_handle *phdl, uintptr_t address,
+    proc_breakpoint_t *saved)
+{
+	struct ptrace_io_desc piod;
+	unsigned long paddr, caddr;
+	int ret = 0, stopped;
+	proc_breakpoint_t copy;
+
+	if (phdl->status == PS_DEAD || phdl->status == PS_UNDEAD ||
+	    phdl->status == PS_IDLE) {
+		errno = ENOENT;
+		return (-1);
+	}
+
+	DPRINTFX("adding breakpoint at 0x%lx", address);
+
+	stopped = 0;
+	if (phdl->status != PS_STOP) {
+		if (proc_stop(phdl) != 0)
+			return (-1);
+		stopped = 1;
+	}
+
+	/*
+	 * Read the original instruction.
+	 */
+	caddr = address;
+	paddr = 0;
+	piod.piod_op = PIOD_READ_I;
+	piod.piod_offs = (void *)caddr;
+	piod.piod_addr = (void *)saved->data;
+	piod.piod_len  = sizeof(saved->data);
+	if (ptrace(PT_IO, proc_getpid(phdl), &piod, 0) < 0) {
+		DPRINTF("ERROR: couldn't read instruction at address 0x%"
+		    PRIuPTR, address);
+		ret = -1;
+		goto done;
+	}
+	/*
+	 * Write a breakpoint instruction to that address.
+	 */
+	caddr = address;
+	piod.piod_op = PIOD_WRITE_I;
+	piod.piod_offs = (void *)caddr;
+	piod.piod_addr = (void *)PTRACE_BREAKPOINT;
+	piod.piod_len  = sizeof(PTRACE_BREAKPOINT);
+	if (ptrace(PT_IO, proc_getpid(phdl), &piod, 0) < 0) {
+		DPRINTF("ERROR: couldn't write instruction at address 0x%"
+		    PRIuPTR, address);
+		ret = -1;
+		goto done;
+	}
+
+done:
+	if (stopped)
+		/* Restart the process if we had to stop it. */
+		proc_continue(phdl);
+
+	return (ret);
+}
+
+int
+proc_bkptdel(struct proc_handle *phdl, uintptr_t address,
+    proc_breakpoint_t *saved)
+{
+	struct ptrace_io_desc piod;
+	unsigned long paddr, caddr;
+	int ret = 0, stopped;
+
+	if (phdl->status == PS_DEAD || phdl->status == PS_UNDEAD ||
+	    phdl->status == PS_IDLE) {
+		errno = ENOENT;
+		return (-1);
+	}
+
+	DPRINTFX("removing breakpoint at 0x%lx", address);
+
+	stopped = 0;
+	if (phdl->status != PS_STOP) {
+		if (proc_stop(phdl) != 0)
+			return (-1);
+		stopped = 1;
+	}
+
+	/*
+	 * Overwrite the breakpoint instruction that we setup previously.
+	 */
+	caddr = address;
+	piod.piod_op = PIOD_WRITE_I;
+	piod.piod_offs = (void *)caddr;
+	piod.piod_addr = (void *)saved->data;
+	piod.piod_len  = sizeof(saved->data);
+	if (ptrace(PT_IO, proc_getpid(phdl), &piod, 0) < 0) {
+		DPRINTF("ERROR: couldn't write instruction at address 0x%"
+		    PRIuPTR, address);
+		ret = -1;
+	}
+
+	if (stopped)
+		/* Restart the process if we had to stop it. */
+		proc_continue(phdl);
+ 
+	return (ret);
+}
+
+/*
+ * Decrement pc so that we delete the breakpoint at the correct
+ * address, i.e. at the breakpoint instruction address.
+ *
+ * This is only needed on some architectures where the pc value
+ * when reading registers points at the instruction after the
+ * breakpoint, e.g. x86.
+ */
+void
+proc_bkptregadj(unsigned long *pc)
+{
+
+	(void)pc;
+#ifdef PTRACE_BREAKPOINT_ADJ
+	*pc = *pc - PTRACE_BREAKPOINT_ADJ;
+#endif
+}
+
+/*
+ * Step over the breakpoint.
+ */
+int
+proc_bkptexec(struct proc_handle *phdl, proc_breakpoint_t *saved)
+{
+	unsigned long pc;
+	proc_breakpoint_t samesaved;
+	int status;
+
+	if (proc_regget(phdl, REG_PC, &pc) < 0) {
+		DPRINTFX("ERROR: couldn't get PC register");
+		return (-1);
+	}
+	proc_bkptregadj(&pc);
+	if (proc_bkptdel(phdl, pc, saved) < 0) {
+		DPRINTFX("ERROR: couldn't delete breakpoint");
+		return (-1);
+	}
+	/*
+	 * Go back in time and step over the new instruction just
+	 * set up by proc_bkptdel().
+	 */
+	proc_regset(phdl, REG_PC, pc);
+	if (ptrace(PT_STEP, proc_getpid(phdl), (void *)(intptr_t)1, 0) < 0) {
+		DPRINTFX("ERROR: ptrace step failed");
+		return (-1);
+	}
+	proc_wstatus(phdl);
+	status = proc_getwstat(phdl);
+	if (!WIFSTOPPED(status)) {
+		DPRINTFX("ERROR: don't know why process stopped");
+		return (-1);
+	}
+	/*
+	 * Restore the breakpoint. The saved instruction should be
+	 * the same as the one that we were passed in.
+	 */
+	if (proc_bkptset(phdl, pc, &samesaved) < 0) {
+		DPRINTFX("ERROR: couldn't restore breakpoint");
+		return (-1);
+	}
+
+	assert(memcmp(saved, &samesaved, sizeof(samesaved)) == 0);
+
+	return (0);
+}
diff --git a/external/bsd/libproc/dist/proc_create.c b/external/bsd/libproc/dist/proc_create.c
new file mode 100644
index 0000000..bd52ffb
--- /dev/null
+++ b/external/bsd/libproc/dist/proc_create.c
@@ -0,0 +1,191 @@
+/*-
+ * Copyright (c) 2008 John Birrell (jb@freebsd.org)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: head/lib/libproc/proc_create.c 265255 2014-05-03 04:44:03Z markj $
+ */
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: proc_create.c,v 1.2 2015/09/24 14:12:48 christos Exp $");
+
+#include <sys/types.h>
+#include <sys/sysctl.h>
+#include <sys/wait.h>
+
+#include <err.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "_libproc.h"
+
+static int	proc_init(pid_t, int, int, struct proc_handle *);
+
+static int
+proc_init(pid_t pid, int flags, int status, struct proc_handle *phdl)
+{
+	int mib[4], error;
+	size_t len;
+
+	memset(phdl, 0, sizeof(*phdl));
+	phdl->pid = pid;
+	phdl->flags = flags;
+	phdl->status = status;
+
+	mib[0] = CTL_KERN;
+	mib[1] = KERN_PROC_ARGS;
+	mib[2] = pid;
+	mib[3] = KERN_PROC_PATHNAME;
+	len = sizeof(phdl->execname);
+	if (sysctl(mib, 4, phdl->execname, &len, NULL, 0) != 0) {
+		error = errno;
+		DPRINTF("ERROR: cannot get pathname for child process %d", pid);
+		return (error);
+	}
+	if (len == 0)
+		phdl->execname[0] = '\0';
+
+	return (0);
+}
+
+int
+proc_attach(pid_t pid, int flags, struct proc_handle **pphdl)
+{
+	struct proc_handle *phdl;
+	int error = 0;
+	int status;
+
+	if (pid == 0 || pid == getpid())
+		return (EINVAL);
+
+	/*
+	 * Allocate memory for the process handle, a structure containing
+	 * all things related to the process.
+	 */
+	if ((phdl = malloc(sizeof(struct proc_handle))) == NULL)
+		return (ENOMEM);
+
+	elf_version(EV_CURRENT);
+
+	error = proc_init(pid, flags, PS_RUN, phdl);
+	if (error != 0)
+		goto out;
+
+	if (ptrace(PT_ATTACH, phdl->pid, 0, 0) != 0) {
+		error = errno;
+		DPRINTF("ERROR: cannot ptrace child process %d", pid);
+		goto out;
+	}
+
+	/* Wait for the child process to stop. */
+	if (waitpid(pid, &status, WUNTRACED) == -1) {
+		error = errno;
+		DPRINTF("ERROR: child process %d didn't stop as expected", pid);
+		goto out;
+	}
+
+	/* Check for an unexpected status. */
+	if (WIFSTOPPED(status) == 0)
+		DPRINTFX("ERROR: child process %d status 0x%x", pid, status);
+	else
+		phdl->status = PS_STOP;
+
+out:
+	if (error)
+		proc_free(phdl);
+	else
+		*pphdl = phdl;
+	return (error);
+}
+
+int
+proc_create(const char *file, char * const *argv, proc_child_func *pcf,
+    void *child_arg, struct proc_handle **pphdl)
+{
+	struct proc_handle *phdl;
+	int error = 0;
+	int status;
+	pid_t pid;
+
+	/*
+	 * Allocate memory for the process handle, a structure containing
+	 * all things related to the process.
+	 */
+	if ((phdl = malloc(sizeof(struct proc_handle))) == NULL)
+		return (ENOMEM);
+
+	elf_version(EV_CURRENT);
+
+	/* Fork a new process. */
+	if ((pid = vfork()) == -1)
+		error = errno;
+	else if (pid == 0) {
+		/* The child expects to be traced. */
+		if (ptrace(PT_TRACE_ME, 0, 0, 0) != 0)
+			_exit(1);
+
+		if (pcf != NULL)
+			(*pcf)(child_arg);
+
+		/* Execute the specified file: */
+		execvp(file, argv);
+
+		/* Couldn't execute the file. */
+		_exit(2);
+	} else {
+		/* The parent owns the process handle. */
+		error = proc_init(pid, 0, PS_IDLE, phdl);
+		if (error != 0)
+			goto bad;
+
+		/* Wait for the child process to stop. */
+		if (waitpid(pid, &status, WUNTRACED) == -1) {
+			error = errno;
+			DPRINTF("ERROR: child process %d didn't stop as expected", pid);
+			goto bad;
+		}
+
+		/* Check for an unexpected status. */
+		if (WIFSTOPPED(status) == 0) {
+			error = errno;
+			DPRINTFX("ERROR: child process %d status 0x%x", pid, status);
+			goto bad;
+		} else
+			phdl->status = PS_STOP;
+	}
+bad:
+	if (error)
+		proc_free(phdl);
+	else
+		*pphdl = phdl;
+	return (error);
+}
+
+void
+proc_free(struct proc_handle *phdl)
+{
+	free(phdl);
+}
diff --git a/external/bsd/libproc/dist/proc_regs.c b/external/bsd/libproc/dist/proc_regs.c
new file mode 100644
index 0000000..e2e6d8b
--- /dev/null
+++ b/external/bsd/libproc/dist/proc_regs.c
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2010 The FreeBSD Foundation 
+ * All rights reserved. 
+ * 
+ * This software was developed by Rui Paulo under sponsorship from the
+ * FreeBSD Foundation. 
+ *  
+ * Redistribution and use in source and binary forms, with or without 
+ * modification, are permitted provided that the following conditions 
+ * are met: 
+ * 1. Redistributions of source code must retain the above copyright 
+ *    notice, this list of conditions and the following disclaimer. 
+ * 2. Redistributions in binary form must reproduce the above copyright 
+ *    notice, this list of conditions and the following disclaimer in the 
+ *    documentation and/or other materials provided with the distribution. 
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
+ * SUCH DAMAGE. 
+ */ 
+
+#include <sys/cdefs.h>
+#ifdef __FBSDID
+__FBSDID("$FreeBSD: head/lib/libproc/proc_regs.c 285003 2015-07-01 13:59:26Z br $");
+#else
+__RCSID("$NetBSD: proc_regs.c,v 1.4 2015/09/25 19:09:38 christos Exp $");
+#endif
+
+#include <sys/types.h>
+#include <sys/ptrace.h>
+
+#include <err.h>
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <sys/ucontext.h>
+#include "_libproc.h"
+
+int
+proc_regget(struct proc_handle *phdl, proc_reg_t reg, unsigned long *regvalue)
+{
+	struct reg regs;
+
+	if (phdl->status == PS_DEAD || phdl->status == PS_UNDEAD ||
+	    phdl->status == PS_IDLE) {
+		errno = ENOENT;
+		return (-1);
+	}
+	memset(&regs, 0, sizeof(regs));
+	if (ptrace(PT_GETREGS, proc_getpid(phdl), &regs, 0) < 0)
+		return (-1);
+	switch (reg) {
+	case REG_PC:
+#ifdef PTRACE_REG_PC
+		*regvalue = PTRACE_REG_PC(&regs);
+#else
+#	error "Add support for your architecture"
+#endif
+		break;
+	case REG_SP:
+#ifdef PTRACE_REG_SP
+		*regvalue = PTRACE_REG_SP(&regs);
+#else
+#	error "Add support for your architecture"
+#endif
+		break;
+	default:
+		DPRINTFX("ERROR: no support for reg number %d", reg);
+		return (-1);
+	}
+
+	return (0);
+}
+
+int
+proc_regset(struct proc_handle *phdl, proc_reg_t reg, unsigned long regvalue)
+{
+	struct reg regs;
+
+	if (phdl->status == PS_DEAD || phdl->status == PS_UNDEAD ||
+	    phdl->status == PS_IDLE) {
+		errno = ENOENT;
+		return (-1);
+	}
+	if (ptrace(PT_GETREGS, proc_getpid(phdl), &regs, 0) < 0)
+		return (-1);
+	switch (reg) {
+	case REG_PC:
+#ifdef PTRACE_REG_SET_PC
+		PTRACE_REG_SET_PC(&regs, regvalue);
+#else
+#	error "Add support for your architecture"
+#endif
+		break;
+	case REG_SP:
+#ifdef PTRACE_REG_SP
+		PTRACE_REG_SP(&regs) = regvalue;
+#else
+#	error "Add support for your architecture"
+#endif
+		break;
+	default:
+		DPRINTFX("ERROR: no support for reg number %d", reg);
+		return (-1);
+	}
+	if (ptrace(PT_SETREGS, proc_getpid(phdl), &regs, 0) < 0)
+		return (-1);
+
+	return (0);
+}
diff --git a/external/bsd/libproc/dist/proc_rtld.c b/external/bsd/libproc/dist/proc_rtld.c
new file mode 100644
index 0000000..a82962b
--- /dev/null
+++ b/external/bsd/libproc/dist/proc_rtld.c
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2010 The FreeBSD Foundation 
+ * All rights reserved. 
+ * 
+ * This software was developed by Rui Paulo under sponsorship from the
+ * FreeBSD Foundation. 
+ *  
+ * Redistribution and use in source and binary forms, with or without 
+ * modification, are permitted provided that the following conditions 
+ * are met: 
+ * 1. Redistributions of source code must retain the above copyright 
+ *    notice, this list of conditions and the following disclaimer. 
+ * 2. Redistributions in binary form must reproduce the above copyright 
+ *    notice, this list of conditions and the following disclaimer in the 
+ *    documentation and/or other materials provided with the distribution. 
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
+ * SUCH DAMAGE. 
+ */ 
+
+#include <sys/cdefs.h>
+#ifdef __FBSDID
+__FBSDID("$FreeBSD: head/lib/libproc/proc_rtld.c 265255 2014-05-03 04:44:03Z markj $");
+#else
+__RCSID("$NetBSD: proc_rtld.c,v 1.2 2015/09/24 14:12:48 christos Exp $");
+#endif
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <rtld_db.h>
+#include "libproc.h"
+#include "_libproc.h"
+
+void *
+reallocf(void *ptr, size_t size)
+{
+	void *nptr;
+
+	nptr = realloc(ptr, size);
+	if (!nptr && ptr && size != 0)
+		free(ptr);
+	return (nptr);
+}
+
+static int
+map_iter(const rd_loadobj_t *lop, void *arg)
+{
+	struct proc_handle *phdl = arg;
+
+	if (phdl->nobjs >= phdl->rdobjsz) {
+		phdl->rdobjsz *= 2;
+		phdl->rdobjs = reallocf(phdl->rdobjs, sizeof(*phdl->rdobjs) *
+		    phdl->rdobjsz);
+		if (phdl->rdobjs == NULL)
+			return (-1);
+	}
+	if (strcmp(lop->rdl_path, phdl->execname) == 0 &&
+	    (lop->rdl_prot & RD_RDL_X) != 0)
+		phdl->rdexec = &phdl->rdobjs[phdl->nobjs];
+	memcpy(&phdl->rdobjs[phdl->nobjs++], lop, sizeof(*lop));
+
+	return (0);
+}
+
+rd_agent_t *
+proc_rdagent(struct proc_handle *phdl)
+{
+	if (phdl->rdap == NULL && phdl->status != PS_UNDEAD &&
+	    phdl->status != PS_IDLE) {
+		if ((phdl->rdap = rd_new(phdl)) != NULL) {
+			phdl->rdobjs = malloc(sizeof(*phdl->rdobjs) * 64);
+			phdl->rdobjsz = 64;
+			if (phdl->rdobjs == NULL)
+				return (phdl->rdap);
+			rd_loadobj_iter(phdl->rdap, map_iter, phdl);
+		}
+	}
+
+	return (phdl->rdap);
+}
+
+void
+proc_updatesyms(struct proc_handle *phdl)
+{
+
+	memset(phdl->rdobjs, 0, sizeof(*phdl->rdobjs) * phdl->rdobjsz);
+	phdl->nobjs = 0;
+	rd_loadobj_iter(phdl->rdap, map_iter, phdl);
+}
diff --git a/external/bsd/libproc/dist/proc_sym.c b/external/bsd/libproc/dist/proc_sym.c
new file mode 100644
index 0000000..1f3cfe6
--- /dev/null
+++ b/external/bsd/libproc/dist/proc_sym.c
@@ -0,0 +1,646 @@
+/*-
+ * Copyright (c) 2010 The FreeBSD Foundation
+ * Copyright (c) 2008 John Birrell (jb@freebsd.org)
+ * All rights reserved.
+ *
+ * Portions of this software were developed by Rui Paulo under sponsorship
+ * from the FreeBSD Foundation.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+#ifdef __FBSDID
+__FBSDID("$FreeBSD: head/lib/libproc/proc_sym.c 279946 2015-03-13 04:26:48Z stas $");
+#else
+__RCSID("$NetBSD: proc_sym.c,v 1.2 2015/09/24 14:12:48 christos Exp $");
+#endif
+
+#include <sys/types.h>
+#ifndef NO_CTF
+#include <sys/ctf.h>
+#include <sys/ctf_api.h>
+#endif
+#include <sys/user.h>
+#include <sys/sysctl.h>
+
+#include <assert.h>
+#include <err.h>
+#include <fcntl.h>
+#include <libgen.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#ifndef NO_CTF
+#include <libctf.h>
+#endif
+#include <util.h>
+
+#include "_libproc.h"
+
+#ifdef NO_CTF
+typedef struct ctf_file ctf_file_t;
+#endif
+
+#ifndef NO_CXA_DEMANGLE
+extern char *__cxa_demangle(const char *, char *, size_t *, int *);
+#endif /* NO_CXA_DEMANGLE */
+
+static void	proc_rdl2prmap(rd_loadobj_t *, prmap_t *);
+
+#ifdef __NetBSD__
+static char *basename_r(const char *path, char *buf)
+{
+	// We "know" this works.
+	if (path[0])
+		strlcpy(buf, strrchr(path, '/') + 1, PATH_MAX);
+	else
+		buf[0] = '\0';
+	return buf;
+}
+#endif
+
+static void
+demangle(const char *symbol, char *buf, size_t len)
+{
+#ifndef NO_CXA_DEMANGLE
+	char *dembuf;
+
+	if (symbol[0] == '_' && symbol[1] == 'Z' && symbol[2]) {
+		dembuf = __cxa_demangle(symbol, NULL, NULL, NULL);
+		if (!dembuf)
+			goto fail;
+		strlcpy(buf, dembuf, len);
+		free(dembuf);
+		return;
+	}
+fail:
+#endif /* NO_CXA_DEMANGLE */
+	strlcpy(buf, symbol, len);
+}
+
+static int
+find_dbg_obj(const char *path)
+{
+	int fd;
+	char dbg_path[PATH_MAX];
+
+	snprintf(dbg_path, sizeof(dbg_path),
+	    "/usr/lib/debug/%s.debug", path);
+	fd = open(dbg_path, O_RDONLY);
+	if (fd >= 0)
+		return (fd);
+	else
+		return (open(path, O_RDONLY));
+}
+
+static void
+proc_rdl2prmap(rd_loadobj_t *rdl, prmap_t *map)
+{
+	map->pr_vaddr = rdl->rdl_saddr;
+	map->pr_size = rdl->rdl_eaddr - rdl->rdl_saddr;
+	map->pr_offset = rdl->rdl_offset;
+	map->pr_mflags = 0;
+	if (rdl->rdl_prot & RD_RDL_R)
+		map->pr_mflags |= MA_READ;
+	if (rdl->rdl_prot & RD_RDL_W)
+		map->pr_mflags |= MA_WRITE;
+	if (rdl->rdl_prot & RD_RDL_X)
+		map->pr_mflags |= MA_EXEC;
+	strlcpy(map->pr_mapname, rdl->rdl_path,
+	    sizeof(map->pr_mapname));
+}
+
+char *
+proc_objname(struct proc_handle *p, uintptr_t addr, char *objname,
+    size_t objnamesz)
+{
+	size_t i;
+	rd_loadobj_t *rdl;
+
+	for (i = 0; i < p->nobjs; i++) {
+		rdl = &p->rdobjs[i];
+		if (addr >= rdl->rdl_saddr && addr < rdl->rdl_eaddr) {
+			strlcpy(objname, rdl->rdl_path, objnamesz);
+			return (objname);
+		}
+	}
+	return (NULL);
+}
+
+prmap_t *
+proc_obj2map(struct proc_handle *p, const char *objname)
+{
+	size_t i;
+	prmap_t *map;
+	rd_loadobj_t *rdl;
+	char path[MAXPATHLEN];
+
+	rdl = NULL;
+	for (i = 0; i < p->nobjs; i++) {
+		basename_r(p->rdobjs[i].rdl_path, path);
+		if (strcmp(path, objname) == 0) {
+			rdl = &p->rdobjs[i];
+			break;
+		}
+	}
+	if (rdl == NULL) {
+		if (strcmp(objname, "a.out") == 0 && p->rdexec != NULL)
+			rdl = p->rdexec;
+		else
+			return (NULL);
+	}
+
+	if ((map = malloc(sizeof(*map))) == NULL)
+		return (NULL);
+	proc_rdl2prmap(rdl, map);
+	return (map);
+}
+
+int
+proc_iter_objs(struct proc_handle *p, proc_map_f *func, void *cd)
+{
+	size_t i;
+	rd_loadobj_t *rdl;
+	prmap_t map;
+	char path[MAXPATHLEN];
+	char last[MAXPATHLEN];
+	int error;
+
+	if (p->nobjs == 0)
+		return (-1);
+
+	error = 0;
+	memset(last, 0, sizeof(last));
+	for (i = 0; i < p->nobjs; i++) {
+		rdl = &p->rdobjs[i];
+		proc_rdl2prmap(rdl, &map);
+		basename_r(rdl->rdl_path, path);
+		/*
+		 * We shouldn't call the callback twice with the same object.
+		 * To do that we are assuming the fact that if there are
+		 * repeated object names (i.e. different mappings for the
+		 * same object) they occur next to each other.
+		 */
+		if (strcmp(path, last) == 0)
+			continue;
+		if ((error = (*func)(cd, &map, path)) != 0)
+			break;
+		strlcpy(last, path, sizeof(last));
+	}
+	return (error);
+}
+
+prmap_t *
+proc_addr2map(struct proc_handle *p, uintptr_t addr)
+{
+	size_t i, cnt, lastvn = 0;
+	prmap_t *map;
+	rd_loadobj_t *rdl;
+	struct kinfo_vmentry *kves, *kve;
+
+	/*
+	 * If we don't have a cache of listed objects, we need to query
+	 * it ourselves.
+	 */
+	if (p->nobjs == 0) {
+		if ((kves = kinfo_getvmmap(p->pid, &cnt)) == NULL)
+			return (NULL);
+		for (i = 0; i < (size_t)cnt; i++) {
+			kve = kves + i;
+			if (kve->kve_type == KVME_TYPE_VNODE)
+				lastvn = i;
+			if (addr >= kve->kve_start && addr < kve->kve_end) {
+				if ((map = malloc(sizeof(*map))) == NULL) {
+					free(kves);
+					return (NULL);
+				}
+				map->pr_vaddr = kve->kve_start;
+				map->pr_size = kve->kve_end - kve->kve_start;
+				map->pr_offset = kve->kve_offset;
+				map->pr_mflags = 0;
+				if (kve->kve_protection & KVME_PROT_READ)
+					map->pr_mflags |= MA_READ;
+				if (kve->kve_protection & KVME_PROT_WRITE)
+					map->pr_mflags |= MA_WRITE;
+				if (kve->kve_protection & KVME_PROT_EXEC)
+					map->pr_mflags |= MA_EXEC;
+				if (kve->kve_flags & KVME_FLAG_COW)
+					map->pr_mflags |= MA_COW;
+				if (kve->kve_flags & KVME_FLAG_NEEDS_COPY)
+					map->pr_mflags |= MA_NEEDS_COPY;
+				if (kve->kve_flags & KVME_FLAG_NOCOREDUMP)
+					map->pr_mflags |= MA_NOCOREDUMP;
+				strlcpy(map->pr_mapname, kves[lastvn].kve_path,
+				    sizeof(map->pr_mapname));
+				free(kves);
+				return (map);
+			}
+		}
+		free(kves);
+		return (NULL);
+	}
+
+	for (i = 0; i < p->nobjs; i++) {
+		rdl = &p->rdobjs[i];
+		if (addr >= rdl->rdl_saddr && addr < rdl->rdl_eaddr) {
+			if ((map = malloc(sizeof(*map))) == NULL)
+				return (NULL);
+			proc_rdl2prmap(rdl, map);
+			return (map);
+		}
+	}
+	return (NULL);
+}
+
+/*
+ * Look up the symbol at addr, returning a copy of the symbol and its name.
+ */
+static int
+lookup_addr(Elf *e, Elf_Scn *scn, u_long stridx, uintptr_t off, uintptr_t addr,
+    const char **name, GElf_Sym *symcopy)
+{
+	GElf_Sym sym;
+	Elf_Data *data;
+	const char *s;
+	uint64_t rsym;
+	int i;
+
+	if ((data = elf_getdata(scn, NULL)) == NULL) {
+		DPRINTFX("ERROR: elf_getdata() failed: %s", elf_errmsg(-1));
+		return (1);
+	}
+	for (i = 0; gelf_getsym(data, i, &sym) != NULL; i++) {
+		rsym = off + sym.st_value;
+		if (addr >= rsym && addr < rsym + sym.st_size) {
+			s = elf_strptr(e, stridx, sym.st_name);
+			if (s != NULL) {
+				*name = s;
+				memcpy(symcopy, &sym, sizeof(*symcopy));
+				/*
+				 * DTrace expects the st_value to contain
+				 * only the address relative to the start of
+				 * the function.
+				 */
+				symcopy->st_value = rsym;
+				return (0);
+			}
+		}
+	}
+	return (1);
+}
+
+int
+proc_addr2sym(struct proc_handle *p, uintptr_t addr, char *name,
+    size_t namesz, GElf_Sym *symcopy)
+{
+	GElf_Ehdr ehdr;
+	GElf_Shdr shdr;
+	Elf *e;
+	Elf_Scn *scn, *dynsymscn = NULL, *symtabscn = NULL;
+	prmap_t *map;
+	const char *s;
+	uintptr_t off;
+	u_long symtabstridx = 0, dynsymstridx = 0;
+	int fd, error = -1;
+
+	if ((map = proc_addr2map(p, addr)) == NULL)
+		return (-1);
+	if ((fd = find_dbg_obj(map->pr_mapname)) < 0) {
+		DPRINTF("ERROR: open %s failed", map->pr_mapname);
+		goto err0;
+	}
+	if ((e = elf_begin(fd, ELF_C_READ, NULL)) == NULL) {
+		DPRINTFX("ERROR: elf_begin() failed: %s", elf_errmsg(-1));
+		goto err1;
+	}
+	if (gelf_getehdr(e, &ehdr) == NULL) {
+		DPRINTFX("ERROR: gelf_getehdr() failed: %s", elf_errmsg(-1));
+		goto err2;
+	}
+
+	/*
+	 * Find the index of the STRTAB and SYMTAB sections to locate
+	 * symbol names.
+	 */
+	scn = NULL;
+	while ((scn = elf_nextscn(e, scn)) != NULL) {
+		gelf_getshdr(scn, &shdr);
+		switch (shdr.sh_type) {
+		case SHT_SYMTAB:
+			symtabscn = scn;
+			symtabstridx = shdr.sh_link;
+			break;
+		case SHT_DYNSYM:
+			dynsymscn = scn;
+			dynsymstridx = shdr.sh_link;
+			break;
+		}
+	}
+
+	off = ehdr.e_type == ET_EXEC ? 0 : map->pr_vaddr;
+
+	/*
+	 * First look up the symbol in the dynsymtab, and fall back to the
+	 * symtab if the lookup fails.
+	 */
+	error = lookup_addr(e, dynsymscn, dynsymstridx, off, addr, &s, symcopy);
+	if (error == 0)
+		goto out;
+
+	error = lookup_addr(e, symtabscn, symtabstridx, off, addr, &s, symcopy);
+	if (error != 0)
+		goto err2;
+
+out:
+	demangle(s, name, namesz);
+err2:
+	elf_end(e);
+err1:
+	close(fd);
+err0:
+	free(map);
+	return (error);
+}
+
+prmap_t *
+proc_name2map(struct proc_handle *p, const char *name)
+{
+	size_t i, cnt;
+	prmap_t *map = NULL;
+	char tmppath[MAXPATHLEN];
+	struct kinfo_vmentry *kves, *kve;
+	rd_loadobj_t *rdl;
+
+	/*
+	 * If we haven't iterated over the list of loaded objects,
+	 * librtld_db isn't yet initialized and it's very likely
+	 * that librtld_db called us. We need to do the heavy
+	 * lifting here to find the symbol librtld_db is looking for.
+	 */
+	if (p->nobjs == 0) {
+		if ((kves = kinfo_getvmmap(proc_getpid(p), &cnt)) == NULL)
+			return (NULL);
+		for (i = 0; i < (size_t)cnt; i++) {
+			kve = kves + i;
+			basename_r(kve->kve_path, tmppath);
+			if (strcmp(tmppath, name) == 0) {
+				map = proc_addr2map(p, kve->kve_start);
+				break;
+			}
+		}
+		free(kves);
+	} else
+		for (i = 0; i < p->nobjs; i++) {
+			rdl = &p->rdobjs[i];
+			basename_r(rdl->rdl_path, tmppath);
+			if (strcmp(tmppath, name) == 0) {
+				if ((map = malloc(sizeof(*map))) == NULL)
+					return (NULL);
+				proc_rdl2prmap(rdl, map);
+				break;
+			}
+		}
+
+	if (map == NULL && strcmp(name, "a.out") == 0 && p->rdexec != NULL)
+		map = proc_addr2map(p, p->rdexec->rdl_saddr);
+
+	return (map);
+}
+
+/*
+ * Look up the symbol with the given name and return a copy of it.
+ */
+static int
+lookup_name(Elf *e, Elf_Scn *scn, u_long stridx, const char *symbol,
+    GElf_Sym *symcopy, prsyminfo_t *si)
+{
+	GElf_Sym sym;
+	Elf_Data *data;
+	char *s;
+	int i;
+
+	if ((data = elf_getdata(scn, NULL)) == NULL) {
+		DPRINTFX("ERROR: elf_getdata() failed: %s", elf_errmsg(-1));
+		return (1);
+	}
+	for (i = 0; gelf_getsym(data, i, &sym) != NULL; i++) {
+		s = elf_strptr(e, stridx, sym.st_name);
+		if (s != NULL && strcmp(s, symbol) == 0) {
+			memcpy(symcopy, &sym, sizeof(*symcopy));
+			if (si != NULL)
+				si->prs_id = i;
+			return (0);
+		}
+	}
+	return (1);
+}
+
+int
+proc_name2sym(struct proc_handle *p, const char *object, const char *symbol,
+    GElf_Sym *symcopy, prsyminfo_t *si)
+{
+	Elf *e;
+	Elf_Scn *scn, *dynsymscn = NULL, *symtabscn = NULL;
+	GElf_Shdr shdr;
+	GElf_Ehdr ehdr;
+	prmap_t *map;
+	uintptr_t off;
+	u_long symtabstridx = 0, dynsymstridx = 0;
+	int fd, error = -1;
+
+	if ((map = proc_name2map(p, object)) == NULL) {
+		DPRINTFX("ERROR: couldn't find object %s", object);
+		goto err0;
+	}
+	if ((fd = find_dbg_obj(map->pr_mapname)) < 0) {
+		DPRINTF("ERROR: open %s failed", map->pr_mapname);
+		goto err0;
+	}
+	if ((e = elf_begin(fd, ELF_C_READ, NULL)) == NULL) {
+		DPRINTFX("ERROR: elf_begin() failed: %s", elf_errmsg(-1));
+		goto err1;
+	}
+	if (gelf_getehdr(e, &ehdr) == NULL) {
+		DPRINTFX("ERROR: gelf_getehdr() failed: %s", elf_errmsg(-1));
+		goto err2;
+	}
+	/*
+	 * Find the index of the STRTAB and SYMTAB sections to locate
+	 * symbol names.
+	 */
+	scn = NULL;
+	while ((scn = elf_nextscn(e, scn)) != NULL) {
+		gelf_getshdr(scn, &shdr);
+		switch (shdr.sh_type) {
+		case SHT_SYMTAB:
+			symtabscn = scn;
+			symtabstridx = shdr.sh_link;
+			break;
+		case SHT_DYNSYM:
+			dynsymscn = scn;
+			dynsymstridx = shdr.sh_link;
+			break;
+		}
+	}
+
+	/*
+	 * First look up the symbol in the dynsymtab, and fall back to the
+	 * symtab if the lookup fails.
+	 */
+	error = lookup_name(e, dynsymscn, dynsymstridx, symbol, symcopy, si);
+	if (error == 0)
+		goto out;
+
+	error = lookup_name(e, symtabscn, symtabstridx, symbol, symcopy, si);
+	if (error == 0)
+		goto out;
+
+out:
+	off = ehdr.e_type == ET_EXEC ? 0 : map->pr_vaddr;
+	symcopy->st_value += off;
+
+err2:
+	elf_end(e);
+err1:
+	close(fd);
+err0:
+	free(map);
+
+	return (error);
+}
+
+ctf_file_t *
+proc_name2ctf(struct proc_handle *p, const char *name)
+{
+#ifndef NO_CTF
+	ctf_file_t *ctf;
+	prmap_t *map;
+	int error;
+
+	if ((map = proc_name2map(p, name)) == NULL)
+		return (NULL);
+
+	ctf = ctf_open(map->pr_mapname, &error);
+	free(map);
+	return (ctf);
+#else
+	(void)p;
+	(void)name;
+	return (NULL);
+#endif
+}
+
+int
+proc_iter_symbyaddr(struct proc_handle *p, const char *object, int which,
+    int mask, proc_sym_f *func, void *cd)
+{
+	Elf *e;
+	int i, fd;
+	prmap_t *map;
+	Elf_Scn *scn, *foundscn = NULL;
+	Elf_Data *data;
+	GElf_Ehdr ehdr;
+	GElf_Shdr shdr;
+	GElf_Sym sym;
+	unsigned long stridx = -1;
+	char *s;
+	int error = -1;
+
+	if ((map = proc_name2map(p, object)) == NULL)
+		return (-1);
+	if ((fd = find_dbg_obj(map->pr_mapname)) < 0) {
+		DPRINTF("ERROR: open %s failed", map->pr_mapname);
+		goto err0;
+	}
+	if ((e = elf_begin(fd, ELF_C_READ, NULL)) == NULL) {
+		DPRINTFX("ERROR: elf_begin() failed: %s", elf_errmsg(-1));
+		goto err1;
+	}
+	if (gelf_getehdr(e, &ehdr) == NULL) {
+		DPRINTFX("ERROR: gelf_getehdr() failed: %s", elf_errmsg(-1));
+		goto err2;
+	}
+	/*
+	 * Find the section we are looking for.
+	 */
+	scn = NULL;
+	while ((scn = elf_nextscn(e, scn)) != NULL) {
+		gelf_getshdr(scn, &shdr);
+		if (which == PR_SYMTAB &&
+		    shdr.sh_type == SHT_SYMTAB) {
+			foundscn = scn;
+			break;
+		} else if (which == PR_DYNSYM &&
+		    shdr.sh_type == SHT_DYNSYM) {
+			foundscn = scn;
+			break;
+		}
+	}
+	if (!foundscn)
+		return (-1);
+	stridx = shdr.sh_link;
+	if ((data = elf_getdata(foundscn, NULL)) == NULL) {
+		DPRINTFX("ERROR: elf_getdata() failed: %s", elf_errmsg(-1));
+		goto err2;
+	}
+	for (i = 0; gelf_getsym(data, i, &sym) != NULL; i++) {
+		if (GELF_ST_BIND(sym.st_info) == STB_LOCAL &&
+		    (mask & BIND_LOCAL) == 0)
+			continue;
+		if (GELF_ST_BIND(sym.st_info) == STB_GLOBAL &&
+		    (mask & BIND_GLOBAL) == 0)
+			continue;
+		if (GELF_ST_BIND(sym.st_info) == STB_WEAK &&
+		    (mask & BIND_WEAK) == 0)
+			continue;
+		if (GELF_ST_TYPE(sym.st_info) == STT_NOTYPE &&
+		    (mask & TYPE_NOTYPE) == 0)
+			continue;
+		if (GELF_ST_TYPE(sym.st_info) == STT_OBJECT &&
+		    (mask & TYPE_OBJECT) == 0)
+			continue;
+		if (GELF_ST_TYPE(sym.st_info) == STT_FUNC &&
+		    (mask & TYPE_FUNC) == 0)
+			continue;
+		if (GELF_ST_TYPE(sym.st_info) == STT_SECTION &&
+		    (mask & TYPE_SECTION) == 0)
+			continue;
+		if (GELF_ST_TYPE(sym.st_info) == STT_FILE &&
+		    (mask & TYPE_FILE) == 0)
+			continue;
+		s = elf_strptr(e, stridx, sym.st_name);
+		if (ehdr.e_type != ET_EXEC)
+			sym.st_value += map->pr_vaddr;
+		if ((error = (*func)(cd, &sym, s)) != 0)
+			goto err2;
+	}
+	error = 0;
+err2:
+	elf_end(e);
+err1:
+	close(fd);
+err0:
+	free(map);
+	return (error);
+}
diff --git a/external/bsd/libproc/dist/proc_util.c b/external/bsd/libproc/dist/proc_util.c
new file mode 100644
index 0000000..9306a4e
--- /dev/null
+++ b/external/bsd/libproc/dist/proc_util.c
@@ -0,0 +1,246 @@
+/*-
+ * Copyright (c) 2010 The FreeBSD Foundation
+ * Copyright (c) 2008 John Birrell (jb@freebsd.org)
+ * All rights reserved.
+ * 
+ * Portions of this software were developed by Rui Paulo under sponsorship
+ * from the FreeBSD Foundation.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: head/lib/libproc/proc_util.c 265308 2014-05-04 03:34:32Z markj $
+ */
+
+#include <sys/types.h>
+#include <sys/ptrace.h>
+#include <sys/wait.h>
+#include <err.h>
+#include <errno.h>
+#include <signal.h>
+#include <string.h>
+#include <unistd.h>
+#include "_libproc.h"
+
+int
+proc_clearflags(struct proc_handle *phdl, int mask)
+{
+
+	if (phdl == NULL)
+		return (EINVAL);
+
+	phdl->flags &= ~mask;
+
+	return (0);
+}
+
+/*
+ * NB: we return -1 as the Solaris libproc Psetrun() function.
+ */
+int
+proc_continue(struct proc_handle *phdl)
+{
+	int pending = 0;
+
+	if (phdl == NULL)
+		return (-1);
+
+	if (phdl->status == PS_STOP && WSTOPSIG(phdl->wstat) != SIGTRAP)
+		pending = WSTOPSIG(phdl->wstat);
+	if (ptrace(PT_CONTINUE, phdl->pid, (void *)(uintptr_t)1, pending) != 0)
+		return (-1);
+
+	phdl->status = PS_RUN;
+
+	return (0);
+}
+
+int
+proc_detach(struct proc_handle *phdl, int reason)
+{
+	int status;
+
+	if (phdl == NULL)
+		return EINVAL;
+	if (reason == PRELEASE_KILL) {
+		ptrace(PT_DETACH, phdl->pid, (void *)(uintptr_t)1, 0);
+		kill(phdl->pid, SIGKILL);
+		return 0;
+	}
+	if (ptrace(PT_DETACH, phdl->pid, (void *)(uintptr_t)1, 0) == 0)
+		return 0;
+
+	switch (errno) {
+	case ESRCH:
+		return 0;
+	case EBUSY:
+		break;
+	default:
+		return -1;
+	}
+
+	if (kill(phdl->pid, SIGSTOP) == -1)
+		return -1;
+
+	waitpid(phdl->pid, &status, WUNTRACED);
+
+	if (ptrace(PT_DETACH, phdl->pid, (void *)(uintptr_t)1, 0) == -1)
+		return -1;
+
+	if (kill(phdl->pid, SIGCONT) == -1)
+		return -1;
+
+	return 0;
+}
+
+int
+proc_getflags(struct proc_handle *phdl)
+{
+
+	if (phdl == NULL)
+		return (-1);
+
+	return(phdl->flags);
+}
+
+int
+proc_setflags(struct proc_handle *phdl, int mask)
+{
+
+	if (phdl == NULL)
+		return (EINVAL);
+
+	phdl->flags |= mask;
+
+	return (0);
+}
+
+int
+proc_state(struct proc_handle *phdl)
+{
+
+	if (phdl == NULL)
+		return (-1);
+
+	return (phdl->status);
+}
+
+pid_t
+proc_getpid(struct proc_handle *phdl)
+{
+
+	if (phdl == NULL)
+		return (-1);
+
+	return (phdl->pid);
+}
+
+int
+proc_wstatus(struct proc_handle *phdl)
+{
+	int status;
+
+	if (phdl == NULL)
+		return (-1);
+	if (waitpid(phdl->pid, &status, WUNTRACED) < 0) {
+		if (errno != EINTR)
+			DPRINTF("waitpid");
+		return (-1);
+	}
+	if (WIFSTOPPED(status))
+		phdl->status = PS_STOP;
+	if (WIFEXITED(status) || WIFSIGNALED(status))
+		phdl->status = PS_UNDEAD;
+	phdl->wstat = status;
+
+	return (phdl->status);
+}
+
+int
+proc_getwstat(struct proc_handle *phdl)
+{
+
+	if (phdl == NULL)
+		return (-1);
+
+	return (phdl->wstat);
+}
+
+char *
+proc_signame(int sig, char *name, size_t namesz)
+{
+
+	strlcpy(name, strsignal(sig), namesz);
+
+	return (name);
+}
+
+int
+proc_read(struct proc_handle *phdl, void *buf, size_t size, size_t addr)
+{
+	struct ptrace_io_desc piod;
+
+	if (phdl == NULL)
+		return (-1);
+	piod.piod_op = PIOD_READ_D;
+	piod.piod_len = size;
+	piod.piod_addr = (void *)buf;
+	piod.piod_offs = (void *)addr;
+
+	if (ptrace(PT_IO, phdl->pid, (void *)&piod, 0) < 0)
+		return (-1);
+	return (piod.piod_len);
+}
+
+const lwpstatus_t *
+proc_getlwpstatus(struct proc_handle *phdl)
+{
+	struct ptrace_lwpinfo lwpinfo;
+	lwpstatus_t *psp = &phdl->lwps;
+	siginfo_t *siginfo;
+
+	if (phdl == NULL)
+		return (NULL);
+	if (ptrace(PT_LWPINFO, phdl->pid, (void *)&lwpinfo,
+	    sizeof(lwpinfo)) < 0)
+		return (NULL);
+#ifdef PL_FLAG_SI
+	siginfo = &lwpinfo.pl_siginfo;
+	if (lwpinfo.pl_event == PL_EVENT_SIGNAL &&
+	    (lwpinfo.pl_flags & PL_FLAG_SI) != 0) {
+		if (siginfo->si_signo == SIGTRAP &&
+		    (siginfo->si_code == TRAP_BRKPT ||
+		    siginfo->si_code == TRAP_TRACE)) {
+			psp->pr_why = PR_FAULTED;
+			psp->pr_what = FLTBPT;
+		} else {
+			psp->pr_why = PR_SIGNALLED;
+			psp->pr_what = siginfo->si_signo;
+		}
+	} else if (lwpinfo.pl_flags & PL_FLAG_SCE) {
+		psp->pr_why = PR_SYSENTRY;
+	} else if (lwpinfo.pl_flags & PL_FLAG_SCX) {
+		psp->pr_why = PR_SYSEXIT;
+	}
+#endif
+
+	return (psp);
+}
diff --git a/external/bsd/libproc/dist/tests/Makefile b/external/bsd/libproc/dist/tests/Makefile
new file mode 100644
index 0000000..50a8236
--- /dev/null
+++ b/external/bsd/libproc/dist/tests/Makefile
@@ -0,0 +1,21 @@
+# $FreeBSD: head/lib/libproc/tests/Makefile 271937 2014-09-21 21:25:41Z markj $
+
+TESTSDIR=	${TESTSBASE}/lib/libproc
+
+ATF_TESTS_C+=	proc_test
+
+PROGS=		target_prog
+SRCS_target_prog=	target_prog.c
+BINDIR_target_prog=	${TESTSDIR}
+
+LDADD+=	-lelf -lproc -lrtld_db -lutil
+DPADD+=	${LIBELF} ${LIBPROC} ${LIBRTLD_DB} ${LIBUTIL}
+
+# Ensure that symbols aren't stripped from the test program, as they're needed
+# for testing symbol lookup.
+STRIP=
+
+MAN=
+WARNS?=	6
+
+.include <bsd.test.mk>
diff --git a/external/bsd/libproc/dist/tests/proc_test.c b/external/bsd/libproc/dist/tests/proc_test.c
new file mode 100644
index 0000000..196b2cc
--- /dev/null
+++ b/external/bsd/libproc/dist/tests/proc_test.c
@@ -0,0 +1,420 @@
+/*-
+ * Copyright (c) 2014, 2015 Mark Johnston <markj@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+#ifdef __FBSDID
+__FBSDID("$FreeBSD: head/lib/libproc/tests/proc_test.c 286863 2015-08-17 23:19:36Z emaste $");
+#endif
+__RCSID("$NetBSD: proc_test.c,v 1.5 2015/09/25 19:08:33 christos Exp $");
+
+#include <sys/types.h>
+#include <sys/wait.h>
+
+#include <libgen.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <atf-c.h>
+#include <libelf.h>
+#include <libproc.h>
+
+static const char *aout_object = "a.out";
+#if defined(__NetBSD__)
+static const char *r_debug_state = "_rtld_debug_state";
+#elif defined(__FreeBSD__)
+static const char *r_debug_state = "r_debug_state";
+#endif
+
+#if !defined(__aarch64__)
+#if defined(__NetBSD__)
+static const char *ldelf_object = "ld.elf_so";
+#elif defined(__FreeBSD__)
+static const char *ldelf_object = "ld-elf.so.1";
+#endif
+#endif
+static const char *target_prog_file = "target_prog";
+
+#ifdef __NetBSD__
+static char *
+basename_r(const char *path, char *buf)
+{
+	// XX: We know this works
+	strlcpy(buf, strrchr(path, '/') + 1, PATH_MAX);
+	return buf;
+}
+#endif
+
+/*
+ * Run the test program. If the sig parameter is set to true, the test program
+ * will deliver SIGUSR1 to itself during execution.
+ */
+static struct proc_handle *
+start_prog(const struct atf_tc *tc, bool sig)
+{
+	char *argv[3];
+	struct proc_handle *phdl;
+	int error;
+
+	asprintf(&argv[0], "%s/%s", atf_tc_get_config_var(tc, "srcdir"),
+	    target_prog_file);
+	ATF_REQUIRE(argv[0] != NULL);
+
+	if (sig) {
+		argv[1] = strdup("-s");
+		argv[2] = NULL;
+	} else {
+		argv[1] = NULL;
+	}
+
+	error = proc_create(argv[0], argv, NULL, NULL, &phdl);
+	ATF_REQUIRE_EQ_MSG(error, 0, "failed to run '%s'", target_prog_file);
+	ATF_REQUIRE(phdl != NULL);
+
+	free(argv[0]);
+	free(argv[1]);
+
+	return (phdl);
+}
+
+#if !defined(__aarch64__)
+static void
+set_bkpt(struct proc_handle *phdl, uintptr_t addr, proc_breakpoint_t *saved)
+{
+	int error;
+
+	error = proc_bkptset(phdl, addr, saved);
+	ATF_REQUIRE_EQ_MSG(error, 0, "failed to set breakpoint at 0x%jx",
+	    (uintmax_t)addr);
+}
+
+static void
+remove_bkpt(struct proc_handle *phdl, uintptr_t addr, proc_breakpoint_t *val)
+{
+	int error;
+
+	error = proc_bkptdel(phdl, addr, val);
+	ATF_REQUIRE_EQ_MSG(error, 0,
+	    "failed to delete breakpoint at 0x%jx", (uintmax_t)addr);
+
+	error = proc_regset(phdl, REG_PC, addr);
+	ATF_REQUIRE_EQ_MSG(error, 0, "failed to reset program counter");
+}
+
+/*
+ * Wait for the specified process to hit a breakpoint at the specified symbol.
+ */
+static void
+verify_bkpt(struct proc_handle *phdl, GElf_Sym *sym, const char *symname,
+    const char *mapname)
+{
+	char mapbname[MAXPATHLEN], *name;
+	GElf_Sym tsym;
+	prmap_t *map;
+	size_t namesz;
+	u_long addr;
+	int error, state;
+
+	state = proc_wstatus(phdl);
+	ATF_REQUIRE_EQ_MSG(state, PS_STOP, "process has state %d", state);
+
+	/* Get the program counter and decrement it. */
+	error = proc_regget(phdl, REG_PC, &addr);
+	ATF_REQUIRE_EQ_MSG(error, 0, "failed to obtain PC for '%s'",
+	    target_prog_file);
+	proc_bkptregadj(&addr);
+
+	/*
+	 * Make sure the PC matches the expected value obtained from the symbol
+	 * definition we looked up earlier.
+	 */
+	ATF_CHECK_EQ_MSG(addr, sym->st_value,
+	    "program counter 0x%lx doesn't match expected value 0x%jx",
+	    addr, (uintmax_t)sym->st_value);
+
+	/*
+	 * Ensure we can look up the r_debug_state symbol using its starting
+	 * address and that the resulting symbol matches the one we found using
+	 * a name lookup.
+	 */
+	namesz = strlen(symname) + 1;
+	name = malloc(namesz);
+	ATF_REQUIRE(name != NULL);
+
+	error = proc_addr2sym(phdl, addr, name, namesz, &tsym);
+	ATF_REQUIRE_EQ_MSG(error, 0, "failed to look up symbol at 0x%lx", addr);
+	ATF_REQUIRE_EQ(memcmp(sym, &tsym, sizeof(*sym)), 0);
+	ATF_REQUIRE_EQ_MSG(strcmp(symname, name), 0,
+	    "expected symbol name '%s' doesn't match '%s'", symname, name);
+	free(name);
+
+	map = proc_addr2map(phdl, addr);
+	ATF_REQUIRE_MSG(map != NULL, "failed to look up map for address 0x%lx",
+	    addr);
+	basename_r(map->pr_mapname, mapbname);
+	ATF_REQUIRE_EQ_MSG(strcmp(mapname, mapbname), 0,
+	    "expected map name '%s' doesn't match '%s'", mapname, mapbname);
+}
+#endif
+
+ATF_TC(map_alias_obj2map);
+ATF_TC_HEAD(map_alias_obj2map, tc)
+{
+	atf_tc_set_md_var(tc, "descr",
+	    "Callers are supposed to be able to use \"a.out\" as an alias for "
+	    "the program executable. Make sure that proc_obj2map() handles "
+	    "this properly.");
+}
+ATF_TC_BODY(map_alias_obj2map, tc)
+{
+	struct proc_handle *phdl;
+	prmap_t *map1, *map2;
+
+	phdl = start_prog(tc, false);
+
+	/* Initialize the rtld_db handle. */
+	(void)proc_rdagent(phdl);
+
+	/* Ensure that "target_prog" and "a.out" return the same map. */
+	map1 = proc_obj2map(phdl, target_prog_file);
+	ATF_REQUIRE_MSG(map1 != NULL, "failed to look up map for '%s'",
+	    target_prog_file);
+	map2 = proc_obj2map(phdl, aout_object);
+	ATF_REQUIRE_MSG(map2 != NULL, "failed to look up map for '%s'",
+	    aout_object);
+	ATF_CHECK_EQ(strcmp(map1->pr_mapname, map2->pr_mapname), 0);
+
+	ATF_CHECK_EQ_MSG(proc_detach(phdl, PRELEASE_HANG), 0, "failed to detach");
+
+	proc_free(phdl);
+}
+
+ATF_TC(map_alias_name2map);
+ATF_TC_HEAD(map_alias_name2map, tc)
+{
+	atf_tc_set_md_var(tc, "descr",
+	    "Callers are supposed to be able to use \"a.out\" as an alias for "
+	    "the program executable. Make sure that proc_name2map() handles "
+	    "this properly.");
+}
+ATF_TC_BODY(map_alias_name2map, tc)
+{
+	struct proc_handle *phdl;
+	prmap_t *map1, *map2;
+
+	phdl = start_prog(tc, false);
+
+	/* Initialize the rtld_db handle. */
+	(void)proc_rdagent(phdl);
+
+	/* Ensure that "target_prog" and "a.out" return the same map. */
+	map1 = proc_name2map(phdl, target_prog_file);
+	ATF_REQUIRE_MSG(map1 != NULL, "failed to look up map for '%s'",
+	    target_prog_file);
+	map2 = proc_name2map(phdl, aout_object);
+	ATF_REQUIRE_MSG(map2 != NULL, "failed to look up map for '%s'",
+	    aout_object);
+	ATF_CHECK_EQ(strcmp(map1->pr_mapname, map2->pr_mapname), 0);
+
+	ATF_CHECK_EQ_MSG(proc_detach(phdl, PRELEASE_HANG), 0, "failed to detach");
+
+	proc_free(phdl);
+}
+
+ATF_TC(map_alias_name2sym);
+ATF_TC_HEAD(map_alias_name2sym, tc)
+{
+	atf_tc_set_md_var(tc, "descr",
+	    "Callers are supposed to be able to use \"a.out\" as an alias for "
+	    "the program executable. Make sure that proc_name2sym() handles "
+	    "this properly.");
+}
+ATF_TC_BODY(map_alias_name2sym, tc)
+{
+	GElf_Sym sym1, sym2;
+	prsyminfo_t si1, si2;
+	struct proc_handle *phdl;
+	int error;
+
+	phdl = start_prog(tc, false);
+
+	/* Initialize the rtld_db handle. */
+	(void)proc_rdagent(phdl);
+
+	/*
+	 * Make sure that "target_prog:main" and "a.out:main" return the same
+	 * symbol.
+	 */
+	error = proc_name2sym(phdl, target_prog_file, "main", &sym1, &si1);
+	ATF_REQUIRE_EQ_MSG(error, 0, "failed to look up 'main' via %s",
+	    target_prog_file);
+	error = proc_name2sym(phdl, aout_object, "main", &sym2, &si2);
+	ATF_REQUIRE_EQ_MSG(error, 0, "failed to look up 'main' via %s",
+	    aout_object);
+
+	ATF_CHECK_EQ(memcmp(&sym1, &sym2, sizeof(sym1)), 0);
+	ATF_CHECK_EQ(si1.prs_id, si2.prs_id);
+
+	ATF_CHECK_EQ_MSG(proc_detach(phdl, PRELEASE_HANG), 0, "failed to detach");
+
+	proc_free(phdl);
+}
+
+#if !defined(__aarch64__)
+ATF_TC(symbol_lookup);
+ATF_TC_HEAD(symbol_lookup, tc)
+{
+	atf_tc_set_md_var(tc, "descr",
+	    "Look up a couple of well-known symbols in the test program, place "
+	    "breakpoints on them, and verify that we hit the breakpoints. Also "
+	    "make sure that we can use the breakpoint address to look up the "
+	    "corresponding symbol.");
+}
+ATF_TC_BODY(symbol_lookup, tc)
+{
+	GElf_Sym main_sym, r_debug_state_sym;
+	struct proc_handle *phdl;
+	proc_breakpoint_t saved;
+	int error;
+
+	phdl = start_prog(tc, false);
+
+	error = proc_name2sym(phdl, target_prog_file, "main", &main_sym, NULL);
+	ATF_REQUIRE_EQ_MSG(error, 0, "failed to look up 'main'");
+
+	error = proc_name2sym(phdl, ldelf_object, r_debug_state,
+	    &r_debug_state_sym, NULL);
+	ATF_REQUIRE_EQ_MSG(error, 0, "failed to look up '%s'", r_debug_state);
+
+	set_bkpt(phdl, (uintptr_t)r_debug_state_sym.st_value, &saved);
+	ATF_CHECK_EQ_MSG(proc_continue(phdl), 0, "failed to resume execution");
+	verify_bkpt(phdl, &r_debug_state_sym, r_debug_state, ldelf_object);
+	remove_bkpt(phdl, (uintptr_t)r_debug_state_sym.st_value, &saved);
+
+	set_bkpt(phdl, (uintptr_t)main_sym.st_value, &saved);
+	ATF_CHECK_EQ_MSG(proc_continue(phdl), 0, "failed to resume execution");
+	verify_bkpt(phdl, &main_sym, "main", target_prog_file);
+	remove_bkpt(phdl, (uintptr_t)main_sym.st_value, &saved);
+
+	ATF_CHECK_EQ_MSG(proc_detach(phdl, PRELEASE_HANG), 0, "failed to detach");
+
+	proc_free(phdl);
+}
+
+ATF_TC(symbol_lookup_fail);
+ATF_TC_HEAD(symbol_lookup_fail, tc)
+{
+	atf_tc_set_md_var(tc, "descr",
+	    "Verify that proc_addr2sym() returns an error when given an offset "
+	    "that it cannot resolve.");
+}
+ATF_TC_BODY(symbol_lookup_fail, tc)
+{
+	char symname[32];
+	GElf_Sym sym;
+	struct proc_handle *phdl;
+	prmap_t *map;
+	int error;
+
+	phdl = start_prog(tc, false);
+
+	/* Initialize the rtld_db handle. */
+	(void)proc_rdagent(phdl);
+
+	map = proc_obj2map(phdl, target_prog_file);
+	ATF_REQUIRE_MSG(map != NULL, "failed to look up map for '%s'",
+	    target_prog_file);
+
+	/*
+	 * We shouldn't be able to find symbols at the beginning of a mapped
+	 * file.
+	 */
+	error = proc_addr2sym(phdl, map->pr_vaddr, symname, sizeof(symname),
+	    &sym);
+	ATF_REQUIRE_MSG(error != 0, "unexpectedly found a symbol");
+
+	ATF_CHECK_EQ_MSG(proc_continue(phdl), 0, "failed to resume execution");
+
+	proc_free(phdl);
+}
+#endif
+
+ATF_TC(signal_forward);
+ATF_TC_HEAD(signal_forward, tc)
+{
+	atf_tc_set_md_var(tc, "descr",
+	    "Run the test program in a mode which causes it to send a signal "
+	    "to itself. Make sure that we intercept the signal and that "
+	    "proc_continue() forwards it to the process.");
+}
+ATF_TC_BODY(signal_forward, tc)
+{
+	struct proc_handle *phdl;
+	int state, status;
+
+	phdl = start_prog(tc, true);
+	ATF_CHECK_EQ_MSG(proc_continue(phdl), 0, "failed to resume execution");
+
+	/* The process should have been interrupted by a signal. */
+	state = proc_wstatus(phdl);
+	ATF_REQUIRE_EQ_MSG(state, PS_STOP, "process has unexpected state %d",
+	    state);
+
+	/* Continue execution and allow the signal to be delivered. */
+	ATF_CHECK_EQ_MSG(proc_continue(phdl), 0, "failed to resume execution");
+
+	/*
+	 * Make sure the process exited with status 0. If it didn't receive the
+	 * SIGUSR1 that it sent to itself, it'll exit with a non-zero exit
+	 * status, causing the test to fail.
+	 */
+	state = proc_wstatus(phdl);
+	ATF_REQUIRE_EQ_MSG(state, PS_UNDEAD, "process has unexpected state %d",
+	    state);
+
+	status = proc_getwstat(phdl);
+	ATF_REQUIRE(status >= 0);
+	ATF_REQUIRE(WIFEXITED(status));
+	ATF_REQUIRE_EQ(WEXITSTATUS(status), 0);
+
+	proc_free(phdl);
+}
+
+ATF_TP_ADD_TCS(tp)
+{
+
+	ATF_TP_ADD_TC(tp, map_alias_obj2map);
+	ATF_TP_ADD_TC(tp, map_alias_name2map);
+	ATF_TP_ADD_TC(tp, map_alias_name2sym);
+/* On arm64 triggers panic ARM64TODO: pmap_sync_icache (PR202305). */
+#if !defined(__aarch64__)
+	ATF_TP_ADD_TC(tp, symbol_lookup);
+	ATF_TP_ADD_TC(tp, symbol_lookup_fail);
+#endif
+	ATF_TP_ADD_TC(tp, signal_forward);
+
+	return (atf_no_error());
+}
diff --git a/external/bsd/libproc/dist/tests/target_prog.c b/external/bsd/libproc/dist/tests/target_prog.c
new file mode 100644
index 0000000..c2bb195
--- /dev/null
+++ b/external/bsd/libproc/dist/tests/target_prog.c
@@ -0,0 +1,62 @@
+/*-
+ * Copyright (c) 2014 Mark Johnston <markj@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+#ifdef __FBSDID
+__FBSDID("$FreeBSD: head/lib/libproc/tests/target_prog.c 271937 2014-09-21 21:25:41Z markj $");
+#endif
+__RCSID("$NetBSD: target_prog.c,v 1.2 2015/09/24 14:12:48 christos Exp $");
+
+#include <err.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+static volatile sig_atomic_t saw;
+
+static void
+usr1(int sig __unused)
+{
+
+	saw = 1;
+}
+
+int
+main(int argc, char **argv)
+{
+
+	if (argc == 1)
+		return (EXIT_SUCCESS);
+	if (argc == 2 && strcmp(argv[1], "-s") == 0) {
+		if (signal(SIGUSR1, usr1) == SIG_ERR)
+			err(1, "signal");
+		if (kill(getpid(), SIGUSR1) != 0)
+			err(1, "kill");
+		return (saw == 1 ? EXIT_SUCCESS : EXIT_FAILURE);
+	}
+	return (EXIT_FAILURE);
+}
diff --git a/external/bsd/libproc/lib/Makefile b/external/bsd/libproc/lib/Makefile
new file mode 100644
index 0000000..aae6279
--- /dev/null
+++ b/external/bsd/libproc/lib/Makefile
@@ -0,0 +1,53 @@
+# $NetBSD: Makefile,v 1.1 2015/09/24 14:12:48 christos Exp $
+
+.include <bsd.own.mk>
+
+MKMAN=	no
+LIB=	proc
+
+SRCS=	proc_bkpt.c		\
+	proc_create.c		\
+	proc_regs.c		\
+	proc_sym.c		\
+	proc_rtld.c		\
+	proc_util.c
+
+INCS=	libproc.h
+INCSDIR=/usr/include
+
+LIBPROCDIR=${.CURDIR}/../dist
+
+.PATH: ${LIBPROCDIR}
+
+CPPFLAGS+=	-I${LIBPROCDIR} -I${.CURDIR}/../../librtld_db
+
+.if ${MKCTF} != "no"
+OSNET=${NETBSDSRCDIR}/external/cddl/osnet/
+
+LIBDPLIBS +=	ctf ${OSNET}/lib/libctf
+
+CPPFLAGS+=	-I${OSNET}/sys \
+		-I${OSNET}/dist/uts/common \
+		-I${OSNET}/dist/lib/libctf/common
+.else
+CPPFLAGS+=	-DNO_CTF
+.endif
+
+.if defined(NOCPLUSPLUS)
+CPPFLAGS+=	-DNO_CXA_DEMANGLE
+.else
+. if ${MKLIBCXX} == "yes"
+LIBDPLIBS+=     c++     ${NETBSDSRCDIR}/external/bsd/libc++/lib
+. else
+LIBDPLIBS+=     stdc++  ${NETBSDSRCDIR}/external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/libstdc++-v3
+. endif
+.endif
+
+LIBDPLIBS+=	elf ${NETBSDSRCDIR}/external/bsd/elftoolchain/lib/libelf
+LIBDPLIBS+=	rtld_db ${NETBSDSRCDIR}/external/bsd/librtld_db/lib
+LIBDPLIBS+=	util ${NETBSDSRCDIR}/lib/libutil
+
+SHLIB_MAJOR=	0
+SHLIB_MINOR=	0
+
+.include <bsd.lib.mk>
diff --git a/external/bsd/libproc/tests/Makefile b/external/bsd/libproc/tests/Makefile
new file mode 100644
index 0000000..1e750de
--- /dev/null
+++ b/external/bsd/libproc/tests/Makefile
@@ -0,0 +1,24 @@
+# $NetBSD: Makefile,v 1.1 2015/09/24 14:12:48 christos Exp $
+
+NOMAN=yes
+.include <bsd.own.mk>
+
+TESTSDIR=	${TESTSBASE}/lib/libproc
+
+.PATH: ${.CURDIR}/../dist/tests
+
+TESTS_C+=	proc_test
+
+BINDIR=         ${TESTSDIR}
+PROGS=		target_prog
+
+LDADD+=	-lelf -lproc -lrtld_db -lutil
+DPADD+=	${LIBELF} ${LIBPROC} ${LIBRTLD_DB} ${LIBUTIL}
+
+# Ensure that symbols aren't stripped from the test program, as they're needed
+# for testing symbol lookup.
+STRIP=
+
+WARNS?=	6
+
+.include <bsd.test.mk>
diff --git a/external/bsd/librtld_db/Makefile b/external/bsd/librtld_db/Makefile
new file mode 100644
index 0000000..c546d10
--- /dev/null
+++ b/external/bsd/librtld_db/Makefile
@@ -0,0 +1,5 @@
+# $NetBSD: Makefile,v 1.1 2015/09/24 14:15:58 christos Exp $
+
+SUBDIR= lib
+
+.include <bsd.subdir.mk>
diff --git a/external/bsd/librtld_db/dist/Makefile b/external/bsd/librtld_db/dist/Makefile
new file mode 100644
index 0000000..e1fc0b0
--- /dev/null
+++ b/external/bsd/librtld_db/dist/Makefile
@@ -0,0 +1,14 @@
+# $FreeBSD: head/lib/librtld_db/Makefile 225227 2011-08-28 09:26:48Z kib $
+
+.include <bsd.own.mk>
+
+LIB=		rtld_db
+SHLIB_MAJOR= 	2
+MAN=		librtld_db.3
+
+SRCS=		rtld_db.c
+INCS=		rtld_db.h
+
+CFLAGS+= -I${.CURDIR}
+
+.include <bsd.lib.mk>
diff --git a/external/bsd/librtld_db/dist/Makefile.depend b/external/bsd/librtld_db/dist/Makefile.depend
new file mode 100644
index 0000000..ec60a07
--- /dev/null
+++ b/external/bsd/librtld_db/dist/Makefile.depend
@@ -0,0 +1,22 @@
+# $FreeBSD: head/lib/librtld_db/Makefile.depend 284345 2015-06-13 19:20:56Z sjg $
+# Autogenerated - do NOT edit!
+
+DIRDEPS = \
+	gnu/lib/csu \
+	gnu/lib/libgcc \
+	include \
+	include/xlocale \
+	lib/${CSU_DIR} \
+	lib/libc \
+	lib/libcompiler_rt \
+	lib/libelf \
+	lib/libproc \
+	lib/libutil \
+	usr.bin/xinstall.host \
+
+
+.include <dirdeps.mk>
+
+.if ${DEP_RELDIR} == ${_DEP_RELDIR}
+# local dependencies - needed for -jN in clean tree
+.endif
diff --git a/external/bsd/librtld_db/dist/librtld_db.3 b/external/bsd/librtld_db/dist/librtld_db.3
new file mode 100644
index 0000000..6ac6a9d
--- /dev/null
+++ b/external/bsd/librtld_db/dist/librtld_db.3
@@ -0,0 +1,191 @@
+.\"-
+.\" Copyright (c) 2010 The FreeBSD Foundation
+.\" All rights reserved.
+.\"
+.\" This software was developed by Rui Paulo under sponsorship from
+.\" the FreeBSD Foundation.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD: head/lib/librtld_db/librtld_db.3 276294 2014-12-27 08:31:52Z joel $
+.\"
+.Dd June 10, 2010
+.Dt LIBRTLD_DB 3
+.Os
+.Sh NAME
+.Nm librtld_db
+.Nd library for run-time linker debugging
+.Sh LIBRARY
+.Lb librtld_db
+.Sh SYNOPSIS
+.In rtld_db.h
+.Ft void
+.Fo rd_delete
+.Fa "rd_agent_t *rdap"
+.Fc
+.Ft char *
+.Fo rd_errstr
+.Fa "rd_err_e rderr"
+.Fc
+.Ft rd_err_e
+.Fo rd_event_addr
+.Fa "rd_agent_t *rdap, rd_event_e event, rd_notify_t *notify"
+.Fc
+.Ft rd_err_e
+.Fo rd_event_enable
+.Fa "rd_agent_t *rdap, int onoff"
+.Fc
+.Ft rd_err_e
+.Fo rd_event_getmsg
+.Fa "rd_agent_t *rdap, rd_event_msg_t *msg"
+.Fc
+.Ft rd_err_e
+.Fo rd_init
+.Fa "int version"
+.Fc
+.Ft typedef int
+.Fo rl_iter_f
+.Fa "const rd_loadobj_t *, void *"
+.Fc
+.Ft rd_err_e
+.Fo rd_loadobj_iter
+.Fa "rd_agent_t *rdap, rl_iter_f *cb, void *clnt_data"
+.Fc
+.Ft void
+.Fo rd_log
+.Fa "const int onoff"
+.Fc
+.Ft rd_agent_t *
+.Fo rd_new
+.Fa "struct proc_handle *php"
+.Fc
+.Ft rd_err_e
+.Fo rd_objpad_enable
+.Fa "rd_agent_t *rdap, size_t padsize"
+.Fc
+.Ft rd_err_e
+.Fo rd_plt_resolution
+.Fa "rd_agent_t *rdap, uintptr_t pc, struct proc *proc"
+.Fa "uintptr_t plt_base, rd_plt_info_t *rpi"
+.Fc
+.Ft rd_err_e
+.Fo rd_reset
+.Fa "rd_agent_t *rdap"
+.Fc
+.Sh DESCRIPTION
+The
+.Nm librtld_db
+library provides a debugging interface to the run-time linker (rtld).
+This library must be used along with
+.Xr libproc 3 .
+.Pp
+Most library functions take a
+.Ft rd_agent_t
+argument.
+This argument is an opaque structure containing information associated with
+the current status of the agent.
+.Pp
+Before you start using
+.Nm
+you should call
+.Fn rd_init
+with the
+.Ft RD_VERSION
+argument.
+This initializes the library to the correct version your program was compiled
+with and provides proper ABI stability.
+.Pp
+What follows is a description of what each function.
+.Pp
+.Fn rd_new
+creates a new
+.Nm
+agent.
+The
+.Ft php
+argument should be the
+.Ft proc_handle
+you received from
+.Xr libproc 3 .
+.Pp
+.Fn rd_reset
+resets your previously created agent.
+.Pp
+.Fn rd_delete
+deallocates the resources associated with the agent.
+.Pp
+.Fn rd_errstr
+returns an error string describing the error present in
+.Ft rderr .
+.Pp
+.Fn rd_event_enable
+enables reporting of events.
+This function always returns RD_OK.
+.Pp
+.Fn rd_event_addr
+returns the event address corresponding to the
+.Ft event
+parameter.
+At the moment we only report events of type RD_NOTIFY_BPT.
+.Pp
+.Fn rd_event_getmsg
+returns the message associated with the latest event.
+At the moment only RD_POSTINIT events are supported.
+.Pp
+.Fn rd_loadobj_iter
+allows you to iterate over the program's loaded objects.
+.Ft cb
+is a callback of type
+.Fn rl_iter_f .
+.Sh RETURN VALUES
+Most functions return an
+.Ft rd_err_e
+type error.
+The error codes are described in the header file for this library.
+You can get the error string using
+.Fn rd_errstr .
+.Sh SEE ALSO
+.Xr ld 1 ,
+.Xr ld-elf.so.1 1 ,
+.Xr ld.so 1 ,
+.Xr rtld 1 ,
+.Xr libproc 3
+.Sh HISTORY
+The
+.Nm librtld_db
+library first appeared in
+.Fx 9.0
+and was modeled after the same library present in the Solaris operating system.
+.Sh AUTHORS
+The
+.Nm librtld_db
+library and this manual page were written by
+.An Rui Paulo Aq Mt rpaulo@FreeBSD.org
+under sponsorship from the FreeBSD Foundation.
+.Sh CAVEATS
+The functions
+.Fn rd_event_enable ,
+.Fn rd_log ,
+.Fn rd_objpad_enable
+and
+.Fn rd_plt_resolution
+are not yet implemented.
diff --git a/external/bsd/librtld_db/dist/rtld_db.c b/external/bsd/librtld_db/dist/rtld_db.c
new file mode 100644
index 0000000..3d2efec
--- /dev/null
+++ b/external/bsd/librtld_db/dist/rtld_db.c
@@ -0,0 +1,258 @@
+/*
+ * Copyright (c) 2010 The FreeBSD Foundation 
+ * All rights reserved. 
+ * 
+ * This software was developed by Rui Paulo under sponsorship from the
+ * FreeBSD Foundation. 
+ *  
+ * Redistribution and use in source and binary forms, with or without 
+ * modification, are permitted provided that the following conditions 
+ * are met: 
+ * 1. Redistributions of source code must retain the above copyright 
+ *    notice, this list of conditions and the following disclaimer. 
+ * 2. Redistributions in binary form must reproduce the above copyright 
+ *    notice, this list of conditions and the following disclaimer in the 
+ *    documentation and/or other materials provided with the distribution. 
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
+ * SUCH DAMAGE. 
+ */ 
+#include <sys/cdefs.h>
+#ifdef __FBSDID
+__FBSDID("$FreeBSD: head/lib/librtld_db/rtld_db.c 272488 2014-10-03 23:20:37Z markj $");
+#else
+__RCSID("$NetBSD: rtld_db.c,v 1.2 2015/09/24 14:15:58 christos Exp $");
+#endif
+
+#include <sys/types.h>
+#include <sys/sysctl.h>
+
+#include <inttypes.h>
+#include <err.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+#include <libproc.h>
+#include <util.h>
+
+#include "rtld_db.h"
+
+static int _librtld_db_debug = 0;
+#define DPRINTF(...) do {				\
+	if (_librtld_db_debug) {			\
+		fprintf(stderr, "librtld_db: DEBUG: ");	\
+		fprintf(stderr, __VA_ARGS__);		\
+	}						\
+} while (0)
+
+void
+rd_delete(rd_agent_t *rdap)
+{
+
+	free(rdap);
+}
+
+const char *
+rd_errstr(rd_err_e rderr)
+{
+
+	switch (rderr) {
+	case RD_ERR:
+		return "generic error";
+	case RD_OK:
+		return "no error";
+	case RD_NOCAPAB:
+		return "capability not supported";
+	case RD_DBERR:
+		return "database error";
+	case RD_NOBASE:
+		return "NOBASE";
+	case RD_NOMAPS:
+		return "NOMAPS";
+	default:
+		return "unknown error";
+	}
+}
+
+rd_err_e
+rd_event_addr(rd_agent_t *rdap, rd_event_e event, rd_notify_t *notify)
+{
+	rd_err_e ret;
+
+	DPRINTF("%s rdap %p event %d notify %p\n", __func__, rdap, event,
+	    notify);
+
+	ret = RD_OK;
+	switch (event) {
+	case RD_NONE:
+		break;
+	case RD_PREINIT:
+		notify->type = RD_NOTIFY_BPT;
+		notify->u.bptaddr = rdap->rda_preinit_addr;
+		break;
+	case RD_POSTINIT:
+		notify->type = RD_NOTIFY_BPT;
+		notify->u.bptaddr = rdap->rda_postinit_addr;
+		break;
+	case RD_DLACTIVITY:
+		notify->type = RD_NOTIFY_BPT;
+		notify->u.bptaddr = rdap->rda_dlactivity_addr;
+		break;
+	default:
+		ret = RD_ERR;
+		break;
+	}
+	return (ret);
+}
+
+rd_err_e
+rd_event_enable(rd_agent_t *rdap __unused, int onoff)
+{
+	DPRINTF("%s onoff %d\n", __func__, onoff);
+
+	return (RD_OK);
+}
+
+rd_err_e
+rd_event_getmsg(rd_agent_t *rdap __unused, rd_event_msg_t *msg)
+{
+	DPRINTF("%s\n", __func__);
+
+	msg->type = RD_POSTINIT;
+	msg->u.state = RD_CONSISTENT;
+
+	return (RD_OK);
+}
+
+rd_err_e
+rd_init(int version)
+{
+	char *debug = NULL;
+
+	if (version == RD_VERSION) {
+		debug = getenv("LIBRTLD_DB_DEBUG");
+		_librtld_db_debug = debug ? atoi(debug) : 0;
+		return (RD_OK);
+	} else
+		return (RD_NOCAPAB);
+}
+
+rd_err_e
+rd_loadobj_iter(rd_agent_t *rdap, rl_iter_f *cb, void *clnt_data)
+{
+	size_t cnt, i, lastvn = 0;
+	rd_loadobj_t rdl;
+	struct kinfo_vmentry *kves, *kve;
+
+	DPRINTF("%s\n", __func__);
+
+        if ((kves = kinfo_getvmmap(proc_getpid(rdap->rda_php), &cnt)) == NULL) {
+		warn("ERROR: kinfo_getvmmap() failed");
+		return (RD_ERR);
+	}
+	for (i = 0; i < cnt; i++) {
+		kve = kves + i;
+		if (kve->kve_type == KVME_TYPE_VNODE)
+			lastvn = i;
+		memset(&rdl, 0, sizeof(rdl));
+		/*
+		 * Map the kinfo_vmentry struct to the rd_loadobj structure.
+		 */
+		rdl.rdl_saddr = kve->kve_start;
+		rdl.rdl_eaddr = kve->kve_end;
+		rdl.rdl_offset = kve->kve_offset;
+		if (kve->kve_protection & KVME_PROT_READ)
+			rdl.rdl_prot |= RD_RDL_R;
+		if (kve->kve_protection & KVME_PROT_WRITE)
+			rdl.rdl_prot |= RD_RDL_W;
+		if (kve->kve_protection & KVME_PROT_EXEC)
+			rdl.rdl_prot |= RD_RDL_X;
+		strlcpy(rdl.rdl_path, kves[lastvn].kve_path,
+			sizeof(rdl.rdl_path));
+		(*cb)(&rdl, clnt_data);
+	}
+	free(kves);
+
+	return (RD_OK);
+}
+
+void
+rd_log(const int onoff)
+{
+	DPRINTF("%s\n", __func__);
+
+	(void)onoff;
+}
+
+rd_agent_t *
+rd_new(struct proc_handle *php)
+{
+	rd_agent_t *rdap;
+
+	rdap = malloc(sizeof(rd_agent_t));
+	if (rdap) {
+		memset(rdap, 0, sizeof(rd_agent_t));
+		rdap->rda_php = php;
+		rd_reset(rdap);
+	}
+
+	return (rdap);
+}
+
+rd_err_e
+rd_objpad_enable(rd_agent_t *rdap, size_t padsize)
+{
+	DPRINTF("%s\n", __func__);
+
+	(void)rdap;
+	(void)padsize;
+
+	return (RD_ERR);
+}
+
+rd_err_e
+rd_plt_resolution(rd_agent_t *rdap, uintptr_t pc, struct proc *proc,
+    uintptr_t plt_base, rd_plt_info_t *rpi)
+{
+	DPRINTF("%s\n", __func__);
+
+	(void)rdap;
+	(void)pc;
+	(void)proc;
+	(void)plt_base;
+	(void)rpi;
+
+	return (RD_ERR);
+}
+
+rd_err_e
+rd_reset(rd_agent_t *rdap)
+{
+	GElf_Sym sym;
+
+	if (proc_name2sym(rdap->rda_php, "ld-elf.so.1", "r_debug_state",
+	    &sym, NULL) < 0)
+		return (RD_ERR);
+	DPRINTF("found r_debug_state at 0x%lx\n", (unsigned long)sym.st_value);
+	rdap->rda_preinit_addr = sym.st_value;
+	rdap->rda_dlactivity_addr = sym.st_value;
+
+	if (proc_name2sym(rdap->rda_php, "ld-elf.so.1", "_r_debug_postinit",
+	    &sym, NULL) < 0)
+		return (RD_ERR);
+	DPRINTF("found _r_debug_postinit at 0x%lx\n",
+	    (unsigned long)sym.st_value);
+	rdap->rda_postinit_addr = sym.st_value;
+
+	return (RD_OK);
+}
diff --git a/external/bsd/librtld_db/dist/rtld_db.h b/external/bsd/librtld_db/dist/rtld_db.h
new file mode 100644
index 0000000..276191c
--- /dev/null
+++ b/external/bsd/librtld_db/dist/rtld_db.h
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) 2010 The FreeBSD Foundation 
+ * All rights reserved. 
+ * 
+ * This software was developed by Rui Paulo under sponsorship from the
+ * FreeBSD Foundation. 
+ *  
+ * Redistribution and use in source and binary forms, with or without 
+ * modification, are permitted provided that the following conditions 
+ * are met: 
+ * 1. Redistributions of source code must retain the above copyright 
+ *    notice, this list of conditions and the following disclaimer. 
+ * 2. Redistributions in binary form must reproduce the above copyright 
+ *    notice, this list of conditions and the following disclaimer in the 
+ *    documentation and/or other materials provided with the distribution. 
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
+ * SUCH DAMAGE. 
+ *
+ * $FreeBSD: head/lib/librtld_db/rtld_db.h 265629 2014-05-08 03:26:25Z markj $
+ */ 
+
+#ifndef _RTLD_DB_H_
+#define _RTLD_DB_H_
+
+#include <sys/param.h>
+#include <sys/cdefs.h>
+#include <sys/types.h>
+
+
+#define	RD_VERSION	1
+
+typedef enum {
+	RD_OK,
+	RD_ERR,
+	RD_DBERR,
+	RD_NOCAPAB,
+	RD_NODYNAM,
+	RD_NOBASE,
+	RD_NOMAPS
+} rd_err_e;
+
+typedef struct rd_agent {
+	struct proc_handle *rda_php;
+	uintptr_t rda_dlactivity_addr;
+	uintptr_t rda_preinit_addr;
+	uintptr_t rda_postinit_addr;
+} rd_agent_t;
+
+typedef struct rd_loadobj {
+	uintptr_t	rdl_saddr;		/* start address */
+	uintptr_t	rdl_eaddr;		/* end address */
+	uint32_t	rdl_offset;
+	uint8_t		rdl_prot;
+#define RD_RDL_R	0x01
+#define RD_RDL_W	0x02
+#define RD_RDL_X	0x04
+	enum {
+		RDL_TYPE_NONE	= 0,
+		RDL_TYPE_DEF,
+		RDL_TYPE_VNODE,
+		RDL_TYPE_SWAP,
+		RDL_TYPE_DEV,
+		/* XXX some types missing */
+		RDL_TYPE_UNKNOWN = 255
+	} rdl_type;
+	unsigned char	rdl_path[PATH_MAX];
+} rd_loadobj_t;
+
+typedef enum {
+	RD_NONE = 0,
+	RD_PREINIT,
+	RD_POSTINIT,
+	RD_DLACTIVITY
+} rd_event_e;
+
+typedef enum {
+	RD_NOTIFY_BPT,
+	RD_NOTIFY_AUTOBPT,
+	RD_NOTIFY_SYSCALL
+} rd_notify_e;
+
+typedef struct rd_notify {
+	rd_notify_e type;
+	union {
+		uintptr_t bptaddr;
+		long      syscallno;
+	} u;
+} rd_notify_t;
+
+typedef enum {
+	RD_NOSTATE = 0,
+	RD_CONSISTENT,
+	RD_ADD,
+	RD_DELETE
+} rd_state_e;
+
+typedef struct rd_event_msg {
+	rd_event_e type;
+	union {
+		rd_state_e state;
+	} u;
+} rd_event_msg_t;
+
+typedef enum {
+	RD_RESOLVE_NONE,
+	RD_RESOLVE_STEP,
+	RD_RESOLVE_TARGET,
+	RD_RESOLVE_TARGET_STEP
+} rd_skip_e;
+
+typedef struct rd_plt_info {
+	rd_skip_e pi_skip_method;
+	long	  pi_nstep;
+	uintptr_t pi_target;
+	uintptr_t pi_baddr;
+	unsigned int pi_flags;
+} rd_plt_info_t;
+
+#define RD_FLG_PI_PLTBOUND	0x0001
+
+__BEGIN_DECLS
+
+struct proc_handle;
+void		rd_delete(rd_agent_t *);
+const char 	*rd_errstr(rd_err_e);
+rd_err_e	rd_event_addr(rd_agent_t *, rd_event_e, rd_notify_t *);
+rd_err_e	rd_event_enable(rd_agent_t *, int);
+rd_err_e	rd_event_getmsg(rd_agent_t *, rd_event_msg_t *);
+rd_err_e	rd_init(int);
+typedef int rl_iter_f(const rd_loadobj_t *, void *);
+rd_err_e	rd_loadobj_iter(rd_agent_t *, rl_iter_f *, void *);
+void		rd_log(const int);
+rd_agent_t 	*rd_new(struct proc_handle *);
+rd_err_e	rd_objpad_enable(rd_agent_t *, size_t);
+struct proc;
+rd_err_e	rd_plt_resolution(rd_agent_t *, uintptr_t, struct proc *,
+		    uintptr_t, rd_plt_info_t *);
+rd_err_e	rd_reset(rd_agent_t *);
+
+__END_DECLS
+
+#endif /* _RTLD_DB_H_ */
diff --git a/external/bsd/librtld_db/lib/Makefile b/external/bsd/librtld_db/lib/Makefile
new file mode 100644
index 0000000..fbca333
--- /dev/null
+++ b/external/bsd/librtld_db/lib/Makefile
@@ -0,0 +1,20 @@
+# $NetBSD: Makefile,v 1.1 2015/09/24 14:15:59 christos Exp $
+
+.include <bsd.own.mk>
+
+LIB=		rtld_db
+SHLIB_MAJOR= 	0
+SHLIB_MINOR=	0
+MAN=		librtld_db.3
+
+SRCS=		rtld_db.c
+INCS=		rtld_db.h
+INCSDIR=	/usr/include
+
+.PATH:	${.CURDIR}/../dist
+
+CPPFLAGS+= -I${.CURDIR} -I${.CURDIR}/../libproc
+
+LIBDPLIBS+=	util	${NETBSDSRCDIR}/lib/libutil
+
+.include <bsd.lib.mk>
diff --git a/external/bsd/mdocml/dist/lib.in b/external/bsd/mdocml/dist/lib.in
index d4ff858..648792a 100644
--- a/external/bsd/mdocml/dist/lib.in
+++ b/external/bsd/mdocml/dist/lib.in
@@ -89,6 +89,7 @@ LINE("libppath",	"Property-List Paths Library (libppath, \\-lppath)")
 LINE("libposix",	"POSIX Compatibility Library (libposix, \\-lposix)")
 LINE("libposix1e",	"POSIX.1e Security API Library (libposix1e, \\-lposix1e)")
 LINE("libppath",	"Property-List Paths Library (libppath, \\-lppath)")
+LINE("libprop",		"Process Manipulation Library (libproc, \\-lproc)")
 LINE("libprop",		"Property Container Object Library (libprop, \\-lprop)")
 LINE("libpthread",	"POSIX Threads Library (libpthread, \\-lpthread)")
 LINE("libpuffs",	"puffs Convenience Library (libpuffs, \\-lpuffs)")
@@ -99,6 +100,7 @@ LINE("libresolv",	"DNS Resolver Library (libresolv, \\-lresolv)")
 LINE("librpcsec_gss",	"RPC GSS-API Authentication Library (librpcsec_gss, \\-lrpcsec_gss)")
 LINE("librpcsvc",	"RPC Service Library (librpcsvc, \\-lrpcsvc)")
 LINE("librt",		"POSIX Real\\-time Library (librt, \\-lrt)")
+LINE("librtld_db",	"Debugging interface to the runtime linker Library (librtld_db, \\-lrtld_db)")
 LINE("librumpclient",	"Clientside Stubs for rump Kernel Remote Protocols (librumpclient, \\-lrumpclient)")
 LINE("libsaslc",	"Simple Authentication and Security Layer client library (libsaslc, \\-lsaslc)")
 LINE("libsdp",		"Bluetooth Service Discovery Protocol User Library (libsdp, \\-lsdp)")
diff --git a/external/cddl/dtracetoolkit/dist/Apps/Readme b/external/cddl/dtracetoolkit/dist/Apps/Readme
new file mode 100644
index 0000000..3a6812f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Apps/Readme
@@ -0,0 +1,5 @@
+Apps - Specific Application based analysis
+
+   These are DTrace scripts that are written to analyse a particular 
+   application or applictaion layer protocol. For example, Apache or NFS
+   scripts would appear here.
diff --git a/external/cddl/dtracetoolkit/dist/Apps/httpdstat.d b/external/cddl/dtracetoolkit/dist/Apps/httpdstat.d
new file mode 100755
index 0000000..a4d8fff
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Apps/httpdstat.d
@@ -0,0 +1,132 @@
+#!/usr/sbin/dtrace -s
+/*
+ * httpdstat.d - realtime httpd statistics. Uses DTrace.
+ *
+ * $Id: httpdstat.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE:	httpdstat.d [interval [count]]
+ *
+ *		interval	seconds
+ *		count		number of samples
+ *
+ * FIELDS:
+ *		TIME		Time, string
+ *		NUM		Number of connections
+ *		GET		Number of "GET"s
+ *		POST		Number of "POST"s
+ *		HEAD		Number of "HEAD"s
+ *		TRACE		Number of "TRACE"s
+ *
+ * All of the statistics are printed as a value per interval (not per second).
+ *
+ * NOTE: This version does not process subsequent operations on keepalives.
+ *
+ * IDEA: Ryan Matteson (who first wrote a solution to this).
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 20-Nov-2005	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+/*
+ * Program Start
+ */
+dtrace:::BEGIN
+{
+	num = 0; get = 0; head = 0; post = 0; trac = 0;
+	lines = SCREEN + 1;
+	secs = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %6s %6s %5s %5s %5s\n", "TIME",
+	    "NUM", "GET", "POST", "HEAD", "TRACE");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Track Accept Events
+ */
+syscall::accept:return
+/execname == "httpd"/
+{
+	self->buf = 1;
+}
+
+syscall::read:entry
+/self->buf/
+{
+	self->buf = arg1;
+}
+
+/*
+ * Tally Data
+ */
+syscall::read:return
+/self->buf && arg0/
+{
+	this->str = (char *)copyin(self->buf, arg0);
+	this->str[4] = '\0';
+	get  += stringof(this->str) == "GET " ? 1 : 0;
+	post += stringof(this->str) == "POST" ? 1 : 0;
+	head += stringof(this->str) == "HEAD" ? 1 : 0;
+	trac += stringof(this->str) == "TRAC" ? 1 : 0;
+	num++;
+	self->buf = 0;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %6d %6d %5d %5d %5d\n", walltimestamp,
+	    num, get, post, head, trac);
+	num = 0; get = 0; head = 0; post = 0; trac = 0;
+	secs = $1 ? $1 : 1;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Apps/nfswizard.d b/external/cddl/dtracetoolkit/dist/Apps/nfswizard.d
new file mode 100755
index 0000000..6949679
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Apps/nfswizard.d
@@ -0,0 +1,102 @@
+#!/usr/sbin/dtrace -s
+/*
+ * nfswizard.d - nfs client activity wizard.
+ *               Written using DTrace (Solaris 10 3/05).
+ *
+ * This examines activity caused by NFS client processes on the same server
+ * that you are running this script on. A detailed report is generated
+ * to explain various details of NFS client activity, including response
+ * times and file access.
+ *
+ * $Id: nfswizard.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE:     nfswizard.d    # hit Ctrl-C to end sample
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 02-Dec-2005  Brendan Gregg   Created this.
+ * 20-Apr-2006	   "	  "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	scriptstart = walltimestamp;
+	timestart = timestamp;
+}
+
+io:nfs::start
+{
+	/* tally file sizes */
+	@file[args[2]->fi_pathname] = sum(args[0]->b_bcount);
+
+	/* time response */
+	start[args[0]->b_addr] = timestamp;
+
+	/* overall stats */
+	@rbytes = sum(args[0]->b_flags & B_READ ? args[0]->b_bcount : 0);
+	@wbytes = sum(args[0]->b_flags & B_READ ? 0 : args[0]->b_bcount);
+	@events = count();
+}
+
+io:nfs::done
+/start[args[0]->b_addr]/
+{
+	/* calculate and save response time stats */
+	this->elapsed = timestamp - start[args[0]->b_addr];
+	@maxtime = max(this->elapsed);
+	@avgtime = avg(this->elapsed);
+	@qnztime = quantize(this->elapsed / 1000);
+}
+
+dtrace:::END
+{
+	/* print header */
+	printf("NFS Client Wizard. %Y -> %Y\n\n", scriptstart, walltimestamp);
+
+	/* print read/write stats */
+	printa("Read:  %@d bytes ", @rbytes);
+	normalize(@rbytes, 1000000);
+	printa("(%@d Mb)\n", @rbytes);
+	printa("Write: %@d bytes ", @wbytes);
+	normalize(@wbytes, 1000000);
+	printa("(%@d Mb)\n\n", @wbytes);
+
+	/* print throughput stats */
+	denormalize(@rbytes);
+	normalize(@rbytes, (timestamp - timestart) / 1000000);
+	printa("Read:  %@d Kb/sec\n", @rbytes);
+	denormalize(@wbytes);
+	normalize(@wbytes, (timestamp - timestart) / 1000000);
+	printa("Write: %@d Kb/sec\n\n", @wbytes);
+
+	/* print time stats */
+	printa("NFS I/O events:    %@d\n", @events);
+	normalize(@avgtime, 1000000);
+	printa("Avg response time: %@d ms\n", @avgtime);
+	normalize(@maxtime, 1000000);
+	printa("Max response time: %@d ms\n\n", @maxtime);
+	printa("Response times (us):%@d\n", @qnztime);
+
+	/* print file stats */
+	printf("Top 25 files accessed (bytes):\n");
+	printf("   %-64s %s\n", "PATHNAME", "BYTES");
+	trunc(@file, 25);
+	printa("   %-64s %@d\n", @file);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Apps/shellsnoop b/external/cddl/dtracetoolkit/dist/Apps/shellsnoop
new file mode 100755
index 0000000..263dc24
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Apps/shellsnoop
@@ -0,0 +1,264 @@
+#!/bin/sh
+#
+# shellsnoop - A program to print read/write details from shells,
+#	       such as keystrokes and command outputs.
+#	       Written using DTrace (Solaris 10 3/05).
+#
+# This program sounds somewhat dangerous (snooping keystrokes), but is
+# no more so than /usr/bin/truss, and both need root or dtrace privileges to
+# run. In fact, less dangerous, as we only print visible text (not password
+# text, for example). Having said that, it goes without saying that this
+# program shouldn't be used for breeching privacy of other users.
+#
+# This was written as a tool to demonstrate the capabilities of DTrace.
+#
+# $Id: shellsnoop,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE:	shellsnoop [-hqsv] [-p PID] [-u UID]
+#
+#		-q		# quiet, only print data
+#		-s		# include start time, us
+#		-v		# include start time, string
+#		-p PID		# process ID to snoop
+#		-u UID		# user ID to snoop
+#  eg,
+#		shellsnoop		# default output
+#		shellsnoop -v		# human readable timestamps
+#		shellsnoop -p 1892	# snoop this PID only
+#		shellsnoop -qp 1892	# watch this PID data only
+# 	
+# FIELDS:
+#		UID		User ID
+#		PID		process ID
+#		PPID		parent process ID
+#		COMM		command name
+#		DIR		direction (R read, W write)
+#		TEXT		text contained in the read/write
+#		TIME		timestamp for the command, us
+#		STRTIME		timestamp for the command, string
+#
+# SEE ALSO: ttywatcher
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 28-Mar-2004	Brendan Gregg	Created this.
+# 21-Jan-2005	   "	  "	Wrapped in sh to provide options.
+# 30-Nov-2005	   "	  "	Fixed trailing buffer text bug.
+# 30-Nov-2005	   "	  "	Fixed sh no keystroke text in quiet bug.
+# 30-Nov-2005	   "	  "	Last update.
+# 
+
+
+##############################
+# --- Process Arguments ---
+#
+opt_pid=0; opt_uid=0; opt_time=0; opt_timestr=0; opt_quiet=0; opt_debug=0
+filter=0; pid=0; uid=0
+
+while getopts dhp:qsu:v name
+do
+	case $name in
+	d)	opt_debug=1 ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	q)	opt_quiet=1 ;;
+	s)	opt_time=1 ;;
+	u)	opt_uid=1; uid=$OPTARG ;;
+	v)	opt_timestr=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: shellsnoop [-hqsv] [-p PID] [-u UID]
+		       shellsnoop		# default output
+		                -q		# quiet, only print data
+		                -s		# include start time, us
+		                -v		# include start time, string
+		                -p PID		# process ID to snoop
+		                -u UID		# user ID to snoop
+		END
+		exit 1
+	esac
+done
+
+if [ $opt_quiet -eq 1 ]; then
+	opt_time=0; opt_timestr=0
+fi
+if [ $opt_pid -eq 1 -o $opt_uid -eq 1 ]; then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_debug 	= '$opt_debug';
+ inline int OPT_quiet 	= '$opt_quiet';
+ inline int OPT_pid 	= '$opt_pid';
+ inline int OPT_uid 	= '$opt_uid';
+ inline int OPT_time 	= '$opt_time';
+ inline int OPT_timestr	= '$opt_timestr';
+ inline int FILTER 	= '$filter';
+ inline int PID 	= '$pid';
+ inline int UID 	= '$uid';
+ 
+ #pragma D option quiet
+ #pragma D option switchrate=20hz
+ 
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN /OPT_time == 1/
+ { 
+ 	printf("%-14s ","TIME");
+ }
+ dtrace:::BEGIN /OPT_timestr == 1/
+ { 
+ 	printf("%-20s ","STRTIME");
+ }
+ dtrace:::BEGIN /OPT_quiet == 0/
+ {
+	printf("%5s %5s %8s %3s  %s\n", "PID", "PPID", "CMD", "DIR", "TEXT");
+ }
+
+ /*
+  * Remember this PID is a shell child
+  */
+ syscall::execve:entry
+ /execname == "sh"   || execname == "ksh"  || execname == "csh"  || 
+  execname == "tcsh" || execname == "zsh"  || execname == "bash"/
+ {
+	child[pid] = 1;
+ 
+ }
+ syscall::execve:entry
+ /(OPT_pid == 1 && PID != ppid) || (OPT_uid == 1 && UID != uid)/
+ {
+	/* forget if filtered */
+	child[pid] = 0;
+ }
+
+ /*
+  * Print shell keystrokes
+  */
+ syscall::write:entry, syscall::read:entry
+ /(execname == "sh"   || execname == "ksh"  || execname == "csh"  ||
+  execname == "tcsh" || execname == "zsh"  || execname == "bash")
+  && (arg0 >= 0 && arg0 <= 2)/
+ {
+	self->buf = arg1;
+ }
+ syscall::write:entry, syscall::read:entry
+ /(OPT_pid == 1 && PID != pid) || (OPT_uid == 1 && UID != uid)/
+ {
+	self->buf = 0;
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && child[pid] == 0 && OPT_time == 1/
+ {
+ 	printf("%-14d ", timestamp/1000);
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && child[pid] == 0 && OPT_timestr == 1/
+ {
+	printf("%-20Y ", walltimestamp);
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && child[pid] == 0 && OPT_quiet == 0/
+ {
+	this->text = (char *)copyin(self->buf, arg0);
+	this->text[arg0] = '\'\\0\'';
+ 
+	printf("%5d %5d %8s %3s  %s\n", pid, curpsinfo->pr_ppid, execname, 
+	    probefunc == "read" ? "R" : "W", stringof(this->text));
+ }
+ syscall::write:return
+ /self->buf && child[pid] == 0 && OPT_quiet == 1/
+ {
+	this->text = (char *)copyin(self->buf, arg0);
+	this->text[arg0] = '\'\\0\'';
+	printf("%s", stringof(this->text));
+ }
+ syscall::read:return
+ /self->buf && execname == "sh" && child[pid] == 0 && OPT_quiet == 1/
+ {
+	this->text = (char *)copyin(self->buf, arg0);
+	this->text[arg0] = '\'\\0\'';
+	printf("%s", stringof(this->text));
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && child[pid] == 0/
+ {
+	self->buf = 0;
+ }
+
+ /*
+  * Print command output
+  */
+ syscall::write:entry, syscall::read:entry
+ /child[pid] == 1 && (arg0 == 1 || arg0 == 2)/
+ {
+	self->buf = arg1;
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && OPT_time == 1/
+ {
+ 	printf("%-14d ", timestamp/1000);
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && OPT_timestr == 1/
+ {
+	printf("%-20Y ", walltimestamp);
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && OPT_quiet == 0/
+ {
+	this->text = (char *)copyin(self->buf, arg0);
+	this->text[arg0] = '\'\\0\'';
+ 
+	printf("%5d %5d %8s %3s  %s", pid, curpsinfo->pr_ppid, execname,
+	    probefunc == "read" ? "R" : "W", stringof(this->text));
+ 
+	/* here we check if a newline is needed */
+	this->length = strlen(this->text);
+	printf("%s", this->text[this->length - 1] == '\'\\n\'' ? "" : "\n");
+	self->buf = 0;
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && OPT_quiet == 1/
+ {
+	this->text = (char *)copyin(self->buf, arg0);
+	this->text[arg0] = '\'\\0\'';
+	printf("%s", stringof(this->text));
+	self->buf = 0;
+ }
+
+ /*
+  *  Cleanup
+  */
+ syscall::exit:entry
+ {
+	child[pid] = 0;
+
+	/* debug */
+	this->parent = (char *)curthread->td_proc->p_pptr->p_comm;
+	OPT_debug == 1 ? printf("PID %d CMD %s exited. (%s)\n",
+	 pid, execname, stringof(this->parent)) : 1;
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Apps/weblatency.d b/external/cddl/dtracetoolkit/dist/Apps/weblatency.d
new file mode 100755
index 0000000..ed43c38
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Apps/weblatency.d
@@ -0,0 +1,186 @@
+#!/usr/sbin/dtrace -s
+/*
+ * weblatency.d - website latency statistics.
+ *		  Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: weblatency.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE:	weblatency.d 	# hit Ctrl-C to end sample
+ *
+ * See the code below for the "BROWSER" variable, which sets the browser
+ * to trace (currently set to "mozilla-bin").
+ *
+ * This is written as an experimental tool, and may not work at all with
+ * your browser.
+ *
+ * FIELDS:
+ *		HOST		Hostname from URL
+ *		NUM		Number of GETs
+ *		AVGTIME(ms)	Average time for response, ms
+ *		MAXTIME(ms)	Maximum time for response, ms
+ *
+ * NOTE:
+ *
+ * The latency measured here is from the browser sending the GET
+ * request to when the browser begins to recieve the response. It
+ * is an overall response time for the client, and encompasses
+ * connection speed delays, DNS lookups, proxy delays, and web server
+ * response time.
+ *
+ * IDEA: Bryan Cantrill (who wrote an elegant version for Sol 10 update 1)
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * ToDo:
+ *	Check write fd for socket, not file.
+ *
+ * 30-Nov-2005  Brendan Gregg   Created this.
+ * 20-Apr-2006	   "	  "	Last update.
+ */
+
+#pragma D option quiet
+
+/* browser's execname */
+inline string BROWSER = "mozilla-bin";
+
+/* maximum expected hostname length + "GET http://" */
+inline int MAX_REQ = 64;
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/*
+ * Trace brower request
+ *
+ * This is achieved by matching writes for the browser's execname that
+ * start with "GET", and then timing from the return of the write to
+ * the return of the next read in the same thread. Various stateful flags
+ * are used: self->fd, self->read.
+ *
+ * For performance reasons, I'd like to only process writes that follow a
+ * connect(), however this approach fails to process keepalives.
+ */
+syscall::write:entry
+/execname == BROWSER/
+{
+	self->buf = arg1;
+	self->fd = arg0 + 1;
+	self->nam = "";
+}
+
+syscall::write:return
+/self->fd/
+{
+	this->str = (char *)copyin(self->buf, MAX_REQ);
+	this->str[4] = '\0';
+	self->fd = stringof(this->str) == "GET " ? self->fd : 0;
+}
+
+syscall::write:return
+/self->fd/
+{
+	/* fetch browser request */
+	this->str = (char *)copyin(self->buf, MAX_REQ);
+	this->str[MAX_REQ] = '\0';
+
+	/*
+	 * This unrolled loop strips down a URL to it's hostname.
+	 * We ought to use strtok(), but it's not available on Sol 10 3/05,
+	 * so instead I used dirname(). It's not pretty - it's done so that
+	 * this works on all Sol 10 versions.
+	 */
+	self->req = stringof(this->str);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->nam = basename(self->nam);
+
+	/* start the timer */
+	start[pid, self->fd - 1] = timestamp;
+	host[pid, self->fd - 1] = self->nam;
+	self->buf = 0;
+	self->fd  = 0;
+	self->req = 0;
+	self->nam = 0;
+}
+
+/* this one wasn't a GET */
+syscall::write:return
+/self->buf/
+{
+	self->buf = 0;
+	self->fd  = 0;
+}
+
+syscall::read:entry
+/execname == BROWSER && start[pid, arg0]/
+{
+	self->fd = arg0 + 1;
+}
+
+/*
+ * Record host details
+ */
+syscall::read:return
+/self->fd/
+{
+	/* fetch details */
+	self->host = stringof(host[pid, self->fd - 1]);
+	this->start = start[pid, self->fd - 1];
+
+	/* save details */
+	@Avg[self->host] = avg((timestamp - this->start)/1000000);
+	@Max[self->host] = max((timestamp - this->start)/1000000);
+	@Num[self->host] = count();
+
+	/* clear vars */
+	start[pid, self->fd - 1] = 0;
+	host[pid, self->fd - 1] = 0;
+	self->host = 0;
+	self->fd = 0;
+}
+
+/*
+ * Output report
+ */
+dtrace:::END
+{
+	printf("%-32s %11s\n", "HOST", "NUM");
+	printa("%-32s %@11d\n", @Num);
+
+	printf("\n%-32s %11s\n", "HOST", "AVGTIME(ms)");
+	printa("%-32s %@11d\n", @Avg);
+
+	printf("\n%-32s %11s\n", "HOST", "MAXTIME(ms)");
+	printa("%-32s %@11d\n", @Max);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/anonpgpid.d b/external/cddl/dtracetoolkit/dist/Bin/anonpgpid.d
new file mode 100755
index 0000000..f0073f9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/anonpgpid.d
@@ -0,0 +1,75 @@
+#!/usr/sbin/dtrace -Cs
+/*
+ * anonpgpid.d - anonymous memory paging info by process on CPU.
+ *               Written using DTrace (Solaris 10 3/05).
+ *
+ * This scripts may help identify which processes are affected by a system
+ * with low memory, which is paging to the physical swap device. A report
+ * of the process on the CPU when paging occured is printed.
+ *
+ * $Id: anonpgpid.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	anonpgpid.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		CMD		Process name
+ *		D		Direction, Read or Write
+ *		BYTES		Total bytes during sample
+ *
+ * NOTES:
+ *
+ * This program is currently an approximation - often the process when writing
+ * pages to swap will be "pageout" the pageout scanner, or "rcapd" the
+ * resource capping daemon.
+ *
+ * THANKS: James Dickens
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * TODO:
+ *
+ * Track processes accurately. This is a little difficult - anonpgout
+ * occurs asynchronously to the process, and events related to this don't
+ * point back to the process.
+ *
+ * Author: Brendan Gregg  [Sydney, Australia]
+ *
+ * 25-Jul-2005	Brendan Gregg	Created this.
+ * 18-Feb-2006	   "      "	Last update.
+ */
+
+#include <sys/vnode.h>
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+fbt::pageio_setup:entry
+/((args[2]->v_flag & (VISSWAP | VSWAPLIKE)) != 0)/
+{
+	@total[pid, execname, args[3] & B_READ ? "R" : "W"] = sum(arg1);
+}
+
+dtrace:::END
+{
+	printf("%6s %-16s %1s %s\n", "PID", "CMD", "D", "BYTES");
+	printa("%6d %-16s %1s %@d\n", @total);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/bitesize.d b/external/cddl/dtracetoolkit/dist/Bin/bitesize.d
new file mode 100755
index 0000000..69679d9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/bitesize.d
@@ -0,0 +1,81 @@
+#!/usr/sbin/dtrace -s
+/*
+ * bitesize.d - analyse disk I/O size by process.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * This produces a report for the size of disk events caused by
+ * processes. These are the disk events sent by the block I/O driver.
+ *
+ * If applications must use the disks, we generally prefer they do so
+ * with large I/O sizes.
+ *
+ * $Id: bitesize.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	bitesize.d	# wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		command and argument list
+ *		value		size in bytes
+ *		count		number of I/O operations
+ *
+ * NOTES:
+ *
+ * The application may be requesting smaller sized operations, which
+ * are being rounded up to the nearest sector size or UFS block size.
+ * To analyse what the application is requesting, DTraceToolkit programs
+ * such as Proc/fddist may help.
+ *
+ * SEE ALSO: seeksize.d, iosnoop
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 31-Mar-2004	Brendan Gregg	Created this, build 51.
+ * 10-Oct-2004	   "      "	Rewrote to use the io provider, build 63.
+ * 18-Feb-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/*
+ * Process io start
+ */
+io:::start
+{
+	/* fetch details */
+	this->size = args[0]->b_bcount;
+
+	/* store details */
+	@Size[pid, curpsinfo->pr_psargs] = quantize(this->size);
+}
+
+/*
+ * Print final report
+ */
+dtrace:::END
+{
+	printf("\n%8s  %s\n", "PID", "CMD");
+	printa("%8d  %S\n%@d\n", @Size);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/connections b/external/cddl/dtracetoolkit/dist/Bin/connections
new file mode 100755
index 0000000..4bad2ec
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/connections
@@ -0,0 +1,178 @@
+#!/usr/bin/ksh
+#
+# connections - print inbound TCP connections by process.
+#               Written in DTrace (Solaris 10 3/05).
+#
+# This displays the PID and command name of the processes accepting 
+# connections, along with the source IP address and destination port number.
+#
+# $Id: connections,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	connections [-htvZ]
+#
+#		-t		# print timestamps, us
+#		-v		# print timestamps, string
+#		-Z		# print zonename
+#	eg,
+#		connections -v	# snoop connections with times
+#
+# FIELDS:
+#		UID		user ID of the server
+#		PID		process ID for the server
+#		CMD		server command name
+#		TIME		timestamp, us
+#		TIMESTR		timestamp, string
+#		PORT		server port
+#		IP_SOURCE	source IP of the client, written in IPv4 style
+#		ZONE		zonename
+#
+# SEE ALSO:	snoop 'tcp[13:1] = 0x02'	# snoop new connections
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# TODO: IPv6
+#
+# 10-Apr-2004	Brendan Gregg	Created this.
+# 23-May-2004	   "      "  	Fixed issues on SPARC.
+# 08-May-2005	   "      "  	Updated for newer Solaris 10.
+# 17-Jun-2005	   "      "	Rewrote, changed probes, wrapped in sh.
+# 04-Dec-2005	   "	  "	Changed tcp_accept_finish -> sotpi_accept
+# 20-Apr-2006	   "	  "	Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+# 20-Apr-2006	   "	  "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_time=0; opt_timestr=0; opt_zone=0
+
+### Process options
+while getopts htvZ name
+do
+	case $name in
+	t)      opt_time=1 ;;
+	v)      opt_timestr=1 ;;
+	Z)      opt_zone=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: connections [-htvZ]
+			   -t              # print timestamps, us
+			   -v              # print timestamps, string
+			   -Z              # print zonename
+		  eg,
+		       connections -v      # snoop connections with times
+		END
+		exit 1
+	esac
+done
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -C -s <( print -r '
+#include <sys/file.h>
+#include <sys/types.h>
+#include <sys/byteorder.h>
+#include <sys/socket.h>
+#include <sys/socketvar.h>
+
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+
+ inline int OPT_time    = '$opt_time';
+ inline int OPT_timestr = '$opt_timestr';
+ inline int OPT_zone    = '$opt_zone';
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+        /* print optional headers */
+        OPT_time    ? printf("%-14s ", "TIME") : 1;
+        OPT_timestr ? printf("%-20s ", "TIMESTR") : 1;
+	OPT_zone    ? printf("%-10s ", "ZONE") : 1;
+
+	/* print header */
+	printf("%5s %5s %-12s %4s %5s %s\n",
+	    "UID", "PID", "CMD", "TYPE", "PORT", "IP_SOURCE");
+ }
+
+ /*
+  * TCP Process inbound connections
+  *
+  * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+  * renamed to SS_DIRECT around build 31.
+  */
+ fbt:sockfs:sotpi_accept:entry
+ /(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+ {
+	self->sop = args[0];
+ }
+
+ fbt:sockfs:sotpi_create:return
+ /self->sop/
+ {
+	self->nsop = (struct sonode *)arg1;
+ }
+
+
+ /*
+  * Probe TCP connections
+  */
+ fbt:sockfs:sotpi_accept:return
+ /self->nsop/
+ {
+	/* fetch connection details */
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	this->connp = (conn_t *)this->tcpp->tcp_connp;
+
+#if defined(_BIG_ENDIAN)
+	this->port0 = this->connp->u_port.tcpu_ports.tcpu_lport;
+#else
+	this->port0 = BSWAP_16(this->connp->u_port.tcpu_ports.tcpu_lport);
+#endif
+	this->rem12 = 
+	    (uint8_t)this->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->rem13 =
+	    (uint8_t)this->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->rem14 =
+	    (uint8_t)this->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->rem15 =
+	    (uint8_t)this->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+
+        /* print optional fields */
+        OPT_time    ? printf("%-14d ", timestamp/1000) : 1;
+        OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone    ? printf("%-10s ", zonename) : 1;
+
+	/* print output line */
+	printf("%5d %5d %-12s %4s %5d %d.%d.%d.%d\n",
+	    uid, pid, execname, "tcp", this->port0, 
+	    this->rem12, this->rem13, this->rem14, this->rem15);
+ }
+
+ fbt:sockfs:sotpi_accept:return
+ {
+	self->nsop = 0;
+	self->sop = 0;
+ }
+')
+
diff --git a/external/cddl/dtracetoolkit/dist/Bin/cpudists b/external/cddl/dtracetoolkit/dist/Bin/cpudists
new file mode 100755
index 0000000..4021989
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/cpudists
@@ -0,0 +1,184 @@
+#!/usr/bin/sh
+#
+# cpudists - print CPU time distributions by Kernel/Idle/Processes.
+#            Written using DTrace (Solaris 10 3/05).
+#
+# $Id: cpudists,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	cpudists [-ahV] [-t top] [interval [count]]
+#
+#		-a              # print all processes
+#		-V              # don't print timestamps
+#		-t num          # print top num  only
+#  eg,
+#		cpudists 1      # print every 1 second
+#		cpudists -a 10  # print all processes every 10 secs
+#
+#
+# FIELDS: 
+#		value           The following or the process name,
+#		IDLE            Idle time - CPU running idle thread
+#		KERNEL          Kernel time - Kernel servicing interrupts, ...
+#		PROCESS         Process time - PIDs running on the system
+#		count           Number of occurances at least this duration (ns)
+#
+# NOTES:
+# * This takes into account multiple CPU servers, the total 
+# seconds consumed will be a multiple of the CPU count and interval.
+#
+# SEE ALSO: cputimes
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 27-Apr-2005   Brendan Gregg   Created this.
+# 22-Sep-2005	   "      "	Fixed key corruption bug.
+# 22-Sep-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+opt_all=0; opt_time=1; opt_top=0; top=0; interval=1; count=1
+
+while getopts aht:V name
+do
+        case $name in
+        a)      opt_all=1 ;;
+        V)      opt_time=0 ;;
+        t)      opt_top=1; top=$OPTARG ;;
+        h|?)    cat <<-END >&2
+		USAGE: cpudists [-ahV] [-t top] [interval [count]]
+		       cpudists                # default output
+		               -a              # print all processes
+		               -V              # don't print times
+		               -t num          # print top num only
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+if [ "$1" -gt 0 ]; then
+        interval=$1; count=-1; shift
+fi
+if [ "$1" -gt 0 ]; then
+	count=$1; shift
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_all    = '$opt_all';
+ inline int OPT_time   = '$opt_time';
+ inline int OPT_top    = '$opt_top';
+ inline int TOP        = '$top';
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$count';
+
+ /* Initialise variables */
+ dtrace:::BEGIN
+ {
+	cpustart[cpu] = 0;
+	counts = COUNTER;
+	secs = INTERVAL;
+ }
+
+ /* Flag this thread as idle */
+ sysinfo:unix:idle_enter:idlethread
+ {
+	idle[cpu] = 1;
+ }
+
+ /* Save kernel time between running threads */
+ sched:::on-cpu 
+ /cpustart[cpu]/
+ {
+	this->elapsed = timestamp - cpustart[cpu];
+	@Procs["KERNEL"] = quantize(this->elapsed);
+ }
+
+ /* Save the elapsed time of a thread */
+ sched:::off-cpu,
+ sched:::remain-cpu,
+ profile:::profile-1sec
+ /cpustart[cpu]/
+ {
+	/* determine the name for this thread */
+	program[cpu] = pid == 0 ? idle[cpu] ? "IDLE" : "KERNEL" :
+	    OPT_all ? execname : "PROCESS";
+
+	/* save elapsed */
+	this->elapsed = timestamp - cpustart[cpu];
+	@Procs[program[cpu]] = quantize(this->elapsed);
+	cpustart[cpu] = timestamp;
+ }
+
+ /* Record the start time of a thread */
+ sched:::on-cpu,
+ sched:::remain-cpu
+ {
+	idle[cpu] = 0;
+	cpustart[cpu] = timestamp;
+ }
+
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /* Print time */
+ profile:::tick-1sec 
+ /secs == 0 && OPT_time/ 
+ { 
+	printf("%Y,\n", walltimestamp);
+ }
+
+ /* Print report */
+ profile:::tick-1sec 
+ /secs == 0/ 
+ { 
+	OPT_top ? trunc(@Procs, TOP) : 1;
+	printa("%16s %@16d\n", @Procs);
+	trunc(@Procs);
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /* End of program */
+ profile:::tick-1sec 
+ /counts == 0/ 
+ {
+	exit(0);
+ }
+
+ /* cleanup for Ctrl-C */
+ dtrace:::END
+ {
+	trunc(@Procs);
+ }
+'
+
diff --git a/external/cddl/dtracetoolkit/dist/Bin/cputimes b/external/cddl/dtracetoolkit/dist/Bin/cputimes
new file mode 100755
index 0000000..589f7c6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/cputimes
@@ -0,0 +1,203 @@
+#!/usr/bin/sh
+#
+# cputimes - print CPU time consumed by Kernel/Idle/Processes.
+#            Written using DTrace (Solaris 10 3/05).
+#
+# $Id: cputimes,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# This program accurately measures time consumed by the kernel, but in
+# doing so creates extra kernel load of it's own. The extra kernel
+# activity can be measured by running one cputimes and then another, and
+# comparing the difference in kernel consumed time. This method can be
+# used to estimate the load created by other DTrace scripts.
+#
+# USAGE:	cputimes [-ahTV] [-t top] [interval [count]]
+#
+#		-a                # print all processes
+#		-T                # print totals
+#		-V                # don't print timestamps
+#		-t num            # print top num lines only
+#  eg,
+#		cputimes 1        # print every 1 second
+#		cputimes -a 10    # print all processes every 10 secs
+#		cputimes -at 8 5  # print top 8 lines every 5 secs
+#
+#
+# FIELDS: 
+#		THREADS         The following or the process name,
+#		IDLE            Idle time - CPU running idle thread
+#		KERNEL          Kernel time - Kernel servicing interrupts, ...
+#		PROCESS         Process time - PIDs running on the system
+#		TIME (ns)       Sum of the CPU time, ns (nanoseconds)
+#
+# NOTES:
+# * This takes into account multiple CPU servers, the total 
+# seconds consumed will be a multiple of the CPU count and interval.
+#
+# SEE ALSO: cpudists
+#           Heisenberg's uncertainty principle.
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 27-Apr-2005   Brendan Gregg   Created this.
+# 22-Sep-2005      "      "	Fixed a key corruption bug.
+# 22-Sep-2005      "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+opt_all=0; opt_time=1; opt_top=0; opt_totals=0
+top=0; interval=1; count=1
+
+while getopts aht:TV name
+do
+        case $name in
+        a)      opt_all=1 ;;
+        T)      opt_totals=1 ;;
+        V)      opt_time=0 ;;
+        t)      opt_top=1; top=$OPTARG ;;
+        h|?)    cat <<-END >&2
+		USAGE: cputimes [-ahTV] [-t top] [interval [count]]
+		       cputimes                  # default output
+		               -a                # print all processes
+		               -T                # print totals
+		               -V                # don't print times
+		               -t num            # print top num lines only
+		          eg,
+		               cputimes 1        # print every 1 second
+		               cputimes -a 10    # all processes per 10 sec
+		               cputimes -at 8 5  # top 8 lines every 5 secs
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+if [ "$1" -gt 0 ]; then
+        interval=$1; count=-1; shift
+fi
+if [ "$1" -gt 0 ]; then
+	count=$1; shift
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_all    = '$opt_all';
+ inline int OPT_time   = '$opt_time';
+ inline int OPT_totals = '$opt_totals';
+ inline int OPT_top    = '$opt_top';
+ inline int TOP        = '$top';
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$count';
+
+ /* Initialise variables */
+ dtrace:::BEGIN
+ {
+	cpustart[cpu] = 0;
+	counts = COUNTER;
+	secs = INTERVAL;
+ }
+
+ /* Flag this thread as idle */
+ sysinfo:unix:idle_enter:idlethread
+ {
+	idle[cpu] = 1;
+ }
+
+ /* Save kernel time between running threads */
+ sched:::on-cpu 
+ /cpustart[cpu]/
+ {
+	this->elapsed = timestamp - cpustart[cpu];
+	@Procs["KERNEL"] = sum(this->elapsed);
+ }
+
+ /* Save the elapsed time of a thread */
+ sched:::off-cpu,
+ sched:::remain-cpu,
+ profile:::profile-1sec
+ /cpustart[cpu]/
+ {
+	/* determine the name for this thread */
+	program[cpu] = pid == 0 ? idle[cpu] ? "IDLE" : "KERNEL" :
+	    OPT_all ? execname : "PROCESS";
+
+	/* save elapsed */
+	this->elapsed = timestamp - cpustart[cpu];
+	@Procs[program[cpu]] = sum(this->elapsed);
+	cpustart[cpu] = timestamp;
+ }
+
+ /* Record the start time of a thread */
+ sched:::on-cpu,
+ sched:::remain-cpu
+ {
+	idle[cpu] = 0;
+	cpustart[cpu] = timestamp;
+ }
+
+
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /* Print time */
+ profile:::tick-1sec 
+ /secs == 0/
+ { 
+	OPT_time ? printf("%Y,\n", walltimestamp) : 1;
+	printf("%16s %16s\n", "THREADS", "TIME (ns)");
+ }
+
+ /* Print report */
+ profile:::tick-1sec 
+ /secs == 0/ 
+ { 
+	OPT_top ? trunc(@Procs, TOP) : 1;
+	printa("%16s %@16d\n", @Procs);
+	trunc(@Procs);
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /* End of program */
+ profile:::tick-1sec 
+ /counts == 0/ 
+ {
+	exit(0);
+ }
+
+ /* cleanup for Ctrl-C */
+ dtrace:::END
+ {
+	trunc(@Procs);
+ }
+'
+
diff --git a/external/cddl/dtracetoolkit/dist/Bin/cputypes.d b/external/cddl/dtracetoolkit/dist/Bin/cputypes.d
new file mode 100755
index 0000000..d2d51ad
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/cputypes.d
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -s
+/*
+ * cputypes.d - list CPU type info.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: cputypes.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE:	cputypes.d
+ *
+ * FIELDS:
+ *		CPU		CPU ID
+ *		CHIP		chip ID
+ *		PSET		processor set ID
+ *		LGRP		latency group ID
+ *		CLOCK		clock speed, MHz
+ *		TYPE		CPU type
+ *		FPU		floating point identifier types
+ *
+ * SEE ALSO:	psrinfo(1M)
+ *		/usr/include/sys/processor.h
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 27-Jun-2005  Brendan Gregg   Created this.
+ * 27-Jun-2005     "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option bufsize=64k
+
+dtrace:::BEGIN
+{
+	printf("%4s %4s %4s %4s %6s  %-16s %s\n",
+	    "CPU", "CHIP", "PSET", "LGRP", "CLOCK", "TYPE", "FPU");
+	done[0] = 0;
+}
+
+profile:::profile-10ms
+/done[cpu] == 0/
+{
+	printf("%4d %4d %4d %4d %6d  %-16s %s\n",
+	    cpu, curcpu->cpu_chip, curcpu->cpu_pset,
+	    curcpu->cpu_lgrp, curcpu->cpu_info.pi_clock,
+	    stringof(curcpu->cpu_info.pi_processor_type),
+	    stringof(curcpu->cpu_info.pi_fputypes));
+	done[cpu]++;
+}
+
+profile:::tick-100ms
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/cpuwalk.d b/external/cddl/dtracetoolkit/dist/Bin/cpuwalk.d
new file mode 100755
index 0000000..3620647
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/cpuwalk.d
@@ -0,0 +1,72 @@
+#!/usr/sbin/dtrace -s
+/*
+ * cpuwalk.d - Measure which CPUs a process runs on.
+ *             Written using DTrace (Solaris 10 3/05)
+ *
+ * This program is for multi-CPU servers, and can help identify if a process
+ * is running on multiple CPUs concurrently or not.
+ *
+ * $Id: cpuwalk.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	cpuwalk.d [duration]
+ *	   eg,
+ *		cpuwalk.d 10		# sample for 10 seconds
+ *		cpuwalk.d		# sample until Ctrl-C is hit
+ *
+ * FIELDS:
+ *		value		CPU id
+ *		count		Number of 1000 hz samples on this CPU
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 22-Sep-2005  Brendan Gregg   Created this.
+ * 14-Feb-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int MAXCPUID = 1024;
+
+dtrace:::BEGIN
+{
+	$1 ? printf("Sampling...\n") :
+	    printf("Sampling... Hit Ctrl-C to end.\n");
+	seconds = 0;
+}
+
+profile:::profile-1000hz
+/pid/
+{
+	@sample[pid, execname] = lquantize(cpu, 0, MAXCPUID, 1);
+}
+
+profile:::tick-1sec
+{
+	seconds++;
+}
+
+profile:::tick-1sec
+/seconds == $1/
+{
+	exit(0);
+}
+
+dtrace:::END
+{
+	printa("\n     PID: %-8d CMD: %s\n%@d", @sample);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/crash.d b/external/cddl/dtracetoolkit/dist/Bin/crash.d
new file mode 100755
index 0000000..3a19d50
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/crash.d
@@ -0,0 +1,181 @@
+#!/usr/sbin/dtrace -Cs
+/*
+ * crash.d - Crashed Application info.
+ *           Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: crash.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * When applications crash via a SIGSEGV or SIGBUS, a report of the
+ * process state is printed out.
+ *
+ * USAGE:       crash.d
+ *
+ * FIELDS:
+ *              Type		Signal type
+ *              Program		Execname of process
+ *              Agrs		Argument listing of process
+ *              PID		Process ID
+ *              TID		Thread ID
+ *              LWPs		Number of Light Weight Processes
+ *              PPID		Parent Process ID
+ *              UID		User ID
+ *              GID		Group ID
+ *              TaskID		Task ID
+ *              ProjID		Project ID
+ *              PoolID		Pool ID
+ *              ZoneID		Zone ID
+ *              zone		Zone name
+ *              CWD		Current working directory
+ *              errno		Error number of last syscall
+ *
+ * SEE ALSO: mdb, pstack, coreadm
+ *           app_crash.d - Greg Nakhimovsky & Morgan Herrington
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 29-May-2005  Brendan Gregg   Created this.
+ * 24-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option destructive
+
+dtrace:::BEGIN
+{
+	printf("Waiting for crashing applications...\n");
+}
+
+/*
+ * Print Report Header
+ */
+proc:::signal-send
+/(args[2] == SIGBUS || args[2] == SIGSEGV) && pid == args[1]->pr_pid/
+{
+	stop();
+	self->elapsed = timestamp - curthread->t_procp->p_mstart;
+	self->crash = 1;
+
+	printf("\n-----------------------------------------------------\n");
+	printf("CRASH DETECTED at %Y\n", walltimestamp);
+	printf("-----------------------------------------------------\n");
+	printf("Type:    %s\n", args[2] == SIGBUS ? "SIGBUS" : "SIGSEGV");
+	printf("Program: %s\n", execname);
+	printf("Args:    %S\n", curpsinfo->pr_psargs);
+	printf("PID:     %d\n", pid);
+	printf("TID:     %d\n", tid);
+	printf("LWPs:    %d\n", curthread->t_procp->p_lwpcnt);
+	printf("PPID:    %d\n", ppid);
+	printf("UID:     %d\n", uid);
+	printf("GID:     %d\n", gid);
+	printf("TaskID:  %d\n", curpsinfo->pr_taskid);
+	printf("ProjID:  %d\n", curpsinfo->pr_projid);
+	printf("PoolID:  %d\n", curpsinfo->pr_poolid);
+	printf("ZoneID:  %d\n", curpsinfo->pr_zoneid);
+	printf("zone:    %s\n", zonename);
+	printf("CWD:     %s\n", cwd);
+	printf("errno:   %d\n", errno);
+
+	printf("\nUser Stack Backtrace,");
+	ustack();
+
+	printf("\nKernel Stack Backtrace,");
+	stack();
+}
+
+/*
+ * Print Java Details
+ */
+proc:::signal-send
+/self->crash && execname == "java"/
+{
+	printf("\nJava Stack Backtrace,");
+	jstack();
+}
+
+/*
+ * Print Ancestors
+ */
+proc:::signal-send
+/self->crash/
+{
+	printf("\nAnsestors,\n");
+	self->level = 1;
+	self->procp = curthread->t_procp;
+	self->ptr = self->procp;
+}
+
+/* ancestory un-rolled loop, reverse order, 6 deep */
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+
+/*
+ * Print Report Footer
+ */
+proc:::signal-send
+/self->crash/
+{
+
+	printf("\nTimes,\n");
+	printf("    User:    %d ticks\n", self->procp->p_utime);
+	printf("    Sys:     %d ticks\n", self->procp->p_stime);
+	printf("    Elapsed: %d ms\n", self->elapsed/1000000);
+
+	printf("\nSizes,\n");
+	printf("    Heap:   %d bytes\n", self->procp->p_brksize);
+	printf("    Stack:  %d bytes\n", self->procp->p_stksize);
+
+	self->ptr = 0;
+	self->procp = 0;
+	self->crash = 0;
+	self->level = 0;
+	self->elapsed = 0;
+	system("/usr/bin/prun %d", pid);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/creatbyproc.d b/external/cddl/dtracetoolkit/dist/Bin/creatbyproc.d
new file mode 100755
index 0000000..2a95084
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/creatbyproc.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * creatbyproc.d - file creat()s by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: creatbyproc.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ */
+
+syscall::creat*:entry { printf("%s %s", execname, copyinstr(arg0)); }
diff --git a/external/cddl/dtracetoolkit/dist/Bin/cswstat.d b/external/cddl/dtracetoolkit/dist/Bin/cswstat.d
new file mode 100755
index 0000000..09e6803
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/cswstat.d
@@ -0,0 +1,74 @@
+#!/usr/sbin/dtrace -s
+/*
+ * cswstat.d - context switch time stat.
+ *	       Uses DTrace (Solaris 10 03/05)
+ *
+ * This prints a context switch count and consumed time for context
+ * switching every second.
+ *
+ * $Id: cswstat.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	cswstat.d
+ *
+ * FIELDS:
+ *		TIME		Current time
+ *		NUM		Number of context switches
+ *		CSWTIME(us)	Time consumed context switching, us
+ *		AVGTIME(us)	Average context switch time, us
+ *
+ * THANKS: Toomas Soome
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 17-May-2005  Brendan Gregg   Created this.
+ * 03-Nov-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	/* print header */
+	printf("%-20s  %8s %12s %12s\n", "TIME", "NUM", "CSWTIME(us)",
+	    "AVGTIME(us)");
+	times = 0;
+	num = 0;
+}
+
+sched:::off-cpu
+{
+	/* csw start */
+	num++;
+	start[cpu] = timestamp;
+}
+
+sched:::on-cpu
+/start[cpu]/
+{
+	/* csw end */
+	times += timestamp - start[cpu];
+	start[cpu] = 0;
+}
+
+profile:::tick-1sec
+{
+	/* print output */
+	printf("%20Y  %8d %12d %12d\n", walltimestamp, num, times/1000,
+	    num == 0 ? 0 : times/(1000 * num));
+	times = 0;
+	num = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/dappprof b/external/cddl/dtracetoolkit/dist/Bin/dappprof
new file mode 100755
index 0000000..eb7452f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/dappprof
@@ -0,0 +1,239 @@
+#!/usr/bin/sh
+#
+# dappprof - profile user and library function usage.
+#            Written using DTrace (Solaris 10 3/05).
+#
+# The default output traces user functions as they are called. Options
+#  can be used to examine libraries and timestamps.
+#
+# $Id: dappprof,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE: dappprof [-acehoTU] [-u lib] { -p PID | command }
+#
+#          -p PID          # examine this PID
+#          -a              # print all details
+#          -c              # print call counts
+#          -e              # print elapsed times (us)
+#          -o              # print on cpu times (us)
+#          -T              # print totals
+#          -u lib          # trace this library instead
+#          -U              # trace all libraries + user functions
+#          -b bufsize      # dynamic variable buf size (default is "4m")
+#  eg,
+#       dappprof df -h       # run and examine the "df -h" command
+#       dappprof -p 1871     # examine PID 1871
+#
+# The elapsed times are interesting, to help identify calls that take
+#  some time to complete (during which the process may have context
+#  switched off the CPU). 
+#
+# SEE ALSO: dapptrace      # DTraceToolkit
+#           dtruss         # DTraceToolkit
+#           apptrace           
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 16-May-2005   Brendan Gregg   Created this.
+# 17-Jul-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_totals=0; opt_pid=0; pid=0; opt_lib=0; lib=""
+opt_elapsed=0; opt_cpu=0; opt_counts=0; opt_liball=0
+opt_command=0; command=""; opt_buf=0; buf="4m"
+
+### Process options
+while getopts ab:cehop:Tu:U name
+do
+        case $name in
+        a)      opt_liball=1; opt_counts=1; opt_elapsed=1; opt_cpu=1 
+		opt_totals=1 ;;
+	b)	opt_buf=1; buf=$OPTARG ;;
+        p)      opt_pid=1; pid=$OPTARG ;;
+        u)      opt_lib=1; lib=$OPTARG ;;
+        U)      opt_liball=1 ;; 
+	c)	opt_counts=1 ;;
+	e)	opt_elapsed=1 ;;
+	o)	opt_cpu=1 ;;
+	T)	opt_totals=1 ;;
+        h|?)    cat <<-END >&2
+		USAGE: dappprof [-cehoTU] [-u lib] { -p PID | command }
+
+		          -p PID          # examine this PID
+		          -a              # print all details
+		          -c              # print syscall counts
+		          -e              # print elapsed times (us)
+		          -o              # print on cpu times
+		          -T              # print totals
+		          -u lib          # trace this library instead
+		          -U              # trace all libraries + user funcs
+		          -b bufsize      # dynamic variable buf size
+		   eg,
+		       dappprof df -h       # run and examine "df -h"
+		       dappprof -p 1871     # examine PID 1871
+		       dappprof -ap 1871    # print all data
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+### Option logic
+if [ $opt_pid -eq 0 ]; then
+	opt_command=1
+	if [ "$*" = "" ]; then
+		$0 -h
+		exit
+	fi
+	command="$*"
+fi
+if [ $opt_elapsed -eq 0 -a $opt_cpu -eq 0 -a $opt_counts -eq 0 ]; then
+        opt_elapsed=1;
+fi
+
+
+### Probe logic
+if [ $opt_liball -eq 1 ]; then
+	probe_entry='pid$target:::entry'
+	probe_return='pid$target:::return'
+elif [ $opt_lib -eq 1 ]; then
+	probe_entry='pid$target:'$lib'::entry'
+	probe_return='pid$target:'$lib'::return'
+else
+ 	probe_entry='pid$target:a.out::entry'
+ 	probe_return='pid$target:a.out::return'
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+
+### Define D Script
+dtrace='
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_command   = '$opt_command';
+ inline int OPT_liball    = '$opt_liball';
+ inline int OPT_elapsed   = '$opt_elapsed';
+ inline int OPT_cpu       = '$opt_cpu';
+ inline int OPT_counts    = '$opt_counts';
+ inline int OPT_totals    = '$opt_totals';
+ inline int OPT_pid       = '$opt_pid';
+ inline int PID           = '$pid';
+ inline string NAME       = "'$pname'";
+
+ dtrace:::BEGIN 
+ /! OPT_command/
+ {
+	printf("Tracing... Hit Ctrl-C to end...\n");
+ }
+
+ /*
+  * Save syscall entry info
+  */
+ '$probe_entry'
+ {
+        /* set function depth */
+        this->fdepth = ++fdepth[probefunc];
+
+	/* set start details */
+	self->start[probefunc,this->fdepth] = timestamp;
+	self->vstart[probefunc,this->fdepth] = vtimestamp;
+
+	/* count occurances */
+	OPT_counts && OPT_liball ? @Counts[probemod,probefunc] = count() : 1;
+	OPT_counts && ! OPT_liball ? @Counts[probefunc] = count() : 1;
+	OPT_counts && OPT_totals && OPT_liball ? 
+	    @Counts["TOTAL:",""] = count() : 1;
+	OPT_counts && OPT_totals && ! OPT_liball ? 
+	    @Counts["TOTAL:"] = count() : 1;
+ }
+
+ /*
+  * Print return data
+  */
+ /* print 3 arg output - default */
+ '$probe_return'
+ /self->start[probefunc,fdepth[probefunc]]/
+ {
+        /* fetch function depth */
+        this->fdepth = fdepth[probefunc];
+
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start[probefunc,this->fdepth];
+	self->start[probefunc,this->fdepth] = 0;
+	this->cpu = vtimestamp - self->vstart[probefunc,this->fdepth];
+	self->vstart[probefunc,this->fdepth] = 0;
+
+	/* save elapsed times */
+	OPT_elapsed && OPT_liball ? 
+	    @Elapsed[probemod,probefunc] = sum(this->elapsed) : 1;
+	OPT_elapsed && ! OPT_liball ? 
+	    @Elapsed[probefunc] = sum(this->elapsed) : 1;
+	OPT_elapsed && OPT_totals && OPT_liball ? 
+	    @Elapsed["TOTAL:",""] = sum(this->elapsed) : 1;
+	OPT_elapsed && OPT_totals && ! OPT_liball ? 
+	    @Elapsed["TOTAL:"] = sum(this->elapsed) : 1;
+
+	/* save cpu times */
+	OPT_cpu && OPT_liball ? @CPU[probemod,probefunc] = sum(this->cpu) : 1;
+	OPT_cpu && ! OPT_liball ? @CPU[probefunc] = sum(this->cpu) : 1;
+	OPT_cpu && OPT_totals && OPT_liball ? 
+	    @CPU["TOTAL:",""] = sum(this->cpu) : 1;
+	OPT_cpu && OPT_totals && ! OPT_liball ? 
+	    @CPU["TOTAL:"] = sum(this->cpu) : 1;
+	
+ }
+
+ /* print counts */
+ dtrace:::END
+ {
+	/* print counts */
+	OPT_counts ? printf("\n%-49s %16s\n","CALL","COUNT") : 1;
+	OPT_counts && OPT_liball ? printa("%-16s %-32s %@16d\n",@Counts) : 1;
+	OPT_counts && ! OPT_liball ? printa("%-49s %@16d\n",@Counts) : 1;
+
+	/* print elapsed times */
+	OPT_elapsed ? printf("\n%-49s %16s\n","CALL","ELAPSED") : 1;
+	OPT_elapsed && OPT_liball ? printa("%-16s %-32s %@16d\n",@Elapsed) : 1;
+	OPT_elapsed && ! OPT_liball ? printa("%-49s %@16d\n",@Elapsed) : 1;
+
+	/* print cpu times */
+	OPT_cpu ? printf("\n%-49s %16s\n","CALL","CPU") : 1;
+	OPT_cpu && OPT_liball ? printa("%-16s %-32s %@16d\n",@CPU) : 1;
+	OPT_cpu && ! OPT_liball ? printa("%-49s %@16d\n",@CPU) : 1;
+ }
+'
+
+### Run DTrace
+if [ $opt_command -eq 1 ]; then
+	/usr/sbin/dtrace -x dynvarsize=$buf -x evaltime=exec -n "$dtrace" \
+	    -c "$command" >&2
+else
+	/usr/sbin/dtrace -x dynvarsize=$buf -n "$dtrace" -p "$pid" >&2
+fi
+
diff --git a/external/cddl/dtracetoolkit/dist/Bin/dapptrace b/external/cddl/dtracetoolkit/dist/Bin/dapptrace
new file mode 100755
index 0000000..7e5de24
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/dapptrace
@@ -0,0 +1,259 @@
+#!/usr/bin/sh
+#
+# dapptrace - trace user and library function usage.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# The default output traces user functions as they are called. Options
+#  can be used to examine libraries and timestamps.
+#
+# $Id: dapptrace,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE: dapptrace [-acdeFlhoU] [-u lib] { -p PID | command }
+#
+#          -p PID          # examine this PID
+#          -a              # print all details
+#          -c              # print call counts
+#          -d              # print relative timestamps (us)
+#          -e              # print elapsed times (us)
+#          -F              # print flow indentation
+#          -l              # print pid/lwpid per line
+#          -o              # print on cpu times (us)
+#          -u lib          # trace this library instead
+#          -U              # trace all libraries + user functions
+#          -b bufsize      # dynamic variable buf size (default is "4m")
+#  eg,
+#       dapptrace df -h       # run and examine the "df -h" command
+#       dapptrace -p 1871     # examine PID 1871
+#       dapptrace -Fp 1871    # print using flow indents
+#       dapptrace -eop 1871   # print elapsed and CPU times
+#
+# The elapsed times are interesting, to help identify calls that take
+#  some time to complete (during which the process may have context
+#  switched off the CPU). 
+#
+# SEE ALSO: dappprof       # DTraceToolkit
+#           dtruss         # DTraceToolkit
+#           apptrace
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 16-May-2005   Brendan Gregg   Created this.
+# 17-Jul-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_pid=0; pid=0; opt_indent=0; opt_lib=0; lib=""
+opt_elapsed=0; opt_cpu=0; opt_counts=0; 
+opt_relative=0; opt_printid=0; opt_liball=0
+opt_command=0; command=""; opt_buf=0; buf="4m"
+
+### Process options
+while getopts ab:cdeFhlop:u:U name
+do
+        case $name in
+        a)      opt_liball=1; opt_counts=1; opt_relative=1; opt_elapsed=1
+		opt_indent=1; opt_printid=1; opt_cpu=1 ;; 
+	b)	opt_buf=1; buf=$OPTARG ;;
+        p)      opt_pid=1; pid=$OPTARG ;;
+        u)      opt_lib=1; lib=$OPTARG ;;
+        U)      opt_liball=1 ;; 
+	c)	opt_counts=1 ;;
+	d)	opt_relative=1 ;;
+	e)	opt_elapsed=1 ;;
+	F)	opt_indent=1 ;;
+	l)	opt_printid=1 ;;
+	o)	opt_cpu=1 ;;
+        h|?)    cat <<-END >&2
+		USAGE: dapptrace [-acdeholFLU] [-u lib] { -p PID | command }
+
+		          -p PID          # examine this PID
+		          -a              # print all details
+		          -c              # print syscall counts
+		          -d              # print relative times (us)
+		          -e              # print elapsed times (us)
+		          -F              # print flow indentation
+		          -l              # print pid/lwpid
+		          -o              # print CPU on cpu times
+		          -u lib          # trace this library instead
+		          -U              # trace all libraries + user funcs
+		          -b bufsize      # dynamic variable buf size
+		   eg,
+		       dapptrace df -h       # run and examine "df -h"
+		       dapptrace -p 1871     # examine PID 1871
+		       dapptrace -Fp 1871    # print using flow indents
+		       dapptrace -eop 1871   # print elapsed and CPU times
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+### Option logic
+if [ $opt_pid -eq 0 ]; then
+	opt_command=1
+	if [ "$*" = "" ]; then
+		$0 -h
+		exit
+	fi
+	command="$*"
+fi
+
+### Probe logic
+if [ $opt_liball -eq 1 ]; then
+	probe_entry='pid$target:::entry'
+	probe_return='pid$target:::return'
+elif [ $opt_lib -eq 1 ]; then
+	probe_entry='pid$target:'$lib'::entry'
+	probe_return='pid$target:'$lib'::return'
+else
+ 	probe_entry='pid$target:a.out::entry'
+ 	probe_return='pid$target:a.out::return'
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+
+### Define D Script
+dtrace='
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_command   = '$opt_command';
+ inline int OPT_liball    = '$opt_liball';
+ inline int OPT_indent    = '$opt_indent';
+ inline int OPT_printid   = '$opt_printid';
+ inline int OPT_relative  = '$opt_relative';
+ inline int OPT_elapsed   = '$opt_elapsed';
+ inline int OPT_cpu       = '$opt_cpu';
+ inline int OPT_counts    = '$opt_counts';
+ inline int OPT_pid       = '$opt_pid';
+ inline int PID           = '$pid';
+ inline string NAME       = "'$pname'";
+
+ dtrace:::BEGIN 
+ {
+	/* print header */
+	OPT_printid  ? printf("%-8s  ","PID/LWP") : 1;
+	OPT_relative ? printf("%8s ","RELATIVE") : 1;
+	OPT_elapsed  ? printf("%7s ","ELAPSD") : 1;
+	OPT_cpu      ? printf("%6s ","CPU") : 1;
+	printf("CALL(args) \t\t = return\n");
+
+	/* indent depth */
+	depth = 0;
+ }
+
+ /*
+  * Save syscall entry info
+  */
+ '$probe_entry'
+ {
+	/* set function depth */
+	this->fdepth = ++fdepth[probefunc];
+	depth += 2;
+
+	/* set start details */
+	self->start[probefunc,this->fdepth] = timestamp;
+	self->vstart[probefunc,this->fdepth] = vtimestamp;
+
+	/* count occurances */
+	OPT_counts && OPT_liball ? @Counts[probemod,probefunc] = count() : 1;
+	OPT_counts && ! OPT_liball ? @Counts[probefunc] = count() : 1;
+
+	/* print optional fields */
+	OPT_printid  ? printf("%5d/%d:  ",pid,tid) : 1;
+	OPT_relative ? printf("%8d ",vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("      . ") : 1;
+	OPT_cpu      ? printf("     . ") : 1;
+	OPT_indent   ? printf("%*s",depth,"") : 1;
+
+	/* print main data */
+	printf("-> ");
+	OPT_liball ? printf("%s:",probemod) : 1;
+	printf("%s(0x%X, 0x%X, 0x%X)\t\t\n",probefunc,arg0,arg1,arg2);
+
+ }
+
+ /*
+  * Print return data
+  */
+ /* print 3 arg output - default */
+ '$probe_return'
+ /self->start[probefunc,fdepth[probefunc]]/
+ {
+	/* fetch function depth */
+	this->fdepth = fdepth[probefunc];
+
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start[probefunc,this->fdepth];
+	self->start[probefunc,this->fdepth] = 0;
+	this->cpu = vtimestamp - self->vstart[probefunc,this->fdepth];
+	self->vstart[probefunc,this->fdepth] = 0;
+
+	/* print optional fields */
+	OPT_printid  ? printf("%5d/%d:  ",pid,tid) : 1;
+	OPT_relative ? printf("%8d ",vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ",this->elapsed/1000) : 1;
+	OPT_cpu      ? printf("%6d ",this->cpu/1000) : 1;
+	OPT_indent   ? printf("%*s",depth,"") : 1;
+
+	/* print main data */
+	printf("<- ");
+	OPT_liball ? printf("%s:",probemod) : 1;
+	printf("%s = %d\n",probefunc,(int)arg0);
+	depth -= 2;
+	fdepth[probefunc]--;
+ }
+
+ /* reset indent depth */
+ profile:::tick-1sec
+ {
+	/* 
+	 * some probes generated by the pid provider have entries
+ 	 * but not returns. this is a klude to fix that problem. this
+	 * also explains fdepth[probefunc] rather than a single depth.
+	 */
+	depth = 0;
+ }
+
+ /* print counts */
+ dtrace:::END
+ {
+	OPT_counts ? printf("\n%-49s %16s\n","CALL","COUNT") : 1;
+	OPT_counts && OPT_liball ? printa("%-16s %-32s %@16d\n",@Counts) : 1;
+	OPT_counts && ! OPT_liball ? printa("%-49s %@16d\n",@Counts) : 1;
+ }
+'
+
+### Run DTrace
+if [ $opt_command -eq 1 ]; then
+	/usr/sbin/dtrace -x dynvarsize=$buf -x evaltime=exec -n "$dtrace" \
+	    -c "$command" >&2
+else
+	/usr/sbin/dtrace -x dynvarsize=$buf -n "$dtrace" -p "$pid" >&2
+fi
+
diff --git a/external/cddl/dtracetoolkit/dist/Bin/dexplorer b/external/cddl/dtracetoolkit/dist/Bin/dexplorer
new file mode 100755
index 0000000..1f972d4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/dexplorer
@@ -0,0 +1,547 @@
+#!/usr/bin/ksh
+#
+# dexplorer - DTrace system explorer, runs a collection of scripts.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# This program automatically runs a collection of DTrace scripts to examine
+# many areas of the system, and places the output in a meaningful directory
+# structure that is tar'd and gzip'd.
+#
+# $Id: dexplorer,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	dexplorer [-yDT] [-d outputdir] [-i interval]
+#
+#                  -q              # quiet mode
+#                  -y              # "yes", don't prompt for confirmation
+#                  -D              # don't delete output dir
+#                  -T              # don't create output tar.gz
+#                  -d outputdir    # output directory
+#                  -i interval     # interval for each sample
+#    eg,
+#               dexplorer          # default is 5 second samples
+#               dexplorer -y -i30  # no prompting, with 30 second samples
+#
+# SEE ALSO:	DTraceToolkit
+#
+# THANKS: David Visser, et all. for the idea and encouragement.
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# CODE:
+#
+#  This is currently a monolithic script, and while it contains only
+#  a few dozen straigftforward DTrace scripts I think it's desirable to
+#  keep it that way. The scripts themselves have designed to be very
+#  generic (eg, switching on all sdt:::), and are aggregations to keep a 
+#  limit on the size of the output.
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 23-Jun-2005	Brendan Gregg	Created this.
+# 28-Jun-2005	   "      "	Last update.
+
+#
+#  Default variables
+#
+interval=5				# time of each sample
+verbose=1				# print screen output
+prompt=1				# prompt before run
+tar=1					# create tar file
+delete=1				# delete output dirs
+dtrace=/usr/sbin/dtrace			# path to dtrace
+root=.					# default output dir
+PATH=/usr/bin:/usr/sbin			# safe path
+dir=de_`uname -n`_`date +%Y%m%d%H%M`	# OUTPUT FILENAME
+samples=20				# max number of tests
+current=0				# current sample
+
+#
+#  Process options
+#
+while getopts d:hi:qyDT name
+do
+	case $name in
+	d)      root=$OPTARG ;;
+	i)      interval=$OPTARG ;;
+	q)      verbose=0 ;;
+	y)      prompt=0 ;;
+	D)      delete=0 ;;
+	T)      tar=0 ;;
+	h|?)    cat <<-END >&2
+		USAGE: dexplorer [-qyDT] [-d outputdir] [-i interval]
+		 
+		        -q               # quiet mode
+		        -y               # "yes", don't prompt for confirmation
+		        -D               # don't delete output dir
+		        -T               # don't create output tar.gz
+		        -d outputdir     # output directory
+		        -i interval      # interval for each sample
+		   eg,
+		       dexplorer         # default is 5 second samples
+		       dexplorer -y -i30 # no prompting, with 30 second samples
+		END
+		exit 1
+	esac
+done
+shift $(( OPTIND - 1 ))
+
+#
+#  Confirm path
+#
+if [[ "$prompt" == "1" ]] ; then
+	if [[ "$root" == "." ]]; then
+		print "Output dir will be the current dir ($PWD)."
+	else
+		print "Output dir will be $root"
+	fi
+	print -n "Hit enter for yes, or type path: "
+	read ans junk
+	if [[ "$ans" == [yY] || "$ans" == [yY]es ]]; then
+		print "WARNING: I didn't ask for \"$ans\"!"
+		print "\tI was asking for the path or just enter."
+		print "\tignoring \"$ans\"..."
+	fi
+	if [[ "$ans" != "" ]]; then
+		root=$ans
+		print "Output is now $root."
+	fi
+fi
+
+#
+#  Sanity checks
+#
+if [[ "$interval" == *[a-zA-Z]* ]]; then
+	print "ERROR2: Invalid interval $interval.\n"
+	print "Please use a number of seconds."
+	exit 2
+fi
+if (( ${#interval} < 1 )); then
+	print "ERROR3: Length of interval $interval too short.\n"
+	print "Minimum 1 second."
+	exit 3
+fi
+if [[ ! -d "$root" ]]; then
+	print "ERROR4: Output directory \"$root\" does not exist.\n"
+	print "Perhaps try a mkdir first?"
+	print "or use an existing dir, eg \"/tmp\""
+	exit 4
+fi
+if [[ ! -w "$root" ]]; then
+	print "ERROR5: Can't write to output directory \"$root\".\n"
+	print "Are you logged in as root?"
+	print "Perhaps try another directory, eg \"/tmp\""
+	exit 5
+fi
+if [[ `$dtrace -b1k -qn 'BEGIN { trace(pid); exit(0); }'` == "" ]]; then
+	print "ERROR6: Unable to run dtrace!\n"
+	print "Perhaps this is a permission problem? Try running as root."
+	exit 6
+fi
+
+# calculate total time
+(( total = interval * samples ))
+if (( total > 180 )); then
+	(( total = total / 60 ))
+	total="$total minutes"
+else
+	total="$total seconds"
+fi
+
+#
+#  Common Functions
+#
+function decho {
+	if (( verbose )); then print "$*"; fi
+}
+clean="sed /^\$/d"
+header='dtrace:::BEGIN {
+		printf("%Y, ", walltimestamp);
+		printf("%s %s %s %s %s, ", `utsname.sysname, `utsname.nodename,
+		    `utsname.release, `utsname.version, `utsname.machine);
+		printf("%d secs\n",'$interval');
+	}
+	profile:::tick-'$interval'sec { exit(0); }
+	'
+function dstatus {
+	if (( verbose )); then 
+		(( percent = current * 100 / samples ))
+		printf "%3d%% $*\n" $percent
+		(( current = current + 1 ))
+	fi
+}
+
+########################################
+#  START                               #
+########################################
+
+#
+#  Make dirs
+#
+err=0
+cd $root
+(( err = err + $? ))
+mkdir $dir
+(( err = err + $? ))
+cd $dir
+(( err = err + $? ))
+base1=${PWD##*/}
+base2=${dir##*/}
+if [[ "$base1" != "$base2" || "$err" != "0" ]]; then
+	print "ERROR7: tried to mkdir $dir from $root, but something failed.\n"
+	print "Check directories before rerunning."
+	exit 7
+fi
+mkdir Cpu
+mkdir Disk
+mkdir Mem
+mkdir Net
+mkdir Proc
+mkdir Info
+
+#
+#  Create Log
+#
+decho "Starting dexplorer ver 0.76."
+decho "Sample interval is $interval seconds. Total run is > $total."
+( print "dexplorer ver 0.76\n------------------"
+print -n "System: "
+uname -a
+print -n "Start:  "
+date ) > log
+
+#
+#  Capture Standard Info
+#
+args='pid,ppid,uid,gid,projid,zoneid,pset,pri,nice,'
+args=$args'class,vsz,rss,time,pcpu,pmem,args'
+uname -a > Info/uname-a		# System
+psrinfo -v > Info/psrinfo-v	# CPU
+prtconf > Info/prtconf		# Memory (+ devices)
+df -k > Info/df-k		# Disk
+ifconfig -a > Info/ifconfig-a	# Network
+ps -eo $args > Info/ps-o	# Processes
+uptime > Info/uptime		# Load
+
+#
+#  Cpu Tests, DTrace
+#
+
+dstatus "Interrupts by CPU..."
+$dtrace -qn "$header"'
+	sdt:::interrupt-start { @num[cpu] = count(); }
+	dtrace:::END
+	{ 
+		printf("%-16s %16s\n", "CPU", "INTERRUPTS");
+		printa("%-16d %@16d\n", @num);
+	}
+' | $clean > Cpu/interrupt_by_cpu
+
+dstatus "Interrupt times..."
+$dtrace -qn "$header"'
+	sdt:::interrupt-start { self->ts = vtimestamp; }
+	sdt:::interrupt-complete
+	/self->ts && arg0 != 0/
+	{
+		this->devi = (struct dev_info *)arg0;
+		self->name = this->devi != 0 ?
+		    stringof(`devnamesp[this->devi->devi_major].dn_name) : "?";
+		this->inst = this->devi != 0 ? this->devi->devi_instance : 0;
+		@num[self->name, this->inst] = sum(vtimestamp - self->ts);
+		self->name = 0;
+	}
+	sdt:::interrupt-complete { self->ts = 0; }
+	dtrace:::END
+	{ 
+		printf("%11s    %16s\n", "DEVICE", "TIME (ns)");
+		printa("%10s%-3d %@16d\n", @num);
+	}
+' | $clean > Cpu/interrupt_time
+
+dstatus "Dispatcher queue length by CPU..."
+$dtrace -qn "$header"'
+	profile:::profile-1000
+	{
+		this->num = curthread->t_cpu->cpu_disp->disp_nrunnable;
+		@length[cpu] = lquantize(this->num, 0, 100, 1);
+	}
+	dtrace:::END { printa(" CPU %d%@d\n", @length); }
+' | $clean > Cpu/dispqlen_by_cpu
+
+dstatus "Sdt counts..."
+$dtrace -qn "$header"'
+	sdt:::{ @num[probefunc, probename] = count(); }
+	dtrace:::END
+	{ 
+		printf("%-32s %-32s %10s\n", "FUNC", "NAME", "COUNT");
+		printa("%-32s %-32s %@10d\n", @num);
+	}
+' | $clean > Cpu/sdt_count
+
+#
+#  Disk Tests, DTrace
+#
+
+dstatus "Pages paged in by process..."
+$dtrace -qn "$header"'
+	vminfo:::pgpgin { @pg[pid, execname] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %16s\n", "PID", "CMD", "PAGES");
+		printa("%6d %-16s %@16d\n", @pg);
+	}
+' | $clean > Disk/pgpgin_by_process
+
+dstatus "Files opened successfully count..."
+$dtrace -qn "$header"'
+	syscall::open*:entry { self->file = copyinstr(arg0); self->ok = 1; }
+	syscall::open*:return /self->ok && arg0 != -1/ 
+	{ 
+		@num[self->file] = count();
+	}
+	syscall::open*:return /self->ok/ { self->file = 0; self->ok = 0; }
+	dtrace:::END
+	{ 
+		printf("%-64s %8s\n", "FILE", "COUNT");
+		printa("%-64s %@8d\n", @num);
+	}
+' | $clean > Disk/fileopen_count
+
+dstatus "Disk I/O size distribution by process..."
+$dtrace -qn "$header"'
+	io:::start { @size[pid, execname] = quantize(args[0]->b_bcount); }
+' | $clean > Disk/sizedist_by_process
+
+#
+#  Mem Tests, DTrace
+#
+
+dstatus "Minor faults by process..."
+$dtrace -qn "$header"'
+	vminfo:::as_fault { @mem[pid, execname] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %16s\n", "PID", "CMD", "MINFAULTS");
+		printa("%6d %-16s %@16d\n", @mem);
+	}
+' | $clean > Mem/minf_by_process
+
+
+dstatus "Vminfo data by process..."
+$dtrace -qn "$header"'
+	vminfo::: { @data[pid, execname, probename] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %-16s %16s\n",
+		    "PID", "CMD", "STATISTIC", "VALUE");
+		printa("%6d %-16s %-16s %@16d\n", @data);
+	}
+' | $clean > Mem/vminfo_by_process
+
+#
+#  Net Tests, DTrace
+#
+
+dstatus "Mib data by mib statistic..."
+$dtrace -qn "$header"'
+	mib::: { @data[probename] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%-32s %16s\n", "STATISTIC", "VALUE");
+		printa("%-32s %@16d\n", @data);
+	}
+' | $clean > Net/mib_data
+
+dstatus "TCP write bytes by process..."
+$dtrace -qn "$header"'
+	fbt:ip:tcp_output:entry
+	{
+		this->size = msgdsize(args[1]);
+		@size[pid, execname] = sum(this->size);
+	}
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %12s\n", "PID", "CMD", "BYTES");
+		printa("%6d %-16s %@12d\n", @size);
+	}
+' | $clean > Net/tcpw_by_process
+
+#
+#  Proc Tests, DTrace
+#
+
+dstatus "Sample process @ 1000 Hz..."
+$dtrace -qn "$header"'
+	profile:::profile-1000
+	{
+		@num[pid, curpsinfo->pr_psargs] = count();
+	}
+	dtrace:::END
+	{ 
+		printf("%6s %12s %s\n", "PID", "SAMPLES", "ARGS");
+		printa("%6d %@12d %S\n", @num);
+	}
+' | $clean > Proc/sample_process
+
+dstatus "Syscall count by process..."
+$dtrace -qn "$header"'
+	syscall:::entry { @num[pid, execname, probefunc] = count(); }
+	dtrace:::END
+	{ 
+		printf("%6s %-24s %-24s %8s\n",
+		    "PID", "CMD", "SYSCALL", "COUNT");
+		printa("%6d %-24s %-24s %@8d\n", @num);
+	}
+' | $clean > Proc/syscall_by_process
+
+dstatus "Syscall count by syscall..."
+$dtrace -qn "$header"'
+	syscall:::entry { @num[probefunc] = count(); }
+	dtrace:::END
+	{ 
+		printf("%-32s %16s\n", "SYSCALL", "COUNT");
+		printa("%-32s %@16d\n", @num);
+	}
+' | $clean > Proc/syscall_count
+
+dstatus "Read bytes by process..."
+$dtrace -qn "$header"'
+	sysinfo:::readch { @bytes[pid, execname] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %16s\n", "PID", "CMD", "BYTES");
+		printa("%6d %-16s %@16d\n", @bytes);
+	}
+' | $clean > Proc/readb_by_process
+
+dstatus "Write bytes by process..."
+$dtrace -qn "$header"'
+	sysinfo:::writech { @bytes[pid, execname] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %16s\n", "PID", "CMD", "BYTES");
+		printa("%6d %-16s %@16d\n", @bytes);
+	}
+' | $clean > Proc/writeb_by_process
+
+dstatus "Sysinfo counts by process..."
+$dtrace -qn "$header"'
+	sysinfo::: { @num[pid, execname, probename] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %-16s %16s\n", 
+		    "PID", "CMD", "STATISTIC", "COUNT");
+		printa("%6d %-16s %-16s %@16d\n", @num);
+	}
+' | $clean > Proc/sysinfo_by_process
+
+dstatus "New process counts with arguments..."
+$dtrace -qn "$header"'
+	proc:::exec-success
+	{
+		@num[pid, ppid, curpsinfo->pr_psargs] = count();
+	}
+	dtrace:::END
+	{ 
+		printf("%6s %6s %8s %s\n", "PID", "PPID", "COUNT", "ARGS");
+		printa("%6d %6d %@8d %S\n", @num);
+	}
+' | $clean > Proc/newprocess_count
+
+dstatus "Signal counts..."
+$dtrace -qn "$header"'
+	proc:::signal-send { 
+		@num[execname,args[2],stringof(args[1]->pr_fname)] = count();
+	}
+	dtrace:::END
+	{ 
+		printf("%-16s %-8s %-16s %8s\n",
+		    "FROM", "SIG", "TO", "COUNT");
+		printa("%-16s %-8d %-16s %@8d\n", @num);
+	}
+' | $clean > Proc/signal_count
+
+dstatus "Syscall error counts..."
+$dtrace -qn "$header"'
+	syscall:::return /(int)arg0 == -1/
+	{
+		@num[pid, execname, probefunc, errno] = count();
+	}
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %-32s %-6s %8s\n",
+		    "PID", "CMD", "SYSCALL", "ERRNO", "COUNT");
+		printa("%6d %-16s %-32s %-6d %@8d\n", @num);
+	}
+' | $clean > Proc/syscall_errors
+
+
+###########
+#  Done
+#
+( print -n "End:    "
+date ) >> log
+decho "100% Done."
+if (( tar )); then
+	cd ..
+	tar cf $dir.tar $dir
+	gzip $dir.tar
+	decho "File is $dir.tar.gz"
+fi
+if (( delete && tar )); then
+	cd $dir
+	# this could be all an "rm -r $dir", but since it will be run 
+	# as root on production servers - lets be analy cautious,
+	rm Cpu/interrupt_by_cpu
+	rm Cpu/interrupt_time
+	rm Cpu/dispqlen_by_cpu
+	rm Cpu/sdt_count
+	rm Disk/pgpgin_by_process
+	rm Disk/fileopen_count
+	rm Disk/sizedist_by_process
+	rm Mem/minf_by_process
+	rm Mem/vminfo_by_process
+	rm Net/mib_data
+	rm Net/tcpw_by_process
+	rm Proc/sample_process
+	rm Proc/syscall_by_process
+	rm Proc/syscall_count
+	rm Proc/readb_by_process
+	rm Proc/writeb_by_process
+	rm Proc/sysinfo_by_process
+	rm Proc/newprocess_count
+	rm Proc/signal_count
+	rm Proc/syscall_errors
+	rmdir Cpu
+	rmdir Disk
+	rmdir Mem
+	rmdir Net
+	rmdir Proc
+	rm Info/uname-a
+	rm Info/psrinfo-v
+	rm Info/prtconf
+	rm Info/df-k
+	rm Info/ifconfig-a
+	rm Info/ps-o
+	rm Info/uptime
+	rmdir Info
+	rm log
+	cd ..
+	rmdir $dir
+else
+	decho "Directory is $dir"
+fi
+
diff --git a/external/cddl/dtracetoolkit/dist/Bin/diskhits b/external/cddl/dtracetoolkit/dist/Bin/diskhits
new file mode 100755
index 0000000..34982d6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/diskhits
@@ -0,0 +1,113 @@
+#!/usr/bin/ksh
+#
+# diskhits - disk access by file offset.
+#            Written using DTrace (Solaris 10 3/05).
+#
+# $Id: diskhits,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# This prints how a file was accessed, the locations on a distribution plot.
+# This is for the cache misses only - the file activity that resulted in
+# disk events.
+#
+# USAGE:	diskhits pathname
+#	eg,
+#		diskhits /var/adm/messages
+#
+# FIELDS:
+#		Location (KB)	The file offset of the disk activity, Kbytes.
+#		Size (KB)	Size of the disk activity, Kbytes.
+#		Total RW	Total disk activity, reads + writes.
+#
+# BASED ON: /usr/demo/dtrace/applicat.d
+#
+# SEE ALSO: DTrace Guide "io Provider" chapter (docs.sun.com)
+#           iosnoop (DTraceToolkit)
+#
+# PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 08-Jun-2005   Brendan Gregg   Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+### Usage
+function usage
+{
+	cat <<-END >&2
+	USAGE: diskhits pathname
+	   eg,
+	       diskhits /var/adm/wtmpx
+	END
+	exit 1
+}
+
+### Process arguments
+if (( $# != 1 )); then
+	usage
+fi
+if [[ $1 == "-h" ]]; then
+	usage
+fi
+pathname=$1
+if [[ ! -e $pathname ]]; then
+	print "ERROR2: file $pathname not found" >&2
+	exit 2
+fi
+
+### Calculate output scale
+report_lines=20
+set -- `ls -l $pathname`
+filesize=$5
+(( file_kb_max = filesize / 1024 ))
+(( scale_kb = filesize / (1024 * report_lines) ))
+if (( file_kb_max < 20 )); then file_kb_max=20; fi
+if (( scale_kb < 1 )); then scale_kb=1; fi
+
+#
+#  Run DTrace
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ inline string PATHNAME = "'$pathname'";
+ inline int FILE_KB_MAX = '$file_kb_max';
+ inline int SCALE_KB = '$scale_kb';
+
+ dtrace:::BEGIN
+ {
+	printf("Tracing... Hit Ctrl-C to end.\n");
+ }
+
+ io:::start
+ /args[2]->fi_pathname == PATHNAME/
+ {
+	this->kb = args[2]->fi_offset == -1 ? -1 : args[2]->fi_offset / 1024;
+	@Location = lquantize(this->kb, 0, FILE_KB_MAX, SCALE_KB);
+	@Size = quantize(args[0]->b_bcount/1024);
+	@Total = sum(args[0]->b_bcount/1024);
+ }
+
+ dtrace:::END
+ {
+	printf("Location (KB),");
+	printa(@Location);
+
+	printf("Size (KB),");
+	printa(@Size);
+
+	printa("Total RW: %@d KB\n", @Total);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Bin/dispqlen.d b/external/cddl/dtracetoolkit/dist/Bin/dispqlen.d
new file mode 100755
index 0000000..609b3db
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/dispqlen.d
@@ -0,0 +1,52 @@
+#!/usr/sbin/dtrace -s
+/*
+ * dispqlen.d - dispatcher queue length by CPU.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: dispqlen.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE:	dispqlen.d		# hit Ctrl-C to end sample
+ *
+ * NOTES: The dispatcher queue length is an indication of CPU saturation.
+ * It is not an indicatior of utilisation - the CPUs may or may not be
+ * utilised when the dispatcher queue reports a length of zero.
+ *
+ * SEE ALSO:    uptime(1M)
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 27-Jun-2005  Brendan Gregg   Created this.
+ * 14-Feb-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Sampling... Hit Ctrl-C to end.\n");
+}
+
+profile:::profile-1000hz
+{
+	@queue[cpu] =
+	    lquantize(curthread->t_cpu->cpu_disp->disp_nrunnable, 0, 64, 1);
+}
+
+dtrace:::END
+{
+	printa(" CPU %d%@d\n", @queue);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/dnlcps.d b/external/cddl/dtracetoolkit/dist/Bin/dnlcps.d
new file mode 100755
index 0000000..47f8bf9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/dnlcps.d
@@ -0,0 +1,68 @@
+#!/usr/sbin/dtrace -s
+/*
+ * dnlcps.d - DNLC stats by process.
+ *            Written in DTrace (Solaris 10 3/05).
+ *
+ * The DNLC is the Directory Name Lookup Cache. Filename lookups often
+ * return a hit from here, before needing to traverse the regular file
+ * system cache or go to disk.
+ *
+ * dnlcps.d prints DNLC statistics by process.
+ *
+ * $Id: dnlcps.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE:	dnlcps.d        # wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID             Process ID
+ *		CMD          	Command name
+ *		value        	0 == miss, 1 == hit
+ *		count        	number of occurrences
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 27-Mar-2004	Brendan Gregg	Created this.
+ * 14-Jun-2005	   "      "	Rewrote this a lot.
+ * 18-Feb-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/*
+ * DNLC return
+ */
+fbt:genunix:dnlc_lookup:return
+{
+	this->code = arg1 == 0 ? 0 : 1;
+	@Result[execname, pid] = lquantize(this->code, 0, 1, 1);
+}
+
+/*
+ * Print report
+ */
+dtrace:::END
+{
+	printa(" CMD: %-16s PID: %d\n%@d\n", @Result);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/dnlcsnoop.d b/external/cddl/dtracetoolkit/dist/Bin/dnlcsnoop.d
new file mode 100755
index 0000000..39425b7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/dnlcsnoop.d
@@ -0,0 +1,92 @@
+#!/usr/sbin/dtrace -s
+/*
+ * dnlcsnoop.d - snoop DNLC activity.
+ *               Written in DTrace (Solaris 10 3/05).
+ *
+ * The DNLC is the Directory Name Lookup Cache. Filename lookups often
+ * return a hit from here, before needing to traverse the regular file
+ * system cache or go to disk.
+ *
+ * $Id: dnlcsnoop.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	dnlcsnoop.d     # wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID             Process ID
+ *		CMD          	Command name
+ *		TIME         	Elapsed time for lookup, us
+ *		HIT          	DNLC hit Y/N
+ *		PATH         	Path for DNLC lookup
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 27-Mar-2004	Brendan Gregg	Created this.
+ * 14-Jun-2005	   "      "	Rewrote this a lot.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("%6s %-12s %5s %3s %s\n",
+	    "PID", "CMD", "TIME", "HIT", "PATH");
+}
+
+/*
+ * DNLC lookup
+ */
+fbt:genunix:dnlc_lookup:entry
+{
+	/* store path */
+	self->path = stringof(args[0]->v_path);
+
+	/* check for trailing "/" */
+	this->len = strlen(self->path);
+	self->join = *(char *)(args[0]->v_path + this->len - 1) == '/' ?
+	    "" : "/";
+
+	/* store lookup name */
+	self->name = stringof(arg1);
+
+	/* store start time */
+	self->start = timestamp;
+}
+
+/*
+ * DNLC return
+ */
+fbt:genunix:dnlc_lookup:return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = (timestamp - self->start) / 1000;
+
+	/* print output */
+	printf("%6d %-12.12s %5d %3s %s%s%s\n",
+	    pid, execname, this->elapsed, arg1 == 0 ? "N" : "Y",
+	    self->path, self->join, self->name);
+
+	/* clear variables */
+	self->path = 0;
+	self->join = 0;
+	self->name = 0;
+	self->start = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/dnlcstat b/external/cddl/dtracetoolkit/dist/Bin/dnlcstat
new file mode 100755
index 0000000..e97f92d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/dnlcstat
@@ -0,0 +1,162 @@
+#!/usr/bin/sh
+#
+# dnlcstat - DNLC statistics.
+#            Written in DTrace (Solaris 10 3/05).
+#
+# The DNLC is the Directory Name Lookup Cache. Filename lookups often
+# return a hit from here, before needing to traverse the regular file
+# system cache or go to disk.
+#
+# $Id: dnlcstat,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	dnlcstat [interval [count]]
+#
+# FIELDS:
+#
+#		%hit	hit percentage for this sample
+#		hit	number of DNLC hits in this sample
+#		miss	number of DNLC misses in this sample
+#
+# SEE ALSO: 	CacheKit, http://www.brendangregg.com/cachekit.html
+#		(contains a dnlcstat written in Perl, which uses less CPU)
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 27-Mar-2004	Brendan Gregg	Created this.
+# 14-Jun-2005	   "      "  	Updated style.
+# 14-Jun-2005	   "      "  	Last update.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default values
+interval=1; count=-1
+
+### check arguments
+if [ "$1" = "-h" -o "$1" = "--help" ]; then
+	cat <<-END >&2
+	USAGE: dnlcstat [interval [count]]
+	       dnlcstat          # 1 second samples, infinite
+	  eg,
+	       dnlcstat 1        # print every 1 second
+	       dnlcstat 5 6      # print every 5 seconds, 6 times
+	END
+        exit 1
+fi
+
+### argument logic
+if [ "$1" -gt 0 ]; then
+        interval=$1; count=-1; shift
+fi
+if [ "$1" -gt 0 ]; then
+        count=$1; shift
+fi
+if [ $interval -eq 0 ]; then
+        interval=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$count';
+ inline int SCREEN = 21;
+
+ int hits;			/* hits */
+ int misses;			/* misses */
+
+ /*
+  * Initialise variables
+  */
+ dtrace:::BEGIN
+ {
+	lines = SCREEN + 1;
+	counts = COUNTER;
+	secs = INTERVAL;
+	first = 1;
+ }
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN,
+ tick-1sec
+ /first || (secs == 0 && lines > SCREEN)/
+ { 
+	printf("%10s %8s %8s\n","dnlc  %hit","hit","miss");
+	lines = 0;
+	first = 0;
+ }
+
+ /*
+  * Probe DNLC lookups
+  */
+ fbt:genunix:dnlc_lookup:return
+ {
+	hits   += arg1 == 0 ? 0 : 1;
+	misses += arg1 == 0 ? 1 : 0;
+ }
+
+ profile:::tick-1sec
+ {
+        secs--;
+ }
+
+
+ /*
+  * Print output line
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* calculate hit percent */
+	this->divide = misses + hits == 0 ? 1 : misses + hits;
+	ratio = hits * 100 / this->divide;
+
+	/* print output */
+	printf("%10d %8d %8d\n",ratio,hits,misses);
+
+	/* clear counters */
+	hits = 0;
+	misses = 0;
+
+        /* process counts */
+        secs = INTERVAL;
+        counts--;
+        lines++;
+
+ }
+
+ /*
+  * End
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+        exit(0);
+ }
+'
+
diff --git a/external/cddl/dtracetoolkit/dist/Bin/dtruss b/external/cddl/dtracetoolkit/dist/Bin/dtruss
new file mode 100755
index 0000000..0a1a983
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/dtruss
@@ -0,0 +1,464 @@
+#!/bin/sh
+#
+# dtruss - print process system call time details.
+#          Written using DTrace (Solaris 10 3/05).
+#
+# $Id: dtruss,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE: dtruss [-acdeflhoLs] [-t syscall] { -p PID | -n name | command }
+#
+#		-p PID		# examine this PID
+#		-n name		# examine this process name
+#		-t syscall	# examine this syscall only
+#		-a		# print all details
+#		-c		# print system call counts
+#		-d		# print relative timestamps (us)
+#		-e		# print elapsed times (us)
+#		-f		# follow children as they are forked
+#		-l		# force printing of pid/lwpid per line
+#		-o		# print on cpu times (us)
+#		-s		# print stack backtraces
+#		-L		# don't print pid/lwpid per line
+#		-b bufsize	# dynamic variable buf size (default is "4m")
+#  eg,
+#		dtruss df -h	# run and examine the "df -h" command
+#		dtruss -p 1871	# examine PID 1871
+#		dtruss -n tar	# examine all processes called "tar"
+#		dtruss -f test.sh	# run test.sh and follow children
+#
+# See the man page dtruss(1M) for further details.
+#
+# SEE ALSO: procsystime    # DTraceToolkit
+#           dapptrace      # DTraceToolkit
+#           truss
+#
+# COPYRIGHT: Copyright (c) 2005, 2006, 2007 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# TODO: Track signals, more output formatting.
+#
+# 29-Apr-2005   Brendan Gregg   Created this.
+# 09-May-2005      "      " 	Fixed evaltime (thanks Adam L.)
+# 16-May-2005	   "      "	Added -t syscall tracing.
+# 17-Jun-2005	   "      "	Added -s stack backtraces.
+# 17-Jun-2005	   "      "	Last update.
+# 29-Jun-2007	   "      "	Used progenyof() (thanks Aaron Gutman).
+# 06-Aug-2007	   "      "	Various updates.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_pid=0; opt_name=0; pid=0; pname="."; opt_elapsed=0; opt_cpu=0
+opt_counts=0; opt_relative=0; opt_printid=0; opt_follow=0; opt_command=0
+command=""; opt_buf=0; buf="4m"; opt_trace=0; trace="."; opt_stack=0
+
+### Process options
+while getopts ab:cdefhln:op:st:L name
+do
+        case $name in
+	b)	opt_buf=1; buf=$OPTARG ;;
+        p)      opt_pid=1; pid=$OPTARG ;;
+        n)      opt_name=1; pname=$OPTARG ;;
+        t)      opt_trace=1; trace=$OPTARG ;;
+	a)	opt_counts=1; opt_relative=1; opt_elapsed=1; opt_follow=1
+		opt_printid=1; opt_cpu=1 ;;
+	c)	opt_counts=1 ;;
+	d)	opt_relative=1 ;;
+	e)	opt_elapsed=1 ;;
+	f)	opt_follow=1 ;;
+	l)	opt_printid=1 ;;
+	o)	opt_cpu=1 ;;
+	L)	opt_printid=-1 ;;
+	s)	opt_stack=-1 ;;
+        h|?)    cat <<-END >&2
+		USAGE: dtruss [-acdefholLs] [-t syscall] { -p PID | -n name | command }
+
+		          -p PID          # examine this PID
+		          -n name         # examine this process name
+		          -t syscall      # examine this syscall only
+		          -a              # print all details
+		          -c              # print syscall counts
+		          -d              # print relative times (us)
+		          -e              # print elapsed times (us)
+		          -f              # follow children (-p or cmd only)
+		          -l              # force printing pid/lwpid
+		          -o              # print on cpu times
+		          -s              # print stack backtraces
+		          -L              # don't print pid/lwpid
+		          -b bufsize      # dynamic variable buf size
+		   eg,
+		       dtruss df -h       # run and examine "df -h"
+		       dtruss -p 1871     # examine PID 1871
+		       dtruss -n tar      # examine all processes called "tar"
+		       dtruss -f test.sh  # run test.sh and follow children
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+### Option logic
+if [ $opt_pid -eq 0 -a $opt_name -eq 0 ]; then
+	opt_command=1
+	if [ "$*" = "" ]; then
+		$0 -h
+		exit
+	fi
+	command="$*"	# yes, I meant $*!
+fi
+if [ $opt_follow -eq 1 -o $opt_name -eq 1 ]; then
+	if [ $opt_printid -ne -1 ]; then
+		opt_printid=1
+	else
+		opt_printid=0
+	fi
+fi
+if [ $opt_follow -eq 1 -a $opt_name -eq 1 ]; then
+	echo "ERROR: -f option cannot be used with -n (use -p or cmd instead)."
+	exit 1
+fi
+
+### Option translation
+if [ "$trace" = "exec" ]; then trace="exece"; fi
+if [ "$trace" = "time" ]; then trace="gtime"; fi
+if [ "$trace" = "exit" ]; then trace="rexit"; fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+
+### Define D Script
+dtrace='
+#pragma D option quiet
+#pragma D option switchrate=10
+ 
+/*
+ * Command line arguments
+ */
+inline int OPT_command   = '$opt_command';
+inline int OPT_follow    = '$opt_follow';
+inline int OPT_printid   = '$opt_printid';
+inline int OPT_relative  = '$opt_relative';
+inline int OPT_elapsed   = '$opt_elapsed';
+inline int OPT_cpu       = '$opt_cpu';
+inline int OPT_counts    = '$opt_counts';
+inline int OPT_pid       = '$opt_pid';
+inline int OPT_name      = '$opt_name';
+inline int OPT_trace     = '$opt_trace';
+inline int OPT_stack     = '$opt_stack';
+inline string NAME       = "'$pname'";
+inline string TRACE      = "'$trace'";
+
+dtrace:::BEGIN 
+{
+	/* print header */
+	OPT_printid  ? printf("%-9s  ", "PID/LWP") : 1;
+	OPT_relative ? printf("%8s ", "RELATIVE") : 1;
+	OPT_elapsed  ? printf("%7s ", "ELAPSD") : 1;
+	OPT_cpu      ? printf("%6s ", "CPU") : 1;
+	printf("SYSCALL(args) \t\t = return\n");
+}
+
+/*
+ * Save syscall entry info
+ */
+syscall:::entry
+/((OPT_command || OPT_pid) && pid == $target) || 
+ (OPT_name && execname == NAME) ||
+ (OPT_follow && progenyof($target))/
+{
+	/* set start details */
+	self->start = timestamp;
+	self->vstart = vtimestamp;
+	self->arg0 = arg0;
+	self->arg1 = arg1;
+	self->arg2 = arg2;
+
+	/* count occurances */
+	OPT_counts == 1 ? @Counts[probefunc] = count() : 1;
+}
+
+/*
+ * Follow children
+ */
+syscall::fork*:return
+/(OPT_follow && progenyof($target)) && (!OPT_trace || (TRACE == probefunc))/
+{
+	/* print output */
+	self->code = errno == 0 ? "" : "Err#";
+	OPT_printid  ? printf("%6d/%d:  ", pid, tid) : 1;
+	OPT_relative ? printf("%8d:  ", vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d:  ", 0) : 1;
+	OPT_cpu      ? printf("%6d ", 0) : 1;
+	printf("%s(0x%X, 0x%X, 0x%X)\t\t = %d %s%d\n", probefunc,
+	    self->arg0, self->arg1, self->arg2, (int)arg0, self->code,
+	    (int)errno);
+}
+
+/*
+ * Check for syscall tracing
+ */
+syscall:::entry
+/OPT_trace && probefunc != TRACE/
+{
+	/* drop info */
+	self->start = 0;
+	self->vstart = 0;
+	self->arg0 = 0;
+	self->arg1 = 0;
+	self->arg2 = 0;
+}
+
+/*
+ * Print return data
+ */
+
+/*
+ * The following code is written in an intentionally repetative way.
+ * The first versions had no code redundancies, but performed badly during
+ * benchmarking. The priority here is speed, not cleverness. I know there
+ * are many obvious shortcuts to this code, I have tried them. This style has
+ * shown in benchmarks to be the fastest (fewest probes fired, fewest actions).
+ */
+
+/* print 3 args, return as hex */
+syscall::sigprocmask:return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start;
+	self->start = 0;
+	this->cpu = vtimestamp - self->vstart;
+	self->vstart = 0;
+	self->code = errno == 0 ? "" : "Err#";
+ 
+	/* print optional fields */
+	OPT_printid  ? printf("%6d/%d:  ", pid, tid) : 1;
+	OPT_relative ? printf("%8d ", vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ", this->elapsed/1000) : 1;
+	OPT_cpu ? printf("%6d ", this->cpu/1000) : 1;
+ 
+	/* print main data */
+	printf("%s(0x%X, 0x%X, 0x%X)\t\t = 0x%X %s%d\n", probefunc,
+	    (int)self->arg0, self->arg1, self->arg2, (int)arg0,
+	    self->code, (int)errno);
+	OPT_stack ? ustack()    : 1;
+	OPT_stack ? trace("\n") : 1;
+	self->arg0 = 0;
+	self->arg1 = 0;
+	self->arg2 = 0;
+}
+
+/* print 3 args, arg0 as a string */
+syscall::access*:return,
+syscall::stat*:return, 
+syscall::lstat*:return, 
+syscall::readlink*:return,
+syscall::open*:return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start;
+	self->start = 0;
+	this->cpu = vtimestamp - self->vstart;
+	self->vstart = 0;
+	self->code = errno == 0 ? "" : "Err#";
+ 
+	/* print optional fields */
+	OPT_printid  ? printf("%6d/%d:  ", pid, tid) : 1;
+	OPT_relative ? printf("%8d ", vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ", this->elapsed/1000) : 1;
+	OPT_cpu      ? printf("%6d ", this->cpu/1000) : 1;
+ 
+	/* print main data */
+	printf("%s(\"%S\", 0x%X, 0x%X)\t\t = %d %s%d\n", probefunc,
+	    copyinstr(self->arg0), self->arg1, self->arg2, (int)arg0,
+	    self->code, (int)errno);
+	OPT_stack ? ustack()    : 1;
+	OPT_stack ? trace("\n") : 1;
+	self->arg0 = 0;
+	self->arg1 = 0;
+	self->arg2 = 0;
+}
+
+/* print 3 args, arg1 as a string */
+syscall::write:return,
+syscall::pwrite:return,
+syscall::*read*:return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start;
+	self->start = 0;
+	this->cpu = vtimestamp - self->vstart;
+	self->vstart = 0;
+	self->code = errno == 0 ? "" : "Err#";
+ 
+	/* print optional fields */
+	OPT_printid  ? printf("%6d/%d:  ", pid, tid) : 1;
+	OPT_relative ? printf("%8d ", vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ", this->elapsed/1000) : 1;
+	OPT_cpu      ? printf("%6d ", this->cpu/1000) : 1;
+ 
+	/* print main data */
+	printf("%s(0x%X, \"%S\", 0x%X)\t\t = %d %s%d\n", probefunc, self->arg0,
+	    stringof(copyin(self->arg1, self->arg2)), self->arg2, (int)arg0,
+	    self->code, (int)errno);
+	OPT_stack ? ustack()    : 1;
+	OPT_stack ? trace("\n") : 1;
+	self->arg0 = 0;
+	self->arg1 = 0;
+	self->arg2 = 0;
+}
+
+/* print 0 arg output */
+syscall::*fork*:return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start;
+	self->start = 0;
+	this->cpu = vtimestamp - self->vstart;
+	self->vstart = 0;
+	self->code = errno == 0 ? "" : "Err#";
+ 
+	/* print optional fields */
+	OPT_printid  ? printf("%6d/%d:  ", pid, tid) : 1;
+	OPT_relative ? printf("%8d ", vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ", this->elapsed/1000) : 1;
+	OPT_cpu      ? printf("%6d ", this->cpu/1000) : 1;
+ 
+	/* print main data */
+	printf("%s()\t\t = %d %s%d\n", probefunc,
+	    (int)arg0, self->code, (int)errno);
+	OPT_stack ? ustack()    : 1;
+	OPT_stack ? trace("\n") : 1;
+	self->arg0 = 0;
+	self->arg1 = 0;
+	self->arg2 = 0;
+}
+
+/* print 1 arg output */
+syscall::close:return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start;
+	self->start = 0;
+	this->cpu = vtimestamp - self->vstart;
+	self->vstart = 0;
+	self->code = errno == 0 ? "" : "Err#";
+ 
+	/* print optional fields */
+	OPT_printid  ? printf("%6d/%d:  ", pid, tid) : 1;
+	OPT_relative ? printf("%8d ", vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ", this->elapsed/1000) : 1;
+	OPT_cpu      ? printf("%6d ", this->cpu/1000) : 1;
+ 
+	/* print main data */
+	printf("%s(0x%X)\t\t = %d %s%d\n", probefunc, self->arg0,
+	    (int)arg0, self->code, (int)errno);
+	OPT_stack ? ustack()    : 1;
+	OPT_stack ? trace("\n") : 1;
+	self->arg0 = 0;
+	self->arg1 = 0;
+	self->arg2 = 0;
+}
+
+/* print 2 arg output */
+syscall::utimes:return,
+syscall::munmap:return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start;
+	self->start = 0;
+	this->cpu = vtimestamp - self->vstart;
+	self->vstart = 0;
+	self->code = errno == 0 ? "" : "Err#";
+ 
+	/* print optional fields */
+	OPT_printid  ? printf("%6d/%d:  ", pid, tid) : 1;
+	OPT_relative ? printf("%8d ", vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ", this->elapsed/1000) : 1;
+	OPT_cpu      ? printf("%6d ", this->cpu/1000) : 1;
+ 
+	/* print main data */
+	printf("%s(0x%X, 0x%X)\t\t = %d %s%d\n", probefunc, self->arg0,
+	    self->arg1, (int)arg0, self->code, (int)errno);
+	OPT_stack ? ustack()    : 1;
+	OPT_stack ? trace("\n") : 1;
+	self->arg0 = 0;
+	self->arg1 = 0;
+	self->arg2 = 0;
+}
+
+/* print 3 arg output - default */
+syscall:::return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start;
+	self->start = 0;
+	this->cpu = vtimestamp - self->vstart;
+	self->vstart = 0;
+	self->code = errno == 0 ? "" : "Err#";
+ 
+	/* print optional fields */
+	OPT_printid  ? printf("%6d/%d:  ", pid, tid) : 1;
+	OPT_relative ? printf("%8d ", vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ", this->elapsed/1000) : 1;
+	OPT_cpu      ? printf("%6d ", this->cpu/1000) : 1;
+ 
+	/* print main data */
+	printf("%s(0x%X, 0x%X, 0x%X)\t\t = %d %s%d\n", probefunc, self->arg0,
+	    self->arg1, self->arg2, (int)arg0, self->code, (int)errno);
+	OPT_stack ? ustack()    : 1;
+	OPT_stack ? trace("\n") : 1;
+	self->arg0 = 0;
+	self->arg1 = 0;
+	self->arg2 = 0;
+}
+
+/* program exited */
+proc:::exit
+/(OPT_command || OPT_pid) && pid == $target/
+{
+	exit(0);
+}
+
+/* print counts */
+dtrace:::END
+{
+	OPT_counts == 1 ? printf("\n%-32s %16s\n", "CALL", "COUNT") : 1;
+	OPT_counts == 1 ? printa("%-32s %@16d\n", @Counts) : 1;
+}
+'
+
+### Run DTrace
+if [ $opt_command -eq 1 ]; then
+	/usr/sbin/dtrace -x dynvarsize=$buf -x evaltime=exec -n "$dtrace" \
+	    -c "$command" >&2
+elif [ $opt_pid -eq 1 ]; then
+	/usr/sbin/dtrace -x dynvarsize=$buf -n "$dtrace" -p "$pid" >&2
+else
+	/usr/sbin/dtrace -x dynvarsize=$buf -n "$dtrace" >&2
+fi
diff --git a/external/cddl/dtracetoolkit/dist/Bin/dvmstat b/external/cddl/dtracetoolkit/dist/Bin/dvmstat
new file mode 100755
index 0000000..8db61ee
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/dvmstat
@@ -0,0 +1,250 @@
+#!/usr/bin/sh
+#
+# dvmstat - vmstat by PID/name/command.
+#           Written using DTrace (Solaris 10 3/05).
+#
+# This program provides vmstat like data for one particular PID, a 
+# process name, or when running a command. It prints statistics
+# every second.
+#
+# $Id: dvmstat,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	dvmstat { -p PID | -n name | command }
+#  eg,
+#		dvmstat -p 1871       # examine PID 1871
+#		dvmstat -n tar        # examine processes called "tar"
+#		dvmstat df -h         # run and examine "df -h"
+#
+# FIELDS: 
+#		re	page reclaims		Kbytes
+#		maj	major faults		Kbytes
+#		mf	minor faults		Kbytes
+#		fr	page frees		Kbytes
+#		epi	executable page ins	Kbytes
+#		epo	executable page out	Kbytes
+#		api	anonymous page ins	Kbytes
+#		apo	anonymous page outs	Kbytes
+#		fpi	filesystem page ins	Kbytes
+#		fpo	filesystem page outs	Kbytes
+#		sy	system calls		number
+#
+# SEE ALSO:	vmstat(1M)
+#
+# NOTES:
+#
+# When using dvmstat to run a command - if the command takes some time
+# to execute, dvmstat will print output every second. If the command runs
+# in less than a second, then the only one line of output will be printed.
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 12-Jun-2005	Brendan Gregg	Created this.
+# 08-Jan-2006	   "      "	Last update.
+# 
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_pid=0; opt_name=0; pid=0; pname="."; opt_command=0; command=""
+
+### Process options
+while getopts hn:p: name
+do
+        case $name in
+        p)      opt_pid=1; pid=$OPTARG ;;
+        n)      opt_name=1; pname=$OPTARG ;;
+        h|?)    cat <<-END >&2
+		USAGE: dvmstat [-h] { -p PID | -n name | command }
+		           -p PID          # examine this PID
+		           -n name         # examine this process name
+		  eg,
+		       dvmstat -p 1871     # examine PID 1871
+		       dvmstat -n tar      # examine processes called "tar"
+		       dvmstat df -h       # run and examine "df -h"
+		END
+                exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+
+### Option logic
+if [ $opt_pid -eq 0 -a $opt_name -eq 0 ]; then
+        opt_command=1
+        if [ "$*" = "" ]; then
+                $0 -h
+                exit
+        fi
+        command="$*"
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+dtrace='
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_pid      = '$opt_pid';
+ inline int OPT_name     = '$opt_name';
+ inline int OPT_command  = '$opt_command';
+ inline int PID          = '$pid';
+ inline string NAME      = "'$pname'";
+ inline string COMMAND   = "'$command'";
+ inline int SCREEN       = 21;
+
+ /*
+  * Initialise variables
+  */
+ dtrace:::BEGIN
+ {
+	epi = 0; epo = 0; api = 0; apo = 0; fpi = 0; fpo = 0;
+	re = 0; mf = 0; maj = 0; fr = 0; sy = 0;
+	lines = SCREEN + 1;
+	header = 0;
+ }
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN,
+ dtrace:::END,
+ profile:::tick-1sec
+ /(OPT_command && probename == "END") || 
+  (!(OPT_command && probename == "BEGIN") && lines++ > SCREEN)/
+ {
+	printf("%6s %5s %5s %4s %4s %4s %4s %4s %4s %4s %6s\n",
+	    "re", "maj", "mf", "fr", "epi", "epo", "api", "apo", 
+	    "fpi", "fpo", "sy");
+	lines = 0;
+ }
+
+ /*
+  * Probe events
+  *
+  * this intentionally does not use an associative array for storing data,
+  * for reasons of performance.
+  */
+
+ vminfo:::execpgin
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { epi += arg0; }
+
+ vminfo:::execpgout
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { epo += arg0; }
+
+ vminfo:::anonpgin
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { api += arg0; }
+
+ vminfo:::anonpgout
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { apo += arg0; }
+
+ vminfo:::fspgin
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { fpi += arg0; }
+
+ vminfo:::fspgout
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { fpo += arg0; }
+
+ vminfo:::pgrec
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { re += arg0; }
+
+ vminfo:::as_fault
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { mf += arg0; }
+
+ vminfo:::maj_fault
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { maj += arg0; }
+
+ vminfo:::dfree
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { fr += arg0; }
+
+ syscall:::entry
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { sy++; }
+
+ /* 
+  * Print output line
+  */
+ profile:::tick-1sec,
+ dtrace:::END
+ {
+	/* convert to Kbytes */
+	re  *= `_pagesize / 1024;
+	maj *= `_pagesize / 1024;
+	mf  *= `_pagesize / 1024;
+	fr  *= `_pagesize / 1024;
+	epi *= `_pagesize / 1024;
+	epo *= `_pagesize / 1024;
+	api *= `_pagesize / 1024;
+	apo *= `_pagesize / 1024;
+	fpi *= `_pagesize / 1024;
+	fpo *= `_pagesize / 1024;
+
+	/* print line */
+	printf("%6d %5d %5d %4d %4d %4d %4d %4d %4d %4d %6d\n",
+	    re, maj, mf, fr, epi, epo, api, apo, fpi, fpo, sy);
+
+	/* clear counters */
+	epi = 0; epo = 0; api = 0; apo = 0; fpi = 0; fpo = 0;
+	re = 0; mf = 0; maj = 0; fr = 0; sy = 0;
+ }
+'
+
+### Run DTrace
+if [ $opt_command -eq 1 ]; then
+        /usr/sbin/dtrace -n "$dtrace" -x evaltime=exec -c "$command" >&2
+else
+        /usr/sbin/dtrace -n "$dtrace" >&2
+fi
+
diff --git a/external/cddl/dtracetoolkit/dist/Bin/errinfo b/external/cddl/dtracetoolkit/dist/Bin/errinfo
new file mode 100755
index 0000000..27c0350
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/errinfo
@@ -0,0 +1,180 @@
+#!/usr/bin/perl
+#
+# errinfo - report on syscall failures and print errno error messages.
+#	    Written using Perl and DTrace (Solaris 10 03/05)
+#
+# When system calls fail, an errno variable is set to convay a meaningful
+# message to the end user - so long as the program does something with it
+# (eg, "ls" printing "No such file or directory"). This program fetches
+# and prints details for all syscall failures along with their message,
+# whether the failing program is already printing this info or not.
+#
+# $Id: errinfo,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	errinfo [-ch] [-p PID] [-n name]
+#
+#		-c		# counts - aggregate style
+#		-p PID		# examine this PID only
+#		-n name		# examine processes with this name only
+#	eg,
+#		errinfo			# default output - snoop event style
+#		errinfo -n ssh		# examine "ssh" processes only
+#		errinfo -cn ssh		# examine "ssh" using counts
+#
+# FIELDS:
+#		EXEC		Program name (truncated)
+#		SYSCALL		System call name
+#		ERR		Value of errno
+#		DESC		Description of errno message
+#
+# SEE ALSO:	/usr/include/sys/errno.h
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 18-Apr-2005   Brendan Gregg   Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+use Getopt::Std;
+
+#
+#  Defaults
+#
+$FILTER = "";
+$COUNT = 0;
+
+#
+#  Command line arguments
+#
+&Usage() if $ARGV[0] eq "--help";
+getopts('ch:n:p:') || &Usage();
+&Usage() if $opt_h;
+$COUNT = 1 if $opt_c;
+$FILTER = "&& execname == \"$opt_n\"" if defined $opt_n;
+$FILTER = "&& pid == $opt_p" if defined $opt_p;
+
+#
+#  Load errno descriptions
+#
+open(ERRNO,"/usr/include/sys/errno.h") || die "ERROR1: reading errno.h: $!\n";
+while (chomp($line = <ERRNO>)) {
+	next unless $line =~ /^#define/;
+	($errno,$desc) = $line =~ /^#define\s+\S+\s+(\d+)\s+\/\*(.*)\*\//;
+	$Errno{$errno} = $desc;
+}
+close ERRNO;
+
+#
+#  Declare DTrace script
+#
+ if ($COUNT) {		# aggregate style
+$dtrace = <<END;
+/usr/sbin/dtrace -n '
+	#pragma D option quiet
+	syscall:::return 
+	/errno != 0 && pid != \$pid $FILTER/ 
+	{ 
+		\@Errs[execname, probefunc, errno] = count(); 
+	}
+	dtrace:::END {
+		printa("%s %s %d %\@d\\n", \@Errs);
+	}'
+END
+ } else {		# snoop style
+$dtrace = <<END; 
+/usr/sbin/dtrace -n '
+	#pragma D option quiet
+	#pragma D option switchrate=5hz
+	syscall:::return 
+	/errno != 0 && pid != \$pid $FILTER/ 
+	{ 
+		printf("%s %s %d\\n", execname, probefunc, errno); 
+	}'
+END
+ }
+
+#
+#  Cleanup on signals
+#
+$SIG{INT} = \&Cleanup_Signal;    # Ctrl-C
+$SIG{QUIT} = \&Cleanup_Signal;   # Ctrl-\
+$SIG{TERM} = \&Cleanup_Signal;   # TERM
+
+#
+#  Run DTrace, process output
+#
+
+if ($COUNT) {
+	print STDERR "Tracing... Hit Ctrl-C to end.\n";
+	$header = 1;
+} else {
+	printf("%16s %16s %4s  %s\n","EXEC","SYSCALL","ERR","DESC");
+}
+
+### Open DTrace
+open(DTRACE,"$dtrace |") || die "ERROR2: Can't start dtrace (perms?): $!\n";
+
+### Process DTrace output
+while (chomp($line = <DTRACE>)) {
+
+	### Print count header
+	if ($COUNT && $header) {
+		printf("\n%16s %16s %4s %6s  %s\n",
+		 "EXEC","SYSCALL","ERR","COUNT","DESC");
+		$header = 0;
+	}
+
+	### Split data
+	($execname,$syscall,$errno,$counts) = split(' ',$line);
+	next if $errno eq "";
+
+	### Fetch errno description
+	$desc = $Errno{$errno};
+
+	### Print output line
+	if ($COUNT) {
+		printf("%16s %16s %4d %6d %s\n",
+		 $execname,$syscall,$errno,$counts,$desc);
+	} else {
+		printf("%16s %16s %4d %s\n",$execname,$syscall,$errno,$desc);
+	}
+}
+close(DTRACE);
+
+#
+#  Triggered by signals
+#
+sub Cleanup_Signal {
+}
+
+#
+#  Usage message
+#
+sub Usage {
+        print STDERR "USAGE: errinfo [-ch] [-p PID] [-n name]\n";
+	print STDERR <<ENDUSAGE;
+     eg,
+       errinfo       # default output - snoop event style
+          -c         # counts - aggregate style
+          -p 871     # examine PID 871 only
+          -n ssh     # examine processes with the name "ssh" only
+          -cn ssh    # examine "ssh" using counts
+ENDUSAGE
+        exit(1);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/execsnoop b/external/cddl/dtracetoolkit/dist/Bin/execsnoop
new file mode 100755
index 0000000..3985e84
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/execsnoop
@@ -0,0 +1,167 @@
+#!/bin/sh
+#
+# execsnoop - snoop process execution as it occurs.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# $Id: execsnoop,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	execsnoop [-a|-A|-ehsvJ] [-c command]
+#
+#		execsnoop	# default output
+#
+#		-a		# print all data
+#		-A		# dump all data, space delimited
+#		-e		# safe output - parseable
+#		-s		# print start time, us
+#		-v		# print start time, string
+#		-J		# print jail ID
+#		-c command	# command name to snoop
+#	eg,
+#		execsnoop -v		# human readable timestamps
+#		execsnoop -J		# print jail ID
+#		execsnoop -c ls		# snoop ls commands only
+#
+# The parseable output ensures that the ARGS field doesn't contain
+# any "\n"s, which normally sometimes can - and would wreck postprocessing.
+#
+# FIELDS:
+#		UID		User ID
+#		PID		Process ID
+#		PPID		Parent Process ID
+#		COMM		command name for the process
+#		ARGS		argument listing for the process
+#		JAIL ID		Jail ID	
+#		TIME		timestamp for the command, us
+#		STRTIME		timestamp for the command, string
+#
+# SEE ALSO: BSM auditing.
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 27-Mar-2004	Brendan Gregg	Created this.
+# 21-Jan-2005	   "	  "	Wrapped in sh to provide options.
+# 08-May-2005 	   "      "	Rewritten for performance.
+# 14-May-2005 	   "      "	Added zonename.
+# 02-Jul-2005 	   "      "	Added projid, safe printing.
+# 11-Sep-2005	   "      "	Increased switchrate.
+# 11-Sep-2005	   "      "	Last update.
+# 
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_dump=0; opt_cmd=0; opt_time=0; opt_timestr=0; filter=0; command=.
+opt_jailid=0; opt_safe=0
+
+### process options
+while getopts aAc:ehsvJ name
+do
+	case $name in
+	a)	opt_time=1; opt_timestr=1; opt_jailid=1 ;;
+	A)	opt_dump=1 ;;
+	c)	opt_cmd=1; command=$OPTARG ;;
+	e)	opt_safe=1 ;;
+	s)	opt_time=1 ;;
+	v)	opt_timestr=1 ;;
+	J)	opt_jailid=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: execsnoop [-a|-A|-ehjsvJ] [-c command]
+		       execsnoop                # default output
+		                -a              # print all data
+		                -A              # dump all data, space delimited
+		                -e              # safe output, parseable
+		                -s              # print start time, us
+		                -v              # print start time, string
+		                -J              # print jail ID 
+		                -c command      # command name to snoop
+		  eg,
+		        execsnoop -v            # human readable timestamps
+		        execsnoop -J		# print jail ID 
+		        execsnoop -c ls         # snoop ls commands only
+		END
+		exit 1
+	esac
+done
+
+### option logic
+if [ $opt_dump -eq 1 ]; then
+	opt_time=0; opt_timestr=0; opt_jailid=0
+fi
+if [ $opt_cmd -eq 1 ]; then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_dump 	= '$opt_dump';
+ inline int OPT_cmd 	= '$opt_cmd';
+ inline int OPT_time 	= '$opt_time';
+ inline int OPT_timestr	= '$opt_timestr';
+ inline int OPT_jailid  = '$opt_jailid';
+ inline int OPT_safe 	= '$opt_safe';
+ inline int FILTER 	= '$filter';
+ inline string COMMAND 	= "'$command'";
+ 
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+ 
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	/* print optional headers */
+ 	OPT_time    ? printf("%-14s ", "TIME") : 1;
+ 	OPT_timestr ? printf("%-20s ", "STRTIME") : 1;
+ 	OPT_jailid    ? printf("%-10s ", "JAIL ID") : 1;
+
+	/* print main headers */
+	OPT_dump    ? printf("%s %s %s %s %s %s %s\n",
+	    "TIME", "JAIL ID", "UID", "PID", "PPID", "COMM", "ARGS") :
+	    printf("%5s %6s %6s %s\n", "UID", "PID", "PPID", "ARGS");
+ }
+
+ /*
+  * Print exec event
+  */
+ syscall::execve:return
+ /(FILTER == 0) || (OPT_cmd == 1 && COMMAND == execname)/ 
+ {
+	/* print optional fields */
+ 	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_jailid ? printf("%-10d ", curpsinfo->pr_jailid) : 1;
+
+	/* print main data */
+	OPT_dump ? printf("%d %d %d %d %d %s ", timestamp/1000,
+	    curpsinfo->pr_jailid, uid, pid, ppid, execname) :
+	    printf("%5d %6d %6d ", uid, pid, ppid);
+	OPT_safe ? printf("%S\n", curpsinfo->pr_psargs) :
+	    printf("%s\n", curpsinfo->pr_psargs);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Bin/fddist b/external/cddl/dtracetoolkit/dist/Bin/fddist
new file mode 100755
index 0000000..adfb346
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/fddist
@@ -0,0 +1,116 @@
+#!/usr/bin/sh
+#
+# fddist - file descriptor usage distributions.
+#          Written using DTrace (Solaris 10 3/05).
+#
+# This prints distributions for read and write events by file descriptor,
+# by process. This can be used to determine which file descriptor a 
+# process is doing the most I/O with.
+#
+# $Id: fddist,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:        fddist [-r|-w]      # hit Ctrl-C to end sample
+#
+# FIELDS:
+#               EXEC       process name
+#               PID        process ID
+#               value      file descriptor
+#               count      number of events
+#
+# BASED ON: /usr/demo/dtrace/lquantize.d
+#
+# SEE ALSO:
+#           DTrace Guide "Aggregations" chapter (docs.sun.com)
+#
+# PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 09-Jun-2005   Brendan Gregg   Created this.
+# 20-Apr-2006	   "      "	Last update.
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_read=0; opt_write=0
+
+### Process options
+while getopts hrw name
+do
+	case $name in
+	r)      opt_read=1 ;;
+	w)      opt_write=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: fddist [-r|-w] 
+		              -r        # reads only
+		              -w        # writes only
+		  eg,
+		       fddist           # default, r+w counts
+		       fddist -r        # read count only
+		END
+		exit 1
+	esac
+done
+shift `expr $OPTIND - 1`
+
+### Option logic
+if [ $opt_read -eq 0 -a $opt_write -eq 0 ]; then
+	opt_read=1; opt_write=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ inline int OPT_read   = '$opt_read';
+ inline int OPT_write  = '$opt_write';
+ inline int FDMAX      = 255;
+
+ /* print header */
+ dtrace:::BEGIN
+ {
+	printf("Tracing ");
+	OPT_read && OPT_write ? printf("reads and writes") : 1;
+	OPT_read && ! OPT_write ? printf("reads") : 1;
+	! OPT_read && OPT_write ? printf("writes") : 1;
+	printf("... Hit Ctrl-C to end.\n");
+ }
+
+ /* sample reads */
+ syscall::*read*:entry
+ /OPT_read/
+ {
+	@Count[execname, pid] = lquantize(arg0, 0, FDMAX, 1);
+ }
+
+ /* sample writes */
+ syscall::*write*:entry
+ /OPT_write/
+ {
+	@Count[execname, pid] = lquantize(arg0, 0, FDMAX, 1);
+ }
+
+ /* print report */
+ dtrace:::END
+ {
+	printa("EXEC: %-16s PID: %d\n%@d\n",@Count);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Bin/filebyproc.d b/external/cddl/dtracetoolkit/dist/Bin/filebyproc.d
new file mode 100755
index 0000000..136b583
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/filebyproc.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * filebyproc.d - snoop files opened by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: filebyproc.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ */
+
+syscall::open*:entry { printf("%s %s", execname, copyinstr(arg0)); }
diff --git a/external/cddl/dtracetoolkit/dist/Bin/fspaging.d b/external/cddl/dtracetoolkit/dist/Bin/fspaging.d
new file mode 100755
index 0000000..5668806
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/fspaging.d
@@ -0,0 +1,154 @@
+#!/usr/sbin/dtrace -s
+/*
+ * fspaging.d - file system read/write and paging tracing.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * This traces file related activity: system call reads and writes,
+ * vnode logical read and writes (fop), vnode putpage and getpage activity,
+ * and disk I/O. It can be used to examine the behaviour of each I/O
+ * layer, from the syscall interface to what the disk is doing. Behaviour
+ * such as read-ahead, and max I/O size breakup can be observed.
+ *
+ * This is a verbose version of fsrw.d, as this also traces paging activity.
+ *
+ * $Id: fspaging.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	fspaging.d
+ *
+ * FIELDS:
+ *		Event		Traced event (see EVENTS below)
+ *		Device		Device, for disk I/O
+ *		RW		Either Read or Write
+ *		Size		Size of I/O in bytes, if known
+ *		Offset		Offset of I/O in kilobytes, if known
+ *		Path		Path to file on disk
+ *
+ * EVENTS:
+ *		sc-read		System call read
+ *		sc-write	System call write
+ *		fop_read	Logical read
+ *		fop_write	Logical write
+ *		fop_getpage	Logical get page
+ *		fop_putpage	Logical put page
+ *		disk_io		Physical disk I/O
+ *		disk_ra		Physical disk I/O, read ahead
+ *
+ * The events are drawn with a level of indentation, which can sometimes
+ * help identify related events.
+ *
+ * SEE ALSO: fsrw.d
+ *
+ * IDEA: Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * ToDo: readv()
+ *
+ * 20-Mar-2006  Brendan Gregg   Created this.
+ * 23-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+dtrace:::BEGIN
+{
+	printf("%-13s %10s %2s %8s %6s %s\n",
+	    "Event", "Device", "RW", "Size", "Offset", "Path");
+}
+
+syscall::*read:entry,
+syscall::*write*:entry
+{
+	/*
+	 * starting with a file descriptior, dig out useful info
+	 * from the corresponding file_t and vnode_t.
+	 */
+	this->filistp = curthread->t_procp->p_user.u_finfo.fi_list;
+	this->ufentryp = (uf_entry_t *)((uint64_t)this->filistp +
+	    (uint64_t)arg0 * (uint64_t)sizeof (uf_entry_t));
+	this->filep = this->ufentryp->uf_file;
+	self->offset = this->filep->f_offset;
+	this->vnodep = this->filep != 0 ? this->filep->f_vnode : 0;
+	self->vpath = this->vnodep ? (this->vnodep->v_path != 0 ?
+	    cleanpath(this->vnodep->v_path) : "<unknown>") : "<unknown>";
+	self->sc_trace = this->vnodep ? this->vnodep->v_type == 1 ||
+	    this->vnodep->v_type == 2 ? 1 : 0 : 0;
+}
+
+syscall::*read:entry
+/self->sc_trace/
+{
+	printf("sc-%-10s %10s %2s %8d %6d %s\n", probefunc, ".", "R",
+	    (int)arg2, self->offset / 1024, self->vpath);
+}
+
+syscall::*write*:entry
+/self->sc_trace/
+{
+	printf("sc-%-10s %10s %2s %8d %6d %s\n", probefunc, ".", "W",
+	    (int)arg2, self->offset / 1024, self->vpath);
+}
+
+syscall::*read:return,
+syscall::*write*:return
+{
+	self->vpath = 0;
+	self->offset = 0;
+	self->sc_trace = 0;
+}
+
+fbt::fop_putpage:entry,
+fbt::fop_getpage:entry
+/self->sc_trace && args[0]->v_path/
+{
+	printf("  %-11s %10s %2s %8d %6d %s\n", probefunc, ".",
+	    probefunc == "fop_getpage" ? "R" : "W", (uint64_t)arg2,
+	    args[1] / 1024, cleanpath(args[0]->v_path));
+}
+
+
+fbt::fop_read:entry,
+fbt::fop_write:entry
+/self->sc_trace && args[0]->v_path/
+{
+	printf("  %-11s %10s %2s %8d %6d %s\n", probefunc, ".",
+	    probefunc == "fop_read" ? "R" : "W", args[1]->uio_resid,
+	    args[1]->_uio_offset._f / 1024, cleanpath(args[0]->v_path));
+}
+
+fbt:ufs:ufs_getpage_ra:entry
+{
+	/* fetch the real offset (file_t is unaware of this) */
+	self->offset = ((inode_t *)args[0]->v_data)->i_nextrio;
+	self->read_ahead = 1;
+}
+
+fbt:ufs:ufs_getpage_ra:return
+{
+	self->read_ahead = 0;
+	self->offset = 0;
+}
+
+io::bdev_strategy:start
+{
+	this->offset = self->read_ahead ? self->offset : args[2]->fi_offset;
+	printf("    %-9s %10s %2s %8d %6d %s\n",
+	    self->read_ahead ? "disk_ra" : "disk_io", args[1]->dev_statname,
+	    args[0]->b_flags & B_READ ? "R" : "W", args[0]->b_bcount,
+	    this->offset / 1024, args[2]->fi_pathname);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/fsrw.d b/external/cddl/dtracetoolkit/dist/Bin/fsrw.d
new file mode 100755
index 0000000..9c730e6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/fsrw.d
@@ -0,0 +1,149 @@
+#!/usr/sbin/dtrace -s
+/*
+ * fsrw.d - file system read/write event tracing.
+ *          Written using DTrace (Solaris 10 3/05)
+ *
+ * This traces file related activity: system call reads and writes,
+ * vnode logical read and writes (fop), and disk I/O. It can be used
+ * to examine the behaviour of each I/O layer, from the syscall
+ * interface to what the disk is doing. Behaviour such as read-ahead, and
+ * max I/O size breakup can be observed.
+ *
+ * $Id: fsrw.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	fsrw.d
+ *
+ * FIELDS:
+ *		Event		Traced event (see EVENTS below)
+ *		Device		Device, for disk I/O
+ *		RW		Either Read or Write
+ *		Size		Size of I/O in bytes
+ *		Offset		Offset of I/O in kilobytes
+ *		Path		Path to file on disk
+ *
+ * EVENTS:
+ *		sc-read		System call read
+ *		sc-write	System call write
+ *		fop_read	Logical read
+ *		fop_write	Logical write
+ *		disk_io		Physical disk I/O
+ *		disk_ra		Physical disk I/O, read ahead
+ *
+ * The events are drawn with a level of indentation, which can sometimes
+ * help identify related events.
+ *
+ * SEE ALSO: fspaging.d
+ *
+ * IDEA: Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * ToDo: readv()
+ *
+ * 20-Mar-2006  Brendan Gregg   Created this.
+ * 23-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+dtrace:::BEGIN
+{
+	printf("%-12s %10s %2s %8s %6s %s\n",
+	    "Event", "Device", "RW", "Size", "Offset", "Path");
+}
+
+syscall::*read:entry,
+syscall::*write*:entry
+{
+	/*
+	 * starting with a file descriptior, dig out useful info
+	 * from the corresponding file_t and vnode_t.
+	 */
+	this->filistp = curthread->t_procp->p_user.u_finfo.fi_list;
+	this->ufentryp = (uf_entry_t *)((uint64_t)this->filistp +
+	    (uint64_t)arg0 * (uint64_t)sizeof (uf_entry_t));
+	this->filep = this->ufentryp->uf_file;
+	self->offset = this->filep->f_offset;
+	this->vnodep = this->filep != 0 ? this->filep->f_vnode : 0;
+	self->vpath = this->vnodep ? (this->vnodep->v_path != 0 ?
+	    cleanpath(this->vnodep->v_path) : "<unknown>") : "<unknown>";
+
+	/* only trace activity to regular files and directories, as */
+	self->sc_trace = this->vnodep ? this->vnodep->v_type == VREG ||
+	    this->vnodep->v_type == VDIR ? 1 : 0 : 0;
+}
+
+syscall::*read:entry
+/self->sc_trace/
+{
+	printf("sc-%-9s %10s %2s %8d %6d %s\n", probefunc, ".", "R",
+	    (int)arg2, self->offset / 1024, self->vpath);
+}
+
+syscall::*write*:entry
+/self->sc_trace/
+{
+	printf("sc-%-9s %10s %2s %8d %6d %s\n", probefunc, ".", "W",
+	    (int)arg2, self->offset / 1024, self->vpath);
+}
+
+syscall::*read:return,
+syscall::*write*:return
+{
+	self->vpath = 0;
+	self->offset = 0;
+	self->sc_trace = 0;
+}
+
+fbt::fop_read:entry,
+fbt::fop_write:entry
+/self->sc_trace && args[0]->v_path/
+{
+	printf("  %-10s %10s %2s %8d %6d %s\n", probefunc, ".",
+	    probefunc == "fop_read" ? "R" : "W", args[1]->uio_resid,
+	    args[1]->_uio_offset._f / 1024, cleanpath(args[0]->v_path));
+}
+
+fbt:ufs:ufs_getpage_ra:entry
+{
+	/* fetch the real offset (file_t is unaware of this) */
+	self->ra_offset = ((inode_t *)args[0]->v_data)->i_nextrio;
+	self->read_ahead = 1;
+}
+
+fbt:ufs:ufs_getpage_ra:return
+{
+	self->read_ahead = 0;
+	self->ra_offset = 0;
+}
+
+io::bdev_strategy:start
+{
+	this->offset = self->read_ahead ? self->ra_offset : args[2]->fi_offset;
+	printf("    %-8s %10s %2s %8d %6d %s\n",
+	    self->read_ahead ? "disk_ra" : "disk_io", args[1]->dev_statname,
+	    args[0]->b_flags & B_READ ? "R" : "W", args[0]->b_bcount,
+	    this->offset / 1024, args[2]->fi_pathname);
+	/*
+	 * it would seem to make sense to only trace disk events during
+	 * an fop event, easily coded with a self->fop_trace flag. However
+	 * writes are asynchronous to the fop_write calls (they are flushed
+	 * at some later time), and so this approach will miss tracing
+	 * most of the disk writes.
+	 */
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/guess.d b/external/cddl/dtracetoolkit/dist/Bin/guess.d
new file mode 100755
index 0000000..4ebb22c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/guess.d
@@ -0,0 +1,118 @@
+#!/usr/sbin/dtrace -wqs
+/*
+ * guess.d - guessing game in D (DTrace)
+ *
+ * $Id: guess.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: guess.d
+ *
+ * SEE: http://www.brendangregg.com/guessinggame.html
+ *
+ * This is written to demonstrate this language versus the same program
+ * written in other languages.
+ *
+ * 11-May-2005	Brendan Gregg	Created this.
+ */
+
+inline string scorefile = "highscores_d";
+
+dtrace:::BEGIN
+{
+	printf("guess.d - Guess a number between 1 and 100\n\n");
+	num = 1;
+	state = 1;
+
+	/* Generate random number */
+	answer = (rand() % 100) + 1;
+	answer = answer > 0 ? answer : - answer;
+}
+
+syscall::write:entry
+/state == 1 && pid == $pid/
+{
+	state = 2;
+	printf("Enter guess %d: ", num);
+	system("read guess");
+	pos = 0;
+}
+
+syscall::read:entry
+/state == 2 && ppid == $pid && arg0 == 3/
+{
+	self->inguess = 1;
+	self->buf = arg1;
+}
+
+syscall::read:return
+/self->inguess/
+{
+	key = copyin(self->buf, arg0);
+	keys[pos] = *(char *)key;
+	self->buf = 0;
+	pos++;
+}
+
+syscall::read:return
+/self->inguess && keys[pos-1] == '\n'/
+{
+	pos -= 2;
+	fac = 1;
+	guess = fac * (keys[pos] - '0');
+	pos--;
+	fac *= 10;
+	guess = pos >= 0 ? guess + fac * (keys[pos] - '0') : guess;
+	pos--;
+	fac *= 10;
+	guess = pos >= 0 ? guess + fac * (keys[pos] - '0') : guess;
+	self->doneguess = 1;
+}
+
+syscall::read:return
+/self->inguess/
+{
+	self->inguess = 0;
+}
+
+/* Play game */
+syscall::read:return
+/self->doneguess && guess == answer/
+{
+	printf("Correct! That took %d guesses.\n\n", num);
+	self->doneguess = 0;
+	state = 3;
+	printf("Please enter your name: ");
+	system("/usr/bin/read name");
+}
+
+syscall::read:return
+/self->doneguess && guess != answer/
+{
+	num++;
+
+	printf("%s...\n", guess < answer ? "Higher" : "Lower");
+
+	printf("Enter guess %d: ", num);
+	system("read line");
+	pos = 0;
+}
+
+syscall::read:entry
+/state == 3 && curthread->t_procp->p_parent->p_ppid == $pid && arg0 == 0/
+{
+	self->inname = 1;
+	self->buf = arg1;
+}
+
+/* Save high score */
+syscall::read:return
+/self->inname/
+{
+	self->inname = 0;
+	name = stringof(copyin(self->buf, arg0 - 1));
+	system("echo %s %d >> %s", name, num, scorefile);
+
+	/* Print high scores */
+	printf("\nPrevious high scores,\n");
+	system("cat %s", scorefile);
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/hotkernel b/external/cddl/dtracetoolkit/dist/Bin/hotkernel
new file mode 100755
index 0000000..ee79719
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/hotkernel
@@ -0,0 +1,125 @@
+#!/usr/bin/perl -w
+#
+# hotkernel - sample on-CPU kernel-level functions and modules.
+#             Written using Perl and DTrace (Solaris 10 03/05)
+#
+# This samples the on-CPU function at 1001 Hertz, for a simple yet
+# effective kernel-level profiling tool for sampling exclusive function time.
+# The output will identify which function is on the CPU the most - which is
+# the hottest. See Notes/ALLexclusive_notes.txt for an explanation of
+# exclusive time.
+#
+# $Id: hotkernel,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:        hotkernel [-hm]
+#
+#		-h              # help
+#		-m              # match modules, not functions
+#       eg,
+#		hotkernel       # sample kernel functions
+#		hotkernel -m    # sample kernel modules
+#
+# FIELDS:
+#		FUNCTION        Function name
+#		MODULE          Module name
+#		COUNT           Number of samples
+#		PCNT            Percentage of total samples
+#
+# COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 29-Jun-2006	Brendan Gregg	Created this.
+# 29-Jun-2006	   "      "	Last update.
+#
+
+use strict;
+use Getopt::Std;
+
+#
+# Command Line Arguments
+#
+my $args;
+usage() if defined $ARGV[0] and $ARGV[0] eq "--help";
+getopts('hm') or usage();
+usage() if defined $main::opt_h and $main::opt_h;
+my $mods = defined $main::opt_m and $main::opt_m ? 1 : 0;
+
+#
+# Cleanup on signals
+#
+$SIG{INT} = \&cleanupsig;    # Ctrl-C
+$SIG{QUIT} = \&cleanupsig;   # Ctrl-\
+$SIG{TERM} = \&cleanupsig;   # TERM
+
+#
+# Declare DTrace script
+#
+my $dtrace = <<END;
+/usr/sbin/dtrace -n '
+	#pragma D option quiet
+	profile:::profile-1001hz
+	/arg0/
+	{
+		\@pc[arg0] = count();
+	}
+	dtrace:::END
+	{
+		printa("%a %\@d\\n", \@pc);
+	}
+'
+END
+
+#
+# Run DTrace, process output
+#
+my %Count;
+my $total;
+open DTRACE, "$dtrace |" or die "ERROR1: Can't run dtrace (perms?): $!\n";
+print "Sampling... Hit Ctrl-C to end.\n";
+while (my $line = <DTRACE>) {
+    next if $line =~ /^\s*$/;
+    my ($addr, $count) = split ' ', $line;
+    my ($name, $offset) = split /\+/, $addr;
+    next if $name eq "0x0";
+    $name =~ s/\`.*// if $mods;
+    $Count{$name} += $count;
+    $total += $count;
+}
+close DTRACE;
+
+#
+# Print final report
+#
+printf "\n%-52s %8s %6s\n", $mods ? "MODULE" : "FUNCTION", "COUNT", "PCNT";
+foreach my $name (sort { $Count{$a} <=> $Count{$b} } keys %Count) {
+    printf "%-52s %8d %5.1f%%\n", $name, $Count{$name},
+                                  100 * $Count{$name} / ($total ? $total : 1);
+}
+
+#
+# Subroutines
+#
+sub cleanupsig {
+}
+sub usage {
+    print STDERR "USAGE: hotkernel [-hm]\n";
+    print STDERR "   eg,\n";
+    print STDERR "       hotkernel       # sample kernel functions\n";
+    print STDERR "       hotkernel -m    # sample kernel modules\n";
+    exit 1;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/hotspot.d b/external/cddl/dtracetoolkit/dist/Bin/hotspot.d
new file mode 100755
index 0000000..6b77150
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/hotspot.d
@@ -0,0 +1,71 @@
+#!/usr/sbin/dtrace -s
+/*
+ * hotspot.d - plot disk event by location, look for hotspots.
+ *             Written in DTrace (Solaris 10 3/05).
+ *
+ * This simple DTrace script determines if disk activity is occuring in
+ * the one place - a "hotspot". This helps us understand the system's usage
+ * of a disk, it does not imply that the existance or not of a hotspot is
+ * good or bad (often may be good, less seeking).
+ *
+ * $Id: hotspot.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       hotspot.d       # hit Ctrl-C to end
+ *
+ * FIELDS:
+ *              Disk            disk instance name
+ *              Major           driver major number
+ *              Minor           driver minor number
+ *              value           location, by megabyte
+ *              count           number of I/O operations
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 07-May-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+inline int DISK_MB_MAX = 1000000;	/* max size of a single disk */
+inline int REPORT_SCALE_MB = 1000;	/* output step size for report */
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/*
+ * Process disk event
+ */
+io:::start
+{
+	this->mb = args[0]->b_blkno / 2048;
+	@Block[args[1]->dev_statname, args[1]->dev_major, args[1]->dev_minor] =
+	    lquantize(this->mb, 0, DISK_MB_MAX, REPORT_SCALE_MB);
+}
+
+/*
+ * Print final report
+ */
+dtrace:::END
+{
+	printa("Disk: %s   Major,Minor: %d,%d\n%@d\n", @Block);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/hotuser b/external/cddl/dtracetoolkit/dist/Bin/hotuser
new file mode 100755
index 0000000..98e8112
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/hotuser
@@ -0,0 +1,139 @@
+#!/usr/bin/perl -w
+#
+# hotuser - sample on-CPU user-level functions and libraries.
+#           Written using Perl and DTrace (Solaris 10 03/05)
+#
+# This samples the on-CPU function at 1001 Hertz, for a simple yet
+# effective user-level profiling tool for sampling exclusive function time.
+# The output will identify which function is on the CPU the most - which
+# is the hottest. See Notes/ALLexclusive_notes.txt for an explanation of
+# exclusive time.
+#
+# $Id: hotuser,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:        hotuser [-hl] { -c command | -p PID }
+#
+#		-h              # help
+#		-l              # match libraries, not functions
+#		-p PID          # examine this PID
+#		-c command      # run and examine this command
+#       eg,
+#		hotuser -p 81   # sample user functions from PID 81
+#		hotuser -lp 81  # sample user libraries from PID 81
+#		hotuser -p `pgrep -n Xorg`	# sample Xorg
+#
+# FIELDS:
+#		FUNCTION        Function name
+#		LIBRARY         Library name
+#		COUNT           Number of samples
+#		PCNT            Percentage of total samples
+#
+# COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 29-Jun-2006	Brendan Gregg	Created this.
+# 29-Jun-2006	   "      "	Last update.
+#
+
+use strict;
+use Getopt::Std;
+
+#
+# Command Line Arguments
+#
+my $args;
+usage() if defined $ARGV[0] and $ARGV[0] eq "--help";
+getopts('c:hlp:') or usage();
+usage() if defined $main::opt_h and $main::opt_h;
+my $libs = defined $main::opt_l and $main::opt_l ? 1 : 0;
+if (defined $main::opt_c) {
+    $args = "-c $main::opt_c";
+}
+elsif (defined $main::opt_p) {
+    $args = "-p $main::opt_p";
+}
+else {
+    usage();
+}
+
+#
+# Cleanup on signals
+#
+$SIG{INT} = \&cleanupsig;    # Ctrl-C
+$SIG{QUIT} = \&cleanupsig;   # Ctrl-\
+$SIG{TERM} = \&cleanupsig;   # TERM
+
+#
+# Declare DTrace script
+#
+my $dtrace = <<END;
+/usr/sbin/dtrace -n '
+	#pragma D option quiet
+	profile:::profile-1001hz
+	/pid == \$target/ 
+	{
+		\@pc[arg1] = count();
+	}
+	dtrace:::END
+	{
+		printa("OUT: %A %\@d\\n", \@pc);
+	}
+' '$args'
+END
+
+#
+# Run DTrace, process output
+#
+my %Count;
+my $total;
+open DTRACE, "$dtrace |" or die "ERROR1: Can't run dtrace (perms?): $!\n";
+print "Sampling... Hit Ctrl-C to end.\n";
+while (my $line = <DTRACE>) {
+    next if $line =~ /^\s*$/;
+    next if $line !~ /^OUT: /;
+    my ($tag, $addr, $count) = split ' ', $line;
+    my ($name, $offset) = split /\+/, $addr;
+    next if $name eq "0x0";
+    $name =~ s/\`.*// if $libs;
+    $Count{$name} += $count;
+    $total += $count;
+}
+close DTRACE;
+
+#
+# Print final report
+#
+printf "\n%-52s %8s %6s\n", $libs ? "LIBRARY" : "FUNCTION", "COUNT", "PCNT";
+foreach my $name (sort { $Count{$a} <=> $Count{$b} } keys %Count) {
+    printf "%-52s %8d %5.1f%%\n", $name, $Count{$name},
+                                  100 * $Count{$name} / ($total ? $total : 1);
+}
+
+#
+# Subroutines
+#
+sub cleanupsig {
+}
+sub usage {
+    print STDERR "USAGE: hotuser [-hl] { -c command | -p PID }\n";
+    print STDERR "   eg,\n";
+    print STDERR "       hotuser -p 81     # sample user funcs for PID 81\n";
+    print STDERR "       hotuser -lp 81    # sample user libs for PID 81\n";
+    print STDERR "       hotuser -p `pgrep -n Xorg`     # sample Xorg\n";
+    exit 1;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/httpdstat.d b/external/cddl/dtracetoolkit/dist/Bin/httpdstat.d
new file mode 100755
index 0000000..a4d8fff
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/httpdstat.d
@@ -0,0 +1,132 @@
+#!/usr/sbin/dtrace -s
+/*
+ * httpdstat.d - realtime httpd statistics. Uses DTrace.
+ *
+ * $Id: httpdstat.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE:	httpdstat.d [interval [count]]
+ *
+ *		interval	seconds
+ *		count		number of samples
+ *
+ * FIELDS:
+ *		TIME		Time, string
+ *		NUM		Number of connections
+ *		GET		Number of "GET"s
+ *		POST		Number of "POST"s
+ *		HEAD		Number of "HEAD"s
+ *		TRACE		Number of "TRACE"s
+ *
+ * All of the statistics are printed as a value per interval (not per second).
+ *
+ * NOTE: This version does not process subsequent operations on keepalives.
+ *
+ * IDEA: Ryan Matteson (who first wrote a solution to this).
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 20-Nov-2005	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+/*
+ * Program Start
+ */
+dtrace:::BEGIN
+{
+	num = 0; get = 0; head = 0; post = 0; trac = 0;
+	lines = SCREEN + 1;
+	secs = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %6s %6s %5s %5s %5s\n", "TIME",
+	    "NUM", "GET", "POST", "HEAD", "TRACE");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Track Accept Events
+ */
+syscall::accept:return
+/execname == "httpd"/
+{
+	self->buf = 1;
+}
+
+syscall::read:entry
+/self->buf/
+{
+	self->buf = arg1;
+}
+
+/*
+ * Tally Data
+ */
+syscall::read:return
+/self->buf && arg0/
+{
+	this->str = (char *)copyin(self->buf, arg0);
+	this->str[4] = '\0';
+	get  += stringof(this->str) == "GET " ? 1 : 0;
+	post += stringof(this->str) == "POST" ? 1 : 0;
+	head += stringof(this->str) == "HEAD" ? 1 : 0;
+	trac += stringof(this->str) == "TRAC" ? 1 : 0;
+	num++;
+	self->buf = 0;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %6d %6d %5d %5d %5d\n", walltimestamp,
+	    num, get, post, head, trac);
+	num = 0; get = 0; head = 0; post = 0; trac = 0;
+	secs = $1 ? $1 : 1;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/icmpstat.d b/external/cddl/dtracetoolkit/dist/Bin/icmpstat.d
new file mode 100755
index 0000000..512a275
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/icmpstat.d
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -s
+/*
+ * icmpstat.d - print ICMP statistics. Uses DTrace.
+ *
+ * This prints ICMP statistics every second, retrieved from the MIB provider.
+ * This is a simple script to demonstrate the ability to trace ICMP events.
+ *
+ * $Id: icmpstat.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	icmpstat.d
+ *
+ * FIELDS:
+ *		STATISTIC		ICMP statistic name
+ *		VALUE			total of statistic during sample
+ *
+ * The above ICMP statistics are documented in the mib2_icmp struct
+ * in the /usr/include/inet/mib2.h file; and also in the mib provider
+ * chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 25-Jul-2005	Brendan Gregg	Created this.
+ * 25-Jul-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Save Data
+ */
+mib:::icmp*
+{
+	@icmp[probename] = sum(arg0);
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+{
+	printf("%Y,\n\n", walltimestamp);
+	printf("%32s %8s\n", "STATISTIC", "VALUE");
+	printa("%32s %@8d\n", @icmp);
+	printf("\n");
+
+	trunc(@icmp);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/intbycpu.d b/external/cddl/dtracetoolkit/dist/Bin/intbycpu.d
new file mode 100755
index 0000000..0554ec8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/intbycpu.d
@@ -0,0 +1,49 @@
+#!/usr/sbin/dtrace -s
+/*
+ * intbycpu.d - interrupts by CPU.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: intbycpu.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	intbycpu.d		# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		CPU		CPU number
+ *		INTERRUPTS	number of interrupts in sample
+ *
+ * This is based on a DTrace OneLiner from the DTraceToolkit.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 15-May-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sdt:::interrupt-start { @num[cpu] = count(); }
+
+dtrace:::END
+{
+	printf("%-16s %16s\n", "CPU", "INTERRUPTS");
+	printa("%-16d %@16d\n", @num);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/intoncpu.d b/external/cddl/dtracetoolkit/dist/Bin/intoncpu.d
new file mode 100755
index 0000000..32a8488
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/intoncpu.d
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -s
+/*
+ * intoncpu.d - print interrupt on-cpu usage.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * $Id: intoncpu.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       intoncpu.d      # wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		value	Time interrupt thread was on-cpu, ns
+ *		count	Number of occurrences of at least this time
+ *
+ * BASED ON: /usr/demo/dtrace/intr.d
+ *
+ * SEE ALSO: DTrace Guide "sdt Provider" chapter (docs.sun.com)
+ *           intrstat(1M)
+ *
+ * PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-May-2005  Brendan Gregg   Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sdt:::interrupt-start
+{
+	self->ts = vtimestamp;
+}
+
+sdt:::interrupt-complete
+/self->ts && arg0 != 0/
+{
+	this->devi = (struct dev_info *)arg0;
+	/* this checks the pointer is valid, */
+	self->name = this->devi != 0 ?
+	    stringof(`devnamesp[this->devi->devi_major].dn_name) : "?";
+	this->inst = this->devi != 0 ? this->devi->devi_instance : 0;
+	@Time[self->name, this->inst] = quantize(vtimestamp - self->ts);
+	self->name = 0;
+}
+
+dtrace:::END
+{
+	printa("%s%d\n%@d", @Time);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/inttimes.d b/external/cddl/dtracetoolkit/dist/Bin/inttimes.d
new file mode 100755
index 0000000..84a84d0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/inttimes.d
@@ -0,0 +1,73 @@
+#!/usr/sbin/dtrace -s
+/*
+ * inttimes.d - print interrupt on-cpu time.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * $Id: inttimes.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       inttimes.d      # wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		DEVICE		instance name of device driver
+ *		TIME (ns)	sum of time spent servicing interrupt (ns)
+ *
+ * BASED ON: /usr/demo/dtrace/intr.d
+ *
+ * SEE ALSO:
+ *          DTrace Guide "sdt Provider" chapter (docs.sun.com)
+ *          intrstat(1M)
+ *
+ * PORTIONS: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sdt:::interrupt-start
+{
+	self->ts = vtimestamp;
+}
+
+sdt:::interrupt-complete
+/self->ts && arg0 != 0/
+{
+	this->devi = (struct dev_info *)arg0;
+	/* this checks the pointer is valid, */
+	self->name = this->devi != 0 ?
+	    stringof(`devnamesp[this->devi->devi_major].dn_name) : "?";
+	this->inst = this->devi != 0 ? this->devi->devi_instance : 0;
+	@num[self->name, this->inst] = sum(vtimestamp - self->ts);
+	self->name = 0;
+}
+
+sdt:::interrupt-complete
+{
+	self->ts = 0;
+}
+
+dtrace:::END
+{
+	printf("%11s    %16s\n", "DEVICE", "TIME (ns)");
+	printa("%10s%-3d %@16d\n", @num);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/iofile.d b/external/cddl/dtracetoolkit/dist/Bin/iofile.d
new file mode 100755
index 0000000..07d9ccf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/iofile.d
@@ -0,0 +1,79 @@
+#!/usr/sbin/dtrace -s
+/*
+ * iofile.d - I/O wait time by filename and process.
+ *            Written using DTrace (Solaris 10 3/05).
+ *
+ * This prints the total I/O wait times for each filename by process.
+ * This can help determine why an application is performing poorly by
+ * identifying which file they are waiting on, and the total times.
+ * Both disk and NFS I/O are measured.
+ *
+ * $Id: iofile.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	iofile.d	# wait, then hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		CMD		Process name
+ *		TIME		Total wait time for disk events, us
+ *		FILE		File pathname
+ *
+ * BASED ON: /usr/demo/dtrace/iocpu.d
+ *
+ * SEE ALSO: iosnoop, iotop
+ *
+ * PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 24-Jul-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/* print header */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/* save time at start */
+io:::wait-start
+{
+	self->start = timestamp;
+}
+
+/* process event */
+io:::wait-done
+/self->start/
+{
+	/*
+	 * wait-done is used as we are measing wait times. It also
+	 * is triggered when the correct thread is on the CPU, obviating
+	 * the need to link process details to the start event.
+	 */
+	this->elapsed = timestamp - self->start;
+	@files[pid, execname, args[2]->fi_pathname] = sum(this->elapsed);
+	self->start = 0;
+}
+
+/* print report */
+dtrace:::END
+{
+	normalize(@files, 1000);
+	printf("%6s %-12s %8s %s\n", "PID", "CMD", "TIME", "FILE");
+	printa("%6d %-12.12s %@8d %s\n", @files);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/iofileb.d b/external/cddl/dtracetoolkit/dist/Bin/iofileb.d
new file mode 100755
index 0000000..edef6e5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/iofileb.d
@@ -0,0 +1,59 @@
+#!/usr/sbin/dtrace -s
+/*
+ * iofileb.d - I/O bytes by filename and process.
+ *             Written using DTrace (Solaris 10 3/05).
+ *
+ * This prints a summary of requested disk activity by pathname,
+ * providing totals of the I/O events in bytes. It is a companion to the
+ * iofile.d script - which prints in terms of I/O wait time, not bytes.
+ * I/O wait time is a better metric for understanding performance issues.
+ * Both disk and NFS I/O are measured.
+ *
+ * $Id: iofileb.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	iofileb.d	# wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID	process ID
+ *		CMD	command name
+ *		KB	Kilobytes of disk I/O
+ *		FILE	Full pathname of the file
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 20-Feb-2006	Brendan Gregg	Created this.
+ * 20-Feb-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+io:::start
+{
+	@files[pid, execname, args[2]->fi_pathname] = sum(args[0]->b_bcount);
+}
+
+dtrace:::END
+{
+	normalize(@files, 1024);
+	printf("%6s %-12s %6s %s\n", "PID", "CMD", "KB", "FILE");
+	printa("%6d %-12.12s %@6d %s\n", @files);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/iopattern b/external/cddl/dtracetoolkit/dist/Bin/iopattern
new file mode 100755
index 0000000..765d56e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/iopattern
@@ -0,0 +1,277 @@
+#!/usr/bin/ksh
+#
+# iopattern - print disk I/O pattern.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# This prints details on the I/O access pattern for the disks, such as
+# percentage of events that were of a random or sequential nature.
+# By default totals for all disks are printed.
+#
+# $Id: iopattern,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE:	iopattern [-v] [-d device] [-f filename] [-m mount_point] 
+#			  [interval [count]]
+#
+#		       -v       	# print timestamp, string
+#		       -d device	# instance name to snoop (eg, dad0)
+#		       -f filename	# full pathname of file to snoop
+#		       -m mount_point	# this FS only (will skip raw events)
+#  eg,
+#		iopattern   	# default output, 1 second intervals
+#		iopattern 10  	# 10 second samples
+#		iopattern 5 12	# print 12 x 5 second samples
+#	        iopattern -m /  # snoop events on filesystem / only
+# 	
+# FIELDS:
+#		%RAN  		percentage of events of a random nature
+#		%SEQ 	 	percentage of events of a sequential nature
+#		COUNT		number of I/O events
+#		MIN		minimum I/O event size
+#		MAX		maximum I/O event size
+#		AVG		average I/O event size
+#		KR		total kilobytes read during sample
+#		KW		total kilobytes written during sample
+#		DEVICE		device name
+#		MOUNT		mount point
+#		FILE		filename
+#		TIME		timestamp, string
+# 
+# NOTES:
+#
+#  An event is considered random when the heads seek. This program prints
+#  the percentage of events that are random. The size of the seek is not
+#  measured - it's either random or not.
+#
+# SEE ALSO: iosnoop, iotop
+# 
+# IDEA: Ryan Matteson
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 25-Jul-2005	Brendan Gregg	Created this.
+# 25-Jul-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_device=0; opt_file=0; opt_mount=0; opt_time=0
+filter=0; device=.; filename=.; mount=.; interval=1; count=-1
+
+### process options
+while getopts d:f:hm:v name
+do
+	case $name in
+	d)	opt_device=1; device=$OPTARG ;;
+	f)	opt_file=1; filename=$OPTARG ;;
+	m)	opt_mount=1; mount=$OPTARG ;;
+	v)	opt_time=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: iopattern [-v] [-d device] [-f filename] [-m mount_point]
+		                 [interval [count]]
+ 
+		                -v              # print timestamp
+		                -d device       # instance name to snoop 
+		                -f filename     # snoop this file only
+		                -m mount_point  # this FS only 
+		   eg,
+		        iopattern         # default output, 1 second samples
+		        iopattern 10      # 10 second samples
+		        iopattern 5 12    # print 12 x 5 second samples
+		        iopattern -m /    # snoop events on filesystem / only
+		END
+		exit 1
+	esac
+done
+
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_device || opt_mount || opt_file )); then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_time 	= '$opt_time';
+ inline int OPT_device 	= '$opt_device';
+ inline int OPT_mount 	= '$opt_mount';
+ inline int OPT_file 	= '$opt_file';
+ inline int INTERVAL 	= '$interval';
+ inline int COUNTER 	= '$count';
+ inline int FILTER 	= '$filter';
+ inline string DEVICE 	= "'$device'";
+ inline string FILENAME = "'$filename'";
+ inline string MOUNT 	= "'$mount'";
+ 
+ #pragma D option quiet
+
+ int last_loc[string];
+
+ /*
+  * Program start
+  */
+ dtrace:::BEGIN 
+ {
+        /* starting values */
+	diskcnt = 0;
+	diskmin = 0;
+	diskmax = 0;
+	diskran = 0;
+	diskr = 0;
+	diskw = 0;
+        counts = COUNTER;
+        secs = INTERVAL;
+	LINES = 20;
+	line = 0;
+	last_event[""] = 0;
+ }
+
+ /*
+  * Print header
+  */
+ profile:::tick-1sec
+ /line <= 0 /
+ {
+	/* print optional headers */
+	OPT_time   ? printf("%-20s ", "TIME")  : 1;
+	OPT_device ? printf("%-9s ", "DEVICE") : 1;
+	OPT_mount  ? printf("%-12s ", "MOUNT") : 1;
+	OPT_file   ? printf("%-12s ", "FILE") : 1;
+
+	/* print header */
+	printf("%4s %4s %6s %6s %6s %6s %6s %6s\n",
+	    "%RAN", "%SEQ", "COUNT", "MIN", "MAX", "AVG", "KR", "KW");
+
+	line = LINES;
+ }
+
+ /*
+  * Check event is being traced
+  */
+ io:genunix::done
+ { 
+	/* default is to trace unless filtering */
+	self->ok = FILTER ? 0 : 1;
+
+	/* check each filter */
+	(OPT_device == 1 && DEVICE == args[1]->dev_statname)? self->ok = 1 : 1;
+	(OPT_file == 1 && FILENAME == args[2]->fi_pathname) ? self->ok = 1 : 1;
+	(OPT_mount == 1 && MOUNT == args[2]->fi_mount)  ? self->ok = 1 : 1;
+ }
+
+ /*
+  * Process and Print completion
+  */
+ io:genunix::done
+ /self->ok/
+ {
+	/*
+	 * Save details
+	 */
+	this->loc = args[0]->b_blkno * 512;
+	this->pre = last_loc[args[1]->dev_statname];
+	diskr += args[0]->b_flags & B_READ ? args[0]->b_bcount : 0;
+	diskw += args[0]->b_flags & B_READ ? 0 : args[0]->b_bcount;
+	diskran += this->pre == this->loc ? 0 : 1;
+	diskcnt++;
+	diskmin = diskmin == 0 ? args[0]->b_bcount :
+	    (diskmin > args[0]->b_bcount ? args[0]->b_bcount : diskmin);
+	diskmax = diskmax < args[0]->b_bcount ? args[0]->b_bcount : diskmax;
+
+	/* save disk location */
+	last_loc[args[1]->dev_statname] = this->loc + args[0]->b_bcount;
+
+	/* cleanup */
+	self->ok = 0;
+ }
+
+ /*
+  * Timer
+  */
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /*
+  * Print Output
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* calculate diskavg */
+	diskavg = diskcnt > 0 ? (diskr + diskw) / diskcnt : 0;
+
+	/* convert counters to Kbytes */
+	diskr /= 1024;
+	diskw /= 1024;
+
+	/* convert to percentages */
+	diskran = diskcnt == 0 ? 0 : (diskran * 100) / diskcnt;
+	diskseq = diskcnt == 0 ? 0 : 100 - diskran;
+
+	/* print optional fields */
+	OPT_time   ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_device ? printf("%-9s ", DEVICE) : 1;
+	OPT_mount  ? printf("%-12s ", MOUNT) : 1;
+	OPT_file   ? printf("%-12s ", FILENAME) : 1;
+
+	/* print data */
+	printf("%4d %4d %6d %6d %6d %6d %6d %6d\n",
+	    diskran, diskseq, diskcnt, diskmin, diskmax, diskavg,
+	    diskr, diskw);
+
+	/* clear data */
+	diskmin = 0;
+	diskmax = 0;
+	diskcnt = 0;
+	diskran = 0;
+	diskr = 0;
+	diskw = 0;
+
+	secs = INTERVAL;
+	counts--;
+	line--;
+ }
+
+ /*
+  * End of program
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Bin/iopending b/external/cddl/dtracetoolkit/dist/Bin/iopending
new file mode 100755
index 0000000..5dc5830
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/iopending
@@ -0,0 +1,261 @@
+#!/usr/bin/ksh
+#
+# iopending - Print a plot for the number of pending disk I/O events.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# This is measuring disk events that have made it past system caches.
+# By plotting a distribution graph of the number of pending events, the
+# "serialness" or "parallelness" of disk behaviour can be distinguished.
+#
+# $Id: iopending,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	iopending [-c] [-d device] [-f filename] 
+#		          [-m mount_point] [interval [count]]
+#
+#		-c		# clear the screen
+#		-d device	# instance name to snoop (eg, dad0)
+#		-f filename	# full pathname of file to snoop
+#		-m mount_point	# this FS only (will skip raw events)
+#	eg,
+#		iopending   	# default output, 5 second intervals
+#		iopending 1  	# 1 second samples
+#		iopending -c	# clear the screen
+#		iopending 5 12	# print 12 x 5 second samples
+# 	
+# FIELDS:
+#		value		number of pending events, 0 == idle
+#		count		number of samples @ 1000 Hz
+#		load		1 min load average
+#		disk_r		total disk read Kbytes for sample
+#		disk_w		total disk write Kbytes for sample
+# 
+# SEE ALSO: iosnoop, iotop
+#
+# IDEA: Dr Rex di Bona (Sydney, Australia)
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 01-Nov-2005	Brendan Gregg	Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_device=0; opt_file=0; opt_mount=0; opt_clear=0; 
+opt_def=1; filter=0; device=.; filename=.; mount=.
+interval=5; count=-1
+
+### process options
+while getopts cd:f:hm: name
+do
+	case $name in
+	c)	opt_clear=1 ;;
+	d)	opt_device=1; device=$OPTARG ;;
+	f)	opt_file=1; filename=$OPTARG ;;
+	m)	opt_mount=1; mount=$OPTARG ;;
+	h|?)	cat <<-END >&2
+		USAGE: iopending [-c] [-d device] [-f filename]
+		                 [-m mount_point] [interval [count]]
+ 
+		                -c              # clear the screen
+		                -d device       # instance name to snoop 
+		                -f filename     # snoop this file only
+		                -m mount_point  # this FS only 
+		   eg,
+		        iopending         # default output, 5 second samples
+		        iopending 1       # 1 second samples
+		        iopending -m /    # snoop events on filesystem / only
+		        iopending 5 12    # print 12 x 5 second samples
+		END
+		exit 1
+	esac
+done
+
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_device || opt_mount || opt_file )); then
+	filter=1
+fi
+if (( opt_clear )); then
+        clearstr=`clear`
+else
+        clearstr=.
+fi
+
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_def 	= '$opt_def';
+ inline int OPT_clear 	= '$opt_clear';
+ inline int OPT_device 	= '$opt_device';
+ inline int OPT_mount 	= '$opt_mount';
+ inline int OPT_file 	= '$opt_file';
+ inline int INTERVAL 	= '$interval';
+ inline int COUNTER 	= '$count';
+ inline int FILTER 	= '$filter';
+ inline string DEVICE 	= "'$device'";
+ inline string FILENAME = "'$filename'";
+ inline string MOUNT 	= "'$mount'";
+ inline string CLEAR 	= "'$clearstr'";
+
+ inline int MAX_PENDING = 32;	/* max pending value */
+ 
+ #pragma D option quiet
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+        /* starting values */
+        counts = COUNTER;
+        secs = INTERVAL;
+        disk_r = 0;
+        disk_w = 0;
+        pending = 0;
+
+        printf("Tracing... Please wait.\n");
+ }
+
+ /*
+  * Check event is being traced
+  */
+ io:genunix::start,
+ io:genunix::done 
+ { 
+	/* default is to trace unless filtering, */
+	this->ok = FILTER ? 0 : 1;
+
+	/* check each filter, */
+	(OPT_device == 1 && DEVICE == args[1]->dev_statname)? this->ok = 1 : 1;
+	(OPT_file == 1 && FILENAME == args[2]->fi_pathname) ? this->ok = 1 : 1;
+	(OPT_mount == 1 && MOUNT == args[2]->fi_mount)  ? this->ok = 1 : 1;
+ }
+
+ /*
+  * Store entry details
+  */
+ io:genunix::start
+ /this->ok/
+ {
+	/* track bytes */
+	disk_r += args[0]->b_flags & B_READ ? args[0]->b_bcount : 0;
+	disk_w += args[0]->b_flags & B_READ ? 0 : args[0]->b_bcount;
+
+	/* increase event pending count */
+	pending++;
+ }
+
+ /*
+  * Process and Print completion
+  */
+ io:genunix::done
+ /this->ok/
+ {
+	/* decrease event pending count */
+	pending--;
+ }
+
+ /*
+  * Prevent pending from underflowing
+  * this can happen if this program is started during disk events.
+  */
+ io:genunix::done
+ /pending < 0/
+ {
+	pending = 0;
+ }
+
+ /*
+  * Timer
+  */
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ profile:::profile-1000hz
+ {
+	@out = lquantize(pending, 0, MAX_PENDING, 1);
+ }
+
+ /*
+  * Print Report
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* fetch 1 min load average */
+	this->load1a  = `hp_avenrun[0] / 65536;
+	this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+
+	/* convert counters to Kbytes */
+	disk_r /= 1024;
+	disk_w /= 1024;
+
+	/* print status */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+	printf("%Y,  load: %d.%02d,  disk_r: %6d KB,  disk_w: %6d KB",
+	    walltimestamp, this->load1a, this->load1b, disk_r, disk_w);
+
+	/* print output */
+	printa(@out);
+
+	/* clear data */
+	trunc(@out);
+	disk_r = 0;
+	disk_w = 0;
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /*
+  * End of program
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+
+ /*
+  * Cleanup for Ctrl-C
+  */
+ dtrace:::END
+ {
+	trunc(@out);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Bin/iosnoop b/external/cddl/dtracetoolkit/dist/Bin/iosnoop
new file mode 100755
index 0000000..b2282a5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/iosnoop
@@ -0,0 +1,367 @@
+#!/usr/bin/sh
+#
+# iosnoop - A program to print disk I/O events as they happen, with useful
+#           details such as UID, PID, filename, command, etc. 
+#           Written using DTrace (Solaris 10 3/05).
+#
+# This is measuring disk events that have made it past system caches.
+#
+# $Id: iosnoop,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE: 	iosnoop [-a|-A|-DeghiNostv] [-d device] [-f filename] 
+#			[-m mount_point] [-n name] [-p PID]
+#
+#		iosnoop		# default output
+#
+#		-a		# print all data (mostly)
+#		-A		# dump all data, space delimited
+#		-D		# print time delta, us (elapsed)
+#		-e		# print device name
+#		-g		# print command arguments
+#		-i		# print device instance
+#		-N		# print major and minor numbers
+#		-o		# print disk delta time, us 
+#		-s		# print start time, us
+#		-t 		# print completion time, us
+#		-v		# print completion time, string
+#		-d device	# instance name to snoop (eg, dad0)
+#		-f filename	# full pathname of file to snoop
+#		-m mount_point	# this FS only (will skip raw events)
+#		-n name		# this process name only
+#		-p PID		# this PID only
+#  eg,
+#		iosnoop -v	# human readable timestamps
+#		iosnoop -N	# print major and minor numbers
+#		iosnoop -m /	# snoop events on the root filesystem only
+# 	
+# FIELDS:
+#		UID		user ID
+#		PID		process ID
+#		PPID		parennt process ID
+#		COMM		command name for the process
+#		ARGS		argument listing for the process
+#		SIZE		size of operation, bytes
+#		BLOCK		disk block for the operation (location)
+#		STIME	 	timestamp for the disk request, us
+#		TIME		timestamp for the disk completion, us
+#		DELTA		elapsed time from request to completion, us
+#		DTIME		time for disk to complete request, us
+#		STRTIME		timestamp for the disk completion, string
+#		DEVICE  	device name
+#		INS     	device instance number
+#		D		direction, Read or Write
+#		MOUNT		mount point
+#		FILE		filename (basename) for io operation
+# 
+# NOTE:
+# - There are two different delta times reported. -D prints the
+#   elapsed time from the disk request (strategy) to the disk completion
+#   (iodone); -o prints the time for the disk to complete that event 
+#   since it's last event (time between iodones), or, the time to the 
+#   strategy if the disk had been idle. 
+# - When filtering on PID or process name, be aware that poor disk event
+#   times may be due to events that have been filtered away, for example
+#   another process that may be seeking the disk heads elsewhere.
+#
+# SEE ALSO: BigAdmin: DTrace, http://www.sun.com/bigadmin/content/dtrace
+#	    Solaris Dynamic Tracing Guide, http://docs.sun.com
+#	    DTrace Tools, http://www.brendangregg.com/dtrace.html
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 12-Mar-2004	Brendan Gregg	Created this, build 51.
+# 23-May-2004	   "	  "	Fixed mntpt bug.
+# 10-Oct-2004	   "      "	Rewritten to use the io provider, build 63.
+# 04-Jan-2005	   "	  "	Wrapped in sh to provide options.
+# 08-May-2005	   "      "	Rewritten for perfromance.
+# 15-Jul-2005	   "      "	Improved DTIME calculation.
+# 25-Jul-2005	   "      "	Added -p, -n. Improved code.
+# 17-Sep-2005	   "      "	Increased switchrate.
+# 17-Sep-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_dump=0; opt_device=0; opt_delta=0; opt_devname=0; opt_file=0; opt_args=0; 
+opt_mount=0; opt_start=0 opt_end=0; opt_endstr=0; opt_ins=0; opt_nums=0
+opt_dtime=0; filter=0; device=.; filename=.; mount=.; pname=.; pid=0
+opt_name=0; opt_pid=0
+
+### process options
+while getopts aAd:Def:ghim:Nn:op:stv name
+do
+	case $name in
+	a)	opt_devname=1; opt_args=1; opt_endstr=1; opt_nums=1 ;;
+	A)	opt_dump=1 ;;
+	d)	opt_device=1; device=$OPTARG ;;
+	D)	opt_delta=1 ;;
+	e)	opt_devname=1 ;;
+	f)	opt_file=1; filename=$OPTARG ;;
+	g)	opt_args=1 ;;
+	i)	opt_ins=1 ;;
+	N)	opt_nums=1 ;;
+	n)	opt_name=1; pname=$OPTARG ;;
+	o)	opt_dtime=1 ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	m)	opt_mount=1; mount=$OPTARG ;;
+	s)	opt_start=1 ;;
+	t)	opt_end=1 ;;
+	v)	opt_endstr=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: iosnoop [-a|-A|-DeghiNostv] [-d device] [-f filename]
+		               [-m mount_point] [-n name] [-p PID]
+		       iosnoop          # default output
+		                -a      # print all data (mostly)
+		                -A      # dump all data, space delimited
+		                -D      # print time delta, us (elapsed)
+		                -e      # print device name
+		                -g      # print command arguments
+		                -i      # print device instance
+		                -N      # print major and minor numbers
+		                -o      # print disk delta time, us
+		                -s      # print start time, us
+		                -t      # print completion time, us
+		                -v      # print completion time, string
+		                -d device       # instance name to snoop 
+		                -f filename     # snoop this file only
+		                -m mount_point  # this FS only 
+		                -n name         # this process name only 
+		                -p PID          # this PID only 
+		   eg,
+		        iosnoop -v      # human readable timestamps
+		        iosnoop -N      # print major and minor numbers
+		        iosnoop -m /    # snoop events on filesystem / only
+		END
+		exit 1
+	esac
+done
+
+### option logic
+if [ $opt_dump -eq 1 ]; then
+	opt_delta=0; opt_devname=0; opt_args=2; opt_start=0; 
+	opt_end=0; opt_endstr=0; opt_nums=0; opt_ins=0; opt_dtime=0
+fi
+if [ $opt_device -eq 1 -o $opt_file -eq 1 -o $opt_mount -eq 1 -o \
+    $opt_name -eq 1 -o $opt_pid -eq 1 ]; then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_dump 	= '$opt_dump';
+ inline int OPT_device 	= '$opt_device';
+ inline int OPT_delta 	= '$opt_delta';
+ inline int OPT_devname = '$opt_devname';
+ inline int OPT_file 	= '$opt_file';
+ inline int OPT_args 	= '$opt_args';
+ inline int OPT_ins  	= '$opt_ins';
+ inline int OPT_nums  	= '$opt_nums';
+ inline int OPT_dtime 	= '$opt_dtime';
+ inline int OPT_mount 	= '$opt_mount';
+ inline int OPT_start 	= '$opt_start';
+ inline int OPT_pid 	= '$opt_pid';
+ inline int OPT_name 	= '$opt_name';
+ inline int OPT_end 	= '$opt_end';
+ inline int OPT_endstr 	= '$opt_endstr';
+ inline int FILTER 	= '$filter';
+ inline int PID 	= '$pid';
+ inline string DEVICE 	= "'$device'";
+ inline string FILENAME = "'$filename'";
+ inline string MOUNT 	= "'$mount'";
+ inline string NAME 	= "'$pname'";
+ 
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	last_event[""] = 0;
+
+	/* print optional headers */
+ 	OPT_start   ? printf("%-14s ","STIME")   : 1;
+ 	OPT_end     ? printf("%-14s ","TIME")    : 1;
+ 	OPT_endstr  ? printf("%-20s ","STRTIME") : 1;
+ 	OPT_devname ? printf("%-7s ","DEVICE")   : 1;
+ 	OPT_ins     ? printf("%-3s ","INS")      : 1;
+ 	OPT_nums    ? printf("%-3s %-3s ","MAJ","MIN") : 1;
+ 	OPT_delta   ? printf("%-10s ","DELTA")   : 1;
+ 	OPT_dtime   ? printf("%-10s ","DTIME")   : 1;
+
+	/* print main headers */
+	OPT_dump ? 
+	    printf("%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s\n",
+ 	    "TIME", "STIME", "DELTA", "DEVICE", "INS", "MAJ", "MIN", "UID",
+	    "PID", "PPID", "D", "BLOCK", "SIZE", "MOUNT", "FILE", "PATH",
+	    "COMM","ARGS") :
+ 	    printf("%5s %5s %1s %8s %6s ", "UID", "PID", "D", "BLOCK", "SIZE");
+	OPT_args == 0 ? printf("%10s %s\n", "COMM", "PATHNAME") : 1;
+ 	OPT_args == 1 ? printf("%28s %s\n", "PATHNAME", "ARGS") : 1;
+ }
+
+ /*
+  * Check event is being traced
+  */
+ io:genunix::start
+ { 
+	/* default is to trace unless filtering, */
+	self->ok = FILTER ? 0 : 1;
+
+	/* check each filter, */
+	(OPT_device == 1 && DEVICE == args[1]->dev_statname)? self->ok = 1 : 1;
+	(OPT_file == 1 && FILENAME == args[2]->fi_pathname) ? self->ok = 1 : 1;
+	(OPT_mount == 1 && MOUNT == args[2]->fi_mount) ? self->ok = 1 : 1;
+	(OPT_name == 1 && NAME == execname) ? self->ok = 1 : 1;
+	(OPT_pid == 1 && PID == pid) ? self->ok = 1 : 1;
+ }
+
+ /*
+  * Reset last_event for disk idle -> start
+  * this prevents idle time being counted as disk time.
+  */
+ io:genunix::start
+ /! pending[args[1]->dev_statname]/
+ {
+	/* save last disk event */
+	last_event[args[1]->dev_statname] = timestamp;
+ }
+
+ /*
+  * Store entry details
+  */
+ io:genunix::start
+ /self->ok/
+ {
+	/* these are used as a unique disk event key, */
+ 	this->dev = args[0]->b_edev;
+ 	this->blk = args[0]->b_blkno;
+
+	/* save disk event details, */
+ 	start_uid[this->dev, this->blk] = uid;
+ 	start_pid[this->dev, this->blk] = pid;
+ 	start_ppid[this->dev, this->blk] = ppid;
+ 	start_args[this->dev, this->blk] = (char *)curpsinfo->pr_psargs;
+ 	start_comm[this->dev, this->blk] = execname;
+ 	start_time[this->dev, this->blk] = timestamp;
+
+	/* increase disk event pending count */
+	pending[args[1]->dev_statname]++;
+
+	self->ok = 0;
+ }
+
+ /*
+  * Process and Print completion
+  */
+ io:genunix::done
+ /start_time[args[0]->b_edev, args[0]->b_blkno]/
+ {
+	/* decrease disk event pending count */
+	pending[args[1]->dev_statname]--;
+
+	/*
+	 * Process details
+	 */
+
+ 	/* fetch entry values */
+ 	this->dev = args[0]->b_edev;
+ 	this->blk = args[0]->b_blkno;
+ 	this->suid = start_uid[this->dev, this->blk];
+ 	this->spid = start_pid[this->dev, this->blk];
+ 	this->sppid = start_ppid[this->dev, this->blk];
+ 	self->sargs = (int)start_args[this->dev, this->blk] == 0 ? 
+ 	    "" : start_args[this->dev, this->blk];
+ 	self->scomm = start_comm[this->dev, this->blk];
+ 	this->stime = start_time[this->dev, this->blk];
+	this->etime = timestamp; /* endtime */
+	this->delta = this->etime - this->stime;
+	this->dtime = last_event[args[1]->dev_statname] == 0 ? 0 :
+	    timestamp - last_event[args[1]->dev_statname];
+
+ 	/* memory cleanup */
+ 	start_uid[this->dev, this->blk]  = 0;
+ 	start_pid[this->dev, this->blk]  = 0;
+ 	start_ppid[this->dev, this->blk] = 0;
+ 	start_args[this->dev, this->blk] = 0;
+ 	start_time[this->dev, this->blk] = 0;
+ 	start_comm[this->dev, this->blk] = 0;
+ 	start_rw[this->dev, this->blk]   = 0;
+
+	/*
+	 * Print details
+	 */
+
+	/* print optional fields */
+ 	OPT_start   ? printf("%-14d ", this->stime/1000) : 1;
+ 	OPT_end     ? printf("%-14d ", this->etime/1000) : 1;
+ 	OPT_endstr  ? printf("%-20Y ", walltimestamp) : 1;
+ 	OPT_devname ? printf("%-7s ", args[1]->dev_statname) : 1;
+ 	OPT_ins     ? printf("%3d ", args[1]->dev_instance) : 1;
+ 	OPT_nums    ? printf("%3d %3d ",
+	    args[1]->dev_major, args[1]->dev_minor) : 1;
+ 	OPT_delta   ? printf("%-10d ", this->delta/1000) : 1;
+ 	OPT_dtime   ? printf("%-10d ", this->dtime/1000) : 1;
+
+	/* print main fields */
+	OPT_dump ? 
+ 	    printf("%d %d %d %s %d %d %d %d %d %d %s %d %d %s %s %s %s %S\n",
+ 	    this->etime/1000, this->stime/1000, this->delta/1000,
+ 	    args[1]->dev_statname, args[1]->dev_instance, args[1]->dev_major,
+	    args[1]->dev_minor, this->suid, this->spid, this->sppid, 
+	    args[0]->b_flags & B_READ ? "R" : "W", 
+	    args[0]->b_blkno, args[0]->b_bcount, args[2]->fi_mount,
+	    args[2]->fi_name, args[2]->fi_pathname, self->scomm, self->sargs) :
+ 	    printf("%5d %5d %1s %8d %6d ",
+ 	    this->suid, this->spid, args[0]->b_flags & B_READ ? "R" : "W",
+	    args[0]->b_blkno, args[0]->b_bcount);
+	OPT_args == 0 ? printf("%10s %s\n", self->scomm, args[2]->fi_pathname)
+	    : 1;
+ 	OPT_args == 1 ? printf("%28s %S\n",
+	    args[2]->fi_pathname, self->sargs) : 1;
+
+	/* save last disk event */
+	last_event[args[1]->dev_statname] = timestamp;
+
+	/* cleanup */
+	self->scomm = 0;
+	self->sargs = 0;
+ }
+
+ /*
+  * Prevent pending from underflowing
+  * this can happen if this program is started during disk events.
+  */
+ io:genunix::done
+ /pending[args[1]->dev_statname] < 0/
+ {
+	pending[args[1]->dev_statname] = 0;
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Bin/iotop b/external/cddl/dtracetoolkit/dist/Bin/iotop
new file mode 100755
index 0000000..a7dbafb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/iotop
@@ -0,0 +1,422 @@
+#!/usr/bin/ksh
+#
+# iotop - display top disk I/O events by process.
+#         Written using DTrace (Solaris 10 3/05).
+#
+# This is measuring disk events that have made it past system caches.
+#
+# $Id: iotop,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE:	iotop [-C] [-D|-o|-P] [-j|-Z] [-d device] [-f filename] 
+#		      [-m mount_point] [-t top] [interval [count]]
+#
+#		iotop   	# default output, 5 second intervals
+#
+#		-C		# don't clear the screen
+#		-D		# print delta times, elapsed, us
+#		-j		# print project ID
+#		-o		# print disk delta times, us
+#		-P		# print %I/O (disk delta times)
+#		-Z		# print zone ID
+#		-d device	# instance name to snoop (eg, dad0)
+#		-f filename	# full pathname of file to snoop
+#		-m mount_point	# this FS only (will skip raw events)
+#		-t top		# print top number only
+#	eg,
+#		iotop 1  	# 1 second samples
+#		iotop -C	# don't clear the screen
+#		iotop -P	# print %I/O (time based)
+#		iotop -j	# print project IDs
+#		iotop -Z 	# print zone IDs
+#		iotop -t 20 	# print top 20 lines only
+#		iotop -C 5 12	# print 12 x 5 second samples
+# 	
+# FIELDS:
+#		UID		user ID
+#		PID		process ID
+#		PPID		parent process ID
+#		PROJ		project ID
+#		ZONE		zone ID
+#		CMD		process command name
+#		DEVICE  	device name
+#		MAJ     	device major number
+#		MIN     	device minor number
+#		D		direction, Read or Write
+#		BYTES		total size of operations, bytes
+#		ELAPSED		total elapsed from request to completion, us
+#		DISKTIME	total time for disk to complete request, us
+#		%I/O		percent disk I/O, based on time (DISKTIME)
+#		load		1 min load average
+#		disk_r		total disk read Kbytes for sample
+#		disk_w		total disk write Kbytes for sample
+# 
+# NOTE:
+# * There are two different delta times reported. -D prints the
+#   elapsed time from the disk request (strategy) to the disk completion
+#   (iodone); -o prints the time for the disk to complete that event 
+#   since it's last event (time between iodones), or, the time to the
+#   strategy if the disk had been idle. 
+# * The %I/O value can exceed 100%. It represents how busy a process is
+#   making the disks, in terms of a single disk. A value of 200% could 
+#   mean 2 disks are busy at 100%, or 4 disks at 50%...
+#
+# SEE ALSO: iosnoop
+#	    BigAdmin: DTrace, http://www.sun.com/bigadmin/content/dtrace
+#	    Solaris Dynamic Tracing Guide, http://docs.sun.com
+#	    DTrace Tools, http://www.brendangregg.com/dtrace.html
+#
+# INSPIRATION:  top(1) by William LeFebvre
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# KNOWN BUGS: 
+# - This can print errors while running on servers with Veritas volumes.
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 15-Jul-2005	Brendan Gregg	Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_device=0; opt_file=0; opt_mount=0; opt_clear=1; opt_proj=0; opt_zone=0
+opt_percent=0; opt_def=1; opt_bytes=1; filter=0; device=.; filename=.; mount=.
+opt_top=0; opt_elapsed=0; opt_dtime=0; interval=5; count=-1; top=0
+
+### process options
+while getopts CDd:f:hjm:oPt:Z name
+do
+	case $name in
+	C)	opt_clear=0 ;;
+	D)	opt_elapsed=1; opt_bytes=0 ;;
+	d)	opt_device=1; device=$OPTARG ;;
+	f)	opt_file=1; filename=$OPTARG ;;
+	j)	opt_proj=1; opt_def=0 ;;
+	m)	opt_mount=1; mount=$OPTARG ;;
+	o)	opt_dtime=1; opt_bytes=0 ;;
+	P)	opt_percent=1; opt_dtime=1; opt_bytes=0 ;;
+	t)	opt_top=1; top=$OPTARG ;;
+	Z)	opt_zone=1; opt_def=0 ;;
+	h|?)	cat <<-END >&2
+		USAGE: iotop [-C] [-D|-o|-P] [-j|-Z] [-d device] [-f filename]
+		             [-m mount_point] [-t top] [interval [count]]
+ 
+		                -C      # don't clear the screen
+		                -D      # print delta times, elapsed, us
+		                -j      # print project ID
+		                -o      # print disk delta times, us
+		                -P      # print %I/O (disk delta times)
+		                -Z      # print zone ID
+		                -d device       # instance name to snoop 
+		                -f filename     # snoop this file only
+		                -m mount_point  # this FS only 
+		                -t top  	# print top number only
+		   eg,
+		        iotop         # default output, 5 second samples
+		        iotop 1       # 1 second samples
+		        iotop -P      # print %I/O (time based)
+		        iotop -m /    # snoop events on filesystem / only
+		        iotop -t 20   # print top 20 lines only
+		        iotop -C 5 12 # print 12 x 5 second samples
+		END
+		exit 1
+	esac
+done
+
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_proj && opt_zone )); then
+        opt_proj=0
+fi
+if (( opt_elapsed && opt_dtime )); then
+        opt_elapsed=0
+fi
+if (( opt_device || opt_mount || opt_file )); then
+	filter=1
+fi
+if (( opt_clear )); then
+        clearstr=`clear`
+else
+        clearstr=.
+fi
+
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_def 	= '$opt_def';
+ inline int OPT_proj 	= '$opt_proj';
+ inline int OPT_zone 	= '$opt_zone';
+ inline int OPT_clear 	= '$opt_clear';
+ inline int OPT_bytes 	= '$opt_bytes';
+ inline int OPT_elapsed = '$opt_elapsed';
+ inline int OPT_dtime 	= '$opt_dtime';
+ inline int OPT_percent	= '$opt_percent';
+ inline int OPT_device 	= '$opt_device';
+ inline int OPT_mount 	= '$opt_mount';
+ inline int OPT_file 	= '$opt_file';
+ inline int OPT_top 	= '$opt_top';
+ inline int INTERVAL 	= '$interval';
+ inline int COUNTER 	= '$count';
+ inline int FILTER 	= '$filter';
+ inline int TOP 	= '$top';
+ inline string DEVICE 	= "'$device'";
+ inline string FILENAME = "'$filename'";
+ inline string MOUNT 	= "'$mount'";
+ inline string CLEAR 	= "'$clearstr'";
+ 
+ #pragma D option quiet
+
+ /* boost the following if you get "dynamic variable drops" */
+ #pragma D option dynvarsize=8m
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	last_event[""] = 0;
+
+        /* starting values */
+        counts = COUNTER;
+        secs = INTERVAL;
+        disk_r = 0;
+        disk_w = 0;
+
+        printf("Tracing... Please wait.\n");
+ }
+
+ /*
+  * Check event is being traced
+  */
+ io:genunix::start,
+ io:genunix::done 
+ { 
+	/* default is to trace unless filtering, */
+	this->ok = FILTER ? 0 : 1;
+
+	/* check each filter, */
+	(OPT_device == 1 && DEVICE == args[1]->dev_statname)? this->ok = 1 : 1;
+	(OPT_file == 1 && FILENAME == args[2]->fi_pathname) ? this->ok = 1 : 1;
+	(OPT_mount == 1 && MOUNT == args[2]->fi_mount)  ? this->ok = 1 : 1;
+ }
+
+ /*
+  * Reset last_event for disk idle -> start
+  * this prevents idle time being counted as disk time.
+  */
+ io:genunix::start
+ /! pending[args[1]->dev_statname]/
+ {
+	/* save last disk event */
+	last_event[args[1]->dev_statname] = timestamp;
+ }
+
+ /*
+  * Store entry details
+  */
+ io:genunix::start
+ /this->ok/
+ {
+	/* these are used as a unique disk event key, */
+ 	this->dev = args[0]->b_edev;
+ 	this->blk = args[0]->b_blkno;
+
+	/* save disk event details, */
+ 	start_uid[this->dev, this->blk] = uid;
+ 	start_pid[this->dev, this->blk] = pid;
+ 	start_ppid[this->dev, this->blk] = ppid;
+ 	start_comm[this->dev, this->blk] = execname;
+ 	start_time[this->dev, this->blk] = timestamp;
+ 	start_proj[this->dev, this->blk] = curpsinfo->pr_projid;
+ 	start_zone[this->dev, this->blk] = curpsinfo->pr_zoneid;
+ 	start_rw[this->dev, this->blk] = args[0]->b_flags & B_READ ? "R" : "W";
+	disk_r += args[0]->b_flags & B_READ ? args[0]->b_bcount : 0;
+	disk_w += args[0]->b_flags & B_READ ? 0 : args[0]->b_bcount;
+
+	/* increase disk event pending count */
+	pending[args[1]->dev_statname]++;
+ }
+
+ /*
+  * Process and Print completion
+  */
+ io:genunix::done
+ /this->ok/
+ {
+	/* decrease disk event pending count */
+	pending[args[1]->dev_statname]--;
+
+	/*
+	 * Process details
+	 */
+
+ 	/* fetch entry values */
+ 	this->dev = args[0]->b_edev;
+ 	this->blk = args[0]->b_blkno;
+ 	this->suid = start_uid[this->dev, this->blk];
+ 	this->spid = start_pid[this->dev, this->blk];
+ 	this->sppid = start_ppid[this->dev, this->blk];
+ 	this->sproj = start_proj[this->dev, this->blk];
+ 	this->szone = start_zone[this->dev, this->blk];
+ 	self->scomm = start_comm[this->dev, this->blk];
+ 	this->stime = start_time[this->dev, this->blk];
+	this->etime = timestamp; /* endtime */
+	this->elapsed = this->etime - this->stime;
+ 	self->rw = start_rw[this->dev, this->blk];
+	this->dtime = last_event[args[1]->dev_statname] == 0 ? 0 :
+	    timestamp - last_event[args[1]->dev_statname];
+
+ 	/* memory cleanup */
+ 	start_uid[this->dev, this->blk]  = 0;
+ 	start_pid[this->dev, this->blk]  = 0;
+ 	start_ppid[this->dev, this->blk] = 0;
+ 	start_time[this->dev, this->blk] = 0;
+ 	start_comm[this->dev, this->blk] = 0;
+ 	start_zone[this->dev, this->blk] = 0;
+ 	start_proj[this->dev, this->blk] = 0;
+ 	start_rw[this->dev, this->blk]   = 0;
+
+	/*
+	 * Choose statistic to track
+	 */
+	OPT_bytes   ? this->value = args[0]->b_bcount    : 1;
+	OPT_elapsed ? this->value = this->elapsed / 1000 : 1;
+	OPT_dtime   ? this->value = this->dtime / 1000   : 1;
+	
+	/*
+	 * Save details
+	 */
+	OPT_def ? @out[this->suid, this->spid, this->sppid, self->scomm,
+	    args[1]->dev_statname, args[1]->dev_major, args[1]->dev_minor,
+	    self->rw] = sum(this->value) : 1;
+	OPT_proj ? @out[this->sproj, this->spid, this->sppid, self->scomm,
+	    args[1]->dev_statname, args[1]->dev_major, args[1]->dev_minor,
+	    self->rw] = sum(this->value) : 1;
+	OPT_zone ? @out[this->szone, this->spid, this->sppid, self->scomm,
+	    args[1]->dev_statname, args[1]->dev_major, args[1]->dev_minor,
+	    self->rw] = sum(this->value) : 1;
+
+	/* save last disk event */
+	last_event[args[1]->dev_statname] = timestamp;
+
+	self->scomm = 0;
+	self->rw = 0;
+ }
+
+ /*
+  * Prevent pending from underflowing
+  * this can happen if this program is started during disk events.
+  */
+ io:genunix::done
+ /pending[args[1]->dev_statname] < 0/
+ {
+	pending[args[1]->dev_statname] = 0;
+ }
+
+ /*
+  * Timer
+  */
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /*
+  * Print Report
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* fetch 1 min load average */
+	this->load1a  = `hp_avenrun[0] / 65536;
+	this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+
+	/* convert counters to Kbytes */
+	disk_r /= 1024;
+	disk_w /= 1024;
+
+	/* print status */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+	printf("%Y,  load: %d.%02d,  disk_r: %6d KB,  disk_w: %6d KB\n\n",
+	    walltimestamp, this->load1a, this->load1b, disk_r, disk_w);
+
+	/* print headers */
+	OPT_def  ? printf("  UID ") : 1;
+	OPT_proj ? printf(" PROJ ") : 1;
+	OPT_zone ? printf(" ZONE ") : 1;
+	printf("%6s %6s %-16s %-7s %3s %3s %1s",
+	    "PID", "PPID", "CMD", "DEVICE", "MAJ", "MIN", "D");
+	OPT_bytes   ? printf(" %16s\n", "BYTES") : 1;
+	OPT_elapsed ? printf(" %16s\n", "ELAPSED") : 1;
+	OPT_dtime && ! OPT_percent  ? printf(" %16s\n", "DISKTIME") : 1;
+	OPT_dtime && OPT_percent    ? printf(" %6s\n", "%I/O") : 1;
+
+	/* truncate to top lines if needed */
+	OPT_top ? trunc(@out, TOP) : 1;
+
+	/* normalise to percentage if needed */
+	OPT_percent ? normalize(@out, INTERVAL * 10000) : 1;
+
+	/* print data */
+	! OPT_percent ? 
+	    printa("%5d %6d %6d %-16s %-7s %3d %3d %1s %16@d\n", @out) :
+	    printa("%5d %6d %6d %-16s %-7s %3d %3d %1s %6@d\n", @out);
+	printf("\n");
+
+	/* clear data */
+	trunc(@out);
+	disk_r = 0;
+	disk_w = 0;
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /*
+  * End of program
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+
+ /*
+  * Cleanup for Ctrl-C
+  */
+ dtrace:::END
+ {
+	trunc(@out);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_calldist.d b/external/cddl/dtracetoolkit/dist/Bin/j_calldist.d
new file mode 100755
index 0000000..87ae4f6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_calldist.d
@@ -0,0 +1,116 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * j_calldist.d - measure Java elapsed times for different types of operation.
+ *                Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_calldist.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0). Method calls are only visible when using the
+ * flag "+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_calldist.d [top]	# hit Ctrl-C to end
+ *
+ * The "top" optional argument will truncate the output for each report
+ * section to that many lines, with a default of 10.
+ *
+ * FIELDS:
+ *		1		Process ID
+ *		2		Type of call (method/gc)
+ *		3		Name of call
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+hotspot*:::method-entry
+{
+	self->depth[arg0]++;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+	self->method[arg0, self->depth[arg0]] = timestamp;
+}
+
+hotspot*:::method-return
+/self->method[arg0, self->depth[arg0]]/
+{
+	this->elapsed_incl = timestamp - self->method[arg0, self->depth[arg0]];
+	this->elapsed_excl = this->elapsed_incl -
+	    self->exclude[arg0, self->depth[arg0]];
+	self->method[arg0, self->depth[arg0]] = 0;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+
+	@types_incl[pid, "method", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[pid, "method", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth[arg0]--;
+	self->exclude[arg0, self->depth[arg0]] += this->elapsed_incl;
+}
+
+hotspot*:::gc-begin
+{
+	self->gc = timestamp;
+	self->full = (boolean_t)arg0;
+}
+
+hotspot*:::gc-end
+/self->gc/
+{
+	this->elapsed = timestamp - self->gc;
+
+	@types[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] =
+	    quantize(this->elapsed / 1000);
+
+	self->gc = 0;
+	self->full = 0;
+}
+
+dtrace:::END
+{
+	trunc(@types, top);
+	printf("\nTop %d elapsed times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types);
+
+	trunc(@types_excl, top);
+	printf("\nTop %d exclusive method elapsed times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	printf("\nTop %d inclusive method elapsed times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_calls.d b/external/cddl/dtracetoolkit/dist/Bin/j_calls.d
new file mode 100755
index 0000000..322a21ae
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_calls.d
@@ -0,0 +1,113 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_calls.d - count Java calls (method/...) using DTrace.
+ *             Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_calls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0). Method calls and object allocation are only
+ * visible when using the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_calls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (see below)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * TYPEs:
+ *		cload		class load
+ *		method		method call
+ *		mcompile	method compile
+ *		mload		compiled method load
+ *		oalloc		object alloc
+ *		thread		thread start
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot*:::method-entry
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+	@calls[pid, "method", this->name] = count();
+}
+
+hotspot*:::object-alloc
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	@calls[pid, "oalloc", stringof(this->class)] = count();
+}
+
+hotspot*:::class-loaded
+{
+	this->class = (char *)copyin(arg0, arg1 + 1);
+	this->class[arg1] = '\0';
+	@calls[pid, "cload", stringof(this->class)] = count();
+}
+
+hotspot*:::thread-start
+{
+	this->thread = (char *)copyin(arg0, arg1 + 1);
+	this->thread[arg1] = '\0';
+	@calls[pid, "thread", stringof(this->thread)] = count();
+}
+
+hotspot*:::method-compile-begin
+{
+	this->class = (char *)copyin(arg0, arg1 + 1);
+	this->class[arg1] = '\0';
+	this->method = (char *)copyin(arg2, arg3 + 1);
+	this->method[arg3] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+	@calls[pid, "mcompile", this->name] = count();
+}
+
+hotspot*:::compiled-method-load
+{
+	this->class = (char *)copyin(arg0, arg1 + 1);
+	this->class[arg1] = '\0';
+	this->method = (char *)copyin(arg2, arg3 + 1);
+	this->method[arg3] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+	@calls[pid, "mload", this->name] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s %-8s %-52s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa(" %6d %-8s %-52s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_calltime.d b/external/cddl/dtracetoolkit/dist/Bin/j_calltime.d
new file mode 100755
index 0000000..0d4eb2a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_calltime.d
@@ -0,0 +1,129 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * j_calltime.d - measure Java elapsed times for different types of operation.
+ *                Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_calltime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0). Method calls are only visible when using the
+ * flag "+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_calltime.d [top]	# hit Ctrl-C to end
+ *
+ * The "top" optional argument will truncate the output for each report
+ * section to that many lines, with a default of 10.
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (method/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+hotspot*:::method-entry
+{
+	self->depth[arg0]++;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+	self->method[arg0, self->depth[arg0]] = timestamp;
+}
+
+hotspot*:::method-return
+/self->method[arg0, self->depth[arg0]]/
+{
+	this->elapsed_incl = timestamp - self->method[arg0, self->depth[arg0]];
+	this->elapsed_excl = this->elapsed_incl -
+	    self->exclude[arg0, self->depth[arg0]];
+	self->method[arg0, self->depth[arg0]] = 0;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+
+	@num[pid, "method", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "method", this->name] = sum(this->elapsed_incl);
+	@types_excl[pid, "method", this->name] = sum(this->elapsed_excl);
+	@types_excl[0, "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth[arg0]--;
+	self->exclude[arg0, self->depth[arg0]] += this->elapsed_incl;
+}
+
+hotspot*:::gc-begin
+{
+	self->gc = timestamp;
+	self->full = (boolean_t)arg0;
+}
+
+hotspot*:::gc-end
+/self->gc/
+{
+	this->elapsed = timestamp - self->gc;
+	self->gc = 0;
+
+	@num[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] = count();
+	@types[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] =
+	    sum(this->elapsed);
+	self->full = 0;
+}
+
+dtrace:::END
+{
+	trunc(@num, top);
+	printf("\nTop %d counts,\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa("   %6d %-10s %-48s %@8d\n", @num);
+
+	trunc(@types, top);
+	normalize(@types, 1000);
+	printf("\nTop %d elapsed times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types);
+
+	trunc(@types_excl, top);
+	normalize(@types_excl, 1000);
+	printf("\nTop %d exclusive method elapsed times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	normalize(@types_incl, 1000);
+	printf("\nTop %d inclusive method elapsed times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_classflow.d b/external/cddl/dtracetoolkit/dist/Bin/j_classflow.d
new file mode 100755
index 0000000..c1567ce
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_classflow.d
@@ -0,0 +1,100 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_classflow.d - trace a Java class method flow using DTrace.
+ *                 Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_classflow.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_classflow.d	classname	# hit Ctrl-C to end
+ *
+ * This watches Java method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		PID		Process ID
+ *		CLASS.METHOD	Java class and method name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ * Changes in TID will appear to shuffle output, as we change from one thread
+ * depth to the next. See Docs/Notes/ALLjavaflow.txt for additional notes.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/* increasing bufsize can reduce drops */
+#pragma D option bufsize=16m
+#pragma D option quiet
+#pragma D option defaultargs
+#pragma D option switchrate=10
+
+self int depth[int];
+
+dtrace:::BEGIN
+/$$1 == ""/
+{
+	printf("USAGE: j_classflow.d classname\n");
+	exit(1);
+}
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s -- %s\n", "C", "PID", "TIME(us)", "CLASS.METHOD");
+}
+
+hotspot*:::method-entry,
+hotspot*:::method-return
+{
+	this->class = stringof((char *)copyin(arg1, arg2 + 1));
+	this->class[arg2] = '\0';
+}
+
+hotspot*:::method-entry
+/this->class == $$1/
+{
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	printf("%3d %6d %-16d %*s-> %s.%s\n", cpu, pid, timestamp / 1000,
+	    self->depth[arg0] * 2, "", stringof(this->class),
+	    stringof(this->method));
+	self->depth[arg0]++;
+}
+
+hotspot*:::method-return
+/this->class == $$1/
+{
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	self->depth[arg0] -= self->depth[arg0] > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %*s<- %s.%s\n", cpu, pid, timestamp / 1000,
+	    self->depth[arg0] * 2, "", stringof(this->class),
+	    stringof(this->method));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_cpudist.d b/external/cddl/dtracetoolkit/dist/Bin/j_cpudist.d
new file mode 100755
index 0000000..7269348
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_cpudist.d
@@ -0,0 +1,116 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * j_cpudist.d - measure Java on-CPU times for different types of operation.
+ *               Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_cpudist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0). Method calls are only visible when using the
+ * flag "+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_cpudist.d [top]	# hit Ctrl-C to end
+ *
+ * The "top" optional argument will truncate the output for each report
+ * section to that many lines, with a default of 10.
+ *
+ * FIELDS:
+ *		1		Process ID
+ *		2		Type of call (method/gc)
+ *		3		Name of call
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+hotspot*:::method-entry
+{
+	self->depth[arg0]++;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+	self->method[arg0, self->depth[arg0]] = vtimestamp;
+}
+
+hotspot*:::method-return
+/self->method[arg0, self->depth[arg0]]/
+{
+	this->oncpu_incl = vtimestamp - self->method[arg0, self->depth[arg0]];
+	this->oncpu_excl = this->oncpu_incl -
+	    self->exclude[arg0, self->depth[arg0]];
+	self->method[arg0, self->depth[arg0]] = 0;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+
+	@types_incl[pid, "method", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[pid, "method", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth[arg0]--;
+	self->exclude[arg0, self->depth[arg0]] += this->oncpu_incl;
+}
+
+hotspot*:::gc-begin
+{
+	self->gc = vtimestamp;
+	self->full = (boolean_t)arg0;
+}
+
+hotspot*:::gc-end
+/self->gc/
+{
+	this->oncpu = vtimestamp - self->gc;
+
+	@types[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] =
+	    quantize(this->oncpu / 1000);
+
+	self->gc = 0;
+	self->full = 0;
+}
+
+dtrace:::END
+{
+	trunc(@types, top);
+	printf("\nTop %d on-CPU times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types);
+
+	trunc(@types_excl, top);
+	printf("\nTop %d exclusive method on-CPU times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	printf("\nTop %d inclusive method on-CPU times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_cputime.d b/external/cddl/dtracetoolkit/dist/Bin/j_cputime.d
new file mode 100755
index 0000000..7ef2e6b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_cputime.d
@@ -0,0 +1,129 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * j_cputime.d - measure Java on-CPU times for different types of operation.
+ *               Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_cputime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0). Method calls are only visible when using the
+ * flag "+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_cputime.d [top]	# hit Ctrl-C to end
+ *
+ * The "top" optional argument will truncate the output for each report
+ * section to that many lines, with a default of 10.
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (method/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+hotspot*:::method-entry
+{
+	self->depth[arg0]++;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+	self->method[arg0, self->depth[arg0]] = vtimestamp;
+}
+
+hotspot*:::method-return
+/self->method[arg0, self->depth[arg0]]/
+{
+	this->oncpu_incl = vtimestamp - self->method[arg0, self->depth[arg0]];
+	this->oncpu_excl = this->oncpu_incl -
+	    self->exclude[arg0, self->depth[arg0]];
+	self->method[arg0, self->depth[arg0]] = 0;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+
+	@num[pid, "method", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "method", this->name] = sum(this->oncpu_incl);
+	@types_excl[pid, "method", this->name] = sum(this->oncpu_excl);
+	@types_excl[0, "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth[arg0]--;
+	self->exclude[arg0, self->depth[arg0]] += this->oncpu_incl;
+}
+
+hotspot*:::gc-begin
+{
+	self->gc = vtimestamp;
+	self->full = (boolean_t)arg0;
+}
+
+hotspot*:::gc-end
+/self->gc/
+{
+	this->oncpu = vtimestamp - self->gc;
+	self->gc = 0;
+
+	@num[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] = count();
+	@types[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] =
+	    sum(this->oncpu);
+	self->full = 0;
+}
+
+dtrace:::END
+{
+	trunc(@num, top);
+	printf("\nTop %d counts,\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa("   %6d %-10s %-48s %@8d\n", @num);
+
+	trunc(@types, top);
+	normalize(@types, 1000);
+	printf("\nTop %d on-CPU times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types);
+
+	trunc(@types_excl, top);
+	normalize(@types_excl, 1000);
+	printf("\nTop %d exclusive method on-CPU times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	normalize(@types_incl, 1000);
+	printf("\nTop %d inclusive method on-CPU times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_events.d b/external/cddl/dtracetoolkit/dist/Bin/j_events.d
new file mode 100755
index 0000000..8efdf73
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_events.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_events.d - count Java events using DTrace.
+ *              Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_events.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0). Some events such as method calls are only
+ * visible when using the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_events.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		EVENT		Event name (DTrace probe name)
+ *		COUNT		Number of calls during sample
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/* this matches both hotspot and hotspot_jni providers */
+hotspot*:::
+{
+	@calls[pid, probename] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s  %-36s %8s\n", "PID", "EVENT", "COUNT");
+	printa(" %6d  %-36s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_flow.d b/external/cddl/dtracetoolkit/dist/Bin/j_flow.d
new file mode 100755
index 0000000..7210e40
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_flow.d
@@ -0,0 +1,87 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_flow.d - snoop Java execution showing method flow using DTrace.
+ *            Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_flow.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_flow.d		# hit Ctrl-C to end
+ *
+ * This watches Java method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		PID		Process ID
+ *		CLASS.METHOD	Java class and method name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ * Changes in TID will appear to shuffle output, as we change from one thread
+ * depth to the next. See Docs/Notes/ALLjavaflow.txt for additional notes.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/* increasing bufsize can reduce drops */
+#pragma D option bufsize=16m
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth[int];
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s -- %s\n", "C", "PID", "TIME(us)", "CLASS.METHOD");
+}
+
+hotspot*:::method-entry
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	printf("%3d %6d %-16d %*s-> %s.%s\n", cpu, pid, timestamp / 1000,
+	    self->depth[arg0] * 2, "", stringof(this->class),
+	    stringof(this->method));
+	self->depth[arg0]++;
+}
+
+hotspot*:::method-return
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	self->depth[arg0] -= self->depth[arg0] > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %*s<- %s.%s\n", cpu, pid, timestamp / 1000,
+	    self->depth[arg0] * 2, "", stringof(this->class),
+	    stringof(this->method));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_flowtime.d b/external/cddl/dtracetoolkit/dist/Bin/j_flowtime.d
new file mode 100755
index 0000000..810e570
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_flowtime.d
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_flowtime.d - snoop Java execution with method flow and delta times.
+ *                Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_flowtime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_flowtime.d		# hit Ctrl-C to end
+ *
+ * This watches Java method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		TID		Thread ID
+ *		TIME(us)	Time since boot (us)
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		CLASS.METHOD	Java class and method name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ * Changes in TID will appear to shuffle output, as we change from one thread
+ * depth to the next. See Docs/Notes/ALLjavaflow.txt for additional notes.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/* increasing bufsize can reduce drops */
+#pragma D option bufsize=16m
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth[int];
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s/%-5s %-16s %9s -- %s\n", "C", "PID", "TID", "TIME(us)",
+	    "DELTA(us)", "CLASS.METHOD");
+}
+
+hotspot*:::method-entry,
+hotspot*:::method-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+hotspot*:::method-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	printf("%3d %6d/%-5d %-16d %9d %*s-> %s.%s\n", cpu, pid, tid,
+	    timestamp / 1000, this->delta, self->depth[arg0] * 2, "",
+	    stringof(this->class), stringof(this->method));
+	self->depth[arg0]++;
+	self->last = timestamp;
+}
+
+hotspot*:::method-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	self->depth[arg0] -= self->depth[arg0] > 0 ? 1 : 0;
+	printf("%3d %6d/%-5d %-16d %9d %*s<- %s.%s\n", cpu, pid, tid,
+	    timestamp / 1000, this->delta, self->depth[arg0] * 2, "",
+	    stringof(this->class), stringof(this->method));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_methodcalls.d b/external/cddl/dtracetoolkit/dist/Bin/j_methodcalls.d
new file mode 100755
index 0000000..e73f486
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_methodcalls.d
@@ -0,0 +1,60 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_methodcalls.d - count Java method calls DTrace.
+ *                   Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_methodcalls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_methodcalls.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		COUNT		Number of calls during sample
+ *		CLASS.METHOD	Java class and method name
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot*:::method-entry
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+	@calls[pid, this->name] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s %8s %s\n", "PID", "COUNT", "CLASS.METHOD");
+	printa(" %6d %@8d %s\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_objnew.d b/external/cddl/dtracetoolkit/dist/Bin/j_objnew.d
new file mode 100755
index 0000000..31a268b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_objnew.d
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_objnew.d - report Java object allocation using DTrace.
+ *              Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_objnew.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_objnew.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		OBJS		Number of objects created
+ *		CLASS.METHOD	Java class and method name
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot*:::object-alloc
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	@objs[pid, stringof(this->class)] = count();
+	@dist[pid, stringof(this->class)] = quantize(arg3);
+}
+
+dtrace:::END
+{
+	printf("Java object allocation byte distributions by pid and class,\n");
+	printa(@dist);
+
+	printf("Java object allocation count by pid and class,\n\n");
+	printf(" %6s %8s %s\n", "PID", "OBJS", "CLASS");
+	printa(" %6d %8@d %s\n", @objs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_package.d b/external/cddl/dtracetoolkit/dist/Bin/j_package.d
new file mode 100755
index 0000000..72b9caf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_package.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_package.d - count Java class loads by package using DTrace.
+ *               Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_package.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0).
+ *
+ * USAGE: j_package.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		LOADS		Class loads during trace
+ *		PACKAGE		Package name from class
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot*:::class-loaded
+{
+	this->class = (char *)copyin(arg0, arg1 + 1);
+	this->class[arg1] = '\0';
+
+	@loads[pid, dirname(stringof(this->class))] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %8s  %s\n", "PID", "LOADS", "PACKAGE");
+	printa("   %6d %@8d  %s\n", @loads);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_profile.d b/external/cddl/dtracetoolkit/dist/Bin/j_profile.d
new file mode 100755
index 0000000..4c59f2e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_profile.d
@@ -0,0 +1,78 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * j_profile.d - sample stack traces with Java translations using DTrace.
+ *
+ * USAGE: j_profile.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ * $Id: j_profile.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ *
+ * This samples stack traces for the process specified. This stack trace
+ * will cross the JVM and system libraries, and insert translations for Java
+ * stack frames where appropriate. This is best explained with an example
+ * stack frame output,
+ *
+ *            Func_loop.func_c()V
+ *            Func_loop.func_b()V
+ *            Func_loop.func_a()V
+ *            Func_loop.main([Ljava/lang/String;)V
+ *            StubRoutines (1)
+ *            libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHan
+ *            libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmetho
+ *            libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJ
+ *            libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_j
+ *            libjvm.so`jni_CallStaticVoidMethod+0x15d
+ *            java`JavaMain+0xd30
+ *            libc.so.1`_thr_setup+0x52
+ *            libc.so.1`_lwp_start
+ *            101
+ *
+ * The lines at the top are Java frames, followed by the JVM (libjvm.so).
+ * The JVM symbols may be translated by passing the output through c++filt.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option jstackstrsize=1024
+
+/*
+ * Tunables
+ */
+#define DEPTH	10		/* stack depth, frames */
+#define RATE	101		/* sampling rate, Hertz */
+#define TOP	25		/* number of stacks to output */
+
+dtrace:::BEGIN
+{
+	printf("Sampling %d-level stacks at %d Hertz... Hit Ctrl-C to end.\n",
+	    DEPTH, RATE);
+}
+
+profile-RATE
+/pid == $target/
+{
+	@stacks[jstack(DEPTH)] = count();
+}
+
+dtrace:::END
+{
+	trunc(@stacks, TOP);
+	printf("Top %d most frequently sampled stacks,\n", TOP);
+	printa(@stacks);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_stat.d b/external/cddl/dtracetoolkit/dist/Bin/j_stat.d
new file mode 100755
index 0000000..f343f45
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_stat.d
@@ -0,0 +1,148 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_stat.d - Java operation stats using DTrace.
+ *            Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_stat.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0). Method calls and object allocation are only
+ * visible when using the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_stat.d [interval [count]]
+ *
+ * FIELDS:
+ *		EXEC/s		Java programs executed per second, including
+ *				those without Java provider support
+ *		THREAD/s	Threads created, per second
+ *		METHOD/s	Methods called, per second
+ *		OBJNEW/s	Objects created, per second
+ *		CLOAD/s		Class loads, per second
+ *		EXCP/s		Exceptions raised, per second
+ *		GC/s		Garbage collects, per second
+ *
+ * The numbers are per second counts for the interval specified. The default 
+ * interval is 1 second.
+ *
+ * If you see a count in "EXECS" but not in the other columns, then your
+ * Java software is probably not running with the DTrace hotspot provider.
+ *
+ * If you see counts in "CLOAD" but not in "METHODS", then you Java
+ * software probably isn't running with "+ExtendedDTraceProbes".
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+dtrace:::BEGIN
+{
+	execs = threads = methods = objnew = cload = gc = exception = 0;
+	lines = SCREEN + 1;
+	interval = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	secs = interval;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %6s %8s %8s %8s %8s %6s %6s\n", "TIME", "EXEC/s",
+	    "THREAD/s", "METHOD/s", "OBJNEW/s", "CLOAD/s", "EXCP/s", "GC/s");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Tally Data
+ */
+proc:::exec-success
+/execname == "java"/
+{
+	execs++;
+}
+
+hotspot*:::thread-start
+{
+	threads++;
+}
+
+hotspot*:::method-entry
+{
+	methods++;
+}
+
+hotspot*:::object-alloc
+{
+	oalloc++;
+}
+
+hotspot*:::class-loaded
+{
+	cload++;
+}
+
+hotspot*:::gc-begin
+{
+	gc++;
+}
+
+hotspot*:::ExceptionOccurred-entry
+{
+	exception++;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %6d %8d %8d %8d %8d %6d %6d\n", walltimestamp,
+	    execs / interval, threads / interval, methods / interval,
+	    oalloc / interval, cload / interval, exception / interval,
+	    gc / interval);
+	execs = threads = methods = oalloc = cload = gc = exception = 0;
+	secs = interval;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_syscalls.d b/external/cddl/dtracetoolkit/dist/Bin/j_syscalls.d
new file mode 100755
index 0000000..965867f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_syscalls.d
@@ -0,0 +1,68 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_syscalls.d - count Java methods and syscalls using DTrace.
+ *                Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_syscalls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Java methods if the hotspot provider exists (1.6.0) and
+ * the flag "+ExtendedDTraceProbes" is used. eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (method/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot$target:::method-entry
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+	@calls[pid, "method", this->name] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[pid, "syscall", probefunc] = count();
+}
+
+
+dtrace:::END
+{
+	printf(" %6s %-8s %-52s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa(" %6d %-8s %-52s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_syscolors.d b/external/cddl/dtracetoolkit/dist/Bin/j_syscolors.d
new file mode 100755
index 0000000..6007be6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_syscolors.d
@@ -0,0 +1,135 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_syscolors.d - trace Java method flow plus syscalls, in color.
+ *                 Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_syscolors.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Java methods if the hotspot provider exists (1.6.0) and
+ * the flag "+ExtendedDTraceProbes" is used. eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches Java method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		TID		Thread ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		TYPE		Type of call (func/syscall)
+ *		NAME		Java method or syscall name
+ *
+ * If the flow appears to jump, check the TID column - the JVM may have
+ * switched to another thread.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ * Changes in TID will appear to shuffle output, as we change from one thread
+ * depth to the next. See Docs/Notes/ALLjavaflow.txt for additional notes.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/* increasing bufsize can reduce drops */
+#pragma D option bufsize=32m
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth[int];
+
+dtrace:::BEGIN
+{
+        color_java = "\033[2;35m";		/* violet, faint */
+        color_line = "\033[1;35m";		/* violet, bold */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%3s %6s/%-5s %9s %-8s -- %s\n", "C", "PID", "TID", "DELTA(us)",
+	    "TYPE", "NAME");
+}
+
+hotspot$target:::method-entry,
+hotspot$target:::method-return,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+hotspot$target:::method-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	printf("%s%3d %6d/%-5d %9d %-8s %*s-> %s.%s%s\n", color_java, cpu,
+	    pid, tid, this->delta, "method", self->depth[arg0] * 2, "",
+	    stringof(this->class), stringof(this->method), color_off);
+	self->depth[arg0]++;
+	self->depthlast = self->depth[arg0];
+	self->last = timestamp;
+}
+
+hotspot$target:::method-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	self->depth[arg0] -= self->depth[arg0] > 0 ? 1 : 0;
+	printf("%s%3d %6d/%-5d %9d %-8s %*s<- %s.%s%s\n", color_java, cpu,
+	    pid, tid, this->delta, "method", self->depth[arg0] * 2, "",
+	    stringof(this->class), stringof(this->method), color_off);
+	self->depthlast = self->depth[arg0];
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d/%-5d %9d %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, tid, this->delta, "syscall", self->depthlast * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d/%-5d %9d %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, tid, this->delta, "syscall", self->depthlast * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_thread.d b/external/cddl/dtracetoolkit/dist/Bin/j_thread.d
new file mode 100755
index 0000000..fef3928
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_thread.d
@@ -0,0 +1,64 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_thread.d - snoop Java thread execution using DTrace.
+                Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_thread.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0).
+ *
+ * USAGE: j_thread.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		TIME		Time string
+ *		PID		Process ID
+ *		TID		Thread ID
+ *		THREAD		Thread name
+ *
+ * LEGEND:
+ *		=>		thread start
+ *		<=		thread end
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+dtrace:::BEGIN
+{
+	printf("%-20s  %6s/%-5s -- %s\n", "TIME", "PID", "TID", "THREAD");
+}
+
+hotspot*:::thread-start
+{
+	this->thread = (char *)copyin(arg0, arg1 + 1);
+	this->thread[arg1] = '\0';
+	printf("%-20Y  %6d/%-5d => %s\n", walltimestamp, pid, tid,
+	    stringof(this->thread));
+}
+
+hotspot*:::thread-stop
+{
+	this->thread = (char *)copyin(arg0, arg1 + 1);
+	this->thread[arg1] = '\0';
+	printf("%-20Y  %6d/%-5d <= %s\n", walltimestamp, pid, tid,
+	    stringof(this->thread));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/j_who.d b/external/cddl/dtracetoolkit/dist/Bin/j_who.d
new file mode 100755
index 0000000..faa9e73
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/j_who.d
@@ -0,0 +1,58 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_who.d - trace Java calls by process using DTrace.
+ *           Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_who.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0).
+ *
+ * USAGE: j_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of Java
+ *		UID		User ID of the owner
+ *		CALLS		Number of calls made (a measure of activity)
+ *		ARGS		Process name and arguments
+ *
+ * The argument list is truncated at 55 characters (up to 80 is easily
+ * available). To easily read the full argument list, use other system tools;
+ * on Solaris use "pargs PID".
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot*:::Call*-entry
+{
+	@calls[pid, uid, curpsinfo->pr_psargs] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %-55s\n", "PID", "UID", "CALLS", "ARGS");
+	printa("   %6d %6d %@6d %-55.55s\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/js_calldist.d b/external/cddl/dtracetoolkit/dist/Bin/js_calldist.d
new file mode 100755
index 0000000..8ac9c7c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/js_calldist.d
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_calldist.d - measure JavaScript elapsed times for types of operation.
+ *                 Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_calldist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces JavaScript activity from all browsers running on the system with
+ * JavaScript provider support.
+ *
+ * USAGE: js_calldist.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		1		Filename of the JavaScript program
+ *		2		Type of call (func/obj-new)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+javascript*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg2);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+javascript*:::object-create-start
+{
+	self->object = timestamp;
+}
+
+javascript*:::object-create-done
+/self->object/
+{
+	this->elapsed = timestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types[this->file, "obj-new", this->name] =
+	    quantize(this->elapsed / 1000);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("\nElapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("\nExclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/js_calls.d b/external/cddl/dtracetoolkit/dist/Bin/js_calls.d
new file mode 100755
index 0000000..6f1bb57
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/js_calls.d
@@ -0,0 +1,76 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_calls.d - count JavaScript calls using DTrace.
+ *              Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_calls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all browsers on the system that are
+ * running with JavaScript provider support.
+ *
+ * USAGE: js_calls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the JavaScript program
+ *		TYPE		Type of call (func/obj-new/...)
+ *		NAME		Descriptive name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+        printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	this->name = copyinstr(arg2);
+        @calls[basename(copyinstr(arg0)), "func", this->name] = count();
+}
+
+javascript*:::execute-start
+{
+	this->filename = basename(copyinstr(arg0));
+        @calls[this->filename, "exec", "."] = count();
+}
+
+javascript*:::object-create-start
+{
+	this->name = copyinstr(arg1);
+	this->filename = basename(copyinstr(arg0));
+        @calls[this->filename, "obj-new", this->name] = count();
+}
+
+javascript*:::object-finalize
+{
+	this->name = copyinstr(arg1);
+        @calls["<null>", "obj-free", this->name] = count();
+}
+
+dtrace:::END
+{
+        printf(" %-24s %-10s %-30s %8s\n", "FILE", "TYPE", "NAME", "CALLS");
+        printa(" %-24s %-10s %-30s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/js_calltime.d b/external/cddl/dtracetoolkit/dist/Bin/js_calltime.d
new file mode 100755
index 0000000..7df164d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/js_calltime.d
@@ -0,0 +1,115 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_calltime.d - measure JavaScript elapsed times for types of operation.
+ *                 Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_calltime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces JavaScript activity from all browsers running on the system with
+ * JavaScript provider support.
+ *
+ * USAGE: js_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the JavaScript program
+ *		TYPE		Type of call (func/obj-new/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+javascript*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg2);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+javascript*:::object-create-start
+{
+	self->object = timestamp;
+}
+
+javascript*:::object-create-done
+/self->object/
+{
+	this->elapsed = timestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "obj-new", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types[this->file, "obj-new", this->name] = sum(this->elapsed);
+	@types["-", "total", "-"] = sum(this->elapsed);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nElapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/js_cpudist.d b/external/cddl/dtracetoolkit/dist/Bin/js_cpudist.d
new file mode 100755
index 0000000..ea39921
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/js_cpudist.d
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_cpudist.d - measure JavaScript on-CPU times for types of operation.
+ *                 Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_cpudist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces JavaScript activity from all browsers running on the system with
+ * JavaScript provider support.
+ *
+ * USAGE: js_cpudist.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		1		Filename of the JavaScript program
+ *		2		Type of call (func/obj-new)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+javascript*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg2);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+javascript*:::object-create-start
+{
+	self->object = vtimestamp;
+}
+
+javascript*:::object-create-done
+/self->object/
+{
+	this->oncpu = vtimestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types[this->file, "obj-new", this->name] =
+	    quantize(this->oncpu / 1000);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+dtrace:::END
+{
+	printf("\nElapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("\nExclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/js_cputime.d b/external/cddl/dtracetoolkit/dist/Bin/js_cputime.d
new file mode 100755
index 0000000..a00dfc4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/js_cputime.d
@@ -0,0 +1,115 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_cputime.d - measure JavaScript on-CPU times for types of operation.
+ *                Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_cputime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces JavaScript activity from all browsers running on the system with
+ * JavaScript provider support.
+ *
+ * USAGE: js_cputime.d	 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the JavaScript program
+ *		TYPE		Type of call (func/obj-new/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+javascript*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg2);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+javascript*:::object-create-start
+{
+	self->object = vtimestamp;
+}
+
+javascript*:::object-create-done
+/self->object/
+{
+	this->oncpu = vtimestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "obj-new", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types[this->file, "obj-new", this->name] = sum(this->oncpu);
+	@types["-", "total", "-"] = sum(this->oncpu);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nElapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/js_execs.d b/external/cddl/dtracetoolkit/dist/Bin/js_execs.d
new file mode 100755
index 0000000..8a1e9f2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/js_execs.d
@@ -0,0 +1,51 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_execs.d - JavaScript execute snoop using DTrace.
+ *              Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_execs.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all browsers on the system that are
+ * running with JavaScript provider support.
+ *
+ * USAGE: js_execs.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		TIME		Time of event
+ *		FILE		Filename of the JavaScript program
+ *		LINENO		Line number in filename
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+dtrace:::BEGIN
+{
+	printf("%-20s  %32s:%s\n", "TIME", "FILE", "LINENO");
+}
+
+javascript*:::execute-start
+{
+	printf("%-20Y  %32s:%d\n", walltimestamp, basename(copyinstr(arg0)),
+	    arg1);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/js_flow.d b/external/cddl/dtracetoolkit/dist/Bin/js_flow.d
new file mode 100755
index 0000000..548ea30
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/js_flow.d
@@ -0,0 +1,69 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_flow.d - snoop JavaScript execution showing function flow using DTrace.
+ *             Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_flow.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all browsers on the system that are running
+ * with JavaScript provider support.
+ *
+ * USAGE: js_flow.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		FUNC		Function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-22s -- %s\n", "C", "TIME(us)", "FILE", "FUNC");
+}
+
+javascript*:::function-entry
+{
+	printf("%3d %-16d %-22s %*s-> %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg2));
+	self->depth++;
+}
+
+javascript*:::function-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-22s %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg2));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/js_flowinfo.d b/external/cddl/dtracetoolkit/dist/Bin/js_flowinfo.d
new file mode 100755
index 0000000..5613611
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/js_flowinfo.d
@@ -0,0 +1,86 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_flowinfo.d - JavaScript function flow with info using DTrace.
+ *                 Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_flowinfo.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all browsers on the system that are running
+ * with JavaScript provider support.
+ *
+ * USAGE: js_flowinfo.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the JavScript program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func)
+ *		FUNC		Function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "FUNC");
+}
+
+javascript*:::function-info,
+javascript*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+javascript*:::function-info
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg4)), arg5, "func",
+	    self->depth * 2, "", copyinstr(arg2));
+	self->depth++;
+	self->last = timestamp;
+}
+
+javascript*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s<- %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "func", self->depth * 2,
+	    "", copyinstr(arg2));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/js_flowtime.d b/external/cddl/dtracetoolkit/dist/Bin/js_flowtime.d
new file mode 100755
index 0000000..2c1bef3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/js_flowtime.d
@@ -0,0 +1,84 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_flowtime.d - JavaScript function flow with delta times using DTrace.
+ *                 Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_flowtime.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * This traces activity from all browsers on the system that are running
+ * with JavaScript provider support.
+ *
+ * USAGE: js_flowtime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FUNC		Function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-18s %9s -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "FUNC");
+}
+
+javascript*:::function-entry,
+javascript*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+javascript*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-18s %9d %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), this->delta, self->depth * 2, "",
+	    copyinstr(arg2));
+	self->depth++;
+	self->last = timestamp;
+}
+
+javascript*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-18s %9d %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), this->delta, self->depth * 2, "",
+	    copyinstr(arg2));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/js_objcpu.d b/external/cddl/dtracetoolkit/dist/Bin/js_objcpu.d
new file mode 100755
index 0000000..4e94181
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/js_objcpu.d
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_objcpu.d - measure JavaScript object creation on-CPU time using DTrace.
+ *               Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_objcpu.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces JavaScript activity from all browsers running on the system
+ * with JavaScript provider support.
+ *
+ * USAGE: js_objcpu.d	 	# hit Ctrl-C to end
+ *
+ * Class names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::object-create-start
+{
+	self->vstart = vtimestamp;
+}
+
+javascript*:::object-create-done
+/self->vstart/
+{
+	this->oncpu = vtimestamp - self->vstart;
+	@total = sum(this->oncpu);
+	@dist[copyinstr(arg1)] = quantize(this->oncpu / 1000);
+	self->vstart = 0;
+}
+
+dtrace:::END
+{
+	normalize(@total, 1000000);
+	printa("Total object creation on-CPU time (ms): %@d\n\n", @total);
+	printf("Object creation on-CPU time distributions (us),\n");
+	printa(@dist);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/js_objgc.d b/external/cddl/dtracetoolkit/dist/Bin/js_objgc.d
new file mode 100755
index 0000000..1263f1b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/js_objgc.d
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_objgc.d - trace JavaScript Object GC using DTrace.
+ *              Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_objgc.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * This traces JavaScript activity from all running browers on the system
+ * which support the JavaScript DTrace provider.
+ *
+ * USAGE: js_objgc.d		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename that contained the function
+ *		CLASS		Class to which this new object belongs
+ *		TOTAL		Object entropy (positive == uncollected)
+ *
+ * This script provides information on which objects are not being garbage
+ * collected, an issue which causes the browser to steadily leak memory.
+ * We trace object creation (+1) and destruction (-1), and provide a
+ * summary each second of the running tally of the object class and
+ * originating filename. If over the period of several minutes an object
+ * type is still steadily increasing, then that would be of interest.
+ * Be patient, depending on the rate of object creation it can take over
+ * ten minutes for garbage collect to kick in.
+ *
+ * NOTES:
+ * - it is possible that you will see negative entropy. That happens
+ * when you begin tracing after some objects have already been created,
+ * and then trace their destruction.
+ * - there are other Things that GC handles, other than Objects; extra
+ * probes can be added to trace them, should the need arise.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/* if you get dynvardrops, increase this, */
+#pragma D option dynvarsize=32m
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::object-create
+/arg2/
+{
+	this->file = basename(copyinstr(arg0));
+	@objs[this->file, copyinstr(arg1)] = sum(1);
+	filename[arg2] = this->file;
+}
+
+javascript*:::object-finalize
+/filename[arg2] == NULL/
+{
+	@objs["<missed>", copyinstr(arg1)] = sum(-1);
+}
+
+javascript*:::object-finalize
+/filename[arg2] != NULL/
+{
+	@objs[filename[arg2], copyinstr(arg1)] = sum(-1);
+	filename[arg2] = 0;
+}
+
+profile:::tick-1sec,
+dtrace:::END
+{
+	printf("\n %-24s %8s %-20s %23Y\n", "FILE", "TOTAL", "CLASS",
+	    walltimestamp);
+	printa(" %-24.24s %@8d %s\n", @objs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/js_objnew.d b/external/cddl/dtracetoolkit/dist/Bin/js_objnew.d
new file mode 100755
index 0000000..3a2c342
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/js_objnew.d
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_objnew.d - count JavaScript object creation using DTrace.
+ *               Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_objnew.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces JavaScript activity from all browsers running on the system
+ * with JavaScript provider support.
+ *
+ * USAGE: js_objnew.d	 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the JavaScript program
+ *		CLASS		Class of new object
+ *		COUNT		Number of object creations during tracing
+ *
+ * Filename and class names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::object-create-done
+{
+	@objs[basename(copyinstr(arg0)), copyinstr(arg1)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-24s %-36s %8s\n", "FILE", "CLASS", "COUNT");
+	printa(" %-24.24s %-36s %@8d\n", @objs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/js_stat.d b/external/cddl/dtracetoolkit/dist/Bin/js_stat.d
new file mode 100755
index 0000000..e60c8a9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/js_stat.d
@@ -0,0 +1,120 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_stat.d - JavaScript operation stats using DTrace.
+ *             Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_stat.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all browsers on the system that are
+ * running with JavaScript provider support.
+ *
+ * USAGE: js_stat.d [interval [count]]
+ *
+ * FIELDS:
+ *		EXEC/s		JavaScript programs executed per second
+ *		FUNCS/s		Functions called, per second
+ *		OBJNEW/s	Objects created, per second
+ *		OBJFRE/s	Objects freed (finalize), per second
+ *
+ * The numbers are counts for the interval specified. The default interval
+ * is 1 second.
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+dtrace:::BEGIN
+{
+	execs = funcs = objnew = objfree = 0;
+	lines = SCREEN + 1;
+	interval = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	secs = interval;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %8s %8s %8s %8s\n", "TIME", "EXEC/s", "FUNC/s",
+	    "OBJNEW/s", "OBJFRE/s");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Tally Data
+ */
+javascript*:::execute-start
+{
+	execs++;
+}
+
+javascript*:::function-entry
+{
+	funcs++;
+}
+
+javascript*:::object-create-start
+{
+	objnew++;
+}
+
+javascript*:::object-finalize
+{
+	objfree++;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %8d %8d %8d %8d\n", walltimestamp, execs / interval,
+	    funcs / interval, objnew / interval, objfree / interval);
+	execs = funcs = objnew = objfree = 0;
+	secs = interval;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/js_who.d b/external/cddl/dtracetoolkit/dist/Bin/js_who.d
new file mode 100755
index 0000000..dd7b702
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/js_who.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_who.d - trace JavaScript function execution by process using DTrace.
+ *            Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_who.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * This traces JavaScript activity from all browsers on the system that are
+ * running with JavaScript provider support.
+ *
+ * USAGE: js_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of JavaScript
+ *		UID		User ID of the owner
+ *		FUNCS		Number of function calls
+ *		FILE		Pathname of the JavaScript program
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	@funcs[pid, uid, copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %s\n", "PID", "UID", "FUNCS", "FILE");
+	printa("   %6d %6d %@6d %s\n", @funcs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/kill.d b/external/cddl/dtracetoolkit/dist/Bin/kill.d
new file mode 100755
index 0000000..8f09495b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/kill.d
@@ -0,0 +1,63 @@
+#!/usr/sbin/dtrace -qs
+/*
+ * kill.d - watch process signals as they are sent (eg, kill -9).
+ *          Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: kill.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       kill.d
+ *
+ * FIELDS:
+ *              FROM     source PID
+ *              COMMAND  source command name
+ *              TO       destination PID
+ *              SIG      destination signal ("9" for a kill -9)
+ *              RESULT   result of signal (-1 is for failure)
+ *
+ * SEE ALSO: Chapter 25, Solaris Dynamic Tracing Guide, docs.sun.com,
+ *           for a solution using proc:::signal-send.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-May-2004  Brendan Gregg   Created this.
+ * 28-Jun-2005	   "      "	Last update.
+ */
+
+dtrace:::BEGIN
+{
+	/* Print header */
+	printf("%5s %12s %5s %-6s %s\n",
+	    "FROM", "COMMAND", "SIG", "TO", "RESULT");
+}
+
+syscall::kill:entry
+{
+	/* Record target PID and signal */
+	self->target = arg0;
+	self->signal = arg1;
+}
+
+syscall::kill:return
+{
+	/* Print source, target, and result */
+	printf("%5d %12s %5d %-6d %d\n",
+	    pid, execname, self->signal, self->target, (int)arg0);
+
+	/* Cleanup memory */
+	self->target = 0;
+	self->signal = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/kstat_types.d b/external/cddl/dtracetoolkit/dist/Bin/kstat_types.d
new file mode 100755
index 0000000..9f70225
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/kstat_types.d
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -Cs
+/*
+ * kstat_types.d - Trace kstat reads with type info.
+ *                 Written using DTrace (Solaris 10 3/05)
+ *
+ * kstat is the Kernel Statistics framework, which is used by tools
+ * such as vmstat, iostat, mpstat and sar. Try running vmstat while
+ * kstat_types.d is tracing - you should see details of the kstat
+ * reads performed.
+ *
+ * $Id: kstat_types.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE:	kstat_types.d	(early release, check for updates)
+ *
+ * FIELDS:
+ *		CMD		command name
+ *		CLASS		kstat class (ks_class)
+ *		TYPE		kstat type as a string (ks_type)
+ *		MOD:INS:NAME	kstat module:instance:name
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 11-Feb-2006	Brendan Gregg	Created this.
+ * 11-Feb-2006	   "      "	Last update.
+ */
+
+#include <sys/isa_defs.h>
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("%-16s %-16s %-6s %s\n",
+	    "CMD", "CLASS", "TYPE", "MOD:INS:NAME");
+}
+
+fbt::read_kstat_data:entry
+{
+#ifdef _MULTI_DATAMODEL
+	self->uk = (kstat32_t *)copyin((uintptr_t)arg1, sizeof (kstat32_t));
+#else
+	self->uk = (kstat_t *)copyin((uintptr_t)arg1, sizeof (kstat_t));
+#endif
+	printf("%-16s %-16s %-6s %s:%d:%s\n", execname,
+	    self->uk->ks_class == "" ? "." : self->uk->ks_class,
+	    self->uk->ks_type == 0 ? "raw"
+	    :  self->uk->ks_type == 1 ? "named"
+	    :  self->uk->ks_type == 2 ? "intr"
+	    :  self->uk->ks_type == 3 ? "io"
+	    :  self->uk->ks_type == 4 ? "timer" : "?",
+	    self->uk->ks_module, self->uk->ks_instance, self->uk->ks_name);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/lastwords b/external/cddl/dtracetoolkit/dist/Bin/lastwords
new file mode 100755
index 0000000..6ae0900
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/lastwords
@@ -0,0 +1,90 @@
+#!/usr/bin/ksh
+#
+# lastwords - print last few syscalls for dying processes.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# $Id: lastwords,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# This prints the last few system calls for processes matching
+# the given name, when they exit. This makes use of a ring buffer
+# so that the impact on the system is minimised.
+#
+# USAGE: lastwords command
+#    eg,
+#        lastwords netscape
+#
+# FIELDS:
+#           TIME     Time of syscall return, ns
+#           PID      Process ID
+#           EXEC     Process name (execname)
+#           SYSCALL  System call
+#           RETURN   Return value for system call
+#           ERR      errno for system call
+#
+# BASED ON: /usr/demo/dtrace/ring.d
+#
+# SEE ALSO: DTrace Guide "Buffers and Buffering" chapter (docs.sun.com)
+#           dtruss (DTraceToolkit)
+#
+# PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 09-Jun-2005	Brendan Gregg	Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+### Usage
+function usage
+{
+	cat <<-END >&2
+	USAGE: lastwords command
+	   eg,
+	       lastwords netscape
+	END
+	exit 1
+}
+
+### Process arguments
+if (( $# != 1 )); then
+        usage
+fi
+command=$1
+
+print "Tracing... Waiting for $command to exit..."
+
+### Run DTrace
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+ #pragma D option bufpolicy=ring
+ #pragma D option bufsize=16k
+
+ syscall:::return
+ /execname == $$1/
+ {
+	/* buffer syscall details */
+	printf("%-18d %5d %12s %12s %10x %3d\n",
+	    timestamp,pid,execname,probefunc,(int)arg0,errno);
+ }
+
+ proc::proc_exit:exit
+ /execname == $$1/
+ {
+	/* print, erm, footer */
+	printf("%-18s %5s %12s %12s %10s %3s\n",
+	    "TIME","PID","EXEC","SYSCALL","RETURN","ERR");
+	exit(0);
+ }
+' "$command"
diff --git a/external/cddl/dtracetoolkit/dist/Bin/loads.d b/external/cddl/dtracetoolkit/dist/Bin/loads.d
new file mode 100755
index 0000000..a301532
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/loads.d
@@ -0,0 +1,58 @@
+#!/usr/sbin/dtrace -s
+/*
+ * loads.d - print load averages. Written using DTrace (Solaris 10 3/05).
+ *
+ * These are the same load averages that the "uptime" command prints.
+ * The purpose of this script is to demonstrate fetching these values
+ * from the DTrace language.
+ *
+ * $Id: loads.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	loads.d
+ *
+ * SEE ALSO:	uptime(1)
+ *
+ * The first field is the 1 minute average, the second is the 5 minute,
+ * and the third is the 15 minute average. The value represents the average
+ * number of runnable threads in the system, a value higher than your
+ * CPU (core/hwthread) count may be a sign of CPU saturation.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 10-Jun-2005	Brendan Gregg	Created this.
+ * 10-Jun-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	/* fetch load averages */
+	this->load1a  = `hp_avenrun[0] / 65536;
+	this->load5a  = `hp_avenrun[1] / 65536;
+	this->load15a = `hp_avenrun[2] / 65536;
+	this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+	this->load5b  = ((`hp_avenrun[1] % 65536) * 100) / 65536;
+	this->load15b = ((`hp_avenrun[2] % 65536) * 100) / 65536;
+
+	/* print load average */
+	printf("%Y,  load average: %d.%02d, %d.%02d, %d.%02d\n",
+	    walltimestamp, this->load1a, this->load1b, this->load5a,
+	    this->load5b, this->load15a, this->load15b);
+
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/lockbydist.d b/external/cddl/dtracetoolkit/dist/Bin/lockbydist.d
new file mode 100755
index 0000000..f683072
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/lockbydist.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * lockbydist.d - lock distrib. by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: lockbydist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ */
+
+lockstat:::adaptive-block { @time[execname] = quantize(arg1); }
diff --git a/external/cddl/dtracetoolkit/dist/Bin/lockbyproc.d b/external/cddl/dtracetoolkit/dist/Bin/lockbyproc.d
new file mode 100755
index 0000000..179fcfb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/lockbyproc.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * lockbyproc.d - lock time by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: lockbyproc.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ */
+
+lockstat:::adaptive-block { @time[execname] = sum(arg1); }
diff --git a/external/cddl/dtracetoolkit/dist/Bin/minfbypid.d b/external/cddl/dtracetoolkit/dist/Bin/minfbypid.d
new file mode 100755
index 0000000..c116236
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/minfbypid.d
@@ -0,0 +1,57 @@
+#!/usr/sbin/dtrace -s
+/*
+ * minfbypid.d - minor faults by PID.
+ *               Written using DTrace (Solaris 10 3/05)
+ *
+ * This program prints a report of minor faults by PID. Minor faults are
+ * an indiction of memory consumption. This script could be used to help
+ * determine which process was consuming the most memory during the sample.
+ *
+ * $Id: minfbypid.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	minfbypid.d		# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		process name
+ *		MINFAULTS	number of minor faults
+ *
+ * This is based on a script from DExplorer.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+vminfo:::as_fault
+{
+	@mem[pid, execname] = sum(arg0);
+}
+
+dtrace:::END
+{
+	printf("%6s %-16s %16s\n", "PID", "CMD", "MINFAULTS");
+	printa("%6d %-16s %@16d\n", @mem);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/minfbyproc.d b/external/cddl/dtracetoolkit/dist/Bin/minfbyproc.d
new file mode 100755
index 0000000..d8b94d4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/minfbyproc.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * minfbyproc.d - minor faults by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: minfbyproc.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ */
+
+vminfo:::as_fault { @mem[execname] = sum(arg0); }
diff --git a/external/cddl/dtracetoolkit/dist/Bin/mmapfiles.d b/external/cddl/dtracetoolkit/dist/Bin/mmapfiles.d
new file mode 100755
index 0000000..bc87fa6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/mmapfiles.d
@@ -0,0 +1,62 @@
+#!/usr/sbin/dtrace -s
+/*
+ * mmapfiles.d - mmap'd files by process.
+ *               Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: mmapfiles.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       mmapfiles.d    # hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		MMAPS		number of mmaps
+ *		CMD		process name
+ *		PATHNAME	pathname of mmap'd file
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 18-Oct-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+syscall::mmap:entry
+/(int)arg4 > 0/
+{
+	/*
+	 * Fetch filename
+	 */
+	this->filep = curthread->t_procp->p_user.u_finfo.fi_list[arg4].uf_file;
+	this->vnodep = this->filep != 0 ? this->filep->f_vnode : 0;
+	self->vpath = this->vnodep ? (this->vnodep->v_path != 0 ?
+	    cleanpath(this->vnodep->v_path) : "<unknown>") : "<unknown>";
+
+	/* Store Details */
+	@hits[execname, self->vpath] = count();
+}
+
+dtrace:::END
+{
+	/* Print Details */
+	printf("%5s %-16s %s\n", "MMAPS", "CMD", "PATHNAME");
+	printa("%@5d %-16s %s\n", @hits);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/modcalls.d b/external/cddl/dtracetoolkit/dist/Bin/modcalls.d
new file mode 100755
index 0000000..602a337
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/modcalls.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * modcalls.d - kernel function calls by module. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: modcalls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ */
+
+fbt:::entry { @calls[probemod] = count(); }
diff --git a/external/cddl/dtracetoolkit/dist/Bin/newproc.d b/external/cddl/dtracetoolkit/dist/Bin/newproc.d
new file mode 100755
index 0000000..dc7eb62
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/newproc.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * newproc.d - snoop new processes as they are executed. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: newproc.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ */
+
+proc:::exec-success { trace(curpsinfo->pr_psargs); }
diff --git a/external/cddl/dtracetoolkit/dist/Bin/nfswizard.d b/external/cddl/dtracetoolkit/dist/Bin/nfswizard.d
new file mode 100755
index 0000000..6949679
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/nfswizard.d
@@ -0,0 +1,102 @@
+#!/usr/sbin/dtrace -s
+/*
+ * nfswizard.d - nfs client activity wizard.
+ *               Written using DTrace (Solaris 10 3/05).
+ *
+ * This examines activity caused by NFS client processes on the same server
+ * that you are running this script on. A detailed report is generated
+ * to explain various details of NFS client activity, including response
+ * times and file access.
+ *
+ * $Id: nfswizard.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE:     nfswizard.d    # hit Ctrl-C to end sample
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 02-Dec-2005  Brendan Gregg   Created this.
+ * 20-Apr-2006	   "	  "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	scriptstart = walltimestamp;
+	timestart = timestamp;
+}
+
+io:nfs::start
+{
+	/* tally file sizes */
+	@file[args[2]->fi_pathname] = sum(args[0]->b_bcount);
+
+	/* time response */
+	start[args[0]->b_addr] = timestamp;
+
+	/* overall stats */
+	@rbytes = sum(args[0]->b_flags & B_READ ? args[0]->b_bcount : 0);
+	@wbytes = sum(args[0]->b_flags & B_READ ? 0 : args[0]->b_bcount);
+	@events = count();
+}
+
+io:nfs::done
+/start[args[0]->b_addr]/
+{
+	/* calculate and save response time stats */
+	this->elapsed = timestamp - start[args[0]->b_addr];
+	@maxtime = max(this->elapsed);
+	@avgtime = avg(this->elapsed);
+	@qnztime = quantize(this->elapsed / 1000);
+}
+
+dtrace:::END
+{
+	/* print header */
+	printf("NFS Client Wizard. %Y -> %Y\n\n", scriptstart, walltimestamp);
+
+	/* print read/write stats */
+	printa("Read:  %@d bytes ", @rbytes);
+	normalize(@rbytes, 1000000);
+	printa("(%@d Mb)\n", @rbytes);
+	printa("Write: %@d bytes ", @wbytes);
+	normalize(@wbytes, 1000000);
+	printa("(%@d Mb)\n\n", @wbytes);
+
+	/* print throughput stats */
+	denormalize(@rbytes);
+	normalize(@rbytes, (timestamp - timestart) / 1000000);
+	printa("Read:  %@d Kb/sec\n", @rbytes);
+	denormalize(@wbytes);
+	normalize(@wbytes, (timestamp - timestart) / 1000000);
+	printa("Write: %@d Kb/sec\n\n", @wbytes);
+
+	/* print time stats */
+	printa("NFS I/O events:    %@d\n", @events);
+	normalize(@avgtime, 1000000);
+	printa("Avg response time: %@d ms\n", @avgtime);
+	normalize(@maxtime, 1000000);
+	printa("Max response time: %@d ms\n\n", @maxtime);
+	printa("Response times (us):%@d\n", @qnztime);
+
+	/* print file stats */
+	printf("Top 25 files accessed (bytes):\n");
+	printf("   %-64s %s\n", "PATHNAME", "BYTES");
+	trunc(@file, 25);
+	printa("   %-64s %@d\n", @file);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/opensnoop b/external/cddl/dtracetoolkit/dist/Bin/opensnoop
new file mode 100755
index 0000000..c83d037
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/opensnoop
@@ -0,0 +1,244 @@
+#!/bin/sh
+#
+# opensnoop - snoop file opens as they occur.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# $Id: opensnoop,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	opensnoop [-a|-A|-ceghsvxZ] [-f pathname] [-n name] [-p PID]
+#
+#		opensnoop	# default output
+#
+#		-a		# print most data
+#		-A		# dump all data, space delimited
+#		-c		# print cwd of process
+#		-e		# print errno value
+#		-g		# print command arguments
+#		-s		# print start time, us
+#		-v		# print start time, string
+#		-x		# only print failed opens
+#		-Z		# print zonename
+#		-f pathname	# file pathname to snoop
+#		-n name		# command name to snoop
+#		-p PID		# process ID to snoop
+#	eg,
+#		opensnoop -v			# human readable timestamps
+#		opensnoop -e			# see error codes
+#		opensnoop -f /etc/passwd	# snoop this file only
+# 	
+# FIELDS:
+#		ZONE		Zone name
+#		UID		User ID
+#		PID		Process ID
+#		PPID		Parent Process ID
+#		FD		file descriptor (-1 for error)
+#		ERR		errno value (see /usr/include/sys/errno.h)
+#		CWD		print current working directory of process
+#		PATH		pathname for file open
+#		COMM		command name for the process
+#		ARGS		argument listing for the process
+#		TIME		timestamp for the open event, us
+#		STRTIME		timestamp for the open event, string
+#
+# SEE ALSO: truss, BSM auditing.
+#
+# COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 09-May-2004	Brendan Gregg	Created this.
+# 21-Jan-2005	   "	  "	Wrapped in sh to provide options.
+# 08-May-2005	   "      "	Rewritten for performance.
+# 14-May-2005	   "      "	Added errno.
+# 28-Jun-2005	   "      "	Added cwd, zonename.
+# 17-Sep-2005	   "      "	Increased switchrate, fixed page fault bug.
+# 16-Jan-2006	   "	  "	Added -n, -p.
+# 16-Jan-2006	   "	  "	Last update.
+# 
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_dump=0; opt_file=0; opt_time=0; opt_timestr=0; opt_args=0
+opt_zone=0; opt_cwd=0; opt_failonly=0; opt_err=0; filter=0; pathname=.
+opt_name=0; opt_pid=0; pname=.; pid=0
+
+### Process options
+while getopts aAcef:ghn:p:svxZ name
+do
+	case $name in
+	a)	opt_time=1; opt_timestr=1; opt_args=1; opt_err=1 ;;
+	A)	opt_dump=1 ;;
+	c)	opt_cwd=1 ;;
+	e)	opt_err=1 ;;
+	g)	opt_args=1 ;;
+	f)	opt_file=1; pathname=$OPTARG ;;
+	n)	opt_name=1; pname=$OPTARG ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	s)	opt_time=1 ;;
+	v)	opt_timestr=1 ;;
+	x)	opt_failonly=1 ;;
+	Z)	opt_zone=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: opensnoop [-a|-A|-ceghsvxZ] [-f pathname]
+		                 [-n name] [-p PID]
+		       opensnoop                # default output
+		                -a              # print most data
+		                -A              # dump all data, space delimited
+		                -c              # print cwd of process
+		                -e              # print errno value
+		                -g              # print command arguments
+		                -s              # print start time, us
+		                -v              # print start time, string
+		                -x              # only print failed opens
+		                -Z              # print zonename
+		                -f pathname	# pathname name to snoop
+		                -n name		# process name to snoop
+		                -p PID		# process ID to snoop
+		  eg,
+		       opensnoop -v             # human readable timestamps
+		       opensnoop -e             # see error codes
+		       opensnoop -f /etc/motd   # snoop this file only
+		END
+		exit 1
+	esac
+done
+
+### Option logic
+if [ $opt_dump -eq 1 ]; then
+	opt_zone=0; opt_cwd=0; opt_time=0; opt_timestr=0; opt_args=2 
+fi
+if [ $opt_name -eq 1 -o $opt_pid -eq 1 ]; then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_dump 	 = '$opt_dump';
+ inline int OPT_file 	 = '$opt_file';
+ inline int OPT_args 	 = '$opt_args';
+ inline int OPT_cwd	 = '$opt_cwd';
+ inline int OPT_err	 = '$opt_err';
+ inline int OPT_zone 	 = '$opt_zone';
+ inline int OPT_time 	 = '$opt_time';
+ inline int OPT_timestr	 = '$opt_timestr';
+ inline int OPT_failonly = '$opt_failonly';
+ inline int OPT_pid	 = '$opt_pid';
+ inline int OPT_name	 = '$opt_name';
+ inline int FILTER 	 = '$filter';
+ inline int PID		 = '$pid';
+ inline string PATHNAME	 = "'$pathname'";
+ inline string NAME	 = "'$pname'";
+ 
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+ 
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	/* 
+	 * ternary operators are used to improve performance. 
+	 * OPT_args is unusual in that it can have one of three values.
+	 */
+ 
+	/* print optional headers */
+ 	OPT_time ? printf("%-14s ", "TIME") : 1;
+ 	OPT_timestr ? printf("%-20s ", "STRTIME") : 1;
+ 	OPT_zone ? printf("%-10s ", "ZONE") : 1;
+
+	/* print dump headers */
+	OPT_dump ? printf("%s %s %s %s %s %s %s %s %s %s %s", "ZONE",
+	    "TIME", "UID", "PID", "PPID", "COMM", "FD", "ERR", "CWD", 
+	    "PATH", "ARGS") : printf("%5s %6s ","UID","PID");
+	
+	/* print main headers */
+	OPT_args == 0 ? printf("%-12s ", "COMM") : 1;
+	OPT_dump == 0 ? printf("%3s ", "FD") : 1;
+	OPT_err ? printf("%3s ", "ERR") : 1;
+	OPT_cwd ? printf("%-20s ", "CWD") : 1;
+	OPT_dump == 0 ? printf("%-20s ", "PATH") : 1;
+	OPT_args == 1 ? printf("%s", "ARGS") : 1;
+	printf("\n");
+ }
+
+ /*
+  * Print open event
+  */
+ syscall::open:entry
+ {
+	/* save pathname */
+	self->pathp = arg0;
+
+	/* default is to trace unless filtering */
+	self->ok = FILTER ? 0 : 1;
+
+	/* check each filter */
+	(OPT_name == 1 && NAME == execname) ? self->ok = 1 : 1;
+	(OPT_pid == 1 && PID == pid) ? self->ok = 1 : 1;
+	/* OPT_file is checked on return to ensure pathp is mapped */
+ }
+
+ syscall::open:return
+ /self->ok && (! OPT_failonly || (int)arg0 < 0) && 
+ ((OPT_file == 0) || (OPT_file == 1 && PATHNAME == copyinstr(self->pathp)))/
+ {
+	/* print optional fields */
+ 	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+ 	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+ 	OPT_zone ? printf("%-10s ", zonename) : 1;
+
+	/* print dump fields */
+	OPT_dump ? printf("%s %d %d %d %d %s %d %d %s %s %S", zonename,
+	    timestamp/1000, uid, pid, ppid, execname, (int)arg0, errno,
+	    cwd, copyinstr(self->pathp), curpsinfo->pr_psargs) :
+	    printf("%5d %6d ", uid, pid);
+
+	/* print main fields */
+	OPT_args == 0 ? printf("%-12s ", execname) : 1;
+	OPT_dump == 0 ? printf("%3d ", (int)arg0) : 1;
+	OPT_err ? printf("%3d ", errno) : 1;
+	OPT_cwd ? printf("%-20s ", cwd) : 1;
+	OPT_dump == 0 ? printf("%-20s ", copyinstr(self->pathp)) : 1;
+	OPT_args == 1 ? printf("%S", curpsinfo->pr_psargs) : 1;
+	printf("\n");
+
+	/* cleanup */
+	self->pathp = 0;
+	self->ok = 0;
+ }
+
+ /* 
+  * Cleanup 
+  */
+ syscall::open:return
+ /self->ok/
+ {
+	self->pathp = 0;
+	self->ok = 0;
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pathopens.d b/external/cddl/dtracetoolkit/dist/Bin/pathopens.d
new file mode 100755
index 0000000..6230df5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pathopens.d
@@ -0,0 +1,100 @@
+#!/usr/sbin/dtrace -s
+/*
+ * pathopens.d - full pathnames opened successfully count.
+ *               Written using DTrace (Solaris 10 3/05)
+ *
+ * This program prints a count of the number of times files have been
+ * successfully opened. This is somewhat special in that the full pathname
+ * is calculated, even if the file open referred to a relative pathname.
+ *
+ * $Id: pathopens.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	fileopens.d
+ *
+ * FIELDS:
+ *		PATHNAME	full pathname
+ *		COUNT		number of successful opens
+ *
+ * Similar to a script from DExplorer.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 12-Jan-2006	   "	  "	Fixed known error.
+ * 20-Apr-2006	   "	  "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+syscall::open*:entry
+{
+	self->pathp = arg0;
+	self->ok = 1;
+}
+
+syscall::open*:return
+/self->ok && arg0 != -1/
+{
+	self->file = copyinstr(self->pathp);
+	self->char0 = copyin(self->pathp, 1);
+
+	/* fetch current working directory */
+	this->path = curthread->t_procp->p_user.u_cdir->v_path;
+
+	/*
+	 * Make the full pathname
+	 *
+	 * This routine takes the cwd and the filename, and generates a
+	 * full pathname. Sometimes the filename is absolute, so we must
+	 * ignore the cwd. This also checks if the cwd ends in an
+	 * unnecessary '/'.
+	 */
+	this->len = strlen(this->path);
+	self->join = *(char *)(this->path + this->len - 1) == '/' ?  "" : "/";
+	self->dir = strjoin(cwd, self->join);
+	self->dir = *(char *)self->char0 == '/' ? "" : self->dir;
+	self->full = strjoin(self->dir, self->file);
+
+	/* save to aggregation */
+	@num[self->full] = count();
+
+	/* cleanup */
+	self->join  = 0;
+	self->full  = 0;
+	self->dir   = 0;
+	self->file  = 0;
+	self->char0 = 0;
+}
+
+syscall::open*:return
+/self->ok/
+{
+	/* cleanup */
+	self->ok    = 0;
+	self->pathp = 0;
+}
+
+dtrace:::END
+{
+	printf("%6s %s\n", "COUNT", "PATHNAME");
+	printa("%@6d %s\n", @num);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pfilestat b/external/cddl/dtracetoolkit/dist/Bin/pfilestat
new file mode 100755
index 0000000..6c167b8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pfilestat
@@ -0,0 +1,282 @@
+#!/usr/bin/sh
+#
+# pfilestat
+#
+# This prints I/O statistics for each file descriptor within a process.
+# In particular, the time break down during read() and write() events is
+# measured.
+#
+# $Id: pfilestat,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:        pfilestat [-r|-w] pid
+#
+# FIELDS:
+#               STATE      microstate: running, sleeping, waitcpu, read, write
+#               FDUM       File Descriptor ID
+#               Time       Percentage of wallclock time in each STATE
+#               File       Name of file, if known
+# 
+# COPYRIGHT: Copyright (c) 2006 Richard McDougall.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# ToDo:
+#	Trace readv() and writev().
+#
+# 20-Feb-2006   Richard McDougall	created this.
+# 24-Feb-2006   Brendan Gregg		tweaked code.
+# 20-Mar-2006      "      " 		tweaked code.
+# 20-Mar-2006      "      " 		last update.
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_read=0; opt_write=0
+
+### Process options
+while getopts hrw name
+do
+	case $name in
+	r)      opt_read=1 ;;
+	w)      opt_write=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: pfilestat [-r|-w] pid
+		              -r           # reads only
+		              -w           # writes only
+		  eg,
+		       pfilestat pid       # default, r+w counts
+		       pfilestat -r pid    # read count only
+		END
+		exit 1
+	esac
+done
+shift `expr $OPTIND - 1`
+
+PID=$1
+clearstr=`clear`
+
+if [ -z "$PID" ]
+then
+	echo "Must supply pid"
+	exit 1
+fi
+
+### Option logic
+if [ $opt_read -eq 0 -a $opt_write -eq 0 ]; then
+	opt_read=1; opt_write=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ inline string CLEAR   = "'$clearstr'";
+ inline int OPT_read   = '$opt_read';
+ inline int OPT_write  = '$opt_write';
+ inline int PID        = '$PID';
+
+ unsigned long long totaltime;
+ unsigned long long totalbytes;
+
+ enum runstate {
+	READ,
+	WRITE,
+	OTHER
+ };
+
+ /* print header */
+ dtrace:::BEGIN
+ {
+	printf("Tracing ");
+	OPT_read && OPT_write ? printf("reads and writes") : 1;
+	OPT_read && ! OPT_write ? printf("reads") : 1;
+	! OPT_read && OPT_write ? printf("writes") : 1;
+	printf("...");
+	totaltime = 0;
+	totalbytes = 0;
+	last = timestamp;
+	stamp = timestamp;
+ }
+
+ /* sample reads */
+ syscall::read:entry,
+ syscall::pread*:entry
+ /pid == PID && OPT_read/
+ {
+	runstate = READ;
+	@logical["running", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+
+	self->fd = arg0 + 1;
+ }
+
+ fbt::fop_read:entry,
+ fbt::fop_write:entry
+ /self->fd/
+ {
+	self->path = args[0]->v_path == 0 ? "<none>" : 
+	    cleanpath(args[0]->v_path);
+ }
+
+ syscall::read:return,
+ syscall::pread*:return
+ /pid == PID && OPT_read/
+ {
+	runstate = OTHER;
+	this->bytes = (int)arg0 > 0 ? (int)arg0 : 0;
+	@logical["read", self->fd - 1, self->path] = sum(timestamp - last);
+	@bytes["read", self->fd - 1, self->path] = sum(this->bytes);
+	totalbytes += this->bytes;
+	totaltime += timestamp - last;
+	last = timestamp;
+	self->path = 0;
+	self->fd = 0;
+ }
+
+
+ /* sample writes */
+ syscall::write:entry,
+ syscall::pwrite*:entry
+ /pid == PID && OPT_write/
+ {
+	runstate = WRITE;
+	@logical["running", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+
+	self->fd = (int)arg0 + 1;
+ }
+
+ syscall::write:return,
+ syscall::pwrite*:return
+ /pid == PID && OPT_write/
+ {
+	runstate = OTHER;
+	this->bytes = (int)arg0 > 0 ? (int)arg0 : 0;
+	@logical["write", self->fd - 1, self->path] = sum(timestamp - last);
+	@bytes["write", self->fd - 1, self->path] = sum(this->bytes);
+	totalbytes += this->bytes;
+	totaltime += timestamp - last;
+	last = timestamp;
+	self->path = 0;
+	self->fd = 0;
+ }
+
+ sched:::on-cpu
+ /pid == PID/
+ {
+	@logical["waitcpu", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+
+ sched:::off-cpu
+ /pid == PID/
+ {
+	@logical["running", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::sleep
+ /pid == PID/
+ {
+	@logical["running", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::wakeup
+ /args[1]->pr_pid == PID && runstate == OTHER/
+ {
+	@logical["sleep", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::wakeup
+ /args[1]->pr_pid == PID && runstate == READ/
+ {
+	@logical["sleep-r", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::wakeup
+ /args[1]->pr_pid == PID && runstate == WRITE/
+ {
+	@logical["sleep-w", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::enqueue
+ /args[1]->pr_pid == PID/
+ {
+	@logical["waitcpu", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::dequeue
+ /args[1]->pr_pid == PID/
+ {
+	@logical["waitcpu", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ /* print report */
+ profile:::tick-5s
+ {
+	printf("%s", CLEAR);
+	normalize(@logical, totaltime / 100);
+	trunc(@logical, 10);
+	printf("%10s %7s %9s %-44s\n", "STATE", "FDNUM", "Time", "Filename");
+	printa("%10s %7d %@8d%% %-44.44s\n", @logical);
+	trunc(@logical);
+
+	delta = timestamp - stamp;
+	stamp = timestamp;
+	normalize(@bytes, (1024 * delta) / 1000000000);
+	trunc(@bytes, 10);
+	printf("\n%10s %7s %9s %-44s\n", "STATE", "FDNUM", "KB/s",
+	    "Filename");
+	printa("%10s %7d %@9d %-44.44s\n", @bytes);
+	trunc(@bytes);
+
+	printf("\nTotal event time (ms): %d   Total Mbytes/sec: %d\n",
+	    totaltime / 1000000,
+	    (totalbytes * 1000000000) / (delta * 1048576));
+
+	totaltime = 0;
+	totalbytes = 0;
+	last = timestamp;
+ }
+
+ dtrace:::END
+ {
+	trunc(@logical);
+	trunc(@bytes);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pgpginbypid.d b/external/cddl/dtracetoolkit/dist/Bin/pgpginbypid.d
new file mode 100755
index 0000000..1d5486e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pgpginbypid.d
@@ -0,0 +1,53 @@
+#!/usr/sbin/dtrace -s
+/*
+ * pgpginbypid.d - pages paged in by PID.
+ *                 Writen using DTrace (Solaris 10 3/05).
+ *
+ * $Id: pgpginbypid.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE:	pgpginbypid.d		# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ * 		CMD		process name
+ *		PAGES		number of pages paged in
+ *
+ * This is based on a script from DExplorer.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+vminfo:::pgpgin
+{
+	@pg[pid, execname] = sum(arg0);
+}
+
+dtrace:::END
+{
+	printf("%6s %-16s %16s\n", "PID", "CMD", "PAGES");
+	printa("%6d %-16s %@16d\n", @pg);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pgpginbyproc.d b/external/cddl/dtracetoolkit/dist/Bin/pgpginbyproc.d
new file mode 100755
index 0000000..875fce6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pgpginbyproc.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * pgpginbyproc.d - pages paged in by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: pgpginbyproc.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ */
+
+vminfo:::pgpgin { @pg[execname] = sum(arg0); }
diff --git a/external/cddl/dtracetoolkit/dist/Bin/php_calldist.d b/external/cddl/dtracetoolkit/dist/Bin/php_calldist.d
new file mode 100755
index 0000000..84142fe
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/php_calldist.d
@@ -0,0 +1,83 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_calldist.d - measure PHP elapsed times for functions.
+ *                  Written for the PHP DTrace provider.
+ *
+ * $Id: php_calldist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces PHP activity from all programs running on the system with
+ * PHP provider support.
+ *
+ * USAGE: php_calldist.d 	# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for PHP
+ * operations. Use php_calltime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the PHP program
+ *		2		Type of call (func)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+php*:::function-return
+/arg0 && self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/php_calltime.d b/external/cddl/dtracetoolkit/dist/Bin/php_calltime.d
new file mode 100755
index 0000000..598df62
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/php_calltime.d
@@ -0,0 +1,90 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_calltime.d - measure PHP elapsed times for functions.
+ *                  Written for the PHP DTrace provider.
+ *
+ * $Id: php_calltime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces PHP activity from all programs running on the system with
+ * PHP provider support.
+ *
+ * USAGE: php_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the PHP program
+ *		TYPE		Type of call (func/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+php*:::function-return
+/arg0 && self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/php_cpudist.d b/external/cddl/dtracetoolkit/dist/Bin/php_cpudist.d
new file mode 100755
index 0000000..33f571a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/php_cpudist.d
@@ -0,0 +1,83 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_cpudist.d - measure PHP on-CPU times for functions.
+ *                 Written for the PHP DTrace provider.
+ *
+ * $Id: php_cpudist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces PHP activity from all programs running on the system with
+ * PHP provider support.
+ *
+ * USAGE: php_cpudist.d 		# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for PHP
+ * operations. Use php_cputime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the PHP program
+ *		2		Type of call (func)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+php*:::function-return
+/arg0 && self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/php_cputime.d b/external/cddl/dtracetoolkit/dist/Bin/php_cputime.d
new file mode 100755
index 0000000..1ad828c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/php_cputime.d
@@ -0,0 +1,90 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_cputime.d - measure PHP on-CPU times for functions.
+ *                 Written for the PHP DTrace provider.
+ *
+ * $Id: php_cputime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces PHP activity from all programs running on the system with
+ * PHP provider support.
+ *
+ * USAGE: php_cputime.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the PHP program
+ *		TYPE		Type of call (func/total)
+ *		NAME		Name of call (function name)
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+php*:::function-return
+/arg0 && self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/php_flow.d b/external/cddl/dtracetoolkit/dist/Bin/php_flow.d
new file mode 100755
index 0000000..14cb584
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/php_flow.d
@@ -0,0 +1,72 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_flow.d - snoop PHP execution showing function flow.
+ *              Written for the PHP DTrace provider.
+ *
+ * $Id: php_flow.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces PHP activity from all PHP programs on the system
+ * running with PHP provider support.
+ *
+ * USAGE: php_flow.d			# hit Ctrl-C to end
+ *
+ * This watches PHP function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		FUNC		Function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s -- %s\n", "C", "TIME(us)", "FILE", "FUNC");
+}
+
+php*:::function-entry
+/arg0/
+{
+	printf("%3d %-16d %-16s %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg1)), self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+}
+
+php*:::function-return
+/arg0/
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg1)), self->depth * 2, "", copyinstr(arg0));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/php_flowinfo.d b/external/cddl/dtracetoolkit/dist/Bin/php_flowinfo.d
new file mode 100755
index 0000000..848dd44
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/php_flowinfo.d
@@ -0,0 +1,88 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_flowinfo.d - snoop PHP function flow with info using DTrace.
+ *                  Written for the PHP DTrace provider.
+ *
+ * $Id: php_flowinfo.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all PHP programs on the system that are
+ * running with PHP provider support.
+ *
+ * USAGE: php_flowinfo.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the PHP program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func)
+ *		FUNC		PHP function
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%s %6s/%-4s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "TID",
+	    "DELTA(us)", "FILE", "LINE", "TYPE", "FUNC");
+}
+
+php*:::function-entry,
+php*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+php*:::function-entry
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%d %6d/%-4d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid, tid,
+	    this->delta, basename(copyinstr(arg1)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+php*:::function-return
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%d %6d/%-4d %10d  %16s:%-4d %-8s %*s<- %s\n", cpu, pid, tid,
+	    this->delta, basename(copyinstr(arg1)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/php_flowtime.d b/external/cddl/dtracetoolkit/dist/Bin/php_flowtime.d
new file mode 100755
index 0000000..a7bdb80
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/php_flowtime.d
@@ -0,0 +1,91 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_flowtime.d - snoop PHP functions with flow and delta times.
+ *                  Written for the PHP DTrace provider.
+ *
+ * $Id: php_flowtime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces shell activity from PHP programs on the system that are
+ * running with PHP provider support.
+ *
+ * USAGE: php_flowtime.d			# hit Ctrl-C to end
+ *
+ * This watches PHP function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FUNC		PHP function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+self int last;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s %9s  -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "FUNC");
+}
+
+php*:::function-entry,
+php*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+php*:::function-entry
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg1)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+php*:::function-return
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %9d %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg1)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/php_funccalls.d b/external/cddl/dtracetoolkit/dist/Bin/php_funccalls.d
new file mode 100755
index 0000000..038921f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/php_funccalls.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_funccalls.d - measure PHP function calls using DTrace.
+ *                   Written for the PHP DTrace provider.
+ *
+ * $Id: php_funccalls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces PHP activity from all running programs on the system
+ * which support the PHP DTrace provider.
+ *
+ * USAGE: php_funccalls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *              FILE		Filename that contained the function
+ *		FUNC		PHP function name
+ *		CALLS		Function calls during this sample
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	@funcs[basename(copyinstr(arg1)), copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-32s %-32s %8s\n", "FILE", "FUNC", "CALLS");
+	printa(" %-32s %-32s %@8d\n", @funcs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/php_malloc.d b/external/cddl/dtracetoolkit/dist/Bin/php_malloc.d
new file mode 100755
index 0000000..641244d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/php_malloc.d
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_malloc.d - PHP libc malloc analysis.
+ *                Written for the PHP DTrace provider.
+ *
+ * $Id: php_malloc.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This is an expiremental script to identify who is calling malloc() for
+ * memory allocation, and to print distribution plots of the requested bytes.
+ * If a malloc() occured while in a PHP function, then that function is
+ * identified as responsible; else the caller of malloc() is identified as
+ * responsible - which will be a function from the PHP engine.
+ *
+ * USAGE: php_malloc.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php$target:::function-entry
+/arg0/
+{
+	self->file = basename(copyinstr(arg1));
+	self->name = copyinstr(arg0);
+}
+
+php$target:::function-return
+{
+	self->file = 0;
+	self->name = 0;
+}
+
+pid$target:libc:malloc:entry
+/self->file != NULL/
+{
+	@malloc_func_size[self->file, self->name] = sum(arg1);
+	@malloc_func_dist[self->file, self->name] = quantize(arg1);
+}
+
+pid$target:libc:malloc:entry
+/self->name == NULL/
+{
+	@malloc_lib_size[usym(ucaller)] = sum(arg1);
+	@malloc_lib_dist[usym(ucaller)] = quantize(arg1);
+}
+
+
+dtrace:::END
+{
+	printf("\nPHP malloc byte distributions by engine caller,\n\n");
+	printa("   %A, total bytes = %@d %@d\n", @malloc_lib_size,
+	    @malloc_lib_dist);
+
+	printf("\nPHP malloc byte distributions by PHP file and ");
+	printf("function,\n\n");
+	printa("   %s, %s, bytes total = %@d %@d\n", @malloc_func_size,
+	    @malloc_func_dist);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/php_syscalls.d b/external/cddl/dtracetoolkit/dist/Bin/php_syscalls.d
new file mode 100755
index 0000000..89021cb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/php_syscalls.d
@@ -0,0 +1,75 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_syscalls.d - count PHP function calls and syscalls using DTrace.
+ *                  Written for the PHP DTrace provider.
+ *
+ * This traces syscalls that occured during a PHP function call.
+ *
+ * $Id: php_syscalls.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE: php_syscalls.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		FILE		Filename of the PHP program
+ *		TYPE		Type of call (func/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and function names are printed if available.
+ * The filename for syscalls may be printed as "php", if the program
+ * was invoked using the form "php filename" rather than running the
+ * program with an interpreter line.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	@calls[pid, basename(copyinstr(arg1)), "func", copyinstr(arg0)] =
+	    count();
+	self->php++;
+}
+
+php*:::function-return
+/arg0/
+{
+	self->php -= self->php == 0 ? 0 : 1;
+}
+
+syscall:::entry
+/self->php > 0/
+{
+	@calls[pid, basename(execname), "syscall", probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-6s  %-26s %-10s %-22s %8s\n", "PID", "FILE", "TYPE", "NAME",
+	    "COUNT");
+	printa(" %-6d  %-26s %-10s %-22s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/php_syscolors.d b/external/cddl/dtracetoolkit/dist/Bin/php_syscolors.d
new file mode 100755
index 0000000..a30a928
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/php_syscolors.d
@@ -0,0 +1,116 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_syscolors.d - trace PHP function flow plus syscalls, in color.
+ *                   Written for the PHP DTrace provider.
+ *
+ * $Id: php_syscolors.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: php_syscolors.d	# hit Ctrl-C to end
+ *
+ * This watches PHP function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the PHP program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func/syscall)
+ *		NAME		PHP function or syscall name
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+        color_php = "\033[2;35m";		/* violet, faint */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	self->depth = 0;
+	printf("%s %6s/%-4s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "TID",
+	    "DELTA(us)", "FILE", "LINE", "TYPE", "NAME");
+}
+
+php*:::function-entry,
+php*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+php*:::function-entry
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d/%-4d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_php,
+	    cpu, pid, tid, this->delta, basename(copyinstr(arg1)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg0), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+php*:::function-return
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg1), "::"), copyinstr(arg0));
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d/%-4d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_php,
+	    cpu, pid, tid, this->delta, basename(copyinstr(arg1)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg0), color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/self->last/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d/%-4d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, tid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/self->last/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d/%-4d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, tid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/php_who.d b/external/cddl/dtracetoolkit/dist/Bin/php_who.d
new file mode 100755
index 0000000..ffe3477
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/php_who.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_who.d - trace PHP function execution by process using DTrace.
+ *             Written for the PHP DTrace provider.
+ *
+ * $Id: php_who.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces PHP activity from all PHP programs on the system that are
+ * running with PHP provider support.
+ *
+ * USAGE: php_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of PHP
+ *		UID		User ID of the owner
+ *		FUNCS		Number of function calls
+ *		FILE		Pathname of the PHP program
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+{
+	@lines[pid, uid, copyinstr(arg1)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %s\n", "PID", "UID", "FUNCS", "FILE");
+	printa("   %6d %6d %@6d %s\n", @lines);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pidpersec.d b/external/cddl/dtracetoolkit/dist/Bin/pidpersec.d
new file mode 100755
index 0000000..40eb881
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pidpersec.d
@@ -0,0 +1,57 @@
+#!/usr/sbin/dtrace -s
+/*
+ * pidpersec.d - print new PIDs per sec.
+ *               Written using DTrace (Solaris 10 3/05)
+ *
+ * This script prints the number of new processes created per second.
+ *
+ * $Id: pidpersec.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: pidpersec.d
+ *
+ * FIELDS:
+ *
+ *          TIME        Time, as a string
+ *          LASTPID     Last PID created
+ *          PID/s       Number of processes created per second
+ *
+ * SEE ALSO: execsnoop
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Jun-2005  Brendan Gregg   Created this.
+ * 09-Jun-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("%-22s %6s\n", "TIME", "PID/s");
+	pids = 0;
+}
+
+proc:::exec-success
+{
+	pids++;
+}
+
+profile:::tick-1sec
+{
+	printf("%-22Y %6d\n", walltimestamp, pids);
+	pids = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pl_calldist.d b/external/cddl/dtracetoolkit/dist/Bin/pl_calldist.d
new file mode 100755
index 0000000..9af8a48
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pl_calldist.d
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_calldist.d - measure Perl elapsed times for subroutines.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_calldist.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * This traces Perl activity from all programs running on the system with
+ * Perl provider support.
+ *
+ * USAGE: pl_calldist.d 	# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Perl subroutines.
+ * Use pl_calltime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Perl program
+ *		2		Type of call (sub)
+ *		3		Name of call
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->sub[self->depth] = timestamp;
+}
+
+perl*:::sub-return
+/self->sub[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->sub[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->sub[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@types_incl[this->file, "sub", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "sub", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive subroutine elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive subroutine elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pl_calltime.d b/external/cddl/dtracetoolkit/dist/Bin/pl_calltime.d
new file mode 100755
index 0000000..972bbef
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pl_calltime.d
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_calltime.d - measure Perl elapsed times for subroutines.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_calltime.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * This traces Perl activity from all programs running on the system with
+ * Perl provider support.
+ *
+ * USAGE: pl_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Perl program
+ *		TYPE		Type of call (sub/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->sub[self->depth] = timestamp;
+}
+
+perl*:::sub-return
+/self->sub[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->sub[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->sub[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "sub", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "sub", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "sub", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive subroutine elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive subroutine elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pl_cpudist.d b/external/cddl/dtracetoolkit/dist/Bin/pl_cpudist.d
new file mode 100755
index 0000000..3343e8a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pl_cpudist.d
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_cpudist.d - measure Perl on-CPU times for subroutines.
+ *                Written for the Perl DTrace provider.
+ *
+ * $Id: pl_cpudist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Perl activity from all programs running on the system with
+ * Perl provider support.
+ *
+ * USAGE: pl_cpudist.d 		# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Perl subrotines.
+ * Use pl_cputime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Perl program
+ *		2		Type of call (sub)
+ *		3		Name of call
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->sub[self->depth] = vtimestamp;
+}
+
+perl*:::sub-return
+/self->sub[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->sub[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->sub[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@types_incl[this->file, "sub", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "sub", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive subroutine on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive subroutine on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pl_cputime.d b/external/cddl/dtracetoolkit/dist/Bin/pl_cputime.d
new file mode 100755
index 0000000..c0d3140
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pl_cputime.d
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_cputime.d - measure Perl on-CPU times for subroutines.
+ *                Written for the Perl DTrace provider.
+ *
+ * $Id: pl_cputime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Perl activity from all programs running on the system with
+ * Perl provider support.
+ *
+ * USAGE: pl_cputime.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Perl program
+ *		TYPE		Type of call (sub/total)
+ *		NAME		Name of call (subroutine name)
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->sub[self->depth] = vtimestamp;
+}
+
+perl*:::sub-return
+/self->sub[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->sub[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->sub[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "sub", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "sub", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "sub", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive subroutine on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive subroutine on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pl_flow.d b/external/cddl/dtracetoolkit/dist/Bin/pl_flow.d
new file mode 100755
index 0000000..7984685
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pl_flow.d
@@ -0,0 +1,70 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_flow.d - snoop Perl execution showing subroutine flow.
+ *             Written for the Solaris Perl DTrace provider.
+ *
+ * $Id: pl_flow.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Perl activity from all Perl programs on the system
+ * running with Perl provider support.
+ *
+ * USAGE: pl_flow.d			# hit Ctrl-C to end
+ *
+ * This watches Perl subroutine entries and returns, and indents child
+ * subroutine calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this subroutine belongs to
+ *		SUB		Subroutine name
+ *
+ * LEGEND:
+ *		->		subroutine entry
+ *		<-		subroutine return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s -- %s\n", "C", "TIME(us)", "FILE", "SUB");
+}
+
+perl*:::sub-entry
+{
+	printf("%3d %-16d %-16s %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg1)), self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+}
+
+perl*:::sub-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg1)), self->depth * 2, "", copyinstr(arg0));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pl_flowinfo.d b/external/cddl/dtracetoolkit/dist/Bin/pl_flowinfo.d
new file mode 100755
index 0000000..b191b3c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pl_flowinfo.d
@@ -0,0 +1,86 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_flowinfo.d - snoop Perl subroutine flow with info using DTrace.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_flowinfo.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Perl programs on the system that are
+ * running with Perl provider support.
+ *
+ * USAGE: pl_flowinfo.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Perl program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (sub)
+ *		SUB		Perl subroutine
+ *
+ * LEGEND:
+ *		->		subroutine entry
+ *		<-		subroutine return
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "SUB");
+}
+
+perl*:::sub-entry,
+perl*:::sub-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+perl*:::sub-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg1)), arg2, "sub", self->depth * 2, "",
+	    copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+perl*:::sub-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s<- %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg1)), arg2, "sub", self->depth * 2, "",
+	    copyinstr(arg0));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pl_flowtime.d b/external/cddl/dtracetoolkit/dist/Bin/pl_flowtime.d
new file mode 100755
index 0000000..75895fd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pl_flowtime.d
@@ -0,0 +1,88 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_flowtime.d - snoop Perl subroutines with flow and delta times.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_flowtime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces shell activity from Perl programs on the system that are
+ * running with Perl provider support.
+ *
+ * USAGE: pl_flowtime.d			# hit Ctrl-C to end
+ *
+ * This watches Perl subroutine entries and returns, and indents child
+ * subroutine calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this subroutine belongs to
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		SUB		Perl subroutine name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+self int last;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s %9s  -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "SUB");
+}
+
+perl*:::sub-entry,
+perl*:::sub-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+perl*:::sub-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg1)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+perl*:::sub-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %9d %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg1)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pl_malloc.d b/external/cddl/dtracetoolkit/dist/Bin/pl_malloc.d
new file mode 100755
index 0000000..b801e92
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pl_malloc.d
@@ -0,0 +1,81 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_malloc.d - Perl libc malloc analysis.
+ *               Written for the Perl DTrace provider.
+ *
+ * $Id: pl_malloc.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This is an expiremental script to identify who is calling malloc() for
+ * memory allocation, and to print distribution plots of the requested bytes.
+ * If a malloc() occured while in a Perl subroutine, then that subroutine is
+ * identified as responsible; else the caller of malloc() is identified as
+ * responsible - which will be a function from the Perl engine.
+ *
+ * USAGE: pl_malloc.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl$target:::sub-entry
+{
+	self->file = basename(copyinstr(arg1));
+	self->name = copyinstr(arg0);
+}
+
+perl$target:::sub-return
+{
+	self->file = 0;
+	self->name = 0;
+}
+
+pid$target:libc:malloc:entry
+/self->file != NULL/
+{
+	@malloc_sub_size[self->file, self->name] = sum(arg0);
+	@malloc_sub_dist[self->file, self->name] = quantize(arg0);
+}
+
+pid$target:libc:malloc:entry
+/self->name == NULL/
+{
+	@malloc_lib_size[usym(ucaller)] = sum(arg0);
+	@malloc_lib_dist[usym(ucaller)] = quantize(arg0);
+}
+
+
+dtrace:::END
+{
+	printf("\nPerl malloc byte distributions by engine caller,\n\n");
+	printa("   %A, total bytes = %@d %@d\n", @malloc_lib_size,
+	    @malloc_lib_dist);
+
+	printf("\nPerl malloc byte distributions by Perl file and ");
+	printf("subroutine,\n\n");
+	printa("   %s, %s, bytes total = %@d %@d\n", @malloc_sub_size,
+	    @malloc_sub_dist);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pl_subcalls.d b/external/cddl/dtracetoolkit/dist/Bin/pl_subcalls.d
new file mode 100755
index 0000000..63409c5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pl_subcalls.d
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_subcalls.d - measure Perl subroutine calls using DTrace.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_subcalls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Perl activity from all running programs on the system
+ * which support the Perl DTrace provider.
+ *
+ * USAGE: pl_subcalls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *              FILE		Filename that contained the subroutine
+ *		SUB		Perl subroutine name
+ *		CALLS		Subroutine calls during this sample
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	@subs[basename(copyinstr(arg1)), copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-32s %-32s %8s\n", "FILE", "SUB", "CALLS");
+	printa(" %-32s %-32s %@8d\n", @subs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pl_syscalls.d b/external/cddl/dtracetoolkit/dist/Bin/pl_syscalls.d
new file mode 100755
index 0000000..c603b3b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pl_syscalls.d
@@ -0,0 +1,65 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_syscalls.d - count Perl subroutine calls and syscalls using DTrace.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_syscalls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: pl_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Perl program
+ *		TYPE		Type of call (sub/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and subroutine names are printed if available.
+ * The filename for syscalls may be printed as "perl", if the program
+ * was invoked using the form "perl filename" rather than running the
+ * program with an interpreter line.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+self string filename;
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl$target:::sub-entry
+{
+	@calls[basename(copyinstr(arg1)), "sub", copyinstr(arg0)] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[basename(execname), "syscall", probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf("\nCalls for PID %d,\n\n", $target);
+	printf(" %-32s %-10s %-22s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa(" %-32s %-10s %-22s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pl_syscolors.d b/external/cddl/dtracetoolkit/dist/Bin/pl_syscolors.d
new file mode 100755
index 0000000..2f50731
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pl_syscolors.d
@@ -0,0 +1,119 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_syscolors.d - trace Perl subroutine flow plus syscalls, in color.
+ *                  Written for the Perl DTrace provider.
+ *
+ * $Id: pl_syscolors.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: pl_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches Perl subroutine entries and returns, and indents child
+ * subroutine calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Perl program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (sub/syscall)
+ *		NAME		Perl subroutine or syscall name
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	/*
+	 * The following are terminal color escape sequences.
+	 * Change them to whatever you prefer, eg HTML font tags.
+	 */
+        color_perl = "\033[2;35m";		/* violet, faint */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+perl$target:::sub-entry,
+perl$target:::sub-return,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+perl$target:::sub-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_perl,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "sub",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+perl$target:::sub-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_perl,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "sub",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pl_who.d b/external/cddl/dtracetoolkit/dist/Bin/pl_who.d
new file mode 100755
index 0000000..1ffabe6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pl_who.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_who.d - trace Perl subroutine execution by process using DTrace.
+ *            Written for the Perl DTrace provider.
+ *
+ * $Id: pl_who.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * This traces Perl activity from all Perl programs on the system that are
+ * running with Perl provider support.
+ *
+ * USAGE: pl_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of Perl
+ *		UID		User ID of the owner
+ *		SUBS		Number of subroutine calls
+ *		FILE		Pathname of the Perl program
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	@lines[pid, uid, copyinstr(arg1)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %s\n", "PID", "UID", "SUBS", "FILE");
+	printa("   %6d %6d %@6d %s\n", @lines);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/priclass.d b/external/cddl/dtracetoolkit/dist/Bin/priclass.d
new file mode 100755
index 0000000..0084688
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/priclass.d
@@ -0,0 +1,67 @@
+#!/usr/sbin/dtrace -s
+/*
+ * priclass.d - priority distribution by scheduling class.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * This is a simple DTrace script that samples at 1000 Hz the current
+ * thread's scheduling class and priority. A distribution plot is printed.
+ *
+ * With priorities, the higher the priority the better chance the thread
+ * has of being scheduled.
+ *
+ * This idea came from the script /usr/demo/dtrace/pri.d, which
+ * produces similar output for priority changes, not samples.
+ *
+ * $Id: priclass.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE:       priclass.d      # hit Ctrl-C to end sampling
+ *
+ * FIELDS:
+ *              value           process priority
+ *              count           number of samples of at least this priority
+ *
+ * Also printed is the scheduling class,
+ *
+ *		TS		time sharing
+ *		IA		interactive
+ *		RT		real time
+ *		SYS		system
+ *		FSS		fair share schedular
+ *
+ * BASED ON: /usr/demo/dtrace/pri.d
+ *
+ * SEE ALSO: DTrace Guide "profile Provider" chapter (docs.sun.com)
+ *           dispadmin(1M)
+ *
+ * PORTIONS: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 12-Feb-2006	Brendan Gregg	Created this.
+ * 22-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Sampling... Hit Ctrl-C to end.\n");
+}
+
+profile:::profile-1000hz
+{
+	@count[stringof(curlwpsinfo->pr_clname)]
+	    = lquantize(curlwpsinfo->pr_pri, 0, 170, 10);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/pridist.d b/external/cddl/dtracetoolkit/dist/Bin/pridist.d
new file mode 100755
index 0000000..e41b6ad
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/pridist.d
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -s
+/*
+ * pridist.d - process priority distribution.
+ *             Written using DTrace (Solaris 10 3/05)
+ *
+ * This is a simple DTrace script that samples at 1000 Hz which process
+ * is on the CPUs, and what the priority is. A distribution plot is printed.
+ *
+ * With priorities, the higher the priority the better chance the process
+ * (actually, thread) has of being scheduled.
+ *
+ * This idea came from the script /usr/demo/dtrace/profpri.d, which
+ * produces similar output for one particular PID.
+ *
+ * $Id: pridist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       pridist.d       # hit Ctrl-C to end sampling
+ *
+ * FIELDS:
+ *              CMD             process name
+ *              PID             process ID
+ *              value           process priority
+ *              count           number of samples of at least this priority
+ *
+ * BASED ON: /usr/demo/dtrace/profpri.d
+ *
+ * SEE ALSO:
+ *           DTrace Guide "profile Provider" chapter (docs.sun.com)
+ *           dispadmin(1M)
+ *
+ * PORTIONS: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 13-Jun-2005	Brendan Gregg	Created this.
+ * 22-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Sampling... Hit Ctrl-C to end.\n");
+}
+
+profile:::profile-1000hz
+{
+	@Count[execname, pid] = lquantize(curlwpsinfo->pr_pri, 0, 170, 5);
+}
+
+dtrace:::END
+{
+	printa(" CMD: %-16s PID: %d\n%@d\n", @Count);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/procsystime b/external/cddl/dtracetoolkit/dist/Bin/procsystime
new file mode 100755
index 0000000..eabe6a0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/procsystime
@@ -0,0 +1,233 @@
+#!/bin/sh
+#
+# procsystime - print process system call time details.
+#               Written using DTrace (Solaris 10 3/05).
+#
+# $Id: procsystime,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	procsystime [-acehoT] [ -p PID | -n name | command ]
+#
+#		-p PID          # examine this PID
+#		-n name         # examine this process name
+#		-a              # print all details
+#		-c              # print syscall counts
+#		-e              # print elapsed times
+#		-o              # print CPU times
+#		-T              # print totals
+#         eg,
+#		procsystime -p 1871     # examine PID 1871
+#		procsystime -n tar      # examine processes called "tar"
+#		procsystime -aTn bash   # print all details for bash shells
+#		procsystime df -h       # run and examine "df -h"
+#
+# The elapsed times are interesting, to help identify syscalls that take
+# some time to complete (during which the process may have slept). CPU time
+# helps us identify syscalls that are consuming CPU cycles to run.
+#
+# FIELDS:
+#		SYSCALL         System call name
+#		TIME (ns)       Total time, nanoseconds
+#		COUNT           Number of occurrences
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 27-Apr-2005   Brendan Gregg   Created this.
+# 08-Jun-2005	   "      "	Added command option.
+# 22-Sep-2005	   "      "	Allowed systemwide tracing.
+# 22-Sep-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_filter=0; opt_pid=0; opt_name=0; pid=0; pname=".";
+opt_elapsed=0; opt_cpu=0; opt_counts=0; opt_totals=0
+opt_command=0; command="";
+
+### Process options
+while getopts acehn:op:T name
+do
+        case $name in
+        p)      opt_filter=1; opt_pid=1; pid=$OPTARG ;;
+        n)      opt_filter=1; opt_name=1; pname=$OPTARG ;;
+	a)	opt_totals=1; opt_elapsed=1; opt_cpu=1; opt_counts=1 ;;
+	e)	opt_elapsed=1 ;;
+	c)	opt_counts=1 ;;
+	o)	opt_cpu=1 ;;
+	T)	opt_totals=1 ;;
+        h|?)    cat <<-END >&2
+		USAGE: procsystime [-aceho] [ -p PID | -n name | command ]
+		                  -p PID          # examine this PID
+		                  -n name         # examine this process name
+		                  -a              # print all details
+		                  -e              # print elapsed times
+		                  -c              # print syscall counts
+		                  -o              # print CPU times
+		                  -T              # print totals
+		  eg,
+		       procsystime -p 1871     # examine PID 1871
+		       procsystime -n tar      # examine processes called "tar"
+		       procsystime -aTn bash   # print all details for bash
+		       procsystime df -h       # run and examine "df -h"
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+### Option logic
+if [ $opt_pid -eq 0 -a $opt_name -eq 0 -a "$*" != "" ]; then
+	opt_filter=1
+	opt_command=1
+	command="$*"
+fi
+if [ $opt_elapsed -eq 0 -a $opt_cpu -eq 0 -a $opt_counts -eq 0 ]; then
+	opt_elapsed=1;
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+dtrace='
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_elapsed  = '$opt_elapsed';
+ inline int OPT_cpu      = '$opt_cpu';
+ inline int OPT_counts   = '$opt_counts';
+ inline int OPT_filter   = '$opt_filter';
+ inline int OPT_pid      = '$opt_pid';
+ inline int OPT_name     = '$opt_name';
+ inline int OPT_totals   = '$opt_totals';
+ inline int OPT_command  = '$opt_command';
+ inline int PID          = '$pid';
+ inline string NAME      = "'$pname'";
+ inline string COMMAND   = "'$command'";
+
+ dtrace:::BEGIN 
+ {
+	self->start = 0;
+	self->vstart = 0;
+ }
+ dtrace:::BEGIN 
+ /! OPT_command/
+ {
+	printf("Tracing... Hit Ctrl-C to end...\n");
+ }
+
+ /*
+  * Set start timestamp and counts
+  */
+ syscall:::entry
+ /(! OPT_filter) ||
+  (OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ {
+	self->ok = 1;
+ }
+ syscall:::entry
+ /self->ok/
+ {
+	OPT_counts ? @Counts[probefunc] = count() : 1;
+	(OPT_counts && OPT_totals) ? @Counts["TOTAL:"] = count() : 1;
+	OPT_elapsed ? self->start = timestamp : 1;
+	OPT_cpu ? self->vstart = vtimestamp : 1;
+	self->ok = 0;
+ }
+
+ /*
+  * Calculate time deltas
+  */
+ syscall:::return
+ /self->start/
+ {
+	this->elapsed = timestamp - self->start;
+	@Elapsed[probefunc] = sum(this->elapsed);
+	OPT_totals ? @Elapsed["TOTAL:"] = sum(this->elapsed) : 1;
+	self->start = 0;
+ }
+ syscall:::return
+ /self->vstart/
+ {
+	this->cpu = vtimestamp - self->vstart;
+	@CPU[probefunc] = sum(this->cpu);
+	OPT_totals ? @CPU["TOTAL:"] = sum(this->cpu) : 1;
+	self->vstart = 0;
+ }
+
+ /*
+  * Elapsed time report
+  */
+ dtrace:::END 
+ /OPT_elapsed/
+ {
+	printf("\nElapsed Times for ");
+	OPT_pid ? printf("PID %d,\n\n",PID) : 1;
+	OPT_name ? printf("processes %s,\n\n",NAME) : 1;
+	OPT_command ? printf("command %s,\n\n",COMMAND) : 1;
+	(! OPT_filter) ? printf("all processes,\n\n") : 1;
+	printf("%16s %18s\n","SYSCALL","TIME (ns)");
+	printa("%16s %@18d\n",@Elapsed);
+ }
+
+ /*
+  * CPU time report
+  */
+ dtrace:::END 
+ /OPT_cpu/
+ {
+	printf("\nCPU Times for ");
+	OPT_pid ? printf("PID %d,\n\n",PID) : 1;
+	OPT_name ? printf("processes %s,\n\n",NAME) : 1;
+	OPT_command ? printf("command %s,\n\n",COMMAND) : 1;
+	(! OPT_filter) ? printf("all processes,\n\n") : 1;
+	printf("%16s %18s\n","SYSCALL","TIME (ns)");
+	printa("%16s %@18d\n",@CPU);
+ }
+
+ /*
+  * Syscall count report
+  */
+ dtrace:::END 
+ /OPT_counts/
+ {
+	printf("\nSyscall Counts for ");
+	OPT_pid ? printf("PID %d,\n\n",PID) : 1;
+	OPT_name ? printf("processes %s,\n\n",NAME) : 1;
+	OPT_command ? printf("command %s,\n\n",COMMAND) : 1;
+	(! OPT_filter) ? printf("all processes,\n\n") : 1;
+	printf("%16s %18s\n","SYSCALL","COUNT");
+	OPT_counts ? printa("%16s %@18d\n",@Counts) : 1;
+ }
+'
+
+### Run DTrace
+if [ $opt_command -eq 1 ]; then
+	/usr/sbin/dtrace -n "$dtrace" -x evaltime=exec -c "$command" >&2
+else
+	/usr/sbin/dtrace -n "$dtrace" >&2
+fi
+
diff --git a/external/cddl/dtracetoolkit/dist/Bin/putnexts.d b/external/cddl/dtracetoolkit/dist/Bin/putnexts.d
new file mode 100755
index 0000000..48b6ff7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/putnexts.d
@@ -0,0 +1,38 @@
+#!/usr/sbin/dtrace -s
+/*
+ * putnexts.d - stream putnext() tracing with stacks. Solaris, DTrace.
+ *
+ * This shows who is calling putnext() to who, by listing the destination
+ * queue and the calling stack, by frequency count. This is especially useful
+ * for understanding streams based frameworks, such as areas of the Solaris
+ * TCP/IP stack.
+ *
+ * $Id: putnexts.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	putnext.d
+ *
+ * BASED ON: /usr/demo/dtrace/putnext.d
+ *
+ * PORTIONS: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 12-Jun-2005  Brendan Gregg   Created this.
+ */
+
+fbt::putnext:entry
+{
+	@[stringof(args[0]->q_qinfo->qi_minfo->mi_idname), stack(5)] = count();
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/py_calldist.d b/external/cddl/dtracetoolkit/dist/Bin/py_calldist.d
new file mode 100755
index 0000000..848a48d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/py_calldist.d
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_calldist.d - measure Python elapsed times for functions.
+ *                 Written for the Python DTrace provider.
+ *
+ * $Id: py_calldist.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * This traces Python activity from all programs running on the system with
+ * Python provider support.
+ *
+ * USAGE: py_calldist.d 	# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Python
+ * operations. Use py_calltime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Python program
+ *		2		Type of call (func)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+python*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/py_calltime.d b/external/cddl/dtracetoolkit/dist/Bin/py_calltime.d
new file mode 100755
index 0000000..90ec595
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/py_calltime.d
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_calltime.d - measure Python elapsed times for functions.
+ *                 Written for the Python DTrace provider.
+ *
+ * $Id: py_calltime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Python activity from all programs running on the system with
+ * Python provider support.
+ *
+ * USAGE: py_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Python program
+ *		TYPE		Type of call (func/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+python*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/py_cpudist.d b/external/cddl/dtracetoolkit/dist/Bin/py_cpudist.d
new file mode 100755
index 0000000..0e90d79
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/py_cpudist.d
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_cpudist.d - measure Python on-CPU times for functions.
+ *                Written for the Python DTrace provider.
+ *
+ * $Id: py_cpudist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Python activity from all programs running on the system with
+ * Python provider support.
+ *
+ * USAGE: py_cpudist.d 		# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Python
+ * operations. Use py_cputime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Python program
+ *		2		Type of call (func)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+python*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/py_cputime.d b/external/cddl/dtracetoolkit/dist/Bin/py_cputime.d
new file mode 100755
index 0000000..addd918
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/py_cputime.d
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_cputime.d - measure Python on-CPU times for functions.
+ *                Written for the Python DTrace provider.
+ *
+ * $Id: py_cputime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Python activity from all programs running on the system with
+ * Python provider support.
+ *
+ * USAGE: py_cputime.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Python program
+ *		TYPE		Type of call (func/total)
+ *		NAME		Name of call (function name)
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+python*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/py_flow.d b/external/cddl/dtracetoolkit/dist/Bin/py_flow.d
new file mode 100755
index 0000000..6482343
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/py_flow.d
@@ -0,0 +1,70 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_flow.d - snoop Python execution showing function flow.
+ *             Written for the Python DTrace provider.
+ *
+ * $Id: py_flow.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * This traces Python activity from all Python programs on the system
+ * running with Python provider support.
+ *
+ * USAGE: py_flow.d			# hit Ctrl-C to end
+ *
+ * This watches Python function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		FUNC		Function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s -- %s\n", "C", "TIME(us)", "FILE", "FUNC");
+}
+
+python*:::function-entry
+{
+	printf("%3d %-16d %-16s %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+	self->depth++;
+}
+
+python*:::function-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/py_flowinfo.d b/external/cddl/dtracetoolkit/dist/Bin/py_flowinfo.d
new file mode 100755
index 0000000..e43dc42
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/py_flowinfo.d
@@ -0,0 +1,86 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_flowinfo.d - snoop Python function flow with info using DTrace.
+ *                 Written for the Python DTrace provider.
+ *
+ * $Id: py_flowinfo.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * This traces activity from all Python programs on the system that are
+ * running with Python provider support.
+ *
+ * USAGE: py_flowinfo.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Python program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func)
+ *		FUNC		Python function
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "FUNC");
+}
+
+python*:::function-entry,
+python*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+python*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg0)), arg2, "func", self->depth * 2, "",
+	    copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+python*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s<- %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg0)), arg2, "func", self->depth * 2, "",
+	    copyinstr(arg1));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/py_flowtime.d b/external/cddl/dtracetoolkit/dist/Bin/py_flowtime.d
new file mode 100755
index 0000000..16497d7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/py_flowtime.d
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_flowtime.d - snoop Python functions with flow and delta times.
+ *                 Written for the Python DTrace provider.
+ *
+ * $Id: py_flowtime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces shell activity from Python programs on the system that are
+ * running with Python provider support.
+ *
+ * USAGE: py_flowtime.d			# hit Ctrl-C to end
+ *
+ * This watches Python function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FUNC		Python function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+self int last;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s %9s  -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "FUNC");
+}
+
+python*:::function-entry,
+python*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+python*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), this->delta, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+python*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %9d %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), this->delta, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/py_funccalls.d b/external/cddl/dtracetoolkit/dist/Bin/py_funccalls.d
new file mode 100755
index 0000000..641d11a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/py_funccalls.d
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_funccalls.d - measure Python function calls using DTrace.
+ *                  Written for the Python DTrace provider.
+ *
+ * $Id: py_funccalls.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * This traces Python activity from all running programs on the system
+ * which support the Python DTrace provider.
+ *
+ * USAGE: py_funccalls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *              FILE		Filename that contained the function
+ *		FUNC		Python function name
+ *		CALLS		Function calls during this sample
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	@funcs[basename(copyinstr(arg0)), copyinstr(arg1)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-32s %-32s %8s\n", "FILE", "FUNC", "CALLS");
+	printa(" %-32s %-32s %@8d\n", @funcs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/py_malloc.d b/external/cddl/dtracetoolkit/dist/Bin/py_malloc.d
new file mode 100755
index 0000000..aa816f0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/py_malloc.d
@@ -0,0 +1,81 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_malloc.d - Python libc malloc analysis.
+ *               Written for the Python DTrace provider.
+ *
+ * $Id: py_malloc.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This is an expiremental script to identify who is calling malloc() for
+ * memory allocation, and to print distribution plots of the requested bytes.
+ * If a malloc() occured while in a Python function, then that function is
+ * identified as responsible; else the caller of malloc() is identified as
+ * responsible - which will be a function from the Python engine.
+ *
+ * USAGE: py_malloc.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python$target:::function-entry
+{
+	self->file = basename(copyinstr(arg0));
+	self->name = copyinstr(arg1);
+}
+
+python$target:::function-return
+{
+	self->file = 0;
+	self->name = 0;
+}
+
+pid$target:libc:malloc:entry
+/self->file != NULL/
+{
+	@malloc_func_size[self->file, self->name] = sum(arg0);
+	@malloc_func_dist[self->file, self->name] = quantize(arg0);
+}
+
+pid$target:libc:malloc:entry
+/self->name == NULL/
+{
+	@malloc_lib_size[usym(ucaller)] = sum(arg0);
+	@malloc_lib_dist[usym(ucaller)] = quantize(arg0);
+}
+
+
+dtrace:::END
+{
+	printf("\nPython malloc byte distributions by engine caller,\n\n");
+	printa("   %A, total bytes = %@d %@d\n", @malloc_lib_size,
+	    @malloc_lib_dist);
+
+	printf("\nPython malloc byte distributions by Python file and ");
+	printf("function,\n\n");
+	printa("   %s, %s, bytes total = %@d %@d\n", @malloc_func_size,
+	    @malloc_func_dist);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/py_mallocstk.d b/external/cddl/dtracetoolkit/dist/Bin/py_mallocstk.d
new file mode 100755
index 0000000..3cc9682
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/py_mallocstk.d
@@ -0,0 +1,49 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_mallocstk.d - Python libc malloc analysis with full stack traces.
+ *                  Written for the Python DTrace provider.
+ *
+ * $Id: py_mallocstk.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE: py_mallocstk.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+/* tune as desired, */
+#pragma D option jstackframes=64
+#pragma D option jstackstrsize=1024
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+pid$target:libc:malloc:entry
+{
+	@mallocs[jstack()] = quantize(arg0);
+}
+
+dtrace:::END
+{
+	printf("\nPython malloc byte distributions by stack trace,\n\n");
+	printa(@mallocs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/py_profile.d b/external/cddl/dtracetoolkit/dist/Bin/py_profile.d
new file mode 100755
index 0000000..d8604a8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/py_profile.d
@@ -0,0 +1,79 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * py_profile.d - sample stack traces with Python translations using DTrace.
+ *                Written for the Python DTrace provider.
+ *
+ * $Id: py_profile.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: py_profile.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This samples stack traces for the process specified. This stack trace
+ * will cross the Python engine and system libraries, and insert 
+ * translations for Python stack frames where appropriate. This is best
+ * explained with an example stack frame output,
+ *
+ *            libpython2.4.so.1.0`PyEval_EvalFrame+0x2fbf
+ *              [ ./func_loop.py:5 (func_c) ]
+ *            libpython2.4.so.1.0`fast_function+0xa8
+ *            libpython2.4.so.1.0`call_function+0xda
+ *            libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ *              [ ./func_loop.py:11 (func_b) ]
+ *            libpython2.4.so.1.0`fast_function+0xa8
+ *            libpython2.4.so.1.0`call_function+0xda
+ *            libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ *              [ ./func_loop.py:14 (func_a) ]
+ *            libpython2.4.so.1.0`fast_function+0xa8
+ *            libpython2.4.so.1.0`call_function+0xda
+ *            libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ *              [ ./func_loop.py:16 (?) ]
+ *
+ * The lines in square brackets are the native Python frames, the rest
+ * are the Python engine.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option jstackstrsize=1024
+
+/*
+ * Tunables
+ */
+#define DEPTH	10		/* stack depth, frames */
+#define RATE	1001		/* sampling rate, Hertz */
+#define TOP	25		/* number of stacks to output */
+
+dtrace:::BEGIN
+{
+	printf("Sampling %d-level stacks at %d Hertz... Hit Ctrl-C to end.\n",
+	    DEPTH, RATE);
+}
+
+profile-RATE
+/pid == $target/
+{
+	@stacks[jstack(DEPTH)] = count();
+}
+
+dtrace:::END
+{
+	trunc(@stacks, TOP);
+	printf("Top %d most frequently sampled stacks,\n", TOP);
+	printa(@stacks);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/py_syscalls.d b/external/cddl/dtracetoolkit/dist/Bin/py_syscalls.d
new file mode 100755
index 0000000..399dc97
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/py_syscalls.d
@@ -0,0 +1,63 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_syscalls.d - count Python function calls and syscalls using DTrace.
+ *                 Written for the Python DTrace provider.
+ *
+ * $Id: py_syscalls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: py_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Python program
+ *		TYPE		Type of call (func/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and function names are printed if available.
+ * The filename for syscalls may be printed as "python", if the program
+ * was invoked using the form "python filename" rather than running the
+ * program with an interpreter line.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python$target:::function-entry
+{
+	@calls[basename(copyinstr(arg0)), "func", copyinstr(arg1)] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[basename(execname), "syscall", probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf("\nCalls for PID %d,\n\n", $target);
+	printf(" %-32s %-10s %-22s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa(" %-32s %-10s %-22s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/py_syscolors.d b/external/cddl/dtracetoolkit/dist/Bin/py_syscolors.d
new file mode 100755
index 0000000..eb47121
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/py_syscolors.d
@@ -0,0 +1,116 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_syscolors.d - trace Python function flow plus syscalls, in color.
+ *                  Written for the Python DTrace provider.
+ *
+ * $Id: py_syscolors.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: py_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches Python function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Python program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func/syscall)
+ *		NAME		Python function or syscall name
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+        color_python = "\033[2;35m";		/* violet, faint */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	self->depth = 0;
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+python$target:::function-entry,
+python$target:::function-return,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+python$target:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_python,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+python$target:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_python,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/py_who.d b/external/cddl/dtracetoolkit/dist/Bin/py_who.d
new file mode 100755
index 0000000..8c156d5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/py_who.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_who.d - trace Python function execution by process using DTrace.
+ *            Written for the Python DTrace provider.
+ *
+ * $Id: py_who.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Python activity from all Python programs on the system that are
+ * running with Python provider support.
+ *
+ * USAGE: py_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of Python
+ *		UID		User ID of the owner
+ *		FUNCS		Number of function calls
+ *		FILE		Pathname of the Python program
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	@lines[pid, uid, copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %s\n", "PID", "UID", "FUNCS", "FILE");
+	printa("   %6d %6d %@6d %s\n", @lines);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_calldist.d b/external/cddl/dtracetoolkit/dist/Bin/rb_calldist.d
new file mode 100755
index 0000000..d7dbe971
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_calldist.d
@@ -0,0 +1,120 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_calldist.d - measure Ruby elapsed times for types of operation.
+ *                 Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_calldist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_calldist.d 	# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Ruby
+ * operations. Use rb_calltime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Ruby program
+ *		2		Type of call (method/obj-new/gc)
+ *		3		Name of call
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+ruby*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg2));
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+ruby*:::object-create-start
+{
+	self->object = timestamp;
+}
+
+ruby*:::object-create-done
+/self->object/
+{
+	this->elapsed = timestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg1));
+	this->file = this->file != NULL ? this->file : ".";
+
+	@types[this->file, "obj-new", copyinstr(arg0)] =
+	    quantize(this->elapsed / 1000);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+ruby*:::gc-begin
+{
+	self->gc = timestamp;
+}
+
+ruby*:::gc-end
+/self->gc/
+{
+	this->elapsed = timestamp - self->gc;
+	self->gc = 0;
+
+	@types[".", "gc", "-"] = quantize(this->elapsed / 1000);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("\nElapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("\nExclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_calls.d b/external/cddl/dtracetoolkit/dist/Bin/rb_calls.d
new file mode 100755
index 0000000..a97cfb8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_calls.d
@@ -0,0 +1,87 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_calls.d - count Ruby calls using DTrace.
+ *              Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_calls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_calls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		TYPE		Type of call (method/obj-new/...)
+ *		NAME		Descriptive name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+        printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+        @calls[basename(copyinstr(arg2)), "method", this->name] = count();
+}
+
+ruby*:::object-create-start
+{
+	this->name = copyinstr(arg0);
+	this->filename = basename(copyinstr(arg1));
+	this->filename = this->filename != NULL ? this->filename : ".";
+        @calls[this->filename, "obj-new", this->name] = count();
+}
+
+ruby*:::object-free
+{
+	this->name = copyinstr(arg0);
+        @calls[".", "obj-free", this->name] = count();
+}
+
+ruby*:::gc-begin
+{
+        @calls[".", "gc", "begin"] = count();
+}
+
+ruby*:::raise
+{
+	this->name = copyinstr(arg0);
+        @calls[basename(copyinstr(arg1)), "raise", this->name] = count();
+}
+
+ruby*:::rescue
+{
+        @calls[basename(copyinstr(arg0)), "rescue", "-"] = count();
+}
+
+dtrace:::END
+{
+        printf(" %-24s %-10s %-30s %8s\n", "FILE", "TYPE", "NAME", "CALLS");
+        printa(" %-24s %-10s %-30s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_calltime.d b/external/cddl/dtracetoolkit/dist/Bin/rb_calltime.d
new file mode 100755
index 0000000..ab6c8fc
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_calltime.d
@@ -0,0 +1,129 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_calltime.d - measure Ruby elapsed times for types of operation.
+ *                 Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_calltime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		TYPE		Type of call (method/obj-new/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+ruby*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg2));
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+ruby*:::object-create-start
+{
+	self->object = timestamp;
+}
+
+ruby*:::object-create-done
+/self->object/
+{
+	this->elapsed = timestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg1));
+	this->file = this->file != NULL ? this->file : ".";
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "obj-new", this->name] = count();
+	@types[this->file, "obj-new", this->name] = sum(this->elapsed);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+ruby*:::gc-begin
+{
+	self->gc = timestamp;
+}
+
+ruby*:::gc-end
+/self->gc/
+{
+	this->elapsed = timestamp - self->gc;
+	self->gc = 0;
+	@num[".", "gc", "-"] = count();
+	@types[".", "gc", "-"] = sum(this->elapsed);
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nElapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_cpudist.d b/external/cddl/dtracetoolkit/dist/Bin/rb_cpudist.d
new file mode 100755
index 0000000..085d6a7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_cpudist.d
@@ -0,0 +1,120 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_cpudist.d - measure Ruby on-CPU times for types of operation.
+ *                Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_cpudist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_cpudist.d 		# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Ruby
+ * operations. Use rb_cputime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Ruby program
+ *		2		Type of call (method/obj-new/gc)
+ *		3		Name of call
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+ruby*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg2));
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+ruby*:::object-create-start
+{
+	self->object = vtimestamp;
+}
+
+ruby*:::object-create-done
+/self->object/
+{
+	this->oncpu = vtimestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg1));
+	this->file = this->file != NULL ? this->file : ".";
+
+	@types[this->file, "obj-new", copyinstr(arg0)] =
+	    quantize(this->oncpu / 1000);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+ruby*:::gc-begin
+{
+	self->gc = vtimestamp;
+}
+
+ruby*:::gc-end
+/self->gc/
+{
+	this->oncpu = vtimestamp - self->gc;
+	self->gc = 0;
+
+	@types[".", "gc", "-"] = quantize(this->oncpu / 1000);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+dtrace:::END
+{
+	printf("\nOn-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("\nExclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_cputime.d b/external/cddl/dtracetoolkit/dist/Bin/rb_cputime.d
new file mode 100755
index 0000000..9273ea2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_cputime.d
@@ -0,0 +1,129 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_cputime.d - measure Ruby on-CPU times for types of operation.
+ *                Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_cputime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_cputime.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		TYPE		Type of call (method/obj-new/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+ruby*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg2));
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+ruby*:::object-create-start
+{
+	self->object = vtimestamp;
+}
+
+ruby*:::object-create-done
+/self->object/
+{
+	this->oncpu = vtimestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg1));
+	this->file = this->file != NULL ? this->file : ".";
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "obj-new", this->name] = count();
+	@types[this->file, "obj-new", this->name] = sum(this->oncpu);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+ruby*:::gc-begin
+{
+	self->gc = vtimestamp;
+}
+
+ruby*:::gc-end
+/self->gc/
+{
+	this->oncpu = vtimestamp - self->gc;
+	self->gc = 0;
+	@num[".", "gc", "-"] = count();
+	@types[".", "gc", "-"] = sum(this->oncpu);
+	self->exclude[self->depth] += this->oncpu;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nElapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_flow.d b/external/cddl/dtracetoolkit/dist/Bin/rb_flow.d
new file mode 100755
index 0000000..e240b12
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_flow.d
@@ -0,0 +1,72 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_flow.d - snoop Ruby execution showing method flow using DTrace.
+ *             Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_flow.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_flow.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this method belongs to
+ *		CLASS::METHOD	Ruby classname and method
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * Filename and method names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-22s -- %s\n", "C", "TIME(us)", "FILE",
+	    "CLASS::METHOD");
+}
+
+ruby*:::function-entry
+{
+	printf("%3d %-16d %-22s %*s-> %s::%s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg2)), self->depth * 2, "", copyinstr(arg0),
+	    copyinstr(arg1));
+	self->depth++;
+}
+
+ruby*:::function-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-22s %*s<- %s::%s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg2)), self->depth * 2, "", copyinstr(arg0),
+	    copyinstr(arg1));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_flowinfo.d b/external/cddl/dtracetoolkit/dist/Bin/rb_flowinfo.d
new file mode 100755
index 0000000..b0b1675
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_flowinfo.d
@@ -0,0 +1,88 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_flowinfo.d - snoop Ruby function (method) flow with info using DTrace.
+ *                 Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_flowinfo.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_flowinfo.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Ruby program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (method)
+ *		NAME		Ruby class and method name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * Filename and method names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+ruby*:::function-entry,
+ruby*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+ruby*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg2)), arg3, "method", self->depth * 2, "",
+	    this->name);
+	self->depth++;
+	self->last = timestamp;
+}
+
+ruby*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s<- %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg2)), arg3, "method", self->depth * 2, "",
+	    this->name);
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_flowtime.d b/external/cddl/dtracetoolkit/dist/Bin/rb_flowtime.d
new file mode 100755
index 0000000..710054f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_flowtime.d
@@ -0,0 +1,84 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_flowtime.d - snoop Ruby function (method) flow using DTrace.
+ *                 Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_flowtime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_flowtime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this method belongs to
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		CLASS::METHOD	Ruby class and method name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * Filename and method names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s %9s -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "CLASS::METHOD");
+}
+
+ruby*:::function-entry,
+ruby*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+ruby*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s-> %s::%s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg2)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0), copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+ruby*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %9d %*s<- %s::%s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg2)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0), copyinstr(arg1));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_funccalls.d b/external/cddl/dtracetoolkit/dist/Bin/rb_funccalls.d
new file mode 100755
index 0000000..e8ba7e4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_funccalls.d
@@ -0,0 +1,57 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_funccalls.d - count Ruby function (method) calls using DTrace.
+ *                  Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_funccalls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_funccalls.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		METHOD		Method name
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+        printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+        @funcs[basename(copyinstr(arg2)), copyinstr(arg0), copyinstr(arg1)] =
+	    count();
+}
+
+dtrace:::END
+{
+        printf(" %-32.32s %-16s %-16s %8s\n", "FILE", "CLASS", "METHOD",
+	    "CALLS");
+        printa(" %-32.32s %-16s %-16s %@8d\n", @funcs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_lines.d b/external/cddl/dtracetoolkit/dist/Bin/rb_lines.d
new file mode 100755
index 0000000..5b3891a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_lines.d
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_lines.d - trace Ruby line execution by process using DTrace.
+ *              Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_lines.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Ruby activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		LINE		Line number
+ *		COUNT		Number of times a line was executed
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::line
+{
+	@calls[basename(copyinstr(arg0)), arg1] = count();
+}
+
+dtrace:::END
+{
+	printf(" %32s:%-6s %10s\n", "FILE", "LINE", "COUNT");
+	printa(" %32s:%-6d %@10d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_malloc.d b/external/cddl/dtracetoolkit/dist/Bin/rb_malloc.d
new file mode 100755
index 0000000..7898b5a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_malloc.d
@@ -0,0 +1,80 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_malloc.d - Ruby operations and libc malloc statistics.
+ *               Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_malloc.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * WARNING: This script is not 100% accurate; This prints libc malloc() byte
+ * distributions by "recent" Ruby operation, which we hope will be usually
+ * relevant. This is an experimental script that may be improved over time.
+ *
+ * USAGE: rb_malloc.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		1		Filename of the Ruby program
+ *		2		Type of operation (method/objnew/startup)
+ *		3		Name of operation
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+self string filename;
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby$target:::function-entry
+{
+	self->file = basename(copyinstr(arg2));
+	self->type = "method";
+	self->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+}
+
+ruby$target:::object-create-start
+{
+	self->file = basename(copyinstr(arg1));
+	self->type = "objnew";
+	self->name = copyinstr(arg0);
+}
+
+pid$target:libc:malloc:entry
+/self->file != NULL/
+{
+	@mallocs[self->file, self->type, self->name] = quantize(arg0);
+}
+
+pid$target:libc:malloc:entry
+/self->file == NULL/
+{
+	@mallocs["ruby", "startup", "-"] = quantize(arg0);
+}
+
+
+dtrace:::END
+{
+	printf("Ruby malloc byte distributions by recent Ruby operation,\n");
+	printa("   %s, %s, %s %@d\n", @mallocs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_objcpu.d b/external/cddl/dtracetoolkit/dist/Bin/rb_objcpu.d
new file mode 100755
index 0000000..d31d90e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_objcpu.d
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_objcpu.d - measure Ruby object creation on-CPU time using DTrace.
+ *               Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_objcpu.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_objcpu.d	 	# hit Ctrl-C to end
+ *
+ * Class names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::object-create-start
+{
+	self->vstart = vtimestamp;
+}
+
+ruby*:::object-create-done
+/self->vstart/
+{
+	this->oncpu = vtimestamp - self->vstart;
+	@total = sum(this->oncpu);
+	@dist[copyinstr(arg0)] = quantize(this->oncpu / 1000);
+	self->vstart = 0;
+}
+
+dtrace:::END
+{
+	normalize(@total, 1000000);
+	printa("Total object creation on-CPU time (ms): %@d\n\n", @total);
+	printf("Object creation on-CPU time distributions (us),\n");
+	printa(@dist);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_objnew.d b/external/cddl/dtracetoolkit/dist/Bin/rb_objnew.d
new file mode 100755
index 0000000..beafd1c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_objnew.d
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_objnew.d - count Ruby object creation using DTrace.
+ *               Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_objnew.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_objnew.d	 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		CLASS		Class of new object
+ *		COUNT		Number of object creations during tracing
+ *
+ * Filename and class names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::object-create-done
+{
+	@objs[basename(copyinstr(arg1)), copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-24s %-36s %8s\n", "FILE", "CLASS", "COUNT");
+	printa(" %-24.24s %-36s %@8d\n", @objs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_stat.d b/external/cddl/dtracetoolkit/dist/Bin/rb_stat.d
new file mode 100755
index 0000000..5248c62
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_stat.d
@@ -0,0 +1,146 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_stat.d - Ruby operation stats using DTrace.
+ *             Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_stat.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_stat.d [interval [count]]
+ *
+ * FIELDS:
+ *		EXEC/s		Ruby programs executed per second, including
+ *				those without Ruby provider support
+ *		METHOD/s	Methods called, per second
+ *		OBJNEW/s	Objects created, per second
+ *		OBJFRE/s	Objects freed, per second
+ *		RAIS/s		Raises, per second
+ *		RESC/s		Rescues, per second
+ *		GC/s		Garbage collects, per second
+ *
+ * The numbers are counts for the interval specified. The default interval
+ * is 1 second.
+ *
+ * If you see a count in "EXECS" but not in the other columns, then your
+ * Ruby software is probably not running with the DTrace Ruby provider.
+ * See Ruby/Readme.
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+dtrace:::BEGIN
+{
+	execs = methods = objnew = objfree = gc = raised = rescue = 0;
+	lines = SCREEN + 1;
+	interval = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	secs = interval;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %8s %8s %8s %8s %6s %6s %6s\n", "TIME", "EXEC/s",
+	    "METHOD/s", "OBJNEW/s", "OBJFRE/s", "RAIS/s", "RESC/s", "GC/s");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Tally Data
+ */
+proc:::exec-success
+/execname == "ruby"/
+{
+	execs++;
+}
+
+ruby*:::function-entry
+{
+	methods++;
+}
+
+ruby*:::object-create-start
+{
+	objnew++;
+}
+
+ruby*:::object-free
+{
+	objfree++;
+}
+
+ruby*:::raise
+{
+	raised++;
+}
+
+ruby*:::rescue
+{
+	rescue++;
+}
+
+ruby*:::gc-begin
+{
+	gc++;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %8d %8d %8d %8d %6d %6d %6d\n", walltimestamp,
+	    execs / interval, methods / interval, objnew / interval,
+	    objfree / interval, raised / interval, rescue / interval,
+	    gc / interval);
+	execs = methods = objnew = objfree = gc = raised = rescue = 0;
+	secs = interval;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_syscalls.d b/external/cddl/dtracetoolkit/dist/Bin/rb_syscalls.d
new file mode 100755
index 0000000..85632b1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_syscalls.d
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_syscalls.d - count Ruby calls and syscalls using DTrace.
+ *                 Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_syscalls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: rb_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		TYPE		Type of call (method/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and method names are printed if available.
+ * The filename for syscalls may be printed as "ruby", if the program
+ * was invoked using the form "ruby filename" rather than running the
+ * program with an interpreter line.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+self string filename;
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby$target:::function-entry
+{
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	@calls[basename(copyinstr(arg2)), "method", this->name] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[basename(execname), "syscall", probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf("\nCalls for PID %d,\n\n", $target);
+	printf(" %-32s %-10s %-22s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa(" %-32s %-10s %-22s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_syscolors.d b/external/cddl/dtracetoolkit/dist/Bin/rb_syscolors.d
new file mode 100755
index 0000000..fb64205
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_syscolors.d
@@ -0,0 +1,133 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_syscolors.d - trace Ruby method flow plus syscalls, in color.
+ *                  Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_syscolors.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: rb_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches Ruby method entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Ruby program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (method/line/syscall)
+ *		NAME		Ruby method or syscall name
+ *
+ * Filename and method names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	/*
+	 * The following are terminal color escape sequences.
+	 * Change them to whatever you prefer, eg HTML font tags.
+	 */
+        color_ruby = "\033[2;35m";		/* violet, faint */
+        color_line = "\033[1;35m";		/* violet, bold */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+ruby$target:::function-entry,
+ruby$target:::function-return,
+ruby$target:::line,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+ruby$target:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_ruby,
+	    cpu, pid, this->delta, basename(copyinstr(arg2)), arg3, "method",
+	    self->depth * 2, "", this->name, color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+ruby$target:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	self->depth--;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_ruby,
+	    cpu, pid, this->delta, basename(copyinstr(arg2)), arg3, "method",
+	    self->depth * 2, "", this->name, color_off);
+	self->last = timestamp;
+}
+
+ruby$target:::line
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-- %s\n", color_line,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg1, "line",
+	    self->depth * 2, "", color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth--;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rb_who.d b/external/cddl/dtracetoolkit/dist/Bin/rb_who.d
new file mode 100755
index 0000000..c5e88f9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rb_who.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_who.d - trace Ruby line execution by process using DTrace.
+ *            Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_who.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces Ruby activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of Ruby
+ *		UID		User ID of the owner
+ *		LINES		Number of times a line was executed
+ *		FILE		Pathname of the Ruby program
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::line
+{
+	@lines[pid, uid, copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %10s %s\n", "PID", "UID", "LINES", "FILE");
+	printa("   %6d %6d %@10d %s\n", @lines);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/readbytes.d b/external/cddl/dtracetoolkit/dist/Bin/readbytes.d
new file mode 100755
index 0000000..f8238a0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/readbytes.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * readbytes.d - read bytes by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: readbytes.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ */
+
+sysinfo:::readch { @bytes[execname] = sum(arg0); }
diff --git a/external/cddl/dtracetoolkit/dist/Bin/readdist.d b/external/cddl/dtracetoolkit/dist/Bin/readdist.d
new file mode 100755
index 0000000..5a6a157
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/readdist.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * readdist.d - read distribution by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: readdist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ */
+
+sysinfo:::readch { @dist[execname] = quantize(arg0); }
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rfileio.d b/external/cddl/dtracetoolkit/dist/Bin/rfileio.d
new file mode 100755
index 0000000..c92214a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rfileio.d
@@ -0,0 +1,91 @@
+#!/usr/sbin/dtrace -s
+/*
+ * rfileio.d - read file I/O stats, with cache miss rate.
+ *             Written using DTrace (Solaris 10 3/05)
+ *
+ * This script provides statistics on the number of reads and the bytes
+ * read from filesystems (logical), and the number of bytes read from
+ * disk (physical). A summary is printed every five seconds by file.
+ *
+ * A total miss-rate is also provided for the file system cache.
+ *
+ * $Id: rfileio.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	rfileio.d
+ *
+ * IDEA: Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 19-Mar-2006  Brendan Gregg   Created this.
+ * 23-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+self int trace;
+uint64_t lbytes;
+uint64_t pbytes;
+
+dtrace:::BEGIN
+{
+	trace("Tracing...\n");
+}
+
+fbt::fop_read:entry
+/self->trace == 0 && args[0]->v_path/
+{
+	self->pathname = cleanpath(args[0]->v_path);
+	@rio[self->pathname, "logical"] = count();
+	lbytes += args[1]->uio_resid;
+	self->size = args[1]->uio_resid;
+	self->uiop = args[1];
+}
+
+fbt::fop_read:return
+/self->size/
+{
+	@rbytes[self->pathname, "logical"] =
+	    sum(self->size - self->uiop->uio_resid);
+	self->size = 0;
+	self->uiop = 0;
+	self->pathname = 0;
+}
+
+io::bdev_strategy:start
+/self->size && args[0]->b_flags & B_READ/
+{
+	@rio[self->pathname, "physical"] = count();
+	@rbytes[self->pathname, "physical"] = sum(args[0]->b_bcount);
+	pbytes += args[0]->b_bcount;
+}
+
+profile:::tick-5s
+{
+	trunc(@rio, 20);
+	trunc(@rbytes, 20);
+	printf("\033[H\033[2J");
+	printf("\nRead IOPS, top 20 (count)\n");
+	printa("%-54s %10s %10@d\n", @rio);
+	printf("\nRead Bandwidth, top 20 (bytes)\n");
+	printa("%-54s %10s %10@d\n", @rbytes);
+	printf("\nTotal File System miss-rate: %d%%\n",
+	    lbytes ? 100 * pbytes / lbytes : 0);
+	trunc(@rbytes);
+	trunc(@rio);
+	lbytes = pbytes = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rfsio.d b/external/cddl/dtracetoolkit/dist/Bin/rfsio.d
new file mode 100755
index 0000000..610f28f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rfsio.d
@@ -0,0 +1,98 @@
+#!/usr/sbin/dtrace -s
+/*
+ * rfsio.d - read FS I/O stats, with cache miss rate.
+ *           Written using DTrace (Solaris 10 3/05)
+ *
+ * This script provides statistics on the number of reads and the bytes
+ * read from filesystems (logical), and the number of bytes read from
+ * disk (physical). A summary is printed every five seconds by filesystem.
+ *
+ * A total miss-rate is also provided for the file system cache.
+ *
+ * $Id: rfsio.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE:	rfsio.d
+ *
+ * IDEA: Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 19-Mar-2006  Brendan Gregg   Created this.
+ * 23-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+self int trace;
+uint64_t lbytes;
+uint64_t pbytes;
+
+dtrace:::BEGIN
+{
+	trace("Tracing...\n");
+}
+
+fbt::fop_read:entry
+/self->trace == 0/
+{
+	self->fs_mount = args[0]->v_vfsp == `rootvfs ? "/" :
+	    args[0]->v_vfsp->vfs_vnodecovered ?
+	    stringof(args[0]->v_vfsp->vfs_vnodecovered->v_path) : NULL;
+}
+
+fbt::fop_read:entry
+/self->fs_mount != NULL/
+{
+	@rio[self->fs_mount, "logical"] = count();
+	lbytes += args[1]->uio_resid;
+	self->size = args[1]->uio_resid;
+	self->uiop = args[1];
+}
+
+fbt::fop_read:return
+/self->size/
+{
+	@rbytes[self->fs_mount, "logical"] =
+	    sum(self->size - self->uiop->uio_resid);
+	self->size = 0;
+	self->uiop = 0;
+	self->fs_mount = 0;
+}
+
+io::bdev_strategy:start
+/self->size && args[0]->b_flags & B_READ/
+{
+	@rio[self->fs_mount, "physical"] = count();
+	@rbytes[self->fs_mount, "physical"] = sum(args[0]->b_bcount);
+	pbytes += args[0]->b_bcount;
+}
+
+profile:::tick-5s
+{
+	trunc(@rio, 20);
+	trunc(@rbytes, 20);
+	printf("\033[H\033[2J");
+	printf("\nRead IOPS (count)\n");
+	printa("%-32s %10s %10@d\n", @rio);
+	printf("\nRead Bandwidth (bytes)\n");
+	printa("%-32s %10s %10@d\n", @rbytes);
+	printf("\nTotal File System miss-rate: %d%%\n",
+	    lbytes ? 100 * pbytes / lbytes : 0);
+	trunc(@rbytes);
+	trunc(@rio);
+	lbytes = pbytes = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/runocc.d b/external/cddl/dtracetoolkit/dist/Bin/runocc.d
new file mode 100755
index 0000000..9429b96
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/runocc.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -s
+/*
+ * runocc.d - run queue occupancy by CPU.
+ *            Written using DTrace (Solaris 10 3/05).
+ *
+ * This prints the dispatcher run queue occupancy by CPU each second.
+ * A consistant run queue occupancy is a sign of CPU saturation.
+ *
+ * The value is similar to that seen in "sar -q", however this is
+ * calculated in a more accurate manner - sampling at 1000 Hertz.
+ *
+ * $Id: runocc.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE:	runocc.d
+ *
+ * FIELDS:
+ *		CPU		cpu ID
+ *		%runocc		% run queue occupancy, sampled at 1000 Hertz
+ *
+ * SEE ALSO: Solaris Internals 2nd Ed, vol 2, CPU chapter.
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 02-Mar-2006  Brendan Gregg   Created this.
+ * 24-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+profile-1000hz
+/curthread->t_cpu->cpu_disp->disp_nrunnable/
+{
+	@qocc[cpu] = count();
+}
+
+profile:::tick-1sec
+{
+	normalize(@qocc, 10);
+	printf("\n%8s %8s\n", "CPU", "%runocc");
+	printa("%8d %@8d\n", @qocc);
+	clear(@qocc);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rwbbypid.d b/external/cddl/dtracetoolkit/dist/Bin/rwbbypid.d
new file mode 100755
index 0000000..11610e0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rwbbypid.d
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -s
+/*
+ * rwbbypid.d - read/write bytes by PID.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * This script tracks the bytes read and written at the syscall level
+ * by processes, printing the totals in a report. This is tracking the
+ * successful number of bytes read or written.
+ *
+ * $Id: rwbbypid.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	rwbbypid.d		# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		process name
+ *		DIR		direction, Read or Write
+ *		BYTES		total bytes
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sysinfo:::readch
+{
+	@bytes[pid, execname, "R"] = sum(arg0);
+}
+
+sysinfo:::writech
+{
+	@bytes[pid, execname, "W"] = sum(arg0);
+}
+
+dtrace:::END
+{
+	printf("%6s %-24s %4s %16s\n", "PID", "CMD", "DIR", "BYTES");
+	printa("%6d %-24s %4s %@16d\n", @bytes);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rwbypid.d b/external/cddl/dtracetoolkit/dist/Bin/rwbypid.d
new file mode 100755
index 0000000..c231861
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rwbypid.d
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -s
+/*
+ * rwbypid.d - read/write calls by PID.
+ *             Written using DTrace (Solaris 10 3/05)
+ *
+ * This script tracks the number of reads and writes at the syscall level
+ * by processes, printing the totals in a report. This matches reads
+ * and writes whether they succeed or not.
+ *
+ * $Id: rwbypid.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	rwbypid.d			# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		process name
+ *		DIR		Read or Write
+ *		COUNT		total calls
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+syscall::*read*:entry
+{
+	@calls[pid, execname, "R"] = sum(arg0);
+}
+
+syscall::*write*:entry
+{
+	@calls[pid, execname, "W"] = sum(arg0);
+}
+
+dtrace:::END
+{
+	printf("%6s %-24s %4s %8s\n", "PID", "CMD", "DIR", "COUNT");
+	printa("%6d %-24s %4s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rwbytype.d b/external/cddl/dtracetoolkit/dist/Bin/rwbytype.d
new file mode 100755
index 0000000..0954b39
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rwbytype.d
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -s
+/*
+ * rwbytype.d - read/write bytes by vnode type.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * This program identifies the vnode type of read/write activity - whether
+ * that is for regular files, sockets, character special devices, etc.
+ *
+ * $Id: rwbytype.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       rwbytype.d    # hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		number of rwbytype
+ *		CMD		process name
+ *		VTYPE		vnode type (describes I/O type)
+ *		DIR		direction (Read/Write)
+ *		BYTES		bytes transferred
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 18-Oct-2005  Brendan Gregg   Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+typedef struct vtype2str {
+	string code;
+};
+
+translator struct vtype2str < int T > {
+	/* the order has been picked for performance reasons */
+	code =
+	    T == 1 ? "reg"   :
+	    T == 9 ? "sock"  :
+	    T == 4 ? "chr"   :
+	    T == 6 ? "fifo"  :
+	    T == 8 ? "proc"  :
+	    T == 2 ? "dir"   :
+	    T == 3 ? "blk"   :
+	    T == 5 ? "lnk"   :
+	    T == 7 ? "door"  :
+	    T == 10 ? "port" :
+	    T == 11 ? "bad"  : "non";
+};
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+fbt::fop_read:entry,
+fbt::fop_write:entry
+{
+	self->type = xlate <struct vtype2str *>(args[0]->v_type)->code;
+	self->size = args[1]->uio_resid;
+	self->uiop = args[1];
+}
+
+fbt::fop_read:return
+/self->uiop/
+{
+	this->resid = self->uiop->uio_resid;
+	@bytes[pid, execname, self->type, "R"] = sum(self->size - this->resid);
+	self->type = 0;
+	self->size = 0;
+	self->uiop = 0;
+}
+
+/* this is delibrately redundant code for performance reasons */
+fbt::fop_write:return
+/self->uiop/
+{
+	this->resid = self->uiop->uio_resid;
+	@bytes[pid, execname, self->type, "W"] = sum(self->size - this->resid);
+	self->type = 0;
+	self->size = 0;
+	self->uiop = 0;
+}
+
+dtrace:::END
+{
+	printf("%-6s %-16s %6s %4s %9s\n",
+	    "PID", "CMD", "VTYPE", "DIR", "BYTES");
+	printa("%-6d %-16s %6s %4s %@9d\n", @bytes);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rwsnoop b/external/cddl/dtracetoolkit/dist/Bin/rwsnoop
new file mode 100755
index 0000000..6e019fb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rwsnoop
@@ -0,0 +1,233 @@
+#!/bin/sh
+#
+# rwsnoop - snoop read/write events.
+#           Originally written using DTrace (Solaris 10 3/05).
+#
+# This is measuring reads and writes at the application level. This matches
+# the syscalls read, and write.
+#
+# $Id: rwsnoop,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE:	rwsnoop [-jPtvZ] [-n name] [-p pid]
+# 
+#		rwsnoop		# default output
+#
+#		-P		# print parent process ID
+#		-t		# print timestamp, us
+#		-v		# print time, string
+#		-J		# print jail ID
+#		-n name		# this process name only
+#		-p PID		# this PID only
+#	eg,
+#		rwsnoop -J		# print jail ID
+#		rwsnoop -n bash 	# monitor processes named "bash"
+#		rwsnoop > out.txt	# recommended
+#
+# NOTE:
+# 	rwsnoop usually prints plenty of output, which itself will cause
+#	more output. It can be better to redirect the output of rwsnoop
+#	to a file to prevent this.
+#
+# FIELDS:
+#		TIME		Timestamp, us
+#		TIMESTR		Time, string
+#		JAIL		JAIL ID
+#		UID		User ID
+#		PID		Process ID
+#		PPID		Parent Process ID
+#		CMD		Process name
+#		D		Direction, Read or Write
+#		BYTES		Total bytes during sample, -1 for error
+#		FILE		Filename, if file based
+#
+# Reads and writes that are not file based, for example with sockets, will
+# print "<unknown>" as the filename.
+#
+# SEE ALSO:	rwtop
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# TODO:
+#  Track readv and writev.
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 24-Jul-2005   Brendan Gregg   Created this.
+# 17-Sep-2005	   "      "	Increased switchrate.
+# 17-Sep-2005	   "      "	Last update.
+# 26-Jul-2014   George Neville-Neil	Port to FreeBSD
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_name=0; opt_pid=0; opt_jailid=0; opt_time=0; opt_timestr=0
+opt_bytes=1; filter=0; pname=.; pid=0; opt_ppid=0;
+
+### process options
+while getopts n:Pp:jtvZ name
+do
+	case $name in
+	n)	opt_name=1; pname=$OPTARG ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	P)	opt_ppid=1 ;;
+	t)	opt_time=1 ;;
+	v)	opt_timestr=1 ;;
+	J)	opt_jailid=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: rwsnoop [-jPtvZ] [-n name] [-p pid]
+ 
+		                -P       # print parent process ID
+		                -t       # print timestamp, us
+		                -v       # print time, string
+		                -J       # print jail ID
+		                -n name  # this process name only
+		                -p PID   # this PID only
+		   eg,
+		        rwsnoop          # default output
+		        rwsnoop -J       # print jail ID
+		        rwsnoop -n bash  # monitor processes named "bash"
+		END
+		exit 1
+	esac
+done
+
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [ $opt_name -ne 0 ]; then
+	filter=1
+fi
+
+if [ $opt_pid -ne 0 ]; then
+	filter=1
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_jailid 	= '$opt_jailid';
+ inline int OPT_bytes 	= '$opt_bytes';
+ inline int OPT_name 	= '$opt_name';
+ inline int OPT_ppid 	= '$opt_ppid';
+ inline int OPT_pid 	= '$opt_pid';
+ inline int OPT_time 	= '$opt_time';
+ inline int OPT_timestr	= '$opt_timestr';
+ inline int FILTER 	= '$filter';
+ inline int PID		= '$pid';
+ inline string NAME 	= "'$pname'";
+ 
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	/* print header */
+	OPT_time    ? printf("%-14s ", "TIME") : 1;
+	OPT_timestr ? printf("%-20s ", "TIMESTR") : 1;
+	OPT_jailid    ? printf("%5s ", "JAILID") : 1;
+	OPT_ppid    ? printf("%6s ", "PPID") : 1;
+	printf("%5s %6s %-12s %4s %1s %7s\n",
+	    "UID", "PID", "CMD", "FD", "D", "BYTES");
+ }
+
+ /*
+  * Check event is being traced
+  */
+ syscall::*read:entry,
+ syscall::*write:entry
+ /pid != $pid/
+ { 
+	/* default is to trace unless filtering, */
+	self->ok = FILTER ? 0 : 1;
+
+	/* check each filter, */
+	(OPT_name == 1 && NAME == execname)? self->ok = 1 : 1;
+	(OPT_pid == 1 && PID == pid) ? self->ok = 1 : 1;
+
+	/* save file descriptor */
+	self->fd = self->ok ? arg0 : 0;
+ }
+
+ /*
+  * Save read details
+  */
+ syscall::*read:return
+ /self->ok/
+ {
+	self->rw = "R";
+	self->size = arg0;
+ }
+
+ /*
+  * Save write details
+  */
+ syscall::*write:entry
+ /self->ok/
+ {
+	self->rw = "W";
+	self->size = arg2;
+ }
+
+ /*
+  * Process event
+  */
+ syscall::*read:return,
+ syscall::*write:entry
+ /self->ok/
+ {
+	/*
+	 * Fetch filename
+         * XXX Not yet implemented.
+	 */
+/*
+
+	this->filistp = curthread->t_procp->p_user.u_finfo.fi_list;
+	this->ufentryp = (uf_entry_t *)((uint64_t)this->filistp +
+	    (uint64_t)self->fd * (uint64_t)sizeof(uf_entry_t));
+	this->filep = this->ufentryp->uf_file;
+	this->vnodep = this->filep != 0 ? this->filep->f_vnode : 0;
+	self->vpath = this->vnodep ? (this->vnodep->v_path != 0 ? 
+	    cleanpath(this->vnodep->v_path) : "<unknown>") : "<unknown>";
+*/
+	/*
+	 * Print details
+	 */
+	OPT_time    ? printf("%-14d ", timestamp / 1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_jailid    ? printf("%5d ", curpsinfo->pr_jailid) : 1;
+	OPT_ppid    ? printf("%6d ", ppid) : 1;
+	printf("%5d %6d %-12.12s %4d %1s %7d\n",
+	    uid, pid, execname, self->fd, self->rw, (int)self->size);
+	
+	self->ok = 0;
+	self->fd = 0;
+	self->rw = 0;
+	self->size = 0;
+	self->vpath = 0;
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Bin/rwtop b/external/cddl/dtracetoolkit/dist/Bin/rwtop
new file mode 100755
index 0000000..9811abf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/rwtop
@@ -0,0 +1,292 @@
+#!/usr/bin/ksh
+#
+# rwtop - display top read/write bytes by process.
+#         Written using DTrace (Solaris 10 3/05).
+#
+# This is measuring reads and writes at the application level. This matches
+# read and write system calls.
+#
+# $Id: rwtop,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	rwtop [-cC] [-j|-Z] [-n name] [-p pid]
+#		      [-t top] [interval [count]]
+# 
+#		rwtop		# default output, 5 second samples
+#
+#		-C		# don't clear the screen
+#		-c		# print counts
+#		-j		# print project ID
+#		-Z		# print zone ID
+#		-n name		# this process name only
+#		-p PID		# this PID only
+#		-t top		# print top number only
+#	eg,
+#		rwtop 1		# 1 second samples
+#		rwtop -t 10	# print top 10 only
+#		rwtop -n bash	# monitor processes named "bash"
+#		rwtop -C 5 12	# print 12 x 5 second samples
+#
+# FIELDS:
+#		ZONE		Zone ID
+#		PROJ		Project ID
+#		UID		User ID
+#		PID		Process ID
+#		PPID		Parent Process ID
+#		CMD		Process name
+#		D		Direction, Read or Write
+#		BYTES		Total bytes during sample
+#		app_r		total reads during sample, Kbytes
+#		app_w		total writes during sample, Kbytes
+#
+# SEE ALSO:	iotop
+#
+# INSPIRATION:  top(1) by William LeFebvre
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 24-Jul-2005   Brendan Gregg   Created this.
+# 20-Apr-2006	   "      "	Last update.
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_name=0; opt_pid=0; opt_clear=1; opt_proj=0; opt_zone=0
+opt_def=1; opt_bytes=1; filter=0; pname=.; pid=0
+opt_top=0; opt_count=0; interval=5; count=-1; top=0
+
+### process options
+while getopts Cchn:p:jt:Z name
+do
+	case $name in
+	C)	opt_clear=0 ;;
+	c)	opt_count=1; opt_bytes=0 ;;
+	n)	opt_name=1; pname=$OPTARG ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	j)	opt_proj=1; opt_def=0 ;;
+	t)	opt_top=1; top=$OPTARG ;;
+	Z)	opt_zone=1; opt_def=0 ;;
+	h|?)	cat <<-END >&2
+		USAGE: rwtop [-cC] [-j|-Z] [-n name] [-p pid]
+		             [-t top] [interval [count]]
+ 
+		                -C        # don't clear the screen
+		                -c        # print counts
+		                -j        # print project ID
+		                -Z        # print zone ID
+		                -n name   # this process name only
+		                -p PID    # this PID only
+		                -t top    # print top number only
+		   eg,
+		        rwtop          # default output, 5 second samples
+		        rwtop 1        # 1 second samples
+		        rwtop -t 10    # print top 10 only
+		        rwtop -n bash  # monitor processes named "bash"
+		        rwtop -C 5 12  # print 12 x 5 second samples
+		END
+		exit 1
+	esac
+done
+
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_proj && opt_zone )); then
+        opt_proj=0
+fi
+if (( opt_name || opt_pid )); then
+	filter=1
+fi
+if (( opt_clear )); then
+        clearstr=`clear`
+else
+        clearstr=.
+fi
+
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_def 	= '$opt_def';
+ inline int OPT_proj 	= '$opt_proj';
+ inline int OPT_zone 	= '$opt_zone';
+ inline int OPT_clear 	= '$opt_clear';
+ inline int OPT_bytes 	= '$opt_bytes';
+ inline int OPT_count	= '$opt_count';
+ inline int OPT_name 	= '$opt_name';
+ inline int OPT_pid 	= '$opt_pid';
+ inline int OPT_top 	= '$opt_top';
+ inline int INTERVAL 	= '$interval';
+ inline int COUNTER 	= '$count';
+ inline int FILTER 	= '$filter';
+ inline int TOP 	= '$top';
+ inline int PID		= '$pid';
+ inline string NAME 	= "'$pname'";
+ inline string CLEAR 	= "'$clearstr'";
+ 
+ #pragma D option quiet
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+        /* starting values */
+        counts = COUNTER;
+        secs = INTERVAL;
+        app_r = 0;
+        app_w = 0;
+
+        printf("Tracing... Please wait.\n");
+ }
+
+ /*
+  * Check event is being traced
+  */
+ sysinfo:::readch,
+ sysinfo:::writech
+ /pid != $pid/
+ { 
+	/* default is to trace unless filtering, */
+	this->ok = FILTER ? 0 : 1;
+
+	/* check each filter, */
+	(OPT_name == 1 && NAME == execname)? this->ok = 1 : 1;
+	(OPT_pid == 1 && PID == pid) ? this->ok = 1 : 1;
+ }
+
+ /*
+  * Increment tallys
+  */
+ sysinfo:::readch
+ /this->ok/
+ {
+	app_r += arg0;
+ }
+ sysinfo:::writech
+ /this->ok/
+ {
+	app_w += arg0;
+ }
+
+ /*
+  * Process event
+  */
+ sysinfo:::readch,
+ sysinfo:::writech
+ /this->ok/
+ {
+	/* choose statistic to track */
+	this->value = OPT_bytes ? arg0 : 1;
+	
+	/*
+	 * Save details
+	 */
+	OPT_def ? @out[uid, pid, ppid, execname,
+	    probename == "readch" ? "R" : "W"] = sum(this->value) : 1;
+	OPT_proj ? @out[curpsinfo->pr_projid, pid, ppid, execname,
+	    probename == "readch" ? "R" : "W"] = sum(this->value) : 1;
+	OPT_zone ? @out[curpsinfo->pr_zoneid, pid, ppid, execname,
+	    probename == "readch" ? "R" : "W"] = sum(this->value) : 1;
+
+	this->ok = 0;
+ }
+
+ /*
+  * Timer
+  */
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /*
+  * Print Report
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* fetch 1 min load average */
+	this->load1a  = `hp_avenrun[0] / 65536;
+	this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+
+	/* convert counters to Kbytes */
+	app_r /= 1024;
+	app_w /= 1024;
+
+	/* print status */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+	printf("%Y,  load: %d.%02d,  app_r: %6d KB,  app_w: %6d KB\n\n",
+	    walltimestamp, this->load1a, this->load1b, app_r, app_w);
+
+	/* print headers */
+	OPT_def  ? printf("  UID ") : 1;
+	OPT_proj ? printf(" PROJ ") : 1;
+	OPT_zone ? printf(" ZONE ") : 1;
+	printf("%6s %6s %-16s %1s",
+	    "PID", "PPID", "CMD", "D");
+	OPT_bytes ? printf(" %16s\n", "BYTES") : 1;
+	OPT_count ? printf(" %16s\n", "COUNT") : 1;
+
+	/* truncate to top lines if needed */
+	OPT_top ? trunc(@out, TOP) : 1;
+
+	/* print data */
+	printa("%5d %6d %6d %-16s %1s %16@d\n", @out);
+	printf("\n");
+
+	/* clear data */
+	trunc(@out);
+	app_r = 0;
+	app_w = 0;
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /*
+  * End of program
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+
+ /*
+  * Cleanup for Ctrl-C
+  */
+ dtrace:::END
+ {
+	trunc(@out);
+ }
+'
+
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sampleproc b/external/cddl/dtracetoolkit/dist/Bin/sampleproc
new file mode 100755
index 0000000..2898a77
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sampleproc
@@ -0,0 +1,105 @@
+#!/usr/bin/ksh
+#
+# sampleproc - sample processes on the CPUs.
+#              Written using DTrace (Solaris 10 3/05).
+#
+# This program samples which process is on each CPU, at a particular
+# configurable rate. This can be used as an estimate for which process
+# is consuming the most CPU time.
+#
+# $Id: sampleproc,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+# 
+# USAGE:	sampleproc [hertz]	# hit Ctrl-C to end sample
+#
+# FIELDS:
+#		PID        Process ID
+#		COMMAND    Command name
+#		COUNT      Number of samples
+#		PERCENT    Percent of CPU usage
+#
+# BASED ON: /usr/demo/dtrace/prof.d
+#
+# SEE ALSO:
+#           DTrace Guide "profile Provider" chapter (docs.sun.com)
+#
+# PORTIONS: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 09-Jun-2005   Brendan Gregg   Created this.
+# 09-Jul-2005	   "      "	Last update.
+
+### Usage
+function usage
+{
+        cat <<-END >&2
+	USAGE: sampleproc [hertz]
+	   eg,
+	       sampleproc               # defaults to 100 hertz
+	       sampleproc 1000          # 1000 hertz
+	END
+	exit 1
+}
+
+### Process arguments
+if (( $# == 0 )); then
+        hertz=100
+elif (( $# == 1 )); then
+	hertz=$1
+	if [[ "$hertz" = *[a-zA-Z]* ]]; then
+		print "ERROR2: $hertz hertz is invalid." >&2
+		exit 2
+	fi
+	if (( hertz > 5000 )); then
+		print "ERROR3: $hertz hertz is too fast (max 5000)." >&2
+		exit 3
+	fi
+	if (( hertz < 1 )); then
+		print "ERROR4: $hertz hertz is too low (min 1)." >&2
+		exit 4
+	fi
+else
+	usage
+fi
+
+### Run DTrace
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ dtrace:::BEGIN
+ {
+	printf("Sampling at %d hertz... Hit Ctrl-C to end.\n",$1);
+	self->start = timestamp;
+ }
+
+ profile:::profile-$1
+ {
+	@Proc[pid, execname] = count();
+	@BigProc[pid, execname] = sum(1000); /* dont ask */
+ }
+
+ dtrace:::END
+ {
+	this->end = timestamp;
+
+	printf("%5s %-20s %10s\n", "PID", "CMD", "COUNT");
+	printa("%5d %-20s %10@d\n", @Proc);
+
+	normalize(@BigProc, 
+	    ((`ncpus_online * $1 * (this->end - self->start))/100000000));
+	printf("\n%5s %-20s %10s\n", "PID", "CMD", "PERCENT");
+	printa("%5d %-20s %10@d\n", @BigProc);
+ }
+' $hertz
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sar-c.d b/external/cddl/dtracetoolkit/dist/Bin/sar-c.d
new file mode 100755
index 0000000..d09496a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sar-c.d
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -s
+/*
+ * sar-c.d - sar -c demo in DTrace.
+ *           Written using DTrace (Solaris 10 3/05).
+ *
+ * This has been written to demonstrate fetching similar data as sar -c
+ * from DTrace. This program is intended as a starting point for other
+ * DTrace scripts, by beginning with familiar statistics.
+ *
+ * $Id: sar-c.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	sar-c.d
+ *
+ * FIELDS:
+ *		scall/s		System calls
+ *		sread/s		reads
+ *		swrit/s		writes
+ *		fork/s		forks
+ *		exec/s		execs
+ *		rchar/s		read characters
+ *		wchar/s		write characters
+ *
+ * IDEA: David Rubio, who also wrote the original.
+ *
+ * NOTES:
+ *  As this program does not use Kstat, there is no summary since boot line.
+ *
+ * SEE ALSO:	sar(1)
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 12-Jun-2005  Brendan Gregg   Created this.
+ * 12-Jun-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+inline int SCREEN = 21;
+
+/*
+ * Initialise variables
+ */
+dtrace:::BEGIN
+{
+	scall = 0; sread = 0; swrit = 0; fork = 0; exec = 0;
+	rchar = 0; wchar = 0;
+	lines = SCREEN + 1;
+}
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN,
+tick-1sec
+/lines++ > SCREEN/
+{
+	printf("%-20s %7s %7s %7s %7s %7s %8s %8s\n",
+	    "Time", "scall/s", "sread/s", "swrit/s", "fork/s",
+	    "exec/s", "rchar/s", "wchar/s");
+	lines = 0;
+}
+
+/*
+ * Probe events
+ */
+syscall:::entry    { scall++; }
+sysinfo:::sysread  { sread++; }
+sysinfo:::syswrite { swrit++; }
+sysinfo:::sysfork  { fork++;  }
+sysinfo:::sysvfork { fork++;  }
+sysinfo:::sysexec  { exec++;  }
+sysinfo:::readch   { rchar += arg0; }
+sysinfo:::writech  { wchar += arg0; }
+
+/*
+ * Print output line
+ */
+profile:::tick-1sec
+{
+	/* print line */
+	printf("%20Y %7d %7d %7d %4d.00 %4d.00 %8d %8d\n",
+	    walltimestamp, scall, sread, swrit, fork, exec, rchar, wchar);
+
+	/* clear counters */
+	scall = 0; sread = 0; swrit = 0; fork = 0; exec = 0;
+	rchar = 0; wchar = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/seeksize.d b/external/cddl/dtracetoolkit/dist/Bin/seeksize.d
new file mode 100755
index 0000000..309ce66
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/seeksize.d
@@ -0,0 +1,85 @@
+#!/usr/sbin/dtrace -s
+/*
+ * seeksize.d - analyse disk head seek distance by process.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * Disk I/O events caused by processes will in turn cause the disk heads
+ * to seek. This program analyses those seeks, so that we can determine
+ * if processes are causing the disks to seek in a "random" or "sequential"
+ * manner.
+ *
+ * $Id: seeksize.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	seeksize.d		# wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID	process ID
+ *		CMD	command and argument list
+ *		value	distance in disk blocks (sectors)
+ *		count	number of I/O operations
+ *
+ * SEE ALSO: bitesize.d, iosnoop
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 11-Sep-2004	Brendan Gregg	Created this.
+ * 10-Oct-2004	   "      "	Rewrote to use the io provider.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+self int last[dev_t];
+
+/*
+ * Process io start
+ */
+io:genunix::start
+/self->last[args[0]->b_edev] != 0/
+{
+	/* calculate seek distance */
+	this->last = self->last[args[0]->b_edev];
+	this->dist = (int)(args[0]->b_blkno - this->last) > 0 ?
+	    args[0]->b_blkno - this->last : this->last - args[0]->b_blkno;
+
+	/* store details */
+	@Size[pid, curpsinfo->pr_psargs] = quantize(this->dist);
+}
+
+io:genunix::start
+{
+	/* save last position of disk head */
+	self->last[args[0]->b_edev] = args[0]->b_blkno +
+	    args[0]->b_bcount / 512;
+}
+
+/*
+ * Print final report
+ */
+dtrace:::END
+{
+	printf("\n%8s  %s\n", "PID", "CMD");
+	printa("%8d  %S\n%@d\n", @Size);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/setuids.d b/external/cddl/dtracetoolkit/dist/Bin/setuids.d
new file mode 100755
index 0000000..ca9320d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/setuids.d
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -s
+/*
+ * setuids.d - snoop setuid calls. This can examine user logins.
+ *             Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: setuids.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE:	setuids.d
+ *
+ * FIELDS:
+ *		UID	user ID (from)
+ *		SUID	set user ID (to)
+ *		PPID	parent process ID
+ *		PID	process ID
+ *		PCMD	parent command
+ *		CMD	command (full arguments)
+ *
+ * SEE ALSO: BSM auditing
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-May-2004	Brendan Gregg	Created this.
+ * 08-May-2005	   "      " 	Used modern variable builtins.
+ * 28-Jul-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("%5s %5s %5s %5s %-12s %s\n",
+	    "UID", "SUID", "PPID", "PID", "PCMD", "CMD");
+}
+
+/*
+ * Save values
+ */
+syscall::setuid:entry
+{
+	self->uid = uid;
+	self->suid = arg0;
+	self->ok = 1;
+}
+
+/*
+ * Print output on success
+ */
+syscall::setuid:return
+/arg0 == 0 && self->ok/
+{
+	printf("%5d %5d %5d %5d %-12s %S\n",
+	    self->uid, self->suid, ppid, pid,
+	    curthread->t_procp->p_parent->p_user.u_comm,
+	    curpsinfo->pr_psargs);
+}
+
+/*
+ * Cleanup
+ */
+syscall::setuid:return
+{
+	self->uid = 0;
+	self->suid = 0;
+	self->ok = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sh_calldist.d b/external/cddl/dtracetoolkit/dist/Bin/sh_calldist.d
new file mode 100755
index 0000000..a598520
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sh_calldist.d
@@ -0,0 +1,119 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_calldist.d - measure Bourne shell elapsed times for types of operation.
+ *                 Written for the sh DTrace provider.
+ *
+ * $Id: sh_calldist.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_calldist.d 	# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for shell
+ * operations. Use sh_calltime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the shell or shellscript
+ *		2		Type of call (func/builtin/cmd)
+ *		3		Name of call
+ *
+ * Filename and call names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+sh*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+sh*:::builtin-entry
+{
+	self->builtin = timestamp;
+}
+
+sh*:::builtin-return
+/self->builtin/
+{
+	this->elapsed = timestamp - self->builtin;
+	self->builtin = 0;
+
+	@types[basename(copyinstr(arg0)), "builtin", copyinstr(arg1)] =
+	    quantize(this->elapsed / 1000);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+sh*:::command-entry
+{
+	self->command = timestamp;
+}
+
+sh*:::command-return
+/self->command/
+{
+	this->elapsed = timestamp - self->command;
+	self->command = 0;
+
+	@types[basename(copyinstr(arg0)), "cmd", copyinstr(arg1)] =
+	    quantize(this->elapsed / 1000);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("Elapsed times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("Exclusive function elapsed times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("Inclusive function elapsed times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sh_calls.d b/external/cddl/dtracetoolkit/dist/Bin/sh_calls.d
new file mode 100755
index 0000000..895e562
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sh_calls.d
@@ -0,0 +1,72 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_calls.d - count Bourne calls (func/builtin/cmd/subsh) using DTrace.
+ *              Written for the sh DTrace provider.
+ *
+ * $Id: sh_calls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_calls.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		TYPE		Type of call (func/builtin/cmd/subsh)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::function-entry
+{
+	@calls[basename(copyinstr(arg0)), "func", copyinstr(arg1)] = count();
+}
+
+sh*:::builtin-entry
+{
+	@calls[basename(copyinstr(arg0)), "builtin", copyinstr(arg1)] = count();
+}
+
+sh*:::command-entry
+{
+	@calls[basename(copyinstr(arg0)), "cmd", copyinstr(arg1)] = count();
+}
+
+sh*:::subshell-entry
+/arg1 != 0/
+{
+	@calls[basename(copyinstr(arg0)), "subsh", "-"] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-22s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa(" %-22s %-10s %-32s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sh_calltime.d b/external/cddl/dtracetoolkit/dist/Bin/sh_calltime.d
new file mode 100755
index 0000000..48f235b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sh_calltime.d
@@ -0,0 +1,136 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_calltime.d - measure Bourne shell elapsed times for types of operation.
+ *                 Written for the sh DTrace provider.
+ *
+ * $Id: sh_calltime.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		TYPE		Type of call (func/builtin/cmd/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and call names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+sh*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+sh*:::builtin-entry
+{
+	self->builtin = timestamp;
+}
+
+sh*:::builtin-return
+/self->builtin/
+{
+	this->elapsed = timestamp - self->builtin;
+	self->builtin = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "builtin", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types[this->file, "builtin", this->name] = sum(this->elapsed);
+	@types["-", "total", "-"] = sum(this->elapsed);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+sh*:::command-entry
+{
+	self->command = timestamp;
+}
+
+sh*:::command-return
+/self->command/
+{
+	this->elapsed = timestamp - self->command;
+	self->command = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "cmd", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types[this->file, "cmd", this->name] = sum(this->elapsed);
+	@types["-", "total", "-"] = sum(this->elapsed);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("\nCounts,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nElapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sh_cpudist.d b/external/cddl/dtracetoolkit/dist/Bin/sh_cpudist.d
new file mode 100755
index 0000000..8c1180e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sh_cpudist.d
@@ -0,0 +1,142 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_cpudist.d - measure Bourne shell on-CPU times for types of operation.
+ *                Written for the sh DTrace provider.
+ *
+ * $Id: sh_cpudist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_cpudist.d 		# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of on-CPU time for shell
+ * operations. Use sh_cputime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the shell or shellscript
+ *		2		Type of call (func/builtin/cmd)
+ *		3		Name of call
+ *
+ * Filename and call names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::function-entry
+{
+	self->depth++;
+	self->function[self->depth] = vtimestamp;
+	self->exclude[self->depth] = 0;
+}
+
+sh*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+sh*:::builtin-entry
+{
+	self->builtin = vtimestamp;
+}
+
+sh*:::builtin-return
+/self->builtin/
+{
+	this->oncpu = vtimestamp - self->builtin;
+	self->builtin = 0;
+
+	@types[basename(copyinstr(arg0)), "builtin", copyinstr(arg1)] =
+	    quantize(this->oncpu / 1000);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+sh*:::command-entry
+{
+	incmd[pid] = basename(copyinstr(arg0));
+	depth[pid] = self->depth;
+}
+
+sh*:::command-return
+{
+	incmd[pid] = 0;
+}
+
+proc:::exec-success
+{
+	/*
+	 * Due to thread timing after fork(), this probe can fire before
+	 * sh*:::command-entry has, which means we can't predicate this
+	 * exec() away just yet. Store the vtimestamp in case it is needed.
+	 */
+	self->command = vtimestamp;
+}
+
+proc:::exit
+/incmd[ppid] == NULL/
+{
+	self->command = 0;
+}
+
+proc:::exit
+/incmd[ppid] != NULL/
+{
+	this->oncpu = vtimestamp - self->command;
+	self->command = 0;
+
+	@types[incmd[ppid], "cmd", execname] = quantize(this->oncpu / 1000);
+
+	self->exclude[depth[ppid]] += this->oncpu;
+	incmd[ppid] = 0;
+	depth[ppid] = 0;
+}
+
+dtrace:::END
+{
+	printf("On-CPU times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("Exclusive function on-CPU times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("Inclusive function on-CPU times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sh_cputime.d b/external/cddl/dtracetoolkit/dist/Bin/sh_cputime.d
new file mode 100755
index 0000000..a18ee6e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sh_cputime.d
@@ -0,0 +1,158 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_cputime.d - measure Bourne shell on-CPU times for types of operation.
+ *                Written for the sh DTrace provider.
+ *
+ * $Id: sh_cputime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_cputime.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		TYPE		Type of call (func/builtin/cmd/total)
+ *		NAME		Name of call
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and call names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::function-entry
+{
+	self->depth++;
+	self->function[self->depth] = vtimestamp;
+	self->exclude[self->depth] = 0;
+}
+
+sh*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+sh*:::builtin-entry
+{
+	self->builtin = vtimestamp;
+}
+
+sh*:::builtin-return
+/self->builtin/
+{
+	this->oncpu = vtimestamp - self->builtin;
+	self->builtin = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "builtin", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types[this->file, "builtin", this->name] = sum(this->oncpu);
+	@types["-", "total", "-"] = sum(this->oncpu);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+sh*:::command-entry
+{
+	incmd[pid] = basename(copyinstr(arg0));
+	depth[pid] = self->depth;
+}
+
+sh*:::command-return
+{
+	incmd[pid] = 0;
+}
+
+proc:::exec-success
+{
+	/*
+	 * Due to thread timing after fork(), this probe can fire before
+	 * sh*:::command-entry has, which means we can't predicate this
+	 * exec() away just yet. Store the vtimestamp in case it is needed.
+	 */
+	self->command = vtimestamp;
+}
+
+proc:::exit
+/incmd[ppid] == NULL/
+{
+	self->command = 0;
+}
+
+proc:::exit
+/incmd[ppid] != NULL/
+{
+	this->oncpu = vtimestamp - self->command;
+	self->command = 0;
+
+	@num[incmd[ppid], "cmd", execname] = count();
+	@num["-", "total", "-"] = count();
+	@types[incmd[ppid], "cmd", execname] = sum(this->oncpu);
+	@types["-", "total", "-"] = sum(this->oncpu);
+
+	self->exclude[depth[ppid]] += this->oncpu;
+	incmd[ppid] = 0;
+	depth[ppid] = 0;
+}
+
+dtrace:::END
+{
+	printf("\nCounts,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nOn-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sh_flow.d b/external/cddl/dtracetoolkit/dist/Bin/sh_flow.d
new file mode 100755
index 0000000..b3e62c14
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sh_flow.d
@@ -0,0 +1,85 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_flow.d - snoop Bourne shell execution showing function flow using DTrace.
+ *             Written for the sh DTrace provider.
+ *
+ * $Id: sh_flow.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_flow.d			# hit Ctrl-C to end
+ *
+ * This watches shell function entries and returns, and indents child
+ * function calls. Shell builtins are also printed.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		NAME		Shell function, builtin or command name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *		>		builtin
+ *		|		external command
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	self->depth = 0;
+	printf("%3s %-16s %-16s -- %s\n", "C", "TIME(us)", "FILE", "NAME");
+}
+
+sh*:::function-entry
+{
+	printf("%3d %-16d %-16s %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+	self->depth++;
+}
+
+sh*:::function-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+}
+
+sh*:::builtin-entry
+{
+	printf("%3d %-16d %-16s %*s> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+}
+
+sh*:::command-entry
+{
+	printf("%3d %-16d %-16s %*s| %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sh_flowinfo.d b/external/cddl/dtracetoolkit/dist/Bin/sh_flowinfo.d
new file mode 100755
index 0000000..843d831
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sh_flowinfo.d
@@ -0,0 +1,152 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_flowinfo.d - snoop Bourne shell flow with additional info.
+ *                 Written for the sh DTrace provider.
+ *
+ * $Id: sh_flowinfo.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_flowinfo.d			# hit Ctrl-C to end
+ *
+ * This watches shell function entries and returns, and indents child
+ * function calls. Shell builtins and external commands are also printed.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the shell script
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func/builtin/cmd/subsh)
+ *		NAME		Shell function, builtin or command name
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	self->depth = 0;
+	printf("%3s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+sh*:::function-entry,
+sh*:::function-return,
+sh*:::builtin-entry,
+sh*:::builtin-return,
+sh*:::command-entry,
+sh*:::command-return,
+sh*:::subshell-entry,
+sh*:::subshell-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+sh*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s<- %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "func", self->depth * 2,
+	    "", copyinstr(arg1));
+	self->last = timestamp;
+}
+
+sh*:::builtin-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), arg2, "builtin",
+	    self->depth * 2, "", copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh*:::builtin-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s<- %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "builtin",
+	    self->depth * 2, "", copyinstr(arg1));
+	self->last = timestamp;
+}
+
+sh*:::command-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), arg2, "cmd",
+	    self->depth * 2, "", copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh*:::command-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s<- %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "cmd",
+	    self->depth * 2, "", copyinstr(arg1));
+	self->last = timestamp;
+}
+
+sh*:::subshell-entry
+/arg1 != 0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s-> pid %d\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "subsh",
+	    self->depth * 2, "", arg1);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh*:::subshell-return
+/self->last/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s<- = %d\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "subsh",
+	    self->depth * 2, "", arg1);
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sh_flowtime.d b/external/cddl/dtracetoolkit/dist/Bin/sh_flowtime.d
new file mode 100755
index 0000000..5a404e0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sh_flowtime.d
@@ -0,0 +1,118 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_flowtime.d - snoop Bourne shell execution with flow and delta times.
+ *                 Written for the sh DTrace provider.
+ *
+ * $Id: sh_flowtime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_flowtime.d			# hit Ctrl-C to end
+ *
+ * This watches shell function entries and returns, and indents child
+ * function calls. Shell builtins are also printed.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		NAME		Shell function or builtin name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *		 >		builtin
+ *		 |		external command
+ *
+ * DELTAs:
+ *		->		previous line to the start of this function
+ *		<-		previous line to the end of this function
+ *		>		previous line to the end of this builtin
+ *		|		previous line to the end of this command
+ *
+ * See sh_flowinfo.d for more verbose and more straightforward delta times.
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+self uint64_t last;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s %9s -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "NAME");
+}
+
+sh*:::function-entry,
+sh*:::function-return,
+sh*:::builtin-return,
+sh*:::command-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+sh*:::function-entry
+{
+	this->elapsed = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), this->elapsed, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh*:::function-return
+{
+	this->elapsed = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %9d %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), this->elapsed, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->last = timestamp;
+}
+
+sh*:::builtin-return
+{
+	this->elapsed = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), this->elapsed, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->last = timestamp;
+}
+
+sh*:::command-return
+{
+	this->elapsed = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s| %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), this->elapsed, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sh_lines.d b/external/cddl/dtracetoolkit/dist/Bin/sh_lines.d
new file mode 100755
index 0000000..289c692
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sh_lines.d
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_lines.d - trace Bourne shell line execution using DTrace.
+ *              Written for the sh DTrace provider.
+ *
+ * $Id: sh_lines.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_lines.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		LINE		Line number
+ *		COUNT		Number of times a line was executed
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::line
+{
+	@calls[basename(copyinstr(arg0)), arg1] = count();
+}
+
+dtrace:::END
+{
+	printf(" %32s:%-6s %10s\n", "FILE", "LINE", "COUNT");
+	printa(" %32s:%-6d %@10d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sh_pidcolors.d b/external/cddl/dtracetoolkit/dist/Bin/sh_pidcolors.d
new file mode 100755
index 0000000..a002e29
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sh_pidcolors.d
@@ -0,0 +1,203 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_pidcolors.d - Demonstration of deeper DTrace Bourne shell analysis.
+ *                  Written for the sh DTrace provider.
+ *
+ * $Id: sh_pidcolors.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: sh_pidcolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This extends sh_syscolors.d by including some "pid" provider tracing
+ * as a starting point for deeper analysis. Currently it adds the probes,
+ *
+ *	pid$target:a.out:e*:entry,
+ *	pid$target:a.out:e*:return
+ *
+ * which means, all functions from the /usr/bin/sh binary that begin with
+ * the letter "e". This adds about 34 probes. Customise it to whichever
+ * parts of /usr/bin/sh or the system libraries you are interested in.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the shell script
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func/builtin/cmd/line/shell)
+ *		NAME		Shell function, builtin or command name
+ *
+ * The filename for syscalls may be printed as the shell name, if the
+ * script was invoked using the form "shell filename" rather than running
+ * the script with an interpreter line.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+        color_shell = "\033[2;35m";		/* violet, faint */
+        color_line = "\033[1;35m";		/* violet, bold */
+        color_lib = "\033[2;34m";		/* blue, faint */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+sh$target:::function-entry,
+sh$target:::function-return,
+sh$target:::builtin-entry,
+sh$target:::command-entry,
+syscall:::entry,
+syscall:::return,
+/* Customize Here, */
+pid$target:a.out:e*:entry,
+pid$target:a.out:e*:return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+sh$target:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::builtin-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "builtin",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::builtin-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "builtin",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::command-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "cmd",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::command-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "cmd",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::line
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-- %s\n", color_line,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg1, "line",
+	    self->depth * 2, "", color_off);
+	self->last = timestamp;
+}
+
+/* Customise Here, */
+pid$target:a.out:e*:entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_lib,
+	    cpu, pid, this->delta, basename(execname), "sh",
+	    self->depth * 2, "", probefunc, color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+/* Customise Here, */
+pid$target:a.out:e*:return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_lib,
+	    cpu, pid, this->delta, basename(execname), "sh",
+	    self->depth * 2, "", probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, basename(execname), "syscall",
+	    self->depth * 2, "", probefunc, color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, basename(execname), "syscall",
+	    self->depth * 2, "", probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sh_stat.d b/external/cddl/dtracetoolkit/dist/Bin/sh_stat.d
new file mode 100755
index 0000000..8bb3386
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sh_stat.d
@@ -0,0 +1,133 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_stat.d - Bourne shell operation stats using DTrace.
+ *             Written for the sh DTrace provider.
+ *
+ * $Id: sh_stat.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all sh processes on the system that are running
+ * with sh provider support.
+ *
+ * USAGE: sh_stat.d [interval [count]]
+ *
+ * FIELDS:
+ *		EXEC/s		Bourne shells executed per second, including
+ *				those without sh provider support
+ *		FUNC/s		Functions called, per second
+ *		BLTIN/s		Builtins called, per second
+ *		SUB-SH/s	Sub-shells called, per second
+ *		CMD/s		External commands called, per second
+ *
+ * The numbers are counts for the interval specified. The default interval
+ * is 1 second.
+ *
+ * If you see a count in "EXECS" but not in the other columns, then sh
+ * scripts may be running without the DTrace sh provider. See Shell/Readme.
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+dtrace:::BEGIN
+{
+	execs = funcs = builtins = subs = cmds = 0;
+	lines = SCREEN + 1;
+	interval = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	secs = interval;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %8s %8s %8s %8s %8s\n", "TIME", "EXEC/s", "FUNCS/s",
+	    "BLTINS/s", "SUB-SH/s", "CMD/s");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Tally Data
+ */
+proc:::exec-success
+/execname == "sh"/
+{
+	execs++;
+}
+
+sh*:::function-entry
+{
+	funcs++;
+}
+
+sh*:::builtin-entry
+{
+	builtins++;
+}
+
+sh*:::subshell-entry
+/arg0 != 0/
+{
+	subs++;
+}
+
+sh*:::command-entry
+{
+	cmds++;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %8d %8d %8d %8d %8d\n", walltimestamp, execs / interval,
+	    funcs / interval, builtins / interval, subs / interval,
+	    cmds / interval);
+	execs = funcs = builtins = subs = cmds = 0;
+	secs = interval;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sh_syscalls.d b/external/cddl/dtracetoolkit/dist/Bin/sh_syscalls.d
new file mode 100755
index 0000000..86d8165
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sh_syscalls.d
@@ -0,0 +1,83 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_syscalls.d - count Bourne calls and syscalls using DTrace.
+ *                 Written for the sh DTrace provider.
+ *
+ * $Id: sh_syscalls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: sh_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		TYPE		Type of call (func/builtin/cmd/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and function names are printed if available.
+ * The filename for syscalls may be printed as the shell name, if the
+ * script was invoked using the form "shell filename" rather than running
+ * the script with an interpreter line.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+self string filename;
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh$target:::function-entry,
+sh$target:::builtin-entry,
+sh$target:::command-entry
+/self->filename == NULL/
+{
+	self->filename = basename(copyinstr(arg0));
+}
+
+sh$target:::function-entry
+{
+	@calls[self->filename, "func", copyinstr(arg1)] = count();
+}
+
+sh$target:::builtin-entry
+{
+	@calls[self->filename, "builtin", copyinstr(arg1)] = count();
+}
+
+sh$target:::command-entry
+{
+	@calls[self->filename, "cmd", copyinstr(arg1)] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[basename(execname), "syscall", probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf("\nCalls for PID %d,\n\n", $target);
+	printf(" %-32s %-10s %-22s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa(" %-32s %-10s %-22s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sh_syscolors.d b/external/cddl/dtracetoolkit/dist/Bin/sh_syscolors.d
new file mode 100755
index 0000000..5f4fcb9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sh_syscolors.d
@@ -0,0 +1,169 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_syscolors.d - trace Bourne shell flow plus syscalls, in color.
+ *                  Written for the sh DTrace provider.
+ *
+ * $Id: sh_syscolors.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE: sh_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches shell function entries and returns, and indents child
+ * function calls. Shell builtins, commands and lines are also printed.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the shell script
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func/builtin/cmd/line/shell)
+ *		NAME		Shell function, builtin or command name
+ *
+ * The filename for syscalls may be printed as the shell name, if the
+ * script was invoked using the form "shell filename" rather than running
+ * the script with an interpreter line.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+        color_shell = "\033[2;35m";		/* violet, faint */
+        color_line = "\033[1;35m";		/* violet, bold */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+sh$target:::function-entry,
+sh$target:::function-return,
+sh$target:::builtin-entry,
+sh$target:::command-entry,
+sh$target:::line,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+sh$target:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::builtin-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "builtin",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::builtin-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "builtin",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::command-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "cmd",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::command-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "cmd",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::line
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-- %s\n", color_line,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg1, "line",
+	    self->depth * 2, "", color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, basename(execname), "syscall",
+	    self->depth * 2, "", probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, basename(execname), "syscall",
+	    self->depth * 2, "", probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sh_wasted.d b/external/cddl/dtracetoolkit/dist/Bin/sh_wasted.d
new file mode 100755
index 0000000..e7ffe0d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sh_wasted.d
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_wasted.d - measure Bourne shell elapsed times for "wasted" commands.
+ *               Written for the sh DTrace provider.
+ *
+ * $Id: sh_wasted.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: sh_wasted.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This script measures "wasted" commands - those which are called externally
+ * but are in fact builtins to the shell. Ever seen a script which calls
+ * /usr/bin/echo needlessly? This script measures that cost.
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		NAME		Name of call
+ *		TIME		Total elapsed time for calls (us)
+ *
+ * IDEA: Mike Shapiro
+ *
+ * Filename and call names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	isbuiltin["echo"] = 1;
+	isbuiltin["test"] = 1;
+	/* add builtins here */
+
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	self->start = timestamp;
+}
+
+sh$target:::command-entry
+{
+	self->command = timestamp;
+}
+
+sh$target:::command-return
+{
+	this->elapsed = timestamp - self->command;
+	this->path = copyinstr(arg1);
+	this->cmd = basename(this->path);
+}
+
+sh$target:::command-return
+/self->command && !isbuiltin[this->cmd]/
+{
+	@types_cmd[basename(copyinstr(arg0)), this->path] = sum(this->elapsed);
+	self->command = 0;
+}
+
+sh$target:::command-return
+/self->command/
+{
+	@types_wasted[basename(copyinstr(arg0)), this->path] =
+	    sum(this->elapsed);
+	self->command = 0;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
+
+dtrace:::END
+{
+	this->elapsed = (timestamp - self->start) / 1000;
+	printf("Script duration: %d us\n", this->elapsed);
+
+	normalize(@types_cmd, 1000);
+	printf("\nExternal command elapsed times,\n");
+	printf("   %-30s %-22s %8s\n", "FILE", "NAME", "TIME(us)");
+	printa("   %-30s %-22s %@8d\n", @types_cmd);
+
+	normalize(@types_wasted, 1000);
+	printf("\nWasted command elapsed times,\n");
+	printf("   %-30s %-22s %8s\n", "FILE", "NAME", "TIME(us)");
+	printa("   %-30s %-22s %@8d\n", @types_wasted);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sh_who.d b/external/cddl/dtracetoolkit/dist/Bin/sh_who.d
new file mode 100755
index 0000000..6d28112
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sh_who.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_who.d - trace Bourne shell line execution by process using DTrace.
+ *            Written for the sh DTrace provider.
+ *
+ * $Id: sh_who.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_who.d	 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of the shell
+ *		UID		User ID of the owner
+ *		LINES		Number of times a line was executed
+ *		FILE		Pathname of the shell or shellscript
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::line
+{
+	@lines[pid, uid, copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %s\n", "PID", "UID", "LINES", "FILE");
+	printa("   %6d %6d %@6d %s\n", @lines);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/shellsnoop b/external/cddl/dtracetoolkit/dist/Bin/shellsnoop
new file mode 100755
index 0000000..d52b076
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/shellsnoop
@@ -0,0 +1,264 @@
+#!/bin/sh
+#
+# shellsnoop - A program to print read/write details from shells,
+#	       such as keystrokes and command outputs.
+#	       Written using DTrace (Solaris 10 3/05).
+#
+# This program sounds somewhat dangerous (snooping keystrokes), but is
+# no more so than /usr/bin/truss, and both need root or dtrace privileges to
+# run. In fact, less dangerous, as we only print visible text (not password
+# text, for example). Having said that, it goes without saying that this
+# program shouldn't be used for breeching privacy of other users.
+#
+# This was written as a tool to demonstrate the capabilities of DTrace.
+#
+# $Id: shellsnoop,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	shellsnoop [-hqsv] [-p PID] [-u UID]
+#
+#		-q		# quiet, only print data
+#		-s		# include start time, us
+#		-v		# include start time, string
+#		-p PID		# process ID to snoop
+#		-u UID		# user ID to snoop
+#  eg,
+#		shellsnoop		# default output
+#		shellsnoop -v		# human readable timestamps
+#		shellsnoop -p 1892	# snoop this PID only
+#		shellsnoop -qp 1892	# watch this PID data only
+# 	
+# FIELDS:
+#		UID		User ID
+#		PID		process ID
+#		PPID		parent process ID
+#		COMM		command name
+#		DIR		direction (R read, W write)
+#		TEXT		text contained in the read/write
+#		TIME		timestamp for the command, us
+#		STRTIME		timestamp for the command, string
+#
+# SEE ALSO: ttywatcher
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 28-Mar-2004	Brendan Gregg	Created this.
+# 21-Jan-2005	   "	  "	Wrapped in sh to provide options.
+# 30-Nov-2005	   "	  "	Fixed trailing buffer text bug.
+# 30-Nov-2005	   "	  "	Fixed sh no keystroke text in quiet bug.
+# 30-Nov-2005	   "	  "	Last update.
+# 
+
+
+##############################
+# --- Process Arguments ---
+#
+opt_pid=0; opt_uid=0; opt_time=0; opt_timestr=0; opt_quiet=0; opt_debug=0
+filter=0; pid=0; uid=0
+
+while getopts dhp:qsu:v name
+do
+	case $name in
+	d)	opt_debug=1 ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	q)	opt_quiet=1 ;;
+	s)	opt_time=1 ;;
+	u)	opt_uid=1; uid=$OPTARG ;;
+	v)	opt_timestr=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: shellsnoop [-hqsv] [-p PID] [-u UID]
+		       shellsnoop		# default output
+		                -q		# quiet, only print data
+		                -s		# include start time, us
+		                -v		# include start time, string
+		                -p PID		# process ID to snoop
+		                -u UID		# user ID to snoop
+		END
+		exit 1
+	esac
+done
+
+if [ $opt_quiet -eq 1 ]; then
+	opt_time=0; opt_timestr=0
+fi
+if [ $opt_pid -eq 1 -o $opt_uid -eq 1 ]; then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_debug 	= '$opt_debug';
+ inline int OPT_quiet 	= '$opt_quiet';
+ inline int OPT_pid 	= '$opt_pid';
+ inline int OPT_uid 	= '$opt_uid';
+ inline int OPT_time 	= '$opt_time';
+ inline int OPT_timestr	= '$opt_timestr';
+ inline int FILTER 	= '$filter';
+ inline int PID 	= '$pid';
+ inline int UID 	= '$uid';
+ 
+ #pragma D option quiet
+ #pragma D option switchrate=20hz
+ 
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN /OPT_time == 1/
+ { 
+ 	printf("%-14s ","TIME");
+ }
+ dtrace:::BEGIN /OPT_timestr == 1/
+ { 
+ 	printf("%-20s ","STRTIME");
+ }
+ dtrace:::BEGIN /OPT_quiet == 0/
+ {
+	printf("%5s %5s %8s %3s  %s\n", "PID", "PPID", "CMD", "DIR", "TEXT");
+ }
+
+ /*
+  * Remember this PID is a shell child
+  */
+ syscall::execve:entry
+ /execname == "sh"   || execname == "ksh"  || execname == "csh"  || 
+  execname == "tcsh" || execname == "zsh"  || execname == "bash"/
+ {
+	child[pid] = 1;
+ 
+ }
+ syscall::execve:entry
+ /(OPT_pid == 1 && PID != ppid) || (OPT_uid == 1 && UID != uid)/
+ {
+	/* forget if filtered */
+	child[pid] = 0;
+ }
+
+ /*
+  * Print shell keystrokes
+  */
+ syscall::write:entry, syscall::read:entry
+ /(execname == "sh"   || execname == "ksh"  || execname == "csh"  ||
+  execname == "tcsh" || execname == "zsh"  || execname == "bash")
+  && (arg0 >= 0 && arg0 <= 2)/
+ {
+	self->buf = arg1;
+ }
+ syscall::write:entry, syscall::read:entry
+ /(OPT_pid == 1 && PID != pid) || (OPT_uid == 1 && UID != uid)/
+ {
+	self->buf = 0;
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && child[pid] == 0 && OPT_time == 1/
+ {
+ 	printf("%-14d ", timestamp/1000);
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && child[pid] == 0 && OPT_timestr == 1/
+ {
+	printf("%-20Y ", walltimestamp);
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && child[pid] == 0 && OPT_quiet == 0/
+ {
+	this->text = (char *)copyin(self->buf, arg0);
+	this->text[arg0] = '\'\\0\'';
+ 
+	printf("%5d %5d %8s %3s  %s\n", pid, curpsinfo->pr_ppid, execname, 
+	    probefunc == "read" ? "R" : "W", stringof(this->text));
+ }
+ syscall::write:return
+ /self->buf && child[pid] == 0 && OPT_quiet == 1/
+ {
+	this->text = (char *)copyin(self->buf, arg0);
+	this->text[arg0] = '\'\\0\'';
+	printf("%s", stringof(this->text));
+ }
+ syscall::read:return
+ /self->buf && execname == "sh" && child[pid] == 0 && OPT_quiet == 1/
+ {
+	this->text = (char *)copyin(self->buf, arg0);
+	this->text[arg0] = '\'\\0\'';
+	printf("%s", stringof(this->text));
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && child[pid] == 0/
+ {
+	self->buf = 0;
+ }
+
+ /*
+  * Print command output
+  */
+ syscall::write:entry, syscall::read:entry
+ /child[pid] == 1 && (arg0 == 1 || arg0 == 2)/
+ {
+	self->buf = arg1;
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && OPT_time == 1/
+ {
+ 	printf("%-14d ", timestamp/1000);
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && OPT_timestr == 1/
+ {
+	printf("%-20Y ", walltimestamp);
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && OPT_quiet == 0/
+ {
+	this->text = (char *)copyin(self->buf, arg0);
+	this->text[arg0] = '\'\\0\'';
+ 
+	printf("%5d %5d %8s %3s  %s", pid, curpsinfo->pr_ppid, execname,
+	    probefunc == "read" ? "R" : "W", stringof(this->text));
+ 
+	/* here we check if a newline is needed */
+	this->length = strlen(this->text);
+	printf("%s", this->text[this->length - 1] == '\'\\n\'' ? "" : "\n");
+	self->buf = 0;
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && OPT_quiet == 1/
+ {
+	this->text = (char *)copyin(self->buf, arg0);
+	this->text[arg0] = '\'\\0\'';
+	printf("%s", stringof(this->text));
+	self->buf = 0;
+ }
+
+ /*
+  *  Cleanup
+  */
+ syscall::exit:entry
+ {
+	child[pid] = 0;
+
+	/* debug */
+	this->parent = (char *)curthread->td_proc->p_pptr->p_comm;
+	OPT_debug == 1 ? printf("PID %d CMD %s exited. (%s)\n",
+	 pid, execname, stringof(this->parent)) : 1;
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Bin/shortlived.d b/external/cddl/dtracetoolkit/dist/Bin/shortlived.d
new file mode 100755
index 0000000..2cf75a5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/shortlived.d
@@ -0,0 +1,118 @@
+#!/usr/sbin/dtrace -qs
+/*
+ * shortlived.d - determine time spent by short lived processes.
+ *                Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: shortlived.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:    shortlived.d	# wait, then hit Ctrl-C
+ *
+ * Applications that run many short lived processes can cause load
+ * on the system that is difficult to identify - the processes
+ * aren't sampled in time by programs such as prstat. This program
+ * illustrates how much time was spent processing those extra
+ * processes, and a table of process name by total times for each.
+ *
+ * SEE ALSO: execsnoop
+ *
+ * Notes:
+ * - The measurements are minimum values, not all of the overheads
+ *   caused by process generation and destruction are measured (DTrace
+ *   can do so, but the script would become seriously complex).
+ * - The summary values are accurate, the by program and by PPID values
+ *   are usually slightly smaller due to rounding errors.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 22-Apr-2005  Brendan Gregg   Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+/*
+ * Start
+ */
+dtrace:::BEGIN
+{
+	/* save start time */
+	start = timestamp;
+
+	/* this is time spent on shortlived processes */
+	procs = 0;
+
+	/* print header */
+	printf("Tracing... Hit Ctrl-C to stop.\n");
+}
+
+/*
+ * Measure parent fork time
+ */
+syscall::*fork*:entry
+{
+	/* save start of fork */
+	self->fork = vtimestamp;
+}
+syscall::*fork*:return
+/arg0 != 0 && self->fork/
+{
+	/* record elapsed time for the fork syscall */
+	this->elapsed = vtimestamp - self->fork;
+	procs += this->elapsed;
+	self->fork = 0;
+}
+
+/*
+ * Measure child processes time
+ */
+syscall::*fork*:return
+/arg0 == 0/
+{
+	/* save start of child process */
+	self->start = vtimestamp;
+
+	/* memory cleanup */
+	self->fork = 0;
+}
+proc:::exit
+/self->start/
+{
+	/* record elapsed time for process execution */
+	this->elapsed = vtimestamp - self->start;
+	procs += this->elapsed;
+
+	/* sum elapsed by process name and ppid */
+	@Times_exec[execname] = sum(this->elapsed/1000000);
+	@Times_ppid[ppid] = sum(this->elapsed/1000000);
+
+	/* memory cleanup */
+	self->start = 0;
+}
+
+/*
+ * Print report
+ */
+dtrace:::END
+{
+	this->total = timestamp - start;
+	printf("short lived processes: %6d.%03d secs\n",
+	    procs/1000000000, (procs%1000000000)/1000000);
+	printf("total sample duration: %6d.%03d secs\n",
+	    this->total/1000000000, (this->total%1000000000)/1000000);
+	printf("\nTotal time by process name,\n");
+	printa("%18s %@12d ms\n", @Times_exec);
+	printf("\nTotal time by PPID,\n");
+	printa("%18d %@12d ms\n", @Times_ppid);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sigdist.d b/external/cddl/dtracetoolkit/dist/Bin/sigdist.d
new file mode 100755
index 0000000..960a11d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sigdist.d
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -s
+/*
+ * sigdist.d - signal distribution by process name.
+ *             Written using DTrace (Solaris 10 3/05)
+ *
+ * This is a simple DTrace script that prints the number of signals
+ * recieved by process and signal number. This script is also available
+ * as /usr/demo/dtrace/sig.d, where it originates.
+ *
+ * $Id: sigdist.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE: 	sigdist.d	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		SENDER		process name of sender
+ *		RECIPIENT	process name of target
+ *		SIG		signal number, see signal(3head)
+ *		COUNT		number of signals sent
+ *
+ * BASED ON: /usr/demo/dtrace/sig.d
+ *
+ * SEE ALSO: DTrace Guide "proc Provider" chapter (docs.sun.com)
+ *           kill.d(1M)
+ *
+ * PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+proc:::signal-send
+{
+	@Count[execname, stringof(args[1]->pr_fname), args[2]] = count();
+}
+
+dtrace:::END
+{
+	printf("%16s %16s %6s %6s\n", "SENDER", "RECIPIENT", "SIG", "COUNT");
+	printa("%16s %16s %6d %6@d\n", @Count);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/stacksize.d b/external/cddl/dtracetoolkit/dist/Bin/stacksize.d
new file mode 100755
index 0000000..7a201da
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/stacksize.d
@@ -0,0 +1,95 @@
+#!/usr/sbin/dtrace -s
+/*
+ * stacksize.d - measure stack size for running threads.
+ *               Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: stacksize.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       stacksize.d              # hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		value		size of the user stack
+ *		count		number of samples at this size
+ *
+ * SEE ALSO:    pmap(1)
+ *
+ * COPYRIGHT: Copyright (c) 2006 Jonathan Adams
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 16-Feb-2006	Jonathan Adams	Created this.
+ * 16-Feb-2006     "      "	Last update.
+ */
+
+#pragma D option quiet
+
+this uintptr_t stkinfoptr;
+this uintptr_t stkptr;
+
+dtrace:::BEGIN
+{
+	trace("Sampling... Hit Ctrl-C to end\n");
+}
+
+sched:::on-cpu, profile:::profile-997
+{
+	this->stkinfoptr = 0;
+	this->stkptr = 0;
+}
+
+sched:::on-cpu, profile:::profile-997
+/execname != "sched"/
+{
+	this->stkinfoptr = curthread->t_lwp->lwp_ustack;
+	this->stkptr = (uintptr_t)0;
+}
+
+sched:::on-cpu, profile:::profile-997
+/this->stkinfoptr != 0 && curpsinfo->pr_dmodel == PR_MODEL_ILP32/
+{
+	this->stkinfo32 = (stack32_t *)copyin(this->stkinfoptr,
+	    sizeof (stack32_t));
+	this->stktop = (uintptr_t)this->stkinfo32->ss_sp +
+	    this->stkinfo32->ss_size;
+	this->stkptr = (uintptr_t)uregs[R_SP];
+}
+
+sched:::on-cpu, profile:::profile-997
+/this->stkinfoptr != 0 && curpsinfo->pr_dmodel == PR_MODEL_LP64/
+{
+	this->stkinfo = (stack_t *)copyin(this->stkinfoptr,
+	    sizeof (stack_t));
+	this->stktop = (uintptr_t)this->stkinfo->ss_sp +
+	    this->stkinfo->ss_size;
+	this->stkptr = (uintptr_t)uregs[R_SP];
+}
+
+sched:::on-cpu, profile:::profile-997
+/this->stkptr != 0/
+{
+	@sizes[execname] = quantize(this->stktop - this->stkptr);
+}
+
+dtrace:::ERROR
+{
+	@errors[execname] = count();
+}
+
+dtrace:::END
+{
+	printa(@sizes);
+	printf("\nErrors:\n");
+	printa("    %@d %s\n", @errors);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/statsnoop b/external/cddl/dtracetoolkit/dist/Bin/statsnoop
new file mode 100755
index 0000000..b9649f3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/statsnoop
@@ -0,0 +1,286 @@
+#!/usr/bin/sh
+#
+# statsnoop - snoop file stats as they occur.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# $Id: statsnoop,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	statsnoop [-a|-A|-ceghlsvxZ] [-f pathname] [-t syscall]
+#		          [-n name] [-p PID]
+#
+#		statsnoop	# default output
+#
+#		-a		# print most data
+#		-A		# dump all data, space delimited
+#		-c		# print cwd of process
+#		-e		# print errno value
+#		-g		# print command arguments
+#		-l		# print syscall type
+#		-s		# print start time, us
+#		-v		# print start time, string
+#		-x		# only print failed stats
+#		-Z		# print zonename
+#		-f pathname	# file pathname to snoop
+#		-n name		# command name to snoop
+#		-p PID		# process ID to snoop
+#		-t syscall	# stat syscall to trace
+#	eg,
+#		statsnoop -v			# human readable timestamps
+#		statsnoop -S			# syscall type
+#		statsnoop -e			# see error codes
+#		statsnoop -f /etc/passwd	# snoop this file only
+# 	
+# FIELDS:
+#		ZONE		Zone name
+#		UID		User ID
+#		PID		Process ID
+#		PPID		Parent Process ID
+#		FD		file descriptor (-1 for error)
+#		ERR		errno value (see /usr/include/sys/errno.h)
+#		TYPE		syscall type
+#		CWD		current working directory of process
+#		PATH		pathname for file stat
+#		COMM		command name for the process
+#		ARGS		argument listing for the process
+#		TIME		timestamp for the stat event, us
+#		STRTIME		timestamp for the stat event, string
+#
+# SEE ALSO: truss, BSM auditing.
+#
+# COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 09-Sep-2007	Brendan Gregg	Created this.
+# 
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_dump=0; opt_file=0; opt_time=0; opt_timestr=0; opt_args=0
+opt_zone=0; opt_cwd=0; opt_failonly=0; opt_err=0; filter=0; pathname=.
+opt_name=0; opt_pid=0; opt_type=0; opt_trace=0; pname=.; pid=0; trace=.
+
+### Process options
+while getopts aAcef:ghln:p:st:vxZ name
+do
+	case $name in
+	a)	opt_time=1; opt_timestr=1; opt_args=1; opt_err=1 ;;
+	A)	opt_dump=1 ;;
+	c)	opt_cwd=1 ;;
+	e)	opt_err=1 ;;
+	g)	opt_args=1 ;;
+	f)	opt_file=1; pathname=$OPTARG ;;
+	l)	opt_type=1 ;;
+	n)	opt_name=1; pname=$OPTARG ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	s)	opt_time=1 ;;
+	t)	opt_trace=1; trace=$OPTARG ;;
+	v)	opt_timestr=1 ;;
+	x)	opt_failonly=1 ;;
+	Z)	opt_zone=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: statsnoop [-a|-A|-ceghlsvxZ] [-f pathname] [-t syscall]
+		                 [-n execname] [-p PID]
+		       statsnoop                # default output
+		                -a              # print most data
+		                -A              # dump all data, space delimited
+		                -c              # print cwd of process
+		                -e              # print errno value
+		                -g              # print command arguments
+		                -l              # print syscall type
+		                -s              # print start time, us
+		                -v              # print start time, string
+		                -x              # only print failed stats
+		                -Z              # print zonename
+		                -f pathname	# pathname name to snoop
+		                -n name		# process name to snoop
+		                -p PID		# process ID to snoop
+		                -t syscall	# stat syscall to trace
+		  eg,
+		       statsnoop -v             # human readable timestamps
+		       statsnoop -e             # see error codes
+		       statsnoop -f /etc/motd   # snoop this file only
+		END
+		exit 1
+	esac
+done
+
+### Option logic
+if [ $opt_dump -eq 1 ]; then
+	opt_zone=0; opt_cwd=0; opt_time=0; opt_timestr=0; opt_type=0
+	opt_args=2 
+fi
+if [ $opt_name -eq 1 -o $opt_pid -eq 1 -o $opt_trace -eq 1 ]; then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_dump 	 = '$opt_dump';
+ inline int OPT_file 	 = '$opt_file';
+ inline int OPT_args 	 = '$opt_args';
+ inline int OPT_cwd	 = '$opt_cwd';
+ inline int OPT_err	 = '$opt_err';
+ inline int OPT_zone 	 = '$opt_zone';
+ inline int OPT_time 	 = '$opt_time';
+ inline int OPT_timestr	 = '$opt_timestr';
+ inline int OPT_type	 = '$opt_type';
+ inline int OPT_failonly = '$opt_failonly';
+ inline int OPT_pid	 = '$opt_pid';
+ inline int OPT_name	 = '$opt_name';
+ inline int OPT_trace	 = '$opt_trace';
+ inline int FILTER 	 = '$filter';
+ inline int PID		 = '$pid';
+ inline string PATHNAME	 = "'$pathname'";
+ inline string NAME	 = "'$pname'";
+ inline string TRACE	 = "'$trace'";
+
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	/* print optional headers */
+ 	OPT_time ? printf("%-14s ", "TIME") : 1;
+ 	OPT_timestr ? printf("%-20s ", "STRTIME") : 1;
+ 	OPT_zone ? printf("%-10s ", "ZONE") : 1;
+
+	/* print dump headers */
+	OPT_dump ? printf("%s %s %s %s %s %s %s %s %s %s %s", "ZONE",
+	    "TIME", "UID", "PID", "PPID", "COMM", "FD", "ERR", "CWD", 
+	    "PATH", "ARGS") : printf("%5s %6s ","UID","PID");
+	
+	/* print main headers */
+	OPT_args == 0 ? printf("%-12s ", "COMM") : 1;
+	OPT_dump == 0 ? printf("%3s ", "FD") : 1;
+	OPT_err ? printf("%3s ", "ERR") : 1;
+	OPT_cwd ? printf("%-20s ", "CWD") : 1;
+	OPT_type ? printf("%-8s ", "TYPE") : 1;
+	OPT_dump == 0 ? printf("%-20s ", "PATH") : 1;
+	OPT_args == 1 ? printf("%s", "ARGS") : 1;
+	printf("\n");
+ }
+
+ /*
+  * Print stat event
+  */
+ syscall::stat:entry, syscall::stat64:entry, syscall::xstat:entry,
+ syscall::lstat:entry, syscall::lstat64:entry, syscall::lxstat:entry,
+ syscall::fstat:entry, syscall::fstat64:entry, syscall::fxstat:entry
+ {
+	/* default is to trace unless filtering */
+	self->ok = FILTER ? 0 : 1;
+
+	/* check each filter */
+	(OPT_name == 1 && NAME == execname) ? self->ok = 1 : 1;
+	(OPT_pid == 1 && PID == pid) ? self->ok = 1 : 1;
+	(OPT_trace == 1 && TRACE == probefunc) ? self->ok = 1 : 1;
+ }
+
+ syscall::stat:entry, syscall::stat64:entry,
+ syscall::lstat:entry, syscall::lstat64:entry, syscall::lxstat:entry
+ /self->ok/
+ {
+	self->pathp = arg0;
+ }
+
+ syscall::xstat:entry
+ /self->ok/
+ {
+	self->pathp = arg1;
+ }
+
+ syscall::stat:return, syscall::stat64:return, syscall::xstat:return,
+ syscall::lstat:return, syscall::lstat64:return, syscall::lxstat:return
+ /self->ok/
+ {
+	self->path = copyinstr(self->pathp);
+	self->pathp = 0;
+ }
+
+ syscall::fstat:return, syscall::fstat64:entry, syscall::fxstat:entry
+ /self->ok/
+ {
+	self->filep = curthread->t_procp->p_user.u_finfo.fi_list[arg0].uf_file;
+ }
+
+ syscall::fstat:return, syscall::fstat64:return, syscall::fxstat:return
+ /self->ok/
+ {
+        this->vnodep = self->filep != 0 ? self->filep->f_vnode : 0;
+        self->path = this->vnodep ? (this->vnodep->v_path != 0 ?
+            cleanpath(this->vnodep->v_path) : "<unknown>") : "<unknown>";
+	self->filep = 0;
+ }
+
+ syscall::stat:return, syscall::stat64:return, syscall::xstat:return,
+ syscall::lstat:return, syscall::lstat64:return, syscall::lxstat:return,
+ syscall::fstat:return, syscall::fstat64:return, syscall::fxstat:return
+ /self->ok && (! OPT_failonly || (int)arg0 < 0) && 
+     ((OPT_file == 0) || (OPT_file == 1 && PATHNAME == copyinstr(self->pathp)))/
+ {
+	/* print optional fields */
+ 	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+ 	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+ 	OPT_zone ? printf("%-10s ", zonename) : 1;
+
+	/* print dump fields */
+	OPT_dump ? printf("%s %d %d %d %d %s %d %d %s %s %S", zonename,
+	    timestamp/1000, uid, pid, ppid, execname, (int)arg0, errno,
+	    cwd, self->path, curpsinfo->pr_psargs) :
+	    printf("%5d %6d ", uid, pid);
+
+	/* print main fields */
+	OPT_args == 0 ? printf("%-12.12s ", execname) : 1;
+	OPT_dump == 0 ? printf("%3d ", (int)arg0) : 1;
+	OPT_err ? printf("%3d ", errno) : 1;
+	OPT_cwd ? printf("%-20s ", cwd) : 1;
+	OPT_type ? printf("%-8s ", probefunc) : 1;
+	OPT_dump == 0 ? printf("%-20s ", self->path) : 1;
+	OPT_args == 1 ? printf("%S", curpsinfo->pr_psargs) : 1;
+	printf("\n");
+
+	/* cleanup */
+	self->path = 0;
+	self->ok = 0;
+ }
+
+ /* 
+  * Cleanup 
+  */
+ syscall::stat:return, syscall::stat64:return, syscall::xstat:return,
+ syscall::lstat:return, syscall::lstat64:return, syscall::lxstat:return,
+ syscall::fstat:return, syscall::fstat64:return, syscall::fxstat:return
+ /self->ok/
+ {
+	self->path = 0;
+	self->ok = 0;
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Bin/swapinfo.d b/external/cddl/dtracetoolkit/dist/Bin/swapinfo.d
new file mode 100755
index 0000000..99e96be
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/swapinfo.d
@@ -0,0 +1,149 @@
+#!/usr/sbin/dtrace -s
+/*
+ * swapinfo.d - print virtual memory info (swap).
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * Prints swap usage details for RAM and disk based swap.
+ * This script is UNDER CONSTRUCTION, check for newer versions.
+ *
+ * $Id: swapinfo.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       swapinfo.d	(check for newer versions)
+ *
+ * FIELDS:
+ *              RAM Total       Total RAM installed
+ *              RAM Unusable    RAM consumed by the OBP and TSBs
+ *              RAM Kernel      Kernel resident in RAM (and usually locked)
+ *              RAM Locked      Locked memory pages from swap (Anon)
+ *              RAM Used        anon + exec + file pages used
+ *              RAM Free        free memory + page cache free
+ *              Disk Total      Total disk swap configured
+ *              Disk Resv       Disk swap allocated + reserved
+ *              Disk Avail      Disk swap available for reservation
+ *              Swap Total      Total Virtual Memory usable
+ *              Swap Resv       VM allocated + reserved
+ *              Swap Avail      VM available for reservation
+ *              Swap MinFree    VM kept free from reservations
+ *
+ * SEE ALSO: swapinfo - K9Toolkit, http://www.brendangregg.com/k9toolkit.html
+ *           vmstat 1 2; swap -s; echo ::memstat | mdb -k
+ *           RMCmem - The MemTool Package
+ *           RICHPse - The SE Toolkit
+ *           "Clearing up swap space confusion" Unix Insider, Adrian Cockcroft
+ *           "Solaris Internals", Jim Mauro, Richard McDougall
+ *           /usr/include/vm/anon.h, /usr/include/sys/systm.h
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * Author: Brendan Gregg  [Sydney, Australia]
+ *
+ * 11-Jun-2005  Brendan Gregg   Created this.
+ * 24-Apr-2006	   "	  "	Improved disk measurements; changed terms.
+ * 24-Apr-2006	   "	  "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option bufsize=16k
+
+inline int DEBUG = 0;
+
+dtrace:::BEGIN
+{
+	/* Debug stats */
+	this->ani_max = `k_anoninfo.ani_max;
+	this->ani_phys_resv = `k_anoninfo.ani_phys_resv;
+	this->ani_mem_resv = `k_anoninfo.ani_mem_resv;
+	this->ani_locked = `k_anoninfo.ani_locked_swap;
+	this->availrmem = `availrmem;
+
+	/* RAM stats */
+	this->ram_total = `physinstalled;
+	this->unusable  = `physinstalled - `physmem;
+	this->locked    = `pages_locked;
+	this->ram_used  = `availrmem - `freemem;
+	this->freemem   = `freemem;
+	this->kernel    = `physmem - `pages_locked - `availrmem;
+
+	/* Disk stats */
+	this->disk_total = `k_anoninfo.ani_max;
+	this->disk_resv = `k_anoninfo.ani_phys_resv;
+	this->disk_avail = this->disk_total - this->disk_resv;
+
+	/* Total Swap stats */
+	this->minfree = `swapfs_minfree;
+	this->reserve = `swapfs_reserve;
+	/* this is TOTAL_AVAILABLE_SWAP from /usr/include/vm/anon.h, */
+	this->swap_total = `k_anoninfo.ani_max +
+	    (`availrmem - `swapfs_minfree > 0 ?
+	    `availrmem - `swapfs_minfree : 0);
+	/* this is CURRENT_TOTAL_AVAILABLE_SWAP from /usr/include/vm/anon.h, */
+	this->swap_avail = `k_anoninfo.ani_max - `k_anoninfo.ani_phys_resv +
+	    (`availrmem - `swapfs_minfree > 0 ?
+	    `availrmem - `swapfs_minfree : 0);
+	this->swap_resv = this->swap_total - this->swap_avail;
+
+	/* Convert to Mbytes */
+	this->ani_phys_resv *= `_pagesize;  this->ani_phys_resv /= 1048576;
+	this->ani_mem_resv *= `_pagesize;  this->ani_mem_resv /= 1048576;
+	this->ani_locked *= `_pagesize;  this->ani_locked /= 1048576;
+	this->ani_max	*= `_pagesize;  this->ani_max	/= 1048576;
+	this->availrmem	*= `_pagesize;  this->availrmem	/= 1048576;
+	this->ram_total	*= `_pagesize;  this->ram_total	/= 1048576;
+	this->unusable	*= `_pagesize;  this->unusable	/= 1048576;
+	this->kernel	*= `_pagesize;  this->kernel	/= 1048576;
+	this->locked	*= `_pagesize;  this->locked	/= 1048576;
+	this->ram_used	*= `_pagesize;  this->ram_used	/= 1048576;
+	this->freemem	*= `_pagesize;  this->freemem	/= 1048576;
+	this->disk_total *= `_pagesize; this->disk_total /= 1048576;
+	this->disk_resv	*= `_pagesize;  this->disk_resv	/= 1048576;
+	this->disk_avail *= `_pagesize;  this->disk_avail /= 1048576;
+	this->swap_total *= `_pagesize; this->swap_total /= 1048576;
+	this->swap_avail *= `_pagesize;  this->swap_avail /= 1048576;
+	this->swap_resv	*= `_pagesize;  this->swap_resv	/= 1048576;
+	this->minfree	*= `_pagesize;  this->minfree	/= 1048576;
+	this->reserve	*= `_pagesize;  this->reserve	/= 1048576;
+
+	/* Print debug */
+	DEBUG ? printf("DEBUG   availrmem %5d MB\n", this->availrmem) : 1;
+	DEBUG ? printf("DEBUG     freemem %5d MB\n", this->freemem) : 1;
+	DEBUG ? printf("DEBUG     ani_max %5d MB\n", this->ani_max) : 1;
+	DEBUG ? printf("DEBUG ani_phys_re %5d MB\n", this->ani_phys_resv) : 1;
+	DEBUG ? printf("DEBUG  ani_mem_re %5d MB\n", this->ani_mem_resv) : 1;
+	DEBUG ? printf("DEBUG  ani_locked %5d MB\n", this->ani_locked) : 1;
+	DEBUG ? printf("DEBUG     reserve %5d MB\n", this->reserve) : 1;
+	DEBUG ? printf("\n") : 1;
+
+	/* Print report */
+	printf("RAM  _______Total %5d MB\n", this->ram_total);
+	printf("RAM      Unusable %5d MB\n", this->unusable);
+	printf("RAM        Kernel %5d MB\n", this->kernel);
+	printf("RAM        Locked %5d MB\n", this->locked);
+	printf("RAM          Used %5d MB\n", this->ram_used);
+	printf("RAM          Free %5d MB\n", this->freemem);
+	printf("\n");
+	printf("Disk _______Total %5d MB\n", this->disk_total);
+	printf("Disk         Resv %5d MB\n", this->disk_resv);
+	printf("Disk        Avail %5d MB\n", this->disk_avail);
+	printf("\n");
+	printf("Swap _______Total %5d MB\n", this->swap_total);
+	printf("Swap         Resv %5d MB\n", this->swap_resv);
+	printf("Swap        Avail %5d MB\n", this->swap_avail);
+	printf("Swap    (Minfree) %5d MB\n", this->minfree);
+
+	DEBUG ? printf("\nNow run other commands for confirmation.\n") : 1;
+	! DEBUG ? exit(0) : 1;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/sysbypid.d b/external/cddl/dtracetoolkit/dist/Bin/sysbypid.d
new file mode 100755
index 0000000..d81dc9d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/sysbypid.d
@@ -0,0 +1,53 @@
+#!/usr/sbin/dtrace -s
+/*
+ * sysbypid.d - print sysinfo events by process.
+ *		Uses DTrace (Solaris 10 3/05).
+ *
+ * $Id: sysbypid.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: sysbypid.d
+ *
+ * FIELDS:
+ *		EXEC	Process name
+ *		PID	Process ID
+ * 		SYS	System statistic (see /usr/include/sys/sysinfo.h)
+ *		VALUE	Value by which statistic was incremented
+ *
+ * The virtual memory statistics are documented in the cpu_sysinfo struct
+ * in the /usr/include/sys/sysinfo.h file; and also in the sysinfo provider
+ * chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 14-May-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN {
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sysinfo::: {
+	@Sys[execname, pid, probename] = sum(arg0);
+}
+
+dtrace:::END {
+	printf("%16s %8s %22s %8s\n", "EXEC", "PID", "SYS", "VALUE");
+	printa("%16s %8d %22s %@8d\n", @Sys);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/syscallbypid.d b/external/cddl/dtracetoolkit/dist/Bin/syscallbypid.d
new file mode 100755
index 0000000..659ba39
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/syscallbypid.d
@@ -0,0 +1,54 @@
+#!/usr/sbin/dtrace -s
+/*
+ * syscallbypid.d - report on syscalls by PID.
+ *                  Written using DTrace (Solaris 10 3/05)
+ *
+ * $Id: syscallbypid.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	syscallbypid.d			# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		process name
+ *		SYSCALL		syscall name
+ *		COUNT		number of syscalls for this PID
+ *
+ * This is based on a script from DExplorer.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 15-May-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+syscall:::entry
+{
+	@num[pid, execname, probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf("%6s %-24s %-24s %8s\n", "PID", "CMD", "SYSCALL", "COUNT");
+	printa("%6d %-24s %-24s %@8d\n", @num);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/syscallbyproc.d b/external/cddl/dtracetoolkit/dist/Bin/syscallbyproc.d
new file mode 100755
index 0000000..5c99d5b4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/syscallbyproc.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * syscallbyproc.d - report on syscalls by process name . DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: syscallbyproc.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ */
+
+syscall:::entry { @num[execname] = count(); }
diff --git a/external/cddl/dtracetoolkit/dist/Bin/syscallbysysc.d b/external/cddl/dtracetoolkit/dist/Bin/syscallbysysc.d
new file mode 100755
index 0000000..2626297
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/syscallbysysc.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * syscallbysysc.d - report on syscalls by syscall. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: syscallbysysc.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ */
+
+syscall:::entry { @num[probefunc] = count(); }
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcl_calldist.d b/external/cddl/dtracetoolkit/dist/Bin/tcl_calldist.d
new file mode 100755
index 0000000..8f21f8a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcl_calldist.d
@@ -0,0 +1,111 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * tcl_calldist.d - measure Tcl elapsed time for different types of operation.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_calldist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: tcl_calldist.d [top]	# hit Ctrl-C to end
+ *    eg,
+ *        tcl_calldist.d	# default, truncate to 10 lines
+ *        tcl_calldist.d 25	# truncate each report section to 25 lines
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * FIELDS:
+ *		1		Process ID
+ *		2		Type of call (proc/cmd/total)
+ *		3		Name of call
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+tcl*:::proc-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->proc[self->depth] = timestamp;
+}
+
+tcl*:::proc-return
+/self->proc[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->proc[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->proc[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@types_incl[pid, "proc", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[pid, "proc", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+tcl*:::cmd-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->cmd[self->depth] = timestamp;
+}
+
+tcl*:::cmd-return
+/self->cmd[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->cmd[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->cmd[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@types_incl[pid, "cmd", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[pid, "cmd", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	trunc(@types_excl, top);
+	printf("\nTop %d exclusive elapsed times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	printf("\nTop %d inclusive elapsed times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcl_calls.d b/external/cddl/dtracetoolkit/dist/Bin/tcl_calls.d
new file mode 100755
index 0000000..6cf103c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcl_calls.d
@@ -0,0 +1,63 @@
+#!/usr/sbin/dtrace -ZCs
+/*
+ * tcl_calls.d - count Tcl calls (proc/cmd) using DTrace.
+ *               Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_calls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_calls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (see below)
+ *		NAME		Name of proc or cmd call
+ *		COUNT		Number of calls during sample
+ *
+ * TYPEs:
+ *		proc		procedure
+ *		cmd		command
+ *
+ * PORTIONS: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+tcl*:::proc-entry
+{
+	@calls[pid, "proc", copyinstr(arg0)] = count();
+}
+
+tcl*:::cmd-entry
+{
+	@calls[pid, "cmd", copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s %-8s %-52s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa(" %6d %-8s %-52s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcl_calltime.d b/external/cddl/dtracetoolkit/dist/Bin/tcl_calltime.d
new file mode 100755
index 0000000..392f733
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcl_calltime.d
@@ -0,0 +1,123 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * tcl_calltime.d - measure Tcl elapsed times for different types of operation.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_calltime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: tcl_calltime.d [top]	# hit Ctrl-C to end
+ *    eg,
+ *        tcl_calltime.d	# default, truncate to 10 lines
+ *        tcl_calltime.d 25	# truncate each report section to 25 lines
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (proc/cmd/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+tcl*:::proc-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->proc[self->depth] = timestamp;
+}
+
+tcl*:::proc-return
+/self->proc[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->proc[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->proc[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@num[pid, "proc", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "proc", this->name] = sum(this->elapsed_incl);
+	@types_excl[pid, "proc", this->name] = sum(this->elapsed_excl);
+	@types_excl[0, "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+tcl*:::cmd-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->cmd[self->depth] = timestamp;
+}
+
+tcl*:::cmd-return
+/self->cmd[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->cmd[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->cmd[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@num[pid, "cmd", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "cmd", this->name] = sum(this->elapsed_incl);
+	@types_excl[pid, "cmd", this->name] = sum(this->elapsed_excl);
+	@types_excl[0, "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	trunc(@num, top);
+	printf("\nTop %d counts,\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa("   %6d %-10s %-48s %@8d\n", @num);
+
+	trunc(@types_excl, top);
+	normalize(@types_excl, 1000);
+	printf("\nTop %d exclusive elapsed times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	normalize(@types_incl, 1000);
+	printf("\nTop %d inclusive elapsed times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcl_cpudist.d b/external/cddl/dtracetoolkit/dist/Bin/tcl_cpudist.d
new file mode 100755
index 0000000..2f75c0b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcl_cpudist.d
@@ -0,0 +1,111 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * tcl_cpudist.d - measure Tcl on-CPU time for different types of operation.
+ *                 Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_cpudist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: tcl_cpudist.d [top]	# hit Ctrl-C to end
+ *    eg,
+ *        tcl_cpudist.d		# default, truncate to 10 lines
+ *        tcl_cpudist.d 25	# truncate each report section to 25 lines
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * FIELDS:
+ *		1		Process ID
+ *		2		Type of call (proc/cmd/total)
+ *		3		Name of call
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+tcl*:::proc-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->proc[self->depth] = vtimestamp;
+}
+
+tcl*:::proc-return
+/self->proc[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->proc[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->proc[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@types_incl[pid, "proc", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[pid, "proc", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+tcl*:::cmd-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->cmd[self->depth] = vtimestamp;
+}
+
+tcl*:::cmd-return
+/self->cmd[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->cmd[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->cmd[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@types_incl[pid, "cmd", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[pid, "cmd", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	trunc(@types_excl, top);
+	printf("\nTop %d exclusive on-CPU times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	printf("\nTop %d inclusive on-CPU times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcl_cputime.d b/external/cddl/dtracetoolkit/dist/Bin/tcl_cputime.d
new file mode 100755
index 0000000..9934807
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcl_cputime.d
@@ -0,0 +1,123 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * tcl_cputime.d - measure Tcl on-CPU times for different types of operation.
+ *                 Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_cputime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE: tcl_cputime.d [top]	# hit Ctrl-C to end
+ *    eg,
+ *        tcl_cputime.d		# default, truncate to 10 lines
+ *        tcl_cputime.d 25	# truncate each report section to 25 lines
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (proc/cmd/total)
+ *		NAME		Name of call
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+tcl*:::proc-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->proc[self->depth] = vtimestamp;
+}
+
+tcl*:::proc-return
+/self->proc[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->proc[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->proc[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@num[pid, "proc", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "proc", this->name] = sum(this->oncpu_incl);
+	@types_excl[pid, "proc", this->name] = sum(this->oncpu_excl);
+	@types_excl[0, "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+tcl*:::cmd-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->cmd[self->depth] = vtimestamp;
+}
+
+tcl*:::cmd-return
+/self->cmd[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->cmd[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->cmd[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@num[pid, "cmd", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "cmd", this->name] = sum(this->oncpu_incl);
+	@types_excl[pid, "cmd", this->name] = sum(this->oncpu_excl);
+	@types_excl[0, "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	trunc(@num, top);
+	printf("\nTop %d counts,\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa("   %6d %-10s %-48s %@8d\n", @num);
+
+	trunc(@types_excl, top);
+	normalize(@types_excl, 1000);
+	printf("\nTop %d exclusive on-CPU times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	normalize(@types_incl, 1000);
+	printf("\nTop %d inclusive on-CPU times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcl_flow.d b/external/cddl/dtracetoolkit/dist/Bin/tcl_flow.d
new file mode 100755
index 0000000..9671561
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcl_flow.d
@@ -0,0 +1,86 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_flow.d - snoop Tcl execution showing procedure flow using DTrace.
+ *              Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_flow.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_flow.d		# hit Ctrl-C to end
+ *
+ * This watches Tcl method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		PID		Process ID
+ *		CALL		Tcl command or procedure name
+ *
+ * LEGEND:
+ *		->		procedure entry
+ *		<-		procedure return
+ *		 >		command entry
+ *		 <		command return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s -- %s\n", "C", "PID", "TIME(us)", "CALL");
+}
+
+tcl*:::proc-entry
+{
+	printf("%3d %6d %-16d %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+}
+
+tcl*:::proc-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+}
+
+tcl*:::cmd-entry
+{
+	printf("%3d %6d %-16d %*s > %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+}
+
+tcl*:::cmd-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %*s < %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcl_flowtime.d b/external/cddl/dtracetoolkit/dist/Bin/tcl_flowtime.d
new file mode 100755
index 0000000..9865a3e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcl_flowtime.d
@@ -0,0 +1,105 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_flowtime.d - snoop Tcl execution showing procedure flow and delta times.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_flowtime.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_flowtime.d		# hit Ctrl-C to end
+ *
+ * This watches Tcl method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		TIME(us)	Time since boot, us
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		CALL		Tcl command or procedure name
+ *
+ * LEGEND:
+ *		->		procedure entry
+ *		<-		procedure return
+ *		 >		command entry
+ *		 <		command return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s %9s -- %s\n", "C", "PID", "TIME(us)",
+	    "DELTA(us)", "CALL");
+}
+
+tcl*:::proc-entry,
+tcl*:::proc-return,
+tcl*:::cmd-entry,
+tcl*:::cmd-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+tcl*:::proc-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %-16d %9d %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+tcl*:::proc-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %9d %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}
+
+tcl*:::cmd-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %-16d %9d %*s > %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+tcl*:::cmd-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %9d %*s < %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcl_ins.d b/external/cddl/dtracetoolkit/dist/Bin/tcl_ins.d
new file mode 100755
index 0000000..a74c563
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcl_ins.d
@@ -0,0 +1,57 @@
+#!/usr/sbin/dtrace -ZCs
+/*
+ * tcl_ins.d - count Tcl instructions using DTrace.
+ *             Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_ins.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_calls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (see below)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * TYPEs:
+ *		inst		instruction
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+tcl*:::inst-start
+{
+	@calls[pid, "inst", copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s %-8s %-52s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa(" %6d %-8s %-52s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcl_insflow.d b/external/cddl/dtracetoolkit/dist/Bin/tcl_insflow.d
new file mode 100755
index 0000000..77b4d5a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcl_insflow.d
@@ -0,0 +1,123 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_insflow.d - snoop Tcl execution showing procedure flow and delta times.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_insflow.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_insflow.d		# hit Ctrl-C to end
+ *
+ * This watches Tcl method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		TIME(us)	Time since boot, us
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		TYPE		Type of call (proc/cmd/inst)
+ *		CALL		Tcl command or procedure name
+ *
+ * LEGEND:
+ *		proc		procedure
+ *		cmd		command
+ *		inst		instruction
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s %9s %5s -- %s\n", "C", "PID", "TIME(us)",
+	    "DELTA(us)", "TYPE", "CALL");
+}
+
+tcl*:::proc-entry,
+tcl*:::proc-return,
+tcl*:::cmd-entry,
+tcl*:::cmd-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+tcl*:::proc-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %-16d %9d %5s %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "proc", self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+tcl*:::proc-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %9d %5s %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "proc", self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}
+
+tcl*:::cmd-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %-16d %9d %5s %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "cmd", self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+tcl*:::cmd-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %9d %5s %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "cmd", self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}
+
+tcl*:::inst-start
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %-16d %9d %5s %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "inst", self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+tcl*:::inst-done
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %9d %5s %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "inst", self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcl_proccalls.d b/external/cddl/dtracetoolkit/dist/Bin/tcl_proccalls.d
new file mode 100755
index 0000000..e7a9b79
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcl_proccalls.d
@@ -0,0 +1,53 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_methodcalls.d - count Tcl method calls DTrace.
+ *                     Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_proccalls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_methodcalls.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		COUNT		Number of calls during sample
+ *		PROCEDURE	Tcl procedure name
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+tcl*:::proc-entry
+{
+	@calls[pid, copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s %8s %s\n", "PID", "COUNT", "PROCEDURE");
+	printa(" %6d %@8d %s\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcl_procflow.d b/external/cddl/dtracetoolkit/dist/Bin/tcl_procflow.d
new file mode 100755
index 0000000..1449081
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcl_procflow.d
@@ -0,0 +1,70 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_procflow.d - snoop Tcl execution showing procedure flow using DTrace.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_procflow.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_procflow.d	# hit Ctrl-C to end
+ *
+ * This watches Tcl method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		PID		Process ID
+ *		PROCEDURE	Tcl procedure name
+ *
+ * LEGEND:
+ *		->		proc entry
+ *		<-		proc return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s -- %s\n", "C", "PID", "TIME(us)", "PROCEDURE");
+}
+
+tcl*:::proc-entry
+{
+	printf("%3d %6d %-16d %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+}
+
+tcl*:::proc-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcl_stat.d b/external/cddl/dtracetoolkit/dist/Bin/tcl_stat.d
new file mode 100755
index 0000000..64d5419
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcl_stat.d
@@ -0,0 +1,137 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_stat.d - Tcl operation stats using DTrace.
+ *            Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_stat.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_stat.d [interval [count]]
+ *
+ * FIELDS:
+ *		EXEC/s		Tcl programs executed per second, including
+ *				those without Tcl provider support
+ *		PROC/s		Procedures called, per second
+ *		CMD/s		Commands created, per second
+ *		OBJNEW/s	Objects created, per second
+ *		OBJFRE/s	Objects freed, per second
+ *		OP/s		Bytecode operations, per second
+ *
+ * The numbers are counts for the interval specified. The default interval
+ * is 1 second.
+ *
+ * If you see a count in "EXECS" but not in the other columns, then you
+ * may have older Tcl software that does not have the integrated DTrace
+ * provider (or newer software where the provider has changed).
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+dtrace:::BEGIN
+{
+	execs = procs = cmds = objnew = objfree = ops = 0;
+	lines = SCREEN + 1;
+	interval = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	secs = interval;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %6s %8s %8s %8s %8s %8s\n", "TIME", "EXEC/s",
+	    "PROC/s", "CMD/s", "OBJNEW/s", "OBJFRE/s", "OP/s");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Tally Data
+ */
+proc:::exec-success
+/execname == "tcl" || execname == "tclsh"/
+{
+	execs++;
+}
+
+tcl*:::proc-entry
+{
+	procs++;
+}
+
+tcl*:::cmd-entry
+{
+	cmds++;
+}
+
+tcl*:::obj-create
+{
+	objnew++;
+}
+
+tcl*:::obj-free
+{
+	objfree++;
+}
+
+tcl*:::inst-start
+{
+	ops++;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %6d %8d %8d %8d %8d %8d\n", walltimestamp,
+	    execs / interval, procs / interval, cmds / interval,
+	    objnew / interval, objfree / interval, ops / interval);
+	execs = procs = cmds = objnew = objfree = ops = 0;
+	secs = interval;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcl_syscalls.d b/external/cddl/dtracetoolkit/dist/Bin/tcl_syscalls.d
new file mode 100755
index 0000000..eec2027
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcl_syscalls.d
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_syscalls.d - count Tcl calls and syscalls using DTrace.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_syscalls.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (method/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+tcl$target:::proc-entry
+{
+	@calls[pid, "proc", copyinstr(arg0)] = count();
+}
+
+tcl$target:::cmd-entry
+{
+	@calls[pid, "cmd", copyinstr(arg0)] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[pid, "syscall", probefunc] = count();
+}
+
+
+dtrace:::END
+{
+	printf(" %6s %-8s %-52s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa(" %6d %-8s %-52s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcl_syscolors.d b/external/cddl/dtracetoolkit/dist/Bin/tcl_syscolors.d
new file mode 100755
index 0000000..13d5245
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcl_syscolors.d
@@ -0,0 +1,139 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_syscolors.d - trace Tcl program flow plus syscalls, in color.
+ *                   Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_syscolors.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches Tcl method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		TID		Thread ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		TYPE		Type of call (proc/cmd/syscall)
+ *		NAME		Tcl proc/cmd or syscall name
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+        color_tcl = "\033[2;35m";		/* violet, faint */
+        color_line = "\033[1;35m";		/* violet, bold */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%3s %6s %9s %-8s -- %s\n", "C", "PID", "DELTA(us)", "TYPE",
+	    "NAME");
+}
+
+tcl$target:::method-entry,
+tcl$target:::method-return,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+tcl$target:::proc-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d %9d %-8s %*s-> %s%s\n", color_tcl, cpu,
+	    pid, this->delta, "proc", self->depth * 2, "", copyinstr(arg0),
+	    color_off);
+	self->depth++;
+	self->depthlast = self->depth;
+	self->last = timestamp;
+}
+
+tcl$target:::proc-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%3d %6d %9d %-8s %*s<- %s%s\n", color_tcl, cpu,
+	    pid, this->delta, "proc", self->depth * 2, "", copyinstr(arg0),
+	    color_off);
+	self->depthlast = self->depth;
+	self->last = timestamp;
+}
+
+tcl$target:::cmd-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d %9d %-8s %*s-> %s%s\n", color_tcl, cpu,
+	    pid, this->delta, "cmd", self->depth * 2, "", copyinstr(arg0),
+	    color_off);
+	self->depth++;
+	self->depthlast = self->depth;
+	self->last = timestamp;
+}
+
+tcl$target:::cmd-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%3d %6d %9d %-8s %*s<- %s%s\n", color_tcl, cpu,
+	    pid, this->delta, "cmd", self->depth * 2, "", copyinstr(arg0),
+	    color_off);
+	self->depthlast = self->depth;
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d %9d %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "syscall", self->depthlast * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d %9d %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "syscall", self->depthlast * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcl_who.d b/external/cddl/dtracetoolkit/dist/Bin/tcl_who.d
new file mode 100755
index 0000000..1940174
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcl_who.d
@@ -0,0 +1,62 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_who.d - trace Tcl calls by process using DTrace.
+ *           Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_who.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of Tcl
+ *		UID		User ID of the owner
+ *		CALLS		Number of calls made (proc + cmd)
+ *		ARGS		Process name and arguments
+ *
+ * Calls is a measure of activity, and is a count of the procedures and
+ * commands that Tcl called.
+ *
+ * The argument list is truncated at 55 characters (up to 80 is easily
+ * available). To easily read the full argument list, use other system tools;
+ * on Solaris use "pargs PID".
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+tcl*:::proc-entry,
+tcl*:::cmd-entry
+{
+	@calls[pid, uid, curpsinfo->pr_psargs] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %-55s\n", "PID", "UID", "CALLS", "ARGS");
+	printa("   %6d %6d %@6d %-55.55s\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcpsnoop b/external/cddl/dtracetoolkit/dist/Bin/tcpsnoop
new file mode 100755
index 0000000..d8596f9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcpsnoop
@@ -0,0 +1,581 @@
+#!/usr/bin/ksh
+#
+# tcpsnoop - snoop TCP network packets by process. 
+#            Written using DTrace (Solaris 10 3/05)
+#
+# This analyses TCP network packets and prints the responsible PID and UID,
+# plus standard details such as IP address and port. This captures traffic
+# of newly created TCP connections that were established while this program
+# was running. It can help identify which processes is causing TCP traffic.
+#
+# WARNING: This script may only work on Solaris 10 3/05, since it uses the
+# fbt provider to trace the raw operation of a specific version of the kernel.
+# In the future, a 'stable' network provider should exist which will allow
+# this to be written for that and subsequent versions of the kernel. In the
+# meantime, check for other versions of this script in the /Net directory,
+# and read the Notes/ALLfbt_notes.txt for more background on fbt.
+#
+# $Id: tcpsnoop,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:       tcpsnoop [-a|hjsvZ] [-n name] [-p pid]
+#
+#		-a             # print all data
+#		-j             # print project ID
+#		-s             # print time, us
+#		-v             # print time, string
+#		-Z             # print zone ID
+#		-n name        # command name to snoop
+#		-p pid         # PID to snoop
+#	eg,
+#		tcpsnoop -v              # human readable timestamps
+#		tcpsnoop -Z              # print zonename
+#		tcpsnoop -n sshd         # snoop sshd traffic only
+#
+# FIELDS:
+#		UID     	user ID
+#		PID     	process ID
+#		CMD     	command
+#		LADDR		local IP address
+#		RADDR		remote IP address
+#		LPORT		local port number
+#		RPORT		remote port number
+#		DR      	direction
+#		SIZE    	packet size, bytes
+#		TIME    	timestamp, us
+#		STRTIME    	human readable timestamp, string
+#		ZONE    	zone ID
+#		PROJ    	project ID
+#
+# SEE ALSO: snoop -rS
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# TODO: IPv6
+#
+# CODE:
+#  The FILTER syntax matches on packets rather than initial 
+#  connections, so that it can follow inetd connections properly.
+#
+# 09-Jul-2004  Brendan Gregg	Created this.
+# 12-Mar-2005     "      "	Changed probes, size info now printed.
+# 02-Jul-2005     "      "	Many more probes. Renamed "tcpsnoop.d".
+# 04-Jul-2005     "      "	Now wrapped in shell, called "tcpsnoop".
+# 03-Dec-2005	  "	 "	Fixed tcp_accept_finish bug, now 100% correct
+#				execname. Thanks Kias Belgaied for expertise.
+# 20-Apr-2006     "      "      Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+# 20-Apr-2006     "      "      Last update.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_name=0; opt_time=0; opt_timestr=0; filter=0; pname=.
+opt_zone=0; opt_proj=0; opt_pid=0; pid=0
+
+### process options
+while getopts ahjsvZn:p: name
+do
+	case $name in
+	a)      opt_time=1; opt_timestr=1; opt_zone=1; opt_proj=1 ;;
+	n)      opt_name=1; pname=$OPTARG ;;
+	p)      opt_pid=1; pid=$OPTARG ;;
+	j)      opt_proj=1 ;;
+	s)      opt_time=1 ;;
+	v)      opt_timestr=1 ;;
+	Z)      opt_zone=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: tcpsnoop [-a|hjsvZ] [-n name] [-p pid]
+		       tcpsnoop                # default output
+		                -a             # print all data
+		                -j             # print project ID
+		                -s             # print start time, us
+		                -v             # print start time, string
+		                -Z             # print zonename
+		                -n name        # command name to snoop
+		                -p pid         # PID to snoop
+		  eg,
+		      tcpsnoop -v              # human readable timestamps
+		      tcpsnoop -Z              # print zonename
+		      tcpsnoop -n sshd         # snoop sshd traffic only
+		END
+		exit 1
+	esac
+done
+
+### option logic
+if (( opt_name || opt_pid )); then
+	filter=1
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -Cs <( print -r '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_name    = '$opt_name';
+ inline int OPT_pid     = '$opt_pid';
+ inline int OPT_time    = '$opt_time';
+ inline int OPT_timestr = '$opt_timestr';
+ inline int OPT_zone    = '$opt_zone';
+ inline int OPT_proj    = '$opt_proj';
+ inline int PID         = '$pid';
+ inline int FILTER      = '$filter';
+ inline string NAME     = "'$pname'";
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+#include <sys/socket.h>
+#include <sys/socketvar.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* print optional headers */
+	OPT_time    ? printf("%-14s ", "TIME") : 1;
+	OPT_timestr ? printf("%-20s ", "STRTIME") : 1;
+	OPT_zone    ? printf("%4s ", "ZONE") : 1;
+	OPT_proj    ? printf("%4s ", "PROJ") : 1;
+
+	/* print main headers */
+	printf("%5s %6s %-15s %5s %2s %-15s %5s %5s %s\n",
+	    "UID", "PID", "LADDR", "LPORT", "DR", "RADDR", "RPORT", 
+	    "SIZE", "CMD");
+}
+
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+	OPT_proj ? tproj[(int)self->connp] = curpsinfo->pr_projid : 1;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+	tproj[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+/FILTER == 0/
+{
+	this->queuep = (queue_t *)`tcp_g_q; /* ` */
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+	self->zoneid = this->connp->conn_zoneid;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+/FILTER == 0/
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->proj = 0;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+	self->zoneid = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+        self->dir = "->";
+        self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+        self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+        self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "<-";
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+	self->dir = "->";
+}
+
+fbt:ip:tcp_connect:return
+/(self->connp) &&
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* this packet occured before connp was fully established */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+}
+
+fbt:sockfs:sotpi_accept:return
+/(self->connp) &&
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* these packets occured before connp was fully established */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "<-";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * Print output
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/(self->ok == 2) && 
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* print optional fields */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+
+	/* print output line */
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/* 
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/* 
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->dir = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+	self->zoneid = 0;
+	self->proj = 0;
+}
+')
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcpsnoop.d b/external/cddl/dtracetoolkit/dist/Bin/tcpsnoop.d
new file mode 100755
index 0000000..67c368b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcpsnoop.d
@@ -0,0 +1,424 @@
+#!/usr/sbin/dtrace -Cs
+/*
+ * tcpsnoop.d - snoop TCP network packets by process.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * This analyses TCP network packets and prints the responsible PID and UID,
+ * plus standard details such as IP address and port. This captures traffic
+ * of newly created TCP connections that were established while this program
+ * was running. It can help identify which processes is causing TCP traffic.
+ *
+ * WARNING: This script may only work on Solaris 10 3/05, since it uses the
+ * fbt provider to trace the raw operation of a specific version of the kernel.
+ * In the future, a 'stable' network provider should exist which will allow
+ * this to be written for that and subsequent versions of the kernel. In the
+ * meantime, check for other versions of this script in the /Net directory,
+ * and read the Notes/ALLfbt_notes.txt for more background on fbt.
+ *
+ * $Id: tcpsnoop.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       tcpsnoop.d
+ *
+ * FIELDS:
+ *		UID     	user ID
+ *		PID     	process ID
+ *		CMD     	command
+ *		LADDR		local IP address
+ *		RADDR		remote IP address
+ *		LPORT		local port number
+ *		RPORT		remote port number
+ *		DR      	direction
+ *		SIZE    	packet size, bytes
+ *
+ * SEE ALSO: snoop -rS
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * Author: Brendan Gregg  [Sydney, Australia]
+ *
+ * TODO: IPv6
+ *
+ * 09-Jul-2004  Brendan Gregg   Created this.
+ * 12-Mar-2005     "      "	Changed probes, size info now printed.
+ * 02-Jul-2005     "      "	Many more probes. Renamed "tcpsnoop.d".
+ * 03-Dec-2005	   "	  "	Fixed tcp_accept_finish bug, now 100% correct
+ *				execname. Thanks Kias Belgaied for expertise.
+ * 20-Apr-2006	   "	  "	Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+ * 20-Apr-2006	   "	  "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* print main headers */
+	printf("%5s %6s %-15s %5s %2s %-15s %5s %5s %s\n",
+	    "UID", "PID", "LADDR", "LPORT", "DR", "RADDR", "RPORT",
+	    "SIZE", "CMD");
+}
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+{
+	this->queuep = (queue_t *)`tcp_g_q; /* ` */
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "->";
+	self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+	self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "<-";
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->size = 54;	/* should check trailers */
+	self->dir = "->";
+	/* this packet occured before connp was fully established */
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->size = 54;	/* should check trailers */
+	/* these packets occured before connp was fully established */
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * Print output
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/self->ok == 2/
+{
+	/* print output line */
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/*
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->dir = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcpsnoop_snv b/external/cddl/dtracetoolkit/dist/Bin/tcpsnoop_snv
new file mode 100755
index 0000000..ed6a8cf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcpsnoop_snv
@@ -0,0 +1,583 @@
+#!/usr/bin/ksh
+#
+# tcpsnoop_snv - snoop TCP network packets by process. 
+#                Written using DTrace (Solaris Nevada)
+#
+# This analyses TCP network packets and prints the responsible PID and UID,
+# plus standard details such as IP address and port. This captures traffic
+# of newly created TCP connections that were established while this program
+# was running. It can help identify which processes is causing TCP traffic.
+#
+# WARNING: This script may only work on Solaris Nevada and OpenSolaris
+# of the late 2007 vintage, since it uses the fbt provider to trace the raw
+# operation of a specific version of the kernel. In the future, a 'stable'
+# network provider should exist which will allow this to be written for that
+# and subsequent versions of the kernel. In the meantime, check for other
+# versions of this script in the /Net directory, and read the
+# Notes/ALLfbt_notes.txt for more background on fbt.
+#
+# $Id: tcpsnoop_snv,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:       tcpsnoop [-a|hjsvZ] [-n name] [-p pid]
+#
+#		-a             # print all data
+#		-j             # print project ID
+#		-s             # print time, us
+#		-v             # print time, string
+#		-Z             # print zone ID
+#		-n name        # command name to snoop
+#		-p pid         # PID to snoop
+#	eg,
+#		tcpsnoop -v              # human readable timestamps
+#		tcpsnoop -Z              # print zonename
+#		tcpsnoop -n sshd         # snoop sshd traffic only
+#
+# FIELDS:
+#		UID     	user ID
+#		PID     	process ID
+#		CMD     	command
+#		LADDR		local IP address
+#		RADDR		remote IP address
+#		LPORT		local port number
+#		RPORT		remote port number
+#		DR      	direction
+#		SIZE    	packet size, bytes
+#		TIME    	timestamp, us
+#		STRTIME    	human readable timestamp, string
+#		ZONE    	zone ID
+#		PROJ    	project ID
+#
+# SEE ALSO: snoop -rS
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# TODO: IPv6
+#
+# CODE:
+#  The FILTER syntax matches on packets rather than initial 
+#  connections, so that it can follow inetd connections properly.
+#
+# 09-Jul-2004  Brendan Gregg	Created this.
+# 12-Mar-2005     "      "	Changed probes, size info now printed.
+# 02-Jul-2005     "      "	Many more probes. Renamed "tcpsnoop.d".
+# 04-Jul-2005     "      "	Now wrapped in shell, called "tcpsnoop".
+# 03-Dec-2005	  "	 "	Fixed tcp_accept_finish bug, now 100% correct
+#				execname. Thanks Kias Belgaied for expertise.
+# 20-Apr-2006     "      "      Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+# 20-Apr-2006     "      "      Last update.
+# 30-Sep-2007	   "	  "	Bumped this for recent OpenSolaris/Nevada.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_name=0; opt_time=0; opt_timestr=0; filter=0; pname=.
+opt_zone=0; opt_proj=0; opt_pid=0; pid=0
+
+### process options
+while getopts ahjsvZn:p: name
+do
+	case $name in
+	a)      opt_time=1; opt_timestr=1; opt_zone=1; opt_proj=1 ;;
+	n)      opt_name=1; pname=$OPTARG ;;
+	p)      opt_pid=1; pid=$OPTARG ;;
+	j)      opt_proj=1 ;;
+	s)      opt_time=1 ;;
+	v)      opt_timestr=1 ;;
+	Z)      opt_zone=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: tcpsnoop [-a|hjsvZ] [-n name] [-p pid]
+		       tcpsnoop                # default output
+		                -a             # print all data
+		                -j             # print project ID
+		                -s             # print start time, us
+		                -v             # print start time, string
+		                -Z             # print zonename
+		                -n name        # command name to snoop
+		                -p pid         # PID to snoop
+		  eg,
+		      tcpsnoop -v              # human readable timestamps
+		      tcpsnoop -Z              # print zonename
+		      tcpsnoop -n sshd         # snoop sshd traffic only
+		END
+		exit 1
+	esac
+done
+
+### option logic
+if (( opt_name || opt_pid )); then
+	filter=1
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -Cs <( print -r '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_name    = '$opt_name';
+ inline int OPT_pid     = '$opt_pid';
+ inline int OPT_time    = '$opt_time';
+ inline int OPT_timestr = '$opt_timestr';
+ inline int OPT_zone    = '$opt_zone';
+ inline int OPT_proj    = '$opt_proj';
+ inline int PID         = '$pid';
+ inline int FILTER      = '$filter';
+ inline string NAME     = "'$pname'";
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+#include <sys/socket.h>
+#include <sys/socketvar.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* print optional headers */
+	OPT_time    ? printf("%-14s ", "TIME") : 1;
+	OPT_timestr ? printf("%-20s ", "STRTIME") : 1;
+	OPT_zone    ? printf("%4s ", "ZONE") : 1;
+	OPT_proj    ? printf("%4s ", "PROJ") : 1;
+
+	/* print main headers */
+	printf("%5s %6s %-15s %5s %2s %-15s %5s %5s %s\n",
+	    "UID", "PID", "LADDR", "LPORT", "DR", "RADDR", "RPORT", 
+	    "SIZE", "CMD");
+}
+
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+	OPT_proj ? tproj[(int)self->connp] = curpsinfo->pr_projid : 1;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+	tproj[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+/FILTER == 0/
+{
+	this->queuep = args[7]->tcps_g_q;
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+	self->zoneid = this->connp->conn_zoneid;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+/FILTER == 0/
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->proj = 0;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+	self->zoneid = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+        self->dir = "->";
+        self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+        self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+        self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "<-";
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+	self->dir = "->";
+}
+
+fbt:ip:tcp_connect:return
+/(self->connp) &&
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* this packet occured before connp was fully established */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+}
+
+fbt:sockfs:sotpi_accept:return
+/(self->connp) &&
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* these packets occured before connp was fully established */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "<-";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * Print output
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/(self->ok == 2) && 
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* print optional fields */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+
+	/* print output line */
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/* 
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/* 
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->dir = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+	self->zoneid = 0;
+	self->proj = 0;
+}
+')
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcpsnoop_snv.d b/external/cddl/dtracetoolkit/dist/Bin/tcpsnoop_snv.d
new file mode 100755
index 0000000..da45088
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcpsnoop_snv.d
@@ -0,0 +1,426 @@
+#!/usr/sbin/dtrace -Cs
+/*
+ * tcpsnoop_snv.d - snoop TCP network packets by process.
+ *                  Written using DTrace (Solaris Nevada)
+ *
+ * This analyses TCP network packets and prints the responsible PID and UID,
+ * plus standard details such as IP address and port. This captures traffic
+ * of newly created TCP connections that were established while this program
+ * was running. It can help identify which processes is causing TCP traffic.
+ *
+ * WARNING: This script may only work on Solaris Nevada and OpenSolaris
+ * of the late 2007 vintage, since it uses the fbt provider to trace the raw
+ * operation of a specific version of the kernel. In the future, a 'stable'
+ * network provider should exist which will allow this to be written for that
+ * and subsequent versions of the kernel. In the meantime, check for other
+ * versions of this script in the /Net directory, and read the
+ * Notes/ALLfbt_notes.txt for more background on fbt.
+ *
+ * $Id: tcpsnoop_snv.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       tcpsnoop.d
+ *
+ * FIELDS:
+ *		UID     	user ID
+ *		PID     	process ID
+ *		CMD     	command
+ *		LADDR		local IP address
+ *		RADDR		remote IP address
+ *		LPORT		local port number
+ *		RPORT		remote port number
+ *		DR      	direction
+ *		SIZE    	packet size, bytes
+ *
+ * SEE ALSO: snoop -rS
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * Author: Brendan Gregg  [Sydney, Australia]
+ *
+ * TODO: IPv6
+ *
+ * 09-Jul-2004  Brendan Gregg   Created this.
+ * 12-Mar-2005     "      "	Changed probes, size info now printed.
+ * 02-Jul-2005     "      "	Many more probes. Renamed "tcpsnoop.d".
+ * 03-Dec-2005	   "	  "	Fixed tcp_accept_finish bug, now 100% correct
+ *				execname. Thanks Kias Belgaied for expertise.
+ * 20-Apr-2006	   "	  "	Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+ * 20-Apr-2006	   "	  "	Last update.
+ * 30-Sep-2007	   "	  "	Bumped this for recent OpenSolaris/Nevada.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* print main headers */
+	printf("%5s %6s %-15s %5s %2s %-15s %5s %5s %s\n",
+	    "UID", "PID", "LADDR", "LPORT", "DR", "RADDR", "RPORT",
+	    "SIZE", "CMD");
+}
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+{
+	this->queuep = args[7]->tcps_g_q;
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "->";
+	self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+	self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "<-";
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->size = 54;	/* should check trailers */
+	self->dir = "->";
+	/* this packet occured before connp was fully established */
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->size = 54;	/* should check trailers */
+	/* these packets occured before connp was fully established */
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * Print output
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/self->ok == 2/
+{
+	/* print output line */
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/*
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->dir = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcpstat.d b/external/cddl/dtracetoolkit/dist/Bin/tcpstat.d
new file mode 100755
index 0000000..fe02098
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcpstat.d
@@ -0,0 +1,91 @@
+#!/usr/sbin/dtrace -s
+/*
+ * tcpstat.d - print TCP statistics. Uses DTrace.
+ *
+ * This prints TCP statistics every second, retrieved from the MIB provider.
+ *
+ * $Id: tcpstat.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	tcpstat.d
+ *
+ * FIELDS:
+ *		TCP_out		TCP bytes sent
+ *		TCP_outRe	TCP bytes retransmitted
+ *		TCP_in		TCP bytes received
+ *		TCP_inDup	TCP bytes received duplicated
+ *		TCP_inUn	TCP bytes received out of order
+ *
+ * The above TCP statistics are documented in the mib2_tcp struct
+ * in the /usr/include/inet/mib2.h file; and also in the mib provider
+ * chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 15-May-2005  Brendan Gregg   Created this.
+ * 15-May-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Declare Globals
+ */
+dtrace:::BEGIN
+{
+	TCP_out = 0; TCP_outRe = 0;
+	TCP_in = 0; TCP_inDup = 0; TCP_inUn = 0;
+	LINES = 20; line = 0;
+}
+
+/*
+ * Print Header
+ */
+profile:::tick-1sec { line--; }
+
+profile:::tick-1sec
+/line <= 0 /
+{
+	printf("%11s %11s %11s %11s %11s\n",
+	    "TCP_out", "TCP_outRe", "TCP_in", "TCP_inDup", "TCP_inUn");
+
+	line = LINES;
+}
+
+/*
+ * Save Data
+ */
+mib:::tcpOutDataBytes		{ TCP_out += arg0;   }
+mib:::tcpRetransBytes		{ TCP_outRe += arg0; }
+mib:::tcpInDataInorderBytes	{ TCP_in += arg0;    }
+mib:::tcpInDataDupBytes		{ TCP_inDup += arg0; }
+mib:::tcpInDataUnorderBytes	{ TCP_inUn += arg0;  }
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+{
+	printf("%11d %11d %11d %11d %11d\n",
+	    TCP_out, TCP_outRe, TCP_in, TCP_inDup, TCP_inUn);
+
+	/* clear values */
+	TCP_out   = 0;
+	TCP_outRe = 0;
+	TCP_in    = 0;
+	TCP_inDup = 0;
+	TCP_inUn  = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcptop b/external/cddl/dtracetoolkit/dist/Bin/tcptop
new file mode 100755
index 0000000..f0c3168
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcptop
@@ -0,0 +1,579 @@
+#!/usr/bin/ksh
+#
+# tcptop - display top TCP network packets by process. 
+#          Written using DTrace (Solaris 10 3/05)
+#
+# This analyses TCP network packets and prints the responsible PID and UID,
+# plus standard details such as IP address and port. This captures traffic
+# of newly created TCP connections that were established while this program
+# was running. It can help identify which processes is causing TCP traffic.
+#
+# WARNING: This script may only work on Solaris 10 3/05, since it uses the
+# fbt provider to trace the raw operation of a specific version of the kernel.
+# In the future, a 'stable' network provider should exist which will allow
+# this to be written for that and subsequent versions of the kernel. In the
+# meantime, check for other versions of this script in the /Net directory,
+# and read the Notes/ALLfbt_notes.txt for more background on fbt.
+#
+# $Id: tcptop,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	tcptop [-Ch] [-j|-Z] [interval [count]]
+#
+#		-C		# don't clear the screen
+#		-j		# print project IDs
+#		-Z		# print zone IDs
+#
+# FIELDS:
+#		UID     	user ID
+#		PID     	process ID
+#		CMD     	command
+#		LADDR		local IP address
+#		RADDR		remote IP address
+#		LPORT		local port number
+#		RPORT		remote port number
+#		SIZE    	packet size, bytes
+#		load		1 min load average
+#		TCPin		TCP inbound payload data
+#		TCPout		TCP outbound payload data
+#		ZONE    	zone ID
+#		PROJ    	project ID
+#
+# SEE ALSO:	tcpsnoop
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# ToDo: IPv6
+#
+# 05-Jul-2005  Brendan Gregg	Created this.
+# 03-Dec-2005	  "	 "	Fixed tcp_accept_finish bug, now 100% correct
+#				execname. Thanks Kias Belgaied for expertise.
+# 20-Apr-2006     "      "      Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+# 20-Apr-2006     "      "      Last update.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_def=1; opt_clear=1; opt_zone=0; opt_proj=0; interval=5; count=-1
+
+### process options
+while getopts ChjZ name
+do
+	case $name in
+	C)      opt_clear=0 ;;
+	j)      opt_proj=1; opt_def=0 ;;
+	Z)      opt_zone=1; opt_def=0 ;;
+	h|?)    cat <<-END >&2
+		USAGE: tcptop [-h] [-j|-Z] [interval [count]]
+		       tcptop                  # default output
+		                -C             # don't clear the screen
+		                -j             # print project ID
+		                -Z             # print zonename
+		  eg,
+		      tcptop                   # default is 5 sec interval
+		      tcptop 2                 # 2 second interval
+		      tcptop -C 1 10           # 10 x 1 sec samples, no clear
+		END
+		exit 1
+	esac
+done
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_proj && opt_zone )); then
+	opt_proj=0
+fi
+if (( opt_clear )); then
+	clearstr=`clear`
+else
+	clearstr=.
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -Cs <( print -r '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_def   = '$opt_def';
+ inline int OPT_zone  = '$opt_zone';
+ inline int OPT_proj  = '$opt_proj';
+ inline int OPT_clear = '$opt_clear';
+ inline int INTERVAL  = '$interval';
+ inline int COUNTER   = '$count';
+ inline string CLEAR  = "'$clearstr'";
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+#include <sys/socket.h>
+#include <sys/socketvar.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* starting values */
+        counts = COUNTER;
+        secs = INTERVAL;
+	TCP_out = 0;
+	TCP_in = 0;
+
+	printf("Tracing... Please wait.\n");
+}
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+	OPT_proj ? tproj[(int)self->connp] = curpsinfo->pr_projid : 1;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+	tproj[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+{
+	this->queuep = (queue_t *)`tcp_g_q; /* ` */
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+	self->zoneid = this->connp->conn_zoneid;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->proj = 0;
+	self->size = 54 * 2;	/* should check trailers */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+        self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+        self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+        self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+
+	/* this packet occured before connp was fully established */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54 * 3;	/* should check trailers */
+
+	/* these packets occured before connp was fully established */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/*
+ * TCP Save data
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/self->ok == 2/ 
+{
+	/* save r+w data*/
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/* 
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/* 
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+	self->zoneid = 0;
+	self->proj = 0;
+}
+
+/*
+ * TCP Systemwide Stats
+ */
+mib:::tcpOutDataBytes       { TCP_out += args[0]; }
+mib:::tcpRetransBytes       { TCP_out += args[0]; }
+mib:::tcpInDataInorderBytes { TCP_in  += args[0]; }
+mib:::tcpInDataDupBytes     { TCP_in  += args[0]; }
+mib:::tcpInDataUnorderBytes { TCP_in  += args[0]; }
+
+/*
+ * Timer
+ */
+profile:::tick-1sec
+{
+        secs--;
+}
+
+/*
+ * Print Report
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+        /* fetch 1 min load average */
+        this->load1a  = `hp_avenrun[0] / 65536;
+        this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+
+	/* convert TCP counters to Kbytes */
+	TCP_out /= 1024;
+	TCP_in  /= 1024;
+
+	/* print status */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+        printf("%Y,  load: %d.%02d,  TCPin: %6d KB,  TCPout: %6d KB\n\n",
+            walltimestamp, this->load1a, this->load1b, TCP_in, TCP_out);
+
+	/* print headers */
+	OPT_def  ? printf(" UID ") : 1;
+	OPT_proj ? printf("PROJ ") : 1;
+	OPT_zone ? printf("ZONE ") : 1;
+        printf("%6s %-15s %5s %-15s %5s %9s %s\n",
+	    "PID", "LADDR", "LPORT", "RADDR", "RPORT", "SIZE", "NAME");
+
+	/* print data */
+        printa("%4d %6d %-15s %5d %-15s %5d %@9d %s\n", @out);
+	printf("\n");
+
+	/* clear data */
+        trunc(@out);
+	TCP_in = 0;
+	TCP_out = 0;
+        secs = INTERVAL;
+        counts--;
+}
+
+/*
+ * End of program
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}
+
+/*
+ * Cleanup for Ctrl-C
+ */
+dtrace:::END
+{
+        trunc(@out);
+}
+')
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcptop_snv b/external/cddl/dtracetoolkit/dist/Bin/tcptop_snv
new file mode 100755
index 0000000..96ce8ac
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcptop_snv
@@ -0,0 +1,581 @@
+#!/usr/bin/ksh
+#
+# tcptop_snv - display top TCP network packets by process. 
+#              Written using DTrace (Solaris Nevada)
+#
+# This analyses TCP network packets and prints the responsible PID and UID,
+# plus standard details such as IP address and port. This captures traffic
+# of newly created TCP connections that were established while this program
+# was running. It can help identify which processes is causing TCP traffic.
+#
+# WARNING: This script may only work on Solaris Nevada and OpenSolaris
+# of the late 2007 vintage, since it uses the fbt provider to trace the raw
+# operation of a specific version of the kernel. In the future, a 'stable'
+# network provider should exist which will allow this to be written for that
+# and subsequent versions of the kernel. In the meantime, check for other
+# versions of this script in the /Net directory, and read the
+# Notes/ALLfbt_notes.txt for more background on fbt.
+#
+# $Id: tcptop_snv,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	tcptop [-Ch] [-j|-Z] [interval [count]]
+#
+#		-C		# don't clear the screen
+#		-j		# print project IDs
+#		-Z		# print zone IDs
+#
+# FIELDS:
+#		UID     	user ID
+#		PID     	process ID
+#		CMD     	command
+#		LADDR		local IP address
+#		RADDR		remote IP address
+#		LPORT		local port number
+#		RPORT		remote port number
+#		SIZE    	packet size, bytes
+#		load		1 min load average
+#		TCPin		TCP inbound payload data
+#		TCPout		TCP outbound payload data
+#		ZONE    	zone ID
+#		PROJ    	project ID
+#
+# SEE ALSO:	tcpsnoop
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# ToDo: IPv6
+#
+# 05-Jul-2005  Brendan Gregg	Created this.
+# 03-Dec-2005	  "	 "	Fixed tcp_accept_finish bug, now 100% correct
+#				execname. Thanks Kias Belgaied for expertise.
+# 20-Apr-2006     "      "      Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+# 20-Apr-2006     "      "      Last update.
+# 30-Sep-2007	   "	  "	Bumped this for recent OpenSolaris/Nevada.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_def=1; opt_clear=1; opt_zone=0; opt_proj=0; interval=5; count=-1
+
+### process options
+while getopts ChjZ name
+do
+	case $name in
+	C)      opt_clear=0 ;;
+	j)      opt_proj=1; opt_def=0 ;;
+	Z)      opt_zone=1; opt_def=0 ;;
+	h|?)    cat <<-END >&2
+		USAGE: tcptop [-h] [-j|-Z] [interval [count]]
+		       tcptop                  # default output
+		                -C             # don't clear the screen
+		                -j             # print project ID
+		                -Z             # print zonename
+		  eg,
+		      tcptop                   # default is 5 sec interval
+		      tcptop 2                 # 2 second interval
+		      tcptop -C 1 10           # 10 x 1 sec samples, no clear
+		END
+		exit 1
+	esac
+done
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_proj && opt_zone )); then
+	opt_proj=0
+fi
+if (( opt_clear )); then
+	clearstr=`clear`
+else
+	clearstr=.
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -Cs <( print -r '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_def   = '$opt_def';
+ inline int OPT_zone  = '$opt_zone';
+ inline int OPT_proj  = '$opt_proj';
+ inline int OPT_clear = '$opt_clear';
+ inline int INTERVAL  = '$interval';
+ inline int COUNTER   = '$count';
+ inline string CLEAR  = "'$clearstr'";
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+#include <sys/socket.h>
+#include <sys/socketvar.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* starting values */
+        counts = COUNTER;
+        secs = INTERVAL;
+	TCP_out = 0;
+	TCP_in = 0;
+
+	printf("Tracing... Please wait.\n");
+}
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+	OPT_proj ? tproj[(int)self->connp] = curpsinfo->pr_projid : 1;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+	tproj[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+{
+	this->queuep = args[7]->tcps_g_q;
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+	self->zoneid = this->connp->conn_zoneid;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->proj = 0;
+	self->size = 54 * 2;	/* should check trailers */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+        self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+        self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+        self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+
+	/* this packet occured before connp was fully established */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54 * 3;	/* should check trailers */
+
+	/* these packets occured before connp was fully established */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/*
+ * TCP Save data
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/self->ok == 2/ 
+{
+	/* save r+w data*/
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/* 
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/* 
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+	self->zoneid = 0;
+	self->proj = 0;
+}
+
+/*
+ * TCP Systemwide Stats
+ */
+mib:::tcpOutDataBytes       { TCP_out += args[0]; }
+mib:::tcpRetransBytes       { TCP_out += args[0]; }
+mib:::tcpInDataInorderBytes { TCP_in  += args[0]; }
+mib:::tcpInDataDupBytes     { TCP_in  += args[0]; }
+mib:::tcpInDataUnorderBytes { TCP_in  += args[0]; }
+
+/*
+ * Timer
+ */
+profile:::tick-1sec
+{
+        secs--;
+}
+
+/*
+ * Print Report
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+        /* fetch 1 min load average */
+        this->load1a  = `hp_avenrun[0] / 65536;
+        this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+
+	/* convert TCP counters to Kbytes */
+	TCP_out /= 1024;
+	TCP_in  /= 1024;
+
+	/* print status */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+        printf("%Y,  load: %d.%02d,  TCPin: %6d KB,  TCPout: %6d KB\n\n",
+            walltimestamp, this->load1a, this->load1b, TCP_in, TCP_out);
+
+	/* print headers */
+	OPT_def  ? printf(" UID ") : 1;
+	OPT_proj ? printf("PROJ ") : 1;
+	OPT_zone ? printf("ZONE ") : 1;
+        printf("%6s %-15s %5s %-15s %5s %9s %s\n",
+	    "PID", "LADDR", "LPORT", "RADDR", "RPORT", "SIZE", "NAME");
+
+	/* print data */
+        printa("%4d %6d %-15s %5d %-15s %5d %@9d %s\n", @out);
+	printf("\n");
+
+	/* clear data */
+        trunc(@out);
+	TCP_in = 0;
+	TCP_out = 0;
+        secs = INTERVAL;
+        counts--;
+}
+
+/*
+ * End of program
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}
+
+/*
+ * Cleanup for Ctrl-C
+ */
+dtrace:::END
+{
+        trunc(@out);
+}
+')
diff --git a/external/cddl/dtracetoolkit/dist/Bin/tcpwdist.d b/external/cddl/dtracetoolkit/dist/Bin/tcpwdist.d
new file mode 100755
index 0000000..da88a97
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/tcpwdist.d
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -s
+/*
+ * tcpwdist.d - simple TCP write distribution by process.
+ *              Written in DTrace (Solaris 10 3/05).
+ *
+ * This measures the size of writes from applications to the TCP level, which
+ * may well be much larger than the MTU size (this is application writes not
+ * packet writes). It can help identify which process is creating network
+ * traffic, and the size of the writes by that application. It uses a simple
+ * probe that produces meaningful output for most protocols.
+ *
+ * Tracking TCP activity by process is complex for a number of reasons,
+ * the greatest is that inbound TCP traffic is asynchronous to the process.
+ * The easiest TCP traffic to match is writes, which this script demonstrates.
+ * However there are still issues - for an inbound telnet connection the
+ * writes are associated with the command, for example "ls -l", not something
+ * meaningful such as "in.telnetd".
+ *
+ * Scripts that match TCP traffic properly include tcpsnoop and tcptop.
+ *
+ * $Id: tcpwdist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       tcpwdist.d          # wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID	process ID
+ *		CMD	command and argument list
+ *		value	TCP write payload size in bytes
+ *		count	number of writes
+ *
+ * SEE ALSO:	tcpsnoop, tcptop
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Jul-2004	Brendan Gregg	Created this.
+ * 14-Jun-2005	   "      "	Rewrote this as tcpwdist.d.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/*
+ * Process TCP Write
+ */
+fbt:ip:tcp_output:entry
+{
+	/* fetch details */
+	this->size = msgdsize(args[1]);
+
+	/* store details */
+	@Size[pid, curpsinfo->pr_psargs] = quantize(this->size);
+}
+
+/*
+ * Print final report
+ */
+dtrace:::END
+{
+	printa(" PID: %-6d CMD: %S\n%@d\n", @Size);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/threaded.d b/external/cddl/dtracetoolkit/dist/Bin/threaded.d
new file mode 100755
index 0000000..ddaf8fe
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/threaded.d
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -s
+/*
+ * threaded.d - sample multi-threaded CPU usage.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * This measures thread IDs as a process runs across multiple CPUs.
+ * It is a simple script that can help determine if a multi-threaded
+ * application is effectively using it's threads, or if the threads have
+ * serialised. See the example file in Docs/Examples/threaded_example.txt
+ * for a demonstration.
+ *
+ * $Id: threaded.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	threaded.d
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		process name
+ *		value		thread ID
+ *		count		number of samples
+ *
+ * SEE ALSO:	prstat -L
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * Author: Brendan Gregg  [Sydney, Australia]
+ *
+ * 25-Jul-2005	Brendan Gregg	Created this.
+ * 25-Jul-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Sample at 100 Hertz
+ */
+profile:::profile-100
+/pid != 0/
+{
+	@sample[pid, execname] = lquantize(tid, 0, 128, 1);
+}
+
+/*
+ * Print output every 1 second
+ */
+profile:::tick-1sec
+{
+	printf("%Y,\n", walltimestamp);
+	printa("\n     PID: %-8d CMD: %s\n%@d", @sample);
+	printf("\n");
+	trunc(@sample);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/topsyscall b/external/cddl/dtracetoolkit/dist/Bin/topsyscall
new file mode 100755
index 0000000..c7bb7d3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/topsyscall
@@ -0,0 +1,184 @@
+#!/usr/bin/ksh
+#
+# topsyscall - display top syscalls by syscall name.
+#              Written using DTrace (Solaris 10 3/05).
+#
+# This program continually prints a report of the top system calls,
+# and refreshes the display every 1 second or as specified at the
+# command line.
+#
+# $Id: topsyscall,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:        topsyscall [-Cs] [interval [count]]
+#
+#		    -C		# don't clear the screen
+#		    -s		# print per second values
+#
+# FIELDS:
+#		load avg	load averages, see uptime(1)
+#		syscalls	total syscalls in this interval
+#		syscalls/s	syscalls per second
+#		SYSCALL		system call name
+#		COUNT		total syscalls in this interval
+#		COUNT/s		syscalls per second
+#
+# INSPIRATION:  top(1) by William LeFebvre
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 13-Jun-2005	Brendan Gregg	Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+count=-1; interval=1; opt_persec=0; opt_clear=1
+
+### Process options
+while getopts Chs name
+do
+        case $name in
+        C)      opt_clear=0 ;;
+        s)      opt_persec=1 ;;
+        h|?)    cat <<-END >&2
+		USAGE: topsyscall [-s] [interval [count]]
+		           -C          # don't clear the screen
+		           -s          # print per second values
+		   eg,
+		       topsyscall      # default, 1 second updates
+		       topsyscall 5    # 5 second updates
+		END
+		exit 1
+        esac
+done
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_clear )); then
+        clearstr=`clear`
+else
+        clearstr=.
+fi
+
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+ #pragma D option destructive
+
+ /* constants */
+ inline int OPT_clear  = '$opt_clear';
+ inline int OPT_persec = '$opt_persec';
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$count';
+ inline int SCREEN     = 20;
+ inline string CLEAR   = "'$clearstr'";
+
+ /* variables */
+ dtrace:::BEGIN
+ {
+	secs = INTERVAL;
+	counts = COUNTER;
+	printf("Tracing... Please wait.\n");
+ }
+
+ /* record syscall event */
+ syscall:::entry
+ {
+	@Name[probefunc] = count();
+	@Total = count();
+ }
+
+ /* timer */
+ profile:::tick-1sec
+ {
+        secs--;
+ }
+
+ /* update screen */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+        /* fetch load averages */
+        this->load1a  = `hp_avenrun[0] / 65536;
+        this->load5a  = `hp_avenrun[1] / 65536;
+        this->load15a = `hp_avenrun[2] / 65536;
+        this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+        this->load5b  = ((`hp_avenrun[1] % 65536) * 100) / 65536;
+        this->load15b = ((`hp_avenrun[2] % 65536) * 100) / 65536;
+
+	/* clear screen */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+
+        /* print load average */
+        printf("%Y, load average: %d.%02d, %d.%02d, %d.%02d",
+            walltimestamp, this->load1a, this->load1b, this->load5a,
+            this->load5b, this->load15a, this->load15b);
+
+	/* calculate per second values if needed */
+	OPT_persec ? normalize(@Total, INTERVAL) : 1;
+	OPT_persec ? normalize(@Name, INTERVAL) : 1;
+
+	/* print syscall count */
+	printf("   %s: ", OPT_persec ? "syscalls/s" : "syscalls");
+	printa("%@d\n",@Total);
+
+	/* print report */
+	trunc(@Name, SCREEN);
+	printf("\n   %-25s %12s\n", "SYSCALL", 
+	    OPT_persec ? "COUNT/s" : "COUNT");
+	printa("   %-25s %@12d\n", @Name);
+	printf("\n");
+
+	/* reset variables */
+	trunc(@Name);
+	clear(@Total);
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /*
+  * End of program
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+
+ /*
+  * Cleanup for Ctrl-C
+  */
+ dtrace:::END
+ {
+	trunc(@Name);
+	trunc(@Total);
+ }
+'
+
diff --git a/external/cddl/dtracetoolkit/dist/Bin/topsysproc b/external/cddl/dtracetoolkit/dist/Bin/topsysproc
new file mode 100755
index 0000000..fd57847
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/topsysproc
@@ -0,0 +1,121 @@
+#!/usr/bin/sh
+#
+# topsysproc - display top syscalls by process name.
+#              Written using DTrace (Solaris 10 3/05).
+#
+# This program continually prints a report of the number of system calls
+# by process name, and refreshes the display every 1 second or as specified
+# at the command line. Similar data can be fetched with "prstat -m".
+#
+# $Id: topsysproc,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:        topsysproc [interval]
+#
+# FIELDS:
+#		load avg   load averages, see uptime(1)
+#		syscalls   total number of syscalls in this interval
+#		PROCESS    process name
+#		COUNT      number of occurances in this interval
+#
+# NOTE: There may be several PIDs with the same process name.
+#
+# SEE ALSO:     prstat(1M)
+#
+# INSPIRATION:  top(1) by William LeFebvre
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 13-Jun-2005	Brendan Gregg	Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+#
+#  Check options
+#
+if [ "$1" = "-h" -o "$1" = "--help" ]; then
+	cat <<-END
+	USAGE: topsysproc [interval]
+	   eg,
+	       topsysproc            # default, 1 second updates
+	       topsysproc 5          # 5 second updates
+	END
+	exit 1
+fi
+interval=1
+if [ "$1" -gt 0 ]; then
+	interval=$1
+fi
+
+#
+#  Run DTrace
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+ #pragma D option destructive
+
+ /* constants */
+ inline int INTERVAL = '$interval';
+ inline int SCREEN   = 20;
+
+ /* variables */
+ dtrace:::BEGIN
+ {
+	secs = 0;
+	printf("Tracing... Please wait.\n");
+ }
+
+ /* record syscall event */
+ syscall:::entry
+ {
+	@Name[execname] = count();
+	@Total = count();
+ }
+
+ /* update screen */
+ profile:::tick-1sec
+ /++secs >= INTERVAL/
+ {
+        /* fetch load averages */
+        this->load1a  = `hp_avenrun[0] / 65536;
+        this->load5a  = `hp_avenrun[1] / 65536;
+        this->load15a = `hp_avenrun[2] / 65536;
+        this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+        this->load5b  = ((`hp_avenrun[1] % 65536) * 100) / 65536;
+        this->load15b = ((`hp_avenrun[2] % 65536) * 100) / 65536;
+
+	/* clear screen */
+	system("clear");
+
+        /* print load average */
+        printf("%Y, load average: %d.%02d, %d.%02d, %d.%02d",
+            walltimestamp, this->load1a, this->load1b, this->load5a,
+            this->load5b, this->load15a, this->load15b);
+
+	/* print syscall count */
+	printa("   syscalls: %@d\n",@Total);
+
+	/* print report */
+	trunc(@Name, SCREEN);
+	printf("\n   %-25s %12s\n", "PROCESS", "COUNT");
+	printa("   %-25s %@12d\n", @Name);
+
+	/* reset variables */
+	trunc(@Name);
+	clear(@Total);
+	secs = 0;
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Bin/udpstat.d b/external/cddl/dtracetoolkit/dist/Bin/udpstat.d
new file mode 100755
index 0000000..562edb2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/udpstat.d
@@ -0,0 +1,92 @@
+#!/usr/sbin/dtrace -s
+/*
+ * udpstat.d - print UDP statistics. Uses DTrace.
+ *
+ * This prints UDP statistics every second, retrieved from the MIB provider.
+ *
+ * $Id: udpstat.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	udpstat.d
+ *
+ * FIELDS:
+ *		UDP_out		UDP datagrams sent
+ *		UDP_outErr	UDP datagrams errored on send
+ *		UDP_in		UDP datagrams received
+ *		UDP_inErr	UDP datagrams undeliverable
+ *		UDP_noPort	UDP datagrams received to closed ports
+ *
+ * The above UDP statistics are documented in the mib2_udp struct
+ * in the /usr/include/inet/mib2.h file; and also in the mib provider
+ * chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 25-Jul-2005  Brendan Gregg   Created this.
+ * 25-Jul-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Declare Globals
+ */
+dtrace:::BEGIN
+{
+	UDP_in = 0; UDP_out = 0;
+	UDP_inErr = 0; UDP_outErr = 0; UDP_noPort = 0;
+	LINES = 20; line = 0;
+}
+
+/*
+ * Print Header
+ */
+profile:::tick-1sec { line--; }
+
+profile:::tick-1sec
+/line <= 0 /
+{
+	printf("%11s %11s %11s %11s %11s\n",
+	    "UDP_out", "UDP_outErr", "UDP_in", "UDP_inErr", "UDP_noPort");
+
+	line = LINES;
+}
+
+/*
+ * Save Data
+ */
+mib:::udp*InDatagrams	{ UDP_in += arg0;	}
+mib:::udp*OutDatagrams	{ UDP_out += arg0;	}
+mib:::udpInErrors	{ UDP_inErr += arg0;	}
+mib:::udpInCksumErrs	{ UDP_inErr += arg0;	}
+mib:::udpOutErrors	{ UDP_outErr += arg0;	}
+mib:::udpNoPorts	{ UDP_noPort += arg0;	}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+{
+	printf("%11d %11d %11d %11d %11d\n",
+	    UDP_out, UDP_outErr, UDP_in, UDP_inErr, UDP_noPort);
+
+	/* clear values */
+	UDP_out		= 0;
+	UDP_outErr	= 0;
+	UDP_in		= 0;
+	UDP_inErr	= 0;
+	UDP_noPort	= 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/uname-a.d b/external/cddl/dtracetoolkit/dist/Bin/uname-a.d
new file mode 100755
index 0000000..11e4a29
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/uname-a.d
@@ -0,0 +1,53 @@
+#!/usr/sbin/dtrace -s
+/*
+ * uname-a.d - "uname -a" demo in DTrace.
+ *             Written using DTrace (Solaris 10 3/05).
+ *
+ * This has been written to demonstrate fetching the "uname -a" info
+ * from a DTrace script, which turns out to be all kernel variables.
+ * This is intended as a starting point for other DTrace scripts, by
+ * beginning with familiar statistics.
+ *
+ * $Id: uname-a.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE:	uname-a.d
+ *
+ * FIELDS:	See uname(1) manpage for documentation.
+ *
+ * SEE ALSO:	uname
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * 24-Jul-2005	Brendan Gregg	Created this.
+ * 24-Jul-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option bufsize=8k
+
+/* print system info */
+dtrace:::BEGIN
+{
+	printf("%s %s %s %s %s %s %s",
+	    `utsname.sysname,
+	    `utsname.nodename,
+	    `utsname.release,
+	    `utsname.version,
+	    `utsname.machine,
+	    `architecture,
+	    `platform);
+
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/vmbypid.d b/external/cddl/dtracetoolkit/dist/Bin/vmbypid.d
new file mode 100755
index 0000000..116d646
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/vmbypid.d
@@ -0,0 +1,54 @@
+#!/usr/sbin/dtrace -s
+/*
+ * vmbypid.d - print vminfo events by process. DTrace.
+ *
+ * $Id: vmbypid.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	vmbypid.d
+ *
+ * FIELDS:
+ *		EXEC	Process name
+ *		PID	Process ID
+ * 		VM	Virtual Memory statistic (/usr/include/sys/sysinfo.h)
+ *		VALUE	Value by which statistic was incremented
+ *
+ * The virtual memory statistics are documented in the cpu_vminfo struct
+ * in the /usr/include/sys/sysinfo.h file; and also in the vminfo provider
+ * chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 14-May-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+vminfo:::
+{
+	@VM[execname, pid, probename] = sum(arg0);
+}
+
+dtrace:::END {
+	printf("%16s %8s %22s %8s\n", "EXEC", "PID", "VM", "VALUE");
+	printa("%16s %8d %22s %@8d\n", @VM);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/vmstat-p.d b/external/cddl/dtracetoolkit/dist/Bin/vmstat-p.d
new file mode 100755
index 0000000..b45aebf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/vmstat-p.d
@@ -0,0 +1,155 @@
+#!/usr/sbin/dtrace -s
+/*
+ * vmstat-p.d - vmstat -p demo in DTrace.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * This has been written to demonstrate fetching similar data as vmstat
+ * from DTrace. This program is intended as a starting point for other
+ * DTrace scripts, by beginning with familiar statistics.
+ *
+ * $Id: vmstat-p.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	vmstat-p.d
+ *
+ * FIELDS:
+ *		swap	virtual memory free	Kbytes
+ *		free	free RAM		Kbytes
+ *		re	page reclaims		Kbytes
+ *		mf	minor faults		Kbytes
+ *		sr	scan rate		pages
+ *		epi	executable page ins	Kbytes
+ *		epo	executable page outs	Kbytes
+ *		epf	executable frees	Kbytes
+ *		api	anonymous page ins	Kbytes
+ *		apo	anonymous page outs	Kbytes
+ *		apf	anonymous frees		Kbytes
+ *		fpi	filesystem page ins	Kbytes
+ *		fpo	filesystem page outs	Kbytes
+ *		fpf	filesystem frees	Kbytes
+ *
+ * NOTES:
+ *	Most of the statistics are in units of kilobytes, unlike the
+ *	original vmstat command which sometimes uses page counts.
+ *	As this program does not use Kstat, there is no summary since
+ *	boot line. Free RAM is both free free + cache free.
+ *
+ * SEE ALSO:	vmstat(1M)
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 11-Jun-2005  Brendan Gregg   Created this.
+ * 08-Jan-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+inline int SCREEN = 21;
+
+/*
+ * Initialise variables
+ */
+dtrace:::BEGIN
+{
+	pi = 0; po = 0; re = 0; sr = 0; mf = 0; fr = 0;
+	sy = 0; in = 0; cs = 0; maj = 0; cow = 0; pro = 0;
+	epi = 0; epo = 0; epf = 0; api = 0; apo = 0; apf = 0;
+	fpi = 0; fpo = 0; fpf = 0;
+	lines = SCREEN + 1;
+}
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN,
+tick-1sec
+/lines++ > SCREEN/
+{
+	printf("%14s %13s %16s %14s %13s\n",
+	    "memory", "page", "executable", "anonymous", "filesystem");
+	printf("%9s %7s %5s %4s %3s ",
+	    "swap", "free", "re", "mf", "sr");
+	printf("%4s %4s %4s %4s %4s %4s %4s %4s %4s\n",
+	    "epi", "epo", "epf", "api", "apo", "apf", "fpi", "fpo", "fpf");
+	lines = 0;
+}
+
+/*
+ * Probe events
+ */
+vminfo:::pgrec	   { re += arg0; }
+vminfo:::scan	   { sr += arg0; }
+vminfo:::as_fault  { mf += arg0; }
+vminfo:::execpgin  { epi += arg0; }
+vminfo:::execpgout { epo += arg0; }
+vminfo:::execfree  { epf += arg0; }
+vminfo:::anonpgin  { api += arg0; }
+vminfo:::anonpgout { apo += arg0; }
+vminfo:::anonfree  { apf += arg0; }
+vminfo:::fspgin    { fpi += arg0; }
+vminfo:::fspgout   { fpo += arg0; }
+vminfo:::fsfree    { fpf += arg0; }
+
+/*
+ * Print output line
+ */
+profile:::tick-1sec
+{
+	/* fetch free mem */
+	this->free = `freemem;
+
+	/*
+	 * fetch free swap
+	 *
+	 * free swap is described in /usr/include/vm/anon.h as,
+	 * MAX(ani_max - ani_resv, 0) + (availrmem - swapfs_minfree)
+	 */
+	this->ani_max = `k_anoninfo.ani_max;
+	this->ani_resv = `k_anoninfo.ani_phys_resv + `k_anoninfo.ani_mem_resv;
+	this->swap = (this->ani_max - this->ani_resv > 0 ?
+	    this->ani_max - this->ani_resv : 0) + `availrmem - `swapfs_minfree;
+
+	/* fetch w */
+	this->w = `nswapped;
+
+	/* convert to Kbytes */
+	epi *= `_pagesize / 1024;
+	epo *= `_pagesize / 1024;
+	epf *= `_pagesize / 1024;
+	api *= `_pagesize / 1024;
+	apo *= `_pagesize / 1024;
+	apf *= `_pagesize / 1024;
+	fpi *= `_pagesize / 1024;
+	fpo *= `_pagesize / 1024;
+	fpf *= `_pagesize / 1024;
+	re  *= `_pagesize / 1024;
+	sr  *= `_pagesize / 1024;
+	mf  *= `_pagesize / 1024;
+	this->swap *= `_pagesize / 1024;
+	this->free *= `_pagesize / 1024;
+
+	/* print line */
+	printf("%9d %7d %5d %4d %3d ",
+	    this->swap, this->free, re, mf, sr);
+	printf("%4d %4d %4d %4d %4d %4d %4d %4d %4d\n",
+	    epi, epo, epf, api, apo, apf, fpi, fpo, fpf);
+
+	/* clear counters */
+	pi = 0; po = 0; re = 0; sr = 0; mf = 0; fr = 0;
+	sy = 0; in = 0; cs = 0; maj = 0; cow = 0; pro = 0;
+	epi = 0; epo = 0; epf = 0; api = 0; apo = 0; apf = 0;
+	fpi = 0; fpo = 0; fpf = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/vmstat.d b/external/cddl/dtracetoolkit/dist/Bin/vmstat.d
new file mode 100755
index 0000000..7497421
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/vmstat.d
@@ -0,0 +1,137 @@
+#!/usr/sbin/dtrace -s
+/*
+ * vmstat.d - vmstat demo in DTrace.
+ *            Written using DTrace (Solaris 10 3/05).
+ *
+ * This has been written to demonstrate fetching the same data as vmstat
+ * from DTrace. This program is intended as a starting point for other
+ * DTrace scripts, by beginning with familiar statistics.
+ *
+ * $Id: vmstat.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	vmstat.d
+ *
+ * FIELDS:
+ *		w	swapped out LWPs	number
+ *		swap	virtual memory free	Kbytes
+ *		free	free RAM		Kbytes
+ *		re	page reclaims		Kbytes
+ *		mf	minor faults		Kbytes
+ *		pi	page ins		Kbytes
+ *		po	page outs		Kbytes
+ *		fr	pages freed		Kbytes
+ *		sr	scan rate		pages
+ *		in	interrupts		number
+ *		sy	system calls		number
+ *		cs	context switches	number
+ *
+ * NOTES:
+ *  Most of the statistics are in units of kilobytes, unlike the
+ *  original vmstat command which sometimes uses page counts.
+ *  As this program does not use Kstat, there is no summary since boot line.
+ *  Free RAM is both free free + cache free.
+ *
+ * SEE ALSO:	vmstat(1M)
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 11-Jun-2005  Brendan Gregg   Created this.
+ * 08-Jan-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+inline int SCREEN = 21;
+
+/*
+ * Initialise variables
+ */
+dtrace:::BEGIN
+{
+	pi = 0; po = 0; re = 0; sr = 0; mf = 0; fr = 0;
+	sy = 0; in = 0; cs = 0;
+	lines = SCREEN + 1;
+}
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/lines++ > SCREEN/
+{
+	printf(" %1s %10s %8s %5s %5s %4s %4s %4s %4s %5s %6s %4s\n",
+	    "w", "swap", "free", "re", "mf", "pi", "po", "fr", "sr",
+	    "in", "sy", "cs");
+	lines = 0;
+}
+
+/*
+ * Probe events
+ */
+vminfo:::pgpgin   { pi += arg0; }
+vminfo:::pgpgout  { po += arg0; }
+vminfo:::pgrec    { re += arg0; }
+vminfo:::scan	  { sr += arg0; }
+vminfo:::as_fault { mf += arg0; }
+vminfo:::dfree    { fr += arg0; }
+
+syscall:::entry		{ sy++; }
+sdt:::interrupt-start	{ in++; }
+sched::resume:on-cpu	{ cs++; }
+
+/*
+ * Print output line
+ */
+profile:::tick-1sec
+{
+	/* fetch free mem */
+	this->free = `freemem;
+
+	/*
+	 * fetch free swap
+	 *
+	 * free swap is described in /usr/include/vm/anon.h as,
+	 * MAX(ani_max - ani_resv, 0) + (availrmem - swapfs_minfree)
+	 */
+	this->ani_max = `k_anoninfo.ani_max;
+	this->ani_resv = `k_anoninfo.ani_phys_resv + `k_anoninfo.ani_mem_resv;
+	this->swap = (this->ani_max - this->ani_resv > 0 ?
+	    this->ani_max - this->ani_resv : 0) + `availrmem - `swapfs_minfree;
+
+	/* fetch w */
+	this->w = `nswapped;
+
+	/* convert to Kbytes */
+	pi *= `_pagesize / 1024;
+	po *= `_pagesize / 1024;
+	re *= `_pagesize / 1024;
+	sr *= `_pagesize / 1024;
+	mf *= `_pagesize / 1024;
+	fr *= `_pagesize / 1024;
+	this->swap *= `_pagesize / 1024;
+	this->free *= `_pagesize / 1024;
+
+	/* print line */
+	printf(" %1d %10d %8d %5d %5d %4d %4d %4d %4d %5d %6d %4d\n",
+	    this->w, this->swap, this->free, re, mf, pi, po, fr, sr,
+	    in, sy, cs);
+
+	/* clear counters */
+	pi = 0; po = 0; re = 0; sr = 0; mf = 0; fr = 0;
+	sy = 0; in = 0; cs = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/vopstat b/external/cddl/dtracetoolkit/dist/Bin/vopstat
new file mode 100755
index 0000000..6a32301
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/vopstat
@@ -0,0 +1,304 @@
+#!/usr/bin/sh
+#
+# vopstat - Trace the vnode interface.
+#           Written using DTrace (Solaris 10 3/05)
+#
+# Author: Richard McDougall
+#
+# $Id: vopstat,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	vopstat [-t] [/mountname]
+#
+#		vopstat		# default output, summary each 5 secs
+#		-t 		# trace activity as it occurs
+#
+# Example:
+#
+# ./vopstat
+# 
+# VOP Physical IO                                                   Count
+# fop_fsync                                                           236
+# 
+# VOP Count                                                         Count
+# fop_create                                                            1
+# fop_fid                                                               1
+# fop_lookup                                                            2
+# fop_access                                                            3
+# fop_read                                                              3
+# fop_poll                                                             11
+# fop_fsync                                                            31
+# fop_putpage                                                          32
+# fop_ioctl                                                           115
+# fop_write                                                           517
+# fop_rwlock                                                          520
+# fop_rwunlock                                                        520
+# fop_inactive                                                        529
+# fop_getattr                                                        1057
+# 
+# VOP Wall Time                                                  mSeconds
+# fop_fid                                                               0
+# fop_access                                                            0
+# fop_read                                                              0
+# fop_poll                                                              0
+# fop_lookup                                                            0
+# fop_create                                                            0
+# fop_ioctl                                                             0
+# fop_putpage                                                           1
+# fop_rwunlock                                                          1
+# fop_rwlock                                                            1
+# fop_inactive                                                          1
+# fop_getattr                                                           2
+# fop_write                                                            22
+# fop_fsync                                                           504
+# 
+# COPYRIGHT: Copyright (c) 2006 Richard McDougall
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Shell Wrapper Concept by Brendan Gregg
+#
+# 08-Jan-2006	Richard McDougall	Created this.
+# 23-Apr-2006	Brendan Gregg		Minor style tweaks.
+# 23-Apr-2006	   "      "		Last update.
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_trace=0; opt_fs=0; opt_stats=1; opt_all=0
+
+### process options
+while getopts t name
+do
+	case $name in
+	t)	opt_trace=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: voptrace [-t] [/mountpoint]
+		        voptrace         # default output
+		                 -t      # trace
+		   eg,
+		        voptrace -t      # trace all file systems
+		        voptrace -t /tmp # trace /tmp
+		        voptrace  /tmp   # summary stats for /tmp
+		END
+		exit 1
+	esac
+done
+shift `expr $OPTIND - 1`
+filesys="$1"
+
+### option logic
+if [ $opt_trace -eq 1 ]; then
+	opt_stats=0
+fi
+if [ -z "$filesys" ]; then
+	opt_all=1
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_fs 	= '$opt_fs';
+ inline int OPT_all 	= '$opt_all';
+ inline int OPT_trace 	= '$opt_trace';
+ inline int OPT_stats 	= '$opt_stats';
+ inline string FILESYS 	= "'$filesys'";
+ 
+ #pragma D option quiet
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	last_event[""] = 0;
+
+	/* print main headers */
+	OPT_stats == 1 ?
+		printf("\033[H\033[2J") : 1;
+
+	OPT_trace == 1 ?
+		printf("%2s %-15s %-10s %51s %2s %8s %8s\n", 
+		    "", "Event", "Device", "Path", "RW", "Size", "Offset") : 1;
+	self->path = "";
+	self->trace = 0;
+ }
+
+ dtrace:::BEGIN
+ /OPT_trace == 1/
+ {
+	/* make D compiler happy */
+	@vop_iocnt[""] = count();
+	@vop_cnt[""]   = count();
+	@vop_time[""]  = sum(0);
+	trunc(@vop_iocnt);
+	trunc(@vop_cnt);
+	trunc(@vop_time);
+ }
+ 
+ fbt::fop_*:entry
+ {
+ 	self->trace = 0;
+
+ 	/* Get vp: fop_open has a pointer to vp */
+ 	this->vpp = (vnode_t **)arg0;
+ 	self->vp = (vnode_t *)arg0;
+ 	self->vp = probefunc == "fop_open" ? (vnode_t *)*this->vpp : self->vp;
+
+ 	/* And the containing vfs */
+         this->vfsp = self->vp ? self->vp->v_vfsp : 0;
+
+ 	/* And the paths for the vp and containing vfs */
+ 	this->vfsvp = this->vfsp ?
+	    (struct vnode *)((vfs_t *)this->vfsp)->vfs_vnodecovered : 0;
+ 	self->vfspath = this->vfsvp ? stringof(this->vfsvp->v_path) : "unknown";
+ 
+ 	/* Check if we should trace the root fs */
+ 	(OPT_all || 
+ 	    (FILESYS == "/" && this->vfsp &&
+ 	    (this->vfsp == `rootvfs))) ? self->trace = 1 : self->trace;
+ 
+ 	/* Check if we should trace the fs */
+ 	(OPT_all || (self->vfspath == FILESYS)) ? self->trace = 1 : self->trace;
+
+	self->vfspath = 0;
+ }
+ 
+ /*
+  * Trace the entry point to each fop
+  */ 
+ fbt::fop_*:entry
+ /self->trace/
+ {
+ 	self->path = (self->vp != NULL && self->vp->v_path) ?
+	    stringof(self->vp->v_path) : "unknown";
+ 
+ 	/* Some fops has the len in arg2 */
+ 	(probefunc == "fop_getpage" ||
+ 	 probefunc == "fop_putpage" ||
+ 	 probefunc == "fop_none") ? self->len = arg2 : 1; 
+ 
+ 	/* Some fops has the len in arg3 */
+ 	(probefunc == "fop_pageio" ||
+ 	 probefunc == "fop_none") ? self->len = arg3 : 1; 
+ 
+ 	/* Some fops has the len in arg4 */
+ 	(probefunc == "fop_addmap" ||
+ 	 probefunc == "fop_map" ||
+ 	 probefunc == "fop_delmap") ? self->len = arg4 : 1; 
+ 
+ 	/* Some fops has the offset in arg1 */
+ 	(probefunc == "fop_addmap" ||
+ 	 probefunc == "fop_map" ||
+ 	 probefunc == "fop_getpage" ||
+ 	 probefunc == "fop_putpage" ||
+ 	 probefunc == "fop_seek" ||
+ 	 probefunc == "fop_delmap") ? self->off = arg1 : 1; 
+ 
+ 	/* Some fops has the offset in arg3 */
+ 	(probefunc == "fop_close" ||
+ 	 probefunc == "fop_pageio") ? self->off = arg3 : 1; 
+ 
+ 	/* Some fops has the offset in arg4 */
+ 	probefunc == "fop_frlock" ? self->off = arg4 : 1; 
+ 
+ 	/* Some fops has the pathname in arg1 */
+ 	self->path = (probefunc == "fop_create" ||
+ 	 probefunc == "fop_mkdir" ||
+ 	 probefunc == "fop_rmdir" ||
+ 	 probefunc == "fop_remove" ||
+ 	 probefunc == "fop_lookup") ?
+ 	    strjoin(self->path, strjoin("/", stringof(arg1))) : self->path;
+ 
+	OPT_trace ?
+ 		printf("%2s %-15s %-10s %51s %2s %8d %8d\n", 
+ 		    "->", probefunc, "-", self->path, "-",
+		    self->len, self->off) : 1;
+
+ 	self->type = probefunc;
+ 	self->vop_entry[probefunc] = timestamp;
+ }
+ 
+ fbt::fop_*:return
+ /self->trace == 1/
+ {
+	OPT_trace ?
+ 		printf("%2s %-15s %-10s %51s %2s %8d %8d\n", 
+		    "<-", probefunc, "-", self->path, "-",
+		    self->len, self->off) : 1;
+
+	OPT_stats == 1 ?
+ 		@vop_time[probefunc] =
+			sum(timestamp - self->vop_entry[probefunc]) : 1;
+	OPT_stats == 1 ?
+ 		@vop_cnt[probefunc] = count() : 1;
+
+	self->path = 0;
+	self->len = 0;
+	self->off = 0;
+ }
+
+ fbt::fop_*:return
+ {
+	self->trace = 0;
+	self->type = 0;
+	self->vp = 0;
+ }
+ 
+ /* Capture any I/O within this fop */
+ io:::start
+ /self->trace/
+ {
+	OPT_stats == 1 ?
+ 		@vop_iocnt[self->type] = count() : 1;
+
+	OPT_trace == 1?
+	 	printf("%2s %-15s %-10s %51s %2s %8d %8u\n",
+		    "--", self->type, args[1]->dev_statname,
+		    self->path, args[0]->b_flags & B_READ ? "R" : "W",
+		    args[0]->b_bcount, args[0]->b_blkno) : 1;
+ }
+ 
+ profile:::tick-5s
+ /OPT_stats == 1/
+ {
+	/* Print top 20 only */
+ 	trunc(@vop_iocnt, 20);
+ 	trunc(@vop_time, 20);
+
+	/* Display microseconds */
+ 	normalize(@vop_time, 1000000);
+ 	printf("\033[H\033[2J");
+ 	printf("%-60s %10s\n", "VOP Physical IO", "Count");
+ 	printa("%-60s %10@d\n", @vop_iocnt);
+ 	printf("\n");
+ 	printf("%-60s %10s\n", "VOP Count", "Count");
+ 	printa("%-60s %10@d\n", @vop_cnt);
+ 	printf("\n");
+ 	printf("%-60s %10s\n", "VOP Wall Time", "mSeconds");
+ 	printa("%-60s %10@d\n", @vop_time);
+
+	/* Clear data */
+ 	trunc(@vop_iocnt);
+ 	trunc(@vop_cnt);
+ 	trunc(@vop_time);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Bin/weblatency.d b/external/cddl/dtracetoolkit/dist/Bin/weblatency.d
new file mode 100755
index 0000000..ed43c38
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/weblatency.d
@@ -0,0 +1,186 @@
+#!/usr/sbin/dtrace -s
+/*
+ * weblatency.d - website latency statistics.
+ *		  Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: weblatency.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ *
+ * USAGE:	weblatency.d 	# hit Ctrl-C to end sample
+ *
+ * See the code below for the "BROWSER" variable, which sets the browser
+ * to trace (currently set to "mozilla-bin").
+ *
+ * This is written as an experimental tool, and may not work at all with
+ * your browser.
+ *
+ * FIELDS:
+ *		HOST		Hostname from URL
+ *		NUM		Number of GETs
+ *		AVGTIME(ms)	Average time for response, ms
+ *		MAXTIME(ms)	Maximum time for response, ms
+ *
+ * NOTE:
+ *
+ * The latency measured here is from the browser sending the GET
+ * request to when the browser begins to recieve the response. It
+ * is an overall response time for the client, and encompasses
+ * connection speed delays, DNS lookups, proxy delays, and web server
+ * response time.
+ *
+ * IDEA: Bryan Cantrill (who wrote an elegant version for Sol 10 update 1)
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * ToDo:
+ *	Check write fd for socket, not file.
+ *
+ * 30-Nov-2005  Brendan Gregg   Created this.
+ * 20-Apr-2006	   "	  "	Last update.
+ */
+
+#pragma D option quiet
+
+/* browser's execname */
+inline string BROWSER = "mozilla-bin";
+
+/* maximum expected hostname length + "GET http://" */
+inline int MAX_REQ = 64;
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/*
+ * Trace brower request
+ *
+ * This is achieved by matching writes for the browser's execname that
+ * start with "GET", and then timing from the return of the write to
+ * the return of the next read in the same thread. Various stateful flags
+ * are used: self->fd, self->read.
+ *
+ * For performance reasons, I'd like to only process writes that follow a
+ * connect(), however this approach fails to process keepalives.
+ */
+syscall::write:entry
+/execname == BROWSER/
+{
+	self->buf = arg1;
+	self->fd = arg0 + 1;
+	self->nam = "";
+}
+
+syscall::write:return
+/self->fd/
+{
+	this->str = (char *)copyin(self->buf, MAX_REQ);
+	this->str[4] = '\0';
+	self->fd = stringof(this->str) == "GET " ? self->fd : 0;
+}
+
+syscall::write:return
+/self->fd/
+{
+	/* fetch browser request */
+	this->str = (char *)copyin(self->buf, MAX_REQ);
+	this->str[MAX_REQ] = '\0';
+
+	/*
+	 * This unrolled loop strips down a URL to it's hostname.
+	 * We ought to use strtok(), but it's not available on Sol 10 3/05,
+	 * so instead I used dirname(). It's not pretty - it's done so that
+	 * this works on all Sol 10 versions.
+	 */
+	self->req = stringof(this->str);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->nam = basename(self->nam);
+
+	/* start the timer */
+	start[pid, self->fd - 1] = timestamp;
+	host[pid, self->fd - 1] = self->nam;
+	self->buf = 0;
+	self->fd  = 0;
+	self->req = 0;
+	self->nam = 0;
+}
+
+/* this one wasn't a GET */
+syscall::write:return
+/self->buf/
+{
+	self->buf = 0;
+	self->fd  = 0;
+}
+
+syscall::read:entry
+/execname == BROWSER && start[pid, arg0]/
+{
+	self->fd = arg0 + 1;
+}
+
+/*
+ * Record host details
+ */
+syscall::read:return
+/self->fd/
+{
+	/* fetch details */
+	self->host = stringof(host[pid, self->fd - 1]);
+	this->start = start[pid, self->fd - 1];
+
+	/* save details */
+	@Avg[self->host] = avg((timestamp - this->start)/1000000);
+	@Max[self->host] = max((timestamp - this->start)/1000000);
+	@Num[self->host] = count();
+
+	/* clear vars */
+	start[pid, self->fd - 1] = 0;
+	host[pid, self->fd - 1] = 0;
+	self->host = 0;
+	self->fd = 0;
+}
+
+/*
+ * Output report
+ */
+dtrace:::END
+{
+	printf("%-32s %11s\n", "HOST", "NUM");
+	printa("%-32s %@11d\n", @Num);
+
+	printf("\n%-32s %11s\n", "HOST", "AVGTIME(ms)");
+	printa("%-32s %@11d\n", @Avg);
+
+	printf("\n%-32s %11s\n", "HOST", "MAXTIME(ms)");
+	printa("%-32s %@11d\n", @Max);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/whatexec.d b/external/cddl/dtracetoolkit/dist/Bin/whatexec.d
new file mode 100755
index 0000000..b4c1266a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/whatexec.d
@@ -0,0 +1,79 @@
+#!/usr/sbin/dtrace -s
+/*
+ * whatexec.d - Examine the type of files exec'd.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * This prints the first four chacacters of files that are executed.
+ * This traces the kernel function findexec_by_hdr(), which checks for
+ * a known magic number in the file's header.
+ *
+ * The idea came from a demo I heard about from the UK, where a
+ * "blue screen of death" was displayed for "MZ" files (although I
+ * haven't seen the script or the demo).
+ *
+ * $Id: whatexec.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	whatexec.d	(early release, check for updates)
+ *
+ * FIELDS:
+ *		PEXEC		parent command name
+ *		EXEC		pathname to file exec'd
+ *		OK		is type runnable, Y/N
+ *		TYPE		first four characters from file
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 11-Feb-2006  Brendan Gregg   Created this.
+ * 25-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+this char *buf;
+
+dtrace:::BEGIN
+{
+	printf("%-16s %-38s %2s %s\n", "PEXEC", "EXEC", "OK", "TYPE");
+}
+
+fbt::gexec:entry
+{
+	self->file = cleanpath((*(struct vnode **)arg0)->v_path);
+	self->ok = 1;
+}
+
+fbt::findexec_by_hdr:entry
+/self->ok/
+{
+	bcopy(args[0], this->buf = alloca(5), 4);
+	this->buf[4] = '\0';
+	self->hdr = stringof(this->buf);
+}
+
+fbt::findexec_by_hdr:return
+/self->ok/
+{
+	printf("%-16s %-38s %2s %S\n", execname, self->file,
+	    arg1 == NULL ? "N" : "Y", self->hdr);
+	self->hdr = 0;
+}
+
+fbt::gexec:return
+{
+	self->file = 0;
+	self->ok = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/woof.d b/external/cddl/dtracetoolkit/dist/Bin/woof.d
new file mode 100755
index 0000000..0e17fb9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/woof.d
@@ -0,0 +1,63 @@
+#!/usr/sbin/dtrace -s
+/*
+ * woof.d - Bark whenever new processes appear. Needs /dev/audio.
+ *          Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: woof.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       woof.d &
+ *
+ * SEE ALSO:    /usr/dt/bin/sdtaudiocontrol     # to set volume
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 14-Aug-2006	Brendan Gregg	Created this.
+ * 14-Aug-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option destructive
+#pragma D option switchrate=10hz
+
+inline int SCREEN_OUTPUT = 0;	/* Set to 1 for screen output */
+
+/* barks prevents woof.d from barking too much (up to 20 barks/second) */
+int barks;
+
+dtrace:::BEGIN
+{
+	SCREEN_OUTPUT ? trace("Beware of the dog!\n") : 1;
+}
+
+/*
+ * Call the shell to run a background audioplay command (cat > /dev/audio
+ * doesn't always work). One problem this creates is a feedback loop,
+ * where we bark at our own barks, or at other dogs barks; entertaining
+ * as this is, it can really slog the system and has been avoided by
+ * checking our ancestory.
+ */
+proc:::exec-success
+/!progenyof($pid) && barks++ < 2/
+{
+	SCREEN_OUTPUT ? trace("Woof! ") : 1;
+	system("audioplay /usr/share/audio/samples/au/bark.au &");
+}
+
+profile:::tick-10hz
+{
+	barks = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/wpm.d b/external/cddl/dtracetoolkit/dist/Bin/wpm.d
new file mode 100755
index 0000000..0cf9dbb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/wpm.d
@@ -0,0 +1,143 @@
+#!/usr/sbin/dtrace -s
+/*
+ * wpm.d - Measure words per minute of typing.
+ *         Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: wpm.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       wpm.d commandname
+ *   eg,
+ *		wpm.d bash
+ *		wpm.d vim
+ *
+ * This script assumes that keystrokes arrive one at a time on STDIN. This
+ * isn't the case for all processes that read keyboard input (eg, sh).
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 05-Aug-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+#pragma D option defaultargs
+
+inline int STDIN = 0;
+
+enum tracing_state {
+	BEGIN,
+	TRACING
+};
+
+dtrace:::BEGIN
+/$$1 == ""/
+{
+	trace("USAGE: wpm.d commandname\n");
+	trace("  eg,\n");
+	trace("       wpm.d bash\n");
+	trace("       wpm.d vim\n");
+	exit(1);
+}
+
+dtrace:::BEGIN
+{
+	state = BEGIN;
+	keys = 0;
+	words = 0;
+	wordsize = 0;
+	countdown = 5;
+	last = 0;
+	printf("Measuring will start in : %2d seconds", countdown);
+}
+
+profile:::tick-1sec
+/--countdown >= 0/
+{
+	printf("\b\b\b\b\b\b\b\b\b\b%2d seconds", countdown);
+}
+
+profile:::tick-1sec
+/state == BEGIN && countdown == -1/
+{
+	state = TRACING;
+	countdown = 60;
+	printf("\nMeasuring will stop in  : %2d seconds", countdown);
+}
+
+syscall::read:entry
+/state == TRACING && execname == $$1 && arg0 == STDIN/
+{
+	self->buf = arg1;
+}
+
+syscall::read:return
+/self->buf && last/
+{
+	this->elapsed = (timestamp - last) / 1000000;
+	@dist = quantize(this->elapsed);
+	@avg = avg(this->elapsed);
+	@min = min(this->elapsed);
+	@max = max(this->elapsed);
+}
+
+syscall::read:return
+/self->buf/
+{
+	keys++;
+	wordsize++;
+	this->key = stringof(copyin(self->buf, arg0));
+	last = timestamp;
+}
+
+syscall::read:return
+/self->buf && (this->key == " " || this->key == "\n" || this->key == "\r") &&
+    wordsize == 1/
+{
+	/* recurring space */
+	wordsize = 0;
+	self->buf = 0;
+}
+
+syscall::read:return
+/self->buf && (this->key == " " || this->key == "\n" || this->key == "\r")/
+{
+	words++;
+	@sizes = lquantize(wordsize - 1, 0, 32, 1);
+	wordsize = 0;
+}
+
+syscall::read:return
+/self->buf/
+{
+	self->buf = 0;
+}
+
+profile:::tick-1sec
+/state == TRACING && countdown == -1/
+{
+	printf("\n\nCharacters typed : %d\n", keys);
+	printf("Words per minute : %d\n\n", words);
+
+	printa("Minimum keystroke latency : %@d ms\n", @min);
+	printa("Average keystroke latency : %@d ms\n", @avg);
+	printa("Maximum keystroke latency : %@d ms\n\n", @max);
+
+	printa("Word size distribution (letters),\n%@d\n", @sizes);
+	printa("Keystroke latency distribution (ms),\n%@d\n", @dist);
+
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/writebytes.d b/external/cddl/dtracetoolkit/dist/Bin/writebytes.d
new file mode 100755
index 0000000..acfb55e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/writebytes.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * writebytes.d - write bytes by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: writebytes.d,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+ */
+
+sysinfo:::writech { @bytes[execname] = sum(arg0); }
diff --git a/external/cddl/dtracetoolkit/dist/Bin/writedist.d b/external/cddl/dtracetoolkit/dist/Bin/writedist.d
new file mode 100755
index 0000000..b00c2f6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/writedist.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * writedist.d - write distribution by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: writedist.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ */
+
+sysinfo:::writech { @dist[execname] = quantize(arg0); }
diff --git a/external/cddl/dtracetoolkit/dist/Bin/xcallsbypid.d b/external/cddl/dtracetoolkit/dist/Bin/xcallsbypid.d
new file mode 100755
index 0000000..c49013b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/xcallsbypid.d
@@ -0,0 +1,51 @@
+#!/usr/sbin/dtrace -s
+/*
+ * xcallsbypid.d - CPU cross calls by PID.
+ *                 Writen using DTrace (Solaris 10 3/05).
+ *
+ * $Id: xcallsbypid.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	xcallsbypid.d		# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ * 		CMD		process name
+ *		XCALLS		number of cross calls
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 17-Sep-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sysinfo:::xcalls
+{
+	@num[pid, execname] = count();
+}
+
+dtrace:::END
+{
+	printf("%6s %-16s %16s\n", "PID", "CMD", "XCALLS");
+	printa("%6d %-16s %@16d\n", @num);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Bin/xvmstat b/external/cddl/dtracetoolkit/dist/Bin/xvmstat
new file mode 100755
index 0000000..c7eb534
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/xvmstat
@@ -0,0 +1,217 @@
+#!/usr/bin/sh
+#
+# xvmstat - extended vmstat demo in DTrace.
+#           Written using DTrace (Solaris 10 3/05).
+#
+# This has been written to demonstrate fetching similar data as vmstat
+# from DTrace, with a few extra fields.
+#
+# $Id: xvmstat,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	xvmstat [interval [count]]
+#
+# FIELDS: 
+#		w	swapped out LWPs	number
+#		swap	virtual memory free	Mbytes
+#		free	free RAM		Mbytes
+#		re	page reclaims		pages/sec
+#		maj	major faults		pages/sec
+#		mf	minor faults		pages/sec
+#		cow	copy-on-write faults	pages/sec
+#		pro	protection faults	pages/sec
+#		sr	scan rate		pages/sec
+#		epi	executable page ins	pages/sec
+#		epo	executable page outs	pages/sec
+#		epf	executable frees	pages/sec
+#		api	anonymous page ins	pages/sec
+#		apo	anonymous page outs	pages/sec
+#		apf	anonymous frees		pages/sec
+#		fpi	filesystem page ins	pages/sec
+#		fpo	filesystem page outs	pages/sec
+#		fpf	filesystem frees	pages/sec
+#
+# NOTES: 
+# - Most of the statistics are in units of pages, unlike the
+#   original vmstat command which sometimes uses kilobytes. 
+# - As this program does not use Kstat, there is no summary since boot line.
+# - Free RAM is both free free + cache free.
+#
+# SEE ALSO:	vmstat(1M)
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 12-Jun-2005	Brendan Gregg	Created this.
+# 01-Mar-2006	   "      "	Last update.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default values
+interval=1; count=-1
+
+### check arguments
+if [ "$1" = "-h" -o "$1" = "--help" ]; then
+	cat <<-END >&2
+	USAGE: xvmstat [interval [count]]
+	       xvmstat          # 1 second samples, infinite
+	  eg,
+	       xvmstat 1        # print every 1 second
+	       xvmstat 5 6      # print every 5 seconds, 6 times
+	END
+	exit 1
+fi
+
+### argument logic
+if [ "$1" -gt 0 ]; then
+        interval=$1; count=-1; shift
+fi
+if [ "$1" -gt 0 ]; then
+        count=$1; shift
+fi
+if [ $interval -eq 0 ]; then
+	interval=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$count';
+ inline int SCREEN = 21;
+
+ /*
+  * Initialise variables
+  */
+ dtrace:::BEGIN
+ {
+	re = 0; sr = 0; mf = 0; maj = 0; cow = 0; pro = 0;
+	epi = 0; epo = 0; epf = 0; api = 0; apo = 0; apf = 0;
+	fpi = 0; fpo = 0; fpf = 0;
+	lines = SCREEN + 1;
+	counts = COUNTER;
+	secs = INTERVAL;
+	first = 1;
+ }
+
+ profile:::tick-1sec
+ {
+        secs--;
+ }
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN,
+ profile:::tick-1sec
+ /first || (secs == 0 && lines > SCREEN)/
+ {
+	printf("%2s %6s %5s %5s %3s %4s %3s %3s %3s ",
+	    "w", "swap", "free", "re", "maj", "mf", "cow", "pro", "sr");
+	printf("%3s %3s %3s %3s %3s %3s %3s %3s %3s\n",
+	    "epi", "epo", "epf", "api", "apo", "apf", "fpi", "fpo", "fpf");
+	lines = 0;
+	first = 0;
+ }
+
+ /*
+  * Probe events
+  */
+ vminfo:::pgrec      { re += arg0; }
+ vminfo:::scan       { sr += arg0; }
+ vminfo:::as_fault   { mf += arg0; }
+ vminfo:::execpgin   { epi += arg0; }
+ vminfo:::execpgout  { epo += arg0; }
+ vminfo:::execfree   { epf += arg0; }
+ vminfo:::anonpgin   { api += arg0; }
+ vminfo:::anonpgout  { apo += arg0; }
+ vminfo:::anonfree   { apf += arg0; }
+ vminfo:::fspgin     { fpi += arg0; }
+ vminfo:::fspgout    { fpo += arg0; }
+ vminfo:::fsfree     { fpf += arg0; }
+ vminfo:::maj_fault  { maj += arg0; }
+ vminfo:::cow_fault  { cow += arg0; }
+ vminfo:::prot_fault { pro += arg0; }
+
+ /* 
+  * Print output line
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* fetch free mem */
+	this->free = `freemem;
+
+	/*
+	 * fetch free swap
+	 *
+	 * free swap is described in /usr/include/vm/anon.h as,
+	 * MAX(ani_max - ani_resv, 0) + (availrmem - swapfs_minfree)
+	 */
+	this->ani_max = `k_anoninfo.ani_max;
+	this->ani_resv = `k_anoninfo.ani_phys_resv + `k_anoninfo.ani_mem_resv;
+	this->swap = (this->ani_max - this->ani_resv > 0 ?
+	    this->ani_max - this->ani_resv : 0) + `availrmem - `swapfs_minfree;
+
+	/* fetch w */
+	this->w = `nswapped;
+
+	/* convert to Mbytes */
+	this->swap *= `_pagesize; this->swap /= 1048576;
+	this->free *= `_pagesize; this->free /= 1048576;
+
+	/* convert to per second values */
+	re  /= INTERVAL; maj /= INTERVAL; mf  /= INTERVAL;
+	cow /= INTERVAL; pro /= INTERVAL; sr  /= INTERVAL;
+	epi /= INTERVAL; epo /= INTERVAL; epf /= INTERVAL;
+	api /= INTERVAL; apo /= INTERVAL; apf /= INTERVAL;
+	fpi /= INTERVAL; fpo /= INTERVAL; fpf /= INTERVAL;
+
+	/* print line */
+	printf("%2d %6d %5d %5d %3d %4d %3d %3d %3d ",
+	    this->w, this->swap, this->free, re, maj, mf, cow, pro, sr);
+	printf("%3d %3d %3d %3d %3d %3d %3d %3d %3d\n",
+	    epi, epo, epf, api, apo, apf, fpi, fpo, fpf);
+
+	/* clear counters */
+	re = 0; sr = 0; mf = 0; maj = 0; cow = 0; pro = 0;
+	epi = 0; epo = 0; epf = 0; api = 0; apo = 0; apf = 0;
+	fpi = 0; fpo = 0; fpf = 0;
+
+	/* process counts */
+	secs = INTERVAL;
+	counts--;
+	lines++;
+ }
+
+ /*
+  * End
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Bin/zvmstat b/external/cddl/dtracetoolkit/dist/Bin/zvmstat
new file mode 100755
index 0000000..f3d062e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Bin/zvmstat
@@ -0,0 +1,277 @@
+#!/usr/bin/ksh
+#
+# zvmstat - print vmstat style info per Zone.
+#           This uses DTrace (Solaris 10 3/05).
+#
+# This program must be run from the global zone as root.
+#
+# $Id: zvmstat,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE: 	zvmstat [-ht] [interval [count]]
+#
+#		zvmstat         # default output
+#			-t      # print times
+#  eg,
+#		zvmstat 1       # print every 1 second
+#		zvmstat 10 5    # print 5 x 10 second samples
+#		zvmstat -t 5    # print every 5 seconds with time
+#
+#
+# FIELDS:
+#		re		page reclaims
+#		mf		minor faults
+#		fr		pages freed
+#		sr		scan rate
+#		epi		executable pages paged in
+#		epo		executable pages paged out
+#		epf		executable pages freed
+#		api		anonymous pages paged in
+#		apo		anonymous pages paged out
+#		apf		anonymous pages freed
+#		fpi		filesystem pages paged in
+#		fpo		filesystem pages paged out
+#		fpf		filesystem pages freed
+#
+# NOTES: 
+# - Zone status should really be provided by Kstat, which currently
+#   provides system wide values, per CPU and per processor set, but not per
+#   zone. DTrace can fill this role in the meantime until Kstat supports zones.
+# - First output does not contain summary since boot.
+#
+# SEE ALSO: prstat -Z
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# BUGS:
+# - First output may not contain all zones due to how loops are achieved.
+#   Check for newer versions.
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 11-May-2005   Brendan Gregg   Created this.
+# 26-Jul-2005	   "      "	Improved code.
+# 08-Jan-2006	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_time=0; interval=1; counts=1
+
+### process options
+while getopts ht name
+do
+	case $name in
+	t)      opt_time=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: zvmstat [-ht] [interval [count]]
+		       zvmstat         # default output
+		               -t      # print times
+		   eg,
+		       zvmstat 1       # print every 1 second
+		       zvmstat 10 5    # print 5 x 10 second samples
+		       zvmstat -t 5    # print every 5 seconds with time
+		END
+		exit 1
+	esac
+done
+shift $(( OPTIND - 1 ))
+
+### option logic
+if (( "0$1" > 0 )); then
+        interval=$1; counts=-1; shift
+fi
+if (( "0$1" > 0 )); then
+        counts=$1; shift
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+dtrace -n '
+ #pragma D option quiet
+ #pragma D option destructive
+ #pragma D option switchrate=10
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_time   = '$opt_time';
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$counts';
+
+ /* 
+  * Initialise variables
+  */
+ dtrace:::BEGIN 
+ {
+	secs = INTERVAL; 
+	counts = COUNTER;
+	zonemax = 0;
+	listing = 1;
+	re[""] = 0; pi[""] = 0; po[""] = 0;
+	mf[""] = 0; sr[""] = 0; fr[""] = 0;
+	epi[""] = 0; epo[""] = 0; epf[""] = 0;
+	api[""] = 0; apo[""] = 0; apf[""] = 0;
+	fpi[""] = 0; fpo[""] = 0; fpf[""] = 0;
+ }
+
+ /*
+  * Build zonelist array
+  *
+  * Here we want the output of a command to be saved into an array
+  * inside dtrace. This is done by running the command, sending the
+  * output to /dev/null, and by probing its write syscalls from dtrace. 
+  *
+  * This is an example of a "scraper".
+  */
+
+ /*
+  * List zones
+  */
+ dtrace:::BEGIN 
+ {
+	/* run zoneadm */
+	system("/usr/sbin/zoneadm list > /dev/null; echo END > /dev/null");
+ }
+
+ /*
+  * Scrape zone listing
+  */
+ syscall::write:entry
+ /listing && (execname == "zoneadm") && 
+ (curthread->t_procp->p_parent->p_ppid == $pid)/
+ {
+	/* read zoneadm output */
+	zonelist[zonemax] = stringof(copyin(arg1, arg2 - 1));
+
+	/* increment max number of zones */
+	zonemax++;
+ }
+
+ /*
+  * Finish scraping zones
+  */
+ syscall::write:entry
+ /listing && (execname == "sh") && (ppid == $pid)/
+ {
+	/*
+	 * this end tag lets us know our zonelist has finished.
+	 * thanks A. Packer.
+	 */
+	listing = stringof(copyin(arg1, arg2 - 1)) == "END" ? 0 : 1;
+ }
+
+ /*
+  * Record vminfo counters
+  */
+ vminfo:::pgrec      { re[zonename] += arg0; }
+ vminfo:::as_fault   { mf[zonename] += arg0; }
+ vminfo:::scan       { sr[zonename] += arg0; }
+ vminfo:::execpgin   { epi[zonename] += arg0; }
+ vminfo:::execpgout  { epo[zonename] += arg0; }
+ vminfo:::execfree   { epf[zonename] += arg0; fr[zonename] += arg0; }
+ vminfo:::anonpgin   { api[zonename] += arg0; }
+ vminfo:::anonpgout  { apo[zonename] += arg0; }
+ vminfo:::anonfree   { apf[zonename] += arg0; fr[zonename] += arg0; }
+ vminfo:::fspgin     { fpi[zonename] += arg0; }
+ vminfo:::fspgout    { fpo[zonename] += arg0; }
+ vminfo:::fsfree     { fpf[zonename] += arg0; fr[zonename] += arg0; }
+
+ /*
+  * Timer
+  */
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /*
+  * Check for exit
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+
+ /*
+  * Print header line
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* set counters */
+	secs = INTERVAL;
+	counts--;
+	zonei = 0;
+
+	/* print time */
+	OPT_time ? printf("\n%Y,\n",walltimestamp) : 1;
+
+	/* print output line */
+	printf("%10s %4s %5s %4s %5s %4s %4s %4s %4s %4s %4s %4s %4s %4s\n",
+	    "ZONE", "re", "mf", "fr", "sr", "epi", "epo", "epf", "api", "apo",
+	    "apf", "fpi", "fpo", "fpf");
+
+	/* ensure zone writes are triggered */
+	printf(" \b");
+ }
+
+ /*
+  * Print zone status line
+  *
+  * This is a fairly interesting function in that it loops over the keys in 
+  * an associative array and prints out the values. DTrace cant really do 
+  * loops, and generally doesnt need to. We "cheat" by generating writes
+  * in the above probe which in turn trigger the probe below which 
+  * contains the contents of each loop. Dont do this at home! We are
+  * supposed to use aggreagations instead, wherever possible.
+  *
+  * This is an example of a "feedback loop".
+  */
+ syscall::write:return
+ /pid == $pid && zonei < zonemax/
+ {
+	/* fetch zonename */
+	self->zone = zonelist[zonei];
+
+	/* print output */
+	printf("%10s %4d %5d %4d %5d %4d %4d %4d %4d %4d %4d %4d %4d %4d\n",
+	    self->zone, re[self->zone], mf[self->zone], fr[self->zone],
+	    sr[self->zone], epi[self->zone], epo[self->zone],
+	    epf[self->zone], api[self->zone], apo[self->zone],
+	    apf[self->zone], fpi[self->zone], fpo[self->zone],
+	    fpf[self->zone]);
+	
+	/* clear values */
+	re[self->zone] = 0; mf[self->zone] = 0; fr[self->zone] = 0;
+	sr[self->zone] = 0; epi[self->zone] = 0; epo[self->zone] = 0;
+	epf[self->zone] = 0; api[self->zone] = 0; apo[self->zone] = 0;
+	apf[self->zone] = 0; fpi[self->zone] = 0; fpo[self->zone] = 0;
+	fpf[self->zone] = 0;
+	self->zone = 0;
+	
+	/* go to next zone */
+	zonei++;
+ }
+'
+
diff --git a/external/cddl/dtracetoolkit/dist/Code/Java/Func_abc.java b/external/cddl/dtracetoolkit/dist/Code/Java/Func_abc.java
new file mode 100644
index 0000000..c14012e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Java/Func_abc.java
@@ -0,0 +1,26 @@
+public class Func_abc {
+    public static void func_c() {
+        System.out.println("Function C");
+        try {
+            Thread.currentThread().sleep(1000);
+        } catch (Exception e) { }
+    }
+    public static void func_b() {
+        System.out.println("Function B");
+        try {
+            Thread.currentThread().sleep(1000);
+        } catch (Exception e) { }
+        func_c();    
+    }
+    public static void func_a() {
+        System.out.println("Function A");
+        try {
+            Thread.currentThread().sleep(1000);
+        } catch (Exception e) { }
+        func_b();
+    }
+
+    public static void main(String[] args) {
+        func_a();
+    }
+}
diff --git a/external/cddl/dtracetoolkit/dist/Code/Java/Func_loop.java b/external/cddl/dtracetoolkit/dist/Code/Java/Func_loop.java
new file mode 100644
index 0000000..81be852
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Java/Func_loop.java
@@ -0,0 +1,19 @@
+public class Func_loop {
+    public static void func_c() {
+        System.out.println("Function C");
+        while (true) {
+        }
+    }
+    public static void func_b() {
+        System.out.println("Function B");
+        func_c();    
+    }
+    public static void func_a() {
+        System.out.println("Function A");
+        func_b();
+    }
+
+    public static void main(String[] args) {
+        func_a();
+    }
+}
diff --git a/external/cddl/dtracetoolkit/dist/Code/JavaScript/func_clock.html b/external/cddl/dtracetoolkit/dist/Code/JavaScript/func_clock.html
new file mode 100644
index 0000000..c25610b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/JavaScript/func_clock.html
@@ -0,0 +1,39 @@
+<HTML>
+<HEAD>
+<TITLE>func_clock, JavaScript</TITLE>
+<SCRIPT type="text/javascript">
+function func_c() {
+	document.getElementById('now').innerHTML += "Function C<br>"
+	for (i = 0; i < 30000; i++) {
+		j = i + 1
+	}
+}
+
+function func_b() {
+	document.getElementById('now').innerHTML += "Function B<br>"
+	for (i = 0; i < 20000; i++) {
+		j = i + 1
+	}
+	func_c()
+}
+
+function func_a() {
+	document.getElementById('now').innerHTML += "Function A<br>"
+	for (i = 0; i < 10000; i++) {
+		j = i + 1
+	}
+	func_b()
+}
+
+function start() {
+	now = new Date()
+	document.getElementById('now').innerHTML = now + "<br>"
+	func_a()
+	var timeout = setTimeout('start()', 1000)
+}
+</SCRIPT>
+</HEAD>
+<BODY onload="start()">
+<DIV id="now"></DIV>
+</BODY>
+</HTML>
diff --git a/external/cddl/dtracetoolkit/dist/Code/JavaScript/func_slow.html b/external/cddl/dtracetoolkit/dist/Code/JavaScript/func_slow.html
new file mode 100644
index 0000000..14fdfda
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/JavaScript/func_slow.html
@@ -0,0 +1,31 @@
+<HTML>
+<HEAD><TITLE>func_slow, JavaScript</TITLE></HEAD>
+<BODY>
+<SCRIPT type="text/javascript">
+function func_c() {
+	document.write("Function C<br>")
+	for (i = 0; i < 30000; i++) {
+		j = i + 1
+	}
+}
+
+function func_b() {
+	document.write("Function B<br>")
+	for (i = 0; i < 20000; i++) {
+		j = i + 1
+	}
+	func_c()
+}
+
+function func_a() {
+	document.write("Function A<br>")
+	for (i = 0; i < 10000; i++) {
+		j = i + 1
+	}
+	func_b()
+}
+
+func_a()
+</SCRIPT>
+</BODY>
+</HTML>
diff --git a/external/cddl/dtracetoolkit/dist/Code/Perl/func_abc.pl b/external/cddl/dtracetoolkit/dist/Code/Perl/func_abc.pl
new file mode 100755
index 0000000..394f1c2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Perl/func_abc.pl
@@ -0,0 +1,20 @@
+#!./perl -w
+
+sub func_c {
+    print "Function C\n";
+    sleep 1;
+}
+
+sub func_b {
+    print "Function B\n";
+    sleep 1;
+    func_c();
+}
+
+sub func_a {
+    print "Function A\n";
+    sleep 1;
+    func_b();
+}
+
+func_a();
diff --git a/external/cddl/dtracetoolkit/dist/Code/Perl/func_malloc.pl b/external/cddl/dtracetoolkit/dist/Code/Perl/func_malloc.pl
new file mode 100755
index 0000000..5340c82
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Perl/func_malloc.pl
@@ -0,0 +1,18 @@
+#!./perl -w
+
+sub func_c {
+	print "Function C\n";
+}
+
+sub func_b {
+	print "Function B\n";
+	my $b = "B" x 100_000;
+	func_c();
+}
+
+sub func_a {
+	print "Function A\n";
+	func_b();
+}
+
+func_a();
diff --git a/external/cddl/dtracetoolkit/dist/Code/Perl/func_slow.pl b/external/cddl/dtracetoolkit/dist/Code/Perl/func_slow.pl
new file mode 100755
index 0000000..f32d09e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Perl/func_slow.pl
@@ -0,0 +1,20 @@
+#!./perl -w
+
+sub func_c {
+    print "Function C\n";
+    for (my $i = 0; $i < 3000000; $i++) { my $j = $i + 1; }
+}
+
+sub func_b {
+    print "Function B\n";
+    for (my $i = 0; $i < 2000000; $i++) { my $j = $i + 1 ; }
+    func_c();
+}
+
+sub func_a {
+    print "Function A\n";
+    for (my $i = 0; $i < 1000000; $i++) { my $j = $i + 1; }
+    func_b();
+}
+
+func_a();
diff --git a/external/cddl/dtracetoolkit/dist/Code/Perl/hello.pl b/external/cddl/dtracetoolkit/dist/Code/Perl/hello.pl
new file mode 100755
index 0000000..3ca70a2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Perl/hello.pl
@@ -0,0 +1,3 @@
+#!./perl
+
+print "Hello World!\n";
diff --git a/external/cddl/dtracetoolkit/dist/Code/Perl/hello_strict.pl b/external/cddl/dtracetoolkit/dist/Code/Perl/hello_strict.pl
new file mode 100755
index 0000000..78003a9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Perl/hello_strict.pl
@@ -0,0 +1,5 @@
+#!./perl -w
+
+use strict;
+
+print "Hello World!\n";
diff --git a/external/cddl/dtracetoolkit/dist/Code/Php/func_abc.php b/external/cddl/dtracetoolkit/dist/Code/Php/func_abc.php
new file mode 100644
index 0000000..9165611
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Php/func_abc.php
@@ -0,0 +1,23 @@
+<?php
+function func_c()
+{
+	echo "Function C\n";
+	sleep(1);
+}
+
+function func_b()
+{
+	echo "Function B\n";
+	sleep(1);
+	func_c();
+}
+
+function func_a()
+{
+	echo "Function A\n";
+	sleep(1);
+	func_b();
+}
+
+func_a();
+?>
diff --git a/external/cddl/dtracetoolkit/dist/Code/Python/func_abc.py b/external/cddl/dtracetoolkit/dist/Code/Python/func_abc.py
new file mode 100755
index 0000000..0d4919f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Python/func_abc.py
@@ -0,0 +1,19 @@
+#!/usr/bin/python
+
+import time
+
+def func_c():
+	print "Function C"	
+	time.sleep(1)
+
+def func_b():
+	print "Function B"
+	time.sleep(1)
+	func_c()
+
+def func_a():
+	print "Function A"
+	time.sleep(1)
+	func_b()
+
+func_a()
diff --git a/external/cddl/dtracetoolkit/dist/Code/Python/func_slow.py b/external/cddl/dtracetoolkit/dist/Code/Python/func_slow.py
new file mode 100755
index 0000000..9cba9c5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Python/func_slow.py
@@ -0,0 +1,26 @@
+#!/usr/bin/python
+
+def func_c():
+	print "Function C"
+	i = 0
+	while (i < 3000000):
+		i = i + 1
+		j = i + 1
+
+def func_b():
+	print "Function B"
+	i = 0
+	while (i < 2000000):
+		i = i + 1
+		j = i + 1
+	func_c()
+
+def func_a():
+	print "Function A"
+	i = 0
+	while (i < 1000000):
+		i = i + 1
+		j = i + 1
+	func_b()
+
+func_a()
diff --git a/external/cddl/dtracetoolkit/dist/Code/Readme b/external/cddl/dtracetoolkit/dist/Code/Readme
new file mode 100644
index 0000000..f8b16d7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Readme
@@ -0,0 +1,16 @@
+Code - Example Programs
+
+   This directory contains example software sorted by language, which may
+   be used as the target for DTrace scripts. These examples are simple and
+   to the point, and are intended as example targets for when learing
+   DTrace.
+
+   Some people attempt to learn DTrace by tracing their complex real
+   world application first. That's the hard way. Try these programs instead,
+   and once you are confident here, move onto harder targets.
+
+   Some of these programs feature in the example files in the /Examples
+   directory.
+
+   This directory does not contain DTrace scripts.
+
diff --git a/external/cddl/dtracetoolkit/dist/Code/Ruby/func_abc.rb b/external/cddl/dtracetoolkit/dist/Code/Ruby/func_abc.rb
new file mode 100755
index 0000000..75adaf9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Ruby/func_abc.rb
@@ -0,0 +1,20 @@
+#!./ruby -w
+
+def func_c
+  print "Function C\n"
+  sleep 1
+end
+
+def func_b
+  print "Function B\n"
+  sleep 1
+  func_c
+end
+
+def func_a
+  print "Function A\n"
+  sleep 1
+  func_b
+end
+
+func_a
diff --git a/external/cddl/dtracetoolkit/dist/Code/Ruby/func_slow.rb b/external/cddl/dtracetoolkit/dist/Code/Ruby/func_slow.rb
new file mode 100755
index 0000000..87a498c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Ruby/func_slow.rb
@@ -0,0 +1,32 @@
+#!./ruby -w
+
+def func_c
+  print "Function C\n"
+  i = 0
+  while i < 300000
+     i = i + 1
+     j = i + 1
+  end
+end
+
+def func_b
+  print "Function B\n"
+  i = 0
+  while i < 200000
+     i = i + 1
+     j = i + 1
+  end
+  func_c
+end
+
+def func_a
+  print "Function A\n"
+  i = 0
+  while i < 100000
+     i = i + 1
+     j = i + 1
+  end
+  func_b
+end
+
+func_a
diff --git a/external/cddl/dtracetoolkit/dist/Code/Shell/func_abc.sh b/external/cddl/dtracetoolkit/dist/Code/Shell/func_abc.sh
new file mode 100755
index 0000000..b44ce57
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Shell/func_abc.sh
@@ -0,0 +1,23 @@
+#!./sh
+
+func_c()
+{
+	echo "Function C"
+	sleep 1
+}
+
+func_b()
+{
+	echo "Function B"
+	sleep 1
+	func_c
+}
+
+func_a()
+{
+	echo "Function A"
+	sleep 1
+	func_b
+}
+
+func_a
diff --git a/external/cddl/dtracetoolkit/dist/Code/Shell/func_slow.sh b/external/cddl/dtracetoolkit/dist/Code/Shell/func_slow.sh
new file mode 100755
index 0000000..3407646
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Shell/func_slow.sh
@@ -0,0 +1,35 @@
+#!./sh
+
+func_c()
+{
+	echo "Function C"
+	i=0
+	while [ $i -lt 300 ]
+	do
+		i=`expr $i + 1`
+	done
+}
+
+func_b()
+{
+	echo "Function B"
+	i=0
+	while [ $i -lt 200 ]
+	do
+		i=`expr $i + 1`
+	done
+	func_c
+}
+
+func_a()
+{
+	echo "Function A"
+	i=0
+	while [ $i -lt 100 ]
+	do
+		i=`expr $i + 1`
+	done
+	func_b
+}
+
+func_a
diff --git a/external/cddl/dtracetoolkit/dist/Code/Shell/func_waste.sh b/external/cddl/dtracetoolkit/dist/Code/Shell/func_waste.sh
new file mode 100755
index 0000000..bfeeecb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Shell/func_waste.sh
@@ -0,0 +1,23 @@
+#!./sh
+
+func_c()
+{
+	/usr/bin/echo "Function C"
+	sleep 1
+}
+
+func_b()
+{
+	/usr/bin/echo "Function B"
+	sleep 1
+	func_c
+}
+
+func_a()
+{
+	/usr/bin/echo "Function A"
+	sleep 1
+	func_b
+}
+
+func_a
diff --git a/external/cddl/dtracetoolkit/dist/Code/Tcl/func_abc.tcl b/external/cddl/dtracetoolkit/dist/Code/Tcl/func_abc.tcl
new file mode 100644
index 0000000..c84acb0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Tcl/func_abc.tcl
@@ -0,0 +1,20 @@
+#!./tclsh
+
+proc func_c {} {
+	puts "Function C"
+	after 1000
+}
+
+proc func_b {} {
+	puts "Function B"
+	after 1000
+	func_c
+}
+
+proc func_a {} {
+	puts "Function A"
+	after 1000
+	func_b
+}
+
+func_a
diff --git a/external/cddl/dtracetoolkit/dist/Code/Tcl/func_slow.tcl b/external/cddl/dtracetoolkit/dist/Code/Tcl/func_slow.tcl
new file mode 100644
index 0000000..d4fc598
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Code/Tcl/func_slow.tcl
@@ -0,0 +1,29 @@
+#!./tclsh
+
+proc func_c {} {
+	puts "Function C"
+	set i 0
+	while {$i < 300000} {
+		set i [expr $i + 1]
+	}
+}
+
+proc func_b {} {
+	puts "Function B"
+	set i 0
+	while {$i < 200000} {
+		set i [expr $i + 1]
+	}
+	func_c
+}
+
+proc func_a {} {
+	puts "Function A"
+	set i 0
+	while {$i < 100000} {
+		set i [expr $i + 1]
+	}
+	func_b
+}
+
+func_a
diff --git a/external/cddl/dtracetoolkit/dist/Cpu/Readme b/external/cddl/dtracetoolkit/dist/Cpu/Readme
new file mode 100644
index 0000000..e0f8698
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Cpu/Readme
@@ -0,0 +1,3 @@
+Cpu - CPU based analysis
+
+   This would include activity by CPU.
diff --git a/external/cddl/dtracetoolkit/dist/Cpu/cputypes.d b/external/cddl/dtracetoolkit/dist/Cpu/cputypes.d
new file mode 100755
index 0000000..0a62e54
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Cpu/cputypes.d
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -s
+/*
+ * cputypes.d - list CPU type info.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: cputypes.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	cputypes.d
+ *
+ * FIELDS:
+ *		CPU		CPU ID
+ *		CHIP		chip ID
+ *		PSET		processor set ID
+ *		LGRP		latency group ID
+ *		CLOCK		clock speed, MHz
+ *		TYPE		CPU type
+ *		FPU		floating point identifier types
+ *
+ * SEE ALSO:	psrinfo(1M)
+ *		/usr/include/sys/processor.h
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 27-Jun-2005  Brendan Gregg   Created this.
+ * 27-Jun-2005     "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option bufsize=64k
+
+dtrace:::BEGIN
+{
+	printf("%4s %4s %4s %4s %6s  %-16s %s\n",
+	    "CPU", "CHIP", "PSET", "LGRP", "CLOCK", "TYPE", "FPU");
+	done[0] = 0;
+}
+
+profile:::profile-10ms
+/done[cpu] == 0/
+{
+	printf("%4d %4d %4d %4d %6d  %-16s %s\n",
+	    cpu, curcpu->cpu_chip, curcpu->cpu_pset,
+	    curcpu->cpu_lgrp, curcpu->cpu_info.pi_clock,
+	    stringof(curcpu->cpu_info.pi_processor_type),
+	    stringof(curcpu->cpu_info.pi_fputypes));
+	done[cpu]++;
+}
+
+profile:::tick-100ms
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Cpu/cpuwalk.d b/external/cddl/dtracetoolkit/dist/Cpu/cpuwalk.d
new file mode 100755
index 0000000..3620647
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Cpu/cpuwalk.d
@@ -0,0 +1,72 @@
+#!/usr/sbin/dtrace -s
+/*
+ * cpuwalk.d - Measure which CPUs a process runs on.
+ *             Written using DTrace (Solaris 10 3/05)
+ *
+ * This program is for multi-CPU servers, and can help identify if a process
+ * is running on multiple CPUs concurrently or not.
+ *
+ * $Id: cpuwalk.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	cpuwalk.d [duration]
+ *	   eg,
+ *		cpuwalk.d 10		# sample for 10 seconds
+ *		cpuwalk.d		# sample until Ctrl-C is hit
+ *
+ * FIELDS:
+ *		value		CPU id
+ *		count		Number of 1000 hz samples on this CPU
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 22-Sep-2005  Brendan Gregg   Created this.
+ * 14-Feb-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int MAXCPUID = 1024;
+
+dtrace:::BEGIN
+{
+	$1 ? printf("Sampling...\n") :
+	    printf("Sampling... Hit Ctrl-C to end.\n");
+	seconds = 0;
+}
+
+profile:::profile-1000hz
+/pid/
+{
+	@sample[pid, execname] = lquantize(cpu, 0, MAXCPUID, 1);
+}
+
+profile:::tick-1sec
+{
+	seconds++;
+}
+
+profile:::tick-1sec
+/seconds == $1/
+{
+	exit(0);
+}
+
+dtrace:::END
+{
+	printa("\n     PID: %-8d CMD: %s\n%@d", @sample);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Cpu/dispqlen.d b/external/cddl/dtracetoolkit/dist/Cpu/dispqlen.d
new file mode 100755
index 0000000..09c43fb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Cpu/dispqlen.d
@@ -0,0 +1,52 @@
+#!/usr/sbin/dtrace -s
+/*
+ * dispqlen.d - dispatcher queue length by CPU.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: dispqlen.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	dispqlen.d		# hit Ctrl-C to end sample
+ *
+ * NOTES: The dispatcher queue length is an indication of CPU saturation.
+ * It is not an indicatior of utilisation - the CPUs may or may not be
+ * utilised when the dispatcher queue reports a length of zero.
+ *
+ * SEE ALSO:    uptime(1M)
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 27-Jun-2005  Brendan Gregg   Created this.
+ * 14-Feb-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Sampling... Hit Ctrl-C to end.\n");
+}
+
+profile:::profile-1000hz
+{
+	@queue[cpu] =
+	    lquantize(curthread->t_cpu->cpu_disp->disp_nrunnable, 0, 64, 1);
+}
+
+dtrace:::END
+{
+	printa(" CPU %d%@d\n", @queue);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Cpu/intbycpu.d b/external/cddl/dtracetoolkit/dist/Cpu/intbycpu.d
new file mode 100755
index 0000000..0554ec8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Cpu/intbycpu.d
@@ -0,0 +1,49 @@
+#!/usr/sbin/dtrace -s
+/*
+ * intbycpu.d - interrupts by CPU.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: intbycpu.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	intbycpu.d		# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		CPU		CPU number
+ *		INTERRUPTS	number of interrupts in sample
+ *
+ * This is based on a DTrace OneLiner from the DTraceToolkit.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 15-May-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sdt:::interrupt-start { @num[cpu] = count(); }
+
+dtrace:::END
+{
+	printf("%-16s %16s\n", "CPU", "INTERRUPTS");
+	printa("%-16d %@16d\n", @num);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Cpu/intoncpu.d b/external/cddl/dtracetoolkit/dist/Cpu/intoncpu.d
new file mode 100755
index 0000000..32a8488
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Cpu/intoncpu.d
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -s
+/*
+ * intoncpu.d - print interrupt on-cpu usage.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * $Id: intoncpu.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       intoncpu.d      # wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		value	Time interrupt thread was on-cpu, ns
+ *		count	Number of occurrences of at least this time
+ *
+ * BASED ON: /usr/demo/dtrace/intr.d
+ *
+ * SEE ALSO: DTrace Guide "sdt Provider" chapter (docs.sun.com)
+ *           intrstat(1M)
+ *
+ * PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-May-2005  Brendan Gregg   Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sdt:::interrupt-start
+{
+	self->ts = vtimestamp;
+}
+
+sdt:::interrupt-complete
+/self->ts && arg0 != 0/
+{
+	this->devi = (struct dev_info *)arg0;
+	/* this checks the pointer is valid, */
+	self->name = this->devi != 0 ?
+	    stringof(`devnamesp[this->devi->devi_major].dn_name) : "?";
+	this->inst = this->devi != 0 ? this->devi->devi_instance : 0;
+	@Time[self->name, this->inst] = quantize(vtimestamp - self->ts);
+	self->name = 0;
+}
+
+dtrace:::END
+{
+	printa("%s%d\n%@d", @Time);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Cpu/inttimes.d b/external/cddl/dtracetoolkit/dist/Cpu/inttimes.d
new file mode 100755
index 0000000..84a84d0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Cpu/inttimes.d
@@ -0,0 +1,73 @@
+#!/usr/sbin/dtrace -s
+/*
+ * inttimes.d - print interrupt on-cpu time.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * $Id: inttimes.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       inttimes.d      # wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		DEVICE		instance name of device driver
+ *		TIME (ns)	sum of time spent servicing interrupt (ns)
+ *
+ * BASED ON: /usr/demo/dtrace/intr.d
+ *
+ * SEE ALSO:
+ *          DTrace Guide "sdt Provider" chapter (docs.sun.com)
+ *          intrstat(1M)
+ *
+ * PORTIONS: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sdt:::interrupt-start
+{
+	self->ts = vtimestamp;
+}
+
+sdt:::interrupt-complete
+/self->ts && arg0 != 0/
+{
+	this->devi = (struct dev_info *)arg0;
+	/* this checks the pointer is valid, */
+	self->name = this->devi != 0 ?
+	    stringof(`devnamesp[this->devi->devi_major].dn_name) : "?";
+	this->inst = this->devi != 0 ? this->devi->devi_instance : 0;
+	@num[self->name, this->inst] = sum(vtimestamp - self->ts);
+	self->name = 0;
+}
+
+sdt:::interrupt-complete
+{
+	self->ts = 0;
+}
+
+dtrace:::END
+{
+	printf("%11s    %16s\n", "DEVICE", "TIME (ns)");
+	printa("%10s%-3d %@16d\n", @num);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Cpu/loads.d b/external/cddl/dtracetoolkit/dist/Cpu/loads.d
new file mode 100755
index 0000000..a301532
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Cpu/loads.d
@@ -0,0 +1,58 @@
+#!/usr/sbin/dtrace -s
+/*
+ * loads.d - print load averages. Written using DTrace (Solaris 10 3/05).
+ *
+ * These are the same load averages that the "uptime" command prints.
+ * The purpose of this script is to demonstrate fetching these values
+ * from the DTrace language.
+ *
+ * $Id: loads.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	loads.d
+ *
+ * SEE ALSO:	uptime(1)
+ *
+ * The first field is the 1 minute average, the second is the 5 minute,
+ * and the third is the 15 minute average. The value represents the average
+ * number of runnable threads in the system, a value higher than your
+ * CPU (core/hwthread) count may be a sign of CPU saturation.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 10-Jun-2005	Brendan Gregg	Created this.
+ * 10-Jun-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	/* fetch load averages */
+	this->load1a  = `hp_avenrun[0] / 65536;
+	this->load5a  = `hp_avenrun[1] / 65536;
+	this->load15a = `hp_avenrun[2] / 65536;
+	this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+	this->load5b  = ((`hp_avenrun[1] % 65536) * 100) / 65536;
+	this->load15b = ((`hp_avenrun[2] % 65536) * 100) / 65536;
+
+	/* print load average */
+	printf("%Y,  load average: %d.%02d, %d.%02d, %d.%02d\n",
+	    walltimestamp, this->load1a, this->load1b, this->load5a,
+	    this->load5b, this->load15a, this->load15b);
+
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Cpu/runocc.d b/external/cddl/dtracetoolkit/dist/Cpu/runocc.d
new file mode 100755
index 0000000..f7fa59a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Cpu/runocc.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -s
+/*
+ * runocc.d - run queue occupancy by CPU.
+ *            Written using DTrace (Solaris 10 3/05).
+ *
+ * This prints the dispatcher run queue occupancy by CPU each second.
+ * A consistant run queue occupancy is a sign of CPU saturation.
+ *
+ * The value is similar to that seen in "sar -q", however this is
+ * calculated in a more accurate manner - sampling at 1000 Hertz.
+ *
+ * $Id: runocc.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	runocc.d
+ *
+ * FIELDS:
+ *		CPU		cpu ID
+ *		%runocc		% run queue occupancy, sampled at 1000 Hertz
+ *
+ * SEE ALSO: Solaris Internals 2nd Ed, vol 2, CPU chapter.
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 02-Mar-2006  Brendan Gregg   Created this.
+ * 24-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+profile-1000hz
+/curthread->t_cpu->cpu_disp->disp_nrunnable/
+{
+	@qocc[cpu] = count();
+}
+
+profile:::tick-1sec
+{
+	normalize(@qocc, 10);
+	printf("\n%8s %8s\n", "CPU", "%runocc");
+	printa("%8d %@8d\n", @qocc);
+	clear(@qocc);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Cpu/xcallsbypid.d b/external/cddl/dtracetoolkit/dist/Cpu/xcallsbypid.d
new file mode 100755
index 0000000..c49013b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Cpu/xcallsbypid.d
@@ -0,0 +1,51 @@
+#!/usr/sbin/dtrace -s
+/*
+ * xcallsbypid.d - CPU cross calls by PID.
+ *                 Writen using DTrace (Solaris 10 3/05).
+ *
+ * $Id: xcallsbypid.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	xcallsbypid.d		# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ * 		CMD		process name
+ *		XCALLS		number of cross calls
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 17-Sep-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sysinfo:::xcalls
+{
+	@num[pid, execname] = count();
+}
+
+dtrace:::END
+{
+	printf("%6s %-16s %16s\n", "PID", "CMD", "XCALLS");
+	printa("%6d %-16s %@16d\n", @num);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Disk/Readme b/external/cddl/dtracetoolkit/dist/Disk/Readme
new file mode 100644
index 0000000..37a5301
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Disk/Readme
@@ -0,0 +1,3 @@
+Disk - Disk based analysis
+
+   These are scripts that analyse I/O activity that has made it to the disks. 
diff --git a/external/cddl/dtracetoolkit/dist/Disk/bitesize.d b/external/cddl/dtracetoolkit/dist/Disk/bitesize.d
new file mode 100755
index 0000000..69679d9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Disk/bitesize.d
@@ -0,0 +1,81 @@
+#!/usr/sbin/dtrace -s
+/*
+ * bitesize.d - analyse disk I/O size by process.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * This produces a report for the size of disk events caused by
+ * processes. These are the disk events sent by the block I/O driver.
+ *
+ * If applications must use the disks, we generally prefer they do so
+ * with large I/O sizes.
+ *
+ * $Id: bitesize.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	bitesize.d	# wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		command and argument list
+ *		value		size in bytes
+ *		count		number of I/O operations
+ *
+ * NOTES:
+ *
+ * The application may be requesting smaller sized operations, which
+ * are being rounded up to the nearest sector size or UFS block size.
+ * To analyse what the application is requesting, DTraceToolkit programs
+ * such as Proc/fddist may help.
+ *
+ * SEE ALSO: seeksize.d, iosnoop
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 31-Mar-2004	Brendan Gregg	Created this, build 51.
+ * 10-Oct-2004	   "      "	Rewrote to use the io provider, build 63.
+ * 18-Feb-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/*
+ * Process io start
+ */
+io:::start
+{
+	/* fetch details */
+	this->size = args[0]->b_bcount;
+
+	/* store details */
+	@Size[pid, curpsinfo->pr_psargs] = quantize(this->size);
+}
+
+/*
+ * Print final report
+ */
+dtrace:::END
+{
+	printf("\n%8s  %s\n", "PID", "CMD");
+	printa("%8d  %S\n%@d\n", @Size);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Disk/diskhits b/external/cddl/dtracetoolkit/dist/Disk/diskhits
new file mode 100755
index 0000000..34982d6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Disk/diskhits
@@ -0,0 +1,113 @@
+#!/usr/bin/ksh
+#
+# diskhits - disk access by file offset.
+#            Written using DTrace (Solaris 10 3/05).
+#
+# $Id: diskhits,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# This prints how a file was accessed, the locations on a distribution plot.
+# This is for the cache misses only - the file activity that resulted in
+# disk events.
+#
+# USAGE:	diskhits pathname
+#	eg,
+#		diskhits /var/adm/messages
+#
+# FIELDS:
+#		Location (KB)	The file offset of the disk activity, Kbytes.
+#		Size (KB)	Size of the disk activity, Kbytes.
+#		Total RW	Total disk activity, reads + writes.
+#
+# BASED ON: /usr/demo/dtrace/applicat.d
+#
+# SEE ALSO: DTrace Guide "io Provider" chapter (docs.sun.com)
+#           iosnoop (DTraceToolkit)
+#
+# PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 08-Jun-2005   Brendan Gregg   Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+### Usage
+function usage
+{
+	cat <<-END >&2
+	USAGE: diskhits pathname
+	   eg,
+	       diskhits /var/adm/wtmpx
+	END
+	exit 1
+}
+
+### Process arguments
+if (( $# != 1 )); then
+	usage
+fi
+if [[ $1 == "-h" ]]; then
+	usage
+fi
+pathname=$1
+if [[ ! -e $pathname ]]; then
+	print "ERROR2: file $pathname not found" >&2
+	exit 2
+fi
+
+### Calculate output scale
+report_lines=20
+set -- `ls -l $pathname`
+filesize=$5
+(( file_kb_max = filesize / 1024 ))
+(( scale_kb = filesize / (1024 * report_lines) ))
+if (( file_kb_max < 20 )); then file_kb_max=20; fi
+if (( scale_kb < 1 )); then scale_kb=1; fi
+
+#
+#  Run DTrace
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ inline string PATHNAME = "'$pathname'";
+ inline int FILE_KB_MAX = '$file_kb_max';
+ inline int SCALE_KB = '$scale_kb';
+
+ dtrace:::BEGIN
+ {
+	printf("Tracing... Hit Ctrl-C to end.\n");
+ }
+
+ io:::start
+ /args[2]->fi_pathname == PATHNAME/
+ {
+	this->kb = args[2]->fi_offset == -1 ? -1 : args[2]->fi_offset / 1024;
+	@Location = lquantize(this->kb, 0, FILE_KB_MAX, SCALE_KB);
+	@Size = quantize(args[0]->b_bcount/1024);
+	@Total = sum(args[0]->b_bcount/1024);
+ }
+
+ dtrace:::END
+ {
+	printf("Location (KB),");
+	printa(@Location);
+
+	printf("Size (KB),");
+	printa(@Size);
+
+	printa("Total RW: %@d KB\n", @Total);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Disk/hotspot.d b/external/cddl/dtracetoolkit/dist/Disk/hotspot.d
new file mode 100755
index 0000000..6b77150
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Disk/hotspot.d
@@ -0,0 +1,71 @@
+#!/usr/sbin/dtrace -s
+/*
+ * hotspot.d - plot disk event by location, look for hotspots.
+ *             Written in DTrace (Solaris 10 3/05).
+ *
+ * This simple DTrace script determines if disk activity is occuring in
+ * the one place - a "hotspot". This helps us understand the system's usage
+ * of a disk, it does not imply that the existance or not of a hotspot is
+ * good or bad (often may be good, less seeking).
+ *
+ * $Id: hotspot.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:       hotspot.d       # hit Ctrl-C to end
+ *
+ * FIELDS:
+ *              Disk            disk instance name
+ *              Major           driver major number
+ *              Minor           driver minor number
+ *              value           location, by megabyte
+ *              count           number of I/O operations
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 07-May-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+inline int DISK_MB_MAX = 1000000;	/* max size of a single disk */
+inline int REPORT_SCALE_MB = 1000;	/* output step size for report */
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/*
+ * Process disk event
+ */
+io:::start
+{
+	this->mb = args[0]->b_blkno / 2048;
+	@Block[args[1]->dev_statname, args[1]->dev_major, args[1]->dev_minor] =
+	    lquantize(this->mb, 0, DISK_MB_MAX, REPORT_SCALE_MB);
+}
+
+/*
+ * Print final report
+ */
+dtrace:::END
+{
+	printa("Disk: %s   Major,Minor: %d,%d\n%@d\n", @Block);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Disk/iofile.d b/external/cddl/dtracetoolkit/dist/Disk/iofile.d
new file mode 100755
index 0000000..07d9ccf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Disk/iofile.d
@@ -0,0 +1,79 @@
+#!/usr/sbin/dtrace -s
+/*
+ * iofile.d - I/O wait time by filename and process.
+ *            Written using DTrace (Solaris 10 3/05).
+ *
+ * This prints the total I/O wait times for each filename by process.
+ * This can help determine why an application is performing poorly by
+ * identifying which file they are waiting on, and the total times.
+ * Both disk and NFS I/O are measured.
+ *
+ * $Id: iofile.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	iofile.d	# wait, then hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		CMD		Process name
+ *		TIME		Total wait time for disk events, us
+ *		FILE		File pathname
+ *
+ * BASED ON: /usr/demo/dtrace/iocpu.d
+ *
+ * SEE ALSO: iosnoop, iotop
+ *
+ * PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 24-Jul-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/* print header */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/* save time at start */
+io:::wait-start
+{
+	self->start = timestamp;
+}
+
+/* process event */
+io:::wait-done
+/self->start/
+{
+	/*
+	 * wait-done is used as we are measing wait times. It also
+	 * is triggered when the correct thread is on the CPU, obviating
+	 * the need to link process details to the start event.
+	 */
+	this->elapsed = timestamp - self->start;
+	@files[pid, execname, args[2]->fi_pathname] = sum(this->elapsed);
+	self->start = 0;
+}
+
+/* print report */
+dtrace:::END
+{
+	normalize(@files, 1000);
+	printf("%6s %-12s %8s %s\n", "PID", "CMD", "TIME", "FILE");
+	printa("%6d %-12.12s %@8d %s\n", @files);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Disk/iofileb.d b/external/cddl/dtracetoolkit/dist/Disk/iofileb.d
new file mode 100755
index 0000000..edef6e5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Disk/iofileb.d
@@ -0,0 +1,59 @@
+#!/usr/sbin/dtrace -s
+/*
+ * iofileb.d - I/O bytes by filename and process.
+ *             Written using DTrace (Solaris 10 3/05).
+ *
+ * This prints a summary of requested disk activity by pathname,
+ * providing totals of the I/O events in bytes. It is a companion to the
+ * iofile.d script - which prints in terms of I/O wait time, not bytes.
+ * I/O wait time is a better metric for understanding performance issues.
+ * Both disk and NFS I/O are measured.
+ *
+ * $Id: iofileb.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	iofileb.d	# wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID	process ID
+ *		CMD	command name
+ *		KB	Kilobytes of disk I/O
+ *		FILE	Full pathname of the file
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 20-Feb-2006	Brendan Gregg	Created this.
+ * 20-Feb-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+io:::start
+{
+	@files[pid, execname, args[2]->fi_pathname] = sum(args[0]->b_bcount);
+}
+
+dtrace:::END
+{
+	normalize(@files, 1024);
+	printf("%6s %-12s %6s %s\n", "PID", "CMD", "KB", "FILE");
+	printa("%6d %-12.12s %@6d %s\n", @files);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Disk/iopending b/external/cddl/dtracetoolkit/dist/Disk/iopending
new file mode 100755
index 0000000..5dc5830
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Disk/iopending
@@ -0,0 +1,261 @@
+#!/usr/bin/ksh
+#
+# iopending - Print a plot for the number of pending disk I/O events.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# This is measuring disk events that have made it past system caches.
+# By plotting a distribution graph of the number of pending events, the
+# "serialness" or "parallelness" of disk behaviour can be distinguished.
+#
+# $Id: iopending,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+#
+# USAGE:	iopending [-c] [-d device] [-f filename] 
+#		          [-m mount_point] [interval [count]]
+#
+#		-c		# clear the screen
+#		-d device	# instance name to snoop (eg, dad0)
+#		-f filename	# full pathname of file to snoop
+#		-m mount_point	# this FS only (will skip raw events)
+#	eg,
+#		iopending   	# default output, 5 second intervals
+#		iopending 1  	# 1 second samples
+#		iopending -c	# clear the screen
+#		iopending 5 12	# print 12 x 5 second samples
+# 	
+# FIELDS:
+#		value		number of pending events, 0 == idle
+#		count		number of samples @ 1000 Hz
+#		load		1 min load average
+#		disk_r		total disk read Kbytes for sample
+#		disk_w		total disk write Kbytes for sample
+# 
+# SEE ALSO: iosnoop, iotop
+#
+# IDEA: Dr Rex di Bona (Sydney, Australia)
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 01-Nov-2005	Brendan Gregg	Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_device=0; opt_file=0; opt_mount=0; opt_clear=0; 
+opt_def=1; filter=0; device=.; filename=.; mount=.
+interval=5; count=-1
+
+### process options
+while getopts cd:f:hm: name
+do
+	case $name in
+	c)	opt_clear=1 ;;
+	d)	opt_device=1; device=$OPTARG ;;
+	f)	opt_file=1; filename=$OPTARG ;;
+	m)	opt_mount=1; mount=$OPTARG ;;
+	h|?)	cat <<-END >&2
+		USAGE: iopending [-c] [-d device] [-f filename]
+		                 [-m mount_point] [interval [count]]
+ 
+		                -c              # clear the screen
+		                -d device       # instance name to snoop 
+		                -f filename     # snoop this file only
+		                -m mount_point  # this FS only 
+		   eg,
+		        iopending         # default output, 5 second samples
+		        iopending 1       # 1 second samples
+		        iopending -m /    # snoop events on filesystem / only
+		        iopending 5 12    # print 12 x 5 second samples
+		END
+		exit 1
+	esac
+done
+
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_device || opt_mount || opt_file )); then
+	filter=1
+fi
+if (( opt_clear )); then
+        clearstr=`clear`
+else
+        clearstr=.
+fi
+
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_def 	= '$opt_def';
+ inline int OPT_clear 	= '$opt_clear';
+ inline int OPT_device 	= '$opt_device';
+ inline int OPT_mount 	= '$opt_mount';
+ inline int OPT_file 	= '$opt_file';
+ inline int INTERVAL 	= '$interval';
+ inline int COUNTER 	= '$count';
+ inline int FILTER 	= '$filter';
+ inline string DEVICE 	= "'$device'";
+ inline string FILENAME = "'$filename'";
+ inline string MOUNT 	= "'$mount'";
+ inline string CLEAR 	= "'$clearstr'";
+
+ inline int MAX_PENDING = 32;	/* max pending value */
+ 
+ #pragma D option quiet
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+        /* starting values */
+        counts = COUNTER;
+        secs = INTERVAL;
+        disk_r = 0;
+        disk_w = 0;
+        pending = 0;
+
+        printf("Tracing... Please wait.\n");
+ }
+
+ /*
+  * Check event is being traced
+  */
+ io:genunix::start,
+ io:genunix::done 
+ { 
+	/* default is to trace unless filtering, */
+	this->ok = FILTER ? 0 : 1;
+
+	/* check each filter, */
+	(OPT_device == 1 && DEVICE == args[1]->dev_statname)? this->ok = 1 : 1;
+	(OPT_file == 1 && FILENAME == args[2]->fi_pathname) ? this->ok = 1 : 1;
+	(OPT_mount == 1 && MOUNT == args[2]->fi_mount)  ? this->ok = 1 : 1;
+ }
+
+ /*
+  * Store entry details
+  */
+ io:genunix::start
+ /this->ok/
+ {
+	/* track bytes */
+	disk_r += args[0]->b_flags & B_READ ? args[0]->b_bcount : 0;
+	disk_w += args[0]->b_flags & B_READ ? 0 : args[0]->b_bcount;
+
+	/* increase event pending count */
+	pending++;
+ }
+
+ /*
+  * Process and Print completion
+  */
+ io:genunix::done
+ /this->ok/
+ {
+	/* decrease event pending count */
+	pending--;
+ }
+
+ /*
+  * Prevent pending from underflowing
+  * this can happen if this program is started during disk events.
+  */
+ io:genunix::done
+ /pending < 0/
+ {
+	pending = 0;
+ }
+
+ /*
+  * Timer
+  */
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ profile:::profile-1000hz
+ {
+	@out = lquantize(pending, 0, MAX_PENDING, 1);
+ }
+
+ /*
+  * Print Report
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* fetch 1 min load average */
+	this->load1a  = `hp_avenrun[0] / 65536;
+	this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+
+	/* convert counters to Kbytes */
+	disk_r /= 1024;
+	disk_w /= 1024;
+
+	/* print status */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+	printf("%Y,  load: %d.%02d,  disk_r: %6d KB,  disk_w: %6d KB",
+	    walltimestamp, this->load1a, this->load1b, disk_r, disk_w);
+
+	/* print output */
+	printa(@out);
+
+	/* clear data */
+	trunc(@out);
+	disk_r = 0;
+	disk_w = 0;
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /*
+  * End of program
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+
+ /*
+  * Cleanup for Ctrl-C
+  */
+ dtrace:::END
+ {
+	trunc(@out);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Disk/seeksize.d b/external/cddl/dtracetoolkit/dist/Disk/seeksize.d
new file mode 100755
index 0000000..309ce66
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Disk/seeksize.d
@@ -0,0 +1,85 @@
+#!/usr/sbin/dtrace -s
+/*
+ * seeksize.d - analyse disk head seek distance by process.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * Disk I/O events caused by processes will in turn cause the disk heads
+ * to seek. This program analyses those seeks, so that we can determine
+ * if processes are causing the disks to seek in a "random" or "sequential"
+ * manner.
+ *
+ * $Id: seeksize.d,v 1.1.1.1 2015/09/30 22:01:07 christos Exp $
+ *
+ * USAGE:	seeksize.d		# wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID	process ID
+ *		CMD	command and argument list
+ *		value	distance in disk blocks (sectors)
+ *		count	number of I/O operations
+ *
+ * SEE ALSO: bitesize.d, iosnoop
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 11-Sep-2004	Brendan Gregg	Created this.
+ * 10-Oct-2004	   "      "	Rewrote to use the io provider.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+self int last[dev_t];
+
+/*
+ * Process io start
+ */
+io:genunix::start
+/self->last[args[0]->b_edev] != 0/
+{
+	/* calculate seek distance */
+	this->last = self->last[args[0]->b_edev];
+	this->dist = (int)(args[0]->b_blkno - this->last) > 0 ?
+	    args[0]->b_blkno - this->last : this->last - args[0]->b_blkno;
+
+	/* store details */
+	@Size[pid, curpsinfo->pr_psargs] = quantize(this->dist);
+}
+
+io:genunix::start
+{
+	/* save last position of disk head */
+	self->last[args[0]->b_edev] = args[0]->b_blkno +
+	    args[0]->b_bcount / 512;
+}
+
+/*
+ * Print final report
+ */
+dtrace:::END
+{
+	printf("\n%8s  %s\n", "PID", "CMD");
+	printa("%8d  %S\n%@d\n", @Size);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Contents b/external/cddl/dtracetoolkit/dist/Docs/Contents
new file mode 100644
index 0000000..525fd05
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Contents
@@ -0,0 +1,152 @@
+Contents - Command Summary
+
+   The following is a list of commands found in the DTraceToolkit, along
+   with their directory location.
+
+Generally commands that end in a ".d" are DTrace scripts, and commands
+that don't are DTrace scripts wrapped in another language (eg, shell
+or Perl). See the Docs/Readme for instructions for finding their docs.
+
+DTraceToolkit/
+   dexplorer		run a series of scripts and archive output
+   dtruss		process syscall info. DTrace truss
+   dvmstat		vmstat by PID/name/command
+   errinfo		report syscall failures with details
+   execsnoop		snoop process execution as it occurs
+   iosnoop		snoop I/O events as they occur
+   iopattern		print disk I/O pattern
+   iotop		display top disk I/O events by process
+   opensnoop		snoop file opens as they occur
+   procsystime		analyse process system call times
+   rwsnoop		snoop read/write events
+   rwtop		display top read/write bytes by process
+   statsnoop		snoop file stats as they occur
+   Apps/
+	httpdstat.d	realtime httpd statistics
+	nfswizard.d	NFS client activity wizard
+	shellsnoop	snoop live shell activity
+	weblatency.d	website latency statistics
+   Cpu/
+	cputypes.d	list CPU types
+	cpuwalk.d	measure which CPUs a process runs on
+	dispqlen.d	dispatcher queue length by CPU
+	intbycpu.d	interrupts by CPU
+	intoncpu.d	interrput on-cpu usage
+	inttimes.d	interrput on-cpu time total
+	loads.d		print load averages
+	runocc.d	run queue occupancy by CPU
+	xcallsbypid.d	CPU cross calls by PID
+   Disk/
+	bitesize.d	print disk event size report
+	diskhits	disk access by file offset
+	hotspot.d	print disk event by location
+	iofile.d	I/O wait time by filename and process
+	iofileb.d	I/O bytes by filename and process
+	iopending	plot number of pending disk events
+	pathopens.d	pathnames successfully opened count
+	seeksize.d	print disk seek size report
+   Docs/
+	oneliners.txt	DTrace oneliners
+   FS/
+	fsrw.d		file system read/write event tracing
+	fspaging.d	file system read/write and paging tracing
+	rfsio.d		read FS I/O stats, with cache miss rate
+	rfileio.d	read file I/O stats, with cache miss rate
+	vopstat		vnode interface statistics
+   Java/
+	j_*.d		18 scripts for tracing Java using the hotspot provider
+   JavaScript/
+	js_*.d		14 scripts for JavaScript with the Mozilla provider
+   Kernel/
+	cputimes	print time by Kernel/Idle/Process
+	cpudists	time distribution by Kernel/Idle/Process
+	cswstat.d	context switch time statistics
+	dnlcps.d	DNLC stats by process
+	dnlcsnoop.d	snoop DNLC activity
+	dnlcstat	DNLC statistics
+	kstat_types.d	trace kstat reads with type info
+	modcalls.d	kernel function calls by module name
+	priclass.d	priority distribution by scheduling class
+	pridist.d	process priority distribution
+	putnexts.d	trace who is putting to which streams module
+	whatexec.d	examine the type of files executed
+   Locks/
+	lockbyproc.d	lock time by process name
+	lockbydist.d	lock time distribution by process name
+   Mem/
+	anonpgpid.d	anonymous memory paging info by PID on CPU
+	minfbypid.d	minor faults by PID
+	minfbyproc.d	minor faults by process name
+	pgpginbypid.d	pages paged in by PID
+	pgpginbyproc.d	pages paged in by process name
+	swapinfo.d	print virtual memory info
+	vmbypid.d	virtual memory stats by PID
+	vmstat.d	vmstat demo using DTrace
+	vmstat-p.d	vmstat -p demo using DTrace
+	xvmstat		extended vmstat demo using DTrace
+   Misc/
+	guess.d		guessing game
+	wpm.d		words per minute tracing
+	woof.d		audio alert for new processes
+   Net/
+	connections	print inbound TCP connections by process
+	icmpstat.d	print ICMP statistics
+	tcpsnoop	snoop TCP network packets by process, Solaris 10 3/05
+	tcpsnoop_snv	snoop TCP network packets by process, Solaris Nevada
+	tcpsnoop.d	snoop TCP network packets by process, Solaris 10 3/05
+	tcpsnoop_snv.d	snoop TCP network packets by process, Solaris Nevada
+	tcpstat.d	print TCP statistics
+	tcptop		display top TCP network packets by PID, Solaris 10 3/05
+	tcptop_snv	display top TCP network packets by PID, Solaris Nevada
+	tcpwdist.d	simple TCP write distribution by process
+	udpstat.d	print UDP statistics
+   Perl/
+	pl_*.d		12 scripts for tracing Perl
+   Php/
+	php_*.d		12 scripts for tracing Php
+   Proc/
+	crash.d		crashed application report
+	creatbyproc.d	snoop file creat() by process name
+	dappprof	profile user and lib function usage
+	dapptrace	trace user and lib function usage
+	fddist		file descriptor usage distribution
+	fileproc.d	snoop files opened by process
+	kill.d		snoop process signals
+	lastwords	print syscalls before exit
+	mmapfiles.d	mmap'd files by process
+	newproc.d	snoop new processes
+	pfilestat	show I/O latency break down by FD
+	pidpersec.d	print new PIDs per sec
+	readbytes.d	read bytes by process name
+	readdist.d	read distribution by process name
+	rwbbypid.d	read/write bytes by PID
+	rwbypid.d	read/write calls by PID
+	rwbytype.d	read/write bytes by vnode type
+	sampleproc	sample processes on the CPUs
+	shortlived.d	check short lived process time
+	sigdist.d	signal distribution by process name
+	stacksize.d	measure stack size for running threads
+	sysbypid.d	system stats by PID
+	syscallbyproc.d	system calls by process name
+	syscallbypid.d	system calls by process ID
+	threaded.d	sample multi-threaded CPU usage
+	topsysproc	display top syscalls by process name
+	writebytes.d	write bytes by process name
+	writedist.d	write distribution by process name
+   Python/
+	py_*.d		14 scripts for tracing Python
+   Shell/
+	sh_*.d		15 scripts for tracing the Bourne shell
+   System/
+	sar-c.d		sar -c demo using DTrace
+	syscallbysysc.d	system calls by system call
+	topsyscall	display top system call type
+	uname-a.d	uname -a demo using DTrace
+   Tcl/
+	tcl_*.d		15 scripts for tracing Tcl
+   User/
+	setuids.d	snoop setuid calls
+   Zones/
+	zvmstat		vmstat info by zone
+
+Total: 230 scripts
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/Copyright b/external/cddl/dtracetoolkit/dist/Docs/Examples/Copyright
new file mode 100644
index 0000000..d802fe9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/Copyright
@@ -0,0 +1 @@
+The examples in this directory are copyright to their author.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/Readme b/external/cddl/dtracetoolkit/dist/Docs/Examples/Readme
new file mode 100644
index 0000000..762a331
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/Readme
@@ -0,0 +1,21 @@
+Examples - Script demos, screenshots, and how to read the output
+
+   This directory contains an example file per script in the DTraceToolkit.
+
+   When I hear of a new performance tool or what not, the first thing I want
+   to see are screenshots. They illustrate,
+
+   	- generally what the tool is for
+	- many details and features, since the output is (supposed to be)
+	  as intuitive as possible
+	- how to use the tool (command line usage)
+
+   It is a rapid way to get a handle on what a tool generally is, and how
+   to start using it. The files in this directory serve that purpose.
+
+   These are especially important now that the DTraceToolkit has over 200
+   scripts. Flicking through these files and seeing the screenshots may
+   be the quickest way to find what you are after.
+
+   Of course, don't forget to read the man pages and notes files too :)
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/anonpgpid_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/anonpgpid_example.txt
new file mode 100644
index 0000000..b505f3d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/anonpgpid_example.txt
@@ -0,0 +1,73 @@
+The following is a demonstration of the anonpgpid.d script,
+
+
+Here we run it on a system that is implementing memory caps using the
+resource capping daemon, "rcapd",
+
+   # anonpgpid.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD              D BYTES
+     6215 bash             R 8192
+     6215 bash             W 126976
+     5809 rcapd            R 245760
+     6222 memleak.pl       R 974848
+     6222 memleak.pl       W 3055616
+
+The "memleak.pl" process consumes memory, and we can see above that it has
+encountered both reads and writes to the physical swap device - it is being
+paged out. A bash shell was also effected (which was in the same project that
+rcapd was monitoring). 
+
+
+
+The following is an ordinary system that is very low on memory,
+
+   # anonpgpid.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD              D BYTES
+    18885 sendmail         R 4096
+    18600 automountd       R 4096
+        1 init             R 4096
+     2456 inetd            R 8192
+    18546 nscd             R 8192
+     2400 bash             R 12288
+      217 utmpd            R 28672
+      221 ttymon           R 32768
+      210 sac              R 36864
+    18777 snmpd            R 49152
+    18440 init             R 49152
+       89 nscd             R 61440
+      318 syslogd          R 73728
+      487 snmpd            R 81920
+     2453 inetd            R 102400
+      165 in.routed        R 131072
+      294 automountd       R 135168
+      215 inetd            R 135168
+      187 rpcbind          R 204800
+       86 kcfd             R 290816
+        7 svc.startd       R 1015808
+        9 svc.configd      R 1478656
+        2 pageout          W 23453696
+
+The "pageout" process is responsible for writing all the anonymous memory
+pages to the physical swap device, and we can see from the above that it 
+has written 23 Mb. When processes access anonymous memory that has been
+swapped out, a major fault occurs and the memory is paged back in; in this
+case we can trace the process that was effected, and from the above we can
+see that several processes have been effected by the memory pressure.
+The most is "svc.configd", which needed to page back in 1.4 Mb of anonymous
+memory. 
+
+
+
+Sometimes anonpgpid.d doesn't help too much. Here we only have pageouts
+to the physical swap device and no pageins,
+
+   # anonpgpid.d
+   ^C
+      PID CMD              D BYTES
+        2 pageout          W 61083648
+
+Only pageout is identified. 
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/bitesize_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/bitesize_example.txt
new file mode 100644
index 0000000..dcc697d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/bitesize_example.txt
@@ -0,0 +1,74 @@
+In this example, bitesize.d was run for several seconds then Ctrl-C was hit.
+As bitesize.d runs it records how processes on the system are accessing the
+disks - in particular the size of the I/O operation. It is usually desirable
+for processes to be requesting large I/O operations rather than taking many
+small "bites".
+
+The final report highlights how processes performed. The find command mostly
+read 1K blocks while the tar command was reading large blocks - both as
+expected.
+
+   # bitesize.d 
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+        PID  CMD
+       7110  -bash\0
+   
+              value  ------------- Distribution ------------- count    
+                512 |                                         0        
+               1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@               2        
+               2048 |                                         0        
+               4096 |@@@@@@@@@@@@@                            1        
+               8192 |                                         0        
+   
+       7110  sync\0
+   
+              value  ------------- Distribution ------------- count    
+                512 |                                         0        
+               1024 |@@@@@                                    1        
+               2048 |@@@@@@@@@@                               2        
+               4096 |                                         0        
+               8192 |@@@@@@@@@@@@@@@@@@@@@@@@@                5        
+              16384 |                                         0        
+   
+          0  sched\0
+   
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@                                      1        
+               4096 |                                         0        
+               8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     10       
+              16384 |                                         0        
+   
+       7109  find /\0
+   
+              value  ------------- Distribution ------------- count    
+                512 |                                         0        
+               1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       1452     
+               2048 |@@                                       91       
+               4096 |                                         33       
+               8192 |@@                                       97       
+              16384 |                                         0        
+   
+          3  fsflush\0
+   
+              value  ------------- Distribution ------------- count    
+               4096 |                                         0        
+               8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 449      
+              16384 |                                         0        
+   
+       7108  tar cf /dev/null /\0
+   
+              value  ------------- Distribution ------------- count    
+                256 |                                         0        
+                512 |                                         70       
+               1024 |@@@@@@@@@@                               1306     
+               2048 |@@@@                                     569      
+               4096 |@@@@@@@@@                                1286     
+               8192 |@@@@@@@@@@                               1403     
+              16384 |@                                        190      
+              32768 |@@@                                      396      
+              65536 |                                         0        
+   
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/connections_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/connections_example.txt
new file mode 100644
index 0000000..e39d063
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/connections_example.txt
@@ -0,0 +1,23 @@
+The following is an example of connections. As inbound TCP connections are 
+established their details are printed out. This includes the UID, PID and
+CMD of the server process that is listening on that port,
+
+   # connections
+     UID   PID CMD          TYPE  PORT IP_SOURCE
+       0   242 inetd         tcp    79 192.168.1.1
+       0   359 sshd          tcp    22 192.168.1.1
+     100  1532 Xorg          tcp  6000 192.168.1.1
+   ^C
+
+
+In another window snoop was running for comparison,
+
+   # snoop 'tcp[13:1] = 0x02'
+   Using device /dev/rtls0 (promiscuous mode)
+           mars -> jupiter      FINGER C port=56760
+           mars -> jupiter      TCP D=22 S=56761 Syn Seq=3264782212 Len=0 ...
+           mars -> jupiter      XWIN C port=56763
+
+snoop can already tell me that these connections are happening - but does not
+print out details of the server that accepted the connection.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/cpudists_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/cpudists_example.txt
new file mode 100644
index 0000000..aa8256b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/cpudists_example.txt
@@ -0,0 +1,276 @@
+The following demonstrates the cpudists program. It prints distributions
+of CPU time consumed by the Kernel, Idle thread, or Processes.
+
+Here we run cpudists for 5 seconds once,
+
+# ./cpudists 5 1
+2005 Apr 28 00:08:42,
+          KERNEL
+           value  ------------- Distribution ------------- count
+            4096 |                                         0
+            8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@             1134
+           16384 |@@@@@@@@@                                344
+           32768 |@@@                                      104
+           65536 |                                         3
+          131072 |                                         0
+          262144 |                                         1
+          524288 |                                         0
+         1048576 |                                         11
+         2097152 |                                         0
+
+         PROCESS
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@                                170
+           32768 |@@@@@@@@@@@@@@@@@@                       331
+           65536 |@@@@@@@@                                 152
+          131072 |@                                        17
+          262144 |@                                        25
+          524288 |@                                        13
+         1048576 |                                         4
+         2097152 |                                         9
+         4194304 |                                         0
+
+            IDLE
+           value  ------------- Distribution ------------- count
+         2097152 |                                         0
+         4194304 |@                                        9
+         8388608 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    418
+        16777216 |@@@                                      31
+        33554432 |                                         0
+
+The value indicates the time in nanoseconds, the count the number of
+runs for this length.
+
+From the above, we can see the kernel has run many times - but for short
+intervals each time. Processes have taken fom 10 to 60 microseconds;
+and when the idle thread runs it runs for some time - around 8 milliseconds
+for each.
+
+
+
+
+cpudists has a "-a" option for all processes,
+
+# ./cpudists -a 5 1
+2005 Apr 28 00:17:34,
+  mapping-daemon
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2
+           32768 |@@@@@@@@@@@@@                            1
+           65536 |                                         0
+
+        sendmail
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2
+           32768 |                                         0
+           65536 |@@@@@@@@@@@@@                            1
+          131072 |                                         0
+
+        nautilus
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2
+           32768 |                                         0
+           65536 |@@@@@@@@@@@@@                            1
+          131072 |                                         0
+
+             fmd
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2
+           32768 |                                         0
+           65536 |@@@@@@@@@@@@@                            1
+          131072 |                                         0
+
+       in.routed
+           value  ------------- Distribution ------------- count
+           65536 |                                         0
+          131072 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+          262144 |                                         0
+
+     miniserv.pl
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2
+           32768 |                                         0
+           65536 |                                         0
+          131072 |@@@@@@@@@@@@@                            1
+          262144 |                                         0
+
+    xscreensaver
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@                     2
+           32768 |                                         0
+           65536 |@@@@@@@@@@@@@@@@@@@@                     2
+          131072 |                                         0
+
+gnome-vfs-daemon
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@                 3
+           32768 |                                         0
+           65536 |@@@@@@@@@@@@@@@@                         2
+          131072 |                                         0
+
+     gnome-panel
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@                                 1
+           32768 |@@@@@@@@@@@@@@@@                         2
+           65536 |                                         0
+          131072 |@@@@@@@@@@@@@@@@                         2
+          262144 |                                         0
+
+      svc.startd
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              10
+           32768 |@@@@@@@@@@@                              4
+           65536 |@@@                                      1
+          131072 |                                         0
+
+            nscd
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    25
+           32768 |@                                        1
+           65536 |                                         0
+          131072 |@                                        1
+          262144 |                                         0
+
+gnome-netstatus-
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2
+           32768 |                                         0
+           65536 |                                         0
+          131072 |                                         0
+          262144 |                                         0
+          524288 |                                         0
+         1048576 |@@@@@@@@@@@@@                            1
+         2097152 |                                         0
+
+   mixer_applet2
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@                                10
+           32768 |@@@@@@@@@@@@@@@@@                        19
+           65536 |@@@@@@@@@@@@@@                           16
+          131072 |                                         0
+
+     soffice.bin
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@                                7
+           32768 |@@@@@@@@@@@@@@@@@@@                      14
+           65536 |@@@@@@@@                                 6
+          131072 |                                         0
+          262144 |@@@                                      2
+          524288 |                                         0
+         1048576 |                                         0
+         2097152 |@                                        1
+         4194304 |                                         0
+
+          dtrace
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@                8
+           32768 |                                         0
+           65536 |                                         0
+          131072 |                                         0
+          262144 |@@@                                      1
+          524288 |@@@@@@@@@                                3
+         1048576 |                                         0
+         2097152 |@@@                                      1
+         4194304 |                                         0
+
+            Xorg
+           value  ------------- Distribution ------------- count
+           32768 |                                         0
+           65536 |@@@@@@@@@@@@@@@@@@@@                     15
+          131072 |@@@@@@@@                                 6
+          262144 |@@@@@@@@@@@@                             9
+          524288 |                                         0
+
+         java_vm
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@                     101
+           32768 |@@@@@@@@@@@@@@@@                         84
+           65536 |@@@@                                     20
+          131072 |                                         0
+
+  gnome-terminal
+           value  ------------- Distribution ------------- count
+           16384 |                                         0
+           32768 |@@@@@@@@@@@@@@@@                         12
+           65536 |@@@@@@@@@@@                              8
+          131072 |@                                        1
+          262144 |                                         0
+          524288 |@@@@@@@@@@@@                             9
+         1048576 |                                         0
+
+        acroread
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |                                         1
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          188
+           65536 |@@@@@@@@                                 47
+          131072 |@@                                       10
+          262144 |                                         0
+
+     mozilla-bin
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@                                 21
+           32768 |@@@@@                                    13
+           65536 |@@@@@@@@@@@@@                            36
+          131072 |@@@@@@@                                  19
+          262144 |@@@                                      9
+          524288 |@@                                       5
+         1048576 |@                                        2
+         2097152 |@@                                       5
+         4194304 |                                         0
+
+          KERNEL
+           value  ------------- Distribution ------------- count
+            4096 |                                         0
+            8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@               1085
+           16384 |@@@@@@@@@@@                              443
+           32768 |@@                                       98
+           65536 |                                         5
+          131072 |                                         1
+          262144 |                                         1
+          524288 |                                         0
+         1048576 |                                         11
+         2097152 |                                         0
+
+         fsflush
+           value  ------------- Distribution ------------- count
+          131072 |                                         0
+          262144 |@@@@@@@                                  1
+          524288 |                                         0
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4
+         2097152 |                                         0
+         4194304 |                                         0
+         8388608 |                                         0
+        16777216 |                                         0
+        33554432 |@@@@@@@                                  1
+        67108864 |                                         0
+
+            IDLE
+           value  ------------- Distribution ------------- count
+          524288 |                                         0
+         1048576 |                                         1
+         2097152 |                                         0
+         4194304 |@                                        13
+         8388608 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     411
+        16777216 |@@@                                      31
+        33554432 |                                         0
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/cputimes_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/cputimes_example.txt
new file mode 100644
index 0000000..253a7a3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/cputimes_example.txt
@@ -0,0 +1,210 @@
+The following demonstrates running the cputimes program on an idle system.
+We use an interval of 1 second and a count of 3,
+
+   # ./cputimes 1 3
+   2005 Apr 27 23:37:58,
+            THREADS        TIME (ns)
+             KERNEL         10795499
+            PROCESS         20941091
+               IDLE        970707443
+   2005 Apr 27 23:37:59,
+            THREADS        TIME (ns)
+             KERNEL          8919418
+            PROCESS         77446789
+               IDLE        910555040
+   2005 Apr 27 23:38:00,
+            THREADS        TIME (ns)
+             KERNEL          8615123
+            PROCESS         78314246
+               IDLE        810100417
+
+In the above output, we can see a breakdown of CPU time into the catagories
+KERNEL, PROCESS and IDLE. The time is measured in nanoseconds. Most of the
+time is in the IDLE category, as the system is idle. Very little time
+was spent serving the kernel.
+
+
+
+
+In the following example, several programs are run to hog the CPUs,
+
+   # ./cputimes 1 3
+   2005 Apr 27 23:40:58,
+            THREADS        TIME (ns)
+             KERNEL         11398807
+            PROCESS        992254664
+   2005 Apr 27 23:40:59,
+            THREADS        TIME (ns)
+             KERNEL          9205260
+            PROCESS        987561182
+   2005 Apr 27 23:41:00,
+            THREADS        TIME (ns)
+             KERNEL          9196669
+            PROCESS        877850474
+
+Now there is no IDLE category, as the system is 100% utilised. 
+The programs were the following,
+
+	while :; do :; done &
+
+which keeps the CPU busy.
+
+
+
+
+In the following example a different style of program is run to hog the CPUs,
+
+	while :; do date; done 
+
+This causes many processes to be created and destroyed in a hurry, and can 
+be difficult to troubleshoot (tools like prstat cannot sample quick enough
+to easily identify what is going on). The following is the cputimes output,
+
+   # ./cputimes 1 3
+   2005 Apr 27 23:45:30,
+            THREADS        TIME (ns)
+             KERNEL        192647392
+            PROCESS        835397568
+   2005 Apr 27 23:45:31,
+            THREADS        TIME (ns)
+             KERNEL        168773713
+            PROCESS        810825730
+   2005 Apr 27 23:45:32,
+            THREADS        TIME (ns)
+             KERNEL        151676122
+            PROCESS        728477272
+
+Now the kernel is doing a substantial amount of work to create and destroy
+these processes.
+
+
+
+
+In the following example, a large amount of network activity occurs while
+cputimes is running,
+
+   # ./cputimes 1 6
+   2005 Apr 27 23:49:29,
+            THREADS        TIME (ns)
+             KERNEL         10596399
+            PROCESS         21793920
+               IDLE        974395713
+   2005 Apr 27 23:49:30,
+            THREADS        TIME (ns)
+             KERNEL        251465759
+               IDLE        357436576
+            PROCESS        508986422
+   2005 Apr 27 23:49:31,
+            THREADS        TIME (ns)
+               IDLE          9758227
+             KERNEL        367645318
+            PROCESS        385427847
+   2005 Apr 27 23:49:32,
+            THREADS        TIME (ns)
+               IDLE         28351679
+             KERNEL        436022725
+            PROCESS        451304688
+   2005 Apr 27 23:49:33,
+            THREADS        TIME (ns)
+             KERNEL        262586158
+            PROCESS        325238896
+               IDLE        358243503
+   2005 Apr 27 23:49:34,
+            THREADS        TIME (ns)
+             KERNEL         10075578
+            PROCESS        238170506
+               IDLE        647956998
+
+Initially the system is idle. A command is run to cause heavy network
+activity, which peaks during the fourth sample - during which the kernel
+is using around 40% of the CPU. The Solaris 10 command "intrstat" can
+help to analyse this activity further.
+
+
+
+
+Longer samples are possible. The following is a 60 second sample,
+
+   # ./cputimes 60 1
+   2005 Apr 27 23:53:02,
+            THREADS        TIME (ns)
+             KERNEL        689808449
+            PROCESS       8529562214
+               IDLE      50406951876
+   #
+
+
+
+
+cputimes has a "-a" option to print all processes. The following is a 
+single 1 second sample with -a,
+
+   # ./cputimes -a 1 1
+   2005 Apr 28 00:00:32,
+            THREADS        TIME (ns)
+         svc.startd            51042
+           nautilus           130645
+          in.routed           131823
+                fmd           152822
+               nscd           307042
+               dsdm           415799
+      mixer_applet2           551066
+      gnome-smproxy           587234
+       xscreensaver           672270
+            fsflush          1060196
+            java_vm          1552988
+        wnck-applet          2060870
+             dtrace          2398658
+           acroread          2614687
+        soffice.bin          2825117
+        mozilla-bin          5497488
+             KERNEL         13541120
+           metacity         28924204
+     gnome-terminal         74304348
+               Xorg        289631407
+               IDLE        465054209
+
+The times are in nanoseconds, and multiple processes with the same name
+have their times aggregated. The above output is at an amazing resolution - 
+svc.startd ran for 51 microseconds, and soffice.bin ran for 28 milliseconds.
+
+
+
+
+The following is a 10 second sample on an idle desktop,
+
+   # ./cputimes -a 10 1
+   2005 Apr 28 00:03:57,
+            THREADS        TIME (ns)
+              snmpd           127859
+                fmd           171897
+              inetd           177134
+        svc.configd           185006
+     mapping-daemon           197674
+        miniserv.pl           305603
+           gconfd-2           330511
+       xscreensaver           443207
+           sendmail           473434
+           nautilus           506799
+   gnome-vfs-daemon           549037
+        gnome-panel           770631
+               nscd           885353
+         svc.startd          1181286
+   gnome-netstatus-          4329671
+      mixer_applet2          4833519
+             dtrace          6244366
+          in.routed          6556075
+            fsflush          9553155
+        soffice.bin         13954327
+            java_vm         16285243
+           acroread         32126193
+     gnome-terminal         34891991
+               Xorg         35553412
+        mozilla-bin         67855629
+             KERNEL         94834997
+               IDLE       9540941846
+
+Wow, maybe not as idle as I thought!
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/cputypes_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/cputypes_example.txt
new file mode 100644
index 0000000..158a43f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/cputypes_example.txt
@@ -0,0 +1,40 @@
+The following are demonstrations of the cputypes.d script,
+
+
+This is running cputypes.d on a desktop,
+
+   # cputypes.d
+    CPU CHIP PSET LGRP  CLOCK  TYPE             FPU
+      0    0    0    0    867  i386             i387 compatible
+
+fairly boring.
+
+
+
+The following is a multi CPU x86 server,
+
+   # cputypes.d
+    CPU CHIP PSET LGRP  CLOCK  TYPE             FPU
+      0    0    0    0   2791  i386             i387 compatible
+      1    3    1    0   2791  i386             i387 compatible
+      2    0    0    0   2791  i386             i387 compatible
+      3    3    0    0   2791  i386             i387 compatible
+
+Much more interesting! We can see from the CHIP field that there is actually
+two CPUs, each with two cores. There is also two processor sets (0, 1).
+
+The CPUs were printed in CPU id order by mere chance.
+
+
+
+Here is a multi CPU SPARC server,
+
+   # cputypes.d
+    CPU CHIP PSET LGRP  CLOCK  TYPE             FPU
+      0    0    0    0    400  sparcv9          sparcv9
+      1    1    0    0    400  sparcv9          sparcv9
+      4    4    0    0    400  sparcv9          sparcv9
+      5    5    0    0    400  sparcv9          sparcv9
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/cpuwalk_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/cpuwalk_example.txt
new file mode 100644
index 0000000..34afa95
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/cpuwalk_example.txt
@@ -0,0 +1,85 @@
+The following is a demonstration of the cpuwalk.d script,
+
+
+cpuwalk.d is not that useful on a single CPU server,
+
+   # cpuwalk.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+   
+        PID: 18843    CMD: bash
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 30
+                  1 |                                         0
+   
+        PID: 8079     CMD: mozilla-bin
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+                  1 |                                         0
+
+The output above shows that PID 18843, "bash", was sampled on CPU 0 a total
+of 30 times (we sample at 1000 hz).
+
+
+
+The following is a demonstration of running cpuwalk.d with a 5 second
+duration. This is on a 4 CPU server running a multithreaded CPU bound
+application called "cputhread",
+
+   # cpuwalk.d 5
+   Sampling...
+   
+        PID: 3        CMD: fsflush
+   
+              value  ------------- Distribution ------------- count
+                  1 |                                         0
+                  2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 30
+                  3 |                                         0
+   
+        PID: 12186    CMD: cputhread
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@                               4900
+                  1 |@@@@@@@@@@                               4900
+                  2 |@@@@@@@@@@                               4860
+                  3 |@@@@@@@@@@                               4890
+                  4 |                                         0
+
+As we are sampling at 1000 hz, the application cputhread is indeed running
+concurrently across all available CPUs. We measured the applicaiton on
+CPU 0 a total of 4900 times, on CPU 1 a total of 4900 times, etc. As there
+are around 5000 samples per CPU available in this 5 second 1000 hz sample,
+the application is using almost all the CPU capacity in this server well.
+
+
+
+The following is a similar demonstration, this time running a multithreaded
+CPU bound application called "cpuserial" that has a poor use of locking
+such that the threads "serialise",
+
+
+   # cpuwalk.d 5
+   Sampling...
+   
+        PID: 12194    CMD: cpuserial
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@                                      470
+                  1 |@@@@@@                                   920
+                  2 |@@@@@@@@@@@@@@@@@@@@@@@@@                3840
+                  3 |@@@@@@                                   850
+                  4 |                                         0
+
+In the above, we can see that this CPU bound application is not making
+efficient use of the CPU resources available, only reaching 3840 samples
+on CPU 2 out of a potential 5000. This problem was caused by a poor use
+of locks.
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/crash_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/crash_example.txt
new file mode 100644
index 0000000..f0034d3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/crash_example.txt
@@ -0,0 +1,68 @@
+The following is an example of the crashed application script, crash.d
+This demonstration is for version 0.80 of crash.d, newer versions may 
+produce enhanced output.
+
+Here is the report generated as crash.d catches a crashing procmail process,
+
+# ./crash.d
+Waiting for crashing applications...
+
+-----------------------------------------------------
+CRASH DETECTED at 2005 May 30 19:41:34
+-----------------------------------------------------
+Type:    SIGSEGV
+Program: procmail
+Args:    procmail -m\0
+PID:     2877
+TID:     1
+LWPs:    1
+PPID:    1778
+UID:     100
+GID:     1
+TaskID:  76
+ProjID:  3
+PoolID:  0
+ZoneID:  0
+zone:    global
+CWD:     /usr/include/sys
+errno:   0
+
+User Stack Backtrace,
+              procmail`sendcomsat+0x24
+              procmail`Terminate+0x76
+              procmail`0x805a2b0
+              procmail`0x805a40f
+              libc.so.1`__sighndlr+0xf
+              libc.so.1`call_user_handler+0x22b
+              libc.so.1`sigacthandler+0xbb
+              0xffffffff
+              procmail`rread+0x1d
+              procmail`0x805bcb4
+              procmail`read2blk+0x6b
+              procmail`readdyn+0x1f
+              procmail`readmail+0x181
+              procmail`main+0x532
+              procmail`_start+0x5d
+
+Kernel Stack Backtrace,
+              genunix`sigaddqa+0x3f
+              genunix`trapsig+0xdb
+              unix`trap+0xc2b
+              unix`_cmntrap+0x83
+
+Ansestors,
+    2877 procmail -m\0
+      1778 bash\0
+        1777 xterm -bg black -fg grey70 -sl 500 -vb\0
+          1 /sbin/init\0
+            0 sched\0
+
+Times,
+    User:    0 ticks
+    Sys:     1 ticks
+    Elapsed: 3307 ms
+
+Sizes,
+    Heap:   16388 bytes
+    Stack:  8192 bytes
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/creatbyproc_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/creatbyproc_example.txt
new file mode 100644
index 0000000..295e07f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/creatbyproc_example.txt
@@ -0,0 +1,23 @@
+The following is an example of the creatbyproc.d script,
+
+
+Here we run creatbyproc.d for several seconds,
+
+   # ./creatbyproc.d
+   dtrace: script './creatbyproc.d' matched 2 probes
+   CPU     ID                    FUNCTION:NAME
+     0   5438                    creat64:entry touch /tmp/newfile
+     0   5438                    creat64:entry sh /tmp/mpLaaOik
+     0   5438                    creat64:entry sh /dev/null
+   ^C
+
+In another window, the following commands were run,
+
+	touch /tmp/newfile
+	man ls
+
+The file creation activity caused by these commands can be seen in the
+output by creatbyproc.d
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/cswstat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/cswstat_example.txt
new file mode 100644
index 0000000..d45347c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/cswstat_example.txt
@@ -0,0 +1,25 @@
+The following is an example of the cswstat.d script,
+
+   # cswstat.d 
+   TIME                       NUM      CSWTIME      AVGTIME
+   2005 May 17 01:57:21       276         2407            8
+   2005 May 17 01:57:22       283         2251            7
+   2005 May 17 01:57:23       259         2098            8
+   2005 May 17 01:57:24       268         2169            8
+   2005 May 17 01:57:25      1248        10864            8
+   2005 May 17 01:57:26      2421        21263            8
+   2005 May 17 01:57:27      2183        19804            9
+   2005 May 17 01:57:28      1980        18640            9
+   2005 May 17 01:57:29       794         7422            9
+   2005 May 17 01:57:30       275         2233            8
+   2005 May 17 01:57:31       288         2338            8
+   2005 May 17 01:57:32       545         4154            7
+   2005 May 17 01:57:33       264         2149            8
+   ^C
+
+In the above output, the average context switch time is 8 microseconds.
+During the sample there was a burst of activity, increasing the number
+of context switches per second from around 270 to over 2000. The time
+consumed by all of these context switches in total is printed, peaking
+at 21 ms.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/dappprof_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/dappprof_example.txt
new file mode 100644
index 0000000..a2c3935
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/dappprof_example.txt
@@ -0,0 +1,71 @@
+The following is a demonstration of the dappprof command,
+
+This is the usage for version 0.60,
+
+   # dappprof -h
+   USAGE: dappprof [-cehoTU] [-u lib] { -p PID | command }
+   
+             -p PID          # examine this PID
+             -a              # print all details
+             -c              # print syscall counts
+             -e              # print elapsed times (us)
+             -o              # print on cpu times
+             -T              # print totals
+             -u lib          # trace this library instead
+             -U              # trace all libraries + user funcs
+             -b bufsize      # dynamic variable buf size
+      eg,
+          dappprof df -h       # run and examine "df -h"
+          dappprof -p 1871     # examine PID 1871
+          dappprof -ap 1871    # print all data
+
+
+
+The following shows running dappprof with the "banner hello" command.
+Elapsed and on-cpu times are printed (-eo), as well as counts (-c) and 
+totals (-T),
+
+   # dappprof -eocT banner hello
+   
+    #    #  ######  #       #        ####
+    #    #  #       #       #       #    #
+    ######  #####   #       #       #    #
+    #    #  #       #       #       #    #
+    #    #  #       #       #       #    #
+    #    #  ######  ######  ######   ####
+   
+   
+   CALL                                                         COUNT
+   __fsr                                                            1
+   main                                                             1
+   banprt                                                           1
+   banner                                                           1
+   banset                                                           1
+   convert                                                          5
+   banfil                                                           5
+   TOTAL:                                                          15
+   
+   CALL                                                       ELAPSED
+   banset                                                       37363
+   banfil                                                      147407
+   convert                                                     149606
+   banprt                                                      423507
+   banner                                                      891088
+   __fsr                                                      1694349
+   TOTAL:                                                     3343320
+   
+   CALL                                                           CPU
+   banset                                                        7532
+   convert                                                       8805
+   banfil                                                       11092
+   __fsr                                                        15708
+   banner                                                       48696
+   banprt                                                      388853
+   TOTAL:                                                      480686
+
+The above output has analysed user functions (the default). It makes it
+easy to identify which function is being called the most (COUNT), which
+is taking the most time (ELAPSED), and which is consuming the most CPU (CPU).
+These times are totals for all the functions called.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/dapptrace_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/dapptrace_example.txt
new file mode 100644
index 0000000..f19606c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/dapptrace_example.txt
@@ -0,0 +1,215 @@
+The following is a demonstration of the dapptrace command,
+
+This is the usage for version 0.60,
+
+   # dapptrace -h
+   USAGE: dapptrace [-acdeholFLU] [-u lib] { -p PID | command }
+   
+             -p PID          # examine this PID
+             -a              # print all details
+             -c              # print syscall counts
+             -d              # print relative times (us)
+             -e              # print elapsed times (us)
+             -F              # print flow indentation
+             -l              # print pid/lwpid
+             -o              # print CPU on cpu times
+             -u lib          # trace this library instead
+             -U              # trace all libraries + user funcs
+             -b bufsize      # dynamic variable buf size
+      eg,
+          dapptrace df -h       # run and examine "df -h"
+          dapptrace -p 1871     # examine PID 1871
+          dapptrace -Fp 1871    # print using flow indents
+          dapptrace -eop 1871   # print elapsed and CPU times
+
+
+
+The following is an example of the default output. We run dapptrace with
+the "banner hello" command,
+
+   # dapptrace banner hi
+
+    #    #     #
+    #    #     #
+    ######     #
+    #    #     #
+    #    #     #
+    #    #     #
+   
+   CALL(args) 		 = return
+   -> __fsr(0x2, 0x8047D7C, 0x8047D88)		
+   <- __fsr = 122
+   -> main(0x2, 0x8047D7C, 0x8047D88)		
+   -> banner(0x8047E3B, 0x80614C2, 0x8047D38)		
+   -> banset(0x20, 0x80614C2, 0x8047DCC)		
+   <- banset = 36
+   -> convert(0x68, 0x8047DCC, 0x2)		
+   <- convert = 319
+   -> banfil(0x8061412, 0x80614C2, 0x8047DCC)		
+   <- banfil = 57
+   -> convert(0x69, 0x8047DCC, 0x2)		
+   <- convert = 319
+   -> banfil(0x8061419, 0x80614CA, 0x8047DCC)		
+   <- banfil = 57
+   <- banner = 118
+   -> banprt(0x80614C2, 0x8047D38, 0xD27FB824)		
+   <- banprt = 74
+
+The default output shows user function calls. An entry is prefixed
+with a "->", and the return has a "<-".
+
+
+
+Here we run dapptrace with the -F for flow indent option,
+
+   # dapptrace -F banner hi
+   
+    #    #     #
+    #    #     #
+    ######     #
+    #    #     #
+    #    #     #
+    #    #     #
+   
+   CALL(args) 		 = return
+     -> __fsr(0x2, 0x8047D7C, 0x8047D88)		
+     <- __fsr = 122
+     -> main(0x2, 0x8047D7C, 0x8047D88)		
+       -> banner(0x8047E3B, 0x80614C2, 0x8047D38)		
+         -> banset(0x20, 0x80614C2, 0x8047DCC)		
+         <- banset = 36
+         -> convert(0x68, 0x8047DCC, 0x2)		
+         <- convert = 319
+         -> banfil(0x8061412, 0x80614C2, 0x8047DCC)		
+         <- banfil = 57
+         -> convert(0x69, 0x8047DCC, 0x2)		
+         <- convert = 319
+         -> banfil(0x8061419, 0x80614CA, 0x8047DCC)		
+         <- banfil = 57
+       <- banner = 118
+       -> banprt(0x80614C2, 0x8047D38, 0xD27FB824)		
+       <- banprt = 74
+
+The above output illustrates the flow of the program, which functions
+call which other functions.
+
+
+
+Now the same command is run with -d to display relative timestamps,
+
+   # dapptrace -dF banner hi
+   
+    #    #     #
+    #    #     #
+    ######     #
+    #    #     #
+    #    #     #
+    #    #     #
+   
+   RELATIVE CALL(args) 		 = return
+       2512   -> __fsr(0x2, 0x8047D7C, 0x8047D88)		
+       2516   <- __fsr = 122
+       2518   -> main(0x2, 0x8047D7C, 0x8047D88)		
+       2863     -> banner(0x8047E3B, 0x80614C2, 0x8047D38)		
+       2865       -> banset(0x20, 0x80614C2, 0x8047DCC)		
+       2872       <- banset = 36
+       2874       -> convert(0x68, 0x8047DCC, 0x2)		
+       2877       <- convert = 319
+       2879       -> banfil(0x8061412, 0x80614C2, 0x8047DCC)		
+       2882       <- banfil = 57
+       2883       -> convert(0x69, 0x8047DCC, 0x2)		
+       2885       <- convert = 319
+       2886       -> banfil(0x8061419, 0x80614CA, 0x8047DCC)		
+       2888       <- banfil = 57
+       2890     <- banner = 118
+       2892     -> banprt(0x80614C2, 0x8047D38, 0xD27FB824)		
+       3214     <- banprt = 74
+
+The relative times are in microseconds since the program's invocation. Great!
+
+
+
+Even better is if we use the -eo options, to print elapsed times and on-cpu
+times,
+
+   # dapptrace -eoF banner hi
+   
+    #    #     #
+    #    #     #
+    ######     #
+    #    #     #
+    #    #     #
+    #    #     #
+   
+    ELAPSD    CPU CALL(args) 		 = return
+         .      .   -> __fsr(0x2, 0x8047D7C, 0x8047D88)		
+        41      4   <- __fsr = 122
+         .      .   -> main(0x2, 0x8047D7C, 0x8047D88)		
+         .      .     -> banner(0x8047E3B, 0x80614C2, 0x8047D38)		
+         .      .       -> banset(0x20, 0x80614C2, 0x8047DCC)		
+        29      6       <- banset = 36
+         .      .       -> convert(0x68, 0x8047DCC, 0x2)		
+        26      3       <- convert = 319
+         .      .       -> banfil(0x8061412, 0x80614C2, 0x8047DCC)		
+        25      2       <- banfil = 57
+         .      .       -> convert(0x69, 0x8047DCC, 0x2)		
+        23      1       <- convert = 319
+         .      .       -> banfil(0x8061419, 0x80614CA, 0x8047DCC)		
+        23      1       <- banfil = 57
+       309     28     <- banner = 118
+         .      .     -> banprt(0x80614C2, 0x8047D38, 0xD27FB824)		
+       349    322     <- banprt = 74
+
+Now it is easy to see which functions take the longest (elapsed), and 
+which consume the most CPU cycles.
+
+
+
+The following demonstrates the -U option, to trace all libraries,
+
+   # dapptrace -U banner hi
+   
+    #    #     #
+    #    #     #
+    ######     #
+    #    #     #
+    #    #     #
+    #    #     #
+   
+   CALL(args) 		 = return
+   -> ld.so.1:_rt_boot(0x8047E34, 0x8047E3B, 0x0)		
+   -> ld.so.1:_setup(0x8047D38, 0x20AE4, 0x3)		
+   -> ld.so.1:setup(0x8047D88, 0x8047DCC, 0x0)		
+   -> ld.so.1:fmap_setup(0x0, 0xD27FB2E4, 0xD27FB824)		
+   <- ld.so.1:fmap_setup = 125
+   -> ld.so.1:addfree(0xD27FD3C0, 0xC40, 0x0)		
+   <- ld.so.1:addfree = 65
+   -> ld.so.1:security(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF)		
+   <- ld.so.1:security = 142
+   -> ld.so.1:readenv_user(0x8047D88, 0xD27FB204, 0xD27FB220)		
+   -> ld.so.1:ld_str_env(0x8047E3E, 0xD27FB204, 0xD27FB220)		
+   <- ld.so.1:ld_str_env = 389
+   -> ld.so.1:ld_str_env(0x8047E45, 0xD27FB204, 0xD27FB220)		
+   <- ld.so.1:ld_str_env = 389
+   -> ld.so.1:ld_str_env(0x8047E49, 0xD27FB204, 0xD27FB220)		
+   <- ld.so.1:ld_str_env = 389
+   -> ld.so.1:ld_str_env(0x8047E50, 0xD27FB204, 0xD27FB220)		
+   -> ld.so.1:strncmp(0x8047E53, 0xD27F7BEB, 0x4)		
+   <- ld.so.1:strncmp = 113
+   -> ld.so.1:rd_event(0xD27FB1F8, 0x3, 0x0)		
+   [...4486 lines deleted...]
+   -> ld.so.1:_lwp_mutex_unlock(0xD27FD380, 0xD27FB824, 0x8047C04)		
+   <- ld.so.1:_lwp_mutex_unlock = 47
+   <- ld.so.1:rt_mutex_unlock = 34
+   -> ld.so.1:rt_bind_clear(0x1, 0xD279ECC0, 0xD27FDB2C)		
+   <- ld.so.1:rt_bind_clear = 34
+   <- ld.so.1:leave = 210
+   <- ld.so.1:elf_bndr = 803
+   <- ld.so.1:elf_rtbndr = 35
+
+The output was huge, around 4500 lines long. Function names are prefixed 
+with their library name, eg "ld.so.1".
+
+This full output should be used with caution, as it enables so many probes
+it could well be a burden on the system.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/dexplorer_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/dexplorer_example.txt
new file mode 100644
index 0000000..cba6171
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/dexplorer_example.txt
@@ -0,0 +1,95 @@
+The following is a demonstration of the dexplorer program.
+
+
+Here we run dexplorer with no arguments. By default it will sample various
+system activities using DTrace at 5 seconds per sample. It creates an
+output tar.gz file containing all the DTrace output,
+
+   # dexplorer
+   Output dir will be the current dir (/export/home/root/DTrace/Dexplorer).
+   Hit enter for yes, or type path:
+   Starting dexplorer ver 0.70.
+   Sample interval is 5 seconds. Total run is > 100 seconds.
+     0% Interrupts by CPU...
+     5% Interrupt counts...
+    10% Dispatcher queue length by CPU...
+    15% Sdt counts...
+    20% Pages paged in by process name...
+    25% Files opened count...
+    30% Disk I/O size distribution by process name...
+    35% Minor faults by process name...
+    40% Vminfo data by process name...
+    45% Mib data by mib statistic...
+    50% TCP write bytes by process...
+    55% Sample process @ 1000 Hz...
+    60% Syscall count by process name...
+    65% Syscall count by syscall...
+    70% Read bytes by process name...
+    75% Write bytes by process name...
+    80% Sysinfo counts by process name...
+    85% New process counts with arguments...
+    90% Signal counts...
+    95% Syscall error counts...
+   100% Done.
+   File is de_jupiter_200506271803.tar.gz
+
+As each sample is taken, a line of output is printed above. The above example
+is for version 0.70, newer versions of dexplorer are likely to print more
+lines as they take more samples.
+
+The final line states which file all the output is now in.
+
+
+
+
+The following displays the contents of a dexplorer file,
+
+   # gunzip de_jupiter_200506271803.tar.gz
+   # tar xf de_jupiter_200506271803.tar
+   de_jupiter_200506271803
+   de_jupiter_200506271803/Cpu
+   de_jupiter_200506271803/Cpu/interrupt_by_cpu
+   de_jupiter_200506271803/Cpu/interrupt_time
+   de_jupiter_200506271803/Cpu/dispqlen_by_cpu
+   de_jupiter_200506271803/Cpu/sdt_count
+   de_jupiter_200506271803/Disk
+   de_jupiter_200506271803/Disk/pgpgin_by_processname
+   de_jupiter_200506271803/Disk/fileopen_count
+   de_jupiter_200506271803/Disk/sizedist_by_processname
+   de_jupiter_200506271803/Mem
+   de_jupiter_200506271803/Mem/minf_by_processname
+   de_jupiter_200506271803/Mem/vminfo_by_processname
+   de_jupiter_200506271803/Net
+   de_jupiter_200506271803/Net/mib_data
+   de_jupiter_200506271803/Net/tcpw_by_process
+   de_jupiter_200506271803/Proc
+   de_jupiter_200506271803/Proc/sample_process
+   de_jupiter_200506271803/Proc/syscall_by_processname
+   de_jupiter_200506271803/Proc/syscall_count
+   de_jupiter_200506271803/Proc/readb_by_processname
+   de_jupiter_200506271803/Proc/writeb_by_processname
+   de_jupiter_200506271803/Proc/sysinfo_by_processname
+   de_jupiter_200506271803/Proc/newprocess_count
+   de_jupiter_200506271803/Proc/signal_count
+   de_jupiter_200506271803/Proc/syscall_errors
+   de_jupiter_200506271803/Info
+   de_jupiter_200506271803/Info/uname-a
+   de_jupiter_200506271803/Info/psrinfo-v
+   de_jupiter_200506271803/Info/prtconf
+   de_jupiter_200506271803/Info/df-k
+   de_jupiter_200506271803/Info/ifconfig-a
+   de_jupiter_200506271803/Info/ps-o
+   de_jupiter_200506271803/Info/uptime
+   de_jupiter_200506271803/log
+
+
+
+The following demonstrates running dexplorer in full quiet mode,
+
+   # dexplorer -qy -d /var/tmp
+   #
+
+No text is written to the screen (-qy). The output file will have been 
+put in /var/tmp (-d).
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/diskhits_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/diskhits_example.txt
new file mode 100644
index 0000000..6fe3a85
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/diskhits_example.txt
@@ -0,0 +1,107 @@
+The following is a demonstration of the diskhits command.
+
+
+Here we run diskhits on a large file, /extra1/contents with is 46 Mb, and
+currently hasn't been accessed (so isn't in any cache).
+
+While diskhits is running, the file is grep'd in another window. This causes
+the entire file to be read,
+
+   # ./diskhits /extra1/contents
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   Location (KB),
+   
+              value  ------------- Distribution ------------- count    
+                < 0 |                                         0        
+                  0 |@@                                       47       
+               2303 |@@                                       41       
+               4606 |@@                                       41       
+               6909 |@@                                       42       
+               9212 |@@                                       41       
+              11515 |@@                                       41       
+              13818 |@@                                       42       
+              16121 |@@                                       43       
+              18424 |@@                                       42       
+              20727 |@@                                       41       
+              23030 |@@                                       41       
+              25333 |@@                                       41       
+              27636 |@@                                       41       
+              29939 |@@                                       42       
+              32242 |@@                                       44       
+              34545 |@@                                       41       
+              36848 |@@                                       41       
+              39151 |@@                                       41       
+              41454 |@@                                       41       
+              43757 |@@                                       40       
+           >= 46060 |                                         0        
+   
+   Size (KB),
+   
+              value  ------------- Distribution ------------- count    
+               4 |                                         0        
+                  8 |                                         6        
+                 16 |                                         10       
+                 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  818      
+                 64 |                                         0        
+   
+   Total RW: 46064 KB
+
+Ok, so the file was read evently with each access around 32 to 63 Kb in size,
+and a total of 46 Mb read. This all makes sense, as it is reading the file
+for the first time.
+
+
+
+Now the same file is grep'd with diskhits running, this time we can see what
+effect caching the file has made,
+
+   # ./diskhits /extra1/contents
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   Location (KB),
+   
+              value  ------------- Distribution ------------- count    
+               2303 |                                         0        
+               4606 |                                         5        
+               6909 |@                                        67       
+               9212 |@@@@                                     170      
+              11515 |@@@@@                                    216      
+              13818 |@@@@@                                    224      
+              16121 |@@@@@@                                   287      
+              18424 |@@@@@                                    227      
+              20727 |@@@                                      144      
+              23030 |@@                                       75       
+              25333 |@                                        59       
+              27636 |@                                        42       
+              29939 |@                                        41       
+              32242 |@                                        44       
+              34545 |@                                        41       
+              36848 |@                                        41       
+              39151 |@                                        41       
+              41454 |@                                        41       
+              43757 |@                                        39       
+           >= 46060 |                                         0        
+   
+   Size (KB),
+   
+              value  ------------- Distribution ------------- count    
+                  2 |                                         0        
+                  4 |@@@@@@@@@@@@@@@@@@@@@@@@@                1137     
+                  8 |@@@@@                                    211      
+                 16 |@@                                       111      
+                 32 |@@@@@@@@                                 345      
+                 64 |                                         0        
+   
+   Total RW: 29392 KB
+
+The difference is dramatic. This time only 29 Mb is read, leaving around 
+17 Mb that was read from the cache. The way the file is read differs - 
+in the later half of the file it looks the same, but in the first half there
+are many more events; oddly enough, this is because the early part of the 
+file is cached more, the extra events are likely to be much smaller in size -
+as indicated in the difference in the size distribution.
+
+It appears that everything less that 4606 Kb has remained in the cache, with 
+zero hits for that range.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/dispqlen_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/dispqlen_example.txt
new file mode 100644
index 0000000..f3542c0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/dispqlen_example.txt
@@ -0,0 +1,62 @@
+This is a demonstration of the dispqlen.d script,
+
+
+Here we run it on a single CPU desktop,
+
+   # dispqlen.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+    CPU 0
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    1790
+                  1 |@@@                                      160
+                  2 |                                         10
+                  3 |                                         0
+
+The output shows the length of the dispatcher queue is mostly 0. This is
+evidence that the CPU is not very saturated. It does not indicate that the
+CPU is idle - as we are measuring the length of the queue, not what is
+on the CPU.
+
+
+
+Here it is run on a multi CPU server,
+
+   # dispqlen.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+    CPU 1
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          1573
+                  1 |@@@@@@@@@                                436
+                  2 |                                         4
+                  3 |                                         0
+   
+    CPU 4
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@                   1100
+                  1 |@@@@@@@@@@@@@@@@@@                       912
+                  2 |                                         1
+                  3 |                                         0
+   
+    CPU 0
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@                        846
+                  1 |@@@@@@@@@@@@@@@@@@@@@@@                  1167
+                  2 |                                         0
+   
+    CPU 5
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@                                 397
+                  1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          1537
+                  2 |@@                                       79
+                  3 |                                         0
+
+The above output shows that threads are queueing up on CPU 5 much more than
+CPU 0. 
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/dnlcps_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/dnlcps_example.txt
new file mode 100644
index 0000000..eed35b4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/dnlcps_example.txt
@@ -0,0 +1,47 @@
+The following is a demonstration of the dnlcps.d script.
+
+
+Here we run dnlcps.d for o few seconds, then hit Ctrl-C,
+
+   # dnlcps.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    CMD: bash             PID: 12508
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@                         2
+               >= 1 |@@@@@@@@@@@@@@@@@@@@@@@@                 3
+   
+    CMD: nscd             PID: 109
+   
+              value  ------------- Distribution ------------- count
+                  0 |                                         0
+               >= 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+   
+    CMD: in.routed        PID: 143
+   
+              value  ------------- Distribution ------------- count
+                  0 |                                         0
+               >= 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 12
+   
+    CMD: ls               PID: 12508
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@                                      2
+               >= 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    22
+   
+    CMD: find             PID: 12507
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@                           5768
+               >= 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@               11263
+
+A "find" command was running at the time, which had 11,263 hits on the DNLC
+and 5768 misses. An "ls" command scored 22 hits.
+
+The above distribution output can help us identify if procesess
+are both using the DNLC a lot, and what hit rate they are scoring.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/dnlcsnoop_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/dnlcsnoop_example.txt
new file mode 100644
index 0000000..45915f1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/dnlcsnoop_example.txt
@@ -0,0 +1,88 @@
+The following is a demonstration of the dnlcsnoop.d script.
+
+
+Here we run dnlcsnoop.d, while in another window a "find /etc/default"
+command is executed,
+
+   # dnlcsnoop.d
+      PID CMD         TIME HIT PATH
+     9185 bash           9   Y /etc
+     9185 bash           3   Y /etc
+    12293 bash           9   Y /usr
+    12293 bash           3   Y /usr/bin
+    12293 bash           4   Y /usr/bin/find
+    12293 bash           7   Y /lib
+    12293 bash           3   Y /lib/ld.so.1
+    12293 find           6   Y /usr
+    12293 find           3   Y /usr/bin
+    12293 find           3   Y /usr/bin/find
+    12293 find           3   Y /usr
+    12293 find           3   Y /usr/lib
+    12293 find           3   Y /usr/lib/ld.so.1
+    12293 find           3   Y /usr/lib/..
+    12293 find           3   Y /usr/..
+    12293 find           3   Y /lib
+    12293 find           3   Y /lib/ld.so.1
+    12293 find           3   Y /usr
+    12293 find           3   Y /usr/bin
+    12293 find           2   Y /usr/bin/find
+    12293 find           4   Y /var
+    12293 find           3   Y /var/ld
+    12293 find           3   Y /var/ld/ld.config
+    12293 find           3   Y /lib
+    12293 find           3   Y /lib/libc.so.1
+    12293 find           3   Y /lib
+    12293 find           3   Y /lib/libc.so.1
+    12293 find           3   Y /lib
+    12293 find           3   Y /lib/libc.so.1
+    12293 find           8   Y /export
+    12293 find           4   Y /export/home
+    12293 find           3   Y /export/home/root
+    12293 find           4   Y /export/home/root/CacheKit-0.93
+    12293 find           3   Y /export
+    12293 find           3   Y /export/home
+    12293 find           3   Y /export/home/root
+    12293 find           3   Y /export/home/root/CacheKit-0.93
+    12293 find           3   Y /etc
+    12293 find           3   Y /etc/default
+    12293 find           3   Y /etc
+    12293 find           3   Y /etc/default
+    12293 find           5   N /etc/default/cron
+    12293 find           3   N /etc/default/devfsadm
+    12293 find           4   N /etc/default/fs
+    12293 find           4   N /etc/default/kbd
+    12293 find           3   N /etc/default/keyserv
+    12293 find           4   N /etc/default/nss
+    12293 find           3   N /etc/default/syslogd
+    12293 find           3   N /etc/default/tar
+    12293 find           4   N /etc/default/utmpd
+    12293 find           5   N /etc/default/init
+    12293 find           4   Y /etc/default/login
+    12293 find           4   Y /etc/default/su
+    12293 find           3   N /etc/default/passwd
+    12293 find           3   N /etc/default/dhcpagent
+    12293 find           4   N /etc/default/inetinit
+    12293 find           3   N /etc/default/ipsec
+    12293 find           3   N /etc/default/mpathd
+    12293 find           3   N /etc/default/telnetd
+    12293 find           3   Y /etc/default/nfs
+    12293 find           3   N /etc/default/autofs
+    12293 find           9   Y /etc/default/ftp
+    12293 find           5   N /etc/default/rpc.nisd
+    12293 find           5   N /etc/default/nfslogd
+    12293 find           4   N /etc/default/lu
+    12293 find           6   N /etc/default/power
+    12293 find           5   N /etc/default/sys-suspend
+    12293 find           6   N /etc/default/metassist.xml
+    12293 find           5   N /etc/default/yppasswdd
+    12293 find           4   N /etc/default/webconsole
+    12293 find           5   Y /export
+    12293 find           4   Y /export/home
+    12293 find           4   Y /export/home/root
+    12293 find           4   Y /export/home/root/CacheKit-0.93
+
+The DNLC is the Directory Name Lookup Cache. Here we can see name lookups,
+and whether the cache returned a hit. "/export/home/root/CacheKit-0.93" was
+looked up a few times - this was the current directory that the find
+command was executed from.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/dnlcstat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/dnlcstat_example.txt
new file mode 100644
index 0000000..a6ce1d6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/dnlcstat_example.txt
@@ -0,0 +1,40 @@
+The following is a demonstration of the dnlcstat command.
+
+
+Here we run dnlcstat with no options. It prints a line every second,
+
+   # dnlcstat
+   dnlc  %hit      hit     miss
+            0        0        0
+            0        0        0
+           93       95        7
+           89     1920      231
+           89     2130      243
+           91     2358      232
+           92     1476      124
+           92     1953      159
+           94     2416      134
+           94     1962      114
+           95     2113      101
+           97     1969       54
+           98     1489       26
+           41      564      786
+           40      622      913
+           35      520      952
+           27      937     2503
+           22     1696     5806
+           22      955     3281
+           21     1377     5059
+           31     2043     4516
+           22     1423     4968
+           13      550     3438
+            2       95     3810
+            0       58     6410
+            4      223     4433
+            4      198     4491
+            7      339     4383
+
+In another window, a "find /" was run. We can see the DNLC activity above,
+initially there are high hit rates in the DNLC - over 90%. Eventually
+the find command exhausts the DNLC, and the hit rate drops to below 10%. 
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/dtruss_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/dtruss_example.txt
new file mode 100644
index 0000000..107fc19
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/dtruss_example.txt
@@ -0,0 +1,120 @@
+The following demonstrates the dtruss command - a DTrace version of truss.
+This version is designed to be less intrusive and safer than running truss.
+
+dtruss has many options. Here is the help for version 0.70,
+ 
+   USAGE: dtruss [-acdefholL] [-t syscall] { -p PID | -n name | command }
+
+             -p PID          # examine this PID
+             -n name         # examine this process name
+             -t syscall      # examine this syscall only
+             -a              # print all details
+             -c              # print syscall counts
+             -d              # print relative times (us)
+             -e              # print elapsed times (us)
+             -f              # follow children
+             -l              # force printing pid/lwpid
+             -o              # print on cpu times
+             -L              # don't print pid/lwpid
+             -b bufsize      # dynamic variable buf size
+      eg,
+          dtruss df -h       # run and examine "df -h"
+          dtruss -p 1871     # examine PID 1871
+          dtruss -n tar      # examine all processes called "tar"
+          dtruss -f test.sh  # run test.sh and follow children
+
+
+
+For example, here we dtruss any process with the name "ksh" - the Korn shell,
+ 
+ # dtruss -n ksh
+ PID/LWP   SYSCALL(args)                  = return
+ 27547/1:  llseek(0x3F, 0xE4E, 0x0)               = 3662 0
+ 27547/1:  read(0x3F, "\0", 0x400)                = 0 0
+ 27547/1:  llseek(0x3F, 0x0, 0x0)                 = 3662 0
+ 27547/1:  write(0x3F, "ls -l\n\0", 0x8)          = 8 0
+ 27547/1:  fdsync(0x3F, 0x10, 0xFEC1D444)                 = 0 0
+ 27547/1:  lwp_sigmask(0x3, 0x20000, 0x0)                 = 0xFFBFFEFF 0
+ 27547/1:  stat64("/usr/bin/ls\0", 0x8047A00, 0xFEC1D444)                 = 0 0
+ 27547/1:  lwp_sigmask(0x3, 0x0, 0x0)             = 0xFFBFFEFF 0
+ [...]
+
+The output for each system call does not yet evaluate as much as truss does.
+
+
+
+In the following example, syscall elapsed and overhead times are measured.
+Elapsed times represent the time from syscall start to finish; overhead
+times measure the time spent on the CPU,
+
+ # dtruss -eon bash
+ PID/LWP    ELAPSD    CPU SYSCALL(args)           = return
+  3911/1:       41     26 write(0x2, "l\0", 0x1)          = 1 0
+  3911/1:  1001579     43 read(0x0, "s\0", 0x1)           = 1 0
+  3911/1:       38     26 write(0x2, "s\0", 0x1)          = 1 0
+  3911/1:  1019129     43 read(0x0, " \001\0", 0x1)               = 1 0
+  3911/1:       38     26 write(0x2, " \0", 0x1)          = 1 0
+  3911/1:   998533     43 read(0x0, "-\0", 0x1)           = 1 0
+  3911/1:       38     26 write(0x2, "-\001\0", 0x1)              = 1 0
+  3911/1:  1094323     42 read(0x0, "l\0", 0x1)           = 1 0
+  3911/1:       39     27 write(0x2, "l\001\0", 0x1)              = 1 0
+  3911/1:  1210496     44 read(0x0, "\r\0", 0x1)          = 1 0
+  3911/1:       40     28 write(0x2, "\n\001\0", 0x1)             = 1 0
+  3911/1:        9      1 lwp_sigmask(0x3, 0x2, 0x0)              = 0xFFBFFEFF 0
+  3911/1:       70     63 ioctl(0x0, 0x540F, 0x80F6D00)           = 0 0
+
+A bash command was in another window, where the "ls -l" command was being
+typed. The keystrokes can be seen above, along with the long elapsed times
+(keystroke delays), and short overhead times (as the bash process blocks
+on the read and leaves the CPU). 
+
+
+
+Now dtruss is put to the test. Here we truss a test program that runs several
+hundred smaller programs, which in turn generate thousands of system calls.
+
+First, as a "control" we run the program without a truss or dtruss running,
+
+ # time ./test
+ real    0m38.508s
+ user    0m5.299s
+ sys     0m25.668s
+
+Now we try truss,
+
+ # time truss ./test 2> /dev/null
+ real    0m41.281s
+ user    0m0.558s
+ sys     0m1.351s
+
+Now we try dtruss,
+
+ # time dtruss ./test 2> /dev/null
+ real    0m46.226s
+ user    0m6.771s
+ sys     0m31.703s
+
+In the above test, truss slowed the program from 38 seconds to 41. dtruss
+slowed the program from 38 seconds to 46, slightly slower that truss...
+
+Now we try follow mode "-f". The test program does run several hundred
+smaller programs, so now there are plenty more system calls to track,
+
+ # time truss -f ./test 2> /dev/null
+ real    2m28.317s
+ user    0m0.893s
+ sys     0m3.527s
+
+Now we try dtruss,
+
+ # time dtruss -f ./test 2> /dev/null
+ real    0m56.179s
+ user    0m10.040s
+ sys     0m38.185s
+
+Wow, the difference is huge! truss slows the program from 38 to 148 seconds; 
+but dtruss has only slowed the program from 38 to 56 seconds.
+
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/dvmstat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/dvmstat_example.txt
new file mode 100644
index 0000000..1fb7fbb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/dvmstat_example.txt
@@ -0,0 +1,91 @@
+The following is a demonstration of the dvmstat program,
+
+
+Here we run dvmstat to monitor all processes called "find". In another 
+window, a "find /" command is run,
+
+   # dvmstat -n find
+       re   maj    mf   fr  epi  epo  api  apo  fpi  fpo     sy
+        0     0     0    0    0    0    0    0    0    0      0
+        0     0     0    0    0    0    0    0    0    0      0
+     6336     0   372    0    0    0    0    0    0    0  22255
+     1624     0     0    0    0    0    0    0    0    0   5497
+     2292     0     0    0    0    0    0    0    0    0   7715
+    13064     0     0    0    0    0    0    0    0    0  43998
+     7972   168     0    0    0    0    0    0  168    0  38361
+      468   636     0    0    0    0    0    0  636    0  13774
+      376   588     0    0    0    0    0    0  588    0  10723
+       80   636     0    0    0    0    0    0  656    0  11078
+       48   772     0    0    0    0    0    0  812    0   9841
+       16  1028     0    0    0    0    0    0 1056    0  10752
+        0  1712     0    0    0    0    0    0 1740    0  12176
+        4  1224     0    0    0    0    0    0 1236    0   9024
+
+The output above is spectacular! When the find command is first run, 
+it begins be reading data from the file cache, as indicated by the "re"
+reclaims, and a lack of "fpi" filesystem page ins.
+
+Eventually the find command travels to places which are not cached, we can
+see the "re" value drops, and both the "maj" major faults and "fpi" values
+increase. This transition from cache hits to file system activity is 
+very clear from the above output.
+
+
+
+Here we run a dvmstat to examine the PID 3778,
+
+   # dvmstat -p 3778
+       re   maj    mf   fr  epi  epo  api  apo  fpi  fpo     sy
+        0     0     0    0    0    0    0    0    0    0      0
+        0     0     0    0    0    0    0    0    0    0      0
+       24    28     0    0    0    0    0    0   28    0    109
+        4   148    16    0    0    0    0    0  148    0   1883
+       16   412   384    0    0    0    0    0  412    0  21019
+        0     0     0    0    0    0    0    0    0    0      3
+        0     0     0    0    0    0    0    0    0    0    221
+        0     0     0    0    0    0    0    0    0    0      0
+        0     0     0    0    0    0    0    0    0    0     84
+        0     0     0    0    0    0    0    0    0    0      0
+
+Here we can see the statistics for that process only.
+
+
+
+The following runs the date command through dvmstat,
+
+   # dvmstat date
+   Sun Jun 12 17:44:24 EST 2005
+       re   maj    mf   fr  epi  epo  api  apo  fpi  fpo     sy
+       16     0   208    0    0    0    0    0    0    0     38
+
+The values above are for the date command only.
+
+
+
+Now we run dvmstat on a tar command. Here we tar around 50Mb of files,
+so the command takes around 20 seconds to complete,
+
+   # dvmstat tar cf backup.tar DTrace
+       re   maj    mf   fr  epi  epo  api  apo  fpi  fpo     sy
+       20   256   304    0    8    0    0    0  352    0    621
+     4540    56   896    0    0    0    0    0 4636    0   1005
+     4432    12   644    0    0    0    0    0 4384    0    906
+      680   180   136    0    8    0    0    0 1056    0    502
+     2328    60   468    0    0    0    0    0 2296    0    592
+     1300   380   272    0    0    0    0    0 1704    0   1095
+     2816    72   560    0    0    0    0    0 2940    0    709
+     4084    40   416    0    0    0    0    0 4220    0    894
+     2764     4   276    0    0    0    0    0 2700    0    566
+     1824    96   328    0    0    0    0    0 2072    0    556
+     3408    80   392    0   20    0    0    0 3496    0    857
+     2804    92   552    0    4    0    0    0 2924    0    741
+     1344    16   272    0    0    0    0    0 1376    0    289
+     3284    52   520    0   12    0    0    0 3260    0    743
+     4832   200   812    0    0    0    0    0 5292    0   1276
+    11052    56  2200    0    0    0    0    0 8676    0   2326
+     5256   328  1020    0    8    0    0    0 4404    0   1725
+       re   maj    mf   fr  epi  epo  api  apo  fpi  fpo     sy
+      404   340    72    0   64    0    0    0  536    0   1135
+
+Great! Activity from the tar command such as "fpi"s can be clearly seen.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/errinfo_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/errinfo_example.txt
new file mode 100644
index 0000000..1dcb28d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/errinfo_example.txt
@@ -0,0 +1,90 @@
+This is an example of the errinfo program, which prints details on syscall
+failures.
+
+By default it "snoops" syscall failures and prints their details,
+
+   # ./errinfo
+               EXEC          SYSCALL  ERR  DESC
+        wnck-applet             read   11  Resource temporarily unavailable
+               Xorg             read   11  Resource temporarily unavailable
+           nautilus             read   11  Resource temporarily unavailable
+               Xorg             read   11  Resource temporarily unavailable
+               dsdm             read   11  Resource temporarily unavailable
+               Xorg             read   11  Resource temporarily unavailable
+               Xorg          pollsys    4  interrupted system call
+        mozilla-bin         lwp_park   62  timer expired
+   gnome-netstatus-            ioctl   12  Not enough core
+        mozilla-bin         lwp_park   62  timer expired
+               Xorg             read   11  Resource temporarily unavailable
+        mozilla-bin         lwp_park   62  timer expired
+   [...]
+
+which is useful to see these events live, but can scroll off the screen
+somewhat rapidly.. so,
+
+
+
+The "-c" option will count the number of errors. Hit Ctrl-C to stop the 
+sample. For example,
+
+# ./errinfo -c
+Tracing... Hit Ctrl-C to end.
+^C
+            EXEC          SYSCALL  ERR  COUNT  DESC
+            nscd            fcntl   22      1  Invalid argument
+    xscreensaver             read   11      1  Resource temporarily unavailable
+           inetd         lwp_park   62      1  timer expired
+      svc.startd         lwp_park   62      1  timer expired
+     svc.configd         lwp_park   62      1  timer expired
+          ttymon            ioctl   25      1  Inappropriate ioctl for device
+gnome-netstatus-            ioctl   12      2  Not enough core
+     mozilla-bin         lwp_kill    3      2  No such process
+     mozilla-bin          connect  150      5  operation now in progress
+      svc.startd           portfs   62      8  timer expired
+         java_vm    lwp_cond_wait   62      8  timer expired
+     soffice.bin             read   11      9  Resource temporarily unavailable
+  gnome-terminal             read   11     23  Resource temporarily unavailable
+     mozilla-bin             recv   11     26  Resource temporarily unavailable
+        nautilus             read   11     26  Resource temporarily unavailable
+gnome-settings-d             read   11     26  Resource temporarily unavailable
+   gnome-smproxy             read   11     34  Resource temporarily unavailable
+     gnome-panel             read   11     42  Resource temporarily unavailable
+            dsdm             read   11    112  Resource temporarily unavailable
+        metacity             read   11    128  Resource temporarily unavailable
+     mozilla-bin         lwp_park   62    133  timer expired
+            Xorg          pollsys    4    147  interrupted system call
+     wnck-applet             read   11    179  Resource temporarily unavailable
+     mozilla-bin             read   11    258  Resource temporarily unavailable
+            Xorg             read   11   1707  Resource temporarily unavailable
+
+Ok, so Xorg has received 1707 of the same type of error for the syscall read().
+
+
+
+The "-n" option lets us match on one type of process only. In the following
+we match processes that have the name "mozilla-bin",
+
+# ./errinfo -c -n mozilla-bin
+Tracing... Hit Ctrl-C to end.
+^C
+            EXEC          SYSCALL  ERR  COUNT  DESC
+     mozilla-bin      getpeername  134      1  Socket is not connected
+     mozilla-bin             recv   11      2  Resource temporarily unavailable
+     mozilla-bin         lwp_kill    3      2  No such process
+     mozilla-bin          connect  150      5  operation now in progress
+     mozilla-bin         lwp_park   62    207  timer expired
+     mozilla-bin             read   11    396  Resource temporarily unavailable
+
+
+
+The "-p" option lets us examine one PID only. The following example examines
+PID 1119,
+
+# ./errinfo -c -p 1119
+Tracing... Hit Ctrl-C to end.
+^C
+            EXEC          SYSCALL  ERR  COUNT  DESC
+            Xorg          pollsys    4     47  interrupted system call
+            Xorg             read   11    669  Resource temporarily unavailable
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/execsnoop_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/execsnoop_example.txt
new file mode 100644
index 0000000..e55682a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/execsnoop_example.txt
@@ -0,0 +1,78 @@
+The following is an example of execsnoop. As processes are executed their
+details are printed out. Another user was logged in running a few commands
+which can be viewed below,
+
+  # ./execsnoop
+    UID   PID  PPID ARGS
+    100  3008  2656 ls
+    100  3009  2656 ls -l
+    100  3010  2656 cat /etc/passwd
+    100  3011  2656 vi /etc/hosts
+    100  3012  2656 date
+    100  3013  2656 ls -l
+    100  3014  2656 ls
+    100  3015  2656 finger
+  [...]
+
+
+
+In this example the command "man gzip" was executed. The output lets us
+see what the man command is actually doing,
+
+  # ./execsnoop
+    UID   PID  PPID ARGS
+    100  3064  2656 man gzip
+    100  3065  3064 sh -c cd /usr/share/man; tbl /usr/share/man/man1/gzip.1 |nroff -u0 -Tlp -man - 
+    100  3067  3066 tbl /usr/share/man/man1/gzip.1
+    100  3068  3066 nroff -u0 -Tlp -man -
+    100  3066  3065 col -x
+    100  3069  3064 sh -c trap '' 1 15; /usr/bin/mv -f /tmp/mpoMaa_f /usr/share/man/cat1/gzip.1 2> 
+    100  3070  3069 /usr/bin/mv -f /tmp/mpoMaa_f /usr/share/man/cat1/gzip.1
+    100  3071  3064 sh -c more -s /tmp/mpoMaa_f
+    100  3072  3071 more -s /tmp/mpoMaa_f
+  ^C
+  
+
+
+Execsnoop has other options,
+
+  # ./execsnoop -h
+  USAGE: execsnoop [-a|-A|-sv] [-c command]
+         execsnoop                # default output
+                  -a              # print all data
+                  -A              # dump all data, space delimited
+                  -s              # include start time, us
+                  -v              # include start time, string
+                  -c command      # command name to snoop
+
+
+
+In particular the verbose option for human readable timestamps is 
+very useful,
+
+  # ./execsnoop -v
+  STRTIME                UID   PID  PPID ARGS
+  2005 Jan 22 00:07:22     0 23053 20933 date
+  2005 Jan 22 00:07:24     0 23054 20933 uname -a
+  2005 Jan 22 00:07:25     0 23055 20933 ls -latr
+  2005 Jan 22 00:07:27     0 23056 20933 df -k
+  2005 Jan 22 00:07:29     0 23057 20933 ps -ef
+  2005 Jan 22 00:07:29     0 23057 20933 ps -ef
+  2005 Jan 22 00:07:34     0 23058 20933 uptime
+  2005 Jan 22 00:07:34     0 23058 20933 uptime
+  [...]
+
+
+
+It is also possible to match particular commands. Here we watch
+anyone using the vi command only,
+
+  # ./execsnoop -vc vi 
+  STRTIME                UID   PID  PPID ARGS
+  2005 Jan 22 00:10:33     0 23063 20933 vi /etc/passwd
+  2005 Jan 22 00:10:40     0 23064 20933 vi /etc/shadow
+  2005 Jan 22 00:10:51     0 23065 20933 vi /etc/group
+  2005 Jan 22 00:10:57     0 23066 20933 vi /.rhosts
+  [...]
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/fddist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/fddist_example.txt
new file mode 100644
index 0000000..3d943b9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/fddist_example.txt
@@ -0,0 +1,38 @@
+The following is a demonstration of the fddist command,
+
+
+Here fddist is run for a few seconds on an idle workstation,
+
+   Tracing reads and writes... Hit Ctrl-C to end.
+   ^C
+   EXEC: dtrace           PID: 3288
+   
+              value  ------------- Distribution ------------- count
+                  0 |                                         0
+                  1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+                  2 |                                         0
+   
+   EXEC: mozilla-bin      PID: 1659
+   
+              value  ------------- Distribution ------------- count
+                  3 |                                         0
+                  4 |@@@@@@@@@@                               28
+                  5 |                                         0
+                  6 |@@@@@@@@@@@@@@@                          40
+                  7 |@@@@@@@@@@@@@@@                          40
+                  8 |                                         0
+   
+   EXEC: Xorg             PID: 1532
+   
+              value  ------------- Distribution ------------- count
+                 22 |                                         0
+                 23 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 57
+                 24 |                                         0
+
+The above displays the usage pattern for process file descriptors.
+We can see the Xorg process (PID 1532) has made 57 reads or writes to
+it's file descriptor 23. 
+
+The pfiles(1) command can be used to help determine what file 
+descriptor 23 actually is.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/filebyproc_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/filebyproc_example.txt
new file mode 100644
index 0000000..8267da2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/filebyproc_example.txt
@@ -0,0 +1,27 @@
+The following is an example of the filebyproc.d script,
+
+   # filebyproc.d
+   dtrace: description 'syscall::open*:entry ' matched 2 probes
+   CPU     ID                    FUNCTION:NAME
+     0     14                       open:entry gnome-netstatus- /dev/kstat
+     0     14                       open:entry man /var/ld/ld.config
+     0     14                       open:entry man /lib/libc.so.1
+     0     14                       open:entry man /usr/share/man/man.cf
+     0     14                       open:entry man /usr/share/man/windex
+     0     14                       open:entry man /usr/share/man/man1/ls.1
+     0     14                       open:entry man /usr/share/man/man1/ls.1
+     0     14                       open:entry man /tmp/mpqea4RF
+     0     14                       open:entry sh /var/ld/ld.config
+     0     14                       open:entry sh /lib/libc.so.1
+     0     14                       open:entry neqn /var/ld/ld.config
+     0     14                       open:entry neqn /lib/libc.so.1
+     0     14                       open:entry neqn /usr/share/lib/pub/eqnchar
+     0     14                       open:entry tbl /var/ld/ld.config
+     0     14                       open:entry tbl /lib/libc.so.1
+     0     14                       open:entry tbl /usr/share/man/man1/ls.1
+     0     14                       open:entry nroff /var/ld/ld.config
+   [...]
+
+In the above example, the command "man ls" was run. Each file that was 
+attempted to be opened can be seen, along with the program name responsible.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/fspaging_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/fspaging_example.txt
new file mode 100644
index 0000000..c29cb08
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/fspaging_example.txt
@@ -0,0 +1,32 @@
+The following is a short sample of output from the fspaging.d script.
+
+
+fspaging.d traces syscall read and writes, vnode interface reads, writes,
+getpage and putpage, and disk io.
+
+   # ./fspaging.d
+   Event             Device RW     Size Offset Path
+       disk_io         dad1  R     1024      0 /extra1
+       disk_io         dad1  R     8192      0 <none>
+       disk_io         dad1  R     2048      0 <none>
+   sc-write               .  W    51200      0 /extra1/outfile
+     fop_write            .  W    51200      0 /extra1/outfile
+     fop_getpage          .  R     8192      0 /extra1/50k
+       disk_io         dad1  R     8192      0 /extra1/50k
+       disk_ra         dad1  R     8192      8 /extra1/50k
+     fop_getpage          .  R     8192      8 /extra1/50k
+       disk_ra         dad1  R    34816     16 /extra1/50k
+     fop_getpage          .  R     8192     16 /extra1/50k
+     fop_getpage          .  R     8192     24 /extra1/50k
+     fop_getpage          .  R     8192     32 /extra1/50k
+     fop_getpage          .  R     8192     40 /extra1/50k
+     fop_getpage          .  R     8192     48 /extra1/50k
+     fop_putpage          .  W     8192      0 /extra1/outfile
+     fop_putpage          .  W     8192      8 /extra1/outfile
+     fop_putpage          .  W     8192     16 /extra1/outfile
+     fop_putpage          .  W     8192     24 /extra1/outfile
+     fop_putpage          .  W     8192     32 /extra1/outfile
+     fop_putpage          .  W     8192     40 /extra1/outfile
+       disk_io         dad1  W    51200      0 /extra1/outfile
+
+For a full discussion of this example, see fsrw_example.txt.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/fsrw_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/fsrw_example.txt
new file mode 100644
index 0000000..b153303
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/fsrw_example.txt
@@ -0,0 +1,129 @@
+The following are demonstrations of the fsrw.d script.
+
+
+Here the fsrw.d script was running while a 50 Kbyte file was read,
+
+   # ./fsrw.d
+   Event            Device RW     Size Offset Path
+   sc-read               .  R     8192      0 /extra1/50k
+     fop_read            .  R     8192      0 /extra1/50k
+       disk_io       cmdk0  R     8192      0 /extra1/50k
+       disk_ra       cmdk0  R     8192      8 /extra1/50k
+   sc-read               .  R     8192      8 /extra1/50k
+     fop_read            .  R     8192      8 /extra1/50k
+       disk_ra       cmdk0  R    34816     16 /extra1/50k
+   sc-read               .  R     8192     16 /extra1/50k
+     fop_read            .  R     8192     16 /extra1/50k
+   sc-read               .  R     8192     24 /extra1/50k
+     fop_read            .  R     8192     24 /extra1/50k
+   sc-read               .  R     8192     32 /extra1/50k
+     fop_read            .  R     8192     32 /extra1/50k
+   sc-read               .  R     8192     40 /extra1/50k
+     fop_read            .  R     8192     40 /extra1/50k
+   sc-read               .  R     8192     48 /extra1/50k
+     fop_read            .  R     8192     48 /extra1/50k
+   sc-read               .  R     8192     50 /extra1/50k
+     fop_read            .  R     8192     50 /extra1/50k
+   ^C
+
+By looking closely at the Offset (Kbytes) and Size of each transaction, we
+can see how the read() system calls (sc-read) were satisfied by the file
+system. There were 8 read() system calls, and 3 disk events - 2 of which were
+UFS read-ahead (disk_ra). The final read-ahead was for 34 Kbytes and began
+with an offset of 16 Kbytes, which read the remaining file data (34 + 16 = 50
+Kbytes). The subsequent read() system calls and corresponding fop_read() calls
+returned from the page cache.
+
+
+
+The following demonstrates how a logical I/O is broken up into multiple 
+physical I/O events. Here a dd command was used to read 1 Mbytes from the
+/var/sadm/install/contents file while fsrw.d was tracing.
+
+   # ./fsrw.d
+   Event            Device RW     Size Offset Path
+   sc-read               .  R  1048576      0 /var/sadm/install/contents
+     fop_read            .  R  1048576      0 /var/sadm/install/contents
+       disk_ra       cmdk0  R     4096     72 /var/sadm/install/contents
+       disk_ra       cmdk0  R     8192     96 <none>
+       disk_ra       cmdk0  R    57344     96 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    152 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    208 /var/sadm/install/contents
+       disk_ra       cmdk0  R    49152    264 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    312 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    368 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    424 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    480 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    536 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    592 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    648 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    704 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    760 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    816 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    872 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    928 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    984 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344   1040 /var/sadm/install/contents
+   ^C
+
+Both the read() syscall (sc-read) and the fop_read() call asked the file system
+for 1048576 bytes, which was then broken into numerous disk I/O events of up to
+56 Kbytes in size. The 8192 byte read with a path of "<none>" is likely to be
+the file system reading the indirect block pointers for the 
+/var/sadm/install/contents file (something DTrace could confirm in detail).
+
+
+
+
+The following traces activity as a cp command copies a 50 Kbyte file.
+
+   # ./fsrw.d
+   Event            Device RW     Size Offset Path
+       disk_io        dad1  R     1024      0 /extra1
+       disk_io        dad1  R     8192      0 <none>
+       disk_io        dad1  R     8192      0 <none>
+       disk_io        dad1  R     2048      0 <none>
+       disk_io        dad1  R     2048      0 <none>
+   sc-write              .  W    51200      0 /extra1/outfile
+     fop_write           .  W    51200      0 /extra1/outfile
+       disk_io        dad1  R     8192      0 /extra1/50k
+       disk_ra        dad1  R     8192      8 /extra1/50k
+       disk_ra        dad1  R    34816     16 /extra1/50k
+       disk_io        dad1  R     2048      0 <none>
+       disk_io        dad1  W    49152      0 /extra1/outfile
+   ^C
+
+Reads including UFS read-ahead can be seen as the file is read.
+The output finishes with disk writes as the new file is flushed to disk.
+The syscall write() and fop_write() can be seen to the /extra1/outfile,
+however there is no syscall read() or fop_read() to /extra1/50k - which
+we may have expected to occur before the writes. This is due to the way
+the cp command now works, it uses mmap() to map files in for reading.
+This activity can be seen if we also trace fop_getpage() and fop_putpage(),
+as the fspaging.d dtrace script does.
+
+   # ./fspaging.d
+   Event             Device RW     Size Offset Path
+       disk_io         dad1  R     1024      0 /extra1
+       disk_io         dad1  R     8192      0 <none>
+       disk_io         dad1  R     2048      0 <none>
+   sc-write               .  W    51200      0 /extra1/outfile
+     fop_write            .  W    51200      0 /extra1/outfile
+     fop_getpage          .  R     8192      0 /extra1/50k
+       disk_io         dad1  R     8192      0 /extra1/50k
+       disk_ra         dad1  R     8192      8 /extra1/50k
+     fop_getpage          .  R     8192      8 /extra1/50k
+       disk_ra         dad1  R    34816     16 /extra1/50k
+     fop_getpage          .  R     8192     16 /extra1/50k
+     fop_getpage          .  R     8192     24 /extra1/50k
+     fop_getpage          .  R     8192     32 /extra1/50k
+     fop_getpage          .  R     8192     40 /extra1/50k
+     fop_getpage          .  R     8192     48 /extra1/50k
+     fop_putpage          .  W     8192      0 /extra1/outfile
+     fop_putpage          .  W     8192      8 /extra1/outfile
+     fop_putpage          .  W     8192     16 /extra1/outfile
+     fop_putpage          .  W     8192     24 /extra1/outfile
+     fop_putpage          .  W     8192     32 /extra1/outfile
+     fop_putpage          .  W     8192     40 /extra1/outfile
+       disk_io         dad1  W    51200      0 /extra1/outfile
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/guess_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/guess_example.txt
new file mode 100644
index 0000000..74be8b3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/guess_example.txt
@@ -0,0 +1,39 @@
+The following is a demonstration of the guess.d script,
+
+
+guess.d is a guessing game written in DTrace. It goes like this,
+
+   # ./guess.d
+   guess.d - Guess a number between 1 and 100
+   
+   Enter guess 1: 50
+   Lower...
+   Enter guess 2: 25
+   Higher...
+   Enter guess 3: 37
+   Higher...
+   Enter guess 4: 44
+   Higher...
+   Enter guess 5: 48
+   Lower...
+   Enter guess 6: 46
+   Lower...
+   Enter guess 7: 45
+   Correct! That took 7 guesses.
+   
+   Please enter your name: Brendan Gregg
+   
+   Previous high scores,
+   Fred Nurk 7
+   Brendan Gregg 7
+
+It was written as a demonstration of the same code written in dozens of
+languages. It makes a good demonstration, as it covers integer and string
+variables, conditional statements, loops, keyboard input, screen output,
+and file input and output. 
+
+Written in DTrace however, is not such a good demonstration! DTrace doesn't
+have loops (it doesn't really need them either) which made the code a 
+little odd. DTrace also doesn't have keyboard input... So this script is
+somewhat amusing as an example, but not terribly useful.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/hotkernel_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/hotkernel_example.txt
new file mode 100644
index 0000000..d8a5aec
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/hotkernel_example.txt
@@ -0,0 +1,153 @@
+The following are demonstrations of the hotkernel DTrace program.
+
+
+Here hotkernel is run for a couple of seconds then Ctrl-C is hit,
+
+   # ./hotkernel
+   Sampling... Hit Ctrl-C to end.
+   ^C
+   FUNCTION                                                COUNT   PCNT
+   unix`swtch                                                  1   0.1%
+   pcplusmp`apic_redistribute_compute                          1   0.1%
+   genunix`strrput                                             1   0.1%
+   unix`sys_call                                               1   0.1%
+   genunix`fsflush_do_pages                                    1   0.1%
+   TS`ts_wakeup                                                1   0.1%
+   genunix`callout_schedule_1                                  1   0.1%
+   unix`page_create_putback                                    1   0.1%
+   unix`mutex_enter                                            4   0.3%
+   unix`cpu_halt                                            1575  99.2%
+
+The output summarises which kernel-level function was sampled on the
+CPU the most. This report shows that unix`cpu_halt was sampled 1575 
+times, which was 99.2% of the kernel-level samples.
+
+As it turns out, unix`cpu_halt is called on this x86 server as part of the
+kernel idle thread - explaining why it is so often found on the CPU,
+
+   # dtrace -n 'fbt::cpu_halt:entry { @[stack()] = count(); }'
+   dtrace: description 'fbt::cpu_halt:entry ' matched 1 probe
+   ^C
+   
+                 unix`idle+0x3b
+                 unix`thread_start+0x3
+                 956
+
+This kernel stack trace indicates that cpu_halt() is called by idle().
+
+The following is a SPARC example,
+
+   # ./hotkernel 
+   Sampling... Hit Ctrl-C to end.
+   ^C
+   FUNCTION                                                COUNT   PCNT
+   genunix`fop_ioctl                                           1   0.1%
+   genunix`allocb_cred                                         1   0.1%
+   genunix`poll_common                                         1   0.1%
+   genunix`cv_block                                            1   0.1%
+   genunix`strioctl                                            1   0.1%
+   genunix`disp_lock_exit                                      1   0.1%
+   genunix`crfree                                              1   0.1%
+   ufs`ufs_getpage                                             1   0.1%
+   SUNW,UltraSPARC-IIi`copyin                                  1   0.1%
+   genunix`strmakedata                                         1   0.1%
+   genunix`cv_waituntil_sig                                    1   0.1%
+   SUNW,UltraSPARC-IIi`prefetch_page_r                         1   0.1%
+   unix`set_freemem                                            1   0.1%
+   unix`page_trylock                                           1   0.1%
+   genunix`anon_get_ptr                                        1   0.1%
+   unix`page_hashin                                            1   0.1%
+   genunix`bt_getlowbit                                        1   0.1%
+   unix`pp_load_tlb                                            1   0.1%
+   unix`_resume_from_idle                                      1   0.1%
+   unix`hat_pageunload                                         1   0.1%
+   genunix`strrput                                             1   0.1%
+   genunix`strpoll                                             1   0.1%
+   unix`page_do_hashin                                         1   0.1%
+   unix`cpu_vm_stats_ks_update                                 1   0.1%
+   genunix`sleepq_wakeone_chan                                 1   0.1%
+   unix`lock_set_spl                                           1   0.1%
+   tl`tl_wput                                                  1   0.1%
+   genunix`kstrgetmsg                                          1   0.1%
+   genunix`qbackenable                                         1   0.1%
+   genunix`releasef                                            1   0.1%
+   genunix`callout_execute                                     1   0.1%
+   uata`ata_hba_start                                          1   0.1%
+   genunix`pcacheset_cmp                                       1   0.1%
+   genunix`sleepq_insert                                       1   0.1%
+   genunix`syscall_mstate                                      1   0.1%
+   sockfs`sotpi_recvmsg                                        1   0.1%
+   genunix`strput                                              1   0.1%
+   genunix`timespectohz                                        1   0.1%
+   unix`lock_clear_splx                                        1   0.1%
+   genunix`read                                                1   0.1%
+   genunix`as_segcompar                                        1   0.1%
+   unix`atomic_cas_64                                          1   0.1%
+   unix`mutex_exit                                             1   0.1%
+   genunix`cv_unsleep                                          1   0.1%
+   unix`putnext                                                1   0.1%
+   unix`intr_thread                                            1   0.1%
+   genunix`hrt2tv                                              1   0.1%
+   sockfs`socktpi_poll                                         1   0.1%
+   unix`sfmmu_mlspl_enter                                      1   0.1%
+   SUNW,UltraSPARC-IIi`get_ecache_tag                          1   0.1%
+   SUNW,UltraSPARC-IIi`gethrestime                             1   0.1%
+   genunix`cv_timedwait_sig                                    1   0.1%
+   genunix`getq_noenab                                         1   0.1%
+   SUNW,UltraSPARC-IIi`flushecacheline                         1   0.1%
+   unix`utl0                                                   1   0.1%
+   genunix`anon_alloc                                          1   0.1%
+   unix`page_downgrade                                         1   0.1%
+   unix`setfrontdq                                             1   0.1%
+   genunix`timeout_common                                      1   0.1%
+   unix`bzero                                                  1   0.1%
+   unix`ktl0                                                   2   0.1%
+   genunix`canputnext                                          2   0.1%
+   genunix`clear_active_fd                                     2   0.1%
+   unix`sfmmu_tlb_demap                                        2   0.1%
+   unix`page_vpadd                                             2   0.1%
+   SUNW,UltraSPARC-IIi`check_ecache_line                       2   0.1%
+   genunix`cyclic_softint                                      2   0.1%
+   genunix`restore_mstate                                      2   0.1%
+   genunix`anon_map_getpages                                   2   0.1%
+   genunix`putq                                                2   0.1%
+   unix`page_lookup_create                                     2   0.1%
+   dtrace`dtrace_dynvar_clean                                  2   0.1%
+   unix`sfmmu_pageunload                                       2   0.1%
+   genunix`cpu_decay                                           2   0.1%
+   genunix`kmem_cache_alloc                                    3   0.2%
+   unix`rw_exit                                                3   0.2%
+   tl`tl_wput_data_ser                                         3   0.2%
+   unix`page_get_replacement_page                              3   0.2%
+   unix`page_sub                                               3   0.2%
+   genunix`clock                                               3   0.2%
+   SUNW,UltraSPARC-IIi`copyout                                 3   0.2%
+   unix`mutex_enter                                            4   0.2%
+   genunix`pcache_poll                                         5   0.3%
+   SUNW,UltraSPARC-IIi`scrub_ecache_line                       5   0.3%
+   SUNW,UltraSPARC-IIi`hwblkpagecopy                          22   1.2%
+   SUNW,UltraSPARC-IIi`hwblkclr                               39   2.1%
+   unix`generic_idle_cpu                                     506  26.8%
+   unix`idle                                                1199  63.5%
+
+Which shows the most common function is unix`idle.
+
+
+
+
+Now the hotkernel tool is demonstrated with the -m option, to only print
+out samples by module,
+
+   # ./hotkernel -m
+   Sampling... Hit Ctrl-C to end.
+   ^C
+   MODULE                                                  COUNT   PCNT
+   usbms                                                       1   0.0%
+   specfs                                                      1   0.0%
+   uhci                                                        1   0.0%
+   sockfs                                                      2   0.0%
+   genunix                                                    28   0.6%
+   unix                                                     4539  99.3%
+
+Here, genunix and unix (the two core parts of the kernel) were the most
+common module to be executing on-CPU.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/hotspot_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/hotspot_example.txt
new file mode 100644
index 0000000..179ba8d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/hotspot_example.txt
@@ -0,0 +1,34 @@
+The following is a demonstration of the hotspot.d script. 
+
+Here the script is run while a large file is copied from one filesystem
+(cmdk0 102,0) to another (cmdk0 102,3). We can see the file mostly resided
+around the 9000 to 10999 Mb range on the source disk (102,0), and was 
+copied to the 0 to 999 Mb range on the target disk (102,3).
+
+   # ./hotspot.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   Disk: cmdk0   Major,Minor: 102,3
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 418
+               1000 |                                         0
+   
+   Disk: cmdk0   Major,Minor: 102,0
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |                                         1
+               1000 |                                         5
+               2000 |                                         0
+               3000 |                                         0
+               4000 |                                         0
+               5000 |                                         0
+               6000 |                                         0
+               7000 |                                         0
+               8000 |                                         0
+               9000 |@@@@@                                    171
+              10000 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@      1157
+              11000 |                                         0
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/hotuser_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/hotuser_example.txt
new file mode 100644
index 0000000..c038acd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/hotuser_example.txt
@@ -0,0 +1,107 @@
+The following are demonstrations of the hotuser DTrace program.
+
+
+Here, hotuser is run on a test program called "dofuncs", which is hard coded
+to spend half its time in delta(), a third in beta() and a sixth in alpha().
+
+   # ./hotuser -c ./dofuncs
+   Sampling... Hit Ctrl-C to end.
+   ^C
+   FUNCTION                                                COUNT   PCNT
+   dofuncs`alpha                                             511  16.5%
+   dofuncs`beta                                             1029  33.3%
+   dofuncs`delta                                            1552  50.2%
+
+hotuser has accurately sampled which user-level functions are on the CPU,
+producing a report of the expected breakdown. The hottest user-level function
+is delta(), which was sampled 1552 times - 50.2% of the total samples.
+
+
+
+Now hotuser is run on gunzip, to find which functions are most often
+on the CPU,
+
+   # ./hotuser -c 'gunzip contents.gz'
+   Sampling... Hit Ctrl-C to end.
+   
+   FUNCTION                                                COUNT   PCNT
+   libc.so.1`_free_unlocked                                    1   0.1%
+   gunzip`unzip                                                1   0.1%
+   ld.so.1`strcmp                                              1   0.1%
+   gunzip`inflate_dynamic                                      1   0.1%
+   libc.so.1`_write                                            1   0.1%
+   gunzip`write_buf                                            1   0.1%
+   gunzip`0x2d990                                              2   0.3%
+   libc.so.1`write                                             2   0.3%
+   gunzip`0x2d994                                              2   0.3%
+   ld.so.1`rtld_db_preinit                                     3   0.4%
+   gunzip`0x2d98c                                              7   0.9%
+   gunzip`huft_build                                           9   1.2%
+   libc_psr.so.1`memcpy                                      138  18.5%
+   gunzip`inflate_codes                                      233  31.2%
+   gunzip`updcrc                                             344  46.1%
+
+This shows that updcrc() was sampled 344 times, and 46.1% of the total
+samples.
+
+
+
+A -l option will provide a breakdown on libraries only. hotuser
+is run on gzip to show library usage only,
+   
+   # ./hotuser -lc 'gzip contents'
+   Sampling... Hit Ctrl-C to end.
+
+   LIBRARY                                                 COUNT   PCNT
+   libc.so.1                                                   2   0.0%
+   libc_psr.so.1                                              37   0.9%
+   gzip                                                     4113  99.1%
+
+This shows that code in the gzip binary itself was on the CPU 99.1% of
+the sample times, with libc_psr.so.1 code on the CPU 0.9% of the time.
+
+
+
+The following shows library usage of mozilla. The pgrep command is used to
+match the most recent PID of mozilla-bin.
+
+   # ./hotuser -lp `pgrep -n mozilla-bin`
+   Sampling... Hit Ctrl-C to end.
+   ^C
+   LIBRARY                                                 COUNT   PCNT
+   libplds4.so                                                 1   0.1%
+   libappcomps.so                                              1   0.1%
+   libi18n.so                                                  1   0.1%
+   libuconv.so                                                 1   0.1%
+   libpref.so                                                  1   0.1%
+   libblueprint.so                                             1   0.1%
+   libz.so.1                                                   2   0.2%
+   libcaps.so                                                  2   0.2%
+   libXrender.so.1                                             2   0.2%
+   libimglib2.so                                               2   0.2%
+   libXft.so.2                                                 3   0.3%
+   libCrun.so.1                                                3   0.3%
+   libdocshell.so                                              3   0.3%
+   libplc4.so                                                  4   0.4%
+   libgtk-x11-2.0.so.0.400.9                                   5   0.5%
+   libjsd.so                                                   5   0.5%
+   libX11.so.4                                                 5   0.5%
+   libnecko.so                                                 8   0.9%
+   libwidget_gtk2.so                                           9   1.0%
+   libgkgfx.so                                                13   1.4%
+   libglib-2.0.so.0.400.1                                     14   1.5%
+   libgfx_gtk.so                                              18   2.0%
+   libnspr4.so                                                20   2.2%
+   libxpconnect.so                                            22   2.4%
+   libgdk-x11-2.0.so.0.400.9                                  23   2.5%
+   libgobject-2.0.so.0.400.1                                  25   2.7%
+   libhtmlpars.so                                             27   3.0%
+   libfontconfig.so.1                                         41   4.5%
+   libxpcom.so                                                49   5.4%
+   mozilla-bin                                                55   6.0%
+   libmozjs.so                                                80   8.8%
+   libc.so.1                                                 115  12.6%
+   libgklayout.so                                            352  38.6%
+
+This shows that 352 samples found code from libgklayout.so running, which
+was 38.6% of the samples.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/httpdstat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/httpdstat_example.txt
new file mode 100644
index 0000000..b9f59e8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/httpdstat_example.txt
@@ -0,0 +1,36 @@
+The following is an example of using the httpdstat.d script.
+
+
+This Solaris 10 server is running Apache as a webserver. The script matches
+on the process name "httpd". Here it shows many GET connections,
+
+   # httpdstat.d
+   TIME                    NUM    GET  POST  HEAD TRACE
+   2005 Nov 29 18:46:46     38     38     0     0     0
+   2005 Nov 29 18:46:47    109    109     0     0     0
+   2005 Nov 29 18:46:48    112    112     0     0     0
+   2005 Nov 29 18:46:49    113    113     0     0     0
+   2005 Nov 29 18:46:50    107    107     0     0     0
+   2005 Nov 29 18:46:51     56     56     0     0     0
+   2005 Nov 29 18:46:52      0      0     0     0     0
+   2005 Nov 29 18:46:53      0      0     0     0     0
+   2005 Nov 29 18:46:54     20     20     0     0     0
+   2005 Nov 29 18:46:55     48     48     0     0     0
+   ^C
+
+For a few seconds we had around 100 GETs per second.
+
+
+
+httpdstat.d accepts an argument as the sample interval, here we print a
+line every 30 seconds,
+
+   # httpdstat.d 30
+   TIME                    NUM    GET  POST  HEAD TRACE
+   2005 Nov 29 18:50:49    462    458     3     1     0
+   2005 Nov 29 18:51:19    421    413     5     2     1
+   2005 Nov 29 18:51:49   1361   1358     3     0     0
+   ^C
+
+The values are for the entire interval.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/icmpstat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/icmpstat_example.txt
new file mode 100644
index 0000000..e8b8cfe
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/icmpstat_example.txt
@@ -0,0 +1,29 @@
+The following is a demonstration of the icmpstat.d script,
+
+
+Here we run it and catch an inbound ping,
+
+   # icmpstat.d
+   2005 Jul 25 23:05:39,
+   
+                          STATISTIC    VALUE
+   
+   2005 Jul 25 23:05:40,
+   
+                          STATISTIC    VALUE
+                        icmpOutMsgs        1
+                    icmpOutEchoReps        1
+                        icmpInEchos        1
+                         icmpInMsgs        1
+   
+   2005 Jul 25 23:05:41,
+   
+                          STATISTIC    VALUE
+   
+   ^C
+
+Files such as /usr/include/inet/mib2.h may explain each of the statistics.
+
+The icmpstat.d is a simple demonstration of tracing ICMP activity. It may 
+serve as the starting point for other scripts.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/intbycpu_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/intbycpu_example.txt
new file mode 100644
index 0000000..5ed213c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/intbycpu_example.txt
@@ -0,0 +1,11 @@
+The following is a demonstration of the intbycpu.d script,
+
+   # intbycpu.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   CPU                    INTERRUPTS
+   0                             374
+   1                             412
+
+In the above output, CPU 1 had 412 interrupts, and CPU 0 had 374.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/intoncpu_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/intoncpu_example.txt
new file mode 100644
index 0000000..ed408eb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/intoncpu_example.txt
@@ -0,0 +1,93 @@
+The following is an example of the intoncpu.d script.
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+   # ./intoncpu.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   uhci1
+   
+              value  ------------- Distribution ------------- count
+               2048 |                                         0
+               4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+               8192 |                                         0
+   uhci0
+   
+              value  ------------- Distribution ------------- count
+                512 |                                         0
+               1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@         16
+               2048 |@@@@                                     2
+               4096 |@@                                       1
+               8192 |@@                                       1
+              16384 |                                         0
+   rtls0
+   
+              value  ------------- Distribution ------------- count
+                512 |                                         0
+               1024 |@@@@@@@@@@@@@@@@                         8
+               2048 |@@@@@@@@@@                               5
+               4096 |@@@@@@                                   3
+               8192 |                                         0
+              16384 |@@                                       1
+              32768 |@@                                       1
+              65536 |@@@@                                     2
+             131072 |                                         0
+
+The rtls0 driver (the network interface) has encourtered the most interrupts,
+with the time taken to process each interrupt visible as a distribution.
+These times ranged from around 1000 ns (1 us), to at least 65536 ns (65 us).
+
+To determine which devices the instance names represent (eg, "uhci1"), the
+/etc/path_to_inst file could be examied.
+
+
+
+The following is a longer example of running intoncpu.d,
+
+   # ./intoncpu.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   uhci1
+   
+              value  ------------- Distribution ------------- count
+               2048 |                                         0
+               4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+               8192 |                                         0
+   ata1
+   
+              value  ------------- Distribution ------------- count
+               8192 |                                         0
+              16384 |@@@@@@@@@@@@@@@@@@@@                     2
+              32768 |@@@@@@@@@@@@@@@@@@@@                     2
+              65536 |                                         0
+   ata0
+   
+              value  ------------- Distribution ------------- count
+               2048 |                                         0
+               4096 |@@@@@@@@@@@@@                            55
+               8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@               113
+              16384 |@                                        5
+              32768 |                                         0
+   uhci0
+   
+              value  ------------- Distribution ------------- count
+                512 |                                         0
+               1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   1288
+               2048 |@@                                       53
+               4096 |                                         6
+               8192 |                                         0
+   rtls0
+   
+              value  ------------- Distribution ------------- count
+                512 |                                         0
+               1024 |@@@@@@@@@@@@@@@@@@@@                     665
+               2048 |@@@@@@@@@                                307
+               4096 |@                                        35
+               8192 |                                         0
+              16384 |@@@@@@@                                  229
+              32768 |@@@                                      91
+              65536 |@                                        19
+             131072 |                                         1
+             262144 |                                         0
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/inttimes_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/inttimes_example.txt
new file mode 100644
index 0000000..384d700
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/inttimes_example.txt
@@ -0,0 +1,18 @@
+The following is a demonstration of the inttimes.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+   # inttimes.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+        DEVICE           TIME (ns)
+          ata0              22324
+         uhci1              45893
+          ata1             138559
+         uhci0             229226
+        i80420            1305617
+         rtls0            2540175
+
+In the above output, we can see that the rtls0 driver spent 2540 us on the
+CPU servicing interrupts, while ata0 spent only 22 us.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/iofile_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/iofile_example.txt
new file mode 100644
index 0000000..f4fc476
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/iofile_example.txt
@@ -0,0 +1,35 @@
+The following is a demonstration of the iofile.d script,
+
+
+Here we run it while a tar command is backing up /var/adm,
+
+   # iofile.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD              TIME FILE
+     5206 tar               109 /var/adm/acct/nite
+     5206 tar               110 /var/adm/acct/sum
+     5206 tar               114 /var/adm/acct/fiscal
+     5206 tar               117 /var/adm/messages.3
+     5206 tar               172 /var/adm/sa
+     5206 tar              3605 /var/adm/messages.2
+     5206 tar              4548 /var/adm/spellhist
+     5206 tar              5769 /var/adm/exacct/brendan1task
+     5206 tar              6416 /var/adm/acct
+     5206 tar              7587 /var/adm/messages.1
+     5206 tar              8246 /var/adm/exacct/task
+     5206 tar              8320 /var/adm/pool
+     5206 tar              8973 /var/adm/pool/history
+     5206 tar              9183 /var/adm/exacct
+        3 fsflush         10882 <none>
+     5206 tar             11861 /var/adm/exacct/flow
+     5206 tar             12042 /var/adm/messages.0
+     5206 tar             12408 /var/adm/sm.bin
+     5206 tar             13021 /var/adm/sulog
+     5206 tar             19007 /var/adm/streams
+     5206 tar             21811 <none>
+     5206 tar             24918 /var/adm/exacct/proc
+
+In the above output, we can see that the tar command spent 24918 us (25 ms)
+waiting for disk I/O on the /var/adm/exacct/proc file. 
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/iofileb_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/iofileb_example.txt
new file mode 100644
index 0000000..21597f7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/iofileb_example.txt
@@ -0,0 +1,23 @@
+The following is a demonstration of the iofileb.d script,
+
+
+Here we run it while a tar command is backing up /var/adm,
+
+   # ./iofileb.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD              KB FILE
+    29529 tar              56 /var/adm/sa/sa31
+    29529 tar              56 /var/adm/sa/sa03
+    29529 tar              56 /var/adm/sa/sa02
+    29529 tar              56 /var/adm/sa/sa01
+    29529 tar              56 /var/adm/sa/sa04
+    29529 tar              56 /var/adm/sa/sa27
+    29529 tar              56 /var/adm/sa/sa28
+    29529 tar             324 /var/adm/exacct/task
+    29529 tar             736 /var/adm/wtmpx
+
+In the above output, we can see that the tar command has caused 736 Kbytes
+of the /var/adm/wtmpx file to be read from disk. All af the Kbyte values
+measured are for disk activity.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/iopattern_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/iopattern_example.txt
new file mode 100644
index 0000000..818a4a2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/iopattern_example.txt
@@ -0,0 +1,57 @@
+The following is a demonstration of the iopattern program,
+
+
+Here we run iopattern for a few seconds then hit Ctrl-C. There is a "dd"
+command running on this system to intentionally create heavy sequential
+disk activity,
+
+   # iopattern
+   %RAN %SEQ  COUNT    MIN    MAX    AVG     KR     KW
+      1   99    465   4096  57344  52992  23916    148
+      0  100    556  57344  57344  57344  31136      0
+      0  100    634  57344  57344  57344  35504      0
+      6   94    554    512  57344  54034  29184     49
+      0  100    489  57344  57344  57344  27384      0
+     21   79    568   4096  57344  46188  25576     44
+      4   96    431   4096  57344  56118  23620      0
+   ^C
+
+In the above output we can see that the disk activity is mostly sequential.
+The disks are also pulling around 30 Mb during each sample, with a large
+average event size.
+
+
+
+The following demonstrates iopattern while running a "find" command to
+cause random disk activity,
+
+   # iopattern
+   %RAN %SEQ  COUNT    MIN    MAX    AVG     KR     KW
+     86   14    400   1024   8192   1543    603      0
+     81   19    455   1024   8192   1606    714      0
+     89   11    469    512   8192   1854    550    299
+     83   17    463   1024   8192   1782    806      0
+     87   13    394   1024   8192   1551    597      0
+     85   15    348    512  57344   2835    808    155
+     91    9    513    512  47616   2812    570    839
+     76   24    317    512  35840   3755    562    600
+   ^C
+
+In the above output, we can see from the percentages that the disk events
+were mostly random. We can also see that the average event size is small - 
+which makes sense if we are reading through many directory files.
+
+
+
+iopattern has options. Here we print timestamps "-v" and measure every 10
+seconds,
+
+   # iopattern -v 10
+   TIME                 %RAN %SEQ  COUNT    MIN    MAX    AVG     KR     KW
+   2005 Jul 25 20:40:55   97    3     33    512   8192   1163      8     29
+   2005 Jul 25 20:41:05    0    0      0      0      0      0      0      0
+   2005 Jul 25 20:41:15   84   16      6    512  11776   5973     22     13
+   2005 Jul 25 20:41:25  100    0     26    512   8192   1496      8     30
+   2005 Jul 25 20:41:35    0    0      0      0      0      0      0      0
+   ^C
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/iopending_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/iopending_example.txt
new file mode 100644
index 0000000..f4bc822
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/iopending_example.txt
@@ -0,0 +1,126 @@
+The following is a demonstration of the iopending tool,
+
+Here we run it with a sample interval of 1 second,
+
+   # iopending 1
+   Tracing... Please wait.
+   2006 Jan  6 20:21:59,  load: 0.02,  disk_r:      0 KB,  disk_w:      0 KB
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1010
+                  1 |                                         0
+   
+   2006 Jan  6 20:22:00,  load: 0.03,  disk_r:      0 KB,  disk_w:      0 KB
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1000
+                  1 |                                         0
+   
+   2006 Jan  6 20:22:01,  load: 0.03,  disk_r:      0 KB,  disk_w:      0 KB
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1000
+                  1 |                                         0
+   
+   ^C
+
+The iopending tool samples at 1000 Hz, and prints a distribution of how many
+disk events were "pending" completion. In the above example the disks are
+quiet - for all the samples there are zero disk events pending.
+
+
+
+Now iopending is run with no arguments. It will default to an interval of 5
+seconds,
+
+   # iopending
+   Tracing... Please wait.
+   2006 Jan  6 19:15:41,  load: 0.03,  disk_r:   3599 KB,  disk_w:      0 KB
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     4450
+                  1 |@@@                                      390
+                  2 |@                                        80
+                  3 |                                         40
+                  4 |                                         20
+                  5 |                                         30
+                  6 |                                         0
+   
+   ^C
+
+In the above output there was a little disk activity. For 390 samples there
+was 1 I/O event pending; for 80 samples there was 2, and so on. 
+
+
+
+
+In the following example iopending is run during heavy disk activity. We
+print output every 10 seconds,
+
+   # iopending 10
+   Tracing... Please wait.
+   2006 Jan  6 20:58:07,  load: 0.03,  disk_r:  25172 KB,  disk_w:  33321 KB
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@                                2160
+                  1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              6720
+                  2 |@@@@                                     1000
+                  3 |                                         50
+                  4 |                                         30
+                  5 |                                         20
+                  6 |                                         10
+                  7 |                                         10
+                  8 |                                         10
+                  9 |                                         0
+   
+   2006 Jan  6 20:58:17,  load: 0.05,  disk_r:   8409 KB,  disk_w:  12449 KB
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@            7260
+                  1 |@@@@@@@                                  1700
+                  2 |@                                        300
+                  3 |                                         0
+                  4 |                                         10
+                  5 |                                         10
+                  6 |                                         10
+                  7 |                                         20
+                  8 |                                         0
+                  9 |                                         0
+                 10 |                                         0
+                 11 |                                         0
+                 12 |                                         0
+                 13 |                                         0
+                 14 |                                         0
+                 15 |                                         0
+                 16 |                                         0
+                 17 |                                         10
+                 18 |                                         20
+                 19 |                                         0
+                 20 |                                         0
+                 21 |                                         0
+                 22 |                                         0
+                 23 |                                         0
+                 24 |                                         0
+                 25 |                                         0
+                 26 |                                         0
+                 27 |                                         0
+                 28 |                                         0
+                 29 |                                         0
+                 30 |                                         0
+                 31 |                                         10
+              >= 32 |@@@                                      650
+   
+   ^C
+
+In the first output, most of the time (67%) there was 1 event pending, 
+and for a short time there were 8 events pending. In the second output we
+see many samples were off the scale - 650 samples at 32 or more pending
+events. For this sample I had typed "sync" in another window, which 
+queued many disk events immediately which were eventually completed.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/iosnoop_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/iosnoop_example.txt
new file mode 100644
index 0000000..addb7dc
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/iosnoop_example.txt
@@ -0,0 +1,39 @@
+The following demonstrates iosnoop. It was run on a system that was
+fairly quiet until a tar command was run,
+
+# ./iosnoop 
+  UID   PID D    BLOCK   SIZE       COMM PATHNAME
+    0     0 W     1067    512      sched <none>
+    0     0 W  6496304   1024      sched <none>
+    0     3 W  6498797    512    fsflush <none>
+    0     0 W     1067    512      sched <none>
+    0     0 W  6496304   1024      sched <none>
+  100   443 R   892288   4096       Xsun /usr/openwin/bin/Xsun
+  100   443 R   891456   4096       Xsun /usr/openwin/bin/Xsun
+  100 15795 R     3808   8192        tar /usr/bin/eject
+  100 15795 R    35904   6144        tar /usr/bin/eject
+  100 15795 R    39828   6144        tar /usr/bin/env
+  100 15795 R     3872   8192        tar /usr/bin/expr
+  100 15795 R    21120   7168        tar /usr/bin/expr
+  100 15795 R    43680   6144        tar /usr/bin/false
+  100 15795 R    44176   6144        tar /usr/bin/fdetach
+  100 15795 R     3920   8192        tar /usr/bin/fdformat
+  100 15795 R     3936   8192        tar /usr/bin/fdformat
+  100 15795 R     4080   8192        tar /usr/bin/fdformat
+  100 15795 R     9680   3072        tar /usr/bin/fdformat
+  100 15795 R     4096   8192        tar /usr/bin/fgrep
+  100 15795 R    46896   6144        tar /usr/bin/fgrep
+  100 15795 R     4112   8192        tar /usr/bin/file
+  100 15795 R     4128   8192        tar /usr/bin/file
+  100 15795 R     4144   8192        tar /usr/bin/file
+  100 15795 R    21552   7168        tar /usr/bin/file
+  100 15795 R     4192   8192        tar /usr/bin/fmli
+  100 15795 R     4208   8192        tar /usr/bin/fmli
+  100 15795 R     4224  57344        tar /usr/bin/fmli
+  100 15795 R     4336  24576        tar /usr/bin/fmli
+  100 15795 R   695792   8192        tar <none>
+  100 15795 R   696432  57344        tar /usr/bin/fmli
+[...]
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/iotop_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/iotop_example.txt
new file mode 100644
index 0000000..8cf55c1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/iotop_example.txt
@@ -0,0 +1,142 @@
+The following are demonstrations of the iotop program,
+
+
+Here we run iotop with the -C option to not clear the screen, but instead
+provide a scrolling output,
+
+   # iotop -C
+   Tracing... Please wait.
+   2005 Jul 16 00:34:40,  load: 1.21,  disk_r:  12891 KB,  disk_w:   1087 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D            BYTES
+       0      3      0 fsflush          cmdk0   102   4 W              512
+       0      3      0 fsflush          cmdk0   102   0 W            11776
+       0  27751  20320 tar              cmdk0   102  16 W            23040
+       0      3      0 fsflush          cmdk0   102   0 R            73728
+       0      0      0 sched            cmdk0   102   0 R           548864
+       0      0      0 sched            cmdk0   102   0 W          1078272
+       0  27751  20320 tar              cmdk0   102  16 R          1514496
+       0  27751  20320 tar              cmdk0   102   3 R         11767808
+   
+   2005 Jul 16 00:34:45,  load: 1.23,  disk_r:  83849 KB,  disk_w:    488 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D            BYTES
+       0      0      0 sched            cmdk0   102   4 W             1536
+       0      0      0 sched            cmdk0   102   0 R           131072
+       0  27752  20320 find             cmdk0   102   0 R           262144
+       0      0      0 sched            cmdk0   102   0 W           498176
+       0  27751  20320 tar              cmdk0   102   3 R         11780096
+       0  27751  20320 tar              cmdk0   102   5 R         29745152
+       0  27751  20320 tar              cmdk0   102   4 R         47203328
+   
+   2005 Jul 16 00:34:50,  load: 1.25,  disk_r:  22394 KB,  disk_w:      2 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D            BYTES
+       0  27752  20320 find             cmdk0   102   0 W             2048
+       0      0      0 sched            cmdk0   102   0 R            16384
+       0    321      1 automountd       cmdk0   102   0 R            22528
+       0  27752  20320 find             cmdk0   102   0 R          1462272
+       0  27751  20320 tar              cmdk0   102   5 R         17465344
+
+In the above output, we can see a tar command is reading from the cmdk0 
+disk, from several different slices (different minor numbers), on the last
+report focusing on 102,5 (an "ls -lL" in /dev/dsk can explain the number to
+slice mappings).
+
+The disk_r and disk_w values give a summary of the overall activity in 
+bytes.
+
+
+
+Bytes can be used as a yardstick to determine which process is keeping the
+disks busy, however either of the delta times available from iotop would 
+be more accurate (as they take into account whether the activity is random 
+or sequential).  
+
+   # iotop -Co
+   Tracing... Please wait.
+   2005 Jul 16 00:39:03,  load: 1.10,  disk_r:   5302 KB,  disk_w:     20 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D         DISKTIME
+       0      0      0 sched            cmdk0   102   0 W              532
+       0      0      0 sched            cmdk0   102   0 R           245398
+       0  27758  20320 find             cmdk0   102   0 R          3094794
+   
+   2005 Jul 16 00:39:08,  load: 1.14,  disk_r:   5268 KB,  disk_w:    273 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D         DISKTIME
+       0      3      0 fsflush          cmdk0   102   0 W             2834
+       0      0      0 sched            cmdk0   102   0 W           263527
+       0      0      0 sched            cmdk0   102   0 R           285015
+       0      3      0 fsflush          cmdk0   102   0 R           519187
+       0  27758  20320 find             cmdk0   102   0 R          2429232
+   
+   2005 Jul 16 00:39:13,  load: 1.16,  disk_r:    602 KB,  disk_w:   1238 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D         DISKTIME
+       0      3      0 fsflush          cmdk0   102   4 W              200
+       0      3      0 fsflush          cmdk0   102   6 W              260
+       0      3      0 fsflush          cmdk0   102   0 W              883
+       0  27758  20320 find             cmdk0   102   0 R            55686
+       0      3      0 fsflush          cmdk0   102   0 R           317508
+       0      0      0 sched            cmdk0   102   0 R           320195
+       0      0      0 sched            cmdk0   102   0 W           571084
+   [...]
+
+The disk time is in microseconds. In the first sample, we can see the find
+command caused a total of 3.094 seconds of disk time - the duration of the
+samples here is 5 seconds (the default), so it would be fair to say that
+the find command is keeping the disk 60% busy.
+
+
+
+A new option for iotop is to print percents "-P" which are based on disk
+I/O times, and hense are a fair measurementt of what is keeping the disks
+busy.
+
+   # iotop -PC 1
+   Tracing... Please wait.
+   2005 Nov 18 15:26:14,  load: 0.24,  disk_r:  13176 KB,  disk_w:      0 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D   %I/O
+       0   2215   1663 bart             cmdk0   102   0 R     85
+   
+   2005 Nov 18 15:26:15,  load: 0.25,  disk_r:   5263 KB,  disk_w:      0 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D   %I/O
+       0   2214   1663 find             cmdk0   102   0 R     15
+       0   2215   1663 bart             cmdk0   102   0 R     67
+   
+   2005 Nov 18 15:26:16,  load: 0.25,  disk_r:   8724 KB,  disk_w:      0 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D   %I/O
+       0   2214   1663 find             cmdk0   102   0 R     10
+       0   2215   1663 bart             cmdk0   102   0 R     71
+   
+   2005 Nov 18 15:26:17,  load: 0.25,  disk_r:   7528 KB,  disk_w:      0 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D   %I/O
+       0   2214   1663 find             cmdk0   102   0 R      0
+       0   2215   1663 bart             cmdk0   102   0 R     85
+   
+   2005 Nov 18 15:26:18,  load: 0.26,  disk_r:  11389 KB,  disk_w:      0 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D   %I/O
+       0   2214   1663 find             cmdk0   102   0 R      2
+       0   2215   1663 bart             cmdk0   102   0 R     80
+   
+   2005 Nov 18 15:26:19,  load: 0.26,  disk_r:  22109 KB,  disk_w:      0 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D   %I/O
+       0   2215   1663 bart             cmdk0   102   0 R     76
+   
+   ^C
+
+In the above output, bart and find jostle for disk access as they create
+a database of file checksums. The command was,
+
+	find / | bart create -I > /dev/null
+
+Note that the %I/O is in terms of 1 disk. A %I/O of say 200 is allowed - it
+would mean that effectively 2 disks were at 100%, or 4 disks at 50%, etc.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_calldist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_calldist_example.txt
new file mode 100644
index 0000000..b659c0a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_calldist_example.txt
@@ -0,0 +1,247 @@
+This is an example of j_calldist.d showing the elapsed times for different
+types of Java operations.
+
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0), and produces the output in graphical format, showing
+a histogram of the amount of time taken by each call. Method calls are only 
+visible when using the flag "+ExtendedDTraceProbes". eg, 
+java -XX:+ExtendedDTraceProbes classfile
+
+Because of the extensive results returned otherwise, this script will show you
+a configurable number of results in each section.  The default (as in this
+example) is ten.
+
+Here we see it tracing the activity of Code/Java/Func_abc.
+
+# j_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 elapsed times (us),
+
+Top 10 exclusive method elapsed times (us),
+   PID=311342, method, sun/net/www/ParseUtil.decode 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@                            3        
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@                   5        
+            2048 |@@@@                                     1        
+            4096 |                                         0        
+
+   PID=311342, method, java/net/URLClassLoader.<clinit> 
+           value  ------------- Distribution ------------- count    
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           16384 |                                         0        
+
+   PID=311342, method, java/util/jar/JarFile.hasClassPathAttribute 
+           value  ------------- Distribution ------------- count    
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           16384 |                                         0        
+
+   PID=311342, method, java/util/zip/ZipFile.read 
+           value  ------------- Distribution ------------- count    
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           16384 |                                         0        
+
+   PID=311342, method, sun/nio/cs/US_ASCII.newEncoder 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@@@@@@@@                     1        
+           16384 |                                         0        
+
+   PID=311342, method, java/util/zip/ZipFile.getInputStream 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     1        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@@@@@@@@                     1        
+           16384 |                                         0        
+
+   PID=311342, method, sun/nio/cs/US_ASCII.newDecoder 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@                               1        
+              16 |@@@@@@@@@@@@@@@@@@@@                     2        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |@@@@@@@@@@                               1        
+           16384 |                                         0        
+
+   PID=311342, method, java/util/HashMap.<init> 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@                           8        
+              16 |@@@@@@@@@@@@@@@@                         9        
+              32 |@@@@@@@@@                                5        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |@@                                       1        
+           16384 |                                         0        
+
+   PID=311342, method, java/io/UnixFileSystem.normalize 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@                                        1        
+              16 |                                         0        
+              32 |                                         0        
+              64 |@@@@@@@@@                                8        
+             128 |@@@@@@@@@@@@@                            11       
+             256 |@@@@@@                                   5        
+             512 |@@@@@@@@@                                8        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |@                                        1        
+            8192 |                                         0        
+
+   PID=311342, method, java/lang/Thread.sleep 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+         1048576 |                                         0        
+
+
+Top 10 inclusive method elapsed times (us),
+   PID=311342, method, java/net/URLClassLoader$1.run 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@                     1        
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@                     1        
+          131072 |                                         0        
+
+   PID=311342, method, java/net/URLClassLoader.findClass 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@                     1        
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@                     1        
+          131072 |                                         0        
+
+   PID=311342, method, sun/misc/URLClassPath.getLoader 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@                                      1        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@                                   2        
+            4096 |@@@@@@@@@@@@@@@@@@@@@@@@@                8        
+            8192 |                                         0        
+           16384 |@@@                                      1        
+           32768 |                                         0        
+           65536 |@@@                                      1        
+          131072 |                                         0        
+
+   PID=311342, method, java/lang/ClassLoader.loadClass 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@                                6        
+             256 |@@@@@@@@@@@@@@@@@@@@@@                   15       
+             512 |@@@@                                     3        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |                                         0        
+           32768 |                                         0        
+           65536 |@@@@                                     3        
+          131072 |                                         0        
+
+   PID=311342, method, java/security/AccessController.doPrivileged 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@                                       2        
+              32 |@                                        1        
+              64 |@@@@                                     4        
+             128 |@@@@@@@@@@@@@@@@                         17       
+             256 |@                                        1        
+             512 |@@@@                                     4        
+            1024 |@@                                       2        
+            2048 |@                                        1        
+            4096 |@@@@@@                                   6        
+            8192 |@                                        1        
+           16384 |@@                                       2        
+           32768 |                                         0        
+           65536 |@@                                       2        
+          131072 |                                         0        
+
+   PID=311342, method, Func_abc.func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   PID=311342, method, Func_abc.func_b 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   PID=311342, method, java/lang/Thread.sleep 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+         1048576 |                                         0        
+
+   PID=311342, method, Func_abc.func_a 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+   PID=311342, method, Func_abc.main 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+The elapsed times section is empty.  It would show us anything that is not a 
+Java method - garbage collection for example.  However there was nothing of
+the kind in this example. 
+
+The exclusive method elapsed times show us the time spent in the top ten most
+time consuming methods, not including time spent in subroutines called by 
+those methods.
+
+The inclusive method elapsed times show us the time spent in the top ten most 
+time consuming methods including time spent in subroutines called by those 
+methods.
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_calls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_calls_example.txt
new file mode 100644
index 0000000..3aacb2c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_calls_example.txt
@@ -0,0 +1,137 @@
+The following are examples of running the j_calls.d script.
+
+This traces activity from all Java processes on the system with hotspot 
+provider support (1.6.0). Method calls and object allocation are only visible 
+when using the flag "+ExtendedDTraceProbes". eg, 
+java -XX:+ExtendedDTraceProbes classfile
+
+Here we see it running on Code/Java/Func_abc
+
+# j_calls.d 
+Tracing... Hit Ctrl-C to end.
+^C
+
+    PID TYPE     NAME                                                    COUNT
+ 311334 cload    Func_abc                                                    1
+ 311334 cload    java/io/BufferedInputStream                                 1
+ 311334 cload    java/io/BufferedOutputStream                                1
+ 311334 cload    java/io/BufferedReader                                      1
+ 311334 cload    java/io/BufferedWriter                                      1
+ 311334 cload    java/io/Closeable                                           1
+ 311334 cload    java/io/Console                                             1
+ 311334 cload    java/io/Console$1                                           1
+ 311334 cload    java/io/Console$1$1                                         1
+ 311334 cload    java/io/DataInput                                           1
+ 311334 cload    java/io/DataInputStream                                     1
+ 311334 cload    java/io/DeleteOnExitHook                                    1
+ 311334 cload    java/io/ExpiringCache                                       1
+ 311334 cload    java/io/ExpiringCache$1                                     1
+ 311334 cload    java/io/ExpiringCache$Entry                                 1
+ 311334 cload    java/io/File                                                1
+ 311334 cload    java/io/File$1                                              1
+ 311334 cload    java/io/FileDescriptor                                      1
+ 311334 cload    java/io/FileInputStream                                     1
+ 311334 cload    java/io/FileOutputStream                                    1
+ 311334 cload    java/io/FilePermission                                      1
+ 311334 cload    java/io/FilePermission$1                                    1
+ 311334 cload    java/io/FilePermissionCollection                            1
+ 311334 cload    java/io/FileReader                                          1
+ 311334 cload    java/io/FileSystem                                          1
+ 311334 cload    java/io/FilterInputStream                                   1
+ 311334 cload    java/io/FilterOutputStream                                  1
+ 311334 cload    java/io/Flushable                                           1
+ 311334 cload    java/io/InputStream                                         1
+ 311334 cload    java/io/InputStreamReader                                   1
+ 311334 cload    java/io/ObjectStreamClass                                   1
+ 311334 cload    java/io/ObjectStreamField                                   1
+ 311334 cload    java/io/OutputStream                                        1
+ 311334 cload    java/io/OutputStreamWriter                                  1
+ 311334 cload    java/io/PrintStream                                         1
+ 311334 cload    java/io/Reader                                              1
+ 311334 cload    java/io/Serializable                                        1
+ 311334 cload    java/io/UnixFileSystem                                      1
+ 311334 cload    java/io/Writer                                              1
+ 311334 cload    java/lang/AbstractStringBuilder                             1
+ 311334 cload    java/lang/Appendable                                        1
+ 311334 cload    java/lang/ApplicationShutdownHooks                          1
+ 311334 cload    java/lang/ArithmeticException                               1
+ 311334 cload    java/lang/ArrayStoreException                               1
+ 311334 cload    java/lang/Boolean                                           1
+ 311334 cload    java/lang/Byte                                              1
+ 311334 cload    java/lang/CharSequence                                      1
+ 311334 cload    java/lang/Character                                         1
+ 311334 cload    java/lang/CharacterDataLatin1                               1
+ 311334 cload    java/lang/Class                                             1
+[... 1400 lines truncated ...]
+ 311334 method   java/lang/Class.getClassLoader0                            34
+ 311334 method   java/lang/String.toLowerCase                               34
+ 311334 method   sun/security/action/GetPropertyAction.run                  34
+ 311334 method   java/nio/CharBuffer.arrayOffset                            36
+ 311334 method   java/util/HashMap.getEntry                                 36
+ 311334 method   java/io/File.<init>                                        37
+ 311334 method   java/io/UnixFileSystem.prefixLength                        37
+ 311334 oalloc   java/io/File                                               37
+ 311334 oalloc   java/lang/reflect/Field                                    37
+ 311334 method   java/io/BufferedReader.readLine                            38
+ 311334 method   java/util/concurrent/locks/AbstractOwnableSynchronizer.setExclusiveOwnerThread       38
+ 311334 method   java/lang/CharacterDataLatin1.toLowerCase                  41
+ 311334 method   java/lang/CharacterDataLatin1.getProperties                43
+ 311334 method   java/security/AccessController.doPrivileged                43
+ 311334 method   java/util/Vector.size                                      43
+ 311334 method   java/nio/Buffer.position                                   44
+ 311334 method   java/nio/ByteBuffer.arrayOffset                            44
+ 311334 method   java/lang/System.getProperty                               48
+ 311334 method   java/util/Properties.getProperty                           50
+ 311334 method   java/util/BitSet.expandTo                                  51
+ 311334 method   java/util/BitSet.set                                       51
+ 311334 method   java/lang/System.checkKey                                  56
+ 311334 method   java/lang/Thread.currentThread                             57
+ 311334 method   java/util/Hashtable$Entry.<init>                           57
+ 311334 oalloc   [Ljava/lang/String;                                        57
+ 311334 oalloc   java/util/Hashtable$Entry                                  57
+ 311334 method   java/util/Hashtable.get                                    59
+ 311334 method   java/util/Hashtable.put                                    63
+ 311334 method   java/util/BitSet.checkInvariants                           71
+ 311334 method   java/util/BitSet.wordIndex                                 72
+ 311334 method   java/lang/StringBuilder.<init>                             73
+ 311334 method   java/lang/StringBuilder.toString                           73
+ 311334 oalloc   java/lang/StringBuilder                                    73
+ 311334 method   java/lang/AbstractStringBuilder.expandCapacity             81
+ 311334 method   java/util/HashMap.hash                                     81
+ 311334 method   java/util/HashMap.indexFor                                 81
+ 311334 method   java/lang/AbstractStringBuilder.<init>                     82
+ 311334 method   java/lang/Character.toLowerCase                            82
+ 311334 method   java/lang/String.startsWith                                83
+ 311334 method   java/util/Arrays.copyOf                                    87
+ 311334 method   java/lang/String.lastIndexOf                               90
+ 311334 method   java/lang/String.substring                                 94
+ 311334 method   java/util/Arrays.copyOfRange                              107
+ 311334 method   java/lang/String.getChars                                 156
+ 311334 method   java/lang/System.getSecurityManager                       174
+ 311334 method   java/lang/String.<init>                                   175
+ 311334 method   java/lang/String.equals                                   202
+ 311334 method   java/lang/Math.min                                        208
+ 311334 method   java/lang/String.hashCode                                 213
+ 311334 method   java/lang/String.indexOf                                  302
+ 311334 oalloc   [Ljava/lang/Object;                                       326
+ 311334 method   java/lang/System.arraycopy                                360
+ 311334 oalloc   [I                                                        374
+ 311334 oalloc   java/lang/Class                                           395
+ 311334 oalloc   [B                                                        406
+ 311334 oalloc   [S                                                        486
+ 311334 method   java/lang/StringBuilder.append                            533
+ 311334 oalloc   [[I                                                       541
+ 311334 method   java/lang/AbstractStringBuilder.append                    549
+ 311334 method   java/lang/Object.<init>                                   823
+ 311334 oalloc   java/lang/String                                          931
+ 311334 oalloc   [C                                                       1076
+ 311334 method   java/lang/String.charAt                                  1960
+
+This shows us each of the events associated with the PID 311334, and the
+number of times each event happened.  These events can be of type cload (class
+load), method (method call), mcompile (method compile), mload (compiled method
+load), oalloc (object alloc) or thread (thread start).  
+
+In this case you can see 1960 calls to java/lang/String.charAt, and 1076
+object allocations of type [C.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_calltime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_calltime_example.txt
new file mode 100644
index 0000000..937e06f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_calltime_example.txt
@@ -0,0 +1,67 @@
+The following are examples of j_calltime.d.
+
+This script traces the elapsed time of Java methods and prints a report of the
+top ten in each category.   This number is configurable with simple edit of
+the DTrace script
+
+Here it traces the example program, Code/Java/Func_abc
+
+# j_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 counts,
+      PID TYPE       NAME                                                COUNT
+   311358 method     java/lang/String.equals                               202
+   311358 method     java/lang/Math.min                                    208
+   311358 method     java/lang/String.hashCode                             213
+   311358 method     java/lang/String.indexOf                              302
+   311358 method     java/lang/System.arraycopy                            360
+   311358 method     java/lang/StringBuilder.append                        533
+   311358 method     java/lang/AbstractStringBuilder.append                549
+   311358 method     java/lang/Object.<init>                               823
+   311358 method     java/lang/String.charAt                              1960
+        0 total      -                                                   12020
+
+Top 10 elapsed times (us),
+      PID TYPE       NAME                                                TOTAL
+
+Top 10 exclusive method elapsed times (us),
+      PID TYPE       NAME                                                TOTAL
+   311358 method     java/nio/ByteBuffer.<init>                           5430
+   311358 method     java/lang/String.charAt                              6079
+   311358 method     java/lang/String.<init>                              7306
+   311358 method     java/lang/StringBuilder.append                      10240
+   311358 method     java/util/StringTokenizer.scanToken                 11075
+   311358 method     java/net/URL.<clinit>                               12519
+   311358 method     java/io/UnixFileSystem.normalize                    13218
+   311358 method     sun/net/www/ParseUtil.decode                        14208
+   311358 method     java/lang/Thread.sleep                            3016374
+        0 total      -                                                 3344993
+
+Top 10 inclusive method elapsed times (us),
+      PID TYPE       NAME                                                TOTAL
+   311358 method     sun/misc/Launcher.<clinit>                         129120
+   311358 method     java/lang/ClassLoader.initSystemClassLoader        129851
+   311358 method     java/lang/ClassLoader.getSystemClassLoader         129897
+   311358 method     java/lang/ClassLoader.loadClass                    267404
+   311358 method     java/security/AccessController.doPrivileged        278364
+   311358 method     Func_abc.func_c                                   1009971
+   311358 method     Func_abc.func_b                                   2019995
+   311358 method     java/lang/Thread.sleep                            3016374
+   311358 method     Func_abc.func_a                                   3027043
+   311358 method     Func_abc.main                                     3027068
+
+Counts shows us how many times each different method was called, and how
+many methods were called in total.
+
+The exclusive method elapsed times show the time that each method spent
+processing code - while not in other method.
+
+The inclusive method elapsed times show the time that each method spent
+processing code, including the time spent in other calls.
+
+These elapsed times are the absolute time from when the method began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_classflow_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_classflow_example.txt
new file mode 100644
index 0000000..b8a9b75
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_classflow_example.txt
@@ -0,0 +1,89 @@
+Following are examples of j_classflow.d.  
+
+This watches Java method entries and returns from all Java processes on the 
+system with hotspot provider support (1.6.0) and the flag
+"+ExtendedDTraceProbes".  eg, java -XX:+ExtendedDTraceProbes classfile
+
+Here we can see it run on Code/Java/Func_abc. 
+
+# j_classflow.d Func_abc
+  C    PID TIME(us)         -- CLASS.METHOD
+  0 311425 4789778117827    -> Func_abc.main
+  0 311425 4789778117844      -> Func_abc.func_a
+  0 311425 4789779120071        -> Func_abc.func_b
+  0 311425 4789780130070          -> Func_abc.func_c
+  0 311425 4789781140067          <- Func_abc.func_c
+  0 311425 4789781140079        <- Func_abc.func_b
+  0 311425 4789781140087      <- Func_abc.func_a
+  0 311425 4789781140095    <- Func_abc.main
+^C
+
+The first column, C gives us the CPU ID.
+
+The second column, TIME(us), gives us the time since boot in microseconds.
+
+The third column, PID gives us the Process ID.
+
+The fourth column, CLASS.METHOD gives us the Java class and method name.
+
+We can see that Func_abc.main called Func.abc.func_a, which in turn
+called Func_abc.funcb etc.
+
+Here we can see an example of running it on java/io/BufferedOutputStream
+
+# j_classflow.d java/io/BufferedOutputStream
+  C    PID TIME(us)         -- CLASS.METHOD
+  0 311461 4790094765413    -> java/io/BufferedOutputStream.<init>
+  0 311461 4790094765459    <- java/io/BufferedOutputStream.<init>
+  0 311461 4790094779559    -> java/io/BufferedOutputStream.<init>
+  0 311461 4790094779595    <- java/io/BufferedOutputStream.<init>
+  0 311461 4790094965883    -> java/io/BufferedOutputStream.write
+  0 311461 4790094965913    <- java/io/BufferedOutputStream.write
+  0 311461 4790094965926    -> java/io/BufferedOutputStream.flush
+  0 311461 4790094965936      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790094966279      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790094966293    <- java/io/BufferedOutputStream.flush
+  0 311461 4790094966588    -> java/io/BufferedOutputStream.write
+  0 311461 4790094966602    <- java/io/BufferedOutputStream.write
+  0 311461 4790094966610    -> java/io/BufferedOutputStream.flush
+  0 311461 4790094966618      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790094966778      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790094966787    <- java/io/BufferedOutputStream.flush
+  0 311461 4790094966811    -> java/io/BufferedOutputStream.flush
+  0 311461 4790094966819      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790094966828      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790094966836    <- java/io/BufferedOutputStream.flush
+  0 311461 4790095970345    -> java/io/BufferedOutputStream.write
+  0 311461 4790095970372    <- java/io/BufferedOutputStream.write
+  0 311461 4790095970382    -> java/io/BufferedOutputStream.flush
+  0 311461 4790095970390      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790095970453      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790095970462    <- java/io/BufferedOutputStream.flush
+  0 311461 4790095970737    -> java/io/BufferedOutputStream.write
+  0 311461 4790095970751    <- java/io/BufferedOutputStream.write
+  0 311461 4790095970759    -> java/io/BufferedOutputStream.flush
+  0 311461 4790095970766      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790095970795      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790095970804    <- java/io/BufferedOutputStream.flush
+  0 311461 4790095970828    -> java/io/BufferedOutputStream.flush
+  0 311461 4790095970836      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790095970844      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790095970853    <- java/io/BufferedOutputStream.flush
+  0 311461 4790096980348    -> java/io/BufferedOutputStream.write
+  0 311461 4790096980373    <- java/io/BufferedOutputStream.write
+  0 311461 4790096980383    -> java/io/BufferedOutputStream.flush
+  0 311461 4790096980391      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790096980452      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790096980460    <- java/io/BufferedOutputStream.flush
+  0 311461 4790096980735    -> java/io/BufferedOutputStream.write
+  0 311461 4790096980749    <- java/io/BufferedOutputStream.write
+  0 311461 4790096980757    -> java/io/BufferedOutputStream.flush
+  0 311461 4790096980765      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790096980794      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790096980803    <- java/io/BufferedOutputStream.flush
+  0 311461 4790096980826    -> java/io/BufferedOutputStream.flush
+  0 311461 4790096980834      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790096980843      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790096980851    <- java/io/BufferedOutputStream.flush
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_cpudist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_cpudist_example.txt
new file mode 100644
index 0000000..15abac6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_cpudist_example.txt
@@ -0,0 +1,252 @@
+This is an example of j_cpudist.d showing the elapsed times for different
+types of Java operations.
+
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0), and produces the output in graphical format, showing
+a histogram of the amount of time taken by each call. Method calls are only
+visible when using the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+
+Because of the extensive results returned otherwise, this script will show you
+a configurable number of results in each section.  The default (as in this
+example) is ten.
+
+Here we see it tracing the activity of Code/Java/Func_abc.
+
+# j_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 on-CPU times (us),
+
+Top 10 exclusive method on-CPU times (us),
+   PID=311364, method, java/lang/AbstractStringBuilder.append 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@             382      
+               2 |@@@@@@@@@@@                              151      
+               4 |@                                        13       
+               8 |                                         1        
+              16 |                                         1        
+              32 |                                         1        
+              64 |                                         0        
+
+   PID=311364, method, java/util/Arrays.copyOf 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          68       
+               4 |@@@@@@@                                  15       
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         1        
+              64 |                                         1        
+             128 |                                         0        
+             256 |@                                        2        
+             512 |                                         0        
+
+   PID=311364, method, java/io/UnixFileSystem.normalize 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@                                        1        
+               4 |                                         0        
+               8 |@@@@@@@@@@@                              9        
+              16 |@@@@@@@@@@@@@@                           12       
+              32 |@@@@@@                                   5        
+              64 |@@@@@@@                                  6        
+             128 |@                                        1        
+             256 |                                         0        
+
+   PID=311364, method, java/io/File.<clinit> 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   PID=311364, method, sun/misc/URLClassPath$JarLoader.getJarFile 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   PID=311364, method, java/io/FilePermission$1.run 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     2        
+               4 |@@@@@@@@@@                               1        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |@@@@@@@@@@                               1        
+            2048 |                                         0        
+
+   PID=311364, method, java/lang/StringBuilder.append 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  526      
+               4 |                                         2        
+               8 |                                         0        
+              16 |                                         4        
+              32 |                                         1        
+              64 |                                         0        
+
+   PID=311364, method, java/lang/String.<init> 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    162      
+               4 |@@                                       10       
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         1        
+             128 |                                         0        
+             256 |                                         1        
+             512 |                                         0        
+            1024 |                                         1        
+            2048 |                                         0        
+
+   PID=311364, method, java/lang/String.charAt 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1953     
+               2 |                                         3        
+               4 |                                         1        
+               8 |                                         1        
+              16 |                                         2        
+              32 |                                         0        
+
+   PID=311364, method, java/lang/System.initializeSystemClass 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+
+Top 10 inclusive method on-CPU times (us),
+   PID=311364, method, sun/misc/Launcher$ExtClassLoader.<init> 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           32768 |                                         0        
+
+   PID=311364, method, sun/misc/Launcher$ExtClassLoader.getExtClassLoader 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           32768 |                                         0        
+
+   PID=311364, method, sun/misc/Launcher$ExtClassLoader.getExtURLs 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           32768 |                                         0        
+
+   PID=311364, method, sun/misc/Launcher.<clinit> 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           32768 |                                         0        
+
+   PID=311364, method, sun/misc/Launcher.<init> 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           32768 |                                         0        
+
+   PID=311364, method, java/lang/ClassLoader.loadClassInternal 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              6        
+             128 |@@@@@@@@@                                2        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |@@@@                                     1        
+           32768 |                                         0        
+
+   PID=311364, method, sun/misc/Launcher$AppClassLoader.loadClass 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              6        
+             128 |@@@@@@@@@                                2        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |@@@@                                     1        
+           32768 |                                         0        
+
+   PID=311364, method, sun/misc/URLClassPath.getLoader 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@                                      1        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@                                      1        
+             512 |@@@@@@@@@@@@@@@@@@@@@@                   7        
+            1024 |@@@@@@                                   2        
+            2048 |                                         0        
+            4096 |@@@                                      1        
+            8192 |@@@                                      1        
+           16384 |                                         0        
+
+   PID=311364, method, java/lang/ClassLoader.loadClass 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@                                6        
+              64 |@@@@@@@@@@@@@@@@@@@@@                    14       
+             128 |@@@@@@                                   4        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |@                                        1        
+           16384 |@@@                                      2        
+           32768 |                                         0        
+
+   PID=311364, method, java/security/AccessController.doPrivileged 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@                                        1        
+               8 |@@@@                                     4        
+              16 |@@@@@@@@@@                               11       
+              32 |@@@@@@@@@@                               11       
+              64 |                                         0        
+             128 |@@@                                      3        
+             256 |@                                        1        
+             512 |@@@@@                                    5        
+            1024 |@@                                       2        
+            2048 |@                                        1        
+            4096 |@                                        1        
+            8192 |@@                                       2        
+           16384 |@                                        1        
+           32768 |                                         0        
+
+The elapsed times section is empty.  It would show us anything that is not a
+Java method - garbage collection for example.  However there was nothing of
+the kind in this example.
+
+The exclusive method elapsed times show us the time spent on-CPU by the most
+time consuming methods, not including time spent in subroutines called by
+those methods.
+
+The inclusive method elapsed times show us the time spent on-CPU by the top
+ten most time consuming methods including time spent in subroutines called by
+those methods.
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_cputime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_cputime_example.txt
new file mode 100644
index 0000000..0947cc0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_cputime_example.txt
@@ -0,0 +1,75 @@
+The following are examples of j_cputime.d.
+
+This script traces the on-CPU time of Java methods and prints a report. Here 
+it traces the example program, Code/Java/Func_abc
+
+# j_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 counts,
+      PID TYPE       NAME                                                COUNT
+   311374 method     java/lang/String.equals                               202
+   311374 method     java/lang/Math.min                                    208
+   311374 method     java/lang/String.hashCode                             213
+   311374 method     java/lang/String.indexOf                              302
+   311374 method     java/lang/System.arraycopy                            360
+   311374 method     java/lang/StringBuilder.append                        533
+   311374 method     java/lang/AbstractStringBuilder.append                549
+   311374 method     java/lang/Object.<init>                               823
+   311374 method     java/lang/String.charAt                              1960
+        0 total      -                                                   12020
+
+Top 10 on-CPU times (us),
+      PID TYPE       NAME                                                TOTAL
+
+Top 10 exclusive method on-CPU times (us),
+      PID TYPE       NAME                                                TOTAL
+   311374 method     java/io/FilePermission$1.run                         1055
+   311374 method     java/util/Arrays.copyOf                              1110
+   311374 method     sun/net/www/ParseUtil.decode                         1161
+   311374 method     java/io/File.<clinit>                                1212
+   311374 method     java/lang/StringBuilder.append                       1228
+   311374 method     java/io/UnixFileSystem.normalize                     1402
+   311374 method     java/lang/String.<init>                              2251
+   311374 method     java/lang/String.charAt                              2262
+   311374 method     java/lang/System.initializeSystemClass               2751
+        0 total      -                                                   99868
+
+Top 10 inclusive method on-CPU times (us),
+      PID TYPE       NAME                                                TOTAL
+   311374 method     java/lang/ClassLoader.loadClassInternal             25826
+   311374 method     sun/misc/Launcher$ExtClassLoader.getExtClassLoader    25914
+   311374 method     java/net/URL.<init>                                 27677
+   311374 method     sun/misc/Launcher.<init>                            28566
+   311374 method     sun/misc/Launcher.<clinit>                          28744
+   311374 method     java/lang/ClassLoader.initSystemClassLoader         29241
+   311374 method     java/lang/ClassLoader.getSystemClassLoader          29249
+   311374 method     java/lang/System.initializeSystemClass              33814
+   311374 method     java/lang/ClassLoader.loadClass                     66564
+   311374 method     java/security/AccessController.doPrivileged         67499
+
+You can see that it prints the top ten results in each of four categories.
+
+The first section reports how many times each subroutine was called, and it's
+type.
+
+The second section reports on the on-CPU time of anything that was not of type
+"method", in this case - none. 
+
+The exclusive method on-CPU times shows, amongst other results, that
+java/lang/String.charAt spent around 2,200 microseconds on-CPU.  This times 
+excludes time spent in other subroutines.
+
+The inclusive method on-CPU times show the times that various methods
+spent on-CPU.  This includes the time spent in other subroutines called.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_events_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_events_example.txt
new file mode 100644
index 0000000..2c48700
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_events_example.txt
@@ -0,0 +1,134 @@
+The following are examples of j_events.d.
+
+This counts events from all Java processes on the system with hotspot
+provider support (1.6.0). Some events such as method calls are only visible
+when using the flag "+ExtendedDTraceProbes". eg, 
+java -XX:+ExtendedDTraceProbes classfile
+
+Here you can see it running while the program Code/Java/Func_abc
+
+# j_events.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+    PID  EVENT                                   COUNT
+ 311379  AttachCurrentThread-entry                   1
+ 311379  AttachCurrentThread-return                  1
+ 311379  CallIntMethod-entry                         1
+ 311379  CallIntMethod-return                        1
+ 311379  CallStaticBooleanMethod-entry               1
+ 311379  CallStaticBooleanMethod-return              1
+ 311379  CallStaticObjectMethod-entry                1
+ 311379  CallStaticObjectMethod-return               1
+ 311379  CallStaticObjectMethodV-entry               1
+ 311379  CallStaticObjectMethodV-return              1
+ 311379  CallStaticVoidMethod-entry                  1
+ 311379  CallStaticVoidMethod-return                 1
+ 311379  CreateJavaVM-entry                          1
+ 311379  CreateJavaVM-return                         1
+ 311379  DestroyJavaVM-entry                         1
+ 311379  DestroyJavaVM-return                        1
+ 311379  DetachCurrentThread-entry                   1
+ 311379  DetachCurrentThread-return                  1
+ 311379  ExceptionCheck-entry                        1
+ 311379  ExceptionCheck-return                       1
+ 311379  ExceptionClear-entry                        1
+ 311379  ExceptionClear-return                       1
+ 311379  GetDefaultJavaVMInitArgs-entry              1
+ 311379  GetDefaultJavaVMInitArgs-return             1
+ 311379  GetJavaVM-entry                             1
+ 311379  GetJavaVM-return                            1
+ 311379  GetStringRegion-entry                       1
+ 311379  GetStringRegion-return                      1
+ 311379  NewByteArray-entry                          1
+ 311379  NewByteArray-return                         1
+ 311379  NewObject-entry                             1
+ 311379  NewObject-return                            1
+ 311379  NewObjectV-entry                            1
+ 311379  NewObjectV-return                           1
+ 311379  SetBooleanField-entry                       1
+ 311379  SetBooleanField-return                      1
+ 311379  ToReflectedMethod-entry                     1
+ 311379  ToReflectedMethod-return                    1
+ 311379  vm-init-begin                               1
+ 311379  vm-init-end                                 1
+ 311379  vm-shutdown                                 1
+ 311379  NewGlobalRef-entry                          2
+ 311379  NewGlobalRef-return                         2
+ 311379  monitor-wait                                2
+ 311379  GetStaticFieldID-entry                      3
+ 311379  GetStaticFieldID-return                     3
+ 311379  NewObjectArray-entry                        3
+ 311379  NewObjectArray-return                       3
+ 311379  SetStaticObjectField-entry                  3
+ 311379  SetStaticObjectField-return                 3
+ 311379  GetStaticMethodID-entry                     4
+ 311379  GetStaticMethodID-return                    4
+ 311379  EnsureLocalCapacity-entry                   5
+ 311379  EnsureLocalCapacity-return                  5
+ 311379  SetByteArrayRegion-entry                    5
+ 311379  SetByteArrayRegion-return                   5
+ 311379  SetLongField-entry                          5
+ 311379  SetLongField-return                         5
+ 311379  GetMethodID-entry                           6
+ 311379  GetMethodID-return                          6
+ 311379  GetObjectArrayElement-entry                 6
+ 311379  GetObjectArrayElement-return                6
+ 311379  GetSuperclass-entry                         6
+ 311379  GetSuperclass-return                        6
+ 311379  thread-start                                6
+ 311379  SetIntField-entry                           8
+ 311379  SetIntField-return                          8
+ 311379  GetArrayLength-entry                        9
+ 311379  GetArrayLength-return                       9
+ 311379  GetByteArrayRegion-entry                    9
+ 311379  GetByteArrayRegion-return                   9
+ 311379  RegisterNatives-entry                       9
+ 311379  RegisterNatives-return                      9
+ 311379  GetObjectClass-entry                       10
+ 311379  GetObjectClass-return                      10
+ 311379  FindClass-entry                            11
+ 311379  FindClass-return                           11
+ 311379  SetObjectArrayElement-entry                12
+ 311379  SetObjectArrayElement-return               12
+ 311379  GetStringUTFLength-entry                   18
+ 311379  GetStringUTFLength-return                  18
+ 311379  GetStringUTFRegion-entry                   18
+ 311379  GetStringUTFRegion-return                  18
+ 311379  GetFieldID-entry                           21
+ 311379  GetFieldID-return                          21
+ 309790  CallStaticVoidMethod-entry                 24
+ 309790  CallStaticVoidMethod-return                24
+ 194441  CallStaticVoidMethod-entry                 26
+ 194441  CallStaticVoidMethod-return                26
+ 311379  GetStringUTFChars-entry                    29
+ 311379  GetStringUTFChars-return                   29
+ 311379  ReleaseStringUTFChars-entry                29
+ 311379  ReleaseStringUTFChars-return               29
+ 311379  CallObjectMethod-entry                     30
+ 311379  CallObjectMethod-return                    30
+ 311379  GetStringCritical-entry                    35
+ 311379  GetStringCritical-return                   35
+ 311379  ReleaseStringCritical-entry                35
+ 311379  ReleaseStringCritical-return               35
+ 311379  ExceptionOccurred-entry                    46
+ 311379  ExceptionOccurred-return                   46
+ 311379  GetStringLength-entry                      54
+ 311379  GetStringLength-return                     54
+ 311379  NewStringUTF-entry                         54
+ 311379  NewStringUTF-return                        54
+ 311379  NewString-entry                            55
+ 311379  NewString-return                           55
+ 311379  GetObjectField-entry                       60
+ 311379  GetObjectField-return                      60
+ 311379  DeleteLocalRef-entry                      108
+ 311379  DeleteLocalRef-return                     108
+ 311379  class-loaded                              327
+ 311379  object-alloc                             5389
+ 311379  method-return                           12024
+ 311379  method-entry                            12031
+
+You can see that nearly all of the events recorded are from PID 311379, which
+we can assume in this case is the program in question.  Not all of the lines
+correspond to this, however, which is something to be aware of while analysing
+the results.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_flow_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_flow_example.txt
new file mode 100644
index 0000000..433bef3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_flow_example.txt
@@ -0,0 +1,1292 @@
+The following are examples of j_flow.d.
+
+This is a simple script to trace the not-so-simple flow of Java methods and
+classes.  Here it traces the example program, Code/Java/func_abc
+
+# j_flow.d
+  C    PID TIME(us)         -- CLASS.METHOD
+  0 311403 4789112583163    -> java/lang/Object.<clinit>
+  0 311403 4789112583207      -> java/lang/Object.registerNatives
+  0 311403 4789112583323      <- java/lang/Object.registerNatives
+  0 311403 4789112583333    <- java/lang/Object.<clinit>
+  0 311403 4789112583343    -> java/lang/String.<clinit>
+  0 311403 4789112583732      -> java/lang/String$CaseInsensitiveComparator.<init>
+  0 311403 4789112583743        -> java/lang/String$CaseInsensitiveComparator.<init>
+  0 311403 4789112583752          -> java/lang/Object.<init>
+  0 311403 4789112583760          <- java/lang/Object.<init>
+  0 311403 4789112583767        <- java/lang/String$CaseInsensitiveComparator.<init>
+  0 311403 4789112583774      <- java/lang/String$CaseInsensitiveComparator.<init>
+  0 311403 4789112583783    <- java/lang/String.<clinit>
+  0 311403 4789112583849    -> java/lang/System.<clinit>
+  0 311403 4789112583859      -> java/lang/System.registerNatives
+  0 311403 4789112583878      <- java/lang/System.registerNatives
+  0 311403 4789112583887      -> java/lang/System.nullInputStream
+  0 311403 4789112583895        -> java/lang/System.currentTimeMillis
+  0 311403 4789112583905        <- java/lang/System.currentTimeMillis
+  0 311403 4789112583913      <- java/lang/System.nullInputStream
+  0 311403 4789112583923      -> java/lang/System.nullPrintStream
+  0 311403 4789112583929        -> java/lang/System.currentTimeMillis
+  0 311403 4789112583937        <- java/lang/System.currentTimeMillis
+  0 311403 4789112583944      <- java/lang/System.nullPrintStream
+  0 311403 4789112583951      -> java/lang/System.nullPrintStream
+  0 311403 4789112583958        -> java/lang/System.currentTimeMillis
+  0 311403 4789112583965        <- java/lang/System.currentTimeMillis
+  0 311403 4789112583972      <- java/lang/System.nullPrintStream
+  0 311403 4789112583982    <- java/lang/System.<clinit>
+  0 311403 4789112584058    -> java/lang/ThreadGroup.<init>
+  0 311403 4789112584068      -> java/lang/Object.<init>
+  0 311403 4789112584075      <- java/lang/Object.<init>
+  0 311403 4789112584100    <- java/lang/ThreadGroup.<init>
+  0 311403 4789112584109    -> java/lang/ThreadGroup.<init>
+  0 311403 4789112584116      -> java/lang/Object.<init>
+  0 311403 4789112584123      <- java/lang/Object.<init>
+  0 311403 4789112584139      -> java/lang/ThreadGroup.checkAccess
+  0 311403 4789112584148        -> java/lang/System.getSecurityManager
+  0 311403 4789112584157        <- java/lang/System.getSecurityManager
+  0 311403 4789112584164      <- java/lang/ThreadGroup.checkAccess
+  0 311403 4789112584175      -> java/lang/ThreadGroup.add
+  0 311403 4789112584196      <- java/lang/ThreadGroup.add
+  0 311403 4789112584202    <- java/lang/ThreadGroup.<init>
+  0 311403 4789112584385    -> java/lang/Thread.<clinit>
+  0 311403 4789112584396      -> java/lang/Thread.registerNatives
+  0 311403 4789112584421      <- java/lang/Thread.registerNatives
+  0 311403 4789112584779      -> java/lang/RuntimePermission.<init>
+  0 311403 4789112584789        -> java/security/BasicPermission.<init>
+  0 311403 4789112584798          -> java/security/Permission.<init>
+  0 311403 4789112584806            -> java/lang/Object.<init>
+  0 311403 4789112584814            <- java/lang/Object.<init>
+  0 311403 4789112584823          <- java/security/Permission.<init>
+  0 311403 4789112584831          -> java/security/BasicPermission.init
+  0 311403 4789112584842            -> java/lang/String.length
+  0 311403 4789112584850            <- java/lang/String.length
+  0 311403 4789112584860            -> java/lang/String.charAt
+  0 311403 4789112584869            <- java/lang/String.charAt
+  0 311403 4789112584880            -> java/lang/String.equals
+  0 311403 4789112584888            <- java/lang/String.equals
+  0 311403 4789112584896          <- java/security/BasicPermission.init
+  0 311403 4789112584903        <- java/security/BasicPermission.<init>
+  0 311403 4789112584910      <- java/lang/RuntimePermission.<init>
+  0 311403 4789112585319      -> sun/misc/SoftCache.<init>
+  0 311403 4789112585329        -> java/util/AbstractMap.<init>
+  0 311403 4789112585337          -> java/lang/Object.<init>
+  0 311403 4789112585345          <- java/lang/Object.<init>
+  0 311403 4789112585355        <- java/util/AbstractMap.<init>
+  0 311403 4789112585485        -> java/lang/ref/ReferenceQueue.<clinit>
+  0 311403 4789112585554          -> java/lang/ref/ReferenceQueue$Null.<init>
+  0 311403 4789112585564            -> java/lang/ref/ReferenceQueue$Null.<init>
+  0 311403 4789112585572              -> java/lang/ref/ReferenceQueue.<init>
+  0 311403 4789112585581                -> java/lang/Object.<init>
+  0 311403 4789112585589                <- java/lang/Object.<init>
+  0 311403 4789112585646                -> java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311403 4789112585656                  -> java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311403 4789112585664                    -> java/lang/Object.<init>
+  0 311403 4789112585671                    <- java/lang/Object.<init>
+  0 311403 4789112585678                  <- java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311403 4789112585685                <- java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311403 4789112585696              <- java/lang/ref/ReferenceQueue.<init>
+  0 311403 4789112585702            <- java/lang/ref/ReferenceQueue$Null.<init>
+  0 311403 4789112585709          <- java/lang/ref/ReferenceQueue$Null.<init>
+  0 311403 4789112585717          -> java/lang/ref/ReferenceQueue$Null.<init>
+  0 311403 4789112585723            -> java/lang/ref/ReferenceQueue$Null.<init>
+  0 311403 4789112585729              -> java/lang/ref/ReferenceQueue.<init>
+  0 311403 4789112585736                -> java/lang/Object.<init>
+  0 311403 4789112585743                <- java/lang/Object.<init>
+  0 311403 4789112585748                -> java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311403 4789112585755                  -> java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311403 4789112585761                    -> java/lang/Object.<init>
+  0 311403 4789112585768                    <- java/lang/Object.<init>
+  0 311403 4789112585796                  <- java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311403 4789112585803                <- java/lang/ref/ReferenceQueue$Lock.<init>
+[... 22800 lines truncated ...]
+  0 311403 4789112982170    <- java/lang/reflect/Method.getModifiers
+  0 311403 4789112982182    -> Func_abc.main
+  0 311403 4789112982193      -> Func_abc.func_a
+  0 311403 4789112982201        -> java/lang/ClassLoader.checkPackageAccess
+  0 311403 4789112982208          -> java/lang/System.getSecurityManager
+  0 311403 4789112982215          <- java/lang/System.getSecurityManager
+  0 311403 4789112982221          -> java/util/HashSet.add
+  0 311403 4789112982228            -> java/util/HashMap.put
+  0 311403 4789112982234              -> java/lang/Object.hashCode
+  0 311403 4789112982241              <- java/lang/Object.hashCode
+  0 311403 4789112982247              -> java/util/HashMap.hash
+  0 311403 4789112982254              <- java/util/HashMap.hash
+  0 311403 4789112982260              -> java/util/HashMap.indexFor
+  0 311403 4789112982267              <- java/util/HashMap.indexFor
+  0 311403 4789112982274            <- java/util/HashMap.put
+  0 311403 4789112982280          <- java/util/HashSet.add
+  0 311403 4789112982287        <- java/lang/ClassLoader.checkPackageAccess
+  0 311403 4789112982349        -> java/lang/ClassLoader.loadClassInternal
+  0 311403 4789112982356          -> java/lang/ClassLoader.loadClass
+  0 311403 4789112982363            -> sun/misc/Launcher$AppClassLoader.loadClass
+  0 311403 4789112982369              -> java/lang/String.lastIndexOf
+  0 311403 4789112982376                -> java/lang/String.lastIndexOf
+  0 311403 4789112982384                <- java/lang/String.lastIndexOf
+  0 311403 4789112982391              <- java/lang/String.lastIndexOf
+  0 311403 4789112982396              -> java/lang/System.getSecurityManager
+  0 311403 4789112982404              <- java/lang/System.getSecurityManager
+  0 311403 4789112982410              -> java/lang/ClassLoader.loadClass
+  0 311403 4789112982416                -> java/lang/ClassLoader.findLoadedClass
+  0 311403 4789112982422                  -> java/lang/ClassLoader.check
+  0 311403 4789112982429                  <- java/lang/ClassLoader.check
+  0 311403 4789112982435                  -> java/lang/ClassLoader.checkName
+  0 311403 4789112982442                    -> java/lang/String.indexOf
+  0 311403 4789112982448                      -> java/lang/String.indexOf
+  0 311403 4789112982456                      <- java/lang/String.indexOf
+  0 311403 4789112982462                    <- java/lang/String.indexOf
+  0 311403 4789112982468                    -> sun/misc/VM.allowArraySyntax
+  0 311403 4789112982475                    <- sun/misc/VM.allowArraySyntax
+  0 311403 4789112982481                    -> java/lang/String.charAt
+  0 311403 4789112982488                    <- java/lang/String.charAt
+  0 311403 4789112982495                  <- java/lang/ClassLoader.checkName
+  0 311403 4789112982501                  -> java/lang/ClassLoader.findLoadedClass0
+  0 311403 4789112982510                  <- java/lang/ClassLoader.findLoadedClass0
+  0 311403 4789112982517                <- java/lang/ClassLoader.findLoadedClass
+  0 311403 4789112982524                -> java/lang/ClassLoader.loadClass
+  0 311403 4789112982530                  -> java/lang/ClassLoader.findLoadedClass
+  0 311403 4789112982536                    -> java/lang/ClassLoader.check
+  0 311403 4789112982543                    <- java/lang/ClassLoader.check
+  0 311403 4789112982549                    -> java/lang/ClassLoader.checkName
+  0 311403 4789112982555                      -> java/lang/String.indexOf
+  0 311403 4789112982561                        -> java/lang/String.indexOf
+  0 311403 4789112982569                        <- java/lang/String.indexOf
+  0 311403 4789112982576                      <- java/lang/String.indexOf
+  0 311403 4789112982582                      -> sun/misc/VM.allowArraySyntax
+  0 311403 4789112982589                      <- sun/misc/VM.allowArraySyntax
+  0 311403 4789112982594                      -> java/lang/String.charAt
+  0 311403 4789112982602                      <- java/lang/String.charAt
+  0 311403 4789112982608                    <- java/lang/ClassLoader.checkName
+  0 311403 4789112982614                    -> java/lang/ClassLoader.findLoadedClass0
+  0 311403 4789112982623                    <- java/lang/ClassLoader.findLoadedClass0
+  0 311403 4789112982630                  <- java/lang/ClassLoader.findLoadedClass
+  0 311403 4789112982636                  -> java/lang/ClassLoader.findBootstrapClass0
+  0 311403 4789112982642                    -> java/lang/ClassLoader.check
+  0 311403 4789112982650                    <- java/lang/ClassLoader.check
+  0 311403 4789112982655                    -> java/lang/ClassLoader.checkName
+  0 311403 4789112982662                      -> java/lang/String.indexOf
+  0 311403 4789112982668                        -> java/lang/String.indexOf
+  0 311403 4789112982676                        <- java/lang/String.indexOf
+  0 311403 4789112982682                      <- java/lang/String.indexOf
+  0 311403 4789112982688                      -> sun/misc/VM.allowArraySyntax
+  0 311403 4789112982695                      <- sun/misc/VM.allowArraySyntax
+  0 311403 4789112982701                      -> java/lang/String.charAt
+  0 311403 4789112982708                      <- java/lang/String.charAt
+  0 311403 4789112982715                    <- java/lang/ClassLoader.checkName
+  0 311403 4789112982720                    -> java/lang/ClassLoader.findBootstrapClass
+  0 311403 4789112982730                    <- java/lang/ClassLoader.findBootstrapClass
+  0 311403 4789112982737                  <- java/lang/ClassLoader.findBootstrapClass0
+  0 311403 4789112982744                <- java/lang/ClassLoader.loadClass
+  0 311403 4789112982751              <- java/lang/ClassLoader.loadClass
+  0 311403 4789112982757            <- sun/misc/Launcher$AppClassLoader.loadClass
+  0 311403 4789112982764          <- java/lang/ClassLoader.loadClass
+  0 311403 4789112982771        <- java/lang/ClassLoader.loadClassInternal
+  0 311403 4789112982780        -> java/lang/ClassLoader.checkPackageAccess
+  0 311403 4789112982787          -> java/lang/System.getSecurityManager
+  0 311403 4789112982794          <- java/lang/System.getSecurityManager
+  0 311403 4789112982800          -> java/util/HashSet.add
+  0 311403 4789112982806            -> java/util/HashMap.put
+  0 311403 4789112982813              -> java/lang/Object.hashCode
+  0 311403 4789112982820              <- java/lang/Object.hashCode
+  0 311403 4789112982826              -> java/util/HashMap.hash
+  0 311403 4789112982833              <- java/util/HashMap.hash
+  0 311403 4789112982839              -> java/util/HashMap.indexFor
+  0 311403 4789112982846              <- java/util/HashMap.indexFor
+  0 311403 4789112982853            <- java/util/HashMap.put
+  0 311403 4789112982859          <- java/util/HashSet.add
+  0 311403 4789112982866        <- java/lang/ClassLoader.checkPackageAccess
+  0 311403 4789112982879        -> java/io/PrintStream.println
+  0 311403 4789112982889          -> java/io/PrintStream.print
+  0 311403 4789112982897            -> java/io/PrintStream.write
+  0 311403 4789112982906              -> java/io/PrintStream.ensureOpen
+  0 311403 4789112982916              <- java/io/PrintStream.ensureOpen
+  0 311403 4789112982927              -> java/io/Writer.write
+  0 311403 4789112982939                -> java/io/BufferedWriter.write
+  0 311403 4789112982948                  -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789112982956                  <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789112982964                  -> java/io/BufferedWriter.min
+  0 311403 4789112982971                  <- java/io/BufferedWriter.min
+  0 311403 4789112982980                  -> java/lang/String.getChars
+  0 311403 4789112982987                    -> java/lang/System.arraycopy
+  0 311403 4789112982995                    <- java/lang/System.arraycopy
+  0 311403 4789112983002                  <- java/lang/String.getChars
+  0 311403 4789112983009                <- java/io/BufferedWriter.write
+  0 311403 4789112983016              <- java/io/Writer.write
+  0 311403 4789112983024              -> java/io/BufferedWriter.flushBuffer
+  0 311403 4789112983031                -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789112983038                <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789112983046                -> java/io/OutputStreamWriter.write
+  0 311403 4789112983056                  -> sun/nio/cs/StreamEncoder.write
+  0 311403 4789112983066                    -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789112983073                    <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789112983082                    -> sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789112983093                      -> java/nio/CharBuffer.wrap
+  0 311403 4789112983099                        -> java/nio/HeapCharBuffer.<init>
+  0 311403 4789112983106                          -> java/nio/CharBuffer.<init>
+  0 311403 4789112983113                            -> java/nio/Buffer.<init>
+  0 311403 4789112983119                              -> java/lang/Object.<init>
+  0 311403 4789112983126                              <- java/lang/Object.<init>
+  0 311403 4789112983133                              -> java/nio/Buffer.limit
+  0 311403 4789112983140                              <- java/nio/Buffer.limit
+  0 311403 4789112983146                              -> java/nio/Buffer.position
+  0 311403 4789112983153                              <- java/nio/Buffer.position
+  0 311403 4789112983160                            <- java/nio/Buffer.<init>
+  0 311403 4789112983166                          <- java/nio/CharBuffer.<init>
+  0 311403 4789112983173                        <- java/nio/HeapCharBuffer.<init>
+  0 311403 4789112983180                      <- java/nio/CharBuffer.wrap
+  0 311403 4789112983188                      -> java/nio/Buffer.hasRemaining
+  0 311403 4789112983196                      <- java/nio/Buffer.hasRemaining
+  0 311403 4789112983206                      -> java/nio/charset/CharsetEncoder.encode
+  0 311403 4789112983216                        -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789112983226                          -> java/nio/CharBuffer.hasArray
+  0 311403 4789112983233                          <- java/nio/CharBuffer.hasArray
+  0 311403 4789112983243                          -> java/nio/ByteBuffer.hasArray
+  0 311403 4789112983250                          <- java/nio/ByteBuffer.hasArray
+  0 311403 4789112983259                          -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789112983267                            -> java/nio/CharBuffer.array
+  0 311403 4789112983274                            <- java/nio/CharBuffer.array
+  0 311403 4789112983282                            -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789112983289                            <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789112983297                            -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789112983305                            <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789112983316                            -> java/nio/ByteBuffer.array
+  0 311403 4789112983323                            <- java/nio/ByteBuffer.array
+  0 311403 4789112983331                            -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112983338                            <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112983346                            -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112983354                            <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112983366                            -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789112983374                            <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789112983382                            -> java/nio/Buffer.position
+  0 311403 4789112983389                            <- java/nio/Buffer.position
+  0 311403 4789112983395                            -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112983402                            <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112983410                            -> java/nio/Buffer.position
+  0 311403 4789112983417                            <- java/nio/Buffer.position
+  0 311403 4789112983424                          <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789112983431                        <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789112983439                        -> java/nio/charset/CoderResult.isOverflow
+  0 311403 4789112983447                        <- java/nio/charset/CoderResult.isOverflow
+  0 311403 4789112983454                        -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789112983462                        <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789112983469                      <- java/nio/charset/CharsetEncoder.encode
+  0 311403 4789112983477                      -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789112983485                      <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789112983494                      -> java/nio/Buffer.remaining
+  0 311403 4789112983501                      <- java/nio/Buffer.remaining
+  0 311403 4789112983508                    <- sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789112983515                  <- sun/nio/cs/StreamEncoder.write
+  0 311403 4789112983522                <- java/io/OutputStreamWriter.write
+  0 311403 4789112983528              <- java/io/BufferedWriter.flushBuffer
+  0 311403 4789112983537              -> java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789112983546                -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789112983555                  -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789112983565                    -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789112983574                      -> java/nio/Buffer.flip
+  0 311403 4789112983581                      <- java/nio/Buffer.flip
+  0 311403 4789112983591                      -> java/nio/ByteBuffer.array
+  0 311403 4789112983598                      <- java/nio/ByteBuffer.array
+  0 311403 4789112983606                      -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112983613                      <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112983623                      -> java/io/PrintStream.write
+  0 311403 4789112983629                        -> java/io/PrintStream.ensureOpen
+  0 311403 4789112983636                        <- java/io/PrintStream.ensureOpen
+  0 311403 4789112983645                        -> java/io/BufferedOutputStream.write
+  0 311403 4789112983657                          -> java/lang/System.arraycopy
+  0 311403 4789112983664                          <- java/lang/System.arraycopy
+  0 311403 4789112983671                        <- java/io/BufferedOutputStream.write
+  0 311403 4789112983679                        -> java/io/BufferedOutputStream.flush
+  0 311403 4789112983688                          -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789112983698                            -> java/io/FileOutputStream.write
+  0 311403 4789112983707                              -> java/io/FileOutputStream.writeBytes
+  0 311403 4789112983860                              <- java/io/FileOutputStream.writeBytes
+  0 311403 4789112983868                            <- java/io/FileOutputStream.write
+  0 311403 4789112983874                          <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789112983885                        <- java/io/BufferedOutputStream.flush
+  0 311403 4789112983892                      <- java/io/PrintStream.write
+  0 311403 4789112983901                      -> java/nio/Buffer.clear
+  0 311403 4789112983909                      <- java/nio/Buffer.clear
+  0 311403 4789112983915                    <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789112983922                  <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789112983929                <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789112983936              <- java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789112983946              -> java/lang/String.indexOf
+  0 311403 4789112983952                -> java/lang/String.indexOf
+  0 311403 4789112983961                <- java/lang/String.indexOf
+  0 311403 4789112983967              <- java/lang/String.indexOf
+  0 311403 4789112983974            <- java/io/PrintStream.write
+  0 311403 4789112983981          <- java/io/PrintStream.print
+  0 311403 4789112983989          -> java/io/PrintStream.newLine
+  0 311403 4789112983995            -> java/io/PrintStream.ensureOpen
+  0 311403 4789112984002            <- java/io/PrintStream.ensureOpen
+  0 311403 4789112984010            -> java/io/BufferedWriter.newLine
+  0 311403 4789112984019              -> java/io/Writer.write
+  0 311403 4789112984025                -> java/io/BufferedWriter.write
+  0 311403 4789112984031                  -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789112984039                  <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789112984045                  -> java/io/BufferedWriter.min
+  0 311403 4789112984052                  <- java/io/BufferedWriter.min
+  0 311403 4789112984058                  -> java/lang/String.getChars
+  0 311403 4789112984064                    -> java/lang/System.arraycopy
+  0 311403 4789112984072                    <- java/lang/System.arraycopy
+  0 311403 4789112984078                  <- java/lang/String.getChars
+  0 311403 4789112984085                <- java/io/BufferedWriter.write
+  0 311403 4789112984092              <- java/io/Writer.write
+  0 311403 4789112984099            <- java/io/BufferedWriter.newLine
+  0 311403 4789112984104            -> java/io/BufferedWriter.flushBuffer
+  0 311403 4789112984111              -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789112984118              <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789112984124              -> java/io/OutputStreamWriter.write
+  0 311403 4789112984130                -> sun/nio/cs/StreamEncoder.write
+  0 311403 4789112984137                  -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789112984144                  <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789112984150                  -> sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789112984156                    -> java/nio/CharBuffer.wrap
+  0 311403 4789112984163                      -> java/nio/HeapCharBuffer.<init>
+  0 311403 4789112984169                        -> java/nio/CharBuffer.<init>
+  0 311403 4789112984175                          -> java/nio/Buffer.<init>
+  0 311403 4789112984181                            -> java/lang/Object.<init>
+  0 311403 4789112984189                            <- java/lang/Object.<init>
+  0 311403 4789112984194                            -> java/nio/Buffer.limit
+  0 311403 4789112984202                            <- java/nio/Buffer.limit
+  0 311403 4789112984207                            -> java/nio/Buffer.position
+  0 311403 4789112984214                            <- java/nio/Buffer.position
+  0 311403 4789112984221                          <- java/nio/Buffer.<init>
+  0 311403 4789112984228                        <- java/nio/CharBuffer.<init>
+  0 311403 4789112984234                      <- java/nio/HeapCharBuffer.<init>
+  0 311403 4789112984241                    <- java/nio/CharBuffer.wrap
+  0 311403 4789112984247                    -> java/nio/Buffer.hasRemaining
+  0 311403 4789112984254                    <- java/nio/Buffer.hasRemaining
+  0 311403 4789112984260                    -> java/nio/charset/CharsetEncoder.encode
+  0 311403 4789112984266                      -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789112984273                        -> java/nio/CharBuffer.hasArray
+  0 311403 4789112984280                        <- java/nio/CharBuffer.hasArray
+  0 311403 4789112984286                        -> java/nio/ByteBuffer.hasArray
+  0 311403 4789112984293                        <- java/nio/ByteBuffer.hasArray
+  0 311403 4789112984299                        -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789112984305                          -> java/nio/CharBuffer.array
+  0 311403 4789112984312                          <- java/nio/CharBuffer.array
+  0 311403 4789112984318                          -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789112984325                          <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789112984331                          -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789112984338                          <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789112984344                          -> java/nio/ByteBuffer.array
+  0 311403 4789112984352                          <- java/nio/ByteBuffer.array
+  0 311403 4789112984358                          -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112984365                          <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112984371                          -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112984378                          <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112984384                          -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789112984391                          <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789112984397                          -> java/nio/Buffer.position
+  0 311403 4789112984404                          <- java/nio/Buffer.position
+  0 311403 4789112984410                          -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112984417                          <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112984423                          -> java/nio/Buffer.position
+  0 311403 4789112984430                          <- java/nio/Buffer.position
+  0 311403 4789112984437                        <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789112984444                      <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789112984450                      -> java/nio/charset/CoderResult.isOverflow
+  0 311403 4789112984457                      <- java/nio/charset/CoderResult.isOverflow
+  0 311403 4789112984463                      -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789112984470                      <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789112984477                    <- java/nio/charset/CharsetEncoder.encode
+  0 311403 4789112984483                    -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789112984491                    <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789112984497                    -> java/nio/Buffer.remaining
+  0 311403 4789112984504                    <- java/nio/Buffer.remaining
+  0 311403 4789112984510                  <- sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789112984517                <- sun/nio/cs/StreamEncoder.write
+  0 311403 4789112984524              <- java/io/OutputStreamWriter.write
+  0 311403 4789112984531            <- java/io/BufferedWriter.flushBuffer
+  0 311403 4789112984536            -> java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789112984543              -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789112984549                -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789112984556                  -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789112984562                    -> java/nio/Buffer.flip
+  0 311403 4789112984569                    <- java/nio/Buffer.flip
+  0 311403 4789112984575                    -> java/nio/ByteBuffer.array
+  0 311403 4789112984582                    <- java/nio/ByteBuffer.array
+  0 311403 4789112984588                    -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112984595                    <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112984601                    -> java/io/PrintStream.write
+  0 311403 4789112984607                      -> java/io/PrintStream.ensureOpen
+  0 311403 4789112984615                      <- java/io/PrintStream.ensureOpen
+  0 311403 4789112984621                      -> java/io/BufferedOutputStream.write
+  0 311403 4789112984627                        -> java/lang/System.arraycopy
+  0 311403 4789112984635                        <- java/lang/System.arraycopy
+  0 311403 4789112984641                      <- java/io/BufferedOutputStream.write
+  0 311403 4789112984647                      -> java/io/BufferedOutputStream.flush
+  0 311403 4789112984654                        -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789112984660                          -> java/io/FileOutputStream.write
+  0 311403 4789112984666                            -> java/io/FileOutputStream.writeBytes
+  0 311403 4789112984712                            <- java/io/FileOutputStream.writeBytes
+  0 311403 4789112984719                          <- java/io/FileOutputStream.write
+  0 311403 4789112984726                        <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789112984733                      <- java/io/BufferedOutputStream.flush
+  0 311403 4789112984740                    <- java/io/PrintStream.write
+  0 311403 4789112984746                    -> java/nio/Buffer.clear
+  0 311403 4789112984753                    <- java/nio/Buffer.clear
+  0 311403 4789112984760                  <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789112984766                <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789112984773              <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789112984780            <- java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789112984786            -> java/io/BufferedOutputStream.flush
+  0 311403 4789112984792              -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789112984800              <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789112984807            <- java/io/BufferedOutputStream.flush
+  0 311403 4789112984813          <- java/io/PrintStream.newLine
+  0 311403 4789112984820        <- java/io/PrintStream.println
+  0 311403 4789112984835        -> java/lang/ClassLoader.loadClassInternal
+  0 311403 4789112984842          -> java/lang/ClassLoader.loadClass
+  0 311403 4789112984849            -> sun/misc/Launcher$AppClassLoader.loadClass
+  0 311403 4789112984855              -> java/lang/String.lastIndexOf
+  0 311403 4789112984862                -> java/lang/String.lastIndexOf
+  0 311403 4789112984870                <- java/lang/String.lastIndexOf
+  0 311403 4789112984877              <- java/lang/String.lastIndexOf
+  0 311403 4789112984882              -> java/lang/System.getSecurityManager
+  0 311403 4789112984890              <- java/lang/System.getSecurityManager
+  0 311403 4789112984896              -> java/lang/ClassLoader.loadClass
+  0 311403 4789112984902                -> java/lang/ClassLoader.findLoadedClass
+  0 311403 4789112984908                  -> java/lang/ClassLoader.check
+  0 311403 4789112984915                  <- java/lang/ClassLoader.check
+  0 311403 4789112984921                  -> java/lang/ClassLoader.checkName
+  0 311403 4789112984927                    -> java/lang/String.indexOf
+  0 311403 4789112984934                      -> java/lang/String.indexOf
+  0 311403 4789112984942                      <- java/lang/String.indexOf
+  0 311403 4789112984948                    <- java/lang/String.indexOf
+  0 311403 4789112984954                    -> sun/misc/VM.allowArraySyntax
+  0 311403 4789112984961                    <- sun/misc/VM.allowArraySyntax
+  0 311403 4789112984967                    -> java/lang/String.charAt
+  0 311403 4789112984974                    <- java/lang/String.charAt
+  0 311403 4789112984981                  <- java/lang/ClassLoader.checkName
+  0 311403 4789112984987                  -> java/lang/ClassLoader.findLoadedClass0
+  0 311403 4789112984998                  <- java/lang/ClassLoader.findLoadedClass0
+  0 311403 4789112985005                <- java/lang/ClassLoader.findLoadedClass
+  0 311403 4789112985011                -> java/lang/ClassLoader.loadClass
+  0 311403 4789112985018                  -> java/lang/ClassLoader.findLoadedClass
+  0 311403 4789112985024                    -> java/lang/ClassLoader.check
+  0 311403 4789112985031                    <- java/lang/ClassLoader.check
+  0 311403 4789112985037                    -> java/lang/ClassLoader.checkName
+  0 311403 4789112985043                      -> java/lang/String.indexOf
+  0 311403 4789112985049                        -> java/lang/String.indexOf
+  0 311403 4789112985057                        <- java/lang/String.indexOf
+  0 311403 4789112985064                      <- java/lang/String.indexOf
+  0 311403 4789112985070                      -> sun/misc/VM.allowArraySyntax
+  0 311403 4789112985077                      <- sun/misc/VM.allowArraySyntax
+  0 311403 4789112985083                      -> java/lang/String.charAt
+  0 311403 4789112985090                      <- java/lang/String.charAt
+  0 311403 4789112985096                    <- java/lang/ClassLoader.checkName
+  0 311403 4789112985102                    -> java/lang/ClassLoader.findLoadedClass0
+  0 311403 4789112985111                    <- java/lang/ClassLoader.findLoadedClass0
+  0 311403 4789112985118                  <- java/lang/ClassLoader.findLoadedClass
+  0 311403 4789112985124                  -> java/lang/ClassLoader.findBootstrapClass0
+  0 311403 4789112985130                    -> java/lang/ClassLoader.check
+  0 311403 4789112985138                    <- java/lang/ClassLoader.check
+  0 311403 4789112985143                    -> java/lang/ClassLoader.checkName
+  0 311403 4789112985150                      -> java/lang/String.indexOf
+  0 311403 4789112985156                        -> java/lang/String.indexOf
+  0 311403 4789112985164                        <- java/lang/String.indexOf
+  0 311403 4789112985170                      <- java/lang/String.indexOf
+  0 311403 4789112985176                      -> sun/misc/VM.allowArraySyntax
+  0 311403 4789112985183                      <- sun/misc/VM.allowArraySyntax
+  0 311403 4789112985189                      -> java/lang/String.charAt
+  0 311403 4789112985196                      <- java/lang/String.charAt
+  0 311403 4789112985203                    <- java/lang/ClassLoader.checkName
+  0 311403 4789112985208                    -> java/lang/ClassLoader.findBootstrapClass
+  0 311403 4789112985219                    <- java/lang/ClassLoader.findBootstrapClass
+  0 311403 4789112985226                  <- java/lang/ClassLoader.findBootstrapClass0
+  0 311403 4789112985233                <- java/lang/ClassLoader.loadClass
+  0 311403 4789112985240              <- java/lang/ClassLoader.loadClass
+  0 311403 4789112985247            <- sun/misc/Launcher$AppClassLoader.loadClass
+  0 311403 4789112985253          <- java/lang/ClassLoader.loadClass
+  0 311403 4789112985260        <- java/lang/ClassLoader.loadClassInternal
+  0 311403 4789112985270        -> java/lang/ClassLoader.checkPackageAccess
+  0 311403 4789112985277          -> java/lang/System.getSecurityManager
+  0 311403 4789112985285          <- java/lang/System.getSecurityManager
+  0 311403 4789112985291          -> java/util/HashSet.add
+  0 311403 4789112985297            -> java/util/HashMap.put
+  0 311403 4789112985304              -> java/lang/Object.hashCode
+  0 311403 4789112985311              <- java/lang/Object.hashCode
+  0 311403 4789112985317              -> java/util/HashMap.hash
+  0 311403 4789112985324              <- java/util/HashMap.hash
+  0 311403 4789112985330              -> java/util/HashMap.indexFor
+  0 311403 4789112985337              <- java/util/HashMap.indexFor
+  0 311403 4789112985344            <- java/util/HashMap.put
+  0 311403 4789112985351          <- java/util/HashSet.add
+  0 311403 4789112985358        <- java/lang/ClassLoader.checkPackageAccess
+  0 311403 4789112985371        -> java/lang/Thread.currentThread
+  0 311403 4789112985379        <- java/lang/Thread.currentThread
+  0 311403 4789112985387        -> java/lang/Thread.sleep
+  0 311403 4789113990048        <- java/lang/Thread.sleep
+  0 311403 4789113990080        -> Func_abc.func_b
+  0 311403 4789113990104          -> java/io/PrintStream.println
+  0 311403 4789113990112            -> java/io/PrintStream.print
+  0 311403 4789113990118              -> java/io/PrintStream.write
+  0 311403 4789113990125                -> java/io/PrintStream.ensureOpen
+  0 311403 4789113990133                <- java/io/PrintStream.ensureOpen
+  0 311403 4789113990139                -> java/io/Writer.write
+  0 311403 4789113990147                  -> java/io/BufferedWriter.write
+  0 311403 4789113990154                    -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789113990161                    <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789113990168                    -> java/io/BufferedWriter.min
+  0 311403 4789113990176                    <- java/io/BufferedWriter.min
+  0 311403 4789113990182                    -> java/lang/String.getChars
+  0 311403 4789113990189                      -> java/lang/System.arraycopy
+  0 311403 4789113990198                      <- java/lang/System.arraycopy
+  0 311403 4789113990205                    <- java/lang/String.getChars
+  0 311403 4789113990212                  <- java/io/BufferedWriter.write
+  0 311403 4789113990219                <- java/io/Writer.write
+  0 311403 4789113990225                -> java/io/BufferedWriter.flushBuffer
+  0 311403 4789113990231                  -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789113990238                  <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789113990245                  -> java/io/OutputStreamWriter.write
+  0 311403 4789113990252                    -> sun/nio/cs/StreamEncoder.write
+  0 311403 4789113990258                      -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789113990265                      <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789113990272                      -> sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789113990279                        -> java/nio/CharBuffer.wrap
+  0 311403 4789113990286                          -> java/nio/HeapCharBuffer.<init>
+  0 311403 4789113990293                            -> java/nio/CharBuffer.<init>
+  0 311403 4789113990299                              -> java/nio/Buffer.<init>
+  0 311403 4789113990306                                -> java/lang/Object.<init>
+  0 311403 4789113990313                                <- java/lang/Object.<init>
+  0 311403 4789113990320                                -> java/nio/Buffer.limit
+  0 311403 4789113990327                                <- java/nio/Buffer.limit
+  0 311403 4789113990333                                -> java/nio/Buffer.position
+  0 311403 4789113990340                                <- java/nio/Buffer.position
+  0 311403 4789113990347                              <- java/nio/Buffer.<init>
+  0 311403 4789113990354                            <- java/nio/CharBuffer.<init>
+  0 311403 4789113990360                          <- java/nio/HeapCharBuffer.<init>
+  0 311403 4789113990367                        <- java/nio/CharBuffer.wrap
+  0 311403 4789113990373                        -> java/nio/Buffer.hasRemaining
+  0 311403 4789113990381                        <- java/nio/Buffer.hasRemaining
+  0 311403 4789113990387                        -> java/nio/charset/CharsetEncoder.encode
+  0 311403 4789113990394                          -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789113990401                            -> java/nio/CharBuffer.hasArray
+  0 311403 4789113990409                            <- java/nio/CharBuffer.hasArray
+  0 311403 4789113990415                            -> java/nio/ByteBuffer.hasArray
+  0 311403 4789113990422                            <- java/nio/ByteBuffer.hasArray
+  0 311403 4789113990428                            -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789113990435                              -> java/nio/CharBuffer.array
+  0 311403 4789113990442                              <- java/nio/CharBuffer.array
+  0 311403 4789113990448                              -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789113990455                              <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789113990461                              -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789113990468                              <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789113990475                              -> java/nio/ByteBuffer.array
+  0 311403 4789113990482                              <- java/nio/ByteBuffer.array
+  0 311403 4789113990488                              -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113990495                              <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113990501                              -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113990508                              <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113990517                              -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789113990524                              <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789113990529                              -> java/nio/Buffer.position
+  0 311403 4789113990537                              <- java/nio/Buffer.position
+  0 311403 4789113990542                              -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113990550                              <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113990555                              -> java/nio/Buffer.position
+  0 311403 4789113990563                              <- java/nio/Buffer.position
+  0 311403 4789113990569                            <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789113990576                          <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789113990583                          -> java/nio/charset/CoderResult.isOverflow
+  0 311403 4789113990590                          <- java/nio/charset/CoderResult.isOverflow
+  0 311403 4789113990596                          -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789113990603                          <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789113990610                        <- java/nio/charset/CharsetEncoder.encode
+  0 311403 4789113990616                        -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789113990624                        <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789113990630                        -> java/nio/Buffer.remaining
+  0 311403 4789113990637                        <- java/nio/Buffer.remaining
+  0 311403 4789113990643                      <- sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789113990650                    <- sun/nio/cs/StreamEncoder.write
+  0 311403 4789113990657                  <- java/io/OutputStreamWriter.write
+  0 311403 4789113990664                <- java/io/BufferedWriter.flushBuffer
+  0 311403 4789113990670                -> java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789113990677                  -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789113990683                    -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789113990690                      -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789113990697                        -> java/nio/Buffer.flip
+  0 311403 4789113990704                        <- java/nio/Buffer.flip
+  0 311403 4789113990710                        -> java/nio/ByteBuffer.array
+  0 311403 4789113990717                        <- java/nio/ByteBuffer.array
+  0 311403 4789113990723                        -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113990730                        <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113990736                        -> java/io/PrintStream.write
+  0 311403 4789113990742                          -> java/io/PrintStream.ensureOpen
+  0 311403 4789113990749                          <- java/io/PrintStream.ensureOpen
+  0 311403 4789113990756                          -> java/io/BufferedOutputStream.write
+  0 311403 4789113990763                            -> java/lang/System.arraycopy
+  0 311403 4789113990770                            <- java/lang/System.arraycopy
+  0 311403 4789113990777                          <- java/io/BufferedOutputStream.write
+  0 311403 4789113990783                          -> java/io/BufferedOutputStream.flush
+  0 311403 4789113990790                            -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789113990797                              -> java/io/FileOutputStream.write
+  0 311403 4789113990803                                -> java/io/FileOutputStream.writeBytes
+  0 311403 4789113990841                                <- java/io/FileOutputStream.writeBytes
+  0 311403 4789113990848                              <- java/io/FileOutputStream.write
+  0 311403 4789113990855                            <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789113990862                          <- java/io/BufferedOutputStream.flush
+  0 311403 4789113990869                        <- java/io/PrintStream.write
+  0 311403 4789113990875                        -> java/nio/Buffer.clear
+  0 311403 4789113990882                        <- java/nio/Buffer.clear
+  0 311403 4789113990888                      <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789113990895                    <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789113990902                  <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789113990909                <- java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789113990915                -> java/lang/String.indexOf
+  0 311403 4789113990922                  -> java/lang/String.indexOf
+  0 311403 4789113990930                  <- java/lang/String.indexOf
+  0 311403 4789113990936                <- java/lang/String.indexOf
+  0 311403 4789113990943              <- java/io/PrintStream.write
+  0 311403 4789113990950            <- java/io/PrintStream.print
+  0 311403 4789113990956            -> java/io/PrintStream.newLine
+  0 311403 4789113990962              -> java/io/PrintStream.ensureOpen
+  0 311403 4789113990969              <- java/io/PrintStream.ensureOpen
+  0 311403 4789113990975              -> java/io/BufferedWriter.newLine
+  0 311403 4789113990981                -> java/io/Writer.write
+  0 311403 4789113990988                  -> java/io/BufferedWriter.write
+  0 311403 4789113990994                    -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789113991001                    <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789113991007                    -> java/io/BufferedWriter.min
+  0 311403 4789113991014                    <- java/io/BufferedWriter.min
+  0 311403 4789113991020                    -> java/lang/String.getChars
+  0 311403 4789113991026                      -> java/lang/System.arraycopy
+  0 311403 4789113991034                      <- java/lang/System.arraycopy
+  0 311403 4789113991040                    <- java/lang/String.getChars
+  0 311403 4789113991047                  <- java/io/BufferedWriter.write
+  0 311403 4789113991054                <- java/io/Writer.write
+  0 311403 4789113991060              <- java/io/BufferedWriter.newLine
+  0 311403 4789113991066              -> java/io/BufferedWriter.flushBuffer
+  0 311403 4789113991072                -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789113991080                <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789113991086                -> java/io/OutputStreamWriter.write
+  0 311403 4789113991092                  -> sun/nio/cs/StreamEncoder.write
+  0 311403 4789113991098                    -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789113991106                    <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789113991112                    -> sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789113991118                      -> java/nio/CharBuffer.wrap
+  0 311403 4789113991124                        -> java/nio/HeapCharBuffer.<init>
+  0 311403 4789113991131                          -> java/nio/CharBuffer.<init>
+  0 311403 4789113991137                            -> java/nio/Buffer.<init>
+  0 311403 4789113991143                              -> java/lang/Object.<init>
+  0 311403 4789113991150                              <- java/lang/Object.<init>
+  0 311403 4789113991156                              -> java/nio/Buffer.limit
+  0 311403 4789113991163                              <- java/nio/Buffer.limit
+  0 311403 4789113991169                              -> java/nio/Buffer.position
+  0 311403 4789113991176                              <- java/nio/Buffer.position
+  0 311403 4789113991182                            <- java/nio/Buffer.<init>
+  0 311403 4789113991189                          <- java/nio/CharBuffer.<init>
+  0 311403 4789113991196                        <- java/nio/HeapCharBuffer.<init>
+  0 311403 4789113991202                      <- java/nio/CharBuffer.wrap
+  0 311403 4789113991208                      -> java/nio/Buffer.hasRemaining
+  0 311403 4789113991215                      <- java/nio/Buffer.hasRemaining
+  0 311403 4789113991221                      -> java/nio/charset/CharsetEncoder.encode
+  0 311403 4789113991281                        -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789113991287                          -> java/nio/CharBuffer.hasArray
+  0 311403 4789113991295                          <- java/nio/CharBuffer.hasArray
+  0 311403 4789113991301                          -> java/nio/ByteBuffer.hasArray
+  0 311403 4789113991308                          <- java/nio/ByteBuffer.hasArray
+  0 311403 4789113991314                          -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789113991320                            -> java/nio/CharBuffer.array
+  0 311403 4789113991328                            <- java/nio/CharBuffer.array
+  0 311403 4789113991333                            -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789113991341                            <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789113991347                            -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789113991354                            <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789113991360                            -> java/nio/ByteBuffer.array
+  0 311403 4789113991367                            <- java/nio/ByteBuffer.array
+  0 311403 4789113991373                            -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113991380                            <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113991386                            -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113991393                            <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113991400                            -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789113991407                            <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789113991413                            -> java/nio/Buffer.position
+  0 311403 4789113991420                            <- java/nio/Buffer.position
+  0 311403 4789113991426                            -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113991433                            <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113991439                            -> java/nio/Buffer.position
+  0 311403 4789113991446                            <- java/nio/Buffer.position
+  0 311403 4789113991453                          <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789113991459                        <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789113991465                        -> java/nio/charset/CoderResult.isOverflow
+  0 311403 4789113991473                        <- java/nio/charset/CoderResult.isOverflow
+  0 311403 4789113991479                        -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789113991486                        <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789113991493                      <- java/nio/charset/CharsetEncoder.encode
+  0 311403 4789113991499                      -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789113991506                      <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789113991512                      -> java/nio/Buffer.remaining
+  0 311403 4789113991519                      <- java/nio/Buffer.remaining
+  0 311403 4789113991526                    <- sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789113991533                  <- sun/nio/cs/StreamEncoder.write
+  0 311403 4789113991539                <- java/io/OutputStreamWriter.write
+  0 311403 4789113991546              <- java/io/BufferedWriter.flushBuffer
+  0 311403 4789113991552              -> java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789113991559                -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789113991565                  -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789113991572                    -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789113991578                      -> java/nio/Buffer.flip
+  0 311403 4789113991585                      <- java/nio/Buffer.flip
+  0 311403 4789113991591                      -> java/nio/ByteBuffer.array
+  0 311403 4789113991598                      <- java/nio/ByteBuffer.array
+  0 311403 4789113991604                      -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113991611                      <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113991617                      -> java/io/PrintStream.write
+  0 311403 4789113991623                        -> java/io/PrintStream.ensureOpen
+  0 311403 4789113991630                        <- java/io/PrintStream.ensureOpen
+  0 311403 4789113991636                        -> java/io/BufferedOutputStream.write
+  0 311403 4789113991643                          -> java/lang/System.arraycopy
+  0 311403 4789113991651                          <- java/lang/System.arraycopy
+  0 311403 4789113991657                        <- java/io/BufferedOutputStream.write
+  0 311403 4789113991663                        -> java/io/BufferedOutputStream.flush
+  0 311403 4789113991670                          -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789113991676                            -> java/io/FileOutputStream.write
+  0 311403 4789113991682                              -> java/io/FileOutputStream.writeBytes
+  0 311403 4789113991701                              <- java/io/FileOutputStream.writeBytes
+  0 311403 4789113991708                            <- java/io/FileOutputStream.write
+  0 311403 4789113991720                          <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789113991728                        <- java/io/BufferedOutputStream.flush
+  0 311403 4789113991734                      <- java/io/PrintStream.write
+  0 311403 4789113991740                      -> java/nio/Buffer.clear
+  0 311403 4789113991747                      <- java/nio/Buffer.clear
+  0 311403 4789113991754                    <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789113991761                  <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789113991768                <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789113991774              <- java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789113991780              -> java/io/BufferedOutputStream.flush
+  0 311403 4789113991787                -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789113991794                <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789113991801              <- java/io/BufferedOutputStream.flush
+  0 311403 4789113991808            <- java/io/PrintStream.newLine
+  0 311403 4789113991815          <- java/io/PrintStream.println
+  0 311403 4789113991821          -> java/lang/Thread.currentThread
+  0 311403 4789113991828          <- java/lang/Thread.currentThread
+  0 311403 4789113991834          -> java/lang/Thread.sleep
+  0 311403 4789115000050          <- java/lang/Thread.sleep
+  0 311403 4789115000081          -> Func_abc.func_c
+  0 311403 4789115000105            -> java/io/PrintStream.println
+  0 311403 4789115000113              -> java/io/PrintStream.print
+  0 311403 4789115000120                -> java/io/PrintStream.write
+  0 311403 4789115000126                  -> java/io/PrintStream.ensureOpen
+  0 311403 4789115000134                  <- java/io/PrintStream.ensureOpen
+  0 311403 4789115000141                  -> java/io/Writer.write
+  0 311403 4789115000148                    -> java/io/BufferedWriter.write
+  0 311403 4789115000155                      -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789115000162                      <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789115000170                      -> java/io/BufferedWriter.min
+  0 311403 4789115000177                      <- java/io/BufferedWriter.min
+  0 311403 4789115000183                      -> java/lang/String.getChars
+  0 311403 4789115000191                        -> java/lang/System.arraycopy
+  0 311403 4789115000199                        <- java/lang/System.arraycopy
+  0 311403 4789115000206                      <- java/lang/String.getChars
+  0 311403 4789115000213                    <- java/io/BufferedWriter.write
+  0 311403 4789115000220                  <- java/io/Writer.write
+  0 311403 4789115000226                  -> java/io/BufferedWriter.flushBuffer
+  0 311403 4789115000233                    -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789115000240                    <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789115000246                    -> java/io/OutputStreamWriter.write
+  0 311403 4789115000253                      -> sun/nio/cs/StreamEncoder.write
+  0 311403 4789115000260                        -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789115000267                        <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789115000274                        -> sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789115000281                          -> java/nio/CharBuffer.wrap
+  0 311403 4789115000288                            -> java/nio/HeapCharBuffer.<init>
+  0 311403 4789115000294                              -> java/nio/CharBuffer.<init>
+  0 311403 4789115000301                                -> java/nio/Buffer.<init>
+  0 311403 4789115000307                                  -> java/lang/Object.<init>
+  0 311403 4789115000315                                  <- java/lang/Object.<init>
+  0 311403 4789115000321                                  -> java/nio/Buffer.limit
+  0 311403 4789115000328                                  <- java/nio/Buffer.limit
+  0 311403 4789115000334                                  -> java/nio/Buffer.position
+  0 311403 4789115000342                                  <- java/nio/Buffer.position
+  0 311403 4789115000348                                <- java/nio/Buffer.<init>
+  0 311403 4789115000355                              <- java/nio/CharBuffer.<init>
+  0 311403 4789115000362                            <- java/nio/HeapCharBuffer.<init>
+  0 311403 4789115000368                          <- java/nio/CharBuffer.wrap
+  0 311403 4789115000374                          -> java/nio/Buffer.hasRemaining
+  0 311403 4789115000382                          <- java/nio/Buffer.hasRemaining
+  0 311403 4789115000388                          -> java/nio/charset/CharsetEncoder.encode
+  0 311403 4789115000396                            -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789115000402                              -> java/nio/CharBuffer.hasArray
+  0 311403 4789115000410                              <- java/nio/CharBuffer.hasArray
+  0 311403 4789115000416                              -> java/nio/ByteBuffer.hasArray
+  0 311403 4789115000424                              <- java/nio/ByteBuffer.hasArray
+  0 311403 4789115000430                              -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789115000436                                -> java/nio/CharBuffer.array
+  0 311403 4789115000444                                <- java/nio/CharBuffer.array
+  0 311403 4789115000450                                -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789115000457                                <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789115000463                                -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789115000470                                <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789115000476                                -> java/nio/ByteBuffer.array
+  0 311403 4789115000483                                <- java/nio/ByteBuffer.array
+  0 311403 4789115000489                                -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115000496                                <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115000502                                -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115000509                                <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115000518                                -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789115000525                                <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789115000531                                -> java/nio/Buffer.position
+  0 311403 4789115000538                                <- java/nio/Buffer.position
+  0 311403 4789115000544                                -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115000551                                <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115000557                                -> java/nio/Buffer.position
+  0 311403 4789115000564                                <- java/nio/Buffer.position
+  0 311403 4789115000570                              <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789115000577                            <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789115000584                            -> java/nio/charset/CoderResult.isOverflow
+  0 311403 4789115000591                            <- java/nio/charset/CoderResult.isOverflow
+  0 311403 4789115000597                            -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789115000605                            <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789115000611                          <- java/nio/charset/CharsetEncoder.encode
+  0 311403 4789115000617                          -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789115000625                          <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789115000631                          -> java/nio/Buffer.remaining
+  0 311403 4789115000638                          <- java/nio/Buffer.remaining
+  0 311403 4789115000645                        <- sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789115000652                      <- sun/nio/cs/StreamEncoder.write
+  0 311403 4789115000658                    <- java/io/OutputStreamWriter.write
+  0 311403 4789115000665                  <- java/io/BufferedWriter.flushBuffer
+  0 311403 4789115000671                  -> java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789115000678                    -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789115000685                      -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789115000692                        -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789115000698                          -> java/nio/Buffer.flip
+  0 311403 4789115000705                          <- java/nio/Buffer.flip
+  0 311403 4789115000711                          -> java/nio/ByteBuffer.array
+  0 311403 4789115000718                          <- java/nio/ByteBuffer.array
+  0 311403 4789115000724                          -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115000731                          <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115000738                          -> java/io/PrintStream.write
+  0 311403 4789115000744                            -> java/io/PrintStream.ensureOpen
+  0 311403 4789115000751                            <- java/io/PrintStream.ensureOpen
+  0 311403 4789115000758                            -> java/io/BufferedOutputStream.write
+  0 311403 4789115000764                              -> java/lang/System.arraycopy
+  0 311403 4789115000772                              <- java/lang/System.arraycopy
+  0 311403 4789115000778                            <- java/io/BufferedOutputStream.write
+  0 311403 4789115000785                            -> java/io/BufferedOutputStream.flush
+  0 311403 4789115000791                              -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789115000798                                -> java/io/FileOutputStream.write
+  0 311403 4789115000805                                  -> java/io/FileOutputStream.writeBytes
+  0 311403 4789115000843                                  <- java/io/FileOutputStream.writeBytes
+  0 311403 4789115000850                                <- java/io/FileOutputStream.write
+  0 311403 4789115000857                              <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789115000864                            <- java/io/BufferedOutputStream.flush
+  0 311403 4789115000871                          <- java/io/PrintStream.write
+  0 311403 4789115000877                          -> java/nio/Buffer.clear
+  0 311403 4789115000884                          <- java/nio/Buffer.clear
+  0 311403 4789115000891                        <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789115000897                      <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789115000904                    <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789115000911                  <- java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789115000917                  -> java/lang/String.indexOf
+  0 311403 4789115000924                    -> java/lang/String.indexOf
+  0 311403 4789115000932                    <- java/lang/String.indexOf
+  0 311403 4789115000939                  <- java/lang/String.indexOf
+  0 311403 4789115000945                <- java/io/PrintStream.write
+  0 311403 4789115000952              <- java/io/PrintStream.print
+  0 311403 4789115000958              -> java/io/PrintStream.newLine
+  0 311403 4789115000964                -> java/io/PrintStream.ensureOpen
+  0 311403 4789115000971                <- java/io/PrintStream.ensureOpen
+  0 311403 4789115000977                -> java/io/BufferedWriter.newLine
+  0 311403 4789115000983                  -> java/io/Writer.write
+  0 311403 4789115000990                    -> java/io/BufferedWriter.write
+  0 311403 4789115000996                      -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789115001003                      <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789115001009                      -> java/io/BufferedWriter.min
+  0 311403 4789115001016                      <- java/io/BufferedWriter.min
+  0 311403 4789115001022                      -> java/lang/String.getChars
+  0 311403 4789115001029                        -> java/lang/System.arraycopy
+  0 311403 4789115001036                        <- java/lang/System.arraycopy
+  0 311403 4789115001042                      <- java/lang/String.getChars
+  0 311403 4789115001049                    <- java/io/BufferedWriter.write
+  0 311403 4789115001056                  <- java/io/Writer.write
+  0 311403 4789115001062                <- java/io/BufferedWriter.newLine
+  0 311403 4789115001068                -> java/io/BufferedWriter.flushBuffer
+  0 311403 4789115001075                  -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789115001082                  <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789115001088                  -> java/io/OutputStreamWriter.write
+  0 311403 4789115001094                    -> sun/nio/cs/StreamEncoder.write
+  0 311403 4789115001101                      -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789115001108                      <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789115001114                      -> sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789115001120                        -> java/nio/CharBuffer.wrap
+  0 311403 4789115001127                          -> java/nio/HeapCharBuffer.<init>
+  0 311403 4789115001133                            -> java/nio/CharBuffer.<init>
+  0 311403 4789115001139                              -> java/nio/Buffer.<init>
+  0 311403 4789115001145                                -> java/lang/Object.<init>
+  0 311403 4789115001152                                <- java/lang/Object.<init>
+  0 311403 4789115001158                                -> java/nio/Buffer.limit
+  0 311403 4789115001165                                <- java/nio/Buffer.limit
+  0 311403 4789115001171                                -> java/nio/Buffer.position
+  0 311403 4789115001178                                <- java/nio/Buffer.position
+  0 311403 4789115001185                              <- java/nio/Buffer.<init>
+  0 311403 4789115001191                            <- java/nio/CharBuffer.<init>
+  0 311403 4789115001198                          <- java/nio/HeapCharBuffer.<init>
+  0 311403 4789115001204                        <- java/nio/CharBuffer.wrap
+  0 311403 4789115001210                        -> java/nio/Buffer.hasRemaining
+  0 311403 4789115001217                        <- java/nio/Buffer.hasRemaining
+  0 311403 4789115001223                        -> java/nio/charset/CharsetEncoder.encode
+  0 311403 4789115001230                          -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789115001236                            -> java/nio/CharBuffer.hasArray
+  0 311403 4789115001243                            <- java/nio/CharBuffer.hasArray
+  0 311403 4789115001249                            -> java/nio/ByteBuffer.hasArray
+  0 311403 4789115001256                            <- java/nio/ByteBuffer.hasArray
+  0 311403 4789115001262                            -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789115001269                              -> java/nio/CharBuffer.array
+  0 311403 4789115001276                              <- java/nio/CharBuffer.array
+  0 311403 4789115001281                              -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789115001288                              <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789115001294                              -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789115001302                              <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789115001308                              -> java/nio/ByteBuffer.array
+  0 311403 4789115001315                              <- java/nio/ByteBuffer.array
+  0 311403 4789115001320                              -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115001328                              <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115001334                              -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115001341                              <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115001347                              -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789115001354                              <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789115001360                              -> java/nio/Buffer.position
+  0 311403 4789115001367                              <- java/nio/Buffer.position
+  0 311403 4789115001373                              -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115001380                              <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115001386                              -> java/nio/Buffer.position
+  0 311403 4789115001393                              <- java/nio/Buffer.position
+  0 311403 4789115001400                            <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789115001407                          <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789115001413                          -> java/nio/charset/CoderResult.isOverflow
+  0 311403 4789115001420                          <- java/nio/charset/CoderResult.isOverflow
+  0 311403 4789115001426                          -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789115001433                          <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789115001440                        <- java/nio/charset/CharsetEncoder.encode
+  0 311403 4789115001446                        -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789115001453                        <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789115001459                        -> java/nio/Buffer.remaining
+  0 311403 4789115001466                        <- java/nio/Buffer.remaining
+  0 311403 4789115001473                      <- sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789115001480                    <- sun/nio/cs/StreamEncoder.write
+  0 311403 4789115001487                  <- java/io/OutputStreamWriter.write
+  0 311403 4789115001493                <- java/io/BufferedWriter.flushBuffer
+  0 311403 4789115001499                -> java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789115001506                  -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789115001512                    -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789115001519                      -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789115001525                        -> java/nio/Buffer.flip
+  0 311403 4789115001532                        <- java/nio/Buffer.flip
+  0 311403 4789115001538                        -> java/nio/ByteBuffer.array
+  0 311403 4789115001545                        <- java/nio/ByteBuffer.array
+  0 311403 4789115001551                        -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115001558                        <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115001564                        -> java/io/PrintStream.write
+  0 311403 4789115001570                          -> java/io/PrintStream.ensureOpen
+  0 311403 4789115001577                          <- java/io/PrintStream.ensureOpen
+  0 311403 4789115001583                          -> java/io/BufferedOutputStream.write
+  0 311403 4789115001590                            -> java/lang/System.arraycopy
+  0 311403 4789115001597                            <- java/lang/System.arraycopy
+  0 311403 4789115001604                          <- java/io/BufferedOutputStream.write
+  0 311403 4789115001610                          -> java/io/BufferedOutputStream.flush
+  0 311403 4789115001621                            -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789115001628                              -> java/io/FileOutputStream.write
+  0 311403 4789115001634                                -> java/io/FileOutputStream.writeBytes
+  0 311403 4789115001652                                <- java/io/FileOutputStream.writeBytes
+  0 311403 4789115001706                              <- java/io/FileOutputStream.write
+  0 311403 4789115001713                            <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789115001720                          <- java/io/BufferedOutputStream.flush
+  0 311403 4789115001727                        <- java/io/PrintStream.write
+  0 311403 4789115001733                        -> java/nio/Buffer.clear
+  0 311403 4789115001740                        <- java/nio/Buffer.clear
+  0 311403 4789115001747                      <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789115001753                    <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789115001760                  <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789115001767                <- java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789115001773                -> java/io/BufferedOutputStream.flush
+  0 311403 4789115001779                  -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789115001787                  <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789115001794                <- java/io/BufferedOutputStream.flush
+  0 311403 4789115001801              <- java/io/PrintStream.newLine
+  0 311403 4789115001807            <- java/io/PrintStream.println
+  0 311403 4789115001813            -> java/lang/Thread.currentThread
+  0 311403 4789115001821            <- java/lang/Thread.currentThread
+  0 311403 4789115001827            -> java/lang/Thread.sleep
+  0 311403 4789116010060            <- java/lang/Thread.sleep
+  0 311403 4789116010073          <- Func_abc.func_c
+  0 311403 4789116010080        <- Func_abc.func_b
+  0 311403 4789116010086      <- Func_abc.func_a
+  0 311403 4789116010093    <- Func_abc.main
+  0 311403 4789116010118    -> java/lang/Thread.exit
+  0 311403 4789116010145      -> java/lang/ThreadGroup.remove
+  0 311403 4789116010160        -> java/lang/System.arraycopy
+  0 311403 4789116010169        <- java/lang/System.arraycopy
+  0 311403 4789116010178        -> java/lang/Object.notifyAll
+  0 311403 4789116010192        <- java/lang/Object.notifyAll
+  0 311403 4789116010199      <- java/lang/ThreadGroup.remove
+  0 311403 4789116010212    <- java/lang/Thread.exit
+  0 311403 4789116010380        -> java/lang/Thread.<init>
+  0 311403 4789116010388          -> java/lang/Object.<init>
+  0 311403 4789116010395          <- java/lang/Object.<init>
+  0 311403 4789116010402          -> java/lang/Object.<init>
+  0 311403 4789116010409          <- java/lang/Object.<init>
+  0 311403 4789116010415          -> java/lang/Thread.init
+  0 311403 4789116010422            -> java/lang/Thread.currentThread
+  0 311403 4789116010430            <- java/lang/Thread.currentThread
+  0 311403 4789116010436            -> java/lang/System.getSecurityManager
+  0 311403 4789116010444            <- java/lang/System.getSecurityManager
+  0 311403 4789116010450            -> java/lang/ThreadGroup.checkAccess
+  0 311403 4789116010457              -> java/lang/System.getSecurityManager
+  0 311403 4789116010464              <- java/lang/System.getSecurityManager
+  0 311403 4789116010471            <- java/lang/ThreadGroup.checkAccess
+  0 311403 4789116010477            -> java/lang/ThreadGroup.addUnstarted
+  0 311403 4789116010484            <- java/lang/ThreadGroup.addUnstarted
+  0 311403 4789116010491            -> java/lang/String.toCharArray
+  0 311403 4789116010499              -> java/lang/String.getChars
+  0 311403 4789116010506                -> java/lang/System.arraycopy
+  0 311403 4789116010514                <- java/lang/System.arraycopy
+  0 311403 4789116010521              <- java/lang/String.getChars
+  0 311403 4789116010527            <- java/lang/String.toCharArray
+  0 311403 4789116010534            -> java/lang/Thread.getContextClassLoader
+  0 311403 4789116010541            <- java/lang/Thread.getContextClassLoader
+  0 311403 4789116010548            -> java/security/AccessController.getContext
+  0 311403 4789116010554              -> java/security/AccessController.getStackAccessControlContext
+  0 311403 4789116010569              <- java/security/AccessController.getStackAccessControlContext
+  0 311403 4789116010576              -> java/security/AccessControlContext.optimize
+  0 311403 4789116010583                -> java/security/AccessController.getInheritedAccessControlContext
+  0 311403 4789116010591                <- java/security/AccessController.getInheritedAccessControlContext
+  0 311403 4789116010599              <- java/security/AccessControlContext.optimize
+  0 311403 4789116010606            <- java/security/AccessController.getContext
+  0 311403 4789116010612            -> java/lang/Thread.setPriority
+  0 311403 4789116010618              -> java/lang/Thread.checkAccess
+  0 311403 4789116010625                -> java/lang/System.getSecurityManager
+  0 311403 4789116010632                <- java/lang/System.getSecurityManager
+  0 311403 4789116010639              <- java/lang/Thread.checkAccess
+  0 311403 4789116010645              -> java/lang/Thread.setPriority0
+  0 311403 4789116010664              <- java/lang/Thread.setPriority0
+  0 311403 4789116010671            <- java/lang/Thread.setPriority
+  0 311403 4789116010678            -> java/lang/Thread.nextThreadID
+  0 311403 4789116010686            <- java/lang/Thread.nextThreadID
+  0 311403 4789116010693    <- java/lang/Thread.init
+  0 311403 4789116010700    <- java/lang/Thread.<init>
+  0 311403 4789116010707    -> java/lang/ThreadGroup.add
+  0 311403 4789116010716    <- java/lang/ThreadGroup.add
+  0 311403 4789116010729    -> java/lang/Shutdown.shutdown
+  0 311403 4789116010740      -> java/lang/Shutdown.sequence
+  0 311403 4789116010748        -> java/lang/Shutdown.runHooks
+  0 311403 4789116010758          -> java/util/AbstractList.iterator
+  0 311403 4789116011022            -> java/util/AbstractList$Itr.<init>
+  0 311403 4789116011032              -> java/util/AbstractList$Itr.<init>
+  0 311403 4789116011042                -> java/lang/Object.<init>
+  0 311403 4789116011050                <- java/lang/Object.<init>
+  0 311403 4789116011062              <- java/util/AbstractList$Itr.<init>
+  0 311403 4789116011069            <- java/util/AbstractList$Itr.<init>
+  0 311403 4789116011076          <- java/util/AbstractList.iterator
+  0 311403 4789116011087          -> java/util/AbstractList$Itr.hasNext
+  0 311403 4789116011099          <- java/util/AbstractList$Itr.hasNext
+  0 311403 4789116011107          -> java/util/AbstractList$Itr.next
+  0 311403 4789116011115            -> java/util/AbstractList$Itr.checkForComodification
+  0 311403 4789116011123            <- java/util/AbstractList$Itr.checkForComodification
+  0 311403 4789116011131            -> java/util/ArrayList.get
+  0 311403 4789116011138              -> java/util/ArrayList.RangeCheck
+  0 311403 4789116011145              <- java/util/ArrayList.RangeCheck
+  0 311403 4789116011152            <- java/util/ArrayList.get
+  0 311403 4789116011159          <- java/util/AbstractList$Itr.next
+  0 311403 4789116011170          -> java/io/Console$1$1.run
+  0 311403 4789116011180            -> java/io/Console.access$600
+  0 311403 4789116011189            <- java/io/Console.access$600
+  0 311403 4789116011196          <- java/io/Console$1$1.run
+  0 311403 4789116011202          -> java/util/AbstractList$Itr.hasNext
+  0 311403 4789116011209          <- java/util/AbstractList$Itr.hasNext
+  0 311403 4789116011215          -> java/util/AbstractList$Itr.next
+  0 311403 4789116011221            -> java/util/AbstractList$Itr.checkForComodification
+  0 311403 4789116011229            <- java/util/AbstractList$Itr.checkForComodification
+  0 311403 4789116011235            -> java/util/ArrayList.get
+  0 311403 4789116011241              -> java/util/ArrayList.RangeCheck
+  0 311403 4789116011248              <- java/util/ArrayList.RangeCheck
+  0 311403 4789116011255            <- java/util/ArrayList.get
+  0 311403 4789116011262          <- java/util/AbstractList$Itr.next
+  0 311403 4789116011268          -> java/lang/ApplicationShutdownHooks.run
+  0 311403 4789116011280            -> java/util/IdentityHashMap.keySet
+  0 311403 4789116011442              -> java/util/IdentityHashMap$KeySet.<init>
+  0 311403 4789116011452                -> java/util/IdentityHashMap$KeySet.<init>
+  0 311403 4789116011462                  -> java/util/AbstractSet.<init>
+  0 311403 4789116011469                    -> java/util/AbstractCollection.<init>
+  0 311403 4789116011475                      -> java/lang/Object.<init>
+  0 311403 4789116011483                      <- java/lang/Object.<init>
+  0 311403 4789116011490                    <- java/util/AbstractCollection.<init>
+  0 311403 4789116011497                  <- java/util/AbstractSet.<init>
+  0 311403 4789116011503                <- java/util/IdentityHashMap$KeySet.<init>
+  0 311403 4789116011510              <- java/util/IdentityHashMap$KeySet.<init>
+  0 311403 4789116011528            <- java/util/IdentityHashMap.keySet
+  0 311403 4789116011538            -> java/util/IdentityHashMap$KeySet.iterator
+  0 311403 4789116011727              -> java/util/IdentityHashMap$KeyIterator.<init>
+  0 311403 4789116011737                -> java/util/IdentityHashMap$KeyIterator.<init>
+  0 311403 4789116011748                  -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311403 4789116011757                    -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311403 4789116011766                      -> java/lang/Object.<init>
+  0 311403 4789116011774                      <- java/lang/Object.<init>
+  0 311403 4789116011784                      -> java/util/IdentityHashMap.access$000
+  0 311403 4789116011793                      <- java/util/IdentityHashMap.access$000
+  0 311403 4789116011803                      -> java/util/IdentityHashMap.access$200
+  0 311403 4789116011811                      <- java/util/IdentityHashMap.access$200
+  0 311403 4789116011821                    <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311403 4789116011828                  <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311403 4789116011835                <- java/util/IdentityHashMap$KeyIterator.<init>
+  0 311403 4789116011842              <- java/util/IdentityHashMap$KeyIterator.<init>
+  0 311403 4789116011849            <- java/util/IdentityHashMap$KeySet.iterator
+  0 311403 4789116011858            -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+  0 311403 4789116011866            <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+  0 311403 4789116011873            -> java/util/IdentityHashMap$KeySet.iterator
+  0 311403 4789116011879              -> java/util/IdentityHashMap$KeyIterator.<init>
+  0 311403 4789116011886                -> java/util/IdentityHashMap$KeyIterator.<init>
+  0 311403 4789116011892                  -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311403 4789116011899                    -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311403 4789116011905                      -> java/lang/Object.<init>
+  0 311403 4789116011912                      <- java/lang/Object.<init>
+  0 311403 4789116011919                    <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311403 4789116011926                  <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311403 4789116011934                <- java/util/IdentityHashMap$KeyIterator.<init>
+  0 311403 4789116011940              <- java/util/IdentityHashMap$KeyIterator.<init>
+  0 311403 4789116011947            <- java/util/IdentityHashMap$KeySet.iterator
+  0 311403 4789116011953            -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+  0 311403 4789116011961            <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+  0 311403 4789116011968          <- java/lang/ApplicationShutdownHooks.run
+  0 311403 4789116011974          -> java/util/AbstractList$Itr.hasNext
+  0 311403 4789116011982          <- java/util/AbstractList$Itr.hasNext
+  0 311403 4789116011988          -> java/util/AbstractList$Itr.next
+  0 311403 4789116011994            -> java/util/AbstractList$Itr.checkForComodification
+  0 311403 4789116012002            <- java/util/AbstractList$Itr.checkForComodification
+  0 311403 4789116012008            -> java/util/ArrayList.get
+  0 311403 4789116012014              -> java/util/ArrayList.RangeCheck
+  0 311403 4789116012021              <- java/util/ArrayList.RangeCheck
+  0 311403 4789116012028            <- java/util/ArrayList.get
+  0 311403 4789116012035          <- java/util/AbstractList$Itr.next
+  0 311403 4789116012041          -> java/io/File$1.run
+  0 311403 4789116012187            -> java/io/DeleteOnExitHook.<clinit>
+  0 311403 4789116012333              -> java/util/LinkedHashSet.<init>
+  0 311403 4789116012343                -> java/util/HashSet.<init>
+  0 311403 4789116012350                  -> java/util/AbstractSet.<init>
+  0 311403 4789116012356                    -> java/util/AbstractCollection.<init>
+  0 311403 4789116012362                      -> java/lang/Object.<init>
+  0 311403 4789116012370                      <- java/lang/Object.<init>
+  0 311403 4789116012377                    <- java/util/AbstractCollection.<init>
+  0 311403 4789116012384                  <- java/util/AbstractSet.<init>
+  0 311403 4789116012394                  -> java/util/LinkedHashMap.<init>
+  0 311403 4789116012404                    -> java/util/HashMap.<init>
+  0 311403 4789116012410                      -> java/util/AbstractMap.<init>
+  0 311403 4789116012417                        -> java/lang/Object.<init>
+  0 311403 4789116012424                        <- java/lang/Object.<init>
+  0 311403 4789116012431                      <- java/util/AbstractMap.<init>
+  0 311403 4789116012438                      -> java/lang/Float.isNaN
+  0 311403 4789116012445                      <- java/lang/Float.isNaN
+  0 311403 4789116012456                      -> java/util/LinkedHashMap.init
+  0 311403 4789116012463                        -> java/util/LinkedHashMap$Entry.<init>
+  0 311403 4789116012469                          -> java/util/HashMap$Entry.<init>
+  0 311403 4789116012476                            -> java/lang/Object.<init>
+  0 311403 4789116012482                            <- java/lang/Object.<init>
+  0 311403 4789116012489                          <- java/util/HashMap$Entry.<init>
+  0 311403 4789116012496                        <- java/util/LinkedHashMap$Entry.<init>
+  0 311403 4789116012503                      <- java/util/LinkedHashMap.init
+  0 311403 4789116012510                    <- java/util/HashMap.<init>
+  0 311403 4789116012516                  <- java/util/LinkedHashMap.<init>
+  0 311403 4789116012523                <- java/util/HashSet.<init>
+  0 311403 4789116012529              <- java/util/LinkedHashSet.<init>
+  0 311403 4789116012538            <- java/io/DeleteOnExitHook.<clinit>
+  0 311403 4789116012547            -> java/io/DeleteOnExitHook.hook
+  0 311403 4789116012556              -> java/io/DeleteOnExitHook.<init>
+  0 311403 4789116012565                -> java/lang/Object.<init>
+  0 311403 4789116012572                <- java/lang/Object.<init>
+  0 311403 4789116012579              <- java/io/DeleteOnExitHook.<init>
+  0 311403 4789116012586            <- java/io/DeleteOnExitHook.hook
+  0 311403 4789116012594            -> java/io/DeleteOnExitHook.run
+  0 311403 4789116012605              -> java/util/ArrayList.<init>
+  0 311403 4789116012612                -> java/util/AbstractList.<init>
+  0 311403 4789116012618                  -> java/util/AbstractCollection.<init>
+  0 311403 4789116012624                    -> java/lang/Object.<init>
+  0 311403 4789116012631                    <- java/lang/Object.<init>
+  0 311403 4789116012638                  <- java/util/AbstractCollection.<init>
+  0 311403 4789116012645                <- java/util/AbstractList.<init>
+  0 311403 4789116012654                -> java/util/AbstractCollection.toArray
+  0 311403 4789116012664                  -> java/util/HashSet.size
+  0 311403 4789116012674                  <- java/util/HashSet.size
+  0 311403 4789116012682                  -> java/util/HashSet.iterator
+  0 311403 4789116012691                    -> java/util/HashMap.keySet
+  0 311403 4789116012782                      -> java/util/HashMap$KeySet.<init>
+  0 311403 4789116012791                        -> java/util/HashMap$KeySet.<init>
+  0 311403 4789116012801                          -> java/util/AbstractSet.<init>
+  0 311403 4789116012807                            -> java/util/AbstractCollection.<init>
+  0 311403 4789116012814                              -> java/lang/Object.<init>
+  0 311403 4789116012821                              <- java/lang/Object.<init>
+  0 311403 4789116012828                            <- java/util/AbstractCollection.<init>
+  0 311403 4789116012835                          <- java/util/AbstractSet.<init>
+  0 311403 4789116012841                        <- java/util/HashMap$KeySet.<init>
+  0 311403 4789116012848                      <- java/util/HashMap$KeySet.<init>
+  0 311403 4789116012855                    <- java/util/HashMap.keySet
+  0 311403 4789116012864                    -> java/util/HashMap$KeySet.iterator
+  0 311403 4789116012874                      -> java/util/LinkedHashMap.newKeyIterator
+  0 311403 4789116013056                        -> java/util/LinkedHashMap$KeyIterator.<init>
+  0 311403 4789116013066                          -> java/util/LinkedHashMap$KeyIterator.<init>
+  0 311403 4789116013076                            -> java/util/LinkedHashMap$LinkedHashIterator.<init>
+  0 311403 4789116013085                              -> java/util/LinkedHashMap$LinkedHashIterator.<init>
+  0 311403 4789116013095                                -> java/lang/Object.<init>
+  0 311403 4789116013102                                <- java/lang/Object.<init>
+  0 311403 4789116013117                              <- java/util/LinkedHashMap$LinkedHashIterator.<init>
+  0 311403 4789116013125                            <- java/util/LinkedHashMap$LinkedHashIterator.<init>
+  0 311403 4789116013132                          <- java/util/LinkedHashMap$KeyIterator.<init>
+  0 311403 4789116013138                        <- java/util/LinkedHashMap$KeyIterator.<init>
+  0 311403 4789116013145                      <- java/util/LinkedHashMap.newKeyIterator
+  0 311403 4789116013152                    <- java/util/HashMap$KeySet.iterator
+  0 311403 4789116013159                  <- java/util/HashSet.iterator
+  0 311403 4789116013168                  -> java/util/LinkedHashMap$LinkedHashIterator.hasNext
+  0 311403 4789116013176                  <- java/util/LinkedHashMap$LinkedHashIterator.hasNext
+  0 311403 4789116013183                <- java/util/AbstractCollection.toArray
+  0 311403 4789116013190                -> java/lang/Object.getClass
+  0 311403 4789116013198                <- java/lang/Object.getClass
+  0 311403 4789116013206              <- java/util/ArrayList.<init>
+  0 311403 4789116013216              -> java/util/Collections.reverse
+  0 311403 4789116013228              <- java/util/Collections.reverse
+  0 311403 4789116013236              -> java/util/AbstractList.iterator
+  0 311403 4789116013243                -> java/util/AbstractList$Itr.<init>
+  0 311403 4789116013250                  -> java/util/AbstractList$Itr.<init>
+  0 311403 4789116013256                    -> java/lang/Object.<init>
+  0 311403 4789116013263                    <- java/lang/Object.<init>
+  0 311403 4789116013270                  <- java/util/AbstractList$Itr.<init>
+  0 311403 4789116013276                <- java/util/AbstractList$Itr.<init>
+  0 311403 4789116013283              <- java/util/AbstractList.iterator
+  0 311403 4789116013292              -> java/util/AbstractList$Itr.hasNext
+  0 311403 4789116013299              <- java/util/AbstractList$Itr.hasNext
+  0 311403 4789116013306            <- java/io/DeleteOnExitHook.run
+  0 311403 4789116013313          <- java/io/File$1.run
+  0 311403 4789116013319          -> java/util/AbstractList$Itr.hasNext
+  0 311403 4789116013326          <- java/util/AbstractList$Itr.hasNext
+  0 311403 4789116013333        <- java/lang/Shutdown.runHooks
+  0 311403 4789116013342      <- java/lang/Shutdown.sequence
+  0 311403 4789116013349    <- java/lang/Shutdown.shutdown
+
+The fourth column is indented by 2 spaces to show when a new method begins.
+This shows what is calling what.
+
+The TIME(us) column shows time from boot in microseconds.
+
+If the output looks strange, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+I truncated the above output by 22800 lines so that it would fit. To make
+sense of the output, try searching for "Func_abc" or using grep. The
+lines were,
+
+  0 311403 4789112982182    -> Func_abc.main
+  0 311403 4789112982193      -> Func_abc.func_a
+  0 311403 4789113990080        -> Func_abc.func_b
+  0 311403 4789115000081          -> Func_abc.func_c
+  0 311403 4789116010073          <- Func_abc.func_c
+  0 311403 4789116010080        <- Func_abc.func_b
+  0 311403 4789116010086      <- Func_abc.func_a
+  0 311403 4789116010093    <- Func_abc.main
+
+You can also use the j_classflow.d script to only trace one class.
+
+If you see "drops" warnings, see the Notes/ALLjava_notes.txt file for details.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_flowtime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_flowtime_example.txt
new file mode 100644
index 0000000..22c6a61
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_flowtime_example.txt
@@ -0,0 +1,1287 @@
+The following are examples of j_flowtime.d.
+
+This is a simple script to trace the timing and the not-so-simple flow of 
+Java methods and classes.  Here it traces the example program, 
+Code/Java/func_abc
+
+# j_flowtime.d
+  C    PID/TID   TIME(us)         DELTA(us) -- CLASS.METHOD
+  0 311481/2     4790256870903            2 -> java/lang/Object.<clinit>
+  0 311481/2     4790256870950           46   -> java/lang/Object.registerNatives
+  0 311481/2     4790256871090          140   <- java/lang/Object.registerNatives
+  0 311481/2     4790256871109           18 <- java/lang/Object.<clinit>
+  0 311481/2     4790256871121           12 -> java/lang/String.<clinit>
+  0 311481/2     4790256871518          397   -> java/lang/String$CaseInsensitiveComparator.<init>
+  0 311481/2     4790256871531           12     -> java/lang/String$CaseInsensitiveComparator.<init>
+  0 311481/2     4790256871541           10       -> java/lang/Object.<init>
+  0 311481/2     4790256871549            7       <- java/lang/Object.<init>
+  0 311481/2     4790256871558            8     <- java/lang/String$CaseInsensitiveComparator.<init>
+  0 311481/2     4790256871566            7   <- java/lang/String$CaseInsensitiveComparator.<init>
+  0 311481/2     4790256871575            9 <- java/lang/String.<clinit>
+  0 311481/2     4790256871644           68 -> java/lang/System.<clinit>
+  0 311481/2     4790256871656           11   -> java/lang/System.registerNatives
+  0 311481/2     4790256871675           18   <- java/lang/System.registerNatives
+  0 311481/2     4790256871686           10   -> java/lang/System.nullInputStream
+  0 311481/2     4790256871695            9     -> java/lang/System.currentTimeMillis
+  0 311481/2     4790256871705           10     <- java/lang/System.currentTimeMillis
+  0 311481/2     4790256871714            8   <- java/lang/System.nullInputStream
+  0 311481/2     4790256871726           11   -> java/lang/System.nullPrintStream
+  0 311481/2     4790256871734            7     -> java/lang/System.currentTimeMillis
+  0 311481/2     4790256871741            7     <- java/lang/System.currentTimeMillis
+  0 311481/2     4790256871749            7   <- java/lang/System.nullPrintStream
+  0 311481/2     4790256871758            9   -> java/lang/System.nullPrintStream
+  0 311481/2     4790256871766            7     -> java/lang/System.currentTimeMillis
+  0 311481/2     4790256871773            7     <- java/lang/System.currentTimeMillis
+  0 311481/2     4790256871781            7   <- java/lang/System.nullPrintStream
+  0 311481/2     4790256871792           10 <- java/lang/System.<clinit>
+  0 311481/2     4790256871870           78 -> java/lang/ThreadGroup.<init>
+  0 311481/2     4790256871881           10   -> java/lang/Object.<init>
+  0 311481/2     4790256871889            7   <- java/lang/Object.<init>
+  0 311481/2     4790256871906           17 <- java/lang/ThreadGroup.<init>
+  0 311481/2     4790256871918           11 -> java/lang/ThreadGroup.<init>
+  0 311481/2     4790256871926            7   -> java/lang/Object.<init>
+  0 311481/2     4790256871933            7   <- java/lang/Object.<init>
+  0 311481/2     4790256871945           12   -> java/lang/ThreadGroup.checkAccess
+  0 311481/2     4790256871955           10     -> java/lang/System.getSecurityManager
+  0 311481/2     4790256871964            8     <- java/lang/System.getSecurityManager
+  0 311481/2     4790256871972            8   <- java/lang/ThreadGroup.checkAccess
+  0 311481/2     4790256871984           12   -> java/lang/ThreadGroup.add
+  0 311481/2     4790256872006           21   <- java/lang/ThreadGroup.add
+  0 311481/2     4790256872014            8 <- java/lang/ThreadGroup.<init>
+  0 311481/2     4790256872201          187 -> java/lang/Thread.<clinit>
+  0 311481/2     4790256872213           12   -> java/lang/Thread.registerNatives
+  0 311481/2     4790256872239           25   <- java/lang/Thread.registerNatives
+  0 311481/2     4790256872606          367   -> java/lang/RuntimePermission.<init>
+  0 311481/2     4790256872618           11     -> java/security/BasicPermission.<init>
+  0 311481/2     4790256872628            9       -> java/security/Permission.<init>
+  0 311481/2     4790256872637            9         -> java/lang/Object.<init>
+  0 311481/2     4790256872645            7         <- java/lang/Object.<init>
+  0 311481/2     4790256872656           10       <- java/security/Permission.<init>
+  0 311481/2     4790256872666           10       -> java/security/BasicPermission.init
+  0 311481/2     4790256872677           11         -> java/lang/String.length
+  0 311481/2     4790256872686            8         <- java/lang/String.length
+  0 311481/2     4790256872697           11         -> java/lang/String.charAt
+  0 311481/2     4790256872707           10         <- java/lang/String.charAt
+  0 311481/2     4790256872720           12         -> java/lang/String.equals
+  0 311481/2     4790256872728            8         <- java/lang/String.equals
+  0 311481/2     4790256872737            9       <- java/security/BasicPermission.init
+  0 311481/2     4790256872745            7     <- java/security/BasicPermission.<init>
+  0 311481/2     4790256872753            7   <- java/lang/RuntimePermission.<init>
+  0 311481/2     4790256873195          442   -> sun/misc/SoftCache.<init>
+  0 311481/2     4790256873208           12     -> java/util/AbstractMap.<init>
+  0 311481/2     4790256873218            9       -> java/lang/Object.<init>
+  0 311481/2     4790256873226            7       <- java/lang/Object.<init>
+  0 311481/2     4790256873238           11     <- java/util/AbstractMap.<init>
+  0 311481/2     4790256873371          133     -> java/lang/ref/ReferenceQueue.<clinit>
+  0 311481/2     4790256873443           72       -> java/lang/ref/ReferenceQueue$Null.<init>
+  0 311481/2     4790256873454           10         -> java/lang/ref/ReferenceQueue$Null.<init>
+  0 311481/2     4790256873464            9           -> java/lang/ref/ReferenceQueue.<init>
+  0 311481/2     4790256873474            9             -> java/lang/Object.<init>
+  0 311481/2     4790256873481            7             <- java/lang/Object.<init>
+  0 311481/2     4790256873542           60             -> java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311481/2     4790256873553           10               -> java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311481/2     4790256873562            9                 -> java/lang/Object.<init>
+  0 311481/2     4790256873570            7                 <- java/lang/Object.<init>
+  0 311481/2     4790256873578            7               <- java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311481/2     4790256873585            7             <- java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311481/2     4790256873597           11           <- java/lang/ref/ReferenceQueue.<init>
+  0 311481/2     4790256873604            7         <- java/lang/ref/ReferenceQueue$Null.<init>
+  0 311481/2     4790256873612            7       <- java/lang/ref/ReferenceQueue$Null.<init>
+  0 311481/2     4790256873622            9       -> java/lang/ref/ReferenceQueue$Null.<init>
+  0 311481/2     4790256873629            7         -> java/lang/ref/ReferenceQueue$Null.<init>
+  0 311481/2     4790256873636            7           -> java/lang/ref/ReferenceQueue.<init>
+  0 311481/2     4790256873644            7             -> java/lang/Object.<init>
+  0 311481/2     4790256873651            6             <- java/lang/Object.<init>
+  0 311481/2     4790256873659            7             -> java/lang/ref/ReferenceQueue$Lock.<init>
+[... 22800 lines truncated ...]
+  0 311481/2     4790257387424            7       <- java/util/HashMap.indexFor
+  0 311481/2     4790257387432            8     <- java/util/HashMap.put
+  0 311481/2     4790257387440            7   <- java/util/HashSet.add
+  0 311481/2     4790257387447            7 <- java/lang/ClassLoader.checkPackageAccess
+  0 311481/2     4790257387473           26 -> java/lang/reflect/Method.getModifiers
+  0 311481/2     4790257387486           12 <- java/lang/reflect/Method.getModifiers
+  0 311481/2     4790257387500           14 -> Func_abc.main
+  0 311481/2     4790257387512           11   -> Func_abc.func_a
+  0 311481/2     4790257387522            9     -> java/lang/ClassLoader.checkPackageAccess
+  0 311481/2     4790257387530            7       -> java/lang/System.getSecurityManager
+  0 311481/2     4790257387537            7       <- java/lang/System.getSecurityManager
+  0 311481/2     4790257387545            8       -> java/util/HashSet.add
+  0 311481/2     4790257387552            7         -> java/util/HashMap.put
+  0 311481/2     4790257387559            7           -> java/lang/Object.hashCode
+  0 311481/2     4790257387567            7           <- java/lang/Object.hashCode
+  0 311481/2     4790257387574            7           -> java/util/HashMap.hash
+  0 311481/2     4790257387581            7           <- java/util/HashMap.hash
+  0 311481/2     4790257387589            7           -> java/util/HashMap.indexFor
+  0 311481/2     4790257387596            7           <- java/util/HashMap.indexFor
+  0 311481/2     4790257387604            8         <- java/util/HashMap.put
+  0 311481/2     4790257387611            7       <- java/util/HashSet.add
+  0 311481/2     4790257387619            7     <- java/lang/ClassLoader.checkPackageAccess
+  0 311481/2     4790257387683           64     -> java/lang/ClassLoader.loadClassInternal
+  0 311481/2     4790257387691            8       -> java/lang/ClassLoader.loadClass
+  0 311481/2     4790257387699            7         -> sun/misc/Launcher$AppClassLoader.loadClass
+  0 311481/2     4790257387706            7           -> java/lang/String.lastIndexOf
+  0 311481/2     4790257387713            7             -> java/lang/String.lastIndexOf
+  0 311481/2     4790257387722            8             <- java/lang/String.lastIndexOf
+  0 311481/2     4790257387729            7           <- java/lang/String.lastIndexOf
+  0 311481/2     4790257387737            7           -> java/lang/System.getSecurityManager
+  0 311481/2     4790257387760           22           <- java/lang/System.getSecurityManager
+  0 311481/2     4790257387768            7           -> java/lang/ClassLoader.loadClass
+  0 311481/2     4790257387775            7             -> java/lang/ClassLoader.findLoadedClass
+  0 311481/2     4790257387782            7               -> java/lang/ClassLoader.check
+  0 311481/2     4790257387789            7               <- java/lang/ClassLoader.check
+  0 311481/2     4790257387797            7               -> java/lang/ClassLoader.checkName
+  0 311481/2     4790257387805            7                 -> java/lang/String.indexOf
+  0 311481/2     4790257387812            7                   -> java/lang/String.indexOf
+  0 311481/2     4790257387820            8                   <- java/lang/String.indexOf
+  0 311481/2     4790257387828            7                 <- java/lang/String.indexOf
+  0 311481/2     4790257387835            7                 -> sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257387843            7                 <- sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257387850            7                 -> java/lang/String.charAt
+  0 311481/2     4790257387857            7                 <- java/lang/String.charAt
+  0 311481/2     4790257387865            7               <- java/lang/ClassLoader.checkName
+  0 311481/2     4790257387873            7               -> java/lang/ClassLoader.findLoadedClass0
+  0 311481/2     4790257387883            9               <- java/lang/ClassLoader.findLoadedClass0
+  0 311481/2     4790257387890            7             <- java/lang/ClassLoader.findLoadedClass
+  0 311481/2     4790257387899            8             -> java/lang/ClassLoader.loadClass
+  0 311481/2     4790257387906            7               -> java/lang/ClassLoader.findLoadedClass
+  0 311481/2     4790257387913            7                 -> java/lang/ClassLoader.check
+  0 311481/2     4790257387920            7                 <- java/lang/ClassLoader.check
+  0 311481/2     4790257387928            7                 -> java/lang/ClassLoader.checkName
+  0 311481/2     4790257387935            7                   -> java/lang/String.indexOf
+  0 311481/2     4790257387942            7                     -> java/lang/String.indexOf
+  0 311481/2     4790257387951            8                     <- java/lang/String.indexOf
+  0 311481/2     4790257387958            7                   <- java/lang/String.indexOf
+  0 311481/2     4790257387966            7                   -> sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257387973            7                   <- sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257387981            7                   -> java/lang/String.charAt
+  0 311481/2     4790257387988            7                   <- java/lang/String.charAt
+  0 311481/2     4790257387995            7                 <- java/lang/ClassLoader.checkName
+  0 311481/2     4790257388003            7                 -> java/lang/ClassLoader.findLoadedClass0
+  0 311481/2     4790257388012            8                 <- java/lang/ClassLoader.findLoadedClass0
+  0 311481/2     4790257388020            7               <- java/lang/ClassLoader.findLoadedClass
+  0 311481/2     4790257388028            7               -> java/lang/ClassLoader.findBootstrapClass0
+  0 311481/2     4790257388035            7                 -> java/lang/ClassLoader.check
+  0 311481/2     4790257388042            7                 <- java/lang/ClassLoader.check
+  0 311481/2     4790257388050            7                 -> java/lang/ClassLoader.checkName
+  0 311481/2     4790257388057            7                   -> java/lang/String.indexOf
+  0 311481/2     4790257388064            7                     -> java/lang/String.indexOf
+  0 311481/2     4790257388072            8                     <- java/lang/String.indexOf
+  0 311481/2     4790257388080            7                   <- java/lang/String.indexOf
+  0 311481/2     4790257388087            7                   -> sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257388094            7                   <- sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257388102            7                   -> java/lang/String.charAt
+  0 311481/2     4790257388109            7                   <- java/lang/String.charAt
+  0 311481/2     4790257388117            7                 <- java/lang/ClassLoader.checkName
+  0 311481/2     4790257388124            7                 -> java/lang/ClassLoader.findBootstrapClass
+  0 311481/2     4790257388134            9                 <- java/lang/ClassLoader.findBootstrapClass
+  0 311481/2     4790257388142            8               <- java/lang/ClassLoader.findBootstrapClass0
+  0 311481/2     4790257388150            8             <- java/lang/ClassLoader.loadClass
+  0 311481/2     4790257388158            7           <- java/lang/ClassLoader.loadClass
+  0 311481/2     4790257388166            7         <- sun/misc/Launcher$AppClassLoader.loadClass
+  0 311481/2     4790257388173            7       <- java/lang/ClassLoader.loadClass
+  0 311481/2     4790257388181            7     <- java/lang/ClassLoader.loadClassInternal
+  0 311481/2     4790257388193           11     -> java/lang/ClassLoader.checkPackageAccess
+  0 311481/2     4790257388200            7       -> java/lang/System.getSecurityManager
+  0 311481/2     4790257388207            7       <- java/lang/System.getSecurityManager
+  0 311481/2     4790257388215            7       -> java/util/HashSet.add
+  0 311481/2     4790257388223            7         -> java/util/HashMap.put
+  0 311481/2     4790257388230            7           -> java/lang/Object.hashCode
+  0 311481/2     4790257388237            7           <- java/lang/Object.hashCode
+  0 311481/2     4790257388245            7           -> java/util/HashMap.hash
+  0 311481/2     4790257388252            7           <- java/util/HashMap.hash
+  0 311481/2     4790257388260            7           -> java/util/HashMap.indexFor
+  0 311481/2     4790257388267            7           <- java/util/HashMap.indexFor
+  0 311481/2     4790257388275            7         <- java/util/HashMap.put
+  0 311481/2     4790257388282            7       <- java/util/HashSet.add
+  0 311481/2     4790257388290            7     <- java/lang/ClassLoader.checkPackageAccess
+  0 311481/2     4790257388305           15     -> java/io/PrintStream.println
+  0 311481/2     4790257388316           11       -> java/io/PrintStream.print
+  0 311481/2     4790257388326            9         -> java/io/PrintStream.write
+  0 311481/2     4790257388335            9           -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790257388345           10           <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790257388358           12           -> java/io/Writer.write
+  0 311481/2     4790257388371           13             -> java/io/BufferedWriter.write
+  0 311481/2     4790257388382           10               -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790257388389            7               <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790257388399           10               -> java/io/BufferedWriter.min
+  0 311481/2     4790257388407            7               <- java/io/BufferedWriter.min
+  0 311481/2     4790257388417           10               -> java/lang/String.getChars
+  0 311481/2     4790257388425            8                 -> java/lang/System.arraycopy
+  0 311481/2     4790257388434            8                 <- java/lang/System.arraycopy
+  0 311481/2     4790257388442            7               <- java/lang/String.getChars
+  0 311481/2     4790257388450            8             <- java/io/BufferedWriter.write
+  0 311481/2     4790257388457            7           <- java/io/Writer.write
+  0 311481/2     4790257388467           10           -> java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790257388475            7             -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790257388482            7             <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790257388493           10             -> java/io/OutputStreamWriter.write
+  0 311481/2     4790257388504           11               -> sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790257388515           10                 -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790257388522            7                 <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790257388533           10                 -> sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790257388544           11                   -> java/nio/CharBuffer.wrap
+  0 311481/2     4790257388552            8                     -> java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790257388560            7                       -> java/nio/CharBuffer.<init>
+  0 311481/2     4790257388567            7                         -> java/nio/Buffer.<init>
+  0 311481/2     4790257388574            7                           -> java/lang/Object.<init>
+  0 311481/2     4790257388582            7                           <- java/lang/Object.<init>
+  0 311481/2     4790257388590            8                           -> java/nio/Buffer.limit
+  0 311481/2     4790257388598            7                           <- java/nio/Buffer.limit
+  0 311481/2     4790257388605            7                           -> java/nio/Buffer.position
+  0 311481/2     4790257388612            7                           <- java/nio/Buffer.position
+  0 311481/2     4790257388620            7                         <- java/nio/Buffer.<init>
+  0 311481/2     4790257388628            7                       <- java/nio/CharBuffer.<init>
+  0 311481/2     4790257388635            7                     <- java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790257388643            7                   <- java/nio/CharBuffer.wrap
+  0 311481/2     4790257388654           10                   -> java/nio/Buffer.hasRemaining
+  0 311481/2     4790257388661            7                   <- java/nio/Buffer.hasRemaining
+  0 311481/2     4790257388673           11                   -> java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790257388684           10                     -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790257388695           10                       -> java/nio/CharBuffer.hasArray
+  0 311481/2     4790257388702            7                       <- java/nio/CharBuffer.hasArray
+  0 311481/2     4790257388714           11                       -> java/nio/ByteBuffer.hasArray
+  0 311481/2     4790257388722            7                       <- java/nio/ByteBuffer.hasArray
+  0 311481/2     4790257388732           10                       -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790257388742            9                         -> java/nio/CharBuffer.array
+  0 311481/2     4790257388749            7                         <- java/nio/CharBuffer.array
+  0 311481/2     4790257388759            9                         -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257388766            7                         <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257388776            9                         -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257388784            7                         <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257388797           13                         -> java/nio/ByteBuffer.array
+  0 311481/2     4790257388804            7                         <- java/nio/ByteBuffer.array
+  0 311481/2     4790257388814            9                         -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257388821            7                         <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257388831            9                         -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257388838            7                         <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257388853           14                         -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257388861            7                         <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257388871            9                         -> java/nio/Buffer.position
+  0 311481/2     4790257388878            7                         <- java/nio/Buffer.position
+  0 311481/2     4790257388886            7                         -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257388893            7                         <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257388903            9                         -> java/nio/Buffer.position
+  0 311481/2     4790257388910            7                         <- java/nio/Buffer.position
+  0 311481/2     4790257388918            7                       <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790257388925            7                     <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790257388936           10                     -> java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790257388943            7                     <- java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790257388953            9                     -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790257388961            7                     <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790257388969            7                   <- java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790257388979           10                   -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790257388987            7                   <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790257388998           11                   -> java/nio/Buffer.remaining
+  0 311481/2     4790257389005            7                   <- java/nio/Buffer.remaining
+  0 311481/2     4790257389013            7                 <- sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790257389020            7               <- sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790257389028            7             <- java/io/OutputStreamWriter.write
+  0 311481/2     4790257389113           85           <- java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790257389125           11           -> java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790257389135            9             -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790257389146           11               -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790257389158           11                 -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790257389167            9                   -> java/nio/Buffer.flip
+  0 311481/2     4790257389174            7                   <- java/nio/Buffer.flip
+  0 311481/2     4790257389186           11                   -> java/nio/ByteBuffer.array
+  0 311481/2     4790257389193            7                   <- java/nio/ByteBuffer.array
+  0 311481/2     4790257389203            9                   -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257389210            7                   <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257389222           11                   -> java/io/PrintStream.write
+  0 311481/2     4790257389230            7                     -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790257389237            7                     <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790257389248           11                     -> java/io/BufferedOutputStream.write
+  0 311481/2     4790257389261           12                       -> java/lang/System.arraycopy
+  0 311481/2     4790257389268            7                       <- java/lang/System.arraycopy
+  0 311481/2     4790257389276            7                     <- java/io/BufferedOutputStream.write
+  0 311481/2     4790257389286            9                     -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790257389295            9                       -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790257389307           11                         -> java/io/FileOutputStream.write
+  0 311481/2     4790257389317           10                           -> java/io/FileOutputStream.writeBytes
+  0 311481/2     4790257389479          162                           <- java/io/FileOutputStream.writeBytes
+  0 311481/2     4790257389489            9                         <- java/io/FileOutputStream.write
+  0 311481/2     4790257389497            7                       <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790257389509           12                     <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790257389517            8                   <- java/io/PrintStream.write
+  0 311481/2     4790257389527           10                   -> java/nio/Buffer.clear
+  0 311481/2     4790257389536            8                   <- java/nio/Buffer.clear
+  0 311481/2     4790257389543            7                 <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790257389551            7               <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790257389559            7             <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790257389566            7           <- java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790257389579           12           -> java/lang/String.indexOf
+  0 311481/2     4790257389586            7             -> java/lang/String.indexOf
+  0 311481/2     4790257389595            8             <- java/lang/String.indexOf
+  0 311481/2     4790257389602            7           <- java/lang/String.indexOf
+  0 311481/2     4790257389610            7         <- java/io/PrintStream.write
+  0 311481/2     4790257389617            7       <- java/io/PrintStream.print
+  0 311481/2     4790257389627            9       -> java/io/PrintStream.newLine
+  0 311481/2     4790257389635            7         -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790257389642            7         <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790257389651            9         -> java/io/BufferedWriter.newLine
+  0 311481/2     4790257389661            9           -> java/io/Writer.write
+  0 311481/2     4790257389668            7             -> java/io/BufferedWriter.write
+  0 311481/2     4790257389713           44               -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790257389721            7               <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790257389729            8               -> java/io/BufferedWriter.min
+  0 311481/2     4790257389737            7               <- java/io/BufferedWriter.min
+  0 311481/2     4790257389744            7               -> java/lang/String.getChars
+  0 311481/2     4790257389752            7                 -> java/lang/System.arraycopy
+  0 311481/2     4790257389760            7                 <- java/lang/System.arraycopy
+  0 311481/2     4790257389767            7               <- java/lang/String.getChars
+  0 311481/2     4790257389775            7             <- java/io/BufferedWriter.write
+  0 311481/2     4790257389783            7           <- java/io/Writer.write
+  0 311481/2     4790257389790            7         <- java/io/BufferedWriter.newLine
+  0 311481/2     4790257389798            7         -> java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790257389805            7           -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790257389812            7           <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790257389820            7           -> java/io/OutputStreamWriter.write
+  0 311481/2     4790257389828            7             -> sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790257389835            7               -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790257389842            7               <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790257389850            7               -> sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790257389857            7                 -> java/nio/CharBuffer.wrap
+  0 311481/2     4790257389865            7                   -> java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790257389872            7                     -> java/nio/CharBuffer.<init>
+  0 311481/2     4790257389879            7                       -> java/nio/Buffer.<init>
+  0 311481/2     4790257389886            6                         -> java/lang/Object.<init>
+  0 311481/2     4790257389893            7                         <- java/lang/Object.<init>
+  0 311481/2     4790257389901            7                         -> java/nio/Buffer.limit
+  0 311481/2     4790257389908            7                         <- java/nio/Buffer.limit
+  0 311481/2     4790257389916            7                         -> java/nio/Buffer.position
+  0 311481/2     4790257389923            7                         <- java/nio/Buffer.position
+  0 311481/2     4790257389930            7                       <- java/nio/Buffer.<init>
+  0 311481/2     4790257389938            7                     <- java/nio/CharBuffer.<init>
+  0 311481/2     4790257389946            7                   <- java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790257389953            7                 <- java/nio/CharBuffer.wrap
+  0 311481/2     4790257389961            7                 -> java/nio/Buffer.hasRemaining
+  0 311481/2     4790257389968            7                 <- java/nio/Buffer.hasRemaining
+  0 311481/2     4790257389976            7                 -> java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790257389984            7                   -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790257389991            7                     -> java/nio/CharBuffer.hasArray
+  0 311481/2     4790257389998            7                     <- java/nio/CharBuffer.hasArray
+  0 311481/2     4790257390760          761                     -> java/nio/ByteBuffer.hasArray
+  0 311481/2     4790257390772           11                     <- java/nio/ByteBuffer.hasArray
+  0 311481/2     4790257390782           10                     -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790257390790            7                       -> java/nio/CharBuffer.array
+  0 311481/2     4790257390797            7                       <- java/nio/CharBuffer.array
+  0 311481/2     4790257390805            7                       -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257390812            7                       <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257390820            8                       -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257390828            7                       <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257390836            8                       -> java/nio/ByteBuffer.array
+  0 311481/2     4790257390844            7                       <- java/nio/ByteBuffer.array
+  0 311481/2     4790257390851            7                       -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257390859            7                       <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257390866            7                       -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257390874            7                       <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257390883            8                       -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257390890            7                       <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257390898            8                       -> java/nio/Buffer.position
+  0 311481/2     4790257390906            7                       <- java/nio/Buffer.position
+  0 311481/2     4790257390913            7                       -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257390921            7                       <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257390928            7                       -> java/nio/Buffer.position
+  0 311481/2     4790257390936            7                       <- java/nio/Buffer.position
+  0 311481/2     4790257390943            7                     <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790257390951            7                   <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790257390959            8                   -> java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790257390967            7                   <- java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790257390974            7                   -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790257390982            7                   <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790257390990            7                 <- java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790257390998            7                 -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790257391005            7                 <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790257391013            8                 -> java/nio/Buffer.remaining
+  0 311481/2     4790257391020            7                 <- java/nio/Buffer.remaining
+  0 311481/2     4790257391028            7               <- sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790257391036            7             <- sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790257391044            7           <- java/io/OutputStreamWriter.write
+  0 311481/2     4790257391052            8         <- java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790257391060            7         -> java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790257391067            7           -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790257391075            7             -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790257391082            7               -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790257391090            7                 -> java/nio/Buffer.flip
+  0 311481/2     4790257391097            7                 <- java/nio/Buffer.flip
+  0 311481/2     4790257391105            8                 -> java/nio/ByteBuffer.array
+  0 311481/2     4790257391112            7                 <- java/nio/ByteBuffer.array
+  0 311481/2     4790257391120            7                 -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257391127            7                 <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257391135            8                 -> java/io/PrintStream.write
+  0 311481/2     4790257391142            7                   -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790257391150            7                   <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790257391158            8                   -> java/io/BufferedOutputStream.write
+  0 311481/2     4790257391166            7                     -> java/lang/System.arraycopy
+  0 311481/2     4790257391174            8                     <- java/lang/System.arraycopy
+  0 311481/2     4790257391182            7                   <- java/io/BufferedOutputStream.write
+  0 311481/2     4790257391190            7                   -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790257391197            7                     -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790257391205            7                       -> java/io/FileOutputStream.write
+  0 311481/2     4790257391212            7                         -> java/io/FileOutputStream.writeBytes
+  0 311481/2     4790257391280           67                         <- java/io/FileOutputStream.writeBytes
+  0 311481/2     4790257391289            9                       <- java/io/FileOutputStream.write
+  0 311481/2     4790257391297            7                     <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790257391305            7                   <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790257391313            7                 <- java/io/PrintStream.write
+  0 311481/2     4790257391321            7                 -> java/nio/Buffer.clear
+  0 311481/2     4790257391329            7                 <- java/nio/Buffer.clear
+  0 311481/2     4790257391336            7               <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790257391344            7             <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790257391352            7           <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790257391359            7         <- java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790257391368            8         -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790257391375            7           -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790257391383            7           <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790257391391            8         <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790257391398            7       <- java/io/PrintStream.newLine
+  0 311481/2     4790257391406            7     <- java/io/PrintStream.println
+  0 311481/2     4790257391439           32     -> java/lang/ClassLoader.loadClassInternal
+  0 311481/2     4790257391447            8       -> java/lang/ClassLoader.loadClass
+  0 311481/2     4790257391455            7         -> sun/misc/Launcher$AppClassLoader.loadClass
+  0 311481/2     4790257391463            7           -> java/lang/String.lastIndexOf
+  0 311481/2     4790257391471            7             -> java/lang/String.lastIndexOf
+  0 311481/2     4790257391479            8             <- java/lang/String.lastIndexOf
+  0 311481/2     4790257391487            7           <- java/lang/String.lastIndexOf
+  0 311481/2     4790257391495            8           -> java/lang/System.getSecurityManager
+  0 311481/2     4790257391503            7           <- java/lang/System.getSecurityManager
+  0 311481/2     4790257391511            8           -> java/lang/ClassLoader.loadClass
+  0 311481/2     4790257391518            7             -> java/lang/ClassLoader.findLoadedClass
+  0 311481/2     4790257391526            7               -> java/lang/ClassLoader.check
+  0 311481/2     4790257391533            7               <- java/lang/ClassLoader.check
+  0 311481/2     4790257391541            7               -> java/lang/ClassLoader.checkName
+  0 311481/2     4790257391549            7                 -> java/lang/String.indexOf
+  0 311481/2     4790257391556            7                   -> java/lang/String.indexOf
+  0 311481/2     4790257391564            8                   <- java/lang/String.indexOf
+  0 311481/2     4790257391572            7                 <- java/lang/String.indexOf
+  0 311481/2     4790257391580            8                 -> sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257391587            7                 <- sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257391595            7                 -> java/lang/String.charAt
+  0 311481/2     4790257391603            7                 <- java/lang/String.charAt
+  0 311481/2     4790257391610            7               <- java/lang/ClassLoader.checkName
+  0 311481/2     4790257391618            7               -> java/lang/ClassLoader.findLoadedClass0
+  0 311481/2     4790257391633           14               <- java/lang/ClassLoader.findLoadedClass0
+  0 311481/2     4790257391641            8             <- java/lang/ClassLoader.findLoadedClass
+  0 311481/2     4790257391651            9             -> java/lang/ClassLoader.loadClass
+  0 311481/2     4790257391658            7               -> java/lang/ClassLoader.findLoadedClass
+  0 311481/2     4790257391665            7                 -> java/lang/ClassLoader.check
+  0 311481/2     4790257391672            7                 <- java/lang/ClassLoader.check
+  0 311481/2     4790257391680            7                 -> java/lang/ClassLoader.checkName
+  0 311481/2     4790257391688            7                   -> java/lang/String.indexOf
+  0 311481/2     4790257391695            7                     -> java/lang/String.indexOf
+  0 311481/2     4790257391703            8                     <- java/lang/String.indexOf
+  0 311481/2     4790257391711            7                   <- java/lang/String.indexOf
+  0 311481/2     4790257391718            7                   -> sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257391725            7                   <- sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257391733            7                   -> java/lang/String.charAt
+  0 311481/2     4790257391740            7                   <- java/lang/String.charAt
+  0 311481/2     4790257391748            7                 <- java/lang/ClassLoader.checkName
+  0 311481/2     4790257391755            7                 -> java/lang/ClassLoader.findLoadedClass0
+  0 311481/2     4790257391765            9                 <- java/lang/ClassLoader.findLoadedClass0
+  0 311481/2     4790257391773            8               <- java/lang/ClassLoader.findLoadedClass
+  0 311481/2     4790257391781            8               -> java/lang/ClassLoader.findBootstrapClass0
+  0 311481/2     4790257391788            7                 -> java/lang/ClassLoader.check
+  0 311481/2     4790257391795            7                 <- java/lang/ClassLoader.check
+  0 311481/2     4790257391803            7                 -> java/lang/ClassLoader.checkName
+  0 311481/2     4790257391810            7                   -> java/lang/String.indexOf
+  0 311481/2     4790257391817            7                     -> java/lang/String.indexOf
+  0 311481/2     4790257391825            7                     <- java/lang/String.indexOf
+  0 311481/2     4790257391833            7                   <- java/lang/String.indexOf
+  0 311481/2     4790257391840            7                   -> sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257391848            7                   <- sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257391855            7                   -> java/lang/String.charAt
+  0 311481/2     4790257391862            7                   <- java/lang/String.charAt
+  0 311481/2     4790257391870            7                 <- java/lang/ClassLoader.checkName
+  0 311481/2     4790257391877            7                 -> java/lang/ClassLoader.findBootstrapClass
+  0 311481/2     4790257391891           13                 <- java/lang/ClassLoader.findBootstrapClass
+  0 311481/2     4790257391899            7               <- java/lang/ClassLoader.findBootstrapClass0
+  0 311481/2     4790257391907            8             <- java/lang/ClassLoader.loadClass
+  0 311481/2     4790257391915            7           <- java/lang/ClassLoader.loadClass
+  0 311481/2     4790257391922            7         <- sun/misc/Launcher$AppClassLoader.loadClass
+  0 311481/2     4790257391930            7       <- java/lang/ClassLoader.loadClass
+  0 311481/2     4790257391938            7     <- java/lang/ClassLoader.loadClassInternal
+  0 311481/2     4790257391954           16     -> java/lang/ClassLoader.checkPackageAccess
+  0 311481/2     4790257391962            7       -> java/lang/System.getSecurityManager
+  0 311481/2     4790257391969            7       <- java/lang/System.getSecurityManager
+  0 311481/2     4790257391978            8       -> java/util/HashSet.add
+  0 311481/2     4790257391986            8         -> java/util/HashMap.put
+  0 311481/2     4790257391994            7           -> java/lang/Object.hashCode
+  0 311481/2     4790257392001            7           <- java/lang/Object.hashCode
+  0 311481/2     4790257392009            8           -> java/util/HashMap.hash
+  0 311481/2     4790257392017            7           <- java/util/HashMap.hash
+  0 311481/2     4790257392025            7           -> java/util/HashMap.indexFor
+  0 311481/2     4790257392032            7           <- java/util/HashMap.indexFor
+  0 311481/2     4790257392040            8         <- java/util/HashMap.put
+  0 311481/2     4790257392048            7       <- java/util/HashSet.add
+  0 311481/2     4790257392055            7     <- java/lang/ClassLoader.checkPackageAccess
+  0 311481/2     4790257392076           20     -> java/lang/Thread.currentThread
+  0 311481/2     4790257392084            8     <- java/lang/Thread.currentThread
+  0 311481/2     4790257392094           10     -> java/lang/Thread.sleep
+  0 311481/2     4790258400253      1008158     <- java/lang/Thread.sleep
+  0 311481/2     4790258400299           45     -> Func_abc.func_b
+  0 311481/2     4790258400329           30       -> java/io/PrintStream.println
+  0 311481/2     4790258400338            8         -> java/io/PrintStream.print
+  0 311481/2     4790258400345            7           -> java/io/PrintStream.write
+  0 311481/2     4790258400353            7             -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790258400361            7             <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790258400369            8             -> java/io/Writer.write
+  0 311481/2     4790258400378            8               -> java/io/BufferedWriter.write
+  0 311481/2     4790258400386            7                 -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790258400393            7                 <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790258400402            9                 -> java/io/BufferedWriter.min
+  0 311481/2     4790258400410            7                 <- java/io/BufferedWriter.min
+  0 311481/2     4790258400418            8                 -> java/lang/String.getChars
+  0 311481/2     4790258400426            8                   -> java/lang/System.arraycopy
+  0 311481/2     4790258400435            8                   <- java/lang/System.arraycopy
+  0 311481/2     4790258400442            7                 <- java/lang/String.getChars
+  0 311481/2     4790258400451            8               <- java/io/BufferedWriter.write
+  0 311481/2     4790258400458            7             <- java/io/Writer.write
+  0 311481/2     4790258400466            7             -> java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790258400474            7               -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790258400481            7               <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790258400489            8               -> java/io/OutputStreamWriter.write
+  0 311481/2     4790258400497            7                 -> sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790258400504            7                   -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790258400511            7                   <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790258400520            8                   -> sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790258400528            7                     -> java/nio/CharBuffer.wrap
+  0 311481/2     4790258400536            7                       -> java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790258400544            7                         -> java/nio/CharBuffer.<init>
+  0 311481/2     4790258400551            7                           -> java/nio/Buffer.<init>
+  0 311481/2     4790258400559            7                             -> java/lang/Object.<init>
+  0 311481/2     4790258400566            7                             <- java/lang/Object.<init>
+  0 311481/2     4790258400574            8                             -> java/nio/Buffer.limit
+  0 311481/2     4790258400582            7                             <- java/nio/Buffer.limit
+  0 311481/2     4790258400590            7                             -> java/nio/Buffer.position
+  0 311481/2     4790258400597            7                             <- java/nio/Buffer.position
+  0 311481/2     4790258400604            7                           <- java/nio/Buffer.<init>
+  0 311481/2     4790258400612            7                         <- java/nio/CharBuffer.<init>
+  0 311481/2     4790258400620            7                       <- java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790258400627            7                     <- java/nio/CharBuffer.wrap
+  0 311481/2     4790258400635            8                     -> java/nio/Buffer.hasRemaining
+  0 311481/2     4790258400643            7                     <- java/nio/Buffer.hasRemaining
+  0 311481/2     4790258400651            8                     -> java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790258400659            8                       -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790258400667            7                         -> java/nio/CharBuffer.hasArray
+  0 311481/2     4790258400675            7                         <- java/nio/CharBuffer.hasArray
+  0 311481/2     4790258400683            8                         -> java/nio/ByteBuffer.hasArray
+  0 311481/2     4790258400690            7                         <- java/nio/ByteBuffer.hasArray
+  0 311481/2     4790258400698            7                         -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790258400706            7                           -> java/nio/CharBuffer.array
+  0 311481/2     4790258400713            7                           <- java/nio/CharBuffer.array
+  0 311481/2     4790258400721            7                           -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258400728            7                           <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258400736            7                           -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258400743            7                           <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258400752            8                           -> java/nio/ByteBuffer.array
+  0 311481/2     4790258400759            7                           <- java/nio/ByteBuffer.array
+  0 311481/2     4790258400766            7                           -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258400774            7                           <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258400781            7                           -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258400789            7                           <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258400799            9                           -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258400806            7                           <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258400813            7                           -> java/nio/Buffer.position
+  0 311481/2     4790258400821            7                           <- java/nio/Buffer.position
+  0 311481/2     4790258400828            7                           -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258400836            7                           <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258400843            7                           -> java/nio/Buffer.position
+  0 311481/2     4790258400850            7                           <- java/nio/Buffer.position
+  0 311481/2     4790258400858            7                         <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790258400866            7                       <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790258400874            8                       -> java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790258400881            7                       <- java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790258400889            7                       -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790258400896            7                       <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790258400904            7                     <- java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790258400912            7                     -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790258400919            7                     <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790258400927            8                     -> java/nio/Buffer.remaining
+  0 311481/2     4790258400934            7                     <- java/nio/Buffer.remaining
+  0 311481/2     4790258400942            7                   <- sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790258400950            7                 <- sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790258400957            7               <- java/io/OutputStreamWriter.write
+  0 311481/2     4790258400965            7             <- java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790258400973            8             -> java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790258400981            7               -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790258400988            7                 -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790258400996            7                   -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790258401004            7                     -> java/nio/Buffer.flip
+  0 311481/2     4790258401011            6                     <- java/nio/Buffer.flip
+  0 311481/2     4790258401019            8                     -> java/nio/ByteBuffer.array
+  0 311481/2     4790258401026            7                     <- java/nio/ByteBuffer.array
+  0 311481/2     4790258401033            7                     -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401041            7                     <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401049            7                     -> java/io/PrintStream.write
+  0 311481/2     4790258401056            7                       -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790258401063            7                       <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790258401071            8                       -> java/io/BufferedOutputStream.write
+  0 311481/2     4790258401079            7                         -> java/lang/System.arraycopy
+  0 311481/2     4790258401087            7                         <- java/lang/System.arraycopy
+  0 311481/2     4790258401094            7                       <- java/io/BufferedOutputStream.write
+  0 311481/2     4790258401103            8                       -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790258401110            7                         -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790258401118            7                           -> java/io/FileOutputStream.write
+  0 311481/2     4790258401125            7                             -> java/io/FileOutputStream.writeBytes
+  0 311481/2     4790258401164           39                             <- java/io/FileOutputStream.writeBytes
+  0 311481/2     4790258401173            8                           <- java/io/FileOutputStream.write
+  0 311481/2     4790258401181            7                         <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790258401189            7                       <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790258401196            7                     <- java/io/PrintStream.write
+  0 311481/2     4790258401204            7                     -> java/nio/Buffer.clear
+  0 311481/2     4790258401212            7                     <- java/nio/Buffer.clear
+  0 311481/2     4790258401219            7                   <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790258401227            7                 <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790258401235            7               <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790258401242            7             <- java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790258401251            8             -> java/lang/String.indexOf
+  0 311481/2     4790258401258            7               -> java/lang/String.indexOf
+  0 311481/2     4790258401266            8               <- java/lang/String.indexOf
+  0 311481/2     4790258401274            7             <- java/lang/String.indexOf
+  0 311481/2     4790258401281            7           <- java/io/PrintStream.write
+  0 311481/2     4790258401289            7         <- java/io/PrintStream.print
+  0 311481/2     4790258401297            7         -> java/io/PrintStream.newLine
+  0 311481/2     4790258401304            7           -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790258401311            7           <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790258401319            7           -> java/io/BufferedWriter.newLine
+  0 311481/2     4790258401326            7             -> java/io/Writer.write
+  0 311481/2     4790258401334            7               -> java/io/BufferedWriter.write
+  0 311481/2     4790258401341            7                 -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790258401348            7                 <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790258401356            7                 -> java/io/BufferedWriter.min
+  0 311481/2     4790258401363            7                 <- java/io/BufferedWriter.min
+  0 311481/2     4790258401371            7                 -> java/lang/String.getChars
+  0 311481/2     4790258401378            7                   -> java/lang/System.arraycopy
+  0 311481/2     4790258401385            7                   <- java/lang/System.arraycopy
+  0 311481/2     4790258401393            7                 <- java/lang/String.getChars
+  0 311481/2     4790258401401            7               <- java/io/BufferedWriter.write
+  0 311481/2     4790258401408            7             <- java/io/Writer.write
+  0 311481/2     4790258401416            7           <- java/io/BufferedWriter.newLine
+  0 311481/2     4790258401423            7           -> java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790258401430            7             -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790258401438            7             <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790258401446            7             -> java/io/OutputStreamWriter.write
+  0 311481/2     4790258401453            7               -> sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790258401460            7                 -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790258401467            7                 <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790258401475            7                 -> sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790258401482            7                   -> java/nio/CharBuffer.wrap
+  0 311481/2     4790258401490            7                     -> java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790258401497            7                       -> java/nio/CharBuffer.<init>
+  0 311481/2     4790258401504            7                         -> java/nio/Buffer.<init>
+  0 311481/2     4790258401511            7                           -> java/lang/Object.<init>
+  0 311481/2     4790258401518            7                           <- java/lang/Object.<init>
+  0 311481/2     4790258401526            7                           -> java/nio/Buffer.limit
+  0 311481/2     4790258401533            7                           <- java/nio/Buffer.limit
+  0 311481/2     4790258401541            7                           -> java/nio/Buffer.position
+  0 311481/2     4790258401548            7                           <- java/nio/Buffer.position
+  0 311481/2     4790258401556            7                         <- java/nio/Buffer.<init>
+  0 311481/2     4790258401563            7                       <- java/nio/CharBuffer.<init>
+  0 311481/2     4790258401570            7                     <- java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790258401578            7                   <- java/nio/CharBuffer.wrap
+  0 311481/2     4790258401586            7                   -> java/nio/Buffer.hasRemaining
+  0 311481/2     4790258401593            7                   <- java/nio/Buffer.hasRemaining
+  0 311481/2     4790258401601            7                   -> java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790258401608            7                     -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790258401615            7                       -> java/nio/CharBuffer.hasArray
+  0 311481/2     4790258401623            7                       <- java/nio/CharBuffer.hasArray
+  0 311481/2     4790258401630            7                       -> java/nio/ByteBuffer.hasArray
+  0 311481/2     4790258401638            7                       <- java/nio/ByteBuffer.hasArray
+  0 311481/2     4790258401645            7                       -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790258401653            7                         -> java/nio/CharBuffer.array
+  0 311481/2     4790258401660            7                         <- java/nio/CharBuffer.array
+  0 311481/2     4790258401667            7                         -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258401675            7                         <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258401682            7                         -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258401690            7                         <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258401697            7                         -> java/nio/ByteBuffer.array
+  0 311481/2     4790258401705            7                         <- java/nio/ByteBuffer.array
+  0 311481/2     4790258401712            7                         -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401719            7                         <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401727            7                         -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401734            7                         <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401743            8                         -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258401750            7                         <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258401757            7                         -> java/nio/Buffer.position
+  0 311481/2     4790258401765            7                         <- java/nio/Buffer.position
+  0 311481/2     4790258401772            7                         -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401780            7                         <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401787            7                         -> java/nio/Buffer.position
+  0 311481/2     4790258401794            7                         <- java/nio/Buffer.position
+  0 311481/2     4790258401802            7                       <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790258401809            7                     <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790258401817            7                     -> java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790258401825            7                     <- java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790258401832            7                     -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790258401840            7                     <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790258401848            7                   <- java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790258401855            7                   -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790258401863            7                   <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790258401871            7                   -> java/nio/Buffer.remaining
+  0 311481/2     4790258401878            7                   <- java/nio/Buffer.remaining
+  0 311481/2     4790258401885            7                 <- sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790258401893            7               <- sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790258401901            7             <- java/io/OutputStreamWriter.write
+  0 311481/2     4790258401908            7           <- java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790258401916            7           -> java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790258401923            7             -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790258401931            7               -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790258401938            7                 -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790258401945            7                   -> java/nio/Buffer.flip
+  0 311481/2     4790258401952            7                   <- java/nio/Buffer.flip
+  0 311481/2     4790258401960            7                   -> java/nio/ByteBuffer.array
+  0 311481/2     4790258401967            7                   <- java/nio/ByteBuffer.array
+  0 311481/2     4790258401975            7                   -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401982            7                   <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401990            7                   -> java/io/PrintStream.write
+  0 311481/2     4790258401997            7                     -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790258402004            7                     <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790258402012            7                     -> java/io/BufferedOutputStream.write
+  0 311481/2     4790258402020            7                       -> java/lang/System.arraycopy
+  0 311481/2     4790258402027            7                       <- java/lang/System.arraycopy
+  0 311481/2     4790258402035            7                     <- java/io/BufferedOutputStream.write
+  0 311481/2     4790258402042            7                     -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790258402050            7                       -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790258402057            7                         -> java/io/FileOutputStream.write
+  0 311481/2     4790258402064            7                           -> java/io/FileOutputStream.writeBytes
+  0 311481/2     4790258402082           17                           <- java/io/FileOutputStream.writeBytes
+  0 311481/2     4790258402090            8                         <- java/io/FileOutputStream.write
+  0 311481/2     4790258402098            7                       <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790258402106            7                     <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790258402113            7                   <- java/io/PrintStream.write
+  0 311481/2     4790258402121            7                   -> java/nio/Buffer.clear
+  0 311481/2     4790258402128            7                   <- java/nio/Buffer.clear
+  0 311481/2     4790258402136            7                 <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790258402143            7               <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790258402151            7             <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790258402159            7           <- java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790258402166            7           -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790258402174            7             -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790258402181            7             <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790258402189            7           <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790258402196            7         <- java/io/PrintStream.newLine
+  0 311481/2     4790258402204            7       <- java/io/PrintStream.println
+  0 311481/2     4790258402212            7       -> java/lang/Thread.currentThread
+  0 311481/2     4790258402220            7       <- java/lang/Thread.currentThread
+  0 311481/2     4790258402228            7       -> java/lang/Thread.sleep
+  0 311481/2     4790259410328      1008099       <- java/lang/Thread.sleep
+  0 311481/2     4790259410374           46       -> Func_abc.func_c
+  0 311481/2     4790259410404           29         -> java/io/PrintStream.println
+  0 311481/2     4790259410412            8           -> java/io/PrintStream.print
+  0 311481/2     4790259410420            7             -> java/io/PrintStream.write
+  0 311481/2     4790259410428            7               -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790259410435            7               <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790259410444            8               -> java/io/Writer.write
+  0 311481/2     4790259410453            8                 -> java/io/BufferedWriter.write
+  0 311481/2     4790259410460            7                   -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790259410467            7                   <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790259410477            9                   -> java/io/BufferedWriter.min
+  0 311481/2     4790259410484            7                   <- java/io/BufferedWriter.min
+  0 311481/2     4790259410492            8                   -> java/lang/String.getChars
+  0 311481/2     4790259410501            8                     -> java/lang/System.arraycopy
+  0 311481/2     4790259410509            8                     <- java/lang/System.arraycopy
+  0 311481/2     4790259410517            7                   <- java/lang/String.getChars
+  0 311481/2     4790259410525            8                 <- java/io/BufferedWriter.write
+  0 311481/2     4790259410533            7               <- java/io/Writer.write
+  0 311481/2     4790259410541            7               -> java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790259410548            7                 -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790259410555            7                 <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790259410563            8                 -> java/io/OutputStreamWriter.write
+  0 311481/2     4790259410571            7                   -> sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790259410579            7                     -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790259410586            7                     <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790259410595            8                     -> sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790259410602            7                       -> java/nio/CharBuffer.wrap
+  0 311481/2     4790259410610            7                         -> java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790259410618            7                           -> java/nio/CharBuffer.<init>
+  0 311481/2     4790259410625            7                             -> java/nio/Buffer.<init>
+  0 311481/2     4790259410633            7                               -> java/lang/Object.<init>
+  0 311481/2     4790259410640            7                               <- java/lang/Object.<init>
+  0 311481/2     4790259410648            8                               -> java/nio/Buffer.limit
+  0 311481/2     4790259410656            7                               <- java/nio/Buffer.limit
+  0 311481/2     4790259410664            7                               -> java/nio/Buffer.position
+  0 311481/2     4790259410671            7                               <- java/nio/Buffer.position
+  0 311481/2     4790259410678            7                             <- java/nio/Buffer.<init>
+  0 311481/2     4790259410686            7                           <- java/nio/CharBuffer.<init>
+  0 311481/2     4790259410694            7                         <- java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790259410701            7                       <- java/nio/CharBuffer.wrap
+  0 311481/2     4790259410710            8                       -> java/nio/Buffer.hasRemaining
+  0 311481/2     4790259410717            7                       <- java/nio/Buffer.hasRemaining
+  0 311481/2     4790259410725            8                       -> java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790259410733            8                         -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790259410741            7                           -> java/nio/CharBuffer.hasArray
+  0 311481/2     4790259410749            7                           <- java/nio/CharBuffer.hasArray
+  0 311481/2     4790259410757            8                           -> java/nio/ByteBuffer.hasArray
+  0 311481/2     4790259410764            7                           <- java/nio/ByteBuffer.hasArray
+  0 311481/2     4790259410772            7                           -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790259410780            7                             -> java/nio/CharBuffer.array
+  0 311481/2     4790259410787            7                             <- java/nio/CharBuffer.array
+  0 311481/2     4790259410795            7                             -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259410802            7                             <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259410810            7                             -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259410817            7                             <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259410826            8                             -> java/nio/ByteBuffer.array
+  0 311481/2     4790259410833            7                             <- java/nio/ByteBuffer.array
+  0 311481/2     4790259410841            7                             -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259410848            7                             <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259410855            7                             -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259410863            7                             <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259410873            9                             -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259410880            7                             <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259410888            7                             -> java/nio/Buffer.position
+  0 311481/2     4790259410895            7                             <- java/nio/Buffer.position
+  0 311481/2     4790259410902            7                             -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259410910            7                             <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259410917            7                             -> java/nio/Buffer.position
+  0 311481/2     4790259410924            7                             <- java/nio/Buffer.position
+  0 311481/2     4790259410932            7                           <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790259410940            7                         <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790259410948            8                         -> java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790259410955            7                         <- java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790259410963            7                         -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790259410970            7                         <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790259410978            7                       <- java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790259410986            7                       -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790259410993            7                       <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790259411001            8                       -> java/nio/Buffer.remaining
+  0 311481/2     4790259411008            7                       <- java/nio/Buffer.remaining
+  0 311481/2     4790259411016            7                     <- sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790259411024            7                   <- sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790259411031            7                 <- java/io/OutputStreamWriter.write
+  0 311481/2     4790259411039            7               <- java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790259411047            8               -> java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790259411055            7                 -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790259411062            7                   -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790259411070            7                     -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790259411077            7                       -> java/nio/Buffer.flip
+  0 311481/2     4790259411084            6                       <- java/nio/Buffer.flip
+  0 311481/2     4790259411092            8                       -> java/nio/ByteBuffer.array
+  0 311481/2     4790259411100            7                       <- java/nio/ByteBuffer.array
+  0 311481/2     4790259411107            7                       -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259411114            7                       <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259411122            7                       -> java/io/PrintStream.write
+  0 311481/2     4790259411130            7                         -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790259411137            7                         <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790259411145            8                         -> java/io/BufferedOutputStream.write
+  0 311481/2     4790259411153            7                           -> java/lang/System.arraycopy
+  0 311481/2     4790259411160            7                           <- java/lang/System.arraycopy
+  0 311481/2     4790259411168            7                         <- java/io/BufferedOutputStream.write
+  0 311481/2     4790259411176            8                         -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790259411184            7                           -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790259411192            7                             -> java/io/FileOutputStream.write
+  0 311481/2     4790259411199            7                               -> java/io/FileOutputStream.writeBytes
+  0 311481/2     4790259411241           41                               <- java/io/FileOutputStream.writeBytes
+  0 311481/2     4790259411249            8                             <- java/io/FileOutputStream.write
+  0 311481/2     4790259411257            7                           <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790259411265            7                         <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790259411272            7                       <- java/io/PrintStream.write
+  0 311481/2     4790259411280            7                       -> java/nio/Buffer.clear
+  0 311481/2     4790259411288            7                       <- java/nio/Buffer.clear
+  0 311481/2     4790259411295            7                     <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790259411303            7                   <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790259411310            7                 <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790259411318            7               <- java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790259411326            8               -> java/lang/String.indexOf
+  0 311481/2     4790259411334            7                 -> java/lang/String.indexOf
+  0 311481/2     4790259411342            8                 <- java/lang/String.indexOf
+  0 311481/2     4790259411349            7               <- java/lang/String.indexOf
+  0 311481/2     4790259411357            7             <- java/io/PrintStream.write
+  0 311481/2     4790259411365            7           <- java/io/PrintStream.print
+  0 311481/2     4790259411372            7           -> java/io/PrintStream.newLine
+  0 311481/2     4790259411380            7             -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790259411387            7             <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790259411395            7             -> java/io/BufferedWriter.newLine
+  0 311481/2     4790259411402            7               -> java/io/Writer.write
+  0 311481/2     4790259411409            7                 -> java/io/BufferedWriter.write
+  0 311481/2     4790259411416            7                   -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790259411423            7                   <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790259411431            7                   -> java/io/BufferedWriter.min
+  0 311481/2     4790259411439            7                   <- java/io/BufferedWriter.min
+  0 311481/2     4790259411446            7                   -> java/lang/String.getChars
+  0 311481/2     4790259411454            7                     -> java/lang/System.arraycopy
+  0 311481/2     4790259411461            7                     <- java/lang/System.arraycopy
+  0 311481/2     4790259411468            7                   <- java/lang/String.getChars
+  0 311481/2     4790259411476            7                 <- java/io/BufferedWriter.write
+  0 311481/2     4790259411484            7               <- java/io/Writer.write
+  0 311481/2     4790259411491            7             <- java/io/BufferedWriter.newLine
+  0 311481/2     4790259411499            7             -> java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790259411506            7               -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790259411513            7               <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790259411521            7               -> java/io/OutputStreamWriter.write
+  0 311481/2     4790259411528            7                 -> sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790259411535            7                   -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790259411543            7                   <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790259411550            7                   -> sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790259411558            7                     -> java/nio/CharBuffer.wrap
+  0 311481/2     4790259411565            7                       -> java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790259411572            7                         -> java/nio/CharBuffer.<init>
+  0 311481/2     4790259411579            7                           -> java/nio/Buffer.<init>
+  0 311481/2     4790259411586            6                             -> java/lang/Object.<init>
+  0 311481/2     4790259411594            7                             <- java/lang/Object.<init>
+  0 311481/2     4790259411601            7                             -> java/nio/Buffer.limit
+  0 311481/2     4790259411608            7                             <- java/nio/Buffer.limit
+  0 311481/2     4790259411616            7                             -> java/nio/Buffer.position
+  0 311481/2     4790259411623            7                             <- java/nio/Buffer.position
+  0 311481/2     4790259411631            7                           <- java/nio/Buffer.<init>
+  0 311481/2     4790259411638            7                         <- java/nio/CharBuffer.<init>
+  0 311481/2     4790259411646            7                       <- java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790259411653            7                     <- java/nio/CharBuffer.wrap
+  0 311481/2     4790259411661            7                     -> java/nio/Buffer.hasRemaining
+  0 311481/2     4790259411668            7                     <- java/nio/Buffer.hasRemaining
+  0 311481/2     4790259411676            7                     -> java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790259411684            7                       -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790259411691            7                         -> java/nio/CharBuffer.hasArray
+  0 311481/2     4790259411698            7                         <- java/nio/CharBuffer.hasArray
+  0 311481/2     4790259411706            7                         -> java/nio/ByteBuffer.hasArray
+  0 311481/2     4790259411713            7                         <- java/nio/ByteBuffer.hasArray
+  0 311481/2     4790259411721            7                         -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790259411728            7                           -> java/nio/CharBuffer.array
+  0 311481/2     4790259411735            7                           <- java/nio/CharBuffer.array
+  0 311481/2     4790259411743            7                           -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259411750            7                           <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259411758            7                           -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259411765            7                           <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259411773            7                           -> java/nio/ByteBuffer.array
+  0 311481/2     4790259411780            7                           <- java/nio/ByteBuffer.array
+  0 311481/2     4790259411787            7                           -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259411795            7                           <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259411802            7                           -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259411809            7                           <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259411818            8                           -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259411825            7                           <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259411833            7                           -> java/nio/Buffer.position
+  0 311481/2     4790259411840            7                           <- java/nio/Buffer.position
+  0 311481/2     4790259411847            7                           -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259411855            7                           <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259411862            7                           -> java/nio/Buffer.position
+  0 311481/2     4790259411869            7                           <- java/nio/Buffer.position
+  0 311481/2     4790259411877            7                         <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790259411885            7                       <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790259411893            8                       -> java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790259411900            7                       <- java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790259411908            7                       -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790259411915            7                       <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790259411923            7                     <- java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790259411931            7                     -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790259411938            7                     <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790259411946            7                     -> java/nio/Buffer.remaining
+  0 311481/2     4790259411953            7                     <- java/nio/Buffer.remaining
+  0 311481/2     4790259411960            7                   <- sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790259411968            7                 <- sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790259411976            7               <- java/io/OutputStreamWriter.write
+  0 311481/2     4790259411983            7             <- java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790259411991            7             -> java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790259411999            7               -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790259412006            7                 -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790259412013            7                   -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790259412021            7                     -> java/nio/Buffer.flip
+  0 311481/2     4790259412028            6                     <- java/nio/Buffer.flip
+  0 311481/2     4790259412035            7                     -> java/nio/ByteBuffer.array
+  0 311481/2     4790259412043            7                     <- java/nio/ByteBuffer.array
+  0 311481/2     4790259412050            7                     -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259412057            7                     <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259412065            7                     -> java/io/PrintStream.write
+  0 311481/2     4790259412072            7                       -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790259412080            7                       <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790259412087            7                       -> java/io/BufferedOutputStream.write
+  0 311481/2     4790259412095            7                         -> java/lang/System.arraycopy
+  0 311481/2     4790259412102            7                         <- java/lang/System.arraycopy
+  0 311481/2     4790259412110            7                       <- java/io/BufferedOutputStream.write
+  0 311481/2     4790259412118            7                       -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790259412125            7                         -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790259412132            7                           -> java/io/FileOutputStream.write
+  0 311481/2     4790259412140            7                             -> java/io/FileOutputStream.writeBytes
+  0 311481/2     4790259412157           17                             <- java/io/FileOutputStream.writeBytes
+  0 311481/2     4790259412165            8                           <- java/io/FileOutputStream.write
+  0 311481/2     4790259412172            7                         <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790259412180            7                       <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790259412188            7                     <- java/io/PrintStream.write
+  0 311481/2     4790259412195            7                     -> java/nio/Buffer.clear
+  0 311481/2     4790259412203            7                     <- java/nio/Buffer.clear
+  0 311481/2     4790259412210            7                   <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790259412218            7                 <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790259412226            7               <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790259412233            7             <- java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790259412241            7             -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790259412248            7               -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790259412256            7               <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790259412263            7             <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790259412271            7           <- java/io/PrintStream.newLine
+  0 311481/2     4790259412279            7         <- java/io/PrintStream.println
+  0 311481/2     4790259412287            8         -> java/lang/Thread.currentThread
+  0 311481/2     4790259412294            7         <- java/lang/Thread.currentThread
+  0 311481/2     4790259412302            7         -> java/lang/Thread.sleep
+  0 311481/2     4790260420044      1007741         <- java/lang/Thread.sleep
+  0 311481/2     4790260420073           29       <- Func_abc.func_c
+  0 311481/2     4790260420081            7     <- Func_abc.func_b
+  0 311481/2     4790260420088            7   <- Func_abc.func_a
+  0 311481/2     4790260420096            7 <- Func_abc.main
+  0 311481/2     4790260420121           24 -> java/lang/Thread.exit
+  0 311481/2     4790260420153           32   -> java/lang/ThreadGroup.remove
+  0 311481/2     4790260420169           15     -> java/lang/System.arraycopy
+  0 311481/2     4790260420178            8     <- java/lang/System.arraycopy
+  0 311481/2     4790260420190           11     -> java/lang/Object.notifyAll
+  0 311481/2     4790260420203           13     <- java/lang/Object.notifyAll
+  0 311481/2     4790260420211            8   <- java/lang/ThreadGroup.remove
+  0 311481/2     4790260420225           13 <- java/lang/Thread.exit
+  0 311481/2     4790260420438          212     -> java/lang/Thread.<init>
+  0 311481/2     4790260420447            8       -> java/lang/Object.<init>
+  0 311481/2     4790260420454            7       <- java/lang/Object.<init>
+  0 311481/2     4790260420464            9       -> java/lang/Object.<init>
+  0 311481/2     4790260420471            7       <- java/lang/Object.<init>
+  0 311481/2     4790260420479            8       -> java/lang/Thread.init
+  0 311481/2     4790260420486            7         -> java/lang/Thread.currentThread
+  0 311481/2     4790260420494            7         <- java/lang/Thread.currentThread
+  0 311481/2     4790260420503            8         -> java/lang/System.getSecurityManager
+  0 311481/2     4790260420511            7         <- java/lang/System.getSecurityManager
+  0 311481/2     4790260420519            8         -> java/lang/ThreadGroup.checkAccess
+  0 311481/2     4790260420526            7           -> java/lang/System.getSecurityManager
+  0 311481/2     4790260420534            7           <- java/lang/System.getSecurityManager
+  0 311481/2     4790260420542            8         <- java/lang/ThreadGroup.checkAccess
+  0 311481/2     4790260420550            8         -> java/lang/ThreadGroup.addUnstarted
+  0 311481/2     4790260420558            7         <- java/lang/ThreadGroup.addUnstarted
+  0 311481/2     4790260420567            9         -> java/lang/String.toCharArray
+  0 311481/2     4790260420575            8           -> java/lang/String.getChars
+  0 311481/2     4790260420584            8             -> java/lang/System.arraycopy
+  0 311481/2     4790260420592            8             <- java/lang/System.arraycopy
+  0 311481/2     4790260420599            7           <- java/lang/String.getChars
+  0 311481/2     4790260420607            7         <- java/lang/String.toCharArray
+  0 311481/2     4790260420615            7         -> java/lang/Thread.getContextClassLoader
+  0 311481/2     4790260420622            7         <- java/lang/Thread.getContextClassLoader
+  0 311481/2     4790260420631            8         -> java/security/AccessController.getContext
+  0 311481/2     4790260420638            7           -> java/security/AccessController.getStackAccessControlContext
+  0 311481/2     4790260420653           14           <- java/security/AccessController.getStackAccessControlContext
+  0 311481/2     4790260420662            8           -> java/security/AccessControlContext.optimize
+  0 311481/2     4790260420670            8             -> java/security/AccessController.getInheritedAccessControlContext
+  0 311481/2     4790260420678            8             <- java/security/AccessController.getInheritedAccessControlContext
+  0 311481/2     4790260420687            8           <- java/security/AccessControlContext.optimize
+  0 311481/2     4790260420695            7         <- java/security/AccessController.getContext
+  0 311481/2     4790260420703            8         -> java/lang/Thread.setPriority
+  0 311481/2     4790260420710            7           -> java/lang/Thread.checkAccess
+  0 311481/2     4790260420718            7             -> java/lang/System.getSecurityManager
+  0 311481/2     4790260420725            7             <- java/lang/System.getSecurityManager
+  0 311481/2     4790260420732            7           <- java/lang/Thread.checkAccess
+  0 311481/2     4790260420741            8           -> java/lang/Thread.setPriority0
+  0 311481/2     4790260420760           19           <- java/lang/Thread.setPriority0
+  0 311481/2     4790260420768            8         <- java/lang/Thread.setPriority
+  0 311481/2     4790260420777            8         -> java/lang/Thread.nextThreadID
+  0 311481/2     4790260420785            8         <- java/lang/Thread.nextThreadID
+  0 311481/2     4790260420793            7 <- java/lang/Thread.init
+  0 311481/2     4790260420801            7 <- java/lang/Thread.<init>
+  0 311481/2     4790260420810            9 -> java/lang/ThreadGroup.add
+  0 311481/2     4790260420819            8 <- java/lang/ThreadGroup.add
+  0 311481/2     4790260420834           15 -> java/lang/Shutdown.shutdown
+  0 311481/2     4790260420846           12   -> java/lang/Shutdown.sequence
+  0 311481/2     4790260420855            9     -> java/lang/Shutdown.runHooks
+  0 311481/2     4790260420867           11       -> java/util/AbstractList.iterator
+  0 311481/2     4790260421144          277         -> java/util/AbstractList$Itr.<init>
+  0 311481/2     4790260421156           12           -> java/util/AbstractList$Itr.<init>
+  0 311481/2     4790260421168           11             -> java/lang/Object.<init>
+  0 311481/2     4790260421175            7             <- java/lang/Object.<init>
+  0 311481/2     4790260421189           13           <- java/util/AbstractList$Itr.<init>
+  0 311481/2     4790260421197            7         <- java/util/AbstractList$Itr.<init>
+  0 311481/2     4790260421205            7       <- java/util/AbstractList.iterator
+  0 311481/2     4790260421218           13       -> java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260421229           11       <- java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260421240           10       -> java/util/AbstractList$Itr.next
+  0 311481/2     4790260421249            9         -> java/util/AbstractList$Itr.checkForComodification
+  0 311481/2     4790260421256            7         <- java/util/AbstractList$Itr.checkForComodification
+  0 311481/2     4790260421267           10         -> java/util/ArrayList.get
+  0 311481/2     4790260421274            7           -> java/util/ArrayList.RangeCheck
+  0 311481/2     4790260421282            7           <- java/util/ArrayList.RangeCheck
+  0 311481/2     4790260421290            7         <- java/util/ArrayList.get
+  0 311481/2     4790260421297            7       <- java/util/AbstractList$Itr.next
+  0 311481/2     4790260421310           12       -> java/io/Console$1$1.run
+  0 311481/2     4790260421321           10         -> java/io/Console.access$600
+  0 311481/2     4790260421330            9         <- java/io/Console.access$600
+  0 311481/2     4790260421338            7       <- java/io/Console$1$1.run
+  0 311481/2     4790260421346            7       -> java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260421353            7       <- java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260421361            7       -> java/util/AbstractList$Itr.next
+  0 311481/2     4790260421368            7         -> java/util/AbstractList$Itr.checkForComodification
+  0 311481/2     4790260421376            7         <- java/util/AbstractList$Itr.checkForComodification
+  0 311481/2     4790260421384            8         -> java/util/ArrayList.get
+  0 311481/2     4790260421391            7           -> java/util/ArrayList.RangeCheck
+  0 311481/2     4790260421398            7           <- java/util/ArrayList.RangeCheck
+  0 311481/2     4790260421406            7         <- java/util/ArrayList.get
+  0 311481/2     4790260421414            7       <- java/util/AbstractList$Itr.next
+  0 311481/2     4790260421422            8       -> java/lang/ApplicationShutdownHooks.run
+  0 311481/2     4790260421435           13         -> java/util/IdentityHashMap.keySet
+  0 311481/2     4790260421598          163           -> java/util/IdentityHashMap$KeySet.<init>
+  0 311481/2     4790260421610           11             -> java/util/IdentityHashMap$KeySet.<init>
+  0 311481/2     4790260421622           11               -> java/util/AbstractSet.<init>
+  0 311481/2     4790260421629            7                 -> java/util/AbstractCollection.<init>
+  0 311481/2     4790260421637            7                   -> java/lang/Object.<init>
+  0 311481/2     4790260421644            7                   <- java/lang/Object.<init>
+  0 311481/2     4790260421652            8                 <- java/util/AbstractCollection.<init>
+  0 311481/2     4790260421660            7               <- java/util/AbstractSet.<init>
+  0 311481/2     4790260421668            7             <- java/util/IdentityHashMap$KeySet.<init>
+  0 311481/2     4790260421675            7           <- java/util/IdentityHashMap$KeySet.<init>
+  0 311481/2     4790260421683            7         <- java/util/IdentityHashMap.keySet
+  0 311481/2     4790260421695           11         -> java/util/IdentityHashMap$KeySet.iterator
+  0 311481/2     4790260421882          187           -> java/util/IdentityHashMap$KeyIterator.<init>
+  0 311481/2     4790260421894           11             -> java/util/IdentityHashMap$KeyIterator.<init>
+  0 311481/2     4790260421905           11               -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311481/2     4790260421915           10                 -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311481/2     4790260421926           10                   -> java/lang/Object.<init>
+  0 311481/2     4790260421934            7                   <- java/lang/Object.<init>
+  0 311481/2     4790260421945           11                   -> java/util/IdentityHashMap.access$000
+  0 311481/2     4790260421954            8                   <- java/util/IdentityHashMap.access$000
+  0 311481/2     4790260421967           12                   -> java/util/IdentityHashMap.access$200
+  0 311481/2     4790260421975            8                   <- java/util/IdentityHashMap.access$200
+  0 311481/2     4790260421986           10                 <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311481/2     4790260421994            8               <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311481/2     4790260422002            7             <- java/util/IdentityHashMap$KeyIterator.<init>
+  0 311481/2     4790260422010            7           <- java/util/IdentityHashMap$KeyIterator.<init>
+  0 311481/2     4790260422018            7         <- java/util/IdentityHashMap$KeySet.iterator
+  0 311481/2     4790260422029           11         -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+  0 311481/2     4790260422037            8         <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+  0 311481/2     4790260422045            8         -> java/util/IdentityHashMap$KeySet.iterator
+  0 311481/2     4790260422053            7           -> java/util/IdentityHashMap$KeyIterator.<init>
+  0 311481/2     4790260422060            7             -> java/util/IdentityHashMap$KeyIterator.<init>
+  0 311481/2     4790260422068            7               -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311481/2     4790260422075            7                 -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311481/2     4790260422083            7                   -> java/lang/Object.<init>
+  0 311481/2     4790260422090            7                   <- java/lang/Object.<init>
+  0 311481/2     4790260422098            8                 <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311481/2     4790260422106            8               <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311481/2     4790260422114            7             <- java/util/IdentityHashMap$KeyIterator.<init>
+  0 311481/2     4790260422121            7           <- java/util/IdentityHashMap$KeyIterator.<init>
+  0 311481/2     4790260422129            7         <- java/util/IdentityHashMap$KeySet.iterator
+  0 311481/2     4790260422137            7         -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+  0 311481/2     4790260422145            7         <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+  0 311481/2     4790260422153            8       <- java/lang/ApplicationShutdownHooks.run
+  0 311481/2     4790260422161            7       -> java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260422168            7       <- java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260422176            7       -> java/util/AbstractList$Itr.next
+  0 311481/2     4790260422183            7         -> java/util/AbstractList$Itr.checkForComodification
+  0 311481/2     4790260422191            7         <- java/util/AbstractList$Itr.checkForComodification
+  0 311481/2     4790260422199            8         -> java/util/ArrayList.get
+  0 311481/2     4790260422206            7           -> java/util/ArrayList.RangeCheck
+  0 311481/2     4790260422213            7           <- java/util/ArrayList.RangeCheck
+  0 311481/2     4790260422221            7         <- java/util/ArrayList.get
+  0 311481/2     4790260422229            7       <- java/util/AbstractList$Itr.next
+  0 311481/2     4790260422237            8       -> java/io/File$1.run
+  0 311481/2     4790260422318           81         -> java/io/DeleteOnExitHook.<clinit>
+  0 311481/2     4790260422461          143           -> java/util/LinkedHashSet.<init>
+  0 311481/2     4790260422473           12             -> java/util/HashSet.<init>
+  0 311481/2     4790260422481            7               -> java/util/AbstractSet.<init>
+  0 311481/2     4790260422488            7                 -> java/util/AbstractCollection.<init>
+  0 311481/2     4790260422495            7                   -> java/lang/Object.<init>
+  0 311481/2     4790260422502            7                   <- java/lang/Object.<init>
+  0 311481/2     4790260422511            8                 <- java/util/AbstractCollection.<init>
+  0 311481/2     4790260422519            7               <- java/util/AbstractSet.<init>
+  0 311481/2     4790260422531           12               -> java/util/LinkedHashMap.<init>
+  0 311481/2     4790260422541           10                 -> java/util/HashMap.<init>
+  0 311481/2     4790260422549            7                   -> java/util/AbstractMap.<init>
+  0 311481/2     4790260422556            7                     -> java/lang/Object.<init>
+  0 311481/2     4790260422563            7                     <- java/lang/Object.<init>
+  0 311481/2     4790260422571            7                   <- java/util/AbstractMap.<init>
+  0 311481/2     4790260422580            9                   -> java/lang/Float.isNaN
+  0 311481/2     4790260422588            7                   <- java/lang/Float.isNaN
+  0 311481/2     4790260422600           12                   -> java/util/LinkedHashMap.init
+  0 311481/2     4790260422608            8                     -> java/util/LinkedHashMap$Entry.<init>
+  0 311481/2     4790260422615            7                       -> java/util/HashMap$Entry.<init>
+  0 311481/2     4790260422623            7                         -> java/lang/Object.<init>
+  0 311481/2     4790260422630            6                         <- java/lang/Object.<init>
+  0 311481/2     4790260422638            7                       <- java/util/HashMap$Entry.<init>
+  0 311481/2     4790260422645            7                     <- java/util/LinkedHashMap$Entry.<init>
+  0 311481/2     4790260422653            7                   <- java/util/LinkedHashMap.init
+  0 311481/2     4790260422660            7                 <- java/util/HashMap.<init>
+  0 311481/2     4790260422668            7               <- java/util/LinkedHashMap.<init>
+  0 311481/2     4790260422676            7             <- java/util/HashSet.<init>
+  0 311481/2     4790260422683            7           <- java/util/LinkedHashSet.<init>
+  0 311481/2     4790260422692            9         <- java/io/DeleteOnExitHook.<clinit>
+  0 311481/2     4790260422703           10         -> java/io/DeleteOnExitHook.hook
+  0 311481/2     4790260422713           10           -> java/io/DeleteOnExitHook.<init>
+  0 311481/2     4790260422723            9             -> java/lang/Object.<init>
+  0 311481/2     4790260422730            7             <- java/lang/Object.<init>
+  0 311481/2     4790260422738            7           <- java/io/DeleteOnExitHook.<init>
+  0 311481/2     4790260422746            7         <- java/io/DeleteOnExitHook.hook
+  0 311481/2     4790260422756           10         -> java/io/DeleteOnExitHook.run
+  0 311481/2     4790260422768           12           -> java/util/ArrayList.<init>
+  0 311481/2     4790260422775            7             -> java/util/AbstractList.<init>
+  0 311481/2     4790260422783            7               -> java/util/AbstractCollection.<init>
+  0 311481/2     4790260422790            7                 -> java/lang/Object.<init>
+  0 311481/2     4790260422797            7                 <- java/lang/Object.<init>
+  0 311481/2     4790260422805            7               <- java/util/AbstractCollection.<init>
+  0 311481/2     4790260422813            7             <- java/util/AbstractList.<init>
+  0 311481/2     4790260422824           11             -> java/util/AbstractCollection.toArray
+  0 311481/2     4790260422835           10               -> java/util/HashSet.size
+  0 311481/2     4790260422844            9               <- java/util/HashSet.size
+  0 311481/2     4790260422855           10               -> java/util/HashSet.iterator
+  0 311481/2     4790260422865            9                 -> java/util/HashMap.keySet
+  0 311481/2     4790260422956           91                   -> java/util/HashMap$KeySet.<init>
+  0 311481/2     4790260422967           10                     -> java/util/HashMap$KeySet.<init>
+  0 311481/2     4790260422978           10                       -> java/util/AbstractSet.<init>
+  0 311481/2     4790260422985            7                         -> java/util/AbstractCollection.<init>
+  0 311481/2     4790260422993            7                           -> java/lang/Object.<init>
+  0 311481/2     4790260423000            7                           <- java/lang/Object.<init>
+  0 311481/2     4790260423008            7                         <- java/util/AbstractCollection.<init>
+  0 311481/2     4790260423015            7                       <- java/util/AbstractSet.<init>
+  0 311481/2     4790260423023            7                     <- java/util/HashMap$KeySet.<init>
+  0 311481/2     4790260423031            7                   <- java/util/HashMap$KeySet.<init>
+  0 311481/2     4790260423038            7                 <- java/util/HashMap.keySet
+  0 311481/2     4790260423049           10                 -> java/util/HashMap$KeySet.iterator
+  0 311481/2     4790260423060           11                   -> java/util/LinkedHashMap.newKeyIterator
+  0 311481/2     4790260423243          182                     -> java/util/LinkedHashMap$KeyIterator.<init>
+  0 311481/2     4790260423254           11                       -> java/util/LinkedHashMap$KeyIterator.<init>
+  0 311481/2     4790260423266           11                         -> java/util/LinkedHashMap$LinkedHashIterator.<init>
+  0 311481/2     4790260423276            9                           -> java/util/LinkedHashMap$LinkedHashIterator.<init>
+  0 311481/2     4790260423286           10                             -> java/lang/Object.<init>
+  0 311481/2     4790260423294            7                             <- java/lang/Object.<init>
+  0 311481/2     4790260423311           16                           <- java/util/LinkedHashMap$LinkedHashIterator.<init>
+  0 311481/2     4790260423319            8                         <- java/util/LinkedHashMap$LinkedHashIterator.<init>
+  0 311481/2     4790260423327            7                       <- java/util/LinkedHashMap$KeyIterator.<init>
+  0 311481/2     4790260423334            7                     <- java/util/LinkedHashMap$KeyIterator.<init>
+  0 311481/2     4790260423342            7                   <- java/util/LinkedHashMap.newKeyIterator
+  0 311481/2     4790260423350            7                 <- java/util/HashMap$KeySet.iterator
+  0 311481/2     4790260423357            7               <- java/util/HashSet.iterator
+  0 311481/2     4790260423369           11               -> java/util/LinkedHashMap$LinkedHashIterator.hasNext
+  0 311481/2     4790260423377            8               <- java/util/LinkedHashMap$LinkedHashIterator.hasNext
+  0 311481/2     4790260423385            8             <- java/util/AbstractCollection.toArray
+  0 311481/2     4790260423393            8             -> java/lang/Object.getClass
+  0 311481/2     4790260423402            8             <- java/lang/Object.getClass
+  0 311481/2     4790260423410            8           <- java/util/ArrayList.<init>
+  0 311481/2     4790260423422           11           -> java/util/Collections.reverse
+  0 311481/2     4790260423435           13           <- java/util/Collections.reverse
+  0 311481/2     4790260423445           10           -> java/util/AbstractList.iterator
+  0 311481/2     4790260423453            8             -> java/util/AbstractList$Itr.<init>
+  0 311481/2     4790260423460            7               -> java/util/AbstractList$Itr.<init>
+  0 311481/2     4790260423468            7                 -> java/lang/Object.<init>
+  0 311481/2     4790260423475            7                 <- java/lang/Object.<init>
+  0 311481/2     4790260423483            7               <- java/util/AbstractList$Itr.<init>
+  0 311481/2     4790260423490            7             <- java/util/AbstractList$Itr.<init>
+  0 311481/2     4790260423498            7           <- java/util/AbstractList.iterator
+  0 311481/2     4790260423508           10           -> java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260423516            7           <- java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260423524            8         <- java/io/DeleteOnExitHook.run
+  0 311481/2     4790260423532            7       <- java/io/File$1.run
+  0 311481/2     4790260423539            7       -> java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260423547            7       <- java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260423554            7     <- java/lang/Shutdown.runHooks
+  0 311481/2     4790260423564            9   <- java/lang/Shutdown.sequence
+  0 311481/2     4790260423572            7 <- java/lang/Shutdown.shutdown
+
+I truncated 22800 lines from the above output to make it fit here.
+
+The fifth column is indented by 2 spaces to show when a new method begins.
+This shows which method is calling which.
+
+The TIME(us) column shows time since boot.
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read.
+
+The FILE column shows file that was being executed.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+Try skimming down the "DELTA(us)" column to find the largest delta time,
+and see what lines it corresponds with.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+If you see "drops" warnings, see the Notes/ALLjava_notes.txt file for details.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_methodcalls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_methodcalls_example.txt
new file mode 100644
index 0000000..22a2b4d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_methodcalls_example.txt
@@ -0,0 +1,999 @@
+The following are examples of running the j_methodcalls.d script.
+
+This traces calls to methods from all Java processes on the system with hotspot
+provider support (1.6.0). Method calls are only visible when using the flag 
+"+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile
+
+Here we see it running on Code/Java/Func_abc
+
+# j_methodcalls_example.txt
+Tracing... Hit Ctrl-C to end.
+
+    PID    COUNT CLASS.METHOD
+ 311492        1 Func_abc.func_a
+ 311492        1 Func_abc.func_b
+ 311492        1 Func_abc.func_c
+ 311492        1 Func_abc.main
+ 311492        1 java/io/BufferedInputStream.<clinit>
+ 311492        1 java/io/BufferedReader.<clinit>
+ 311492        1 java/io/BufferedReader.close
+ 311492        1 java/io/BufferedWriter.<clinit>
+ 311492        1 java/io/Console$1$1.<init>
+ 311492        1 java/io/Console$1$1.run
+ 311492        1 java/io/Console$1.<init>
+ 311492        1 java/io/Console$1.consoleRestoreHook
+ 311492        1 java/io/Console.<clinit>
+ 311492        1 java/io/Console.access$600
+ 311492        1 java/io/DataInputStream.<init>
+ 311492        1 java/io/DataInputStream.readFully
+ 311492        1 java/io/DeleteOnExitHook.<clinit>
+ 311492        1 java/io/DeleteOnExitHook.<init>
+ 311492        1 java/io/DeleteOnExitHook.hook
+ 311492        1 java/io/DeleteOnExitHook.run
+ 311492        1 java/io/File$1.<init>
+ 311492        1 java/io/File$1.run
+ 311492        1 java/io/File.<clinit>
+ 311492        1 java/io/File.lastModified
+ 311492        1 java/io/File.length
+ 311492        1 java/io/FileDescriptor.<clinit>
+ 311492        1 java/io/FileDescriptor.initIDs
+ 311492        1 java/io/FileInputStream.<clinit>
+ 311492        1 java/io/FileInputStream.available
+ 311492        1 java/io/FileInputStream.initIDs
+ 311492        1 java/io/FileOutputStream.<clinit>
+ 311492        1 java/io/FileOutputStream.initIDs
+ 311492        1 java/io/FilePermission.newPermissionCollection
+ 311492        1 java/io/FilePermissionCollection.<clinit>
+ 311492        1 java/io/FilePermissionCollection.<init>
+ 311492        1 java/io/FilePermissionCollection.add
+ 311492        1 java/io/FileReader.<init>
+ 311492        1 java/io/FileSystem.<clinit>
+ 311492        1 java/io/FileSystem.<init>
+ 311492        1 java/io/FileSystem.getFileSystem
+ 311492        1 java/io/FilterInputStream.close
+ 311492        1 java/io/InputStreamReader.<init>
+ 311492        1 java/io/InputStreamReader.close
+ 311492        1 java/io/ObjectStreamClass.<clinit>
+ 311492        1 java/io/ObjectStreamClass.initNative
+ 311492        1 java/io/UnixFileSystem.<clinit>
+ 311492        1 java/io/UnixFileSystem.<init>
+ 311492        1 java/io/UnixFileSystem.getLastModifiedTime
+ 311492        1 java/io/UnixFileSystem.getLength
+ 311492        1 java/io/UnixFileSystem.initIDs
+ 311492        1 java/lang/AbstractStringBuilder.<clinit>
+ 311492        1 java/lang/ApplicationShutdownHooks.<clinit>
+ 311492        1 java/lang/ApplicationShutdownHooks.<init>
+ 311492        1 java/lang/ApplicationShutdownHooks.hook
+ 311492        1 java/lang/ApplicationShutdownHooks.run
+ 311492        1 java/lang/Boolean.<clinit>
+ 311492        1 java/lang/Byte.<clinit>
+ 311492        1 java/lang/Character.<clinit>
+ 311492        1 java/lang/CharacterDataLatin1.<clinit>
+ 311492        1 java/lang/Class.<clinit>
+ 311492        1 java/lang/Class.access$302
+ 311492        1 java/lang/Class.registerNatives
+ 311492        1 java/lang/ClassLoader$3.<init>
+ 311492        1 java/lang/ClassLoader$3.run
+ 311492        1 java/lang/ClassLoader$NativeLibrary.<init>
+ 311492        1 java/lang/ClassLoader$NativeLibrary.getFromClass
+ 311492        1 java/lang/ClassLoader$NativeLibrary.load
+ 311492        1 java/lang/ClassLoader.<clinit>
+ 311492        1 java/lang/ClassLoader.access$100
+ 311492        1 java/lang/ClassLoader.addClass
+ 311492        1 java/lang/ClassLoader.checkCerts
+ 311492        1 java/lang/ClassLoader.defineClass
+ 311492        1 java/lang/ClassLoader.defineClass1
+ 311492        1 java/lang/ClassLoader.defineClassSourceLocation
+ 311492        1 java/lang/ClassLoader.getSystemClassLoader
+ 311492        1 java/lang/ClassLoader.initSystemClassLoader
+ 311492        1 java/lang/ClassLoader.loadLibrary
+ 311492        1 java/lang/ClassLoader.loadLibrary0
+ 311492        1 java/lang/ClassLoader.postDefineClass
+ 311492        1 java/lang/ClassLoader.preDefineClass
+ 311492        1 java/lang/ClassLoader.registerNatives
+ 311492        1 java/lang/Compiler$1.<init>
+ 311492        1 java/lang/Compiler$1.run
+ 311492        1 java/lang/Compiler.<clinit>
+ 311492        1 java/lang/Compiler.registerNatives
+ 311492        1 java/lang/Double.<clinit>
+ 311492        1 java/lang/Double.doubleToLongBits
+ 311492        1 java/lang/Double.doubleToRawLongBits
+ 311492        1 java/lang/Error.<init>
+ 311492        1 java/lang/Float.<clinit>
+ 311492        1 java/lang/Float.floatToIntBits
+ 311492        1 java/lang/Float.floatToRawIntBits
+ 311492        1 java/lang/IncompatibleClassChangeError.<init>
+ 311492        1 java/lang/Integer.<clinit>
+ 311492        1 java/lang/LinkageError.<init>
+ 311492        1 java/lang/Long.<clinit>
+ 311492        1 java/lang/Math.<clinit>
+ 311492        1 java/lang/NoSuchMethodError.<init>
+ 311492        1 java/lang/Object.<clinit>
+ 311492        1 java/lang/Object.notifyAll
+ 311492        1 java/lang/Object.registerNatives
+ 311492        1 java/lang/Runtime.<clinit>
+ 311492        1 java/lang/Runtime.<init>
+ 311492        1 java/lang/Runtime.loadLibrary0
+ 311492        1 java/lang/Runtime.maxMemory
+ 311492        1 java/lang/Short.<clinit>
+ 311492        1 java/lang/Shutdown.<clinit>
+ 311492        1 java/lang/Shutdown.runHooks
+ 311492        1 java/lang/Shutdown.sequence
+ 311492        1 java/lang/Shutdown.shutdown
+ 311492        1 java/lang/String.<clinit>
+ 311492        1 java/lang/String.checkBounds
+ 311492        1 java/lang/String.length
+ 311492        1 java/lang/String.trim
+ 311492        1 java/lang/StringBuffer.<clinit>
+ 311492        1 java/lang/StringCoding$StringDecoder.decode
+ 311492        1 java/lang/StringCoding.<clinit>
+ 311492        1 java/lang/StringCoding.access$000
+ 311492        1 java/lang/StringCoding.access$100
+ 311492        1 java/lang/StringCoding.decode
+ 311492        1 java/lang/StringCoding.deref
+ 311492        1 java/lang/StringCoding.lookupCharset
+ 311492        1 java/lang/StringCoding.safeTrim
+ 311492        1 java/lang/StringCoding.scale
+ 311492        1 java/lang/StringCoding.set
+ 311492        1 java/lang/System$2.<init>
+ 311492        1 java/lang/System.<clinit>
+ 311492        1 java/lang/System.getCallerClass
+ 311492        1 java/lang/System.initProperties
+ 311492        1 java/lang/System.initializeSystemClass
+ 311492        1 java/lang/System.loadLibrary
+ 311492        1 java/lang/System.mapLibraryName
+ 311492        1 java/lang/System.nullInputStream
+ 311492        1 java/lang/System.registerNatives
+ 311492        1 java/lang/System.setErr0
+ 311492        1 java/lang/System.setIn0
+ 311492        1 java/lang/System.setOut0
+ 311492        1 java/lang/SystemClassLoaderAction.<init>
+ 311492        1 java/lang/SystemClassLoaderAction.run
+ 311492        1 java/lang/Terminator$1.<init>
+ 311492        1 java/lang/Terminator.<clinit>
+ 311492        1 java/lang/Terminator.setup
+ 311492        1 java/lang/Thread.<clinit>
+ 311492        1 java/lang/Thread.exit
+ 311492        1 java/lang/Thread.getPriority
+ 311492        1 java/lang/Thread.interrupted
+ 311492        1 java/lang/Thread.isInterrupted
+ 311492        1 java/lang/Thread.registerNatives
+ 311492        1 java/lang/Thread.setContextClassLoader
+ 311492        1 java/lang/ThreadGroup.remove
+ 311492        1 java/lang/ThreadLocal$ThreadLocalMap$Entry.<init>
+ 311492        1 java/lang/ThreadLocal$ThreadLocalMap.<init>
+ 311492        1 java/lang/ThreadLocal$ThreadLocalMap.access$100
+ 311492        1 java/lang/ThreadLocal$ThreadLocalMap.set
+ 311492        1 java/lang/ThreadLocal$ThreadLocalMap.setThreshold
+ 311492        1 java/lang/ThreadLocal.<clinit>
+ 311492        1 java/lang/ThreadLocal.createMap
+ 311492        1 java/lang/ThreadLocal.get
+ 311492        1 java/lang/ThreadLocal.initialValue
+ 311492        1 java/lang/ThreadLocal.set
+ 311492        1 java/lang/ThreadLocal.setInitialValue
+ 311492        1 java/lang/ref/Finalizer$FinalizerThread.<init>
+ 311492        1 java/lang/ref/Finalizer$FinalizerThread.run
+ 311492        1 java/lang/ref/Finalizer.<clinit>
+ 311492        1 java/lang/ref/Finalizer.access$000
+ 311492        1 java/lang/ref/Reference$ReferenceHandler.<init>
+ 311492        1 java/lang/ref/Reference$ReferenceHandler.run
+ 311492        1 java/lang/ref/Reference.<clinit>
+ 311492        1 java/lang/ref/Reference.access$200
+ 311492        1 java/lang/ref/ReferenceQueue.<clinit>
+ 311492        1 java/lang/ref/ReferenceQueue.reallyPoll
+ 311492        1 java/lang/reflect/AccessibleObject.<clinit>
+ 311492        1 java/lang/reflect/Constructor.<clinit>
+ 311492        1 java/lang/reflect/Field.<clinit>
+ 311492        1 java/lang/reflect/Field.getName
+ 311492        1 java/lang/reflect/Method.<clinit>
+ 311492        1 java/lang/reflect/Method.getModifiers
+ 311492        1 java/lang/reflect/Modifier.<clinit>
+ 311492        1 java/lang/reflect/Modifier.isVolatile
+ 311492        1 java/lang/reflect/ReflectAccess.<init>
+ 311492        1 java/lang/reflect/ReflectPermission.<init>
+ 311492        1 java/net/ContentHandler.<init>
+ 311492        1 java/net/Parts.getQuery
+ 311492        1 java/net/URL.<clinit>
+ 311492        1 java/net/URL.openConnection
+ 311492        1 java/net/URLClassLoader$7.<init>
+ 311492        1 java/net/URLClassLoader.<clinit>
+ 311492        1 java/net/URLClassLoader.access$000
+ 311492        1 java/net/URLClassLoader.defineClass
+ 311492        1 java/net/URLClassLoader.getPermissions
+ 311492        1 java/net/URLConnection.<clinit>
+ 311492        1 java/net/URLConnection.<init>
+ 311492        1 java/net/UnknownContentHandler.<init>
+ 311492        1 java/nio/Bits.<clinit>
+ 311492        1 java/nio/ByteOrder.<clinit>
+ 311492        1 java/nio/charset/Charset.<clinit>
+ 311492        1 java/nio/charset/Charset.<init>
+ 311492        1 java/nio/charset/CharsetDecoder.<clinit>
+ 311492        1 java/nio/charset/CharsetDecoder.flush
+ 311492        1 java/nio/charset/CharsetDecoder.implFlush
+ 311492        1 java/nio/charset/CharsetEncoder.<clinit>
+ 311492        1 java/nio/charset/CoderResult$1.<init>
+ 311492        1 java/nio/charset/CoderResult$2.<init>
+ 311492        1 java/nio/charset/CoderResult.<clinit>
+ 311492        1 java/nio/charset/CodingErrorAction.<clinit>
+ 311492        1 java/nio/charset/spi/CharsetProvider.<init>
+ 311492        1 java/security/AccessControlContext.<clinit>
+ 311492        1 java/security/BasicPermission.newPermissionCollection
+ 311492        1 java/security/BasicPermissionCollection.<clinit>
+ 311492        1 java/security/BasicPermissionCollection.<init>
+ 311492        1 java/security/BasicPermissionCollection.add
+ 311492        1 java/security/CodeSource.<init>
+ 311492        1 java/security/Permissions.<clinit>
+ 311492        1 java/security/Policy$UnsupportedEmptyCollection.<init>
+ 311492        1 java/security/Policy.<clinit>
+ 311492        1 java/security/PrivilegedActionException.<init>
+ 311492        1 java/security/ProtectionDomain.<clinit>
+ 311492        1 java/security/ProtectionDomain.<init>
+ 311492        1 java/security/SecureClassLoader.<clinit>
+ 311492        1 java/security/SecureClassLoader.check
+ 311492        1 java/security/SecureClassLoader.defineClass
+ 311492        1 java/security/SecureClassLoader.getPermissions
+ 311492        1 java/security/SecureClassLoader.getProtectionDomain
+ 311492        1 java/util/AbstractCollection.toArray
+ 311492        1 java/util/BitSet.<clinit>
+ 311492        1 java/util/BitSet.<init>
+ 311492        1 java/util/BitSet.initWords
+ 311492        1 java/util/Collections$SynchronizedMap.<init>
+ 311492        1 java/util/Collections.<clinit>
+ 311492        1 java/util/Collections.reverse
+ 311492        1 java/util/Collections.synchronizedMap
+ 311492        1 java/util/HashMap$KeySet.iterator
+ 311492        1 java/util/HashMap.keySet
+ 311492        1 java/util/HashMap.size
+ 311492        1 java/util/HashSet.<clinit>
+ 311492        1 java/util/HashSet.iterator
+ 311492        1 java/util/HashSet.size
+ 311492        1 java/util/Hashtable$EmptyEnumerator.<init>
+ 311492        1 java/util/Hashtable$EmptyIterator.<init>
+ 311492        1 java/util/Hashtable.<clinit>
+ 311492        1 java/util/IdentityHashMap.<clinit>
+ 311492        1 java/util/IdentityHashMap.<init>
+ 311492        1 java/util/IdentityHashMap.access$000
+ 311492        1 java/util/IdentityHashMap.access$200
+ 311492        1 java/util/IdentityHashMap.init
+ 311492        1 java/util/IdentityHashMap.keySet
+ 311492        1 java/util/LinkedHashMap$LinkedHashIterator.hasNext
+ 311492        1 java/util/LinkedHashMap.newKeyIterator
+ 311492        1 java/util/LinkedHashSet.<init>
+ 311492        1 java/util/Locale.<clinit>
+ 311492        1 java/util/Locale.getInstance
+ 311492        1 java/util/Properties.<clinit>
+ 311492        1 java/util/StringTokenizer.countTokens
+ 311492        1 java/util/StringTokenizer.hasMoreTokens
+ 311492        1 java/util/Vector.contains
+ 311492        1 java/util/Vector.copyInto
+ 311492        1 java/util/Vector.indexOf
+ 311492        1 java/util/concurrent/ConcurrentHashMap$Segment.get
+ 311492        1 java/util/concurrent/ConcurrentHashMap$Segment.getFirst
+ 311492        1 java/util/concurrent/ConcurrentHashMap$Segment.newArray
+ 311492        1 java/util/concurrent/ConcurrentHashMap.get
+ 311492        1 java/util/concurrent/atomic/AtomicInteger.<clinit>
+ 311492        1 java/util/concurrent/atomic/AtomicInteger.<init>
+ 311492        1 java/util/concurrent/atomic/AtomicInteger.get
+ 311492        1 java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.<clinit>
+ 311492        1 java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.<init>
+ 311492        1 java/util/concurrent/atomic/AtomicReferenceFieldUpdater.<init>
+ 311492        1 java/util/concurrent/atomic/AtomicReferenceFieldUpdater.newUpdater
+ 311492        1 java/util/concurrent/locks/AbstractQueuedSynchronizer.<clinit>
+ 311492        1 java/util/concurrent/locks/AbstractQueuedSynchronizer.getState
+ 311492        1 java/util/jar/JarEntry.<init>
+ 311492        1 java/util/jar/JarFile$JarFileEntry.<init>
+ 311492        1 java/util/jar/JarFile.<clinit>
+ 311492        1 java/util/jar/JarFile.getManEntry
+ 311492        1 java/util/jar/JarFile.hasClassPathAttribute
+ 311492        1 java/util/jar/JarFile.isKnownToNotHaveClassPathAttribute
+ 311492        1 java/util/jar/JavaUtilJarAccessImpl.<init>
+ 311492        1 java/util/jar/JavaUtilJarAccessImpl.jarFileHasClassPathAttribute
+ 311492        1 java/util/zip/Inflater.<clinit>
+ 311492        1 java/util/zip/Inflater.<init>
+ 311492        1 java/util/zip/Inflater.finished
+ 311492        1 java/util/zip/Inflater.init
+ 311492        1 java/util/zip/Inflater.initIDs
+ 311492        1 java/util/zip/Inflater.needsDictionary
+ 311492        1 java/util/zip/Inflater.needsInput
+ 311492        1 java/util/zip/Inflater.setInput
+ 311492        1 java/util/zip/InflaterInputStream.<init>
+ 311492        1 java/util/zip/InflaterInputStream.ensureOpen
+ 311492        1 java/util/zip/InflaterInputStream.read
+ 311492        1 java/util/zip/ZipEntry.<clinit>
+ 311492        1 java/util/zip/ZipEntry.getSize
+ 311492        1 java/util/zip/ZipEntry.initFields
+ 311492        1 java/util/zip/ZipEntry.initIDs
+ 311492        1 java/util/zip/ZipFile$1.<init>
+ 311492        1 java/util/zip/ZipFile$1.close
+ 311492        1 java/util/zip/ZipFile$1.fill
+ 311492        1 java/util/zip/ZipFile$ZipFileInputStream.<init>
+ 311492        1 java/util/zip/ZipFile$ZipFileInputStream.read
+ 311492        1 java/util/zip/ZipFile.<clinit>
+ 311492        1 java/util/zip/ZipFile.<init>
+ 311492        1 java/util/zip/ZipFile.access$000
+ 311492        1 java/util/zip/ZipFile.access$1000
+ 311492        1 java/util/zip/ZipFile.access$1100
+ 311492        1 java/util/zip/ZipFile.access$1200
+ 311492        1 java/util/zip/ZipFile.access$800
+ 311492        1 java/util/zip/ZipFile.access$900
+ 311492        1 java/util/zip/ZipFile.ensureOpenOrZipException
+ 311492        1 java/util/zip/ZipFile.getCSize
+ 311492        1 java/util/zip/ZipFile.getInflater
+ 311492        1 java/util/zip/ZipFile.getMethod
+ 311492        1 java/util/zip/ZipFile.getTotal
+ 311492        1 java/util/zip/ZipFile.initIDs
+ 311492        1 java/util/zip/ZipFile.open
+ 311492        1 java/util/zip/ZipFile.read
+ 311492        1 java/util/zip/ZipFile.releaseInflater
+ 311492        1 sun/misc/ExtensionDependency.checkExtensionsDependencies
+ 311492        1 sun/misc/FileURLMapper.<init>
+ 311492        1 sun/misc/FileURLMapper.exists
+ 311492        1 sun/misc/JarIndex.getJarIndex
+ 311492        1 sun/misc/Launcher$AppClassLoader$1.<init>
+ 311492        1 sun/misc/Launcher$AppClassLoader$1.run
+ 311492        1 sun/misc/Launcher$AppClassLoader.<clinit>
+ 311492        1 sun/misc/Launcher$AppClassLoader.<init>
+ 311492        1 sun/misc/Launcher$AppClassLoader.getAppClassLoader
+ 311492        1 sun/misc/Launcher$AppClassLoader.getPermissions
+ 311492        1 sun/misc/Launcher$ExtClassLoader$1.<init>
+ 311492        1 sun/misc/Launcher$ExtClassLoader$1.run
+ 311492        1 sun/misc/Launcher$ExtClassLoader.<init>
+ 311492        1 sun/misc/Launcher$ExtClassLoader.getExtClassLoader
+ 311492        1 sun/misc/Launcher$ExtClassLoader.getExtDirs
+ 311492        1 sun/misc/Launcher$ExtClassLoader.getExtURLs
+ 311492        1 sun/misc/Launcher$Factory.<clinit>
+ 311492        1 sun/misc/Launcher.<clinit>
+ 311492        1 sun/misc/Launcher.<init>
+ 311492        1 sun/misc/Launcher.access$200
+ 311492        1 sun/misc/Launcher.access$300
+ 311492        1 sun/misc/Launcher.getClassPath
+ 311492        1 sun/misc/Launcher.getLauncher
+ 311492        1 sun/misc/Launcher.pathToURLs
+ 311492        1 sun/misc/MetaIndex.<clinit>
+ 311492        1 sun/misc/Resource.<init>
+ 311492        1 sun/misc/Resource.getByteBuffer
+ 311492        1 sun/misc/Resource.getBytes
+ 311492        1 sun/misc/Resource.getCodeSigners
+ 311492        1 sun/misc/SharedSecrets.<clinit>
+ 311492        1 sun/misc/SharedSecrets.getJavaIOAccess
+ 311492        1 sun/misc/SharedSecrets.getJavaIODeleteOnExitAccess
+ 311492        1 sun/misc/SharedSecrets.javaUtilJarAccess
+ 311492        1 sun/misc/SharedSecrets.setJavaIOAccess
+ 311492        1 sun/misc/SharedSecrets.setJavaIODeleteOnExitAccess
+ 311492        1 sun/misc/SharedSecrets.setJavaLangAccess
+ 311492        1 sun/misc/SharedSecrets.setJavaNetAccess
+ 311492        1 sun/misc/SharedSecrets.setJavaUtilJarAccess
+ 311492        1 sun/misc/Signal.<clinit>
+ 311492        1 sun/misc/SignalHandler.<clinit>
+ 311492        1 sun/misc/SoftCache.<init>
+ 311492        1 sun/misc/URLClassPath$FileLoader$1.<init>
+ 311492        1 sun/misc/URLClassPath$FileLoader$1.getCodeSourceURL
+ 311492        1 sun/misc/URLClassPath$FileLoader$1.getContentLength
+ 311492        1 sun/misc/URLClassPath$FileLoader$1.getInputStream
+ 311492        1 sun/misc/URLClassPath$FileLoader.<init>
+ 311492        1 sun/misc/URLClassPath$FileLoader.getResource
+ 311492        1 sun/misc/URLClassPath$JarLoader$1.<init>
+ 311492        1 sun/misc/URLClassPath$JarLoader$1.run
+ 311492        1 sun/misc/URLClassPath$JarLoader.access$502
+ 311492        1 sun/misc/URLClassPath$JarLoader.access$600
+ 311492        1 sun/misc/URLClassPath$JarLoader.access$702
+ 311492        1 sun/misc/URLClassPath$JarLoader.getJarFile
+ 311492        1 sun/misc/URLClassPath$JarLoader.parseExtensionsDependencies
+ 311492        1 sun/misc/URLClassPath$Loader.getClassPath
+ 311492        1 sun/misc/URLClassPath.<clinit>
+ 311492        1 sun/misc/URLClassPath.access$300
+ 311492        1 sun/misc/Unsafe.<clinit>
+ 311492        1 sun/misc/Unsafe.<init>
+ 311492        1 sun/misc/Unsafe.allocateMemory
+ 311492        1 sun/misc/Unsafe.ensureClassInitialized
+ 311492        1 sun/misc/Unsafe.freeMemory
+ 311492        1 sun/misc/Unsafe.getByte
+ 311492        1 sun/misc/Unsafe.putLong
+ 311492        1 sun/misc/Unsafe.registerNatives
+ 311492        1 sun/misc/VM.<clinit>
+ 311492        1 sun/misc/VM.booted
+ 311492        1 sun/misc/VM.initialize
+ 311492        1 sun/misc/VM.initializeOSEnvironment
+ 311492        1 sun/misc/Version.<clinit>
+ 311492        1 sun/net/www/MessageHeader.<init>
+ 311492        1 sun/net/www/MessageHeader.grow
+ 311492        1 sun/net/www/ParseUtil.<clinit>
+ 311492        1 sun/net/www/URLConnection.<init>
+ 311492        1 sun/net/www/protocol/file/FileURLConnection.<clinit>
+ 311492        1 sun/net/www/protocol/file/FileURLConnection.<init>
+ 311492        1 sun/net/www/protocol/file/FileURLConnection.getPermission
+ 311492        1 sun/net/www/protocol/file/Handler.<init>
+ 311492        1 sun/net/www/protocol/file/Handler.createFileURLConnection
+ 311492        1 sun/nio/cs/FastCharsetProvider.<init>
+ 311492        1 sun/nio/cs/StandardCharsets$Aliases.init
+ 311492        1 sun/nio/cs/StandardCharsets$Cache.init
+ 311492        1 sun/nio/cs/StandardCharsets$Classes.init
+ 311492        1 sun/nio/cs/StandardCharsets.<clinit>
+ 311492        1 sun/nio/cs/StandardCharsets.<init>
+ 311492        1 sun/nio/cs/StreamDecoder.<clinit>
+ 311492        1 sun/nio/cs/StreamDecoder.close
+ 311492        1 sun/nio/cs/StreamDecoder.forInputStreamReader
+ 311492        1 sun/nio/cs/StreamDecoder.implClose
+ 311492        1 sun/nio/cs/StreamDecoder.inReady
+ 311492        1 sun/nio/cs/StreamEncoder.<clinit>
+ 311492        1 sun/nio/cs/Surrogate$Parser.<clinit>
+ 311492        1 sun/nio/cs/US_ASCII$Decoder.<clinit>
+ 311492        1 sun/nio/cs/US_ASCII$Encoder.<clinit>
+ 311492        1 sun/nio/cs/US_ASCII.<init>
+ 311492        1 sun/reflect/Reflection.<clinit>
+ 311492        1 sun/reflect/ReflectionFactory$1.<init>
+ 311492        1 sun/reflect/ReflectionFactory$1.run
+ 311492        1 sun/reflect/ReflectionFactory.<clinit>
+ 311492        1 sun/reflect/ReflectionFactory.<init>
+ 311492        1 sun/reflect/ReflectionFactory.access$202
+ 311492        1 sun/reflect/ReflectionFactory.setLangReflectAccess
+ 311492        1 sun/reflect/misc/ReflectUtil.ensureMemberAccess
+ 311492        1 sun/security/provider/PolicyFile.<clinit>
+ 311492        1 sun/security/util/Debug.<clinit>
+ 311492        2 java/io/BufferedInputStream.<init>
+ 311492        2 java/io/BufferedOutputStream.<init>
+ 311492        2 java/io/BufferedReader.<init>
+ 311492        2 java/io/BufferedReader.fill
+ 311492        2 java/io/ExpiringCache$1.<init>
+ 311492        2 java/io/File.list
+ 311492        2 java/io/FileInputStream.close
+ 311492        2 java/io/FileInputStream.close0
+ 311492        2 java/io/FileInputStream.open
+ 311492        2 java/io/FileOutputStream.<init>
+ 311492        2 java/io/FilePermission$1.<init>
+ 311492        2 java/io/FilePermission.<init>
+ 311492        2 java/io/FilePermission.getMask
+ 311492        2 java/io/FilePermission.init
+ 311492        2 java/io/FileSystem.getBooleanProperty
+ 311492        2 java/io/InputStreamReader.read
+ 311492        2 java/io/OutputStreamWriter.<init>
+ 311492        2 java/io/PrintStream.init
+ 311492        2 java/io/UnixFileSystem.list
+ 311492        2 java/lang/Character.charCount
+ 311492        2 java/lang/CharacterDataLatin1.toUpperCase
+ 311492        2 java/lang/Class$1.<init>
+ 311492        2 java/lang/Class$1.run
+ 311492        2 java/lang/Class.arrayContentsEq
+ 311492        2 java/lang/Class.getConstructor0
+ 311492        2 java/lang/Class.getDeclaredConstructors0
+ 311492        2 java/lang/Class.isInterface
+ 311492        2 java/lang/Class.privateGetDeclaredConstructors
+ 311492        2 java/lang/ClassLoader.<init>
+ 311492        2 java/lang/ClassLoader.initializePath
+ 311492        2 java/lang/ClassNotFoundException.<init>
+ 311492        2 java/lang/Object.clone
+ 311492        2 java/lang/Runtime.getRuntime
+ 311492        2 java/lang/String$CaseInsensitiveComparator.<init>
+ 311492        2 java/lang/String.concat
+ 311492        2 java/lang/String.regionMatches
+ 311492        2 java/lang/StringCoding$StringDecoder.<init>
+ 311492        2 java/lang/System.getProperties
+ 311492        2 java/lang/System.nullPrintStream
+ 311492        2 java/lang/System.setProperties
+ 311492        2 java/lang/Thread.isAlive
+ 311492        2 java/lang/Thread.setDaemon
+ 311492        2 java/lang/Thread.start
+ 311492        2 java/lang/Thread.start0
+ 311492        2 java/lang/ThreadGroup.<init>
+ 311492        2 java/lang/ref/Reference$Lock.<init>
+ 311492        2 java/lang/ref/Reference.access$100
+ 311492        2 java/lang/ref/ReferenceQueue.remove
+ 311492        2 java/lang/ref/SoftReference.get
+ 311492        2 java/lang/reflect/AccessibleObject.setAccessible
+ 311492        2 java/lang/reflect/AccessibleObject.setAccessible0
+ 311492        2 java/lang/reflect/Constructor.<init>
+ 311492        2 java/lang/reflect/Constructor.acquireConstructorAccessor
+ 311492        2 java/lang/reflect/Constructor.copy
+ 311492        2 java/lang/reflect/Constructor.getParameterTypes
+ 311492        2 java/lang/reflect/Modifier.isAbstract
+ 311492        2 java/lang/reflect/Modifier.isProtected
+ 311492        2 java/lang/reflect/ReflectAccess.copyConstructor
+ 311492        2 java/net/URL.set
+ 311492        2 java/net/URLClassLoader$1.<init>
+ 311492        2 java/net/URLClassLoader$1.run
+ 311492        2 java/net/URLClassLoader.<init>
+ 311492        2 java/net/URLClassLoader.findClass
+ 311492        2 java/net/URLStreamHandler.parseURL
+ 311492        2 java/net/URLStreamHandler.setURL
+ 311492        2 java/nio/ByteOrder.<init>
+ 311492        2 java/nio/CharBuffer.allocate
+ 311492        2 java/nio/HeapByteBuffer.compact
+ 311492        2 java/nio/charset/Charset.cache
+ 311492        2 java/nio/charset/CharsetDecoder.reset
+ 311492        2 java/nio/charset/CharsetEncoder.isLegalReplacement
+ 311492        2 java/nio/charset/CharsetEncoder.onMalformedInput
+ 311492        2 java/nio/charset/CharsetEncoder.onUnmappableCharacter
+ 311492        2 java/nio/charset/CharsetEncoder.replaceWith
+ 311492        2 java/nio/charset/CoderResult.<init>
+ 311492        2 java/nio/charset/CoderResult.isError
+ 311492        2 java/security/AccessControlContext.<init>
+ 311492        2 java/security/BasicPermission.getCanonicalName
+ 311492        2 java/security/CodeSource.getCertificates
+ 311492        2 java/security/CodeSource.hashCode
+ 311492        2 java/security/PermissionCollection.setReadOnly
+ 311492        2 java/security/Permissions.<init>
+ 311492        2 java/security/Permissions.add
+ 311492        2 java/security/Permissions.getPermissionCollection
+ 311492        2 java/security/SecureClassLoader.<init>
+ 311492        2 java/util/AbstractList.iterator
+ 311492        2 java/util/BitSet.ensureCapacity
+ 311492        2 java/util/Collections$EmptyList.<init>
+ 311492        2 java/util/Collections$EmptyMap.<init>
+ 311492        2 java/util/Collections$EmptySet.<init>
+ 311492        2 java/util/Collections$ReverseComparator.<init>
+ 311492        2 java/util/HashMap$KeySet.<init>
+ 311492        2 java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+ 311492        2 java/util/IdentityHashMap$KeySet.<init>
+ 311492        2 java/util/IdentityHashMap$KeySet.iterator
+ 311492        2 java/util/LinkedHashMap$KeyIterator.<init>
+ 311492        2 java/util/LinkedHashMap$LinkedHashIterator.<init>
+ 311492        2 java/util/Properties.<init>
+ 311492        2 java/util/StringTokenizer.setMaxDelimCodePoint
+ 311492        2 java/util/concurrent/ConcurrentHashMap.<init>
+ 311492        2 java/util/jar/JarFile.<init>
+ 311492        2 java/util/zip/Inflater.inflate
+ 311492        2 java/util/zip/Inflater.inflateBytes
+ 311492        2 java/util/zip/ZipEntry.<init>
+ 311492        2 java/util/zip/ZipFile$ZipFileInputStream.close
+ 311492        2 java/util/zip/ZipFile.freeEntry
+ 311492        2 java/util/zip/ZipFile.getInputStream
+ 311492        2 java/util/zip/ZipFile.getSize
+ 311492        2 sun/misc/FileURLMapper.getPath
+ 311492        2 sun/misc/Launcher$Factory.<init>
+ 311492        2 sun/misc/Launcher$Factory.createURLStreamHandler
+ 311492        2 sun/misc/Launcher.access$100
+ 311492        2 sun/misc/MetaIndex.registerDirectory
+ 311492        2 sun/misc/NativeSignalHandler.<init>
+ 311492        2 sun/misc/Resource.cachedInputStream
+ 311492        2 sun/misc/URLClassPath.<init>
+ 311492        2 sun/misc/URLClassPath.getResource
+ 311492        2 sun/misc/URLClassPath.push
+ 311492        2 sun/misc/VM.maxDirectMemory
+ 311492        2 sun/misc/Version.init
+ 311492        2 sun/net/www/protocol/file/Handler.openConnection
+ 311492        2 sun/net/www/protocol/file/Handler.parseURL
+ 311492        2 sun/net/www/protocol/jar/Handler.<init>
+ 311492        2 sun/nio/cs/FastCharsetProvider.charsetForName
+ 311492        2 sun/nio/cs/FastCharsetProvider.lookup
+ 311492        2 sun/nio/cs/FastCharsetProvider.toLower
+ 311492        2 sun/nio/cs/StandardCharsets$Aliases.<init>
+ 311492        2 sun/nio/cs/StandardCharsets$Cache.<init>
+ 311492        2 sun/nio/cs/StandardCharsets$Classes.<init>
+ 311492        2 sun/nio/cs/StreamDecoder.<init>
+ 311492        2 sun/nio/cs/StreamDecoder.ensureOpen
+ 311492        2 sun/nio/cs/StreamDecoder.implRead
+ 311492        2 sun/nio/cs/StreamDecoder.read
+ 311492        2 sun/nio/cs/StreamDecoder.readBytes
+ 311492        2 sun/nio/cs/StreamEncoder.forOutputStreamWriter
+ 311492        2 sun/nio/cs/Surrogate$Parser.<init>
+ 311492        2 sun/nio/cs/US_ASCII.newEncoder
+ 311492        2 sun/reflect/DelegatingConstructorAccessorImpl.<init>
+ 311492        2 sun/reflect/DelegatingConstructorAccessorImpl.setDelegate
+ 311492        2 sun/reflect/NativeConstructorAccessorImpl.<init>
+ 311492        2 sun/reflect/NativeConstructorAccessorImpl.setParent
+ 311492        2 sun/reflect/Reflection.ensureMemberAccess
+ 311492        2 sun/reflect/Reflection.isSubclassOf
+ 311492        2 sun/reflect/Reflection.verifyMemberAccess
+ 311492        2 sun/reflect/ReflectionFactory.checkInitted
+ 311492        2 sun/reflect/ReflectionFactory.copyConstructor
+ 311492        2 sun/reflect/ReflectionFactory.newConstructorAccessor
+ 311492        2 sun/reflect/misc/ReflectUtil.checkPackageAccess
+ 311492        2 sun/security/provider/PolicyFile.canonPath
+ 311492        2 sun/util/PreHashedMap.put
+ 311492        3 java/io/BufferedWriter.newLine
+ 311492        3 java/io/FileInputStream.<init>
+ 311492        3 java/io/FileInputStream.read
+ 311492        3 java/io/FileInputStream.readBytes
+ 311492        3 java/io/FilterInputStream.<init>
+ 311492        3 java/io/PrintStream.newLine
+ 311492        3 java/io/PrintStream.print
+ 311492        3 java/io/PrintStream.println
+ 311492        3 java/io/Reader.<init>
+ 311492        3 java/lang/Boolean.<init>
+ 311492        3 java/lang/Class$3.<init>
+ 311492        3 java/lang/Class$3.run
+ 311492        3 java/lang/Class.forName
+ 311492        3 java/lang/Class.forName0
+ 311492        3 java/lang/Class.newInstance
+ 311492        3 java/lang/Class.newInstance0
+ 311492        3 java/lang/Exception.<init>
+ 311492        3 java/lang/Integer.<init>
+ 311492        3 java/lang/Object.wait
+ 311492        3 java/lang/RuntimePermission.<init>
+ 311492        3 java/lang/Shutdown.add
+ 311492        3 java/lang/Thread.sleep
+ 311492        3 java/lang/ThreadLocal.<init>
+ 311492        3 java/lang/ThreadLocal.getMap
+ 311492        3 java/lang/ThreadLocal.nextHashCode
+ 311492        3 java/lang/ref/WeakReference.<init>
+ 311492        3 java/lang/reflect/Constructor.newInstance
+ 311492        3 java/net/URLStreamHandler.<init>
+ 311492        3 java/nio/ByteBuffer.allocate
+ 311492        3 java/nio/charset/Charset.defaultCharset
+ 311492        3 java/nio/charset/Charset.lookup2
+ 311492        3 java/nio/charset/CharsetDecoder.maxCharsPerByte
+ 311492        3 java/nio/charset/CodingErrorAction.<init>
+ 311492        3 java/util/AbstractList$Itr.checkForComodification
+ 311492        3 java/util/AbstractList$Itr.next
+ 311492        3 java/util/ArrayList.clear
+ 311492        3 java/util/HashSet.<init>
+ 311492        3 java/util/Hashtable.rehash
+ 311492        3 java/util/LinkedHashMap.<init>
+ 311492        3 java/util/LinkedHashMap.init
+ 311492        3 java/util/Stack.<init>
+ 311492        3 java/util/StringTokenizer.nextToken
+ 311492        3 java/util/concurrent/atomic/AtomicInteger.compareAndSet
+ 311492        3 java/util/concurrent/atomic/AtomicInteger.getAndAdd
+ 311492        3 java/util/jar/JarFile.getEntry
+ 311492        3 java/util/jar/JarFile.getJarEntry
+ 311492        3 java/util/zip/ZipFile.access$300
+ 311492        3 sun/misc/Signal.<init>
+ 311492        3 sun/misc/Signal.findSignal
+ 311492        3 sun/misc/Signal.handle
+ 311492        3 sun/misc/Signal.handle0
+ 311492        3 sun/misc/URLClassPath$JarLoader.ensureOpen
+ 311492        3 sun/reflect/DelegatingConstructorAccessorImpl.newInstance
+ 311492        3 sun/reflect/NativeConstructorAccessorImpl.newInstance
+ 311492        3 sun/reflect/NativeConstructorAccessorImpl.newInstance0
+ 311492        3 sun/reflect/Reflection.getClassAccessFlags
+ 311492        3 sun/reflect/Reflection.quickCheckMemberAccess
+ 311492        3 sun/reflect/ReflectionFactory.inflationThreshold
+ 311492        3 sun/util/PreHashedMap.<init>
+ 311492        4 java/io/BufferedWriter.<init>
+ 311492        4 java/io/ExpiringCache$Entry.timestamp
+ 311492        4 java/io/ExpiringCache.<init>
+ 311492        4 java/io/File.compareTo
+ 311492        4 java/io/File.equals
+ 311492        4 java/io/FilePermission$1.run
+ 311492        4 java/io/FilterOutputStream.<init>
+ 311492        4 java/io/PrintStream.<init>
+ 311492        4 java/io/UnixFileSystem.compare
+ 311492        4 java/lang/Character.toUpperCase
+ 311492        4 java/lang/Class.getDeclaredFields0
+ 311492        4 java/lang/Number.<init>
+ 311492        4 java/lang/Shutdown$Lock.<init>
+ 311492        4 java/lang/String.compareTo
+ 311492        4 java/lang/ThreadGroup.getParent
+ 311492        4 java/lang/Throwable.<init>
+ 311492        4 java/lang/Throwable.fillInStackTrace
+ 311492        4 java/lang/ref/ReferenceQueue$Null.<init>
+ 311492        4 java/lang/ref/ReferenceQueue.<init>
+ 311492        4 java/lang/reflect/Array.newArray
+ 311492        4 java/lang/reflect/Array.newInstance
+ 311492        4 java/lang/reflect/Constructor.setConstructorAccessor
+ 311492        4 java/lang/reflect/Modifier.isPublic
+ 311492        4 java/nio/HeapByteBuffer.ix
+ 311492        4 java/nio/charset/Charset.forName
+ 311492        4 java/nio/charset/CharsetDecoder.onMalformedInput
+ 311492        4 java/nio/charset/CharsetDecoder.onUnmappableCharacter
+ 311492        4 java/nio/charset/CharsetDecoder.replaceWith
+ 311492        4 java/nio/charset/CharsetEncoder.<init>
+ 311492        4 java/nio/charset/CoderResult$Cache.<init>
+ 311492        4 java/security/BasicPermission.<init>
+ 311492        4 java/security/BasicPermission.init
+ 311492        4 java/util/AbstractList$Itr.<init>
+ 311492        4 java/util/ArrayList.toArray
+ 311492        4 java/util/Collections$SynchronizedMap.get
+ 311492        4 java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 311492        4 java/util/IdentityHashMap$KeyIterator.<init>
+ 311492        4 java/util/LinkedHashMap$Entry.recordAccess
+ 311492        4 java/util/StringTokenizer.<init>
+ 311492        4 java/util/zip/ZipFile.ensureOpen
+ 311492        4 sun/misc/MetaIndex.<init>
+ 311492        4 sun/misc/MetaIndex.mayContain
+ 311492        4 sun/nio/cs/FastCharsetProvider.canonicalize
+ 311492        4 sun/nio/cs/StreamEncoder.<init>
+ 311492        4 sun/nio/cs/US_ASCII$Encoder.<init>
+ 311492        4 sun/nio/cs/US_ASCII.newDecoder
+ 311492        4 sun/reflect/ConstructorAccessorImpl.<init>
+ 311492        4 sun/reflect/MagicAccessorImpl.<init>
+ 311492        4 sun/reflect/Reflection.filterFields
+ 311492        4 sun/reflect/ReflectionFactory$GetReflectionFactoryAction.<init>
+ 311492        4 sun/reflect/ReflectionFactory$GetReflectionFactoryAction.run
+ 311492        4 sun/reflect/ReflectionFactory.getReflectionFactory
+ 311492        4 sun/security/util/Debug.isOn
+ 311492        5 java/io/FileDescriptor.<init>
+ 311492        5 java/lang/Class.getModifiers
+ 311492        5 java/lang/Class.getName0
+ 311492        5 java/lang/String.valueOf
+ 311492        5 java/nio/ByteBuffer.wrap
+ 311492        5 java/nio/charset/Charset.isSupported
+ 311492        5 java/security/PermissionCollection.<init>
+ 311492        5 java/util/AbstractList$Itr.hasNext
+ 311492        5 java/util/Hashtable.remove
+ 311492        5 java/util/StringTokenizer.scanToken
+ 311492        5 java/util/StringTokenizer.skipDelimiters
+ 311492        5 sun/misc/MetaIndex.forJar
+ 311492        5 sun/misc/URLClassPath$JarLoader.<init>
+ 311492        5 sun/misc/URLClassPath$JarLoader.getClassPath
+ 311492        5 sun/misc/URLClassPath$JarLoader.getResource
+ 311492        5 sun/misc/Unsafe.getUnsafe
+ 311492        5 sun/util/PreHashedMap.toV
+ 311492        6 java/io/BufferedOutputStream.write
+ 311492        6 java/io/BufferedWriter.flushBuffer
+ 311492        6 java/io/BufferedWriter.min
+ 311492        6 java/io/BufferedWriter.write
+ 311492        6 java/io/File.getAbsolutePath
+ 311492        6 java/io/FileOutputStream.write
+ 311492        6 java/io/FileOutputStream.writeBytes
+ 311492        6 java/io/OutputStream.<init>
+ 311492        6 java/io/OutputStreamWriter.flushBuffer
+ 311492        6 java/io/OutputStreamWriter.write
+ 311492        6 java/io/UnixFileSystem.canonicalize0
+ 311492        6 java/io/Writer.<init>
+ 311492        6 java/io/Writer.write
+ 311492        6 java/lang/Class.checkMemberAccess
+ 311492        6 java/lang/Class.getComponentType
+ 311492        6 java/lang/Class.getDeclaredField
+ 311492        6 java/lang/Class.getName
+ 311492        6 java/lang/Class.getSuperclass
+ 311492        6 java/lang/Class.privateGetDeclaredFields
+ 311492        6 java/lang/Class.searchFields
+ 311492        6 java/lang/ThreadGroup.add
+ 311492        6 java/lang/reflect/Field.<init>
+ 311492        6 java/lang/reflect/Field.copy
+ 311492        6 java/lang/reflect/ReflectAccess.copyField
+ 311492        6 java/net/URL.getURLStreamHandler
+ 311492        6 java/net/URL.toExternalForm
+ 311492        6 java/net/URL.toString
+ 311492        6 java/net/URLStreamHandler.getDefaultPort
+ 311492        6 java/net/URLStreamHandler.getHostAddress
+ 311492        6 java/net/URLStreamHandler.hashCode
+ 311492        6 java/net/URLStreamHandler.toExternalForm
+ 311492        6 java/nio/Bits.byteOrder
+ 311492        6 java/nio/Buffer.clear
+ 311492        6 java/nio/ByteBuffer.<init>
+ 311492        6 java/nio/HeapByteBuffer.<init>
+ 311492        6 java/nio/charset/CharsetDecoder.decode
+ 311492        6 java/nio/charset/CharsetEncoder.encode
+ 311492        6 java/security/Permission.<init>
+ 311492        6 java/util/AbstractSet.<init>
+ 311492        6 java/util/HashMap.containsKey
+ 311492        6 java/util/Vector.add
+ 311492        6 java/util/concurrent/ConcurrentHashMap$Segment.rehash
+ 311492        6 sun/misc/Launcher.getFileURL
+ 311492        6 sun/misc/MetaIndex.getJarMap
+ 311492        6 sun/misc/URLClassPath$3.<init>
+ 311492        6 sun/misc/URLClassPath$3.run
+ 311492        6 sun/misc/URLClassPath$JarLoader.isOptimizable
+ 311492        6 sun/misc/URLClassPath$Loader.<init>
+ 311492        6 sun/misc/Unsafe.objectFieldOffset
+ 311492        6 sun/net/www/ParseUtil.fileToEncodedURL
+ 311492        6 sun/nio/cs/StreamEncoder.ensureOpen
+ 311492        6 sun/nio/cs/StreamEncoder.flushBuffer
+ 311492        6 sun/nio/cs/StreamEncoder.implFlushBuffer
+ 311492        6 sun/nio/cs/StreamEncoder.implWrite
+ 311492        6 sun/nio/cs/StreamEncoder.write
+ 311492        6 sun/nio/cs/StreamEncoder.writeBytes
+ 311492        6 sun/nio/cs/US_ASCII$Decoder.decodeArrayLoop
+ 311492        6 sun/nio/cs/US_ASCII$Decoder.decodeLoop
+ 311492        6 sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 311492        6 sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 311492        6 sun/reflect/ReflectionFactory.copyField
+ 311492        7 java/io/File.getCanonicalFile
+ 311492        7 java/io/InputStream.<init>
+ 311492        7 java/lang/ClassLoader.checkPackageAccess
+ 311492        7 java/lang/ref/SoftReference.<init>
+ 311492        7 java/util/Dictionary.<init>
+ 311492        7 java/util/HashSet.add
+ 311492        7 java/util/Stack.empty
+ 311492        7 java/util/Stack.pop
+ 311492        7 java/util/Stack.push
+ 311492        7 java/util/Vector.removeElementAt
+ 311492        7 java/util/zip/ZipFile.getEntry
+ 311492        7 sun/util/PreHashedMap.get
+ 311492        8 java/lang/Class.checkInitted
+ 311492        8 java/lang/Class.clearCachesOnClassRedefinition
+ 311492        8 java/lang/Class.getPrimitiveClass
+ 311492        8 java/lang/Class.getReflectionFactory
+ 311492        8 java/lang/Object.getClass
+ 311492        8 java/lang/System.setProperty
+ 311492        8 java/lang/Thread.<init>
+ 311492        8 java/lang/Thread.getContextClassLoader
+ 311492        8 java/lang/Thread.init
+ 311492        8 java/lang/Thread.nextThreadID
+ 311492        8 java/lang/ThreadGroup.addUnstarted
+ 311492        8 java/lang/ref/FinalReference.<init>
+ 311492        8 java/lang/ref/Finalizer.<init>
+ 311492        8 java/lang/ref/Finalizer.add
+ 311492        8 java/lang/ref/Finalizer.register
+ 311492        8 java/lang/ref/ReferenceQueue$Lock.<init>
+ 311492        8 java/lang/reflect/AccessibleObject.<init>
+ 311492        8 java/nio/charset/CharsetDecoder.<init>
+ 311492        8 java/security/AccessControlContext.optimize
+ 311492        8 java/security/AccessController.getInheritedAccessControlContext
+ 311492        8 java/util/Properties.setProperty
+ 311492        8 java/util/Stack.peek
+ 311492        8 sun/nio/cs/US_ASCII$Decoder.<init>
+ 311492        8 sun/reflect/ReflectionFactory.langReflectAccess
+ 311492        8 sun/security/util/Debug.getInstance
+ 311492        9 java/io/BufferedOutputStream.flush
+ 311492        9 java/io/BufferedOutputStream.flushBuffer
+ 311492        9 java/io/File.hashCode
+ 311492        9 java/io/File.isDirectory
+ 311492        9 java/io/PrintStream.write
+ 311492        9 java/io/UnixFileSystem.hashCode
+ 311492        9 java/lang/ClassLoader.findBootstrapClass
+ 311492        9 java/lang/ClassLoader.findBootstrapClass0
+ 311492        9 java/lang/ClassLoader.getCallerClassLoader
+ 311492        9 java/lang/ClassLoader.loadClassInternal
+ 311492        9 java/lang/StringBuffer.<init>
+ 311492        9 java/lang/StringBuffer.toString
+ 311492        9 java/nio/Buffer.flip
+ 311492        9 java/util/ArrayList.RangeCheck
+ 311492        9 java/util/ArrayList.get
+ 311492        9 sun/misc/Launcher$AppClassLoader.loadClass
+ 311492        9 sun/net/www/ParseUtil.decode
+ 311492        9 sun/net/www/ParseUtil.lowMask
+ 311492       10 java/io/File.getCanonicalPath
+ 311492       10 java/io/ObjectStreamClass.getClassSignature
+ 311492       10 java/io/UnixFileSystem.canonicalize
+ 311492       10 java/lang/Class.isPrimitive
+ 311492       10 java/lang/Thread.setPriority
+ 311492       10 java/lang/Thread.setPriority0
+ 311492       10 java/nio/CharBuffer.wrap
+ 311492       10 java/nio/charset/Charset.lookup
+ 311492       10 java/security/AccessController.getContext
+ 311492       10 java/security/AccessController.getStackAccessControlContext
+ 311492       10 java/util/Vector.addElement
+ 311492       11 java/lang/String.replace
+ 311492       11 java/lang/ThreadGroup.checkAccess
+ 311492       11 java/net/Parts.<init>
+ 311492       11 java/nio/CharBuffer.<init>
+ 311492       11 java/nio/HeapCharBuffer.<init>
+ 311492       12 java/io/BufferedWriter.ensureOpen
+ 311492       12 java/io/ExpiringCache$1.removeEldestEntry
+ 311492       12 java/io/ExpiringCache$Entry.<init>
+ 311492       12 java/io/ExpiringCache.put
+ 311492       12 java/io/File.exists
+ 311492       12 java/io/PrintStream.ensureOpen
+ 311492       12 java/lang/Class.isArray
+ 311492       12 java/lang/Thread.checkAccess
+ 311492       12 java/nio/ByteBuffer.hasArray
+ 311492       12 java/nio/CharBuffer.array
+ 311492       12 java/nio/CharBuffer.hasArray
+ 311492       12 java/nio/charset/CoderResult.isOverflow
+ 311492       12 java/util/HashMap.get
+ 311492       12 java/util/LinkedHashMap$Entry.access$600
+ 311492       12 java/util/LinkedHashMap$Entry.addBefore
+ 311492       12 java/util/LinkedHashMap.addEntry
+ 311492       12 java/util/LinkedHashMap.createEntry
+ 311492       12 sun/net/www/ParseUtil.highMask
+ 311492       13 java/io/UnixFileSystem.parentOrNull
+ 311492       13 java/nio/Buffer.hasRemaining
+ 311492       13 java/nio/Buffer.remaining
+ 311492       13 sun/misc/URLClassPath.getLoader
+ 311492       13 sun/net/www/ParseUtil.encodePath
+ 311492       14 java/lang/Float.isNaN
+ 311492       14 java/net/URL.hashCode
+ 311492       14 java/util/Hashtable.<init>
+ 311492       15 java/lang/Object.hashCode
+ 311492       15 java/nio/charset/Charset.checkName
+ 311492       15 java/util/ArrayList.<init>
+ 311492       15 java/util/HashMap.addEntry
+ 311492       15 java/util/LinkedHashMap$Entry.<init>
+ 311492       16 java/io/UnixFileSystem.isAbsolute
+ 311492       16 java/lang/ClassLoader$NativeLibrary.find
+ 311492       16 java/lang/String.intern
+ 311492       16 java/util/Vector.ensureCapacityHelper
+ 311492       16 java/util/concurrent/ConcurrentHashMap$Segment.<init>
+ 311492       16 java/util/concurrent/ConcurrentHashMap$Segment.setTable
+ 311492       16 java/util/concurrent/locks/AbstractOwnableSynchronizer.<init>
+ 311492       16 java/util/concurrent/locks/AbstractQueuedSynchronizer.<init>
+ 311492       16 java/util/concurrent/locks/ReentrantLock$NonfairSync.<init>
+ 311492       16 java/util/concurrent/locks/ReentrantLock$Sync.<init>
+ 311492       16 java/util/concurrent/locks/ReentrantLock.<init>
+ 311492       16 sun/reflect/Reflection.getCallerClass
+ 311492       17 java/lang/ClassLoader.findNative
+ 311492       17 java/lang/Math.max
+ 311492       17 java/lang/String.toCharArray
+ 311492       17 java/nio/Buffer.<init>
+ 311492       17 java/util/Locale.getDefault
+ 311492       17 sun/security/action/GetPropertyAction.<init>
+ 311492       18 java/io/ExpiringCache.get
+ 311492       18 java/lang/Class.desiredAssertionStatus
+ 311492       18 java/lang/Class.desiredAssertionStatus0
+ 311492       18 java/lang/ClassLoader.findLoadedClass
+ 311492       18 java/lang/ClassLoader.findLoadedClass0
+ 311492       19 java/io/BufferedReader.ensureOpen
+ 311492       19 java/lang/System.currentTimeMillis
+ 311492       19 java/nio/Buffer.limit
+ 311492       19 java/util/Locale.<init>
+ 311492       19 java/util/Locale.createSingleton
+ 311492       19 java/util/concurrent/ConcurrentHashMap$Segment.put
+ 311492       19 java/util/concurrent/ConcurrentHashMap.put
+ 311492       19 java/util/concurrent/locks/AbstractQueuedSynchronizer.compareAndSetState
+ 311492       19 java/util/concurrent/locks/AbstractQueuedSynchronizer.release
+ 311492       19 java/util/concurrent/locks/AbstractQueuedSynchronizer.setState
+ 311492       19 java/util/concurrent/locks/ReentrantLock$NonfairSync.lock
+ 311492       19 java/util/concurrent/locks/ReentrantLock$Sync.tryRelease
+ 311492       19 java/util/concurrent/locks/ReentrantLock.lock
+ 311492       19 java/util/concurrent/locks/ReentrantLock.unlock
+ 311492       20 java/io/ObjectStreamField.<init>
+ 311492       20 java/nio/ByteBuffer.array
+ 311492       20 java/util/AbstractList.<init>
+ 311492       20 java/util/BitSet.get
+ 311492       20 java/util/concurrent/ConcurrentHashMap.hash
+ 311492       20 java/util/concurrent/ConcurrentHashMap.segmentFor
+ 311492       20 sun/misc/VM.isBooted
+ 311492       21 java/io/File.getName
+ 311492       21 java/io/UnixFileSystem.getBooleanAttributes
+ 311492       21 java/io/UnixFileSystem.getBooleanAttributes0
+ 311492       21 java/lang/StringBuffer.append
+ 311492       21 java/nio/charset/Charset.atBugLevel
+ 311492       22 java/util/concurrent/ConcurrentHashMap$HashEntry.newArray
+ 311492       22 sun/misc/Unsafe.compareAndSwapInt
+ 311492       23 java/util/HashMap.<init>
+ 311492       23 java/util/concurrent/ConcurrentHashMap$HashEntry.<init>
+ 311492       24 java/nio/charset/CoderResult.isUnderflow
+ 311492       24 java/util/AbstractMap.<init>
+ 311492       24 java/util/Vector.elementAt
+ 311492       25 java/lang/Class.getClassLoader
+ 311492       26 java/util/AbstractCollection.<init>
+ 311492       26 java/util/ArrayList.add
+ 311492       26 java/util/ArrayList.ensureCapacity
+ 311492       27 java/lang/ClassLoader.loadClass
+ 311492       27 java/net/URL.<init>
+ 311492       28 java/lang/ClassLoader.check
+ 311492       28 java/lang/ClassLoader.checkName
+ 311492       28 java/lang/ref/Reference.<init>
+ 311492       29 java/lang/String.endsWith
+ 311492       29 sun/misc/VM.allowArraySyntax
+ 311492       30 java/io/ExpiringCache.entryFor
+ 311492       30 java/io/UnixFileSystem.resolve
+ 311492       30 java/util/HashMap$Entry.<init>
+ 311492       30 java/util/LinkedHashMap.get
+ 311492       33 java/util/HashMap.put
+ 311492       33 java/util/Vector.<init>
+ 311492       34 java/io/UnixFileSystem.normalize
+ 311492       34 java/lang/Class.getClassLoader0
+ 311492       34 java/lang/String.toLowerCase
+ 311492       34 sun/security/action/GetPropertyAction.run
+ 311492       36 java/nio/CharBuffer.arrayOffset
+ 311492       36 java/util/HashMap.getEntry
+ 311492       37 java/io/File.<init>
+ 311492       37 java/io/UnixFileSystem.prefixLength
+ 311492       38 java/io/BufferedReader.readLine
+ 311492       38 java/util/concurrent/locks/AbstractOwnableSynchronizer.setExclusiveOwnerThread
+ 311492       41 java/lang/CharacterDataLatin1.toLowerCase
+ 311492       43 java/lang/CharacterDataLatin1.getProperties
+ 311492       43 java/security/AccessController.doPrivileged
+ 311492       43 java/util/Vector.size
+ 311492       44 java/nio/Buffer.position
+ 311492       44 java/nio/ByteBuffer.arrayOffset
+ 311492       48 java/lang/System.getProperty
+ 311492       50 java/util/Properties.getProperty
+ 311492       51 java/util/BitSet.expandTo
+ 311492       51 java/util/BitSet.set
+ 311492       56 java/lang/System.checkKey
+ 311492       57 java/lang/Thread.currentThread
+ 311492       57 java/util/Hashtable$Entry.<init>
+ 311492       59 java/util/Hashtable.get
+ 311492       63 java/util/Hashtable.put
+ 311492       71 java/util/BitSet.checkInvariants
+ 311492       72 java/util/BitSet.wordIndex
+ 311492       73 java/lang/StringBuilder.<init>
+ 311492       73 java/lang/StringBuilder.toString
+ 311492       81 java/lang/AbstractStringBuilder.expandCapacity
+ 311492       81 java/util/HashMap.hash
+ 311492       81 java/util/HashMap.indexFor
+ 311492       82 java/lang/AbstractStringBuilder.<init>
+ 311492       82 java/lang/Character.toLowerCase
+ 311492       83 java/lang/String.startsWith
+ 311492       87 java/util/Arrays.copyOf
+ 311492       90 java/lang/String.lastIndexOf
+ 311492       94 java/lang/String.substring
+ 311492      107 java/util/Arrays.copyOfRange
+ 311492      156 java/lang/String.getChars
+ 311492      174 java/lang/System.getSecurityManager
+ 311492      175 java/lang/String.<init>
+ 311492      202 java/lang/String.equals
+ 311492      208 java/lang/Math.min
+ 311492      213 java/lang/String.hashCode
+ 311492      302 java/lang/String.indexOf
+ 311492      360 java/lang/System.arraycopy
+ 311492      533 java/lang/StringBuilder.append
+ 311492      549 java/lang/AbstractStringBuilder.append
+ 311492      823 java/lang/Object.<init>
+ 311492     1960 java/lang/String.charAt
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_objnew_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_objnew_example.txt
new file mode 100644
index 0000000..433c38f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_objnew_example.txt
@@ -0,0 +1,1460 @@
+The following are examples of j_objnew.d.
+
+This traces activity of object allocation by Java.  It will print a histogram
+of the byte size of allocation of different type, followed by a count of each
+type of allocation.  
+
+Here you can see it running on Code/Java/Func_abc
+
+# j_objnew.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Java object allocation byte distributions by pid and class,
+
+   311496  java/io/Console$1                                 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/io/DeleteOnExitHook                          
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/io/File$1                                    
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/lang/ApplicationShutdownHooks                
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/lang/Compiler$1                              
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/lang/Runtime                                 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/lang/String$CaseInsensitiveComparator        
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/lang/System$2                                
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/lang/Terminator$1                            
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/lang/ref/Reference$Lock                      
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/lang/reflect/ReflectAccess                   
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/net/URLClassLoader$7                         
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/net/UnknownContentHandler                    
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/util/Collections$EmptySet                    
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/util/Collections$ReverseComparator           
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/util/Hashtable$EmptyEnumerator               
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/util/Hashtable$EmptyIterator                 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/util/jar/JavaUtilJarAccessImpl               
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  sun/misc/Launcher$Factory                         
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  sun/misc/Unsafe                                   
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  sun/net/www/protocol/file/Handler                 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  sun/reflect/ReflectionFactory                     
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  sun/reflect/ReflectionFactory$1                   
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  [Ljava/lang/StackTraceElement;                    
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  [Ljava/security/Principal;                        
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  [Ljava/security/cert/Certificate;                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/io/Console$1$1                               
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/io/FilePermissionCollection                  
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/io/FileReader                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/io/UnixFileSystem                            
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/ArithmeticException                     
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/ClassLoader$3                           
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/NoSuchMethodError                       
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/NullPointerException                    
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/Shutdown$Lock                           
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              16 |                                         0        
+
+   311496  java/lang/StringCoding$StringDecoder              
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/SystemClassLoaderAction                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/ThreadLocal$ThreadLocalMap              
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/VirtualMachineError                     
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/reflect/ReflectPermission               
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/nio/charset/CoderResult$1                    
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/nio/charset/CoderResult$2                    
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/security/BasicPermissionCollection           
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/security/Policy$UnsupportedEmptyCollection   
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/util/BitSet                                  
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/util/Collections$EmptyList                   
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/util/Collections$EmptyMap                    
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/util/HashMap$KeySet                          
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/util/IdentityHashMap$KeySet                  
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/util/LinkedHashSet                           
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/util/concurrent/atomic/AtomicInteger         
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/misc/FileURLMapper                            
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/misc/Launcher                                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/misc/Launcher$AppClassLoader$1                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/misc/Launcher$ExtClassLoader$1                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/misc/URLClassPath$FileLoader                  
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/misc/URLClassPath$JarLoader$1                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/net/www/MessageHeader                         
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/net/www/protocol/jar/Handler                  
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              16 |                                         0        
+
+   311496  sun/nio/cs/StandardCharsets                       
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/nio/cs/US_ASCII                               
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/Class$3                                 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              16 |                                         0        
+
+   311496  [J                                                
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  [Ljava/io/File;                                   
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  [Ljava/lang/OutOfMemoryError;                     
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  [Ljava/lang/ThreadGroup;                          
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  [Ljava/lang/reflect/Constructor;                  
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/io/BufferedInputStream                       
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/io/BufferedOutputStream                      
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/io/BufferedReader                            
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/io/DataInputStream                           
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/io/FileOutputStream                          
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/io/FilePermission$1                          
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/io/OutputStreamWriter                        
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/lang/Class$1                                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/lang/ClassLoader$NativeLibrary               
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/lang/ThreadLocal$ThreadLocalMap$Entry        
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/lang/ref/ReferenceQueue                      
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/lang/ref/ReferenceQueue$Lock                 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+              16 |                                         0        
+
+   311496  java/lang/ref/ReferenceQueue$Null                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/lang/ref/WeakReference                       
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/net/URLClassLoader$1                         
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/nio/ByteOrder                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/nio/charset/CoderResult                      
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/security/CodeSource                          
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/security/Permissions                         
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/security/PrivilegedActionException           
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/security/ProtectionDomain                    
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/AbstractList$Itr                        
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/util/Collections$SynchronizedMap             
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/HashSet                                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/util/IdentityHashMap                         
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/LinkedHashMap                           
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/LinkedHashMap$KeyIterator               
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/Properties                              
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/concurrent/ConcurrentHashMap            
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/jar/JarFile                             
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/zip/Inflater                            
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/zip/ZipFile$1                           
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/zip/ZipFile$ZipFileInputStream          
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  sun/misc/NativeSignalHandler                      
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  sun/misc/SoftCache                                
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  sun/misc/URLClassPath$FileLoader$1                
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  sun/nio/cs/StandardCharsets$Aliases               
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  sun/nio/cs/StandardCharsets$Cache                 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  sun/nio/cs/StandardCharsets$Classes               
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  sun/nio/cs/StreamDecoder                          
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  sun/nio/cs/Surrogate$Parser                       
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  sun/reflect/DelegatingConstructorAccessorImpl     
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  sun/reflect/NativeConstructorAccessorImpl         
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  sun/reflect/ReflectionFactory$GetReflectionFactoryAction
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+              16 |                                         0        
+
+   311496  [Ljava/net/URL;                                   
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     1        
+              32 |@@@@@@@@@@@@@@@@@@@@                     1        
+              64 |                                         0        
+
+   311496  java/io/FileInputStream                           
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   311496  java/lang/Boolean                                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   311496  java/lang/Integer                                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   311496  java/lang/RuntimePermission                       
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   311496  java/lang/ThreadLocal                             
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   311496  java/nio/charset/CodingErrorAction                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   311496  java/util/Stack                                   
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   311496  sun/misc/Signal                                   
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   311496  [Ljava/lang/Thread;                               
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  [Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;     
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  [Ljava/lang/annotation/Annotation;                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+              32 |                                         0        
+
+   311496  [Ljava/util/concurrent/ConcurrentHashMap$Segment; 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  java/io/BufferedWriter                            
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/io/ExpiringCache                             
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/io/ExpiringCache$1                           
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/io/FilePermission                            
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/io/PrintStream                               
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/lang/ClassNotFoundException                  
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/lang/ThreadGroup                             
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/lang/ref/Finalizer$FinalizerThread           
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  java/lang/ref/Reference$ReferenceHandler          
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  java/lang/reflect/Method                          
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  java/util/IdentityHashMap$KeyIterator             
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/util/StringTokenizer                         
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/util/jar/JarFile$JarFileEntry                
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  java/util/zip/ZipEntry                            
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  sun/misc/Launcher$AppClassLoader                  
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  sun/misc/Launcher$ExtClassLoader                  
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  sun/misc/MetaIndex                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+              32 |                                         0        
+
+   311496  sun/misc/URLClassPath                             
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  sun/net/www/protocol/file/FileURLConnection       
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  sun/nio/cs/StreamEncoder                          
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  sun/nio/cs/US_ASCII$Encoder                       
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/io/FileDescriptor                            
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+              32 |                                         0        
+
+   311496  sun/misc/URLClassPath$3                           
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+              32 |                                         0        
+
+   311496  [Ljava/io/ObjectStreamField;                      
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8        
+              32 |                                         0        
+
+   311496  [Ljava/lang/reflect/Field;                        
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+              64 |                                         0        
+
+   311496  java/lang/Object                                  
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 16       
+              16 |                                         0        
+
+   311496  java/lang/OutOfMemoryError                        
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8        
+              32 |                                         0        
+
+   311496  java/util/ArrayList                               
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8        
+              32 |                                         0        
+
+   311496  java/util/Vector                                  
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8        
+              32 |                                         0        
+
+   311496  sun/nio/cs/US_ASCII$Decoder                       
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+              64 |                                         0        
+
+   311496  java/lang/StringBuffer                            
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9        
+              32 |                                         0        
+
+   311496  java/security/AccessControlContext                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10       
+              32 |                                         0        
+
+   311496  sun/misc/URLClassPath$JarLoader                   
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+              64 |                                         0        
+
+   311496  java/net/Parts                                    
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 11       
+              32 |                                         0        
+
+   311496  [Ljava/lang/Class;                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 12       
+              32 |                                         0        
+
+   311496  java/io/ExpiringCache$Entry                       
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 12       
+              32 |                                         0        
+
+   311496  java/nio/HeapByteBuffer                           
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+              64 |                                         0        
+
+   311496  java/util/Hashtable                               
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+              64 |                                         0        
+
+   311496  java/lang/ref/SoftReference                       
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7        
+              64 |                                         0        
+
+   311496  java/util/HashMap$Entry                           
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 15       
+              32 |                                         0        
+
+   311496  java/lang/ref/Finalizer                           
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8        
+              64 |                                         0        
+
+   311496  java/lang/reflect/Constructor                     
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+             128 |                                         0        
+
+   311496  java/util/concurrent/locks/ReentrantLock$NonfairSync
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 16       
+              32 |                                         0        
+
+   311496  sun/security/action/GetPropertyAction             
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 17       
+              32 |                                         0        
+
+   311496  java/io/ObjectStreamField                         
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10       
+              64 |                                         0        
+
+   311496  java/nio/HeapCharBuffer                           
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 11       
+              64 |                                         0        
+
+   311496  java/util/concurrent/ConcurrentHashMap$HashEntry  
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 23       
+              32 |                                         0        
+
+   311496  java/lang/Thread                                  
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+             128 |                                         0        
+
+   311496  java/net/URL                                      
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 13       
+              64 |                                         0        
+
+   311496  java/util/HashMap                                 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14       
+              64 |                                         0        
+
+   311496  java/util/LinkedHashMap$Entry                     
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 15       
+              64 |                                         0        
+
+   311496  [Ljava/util/concurrent/ConcurrentHashMap$HashEntry;
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@            16       
+              32 |@@@@@@@                                  4        
+              64 |@@@@                                     2        
+             128 |                                         0        
+
+   311496  java/util/concurrent/ConcurrentHashMap$Segment    
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 16       
+              64 |                                         0        
+
+   311496  java/io/File                                      
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 37       
+              32 |                                         0        
+
+   311496  java/util/Locale                                  
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 19       
+              64 |                                         0        
+
+   311496  [Ljava/util/Hashtable$Entry;                      
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@             7        
+              64 |@@@@                                     1        
+             128 |@@@@                                     1        
+             256 |@@@@                                     1        
+             512 |                                         0        
+
+   311496  java/util/Hashtable$Entry                         
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 57       
+              32 |                                         0        
+
+   311496  [Ljava/util/HashMap$Entry;                        
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 17       
+             128 |                                         0        
+
+   311496  java/lang/StringBuilder                           
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 73       
+              32 |                                         0        
+
+   311496  [Ljava/lang/String;                               
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@                       26       
+              32 |@@@@@@@@@@@@@@@                          22       
+              64 |@@@@@@                                   9        
+             128 |                                         0        
+
+   311496  java/lang/reflect/Field                           
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 37       
+             128 |                                         0        
+
+   311496  [Ljava/lang/Object;                               
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     296      
+              32 |@@                                       18       
+              64 |                                         0        
+             128 |@                                        10       
+             256 |                                         1        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         1        
+            8192 |                                         0        
+
+   311496  java/lang/String                                  
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 931      
+              32 |                                         0        
+
+   311496  [S                                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@                            161      
+              32 |@@@@@@@@@@@@@@@@                         189      
+              64 |@@@@@@@                                  82       
+             128 |@@@                                      38       
+             256 |@                                        12       
+             512 |                                         4        
+            1024 |                                         0        
+
+   311496  [[I                                               
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     270      
+              32 |@@@@@@@@@@                               129      
+              64 |@@@@@@                                   85       
+             128 |@@@                                      34       
+             256 |@@                                       22       
+             512 |                                         1        
+            1024 |                                         0        
+
+   311496  java/lang/Class                                   
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 395      
+             128 |                                         0        
+
+   311496  [I                                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |                                         3        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           276      
+              64 |@@@@@@@@@                                87       
+             128 |                                         3        
+             256 |                                         1        
+             512 |                                         1        
+            1024 |                                         1        
+            2048 |                                         0        
+            4096 |                                         1        
+            8192 |                                         0        
+           16384 |                                         1        
+           32768 |                                         0        
+
+   311496  [B                                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@                                87       
+              32 |@@@@@@@@@@                               100      
+              64 |@@@@@@@@                                 83       
+             128 |@@@@@@@                                  71       
+             256 |@@@@@                                    47       
+             512 |@                                        14       
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         4        
+           16384 |                                         0        
+
+   311496  [C                                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@                               271      
+              32 |@@@@@@@@@@@@@@@@@@@@@                    573      
+              64 |@@@@@@                                   150      
+             128 |@@@                                      68       
+             256 |                                         8        
+             512 |                                         1        
+            1024 |                                         2        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |                                         3        
+           32768 |                                         0        
+
+Java object allocation count by pid and class,
+
+    PID     OBJS CLASS
+ 311496        1 [J
+ 311496        1 [Ljava/lang/OutOfMemoryError;
+ 311496        1 [Ljava/lang/StackTraceElement;
+ 311496        1 [Ljava/lang/ThreadGroup;
+ 311496        1 [Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
+ 311496        1 [Ljava/security/Principal;
+ 311496        1 [Ljava/security/cert/Certificate;
+ 311496        1 [Ljava/util/concurrent/ConcurrentHashMap$Segment;
+ 311496        1 java/io/BufferedInputStream
+ 311496        1 java/io/BufferedReader
+ 311496        1 java/io/Console$1
+ 311496        1 java/io/Console$1$1
+ 311496        1 java/io/DataInputStream
+ 311496        1 java/io/DeleteOnExitHook
+ 311496        1 java/io/File$1
+ 311496        1 java/io/FilePermissionCollection
+ 311496        1 java/io/FileReader
+ 311496        1 java/io/UnixFileSystem
+ 311496        1 java/lang/ApplicationShutdownHooks
+ 311496        1 java/lang/ArithmeticException
+ 311496        1 java/lang/ClassLoader$3
+ 311496        1 java/lang/ClassLoader$NativeLibrary
+ 311496        1 java/lang/Compiler$1
+ 311496        1 java/lang/NoSuchMethodError
+ 311496        1 java/lang/NullPointerException
+ 311496        1 java/lang/Runtime
+ 311496        1 java/lang/String$CaseInsensitiveComparator
+ 311496        1 java/lang/StringCoding$StringDecoder
+ 311496        1 java/lang/System$2
+ 311496        1 java/lang/SystemClassLoaderAction
+ 311496        1 java/lang/Terminator$1
+ 311496        1 java/lang/ThreadLocal$ThreadLocalMap
+ 311496        1 java/lang/ThreadLocal$ThreadLocalMap$Entry
+ 311496        1 java/lang/VirtualMachineError
+ 311496        1 java/lang/ref/Finalizer$FinalizerThread
+ 311496        1 java/lang/ref/Reference$Lock
+ 311496        1 java/lang/ref/Reference$ReferenceHandler
+ 311496        1 java/lang/reflect/Method
+ 311496        1 java/lang/reflect/ReflectAccess
+ 311496        1 java/lang/reflect/ReflectPermission
+ 311496        1 java/net/URLClassLoader$7
+ 311496        1 java/net/UnknownContentHandler
+ 311496        1 java/nio/charset/CoderResult$1
+ 311496        1 java/nio/charset/CoderResult$2
+ 311496        1 java/security/BasicPermissionCollection
+ 311496        1 java/security/CodeSource
+ 311496        1 java/security/Policy$UnsupportedEmptyCollection
+ 311496        1 java/security/PrivilegedActionException
+ 311496        1 java/security/ProtectionDomain
+ 311496        1 java/util/BitSet
+ 311496        1 java/util/Collections$EmptyList
+ 311496        1 java/util/Collections$EmptyMap
+ 311496        1 java/util/Collections$EmptySet
+ 311496        1 java/util/Collections$ReverseComparator
+ 311496        1 java/util/Collections$SynchronizedMap
+ 311496        1 java/util/HashMap$KeySet
+ 311496        1 java/util/Hashtable$EmptyEnumerator
+ 311496        1 java/util/Hashtable$EmptyIterator
+ 311496        1 java/util/IdentityHashMap
+ 311496        1 java/util/IdentityHashMap$KeySet
+ 311496        1 java/util/LinkedHashMap
+ 311496        1 java/util/LinkedHashMap$KeyIterator
+ 311496        1 java/util/LinkedHashSet
+ 311496        1 java/util/Properties
+ 311496        1 java/util/concurrent/ConcurrentHashMap
+ 311496        1 java/util/concurrent/atomic/AtomicInteger
+ 311496        1 java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
+ 311496        1 java/util/jar/JarFile
+ 311496        1 java/util/jar/JarFile$JarFileEntry
+ 311496        1 java/util/jar/JavaUtilJarAccessImpl
+ 311496        1 java/util/zip/Inflater
+ 311496        1 java/util/zip/ZipEntry
+ 311496        1 java/util/zip/ZipFile$1
+ 311496        1 java/util/zip/ZipFile$ZipFileInputStream
+ 311496        1 sun/misc/FileURLMapper
+ 311496        1 sun/misc/Launcher
+ 311496        1 sun/misc/Launcher$AppClassLoader
+ 311496        1 sun/misc/Launcher$AppClassLoader$1
+ 311496        1 sun/misc/Launcher$ExtClassLoader
+ 311496        1 sun/misc/Launcher$ExtClassLoader$1
+ 311496        1 sun/misc/Launcher$Factory
+ 311496        1 sun/misc/SoftCache
+ 311496        1 sun/misc/URLClassPath$FileLoader
+ 311496        1 sun/misc/URLClassPath$FileLoader$1
+ 311496        1 sun/misc/URLClassPath$JarLoader$1
+ 311496        1 sun/misc/Unsafe
+ 311496        1 sun/net/www/MessageHeader
+ 311496        1 sun/net/www/protocol/file/FileURLConnection
+ 311496        1 sun/net/www/protocol/file/Handler
+ 311496        1 sun/nio/cs/StandardCharsets
+ 311496        1 sun/nio/cs/StandardCharsets$Aliases
+ 311496        1 sun/nio/cs/StandardCharsets$Cache
+ 311496        1 sun/nio/cs/StandardCharsets$Classes
+ 311496        1 sun/nio/cs/StreamDecoder
+ 311496        1 sun/nio/cs/US_ASCII
+ 311496        1 sun/reflect/ReflectionFactory
+ 311496        1 sun/reflect/ReflectionFactory$1
+ 311496        2 [Ljava/io/File;
+ 311496        2 [Ljava/lang/Thread;
+ 311496        2 [Ljava/lang/reflect/Constructor;
+ 311496        2 [Ljava/net/URL;
+ 311496        2 java/io/BufferedOutputStream
+ 311496        2 java/io/BufferedWriter
+ 311496        2 java/io/ExpiringCache
+ 311496        2 java/io/ExpiringCache$1
+ 311496        2 java/io/FileOutputStream
+ 311496        2 java/io/FilePermission
+ 311496        2 java/io/FilePermission$1
+ 311496        2 java/io/OutputStreamWriter
+ 311496        2 java/io/PrintStream
+ 311496        2 java/lang/Class$1
+ 311496        2 java/lang/ClassNotFoundException
+ 311496        2 java/lang/Shutdown$Lock
+ 311496        2 java/lang/ThreadGroup
+ 311496        2 java/lang/ref/ReferenceQueue
+ 311496        2 java/lang/ref/ReferenceQueue$Null
+ 311496        2 java/lang/ref/WeakReference
+ 311496        2 java/net/URLClassLoader$1
+ 311496        2 java/nio/ByteOrder
+ 311496        2 java/nio/charset/CoderResult
+ 311496        2 java/security/Permissions
+ 311496        2 java/util/AbstractList$Itr
+ 311496        2 java/util/HashSet
+ 311496        2 java/util/IdentityHashMap$KeyIterator
+ 311496        2 java/util/StringTokenizer
+ 311496        2 sun/misc/NativeSignalHandler
+ 311496        2 sun/misc/URLClassPath
+ 311496        2 sun/net/www/protocol/jar/Handler
+ 311496        2 sun/nio/cs/StreamEncoder
+ 311496        2 sun/nio/cs/Surrogate$Parser
+ 311496        2 sun/nio/cs/US_ASCII$Encoder
+ 311496        2 sun/reflect/DelegatingConstructorAccessorImpl
+ 311496        2 sun/reflect/NativeConstructorAccessorImpl
+ 311496        3 java/io/FileInputStream
+ 311496        3 java/lang/Boolean
+ 311496        3 java/lang/Class$3
+ 311496        3 java/lang/Integer
+ 311496        3 java/lang/RuntimePermission
+ 311496        3 java/lang/ThreadLocal
+ 311496        3 java/nio/charset/CodingErrorAction
+ 311496        3 java/util/Stack
+ 311496        3 sun/misc/Signal
+ 311496        4 [Ljava/lang/annotation/Annotation;
+ 311496        4 [Ljava/lang/reflect/Field;
+ 311496        4 java/lang/ref/ReferenceQueue$Lock
+ 311496        4 java/lang/reflect/Constructor
+ 311496        4 sun/misc/MetaIndex
+ 311496        4 sun/nio/cs/US_ASCII$Decoder
+ 311496        4 sun/reflect/ReflectionFactory$GetReflectionFactoryAction
+ 311496        5 java/io/FileDescriptor
+ 311496        5 sun/misc/URLClassPath$JarLoader
+ 311496        6 java/lang/Thread
+ 311496        6 java/nio/HeapByteBuffer
+ 311496        6 java/util/Hashtable
+ 311496        6 sun/misc/URLClassPath$3
+ 311496        7 java/lang/ref/SoftReference
+ 311496        8 [Ljava/io/ObjectStreamField;
+ 311496        8 java/lang/OutOfMemoryError
+ 311496        8 java/lang/ref/Finalizer
+ 311496        8 java/util/ArrayList
+ 311496        8 java/util/Vector
+ 311496        9 java/lang/StringBuffer
+ 311496       10 [Ljava/util/Hashtable$Entry;
+ 311496       10 java/io/ObjectStreamField
+ 311496       10 java/security/AccessControlContext
+ 311496       11 java/net/Parts
+ 311496       11 java/nio/HeapCharBuffer
+ 311496       12 [Ljava/lang/Class;
+ 311496       12 java/io/ExpiringCache$Entry
+ 311496       13 java/net/URL
+ 311496       14 java/util/HashMap
+ 311496       15 java/util/HashMap$Entry
+ 311496       15 java/util/LinkedHashMap$Entry
+ 311496       16 java/lang/Object
+ 311496       16 java/util/concurrent/ConcurrentHashMap$Segment
+ 311496       16 java/util/concurrent/locks/ReentrantLock$NonfairSync
+ 311496       17 [Ljava/util/HashMap$Entry;
+ 311496       17 sun/security/action/GetPropertyAction
+ 311496       19 java/util/Locale
+ 311496       22 [Ljava/util/concurrent/ConcurrentHashMap$HashEntry;
+ 311496       23 java/util/concurrent/ConcurrentHashMap$HashEntry
+ 311496       37 java/io/File
+ 311496       37 java/lang/reflect/Field
+ 311496       57 [Ljava/lang/String;
+ 311496       57 java/util/Hashtable$Entry
+ 311496       73 java/lang/StringBuilder
+ 311496      326 [Ljava/lang/Object;
+ 311496      374 [I
+ 311496      395 java/lang/Class
+ 311496      406 [B
+ 311496      486 [S
+ 311496      541 [[I
+ 311496      931 java/lang/String
+ 311496     1076 [C
+
+In the first section - Java object allocation byte distributions by PID and
+class, you can see in graphical form the range of sizes of each type of
+object.  For example: 
+
+   311496  [C                                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@                               271      
+              32 |@@@@@@@@@@@@@@@@@@@@@                    573      
+              64 |@@@@@@                                   150      
+             128 |@@@                                      68       
+             256 |                                         8        
+             512 |                                         1        
+            1024 |                                         2        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |                                         3        
+           32768 |                                         0        
+
+shows that there were 271 objects of type [C and size 16 bytes to 31 bytes
+created.  It is important to pay close attention to the third column, 
+"count" as this will indicate if there were any instances in a particular 
+size, even if the number is too small to show up on the histogram scale. 
+
+In the second section - Java object allocation count by pid and class, you can
+easily see that there were 395 objects of java/lang/Class created, and 931 
+objects of java/lang/String.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_package_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_package_example.txt
new file mode 100644
index 0000000..0d4da29
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_package_example.txt
@@ -0,0 +1,44 @@
+The following are examples of j_package.d.
+
+This script will show you the number of times a class is loaded from
+particular packages.  
+
+Here you can see it running when Code/Java/Func_abc runs.
+
+# j_package.d
+Tracing... Hit Ctrl-C to end.
+
+      PID    LOADS  PACKAGE
+   311500        1  .
+   311500        1  java/lang/annotation
+   311500        1  java/nio/charset/spi
+   311500        1  java/security/cert
+   311500        1  sun/net/www/protocol/jar
+   311500        1  sun/nio
+   311500        1  sun/reflect/misc
+   311500        1  sun/security/action
+   311500        1  sun/security/provider
+   311500        1  sun/security/util
+   311500        1  sun/util
+   311500        2  sun/net/www/protocol/file
+   311500        3  java/util/concurrent/atomic
+   311500        3  sun/net/www
+   311500        4  java/util/concurrent
+   311500        4  java/util/jar
+   311500        7  java/nio
+   311500        7  java/util/concurrent/locks
+   311500        7  java/util/zip
+   311500        8  java/nio/charset
+   311500       10  java/net
+   311500       12  java/lang/ref
+   311500       12  java/lang/reflect
+   311500       13  sun/nio/cs
+   311500       18  sun/reflect
+   311500       19  java/security
+   311500       34  sun/misc
+   311500       38  java/io
+   311500       46  java/util
+   311500       69  java/lang
+
+You can see that 69 classes from the java/lang package were loaded during the
+time this script was running.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_profile_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_profile_example.txt
new file mode 100644
index 0000000..bb45c4b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_profile_example.txt
@@ -0,0 +1,209 @@
+The following are examples of j_profile.d.
+
+This script samples on-CPU stack traces and prints them with Java
+translations.  With DTrace, as well as tracing events, you can also sample
+them.  Each approach has its own advantages and disadvantages and you are 
+encouraged to try both when investigating performance issues (especially 
+tracing).  Sampling is inaccurate and can miss events, yet is a quick and 
+easy way to discover a certain set of performance issues involving on-CPU 
+load.  
+  
+This script samples at 101 Hertz, printing out the 25 most frequently seen 
+stack traces down to 10 lines deep. All of these values can be tweaked in 
+the script.
+
+Here we run the script on Code/Java/Func_loop.  The argument fed to the script
+is the PID of the Java program we wish to investigate.  Here the raw output is
+show, then again after filtering using c++filt.
+
+# j_profile.d -p 1312
+Sampling 10-level stacks at 101 Hertz... Hit Ctrl-C to end.
+^C
+
+Top 25 most frequently sampled stacks,
+
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+              libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+              libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+              libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               30
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+              libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+              libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+              libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               31
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+              libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+              libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+              libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               32
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+              libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+              libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+              libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               33
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+              libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+              libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+              libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               41
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+              libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+              libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+              libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               72
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+              libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+              libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+              libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+              116
+
+
+The most frequent stacks had Func_loop.func_c() on CPU, with a stack trace
+showing func_b() and func_a() - as expected from the source to Func_loop.java.
+
+
+Now passing that output through c++filt to translate the compiled C++ symbols
+of the JVM.
+
+# j_profile.d -p 1312 -o out.j_profile
+# c++filt out.j_profile
+Sampling 10-level stacks at 101 Hertz... Hit Ctrl-C to end.
+
+Top 25 most frequently sampled stacks,
+
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+              libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+              libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+              libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               10
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+              libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+              libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+              libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               13
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+              libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+              libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+              libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               19
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+              libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+              libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+              libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               21
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+              libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+              libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+              libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               29
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+              libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+              libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+              libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               53
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+              libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+              libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+              libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               74
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_stat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_stat_example.txt
new file mode 100644
index 0000000..6c7e12e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_stat_example.txt
@@ -0,0 +1,33 @@
+The following are examples of running j_stat.d.
+
+j_stat.d shows you the number of events per second that have happened since
+the last line output.  The default interval is 1 second, but you can specify
+other intervals as arguments to the script.
+
+This shows the j_stat.d script reflecting the Code/Ruby/Func_abc script.  
+
+# j_stat.d
+TIME                 EXEC/s THREAD/s METHOD/s OBJNEW/s  CLOAD/s EXCP/s   GC/s
+2007 Sep 24 04:00:34      0        0        0        0        0      0      0
+2007 Sep 24 04:00:35      2        6    11660     5306      318     41      0
+2007 Sep 24 04:00:36      0        0      124        4        0      2      0
+2007 Sep 24 04:00:37      0        0      124        4        0      2      0
+2007 Sep 24 04:00:38      0        0      123       75        9      1      0
+2007 Sep 24 04:00:39      0        0        0        0        0      0      0
+2007 Sep 24 04:00:40      0        0        0        0        0      0      0
+^C
+
+Here we can see that at 2007 Sep 24 04:00:35 there were 2 Java programs
+executed, (this number will include those without Java provider support),
+there were 6 threads created, 11,660 methods called, 5306 new objects created,
+318 class loads, 41 exceptions raised and no garbage collects. 
+
+The numbers are per second counts for the interval specified. The default 
+interval is 1 second.
+
+If you see a count in "EXECS" but not in the other columns, then your Java 
+software is probably not running with the DTrace hotspot provider.
+
+If you see counts in "CLOAD" but not in "METHODS", then you Java software 
+probably isn't running with "+ExtendedDTraceProbes".
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_syscalls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_syscalls_example.txt
new file mode 100644
index 0000000..911d4b0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_syscalls_example.txt
@@ -0,0 +1,165 @@
+The following are examples of j_syscalls.d.
+
+This is a simple script to count executed Java methods and system calls.
+Here it traces an example program, Code/Java/Func_abc.
+
+# j_syscalls.d -c 'java -XX:+ExtendedDTraceProbes Func_abc'
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+    PID TYPE     NAME                                                    COUNT
+ 311536 method   Func_abc.func_a                                             1
+ 311536 method   Func_abc.func_b                                             1
+ 311536 method   Func_abc.func_c                                             1
+ 311536 method   Func_abc.main                                               1
+ 311536 method   java/io/BufferedInputStream.<clinit>                        1
+ 311536 method   java/io/BufferedReader.<clinit>                             1
+ 311536 method   java/io/BufferedReader.close                                1
+ 311536 method   java/io/BufferedWriter.<clinit>                             1
+ 311536 method   java/io/Console$1$1.<init>                                  1
+ 311536 method   java/io/Console$1$1.run                                     1
+ 311536 method   java/io/Console$1.<init>                                    1
+ 311536 method   java/io/Console$1.consoleRestoreHook                        1
+ 311536 method   java/io/Console.<clinit>                                    1
+ 311536 method   java/io/Console.access$600                                  1
+ 311536 method   java/io/DataInputStream.<init>                              1
+ 311536 method   java/io/DataInputStream.readFully                           1
+ 311536 method   java/io/DeleteOnExitHook.<clinit>                           1
+ 311536 method   java/io/DeleteOnExitHook.<init>                             1
+ 311536 method   java/io/DeleteOnExitHook.hook                               1
+ 311536 method   java/io/DeleteOnExitHook.run                                1
+[... 900 lines truncated ...]
+ 311536 method   java/io/ExpiringCache.get                                  18
+ 311536 method   java/lang/Class.desiredAssertionStatus                     18
+ 311536 method   java/lang/Class.desiredAssertionStatus0                    18
+ 311536 method   java/lang/ClassLoader.findLoadedClass                      18
+ 311536 method   java/lang/ClassLoader.findLoadedClass0                     18
+ 311536 method   java/io/BufferedReader.ensureOpen                          19
+ 311536 method   java/lang/System.currentTimeMillis                         19
+ 311536 method   java/nio/Buffer.limit                                      19
+ 311536 method   java/util/Locale.<init>                                    19
+ 311536 method   java/util/Locale.createSingleton                           19
+ 311536 method   java/util/concurrent/ConcurrentHashMap$Segment.put         19
+ 311536 method   java/util/concurrent/ConcurrentHashMap.put                 19
+ 311536 method   java/util/concurrent/locks/AbstractQueuedSynchronizer.compareAndSetState       19
+ 311536 method   java/util/concurrent/locks/AbstractQueuedSynchronizer.release       19
+ 311536 method   java/util/concurrent/locks/AbstractQueuedSynchronizer.setState       19
+ 311536 method   java/util/concurrent/locks/ReentrantLock$NonfairSync.lock       19
+ 311536 method   java/util/concurrent/locks/ReentrantLock$Sync.tryRelease       19
+ 311536 method   java/util/concurrent/locks/ReentrantLock.lock              19
+ 311536 method   java/util/concurrent/locks/ReentrantLock.unlock            19
+ 311536 method   java/io/ObjectStreamField.<init>                           20
+ 311536 method   java/nio/ByteBuffer.array                                  20
+ 311536 method   java/util/AbstractList.<init>                              20
+ 311536 method   java/util/BitSet.get                                       20
+ 311536 method   java/util/concurrent/ConcurrentHashMap.hash                20
+ 311536 method   java/util/concurrent/ConcurrentHashMap.segmentFor          20
+ 311536 method   sun/misc/VM.isBooted                                       20
+ 311536 syscall  memcntl                                                    20
+ 311536 method   java/io/File.getName                                       21
+ 311536 method   java/io/UnixFileSystem.getBooleanAttributes                21
+ 311536 method   java/io/UnixFileSystem.getBooleanAttributes0               21
+ 311536 method   java/lang/StringBuffer.append                              21
+ 311536 method   java/nio/charset/Charset.atBugLevel                        21
+ 311536 method   java/util/concurrent/ConcurrentHashMap$HashEntry.newArray       22
+ 311536 method   sun/misc/Unsafe.compareAndSwapInt                          22
+ 311536 method   java/util/HashMap.<init>                                   23
+ 311536 method   java/util/concurrent/ConcurrentHashMap$HashEntry.<init>       23
+ 311536 syscall  stat64                                                     23
+ 311536 method   java/nio/charset/CoderResult.isUnderflow                   24
+ 311536 method   java/util/AbstractMap.<init>                               24
+ 311536 method   java/util/Vector.elementAt                                 24
+ 311536 syscall  munmap                                                     24
+ 311536 method   java/lang/Class.getClassLoader                             25
+ 311536 syscall  lwp_sigmask                                                25
+ 311536 syscall  sigaction                                                  25
+ 311536 method   java/util/AbstractCollection.<init>                        26
+ 311536 method   java/util/ArrayList.add                                    26
+ 311536 method   java/util/ArrayList.ensureCapacity                         26
+ 311536 method   java/lang/ClassLoader.loadClass                            27
+ 311536 method   java/net/URL.<init>                                        27
+ 311536 method   java/lang/ClassLoader.check                                28
+ 311536 method   java/lang/ClassLoader.checkName                            28
+ 311536 method   java/lang/ref/Reference.<init>                             28
+ 311536 method   java/lang/String.endsWith                                  29
+ 311536 method   sun/misc/VM.allowArraySyntax                               29
+ 311536 method   java/io/ExpiringCache.entryFor                             30
+ 311536 method   java/io/UnixFileSystem.resolve                             30
+ 311536 method   java/util/HashMap$Entry.<init>                             30
+ 311536 method   java/util/LinkedHashMap.get                                30
+ 311536 syscall  priocntlsys                                                30
+ 311536 method   java/util/HashMap.put                                      33
+ 311536 method   java/util/Vector.<init>                                    33
+ 311536 method   java/io/UnixFileSystem.normalize                           34
+ 311536 method   java/lang/Class.getClassLoader0                            34
+ 311536 method   java/lang/String.toLowerCase                               34
+ 311536 method   sun/security/action/GetPropertyAction.run                  34
+ 311536 method   java/nio/CharBuffer.arrayOffset                            36
+ 311536 method   java/util/HashMap.getEntry                                 36
+ 311536 method   java/io/File.<init>                                        37
+ 311536 method   java/io/UnixFileSystem.prefixLength                        37
+ 311536 method   java/io/BufferedReader.readLine                            38
+ 311536 method   java/util/concurrent/locks/AbstractOwnableSynchronizer.setExclusiveOwnerThread       38
+ 311536 syscall  resolvepath                                                38
+ 311536 method   java/lang/CharacterDataLatin1.toLowerCase                  41
+ 311536 method   java/lang/CharacterDataLatin1.getProperties                43
+ 311536 method   java/security/AccessController.doPrivileged                43
+ 311536 method   java/util/Vector.size                                      43
+ 311536 method   java/nio/Buffer.position                                   44
+ 311536 method   java/nio/ByteBuffer.arrayOffset                            44
+ 311536 method   java/lang/System.getProperty                               48
+ 311536 method   java/util/Properties.getProperty                           50
+ 311536 method   java/util/BitSet.expandTo                                  51
+ 311536 method   java/util/BitSet.set                                       51
+ 311536 syscall  pollsys                                                    55
+ 311536 method   java/lang/System.checkKey                                  56
+ 311536 method   java/lang/Thread.currentThread                             57
+ 311536 method   java/util/Hashtable$Entry.<init>                           57
+ 311536 method   java/util/Hashtable.get                                    59
+ 311536 method   java/util/Hashtable.put                                    63
+ 311536 method   java/util/BitSet.checkInvariants                           71
+ 311536 method   java/util/BitSet.wordIndex                                 72
+ 311536 method   java/lang/StringBuilder.<init>                             73
+ 311536 method   java/lang/StringBuilder.toString                           73
+ 311536 method   java/lang/AbstractStringBuilder.expandCapacity             81
+ 311536 method   java/util/HashMap.hash                                     81
+ 311536 method   java/util/HashMap.indexFor                                 81
+ 311536 method   java/lang/AbstractStringBuilder.<init>                     82
+ 311536 method   java/lang/Character.toLowerCase                            82
+ 311536 method   java/lang/String.startsWith                                83
+ 311536 method   java/util/Arrays.copyOf                                    87
+ 311536 method   java/lang/String.lastIndexOf                               90
+ 311536 method   java/lang/String.substring                                 94
+ 311536 syscall  brk                                                       102
+ 311536 syscall  ioctl                                                     103
+ 311536 method   java/util/Arrays.copyOfRange                              107
+ 311536 syscall  mmap                                                      127
+ 311536 syscall  open                                                      129
+ 311536 syscall  close                                                     133
+ 311536 method   java/lang/String.getChars                                 156
+ 311536 method   java/lang/System.getSecurityManager                       174
+ 311536 method   java/lang/String.<init>                                   175
+ 311536 syscall  xstat                                                     188
+ 311536 method   java/lang/String.equals                                   202
+ 311536 method   java/lang/Math.min                                        208
+ 311536 method   java/lang/String.hashCode                                 213
+ 311536 syscall  lwp_exit                                                  291
+ 311536 method   java/lang/String.indexOf                                  302
+ 311536 method   java/lang/System.arraycopy                                360
+ 311536 method   java/lang/StringBuilder.append                            545
+ 311536 method   java/lang/AbstractStringBuilder.append                    561
+ 311536 syscall  llseek                                                    664
+ 311536 syscall  read                                                      668
+ 311536 method   java/lang/Object.<init>                                   823
+ 311536 method   java/lang/String.charAt                                  1987
+
+While tracing there were numerous system calls made, including 668 reads()'s,
+and 664 llseek()'s.  Many Java methods were also called, with 1987
+java/lang/String.charAt being the most of a particular kind.
+
+This script can provide an insight to how an application is interacting
+with the system, by providing both application method calls and
+system calls in the same output.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_syscolors_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_syscolors_example.txt
new file mode 100644
index 0000000..3b130ee8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_syscolors_example.txt
@@ -0,0 +1,1550 @@
+The following are examples of j_syscolors.d.
+
+This is a simple script to trace the method flow of Java methods within a
+program, and the system calls made.  It watches Java method entries and 
+returns, and indents child * method calls.  It renders the output in color 
+("colour") using terminal escape sequences (which you can tweak by modifying 
+the script).
+
+Here it traces the example program, Code/Java/Func_abc.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+The fields in the output are, in order;  CPU-id, Process ID/Thread ID, Elapsed
+time from previous line to current line, Type of call (func/syscall) and name
+of Java method or syscall.
+ 
+If the flow appears to jump, check the TID column - the JVM may have switched 
+to another thread.
+
+WARNING: Watch the first column carefully, it prints the CPU-id. If it changes,
+then it is very likely that the output has been shuffled.  Changes in TID will
+appear to shuffle output, as we change from one thread depth to the next. See 
+Docs/Notes/ALLjavaflow.txt for additional notes.
+
+# j_syscolors.d -c 'java -XX:+ExtendedDTraceProbes Func_abc'
+C    PID/TID   DELTA(us) TYPE     -- NAME
+[2;32m0 311542/1             2 syscall  -> munmap[0m
+[2;32m0 311542/1            33 syscall  <- munmap[0m
+[2;32m0 311542/1            52 syscall  -> mmap[0m
+[2;32m0 311542/1            16 syscall  <- mmap[0m
+[2;32m0 311542/1            34 syscall  -> setcontext[0m
+[2;32m0 311542/1             7 syscall  <- setcontext[0m
+[2;32m0 311542/1             7 syscall  -> getrlimit[0m
+[2;32m0 311542/1             7 syscall  <- getrlimit[0m
+[2;32m0 311542/1             7 syscall  -> getpid[0m
+[2;32m0 311542/1             6 syscall  <- getpid[0m
+[2;32m0 311542/1            58 syscall  -> setcontext[0m
+[2;32m0 311542/1             6 syscall  <- setcontext[0m
+[2;32m0 311542/1           975 syscall  -> sysi86[0m
+[2;32m0 311542/1             9 syscall  <- sysi86[0m
+[2;32m0 311542/1           134 syscall  -> brk[0m
+[2;32m0 311542/1             8 syscall  <- brk[0m
+[2;32m0 311542/1             7 syscall  -> brk[0m
+[2;32m0 311542/1            10 syscall  <- brk[0m
+[2;32m0 311542/1            47 syscall  -> sysconfig[0m
+[2;32m0 311542/1             6 syscall  <- sysconfig[0m
+[2;32m0 311542/1            36 syscall  -> resolvepath[0m
+[2;32m0 311542/1            31 syscall  <- resolvepath[0m
+[2;32m0 311542/1             9 syscall  -> resolvepath[0m
+[2;32m0 311542/1            18 syscall  <- resolvepath[0m
+[2;32m0 311542/1            85 syscall  -> access[0m
+[2;32m0 311542/1            20 syscall  <- access[0m
+[2;32m0 311542/1             8 syscall  -> access[0m
+[2;32m0 311542/1            24 syscall  <- access[0m
+[2;32m0 311542/1           115 syscall  -> open[0m
+[2;32m0 311542/1            27 syscall  <- open[0m
+[2;32m0 311542/1            14 syscall  -> fstat64[0m
+[2;32m0 311542/1             7 syscall  <- fstat64[0m
+[2;32m0 311542/1            11 syscall  -> fstat64[0m
+[2;32m0 311542/1             6 syscall  <- fstat64[0m
+[2;32m0 311542/1            22 syscall  -> ioctl[0m
+[2;32m0 311542/1             7 syscall  <- ioctl[0m
+[2;32m0 311542/1            11 syscall  -> read[0m
+[2;32m0 311542/1            43 syscall  <- read[0m
+[2;32m0 311542/1            39 syscall  -> read[0m
+[2;32m0 311542/1             7 syscall  <- read[0m
+[2;32m0 311542/1            10 syscall  -> llseek[0m
+[2;32m0 311542/1             7 syscall  <- llseek[0m
+[2;32m0 311542/1             8 syscall  -> close[0m
+[2;32m0 311542/1             9 syscall  <- close[0m
+[2;32m0 311542/1            12 syscall  -> sysconfig[0m
+[2;32m0 311542/1             6 syscall  <- sysconfig[0m
+[2;32m0 311542/1             7 syscall  -> sysconfig[0m
+[2;32m0 311542/1             6 syscall  <- sysconfig[0m
+[2;32m0 311542/1             6 syscall  -> sysconfig[0m
+[2;32m0 311542/1             6 syscall  <- sysconfig[0m
+[2;32m0 311542/1            11 syscall  -> xstat[0m
+[2;32m0 311542/1            27 syscall  <- xstat[0m
+[2;32m0 311542/1            19 syscall  -> exece[0m
+[2;32m0 311542/1           684 syscall  <- exece[0m
+[2;32m0 311542/1          3320 syscall  -> mmap[0m
+[2;32m0 311542/1            22 syscall  <- mmap[0m
+[2;32m0 311542/1            26 syscall  -> resolvepath[0m
+[2;32m0 311542/1            52 syscall  <- resolvepath[0m
+[2;32m0 311542/1             8 syscall  -> resolvepath[0m
+[2;32m0 311542/1            25 syscall  <- resolvepath[0m
+[2;32m0 311542/1             7 syscall  -> sysconfig[0m
+[2;32m0 311542/1             6 syscall  <- sysconfig[0m
+[2;32m0 311542/1             9 syscall  -> xstat[0m
+[2;32m0 311542/1            18 syscall  <- xstat[0m
+[2;32m0 311542/1             7 syscall  -> open[0m
+[2;32m0 311542/1            18 syscall  <- open[0m
+[2;32m0 311542/1             7 syscall  -> fxstat[0m
+[2;32m0 311542/1             7 syscall  <- fxstat[0m
+[2;32m0 311542/1             6 syscall  -> mmap[0m
+[2;32m0 311542/1            11 syscall  <- mmap[0m
+[2;32m0 311542/1             7 syscall  -> close[0m
+[2;32m0 311542/1            10 syscall  <- close[0m
+[2;32m0 311542/1            42 syscall  -> xstat[0m
+[2;32m0 311542/1            27 syscall  <- xstat[0m
+[2;32m0 311542/1             8 syscall  -> xstat[0m
+[2;32m0 311542/1            19 syscall  <- xstat[0m
+[2;32m0 311542/1             7 syscall  -> xstat[0m
+[2;32m0 311542/1            25 syscall  <- xstat[0m
+[... 31000 lines truncated ...]
+[2;35m0 311542/2            10 method     <- java/util/HashSet.add[0m
+[2;35m0 311542/2            10 method   <- java/lang/ClassLoader.checkPackageAccess[0m
+[2;35m0 311542/2            28 method   -> java/lang/reflect/Method.getModifiers[0m
+[2;35m0 311542/2            14 method   <- java/lang/reflect/Method.getModifiers[0m
+[2;35m0 311542/2            17 method   -> Func_abc.main[0m
+[2;35m0 311542/2            14 method     -> Func_abc.func_a[0m
+[2;35m0 311542/2            12 method       -> java/lang/ClassLoader.checkPackageAccess[0m
+[2;35m0 311542/2            10 method         -> java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method         <- java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            11 method         -> java/util/HashSet.add[0m
+[2;35m0 311542/2            10 method           -> java/util/HashMap.put[0m
+[2;35m0 311542/2             9 method             -> java/lang/Object.hashCode[0m
+[2;35m0 311542/2            10 method             <- java/lang/Object.hashCode[0m
+[2;35m0 311542/2            10 method             -> java/util/HashMap.hash[0m
+[2;35m0 311542/2            10 method             <- java/util/HashMap.hash[0m
+[2;35m0 311542/2            10 method             -> java/util/HashMap.indexFor[0m
+[2;35m0 311542/2            10 method             <- java/util/HashMap.indexFor[0m
+[2;35m0 311542/2            10 method           <- java/util/HashMap.put[0m
+[2;35m0 311542/2            10 method         <- java/util/HashSet.add[0m
+[2;35m0 311542/2            10 method       <- java/lang/ClassLoader.checkPackageAccess[0m
+[2;32m0 311542/2            20 syscall      -> brk[0m
+[2;32m0 311542/2            15 syscall      <- brk[0m
+[2;32m0 311542/2            13 syscall      -> brk[0m
+[2;32m0 311542/2            17 syscall      <- brk[0m
+[2;35m0 311542/2            47 method       -> java/lang/ClassLoader.loadClassInternal[0m
+[2;35m0 311542/2            12 method         -> java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method           -> sun/misc/Launcher$AppClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method             -> java/lang/String.lastIndexOf[0m
+[2;35m0 311542/2            10 method               -> java/lang/String.lastIndexOf[0m
+[2;35m0 311542/2            11 method               <- java/lang/String.lastIndexOf[0m
+[2;35m0 311542/2            10 method             <- java/lang/String.lastIndexOf[0m
+[2;35m0 311542/2            10 method             -> java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method             <- java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method             -> java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method               -> java/lang/ClassLoader.findLoadedClass[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.check[0m
+[2;35m0 311542/2             9 method                 <- java/lang/ClassLoader.check[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                   -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            11 method                     <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                   <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                   -> sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                   <- sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                   -> java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                   <- java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                 <- java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.findLoadedClass0[0m
+[2;35m0 311542/2            12 method                 <- java/lang/ClassLoader.findLoadedClass0[0m
+[2;35m0 311542/2            10 method               <- java/lang/ClassLoader.findLoadedClass[0m
+[2;35m0 311542/2            11 method               -> java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.findLoadedClass[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.check[0m
+[2;35m0 311542/2             9 method                   <- java/lang/ClassLoader.check[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                       -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                       <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     -> sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                     <- sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.charAt[0m
+[2;35m0 311542/2             9 method                     <- java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                   <- java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.findLoadedClass0[0m
+[2;35m0 311542/2            11 method                   <- java/lang/ClassLoader.findLoadedClass0[0m
+[2;35m0 311542/2            10 method                 <- java/lang/ClassLoader.findLoadedClass[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.findBootstrapClass0[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.check[0m
+[2;35m0 311542/2            10 method                   <- java/lang/ClassLoader.check[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                       -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                       <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     -> sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                     <- sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.charAt[0m
+[2;35m0 311542/2             9 method                     <- java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                   <- java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.findBootstrapClass[0m
+[2;35m0 311542/2            12 method                   <- java/lang/ClassLoader.findBootstrapClass[0m
+[2;35m0 311542/2            10 method                 <- java/lang/ClassLoader.findBootstrapClass0[0m
+[2;35m0 311542/2            11 method               <- java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method             <- java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method           <- sun/misc/Launcher$AppClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method         <- java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method       <- java/lang/ClassLoader.loadClassInternal[0m
+[2;35m0 311542/2            14 method       -> java/lang/ClassLoader.checkPackageAccess[0m
+[2;35m0 311542/2            10 method         -> java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method         <- java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method         -> java/util/HashSet.add[0m
+[2;35m0 311542/2            10 method           -> java/util/HashMap.put[0m
+[2;35m0 311542/2            10 method             -> java/lang/Object.hashCode[0m
+[2;35m0 311542/2             9 method             <- java/lang/Object.hashCode[0m
+[2;35m0 311542/2            10 method             -> java/util/HashMap.hash[0m
+[2;35m0 311542/2            10 method             <- java/util/HashMap.hash[0m
+[2;35m0 311542/2            10 method             -> java/util/HashMap.indexFor[0m
+[2;35m0 311542/2            10 method             <- java/util/HashMap.indexFor[0m
+[2;35m0 311542/2            11 method           <- java/util/HashMap.put[0m
+[2;35m0 311542/2            10 method         <- java/util/HashSet.add[0m
+[2;35m0 311542/2            10 method       <- java/lang/ClassLoader.checkPackageAccess[0m
+[2;35m0 311542/2            18 method       -> java/io/PrintStream.println[0m
+[2;35m0 311542/2            13 method         -> java/io/PrintStream.print[0m
+[2;35m0 311542/2            12 method           -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            12 method             -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            13 method             <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            15 method             -> java/io/Writer.write[0m
+[2;35m0 311542/2            16 method               -> java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            13 method                 -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            12 method                 -> java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            13 method                 -> java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method                   -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            11 method                   <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                 <- java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method               <- java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method             <- java/io/Writer.write[0m
+[2;35m0 311542/2            13 method             -> java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method               -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method               <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            13 method               -> java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            13 method                 -> sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            13 method                   -> sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            13 method                   -> sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            14 method                     -> java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            11 method                       -> java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                         -> java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                           -> java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                             -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                             <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method                             -> java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           <- java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                         <- java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            13 method                     -> java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                     <- java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            14 method                     -> java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            13 method                       -> sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            13 method                         -> java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                         <- java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            14 method                         -> java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                         <- java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            13 method                         -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            56 method                           -> java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            11 method                           <- java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            12 method                           -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            13 method                           -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            16 method                           -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            12 method                           -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            12 method                           -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            17 method                           -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            12 method                           -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            12 method                           -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                         <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                       <- sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            12 method                       -> java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                       <- java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            12 method                       -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                       <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                     <- java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            13 method                     -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                     <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            14 method                     -> java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                     <- java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method               <- java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method             <- java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            13 method             -> java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            12 method               -> sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            13 method                 -> sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            13 method                   -> sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            12 method                     -> java/nio/Buffer.flip[0m
+[2;35m0 311542/2            10 method                     <- java/nio/Buffer.flip[0m
+[2;35m0 311542/2            14 method                     -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                     <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            12 method                     -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                     <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            14 method                     -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                       -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method                       <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            13 method                       -> java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            15 method                         -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                         <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                       <- java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            12 method                       -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            12 method                         -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            15 method                           -> java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            12 method                             -> java/io/FileOutputStream.writeBytes[0m
+[2;32m0 311542/2            55 syscall                              -> write[0m
+[2;32m0 311542/2           160 syscall                              <- write[0m
+[2;35m0 311542/2            12 method                             <- java/io/FileOutputStream.writeBytes[0m
+[2;35m0 311542/2            12 method                           <- java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                         <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            13 method                       <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            11 method                     <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            13 method                     -> java/nio/Buffer.clear[0m
+[2;35m0 311542/2            11 method                     <- java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method               <- sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method             <- java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            15 method             -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method               -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method               <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method             <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method           <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method         <- java/io/PrintStream.print[0m
+[2;35m0 311542/2            12 method         -> java/io/PrintStream.newLine[0m
+[2;35m0 311542/2            10 method           -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method           <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            12 method           -> java/io/BufferedWriter.newLine[0m
+[2;35m0 311542/2            12 method             -> java/io/Writer.write[0m
+[2;35m0 311542/2            10 method               -> java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method                 -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            11 method                 -> java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            10 method                 -> java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method                   -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                   <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                 <- java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method               <- java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method             <- java/io/Writer.write[0m
+[2;35m0 311542/2            10 method           <- java/io/BufferedWriter.newLine[0m
+[2;35m0 311542/2            10 method           -> java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method             -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method             <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method             -> java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method               -> sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2             9 method                 -> sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                 -> sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                   -> java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            10 method                     -> java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                       -> java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                         -> java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                           -> java/lang/Object.<init>[0m
+[2;35m0 311542/2             9 method                           <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                           -> java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                           <- java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                           -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                         <- java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                   <- java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            10 method                   -> java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                   <- java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                   -> java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            10 method                     -> sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            10 method                       -> java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2             9 method                       <- java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                       -> java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2             9 method                       <- java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                       -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                         -> java/nio/CharBuffer.array[0m
+[2;35m0 311542/2             9 method                         <- java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            10 method                         -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                         <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                         -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2             9 method                         <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            11 method                         -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                         <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                         -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                         <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                       <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            10 method                     -> java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                     <- java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                     -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                     <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                   <- java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            10 method                   -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                   <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                   -> java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                   <- java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method               <- sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method             <- java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method           <- java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method           -> java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method             -> sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method               -> sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method                 -> sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                   -> java/nio/Buffer.flip[0m
+[2;35m0 311542/2             9 method                   <- java/nio/Buffer.flip[0m
+[2;35m0 311542/2            11 method                   -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2             9 method                   <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                   -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                   <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                   -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                     -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2             9 method                     <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method                     -> java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                       -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                       <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                     <- java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                     -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                       -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                         -> java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                           -> java/io/FileOutputStream.writeBytes[0m
+[2;32m0 311542/2            12 syscall                            -> write[0m
+[2;32m0 311542/2            63 syscall                            <- write[0m
+[2;35m0 311542/2             8 method                           <- java/io/FileOutputStream.writeBytes[0m
+[2;35m0 311542/2            11 method                         <- java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                       <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                     <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                   <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                   -> java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                   <- java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method               <- sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method             <- sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method           <- java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method           -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method             -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method             <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method           <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method         <- java/io/PrintStream.newLine[0m
+[2;35m0 311542/2            10 method       <- java/io/PrintStream.println[0m
+[2;35m0 311542/2            23 method       -> java/lang/ClassLoader.loadClassInternal[0m
+[2;35m0 311542/2            11 method         -> java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method           -> sun/misc/Launcher$AppClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method             -> java/lang/String.lastIndexOf[0m
+[2;35m0 311542/2            10 method               -> java/lang/String.lastIndexOf[0m
+[2;35m0 311542/2            10 method               <- java/lang/String.lastIndexOf[0m
+[2;35m0 311542/2            10 method             <- java/lang/String.lastIndexOf[0m
+[2;35m0 311542/2            10 method             -> java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method             <- java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method             -> java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method               -> java/lang/ClassLoader.findLoadedClass[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.check[0m
+[2;35m0 311542/2            10 method                 <- java/lang/ClassLoader.check[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                   -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                   <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                   -> sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2             9 method                   <- sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                   -> java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                   <- java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                 <- java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.findLoadedClass0[0m
+[2;35m0 311542/2            14 method                 <- java/lang/ClassLoader.findLoadedClass0[0m
+[2;35m0 311542/2            10 method               <- java/lang/ClassLoader.findLoadedClass[0m
+[2;35m0 311542/2            12 method               -> java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.findLoadedClass[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.check[0m
+[2;35m0 311542/2             9 method                   <- java/lang/ClassLoader.check[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.indexOf[0m
+[2;35m0 311542/2             9 method                       -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                       <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     -> sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                     <- sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.charAt[0m
+[2;35m0 311542/2             9 method                     <- java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                   <- java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.findLoadedClass0[0m
+[2;35m0 311542/2            12 method                   <- java/lang/ClassLoader.findLoadedClass0[0m
+[2;35m0 311542/2            10 method                 <- java/lang/ClassLoader.findLoadedClass[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.findBootstrapClass0[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.check[0m
+[2;35m0 311542/2             9 method                   <- java/lang/ClassLoader.check[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.indexOf[0m
+[2;35m0 311542/2             9 method                       -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                       <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     -> sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                     <- sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                     <- java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                   <- java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.findBootstrapClass[0m
+[2;35m0 311542/2            15 method                   <- java/lang/ClassLoader.findBootstrapClass[0m
+[2;35m0 311542/2            10 method                 <- java/lang/ClassLoader.findBootstrapClass0[0m
+[2;35m0 311542/2            11 method               <- java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method             <- java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method           <- sun/misc/Launcher$AppClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method         <- java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method       <- java/lang/ClassLoader.loadClassInternal[0m
+[2;35m0 311542/2            17 method       -> java/lang/ClassLoader.checkPackageAccess[0m
+[2;35m0 311542/2            10 method         -> java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method         <- java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            11 method         -> java/util/HashSet.add[0m
+[2;35m0 311542/2            10 method           -> java/util/HashMap.put[0m
+[2;35m0 311542/2            10 method             -> java/lang/Object.hashCode[0m
+[2;35m0 311542/2            10 method             <- java/lang/Object.hashCode[0m
+[2;35m0 311542/2            10 method             -> java/util/HashMap.hash[0m
+[2;35m0 311542/2            10 method             <- java/util/HashMap.hash[0m
+[2;35m0 311542/2            10 method             -> java/util/HashMap.indexFor[0m
+[2;35m0 311542/2            10 method             <- java/util/HashMap.indexFor[0m
+[2;35m0 311542/2            11 method           <- java/util/HashMap.put[0m
+[2;35m0 311542/2            10 method         <- java/util/HashSet.add[0m
+[2;35m0 311542/2            10 method       <- java/lang/ClassLoader.checkPackageAccess[0m
+[2;35m0 311542/2            20 method       -> java/lang/Thread.currentThread[0m
+[2;35m0 311542/2            11 method       <- java/lang/Thread.currentThread[0m
+[2;35m0 311542/2            13 method       -> java/lang/Thread.sleep[0m
+[2;32m0 311542/2            21 syscall        -> pollsys[0m
+[2;32m0 311542/10        59827 syscall  <- pollsys[0m
+[2;32m0 311542/10           31 syscall  -> pollsys[0m
+[2;32m0 311542/10        59842 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        60087 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59871 syscall  <- pollsys[0m
+[2;32m0 311542/10           26 syscall  -> pollsys[0m
+[2;32m0 311542/3       1008044 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/3            37 syscall  -> lwp_cond_wait[0m
+[2;32m0 311542/10        59402 syscall  <- pollsys[0m
+[2;32m0 311542/10           18 syscall  -> pollsys[0m
+[2;32m0 311542/10        59999 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59965 syscall  <- pollsys[0m
+[2;32m0 311542/10           25 syscall  -> pollsys[0m
+[2;32m0 311542/10        59979 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        51241 syscall  <- pollsys[0m
+[2;32m0 311542/10           31 syscall  -> pollsys[0m
+[2;32m0 311542/10        58679 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        50215 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59734 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59977 syscall  <- pollsys[0m
+[2;32m0 311542/10           26 syscall  -> pollsys[0m
+[2;32m0 311542/10        59970 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59966 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        60013 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59924 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+Function B
+[2;32m0 311542/2       1003741 syscall        <- pollsys[0m
+[2;35m0 311542/2            28 method       <- java/lang/Thread.sleep[0m
+[2;35m0 311542/2            45 method       -> Func_abc.func_b[0m
+[2;35m0 311542/2            36 method         -> java/io/PrintStream.println[0m
+[2;35m0 311542/2            11 method           -> java/io/PrintStream.print[0m
+[2;35m0 311542/2            10 method             -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method               -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method               <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            11 method               -> java/io/Writer.write[0m
+[2;35m0 311542/2            11 method                 -> java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method                   -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                   <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            12 method                   -> java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            10 method                   <- java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            11 method                   -> java/lang/String.getChars[0m
+[2;35m0 311542/2            11 method                     -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            11 method                     <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                   <- java/lang/String.getChars[0m
+[2;35m0 311542/2            11 method                 <- java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method               <- java/io/Writer.write[0m
+[2;35m0 311542/2            10 method               -> java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method                 -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            11 method                 -> java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method                   -> sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method                     -> sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            11 method                     -> sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                       -> java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            10 method                         -> java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                           -> java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                               -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                               <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method                               -> java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                               <- java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                               -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                               <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                         <- java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            11 method                       -> java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                       <- java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            11 method                       -> java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            11 method                         -> sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            10 method                           -> java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            11 method                           -> java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                           -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                             -> java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            10 method                             -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            11 method                             -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                             <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                             -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2             9 method                             <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            12 method                             -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                         <- sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            11 method                         -> java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                         <- java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                         -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                         <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                       <- java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            10 method                       -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                       <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                       -> java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                       <- java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method                 <- java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method               <- java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method               -> java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method                 -> sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method                   -> sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method                     -> sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                       -> java/nio/Buffer.flip[0m
+[2;35m0 311542/2             9 method                       <- java/nio/Buffer.flip[0m
+[2;35m0 311542/2            11 method                       -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2             9 method                       <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                       -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                       <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                       -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                         -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2             9 method                         <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            11 method                         -> java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                           -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                           <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                         <- java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                         -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                           -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                             -> java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                               -> java/io/FileOutputStream.writeBytes[0m
+[2;32m0 311542/2            17 syscall                                -> write[0m
+[2;32m0 311542/2           104 syscall                                <- write[0m
+[2;35m0 311542/2             9 method                               <- java/io/FileOutputStream.writeBytes[0m
+[2;35m0 311542/2            11 method                             <- java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                           <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                         <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                       <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                       -> java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                       <- java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method               <- java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            11 method               -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                 -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            11 method                 <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method               <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method             <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method           <- java/io/PrintStream.print[0m
+[2;35m0 311542/2            10 method           -> java/io/PrintStream.newLine[0m
+[2;35m0 311542/2            10 method             -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method             <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method             -> java/io/BufferedWriter.newLine[0m
+[2;35m0 311542/2            10 method               -> java/io/Writer.write[0m
+[2;35m0 311542/2            10 method                 -> java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method                   -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2             9 method                   <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                   -> java/io/BufferedWriter.min[0m
+[2;35m0 311542/2             9 method                   <- java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            10 method                   -> java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method                     -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                     <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                   <- java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method               <- java/io/Writer.write[0m
+[2;35m0 311542/2            10 method             <- java/io/BufferedWriter.newLine[0m
+[2;35m0 311542/2            10 method             -> java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method               -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2             9 method               <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method               -> java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method                 -> sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method                   -> sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                   -> sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                     -> java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            10 method                       -> java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                         -> java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                           -> java/nio/Buffer.<init>[0m
+[2;35m0 311542/2             9 method                             -> java/lang/Object.<init>[0m
+[2;35m0 311542/2             9 method                             <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           <- java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                         <- java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            10 method                     -> java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                     <- java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                     -> java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            10 method                       -> sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            10 method                         -> java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                         <- java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                         -> java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                         <- java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                         -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                           -> java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            10 method                           -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            11 method                           -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2             9 method                           <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                           -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            11 method                           -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           -> java/nio/Buffer.position[0m
+[2;35m0 311542/2             9 method                           <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                         <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                       <- sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            10 method                       -> java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                       <- java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                       -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                       <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                     <- java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            10 method                     -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                     <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                     -> java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                     <- java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method               <- java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method             <- java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method             -> java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method               -> sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method                 -> sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method                   -> sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                     -> java/nio/Buffer.flip[0m
+[2;35m0 311542/2            10 method                     <- java/nio/Buffer.flip[0m
+[2;35m0 311542/2            10 method                     -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2             9 method                     <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                     -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                     <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                     -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                       -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2             9 method                       <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method                       -> java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                         -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                         <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                       <- java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                       -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                         -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                           -> java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                             -> java/io/FileOutputStream.writeBytes[0m
+[2;32m0 311542/2            11 syscall                              -> write[0m
+[2;32m0 311542/2            64 syscall                              <- write[0m
+[2;35m0 311542/2             8 method                             <- java/io/FileOutputStream.writeBytes[0m
+[2;35m0 311542/2            11 method                           <- java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                         <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                       <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                     <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                     -> java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                     <- java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method               <- sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method             <- java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method             -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method               -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method               <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method             <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method           <- java/io/PrintStream.newLine[0m
+[2;35m0 311542/2            10 method         <- java/io/PrintStream.println[0m
+[2;35m0 311542/2            10 method         -> java/lang/Thread.currentThread[0m
+[2;35m0 311542/2            10 method         <- java/lang/Thread.currentThread[0m
+[2;35m0 311542/2            10 method         -> java/lang/Thread.sleep[0m
+[2;32m0 311542/2            14 syscall          -> pollsys[0m
+[2;32m0 311542/10        59985 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59968 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59981 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59960 syscall  <- pollsys[0m
+[2;32m0 311542/10           28 syscall  -> pollsys[0m
+[2;32m0 311542/10        59967 syscall  <- pollsys[0m
+[2;32m0 311542/10           22 syscall  -> pollsys[0m
+[2;32m0 311542/3       1050003 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/3            14 syscall  -> lwp_cond_wait[0m
+[2;32m0 311542/10        59985 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59969 syscall  <- pollsys[0m
+[2;32m0 311542/10           25 syscall  -> pollsys[0m
+[2;32m0 311542/10        59980 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        51269 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        58678 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        50207 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59714 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59967 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59965 syscall  <- pollsys[0m
+[2;32m0 311542/10           28 syscall  -> pollsys[0m
+[2;32m0 311542/10        59970 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59952 syscall  <- pollsys[0m
+[2;32m0 311542/10           31 syscall  -> pollsys[0m
+[2;32m0 311542/10        59969 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+Function C
+[2;32m0 311542/2       1006879 syscall          <- pollsys[0m
+[2;35m0 311542/2            29 method         <- java/lang/Thread.sleep[0m
+[2;35m0 311542/2            45 method         -> Func_abc.func_c[0m
+[2;35m0 311542/2            36 method           -> java/io/PrintStream.println[0m
+[2;35m0 311542/2            11 method             -> java/io/PrintStream.print[0m
+[2;35m0 311542/2            10 method               -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                 -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method                 <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            11 method                 -> java/io/Writer.write[0m
+[2;35m0 311542/2            11 method                   -> java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method                     -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                     <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            12 method                     -> java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            10 method                     <- java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            11 method                     -> java/lang/String.getChars[0m
+[2;35m0 311542/2            11 method                       -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            11 method                       <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                     <- java/lang/String.getChars[0m
+[2;35m0 311542/2            11 method                   <- java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method                 <- java/io/Writer.write[0m
+[2;35m0 311542/2            10 method                 -> java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method                   -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                   <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            11 method                   -> java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method                     -> sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method                       -> sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                       <- sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            11 method                       -> sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                         -> java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            11 method                           -> java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                             -> java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                               -> java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                                 -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                                 <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method                                 -> java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                                 <- java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                                 -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                                 <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                               <- java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                           <- java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                         <- java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            11 method                         -> java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                         <- java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            11 method                         -> java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            11 method                           -> sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            10 method                             -> java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            11 method                             -> java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                             <- java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                             -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                               -> java/nio/CharBuffer.array[0m
+[2;35m0 311542/2             9 method                               <- java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            10 method                               -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            11 method                               -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                               <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                               -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            12 method                               -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                               <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                               -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                               <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                           <- sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            11 method                           -> java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                           <- java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                           -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                           <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                         <- java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            10 method                         -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                         <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                         -> java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                         <- java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                       <- sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method                   <- java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method                 -> java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method                   -> sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method                     -> sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method                       -> sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                         -> java/nio/Buffer.flip[0m
+[2;35m0 311542/2             9 method                         <- java/nio/Buffer.flip[0m
+[2;35m0 311542/2            11 method                         -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2             9 method                         <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                         -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            11 method                         -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                           -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2             9 method                           <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            11 method                           -> java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                             -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                             <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                           <- java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            11 method                           -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                             -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                               -> java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                                 -> java/io/FileOutputStream.writeBytes[0m
+[2;32m0 311542/2            17 syscall                                  -> write[0m
+[2;32m0 311542/2           143 syscall                                  <- write[0m
+[2;35m0 311542/2             9 method                                 <- java/io/FileOutputStream.writeBytes[0m
+[2;35m0 311542/2            11 method                               <- java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                             <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                           <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                         <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                         -> java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                         <- java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                       <- sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method                 <- java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            11 method                 -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                   -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                   <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                 <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method               <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method             <- java/io/PrintStream.print[0m
+[2;35m0 311542/2            10 method             -> java/io/PrintStream.newLine[0m
+[2;35m0 311542/2            10 method               -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method               <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method               -> java/io/BufferedWriter.newLine[0m
+[2;35m0 311542/2            10 method                 -> java/io/Writer.write[0m
+[2;35m0 311542/2            10 method                   -> java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method                     -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2             9 method                     <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                     -> java/io/BufferedWriter.min[0m
+[2;35m0 311542/2             9 method                     <- java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method                       -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                       <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                     <- java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method                   <- java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method                 <- java/io/Writer.write[0m
+[2;35m0 311542/2            10 method               <- java/io/BufferedWriter.newLine[0m
+[2;35m0 311542/2            10 method               -> java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method                 -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                 -> java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method                   -> sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method                     -> sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                     -> sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                       -> java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            10 method                         -> java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                           -> java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.<init>[0m
+[2;35m0 311542/2             9 method                               -> java/lang/Object.<init>[0m
+[2;35m0 311542/2             9 method                               <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                               -> java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                               <- java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                               -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                               <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                         <- java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            10 method                       -> java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                       <- java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                       -> java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            10 method                         -> sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            10 method                           -> java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                           -> java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                           -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                             -> java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            10 method                             -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            11 method                             -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2             9 method                             <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                             -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            11 method                             -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.position[0m
+[2;35m0 311542/2             9 method                             <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                         <- sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            10 method                         -> java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                         <- java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                         -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                         <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                       <- java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            10 method                       -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                       <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                       -> java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                       <- java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method                 <- java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method               <- java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method               -> java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method                 -> sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method                   -> sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method                     -> sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                       -> java/nio/Buffer.flip[0m
+[2;35m0 311542/2            10 method                       <- java/nio/Buffer.flip[0m
+[2;35m0 311542/2            10 method                       -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2             9 method                       <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                       -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2             9 method                       <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                       -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                         -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2             9 method                         <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method                         -> java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                           -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                           <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                         <- java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                         -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                           -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                             -> java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                               -> java/io/FileOutputStream.writeBytes[0m
+[2;32m0 311542/2            11 syscall                                -> write[0m
+[2;32m0 311542/2            63 syscall                                <- write[0m
+[2;35m0 311542/2             8 method                               <- java/io/FileOutputStream.writeBytes[0m
+[2;35m0 311542/2            11 method                             <- java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                           <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                         <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                       <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                       -> java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                       <- java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method               <- java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method               -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                 -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method               <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method             <- java/io/PrintStream.newLine[0m
+[2;35m0 311542/2            10 method           <- java/io/PrintStream.println[0m
+[2;35m0 311542/2            10 method           -> java/lang/Thread.currentThread[0m
+[2;35m0 311542/2            10 method           <- java/lang/Thread.currentThread[0m
+[2;35m0 311542/2            11 method           -> java/lang/Thread.sleep[0m
+[2;32m0 311542/2            14 syscall            -> pollsys[0m
+[2;32m0 311542/10        59975 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59963 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59976 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59961 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59968 syscall  <- pollsys[0m
+[2;32m0 311542/10           22 syscall  -> pollsys[0m
+[2;32m0 311542/3       1009924 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/3            17 syscall  -> lwp_cond_wait[0m
+[2;32m0 311542/10        50021 syscall  <- pollsys[0m
+[2;32m0 311542/10           31 syscall  -> pollsys[0m
+[2;32m0 311542/10        59941 syscall  <- pollsys[0m
+[2;32m0 311542/10           27 syscall  -> pollsys[0m
+[2;32m0 311542/10        60034 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        61298 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        58590 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        50205 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59723 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        60208 syscall  <- pollsys[0m
+[2;32m0 311542/10           28 syscall  -> pollsys[0m
+[2;32m0 311542/10        59733 syscall  <- pollsys[0m
+[2;32m0 311542/10           28 syscall  -> pollsys[0m
+[2;32m0 311542/10        59986 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59938 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59968 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/2       1007088 syscall            <- pollsys[0m
+[2;35m0 311542/2            30 method           <- java/lang/Thread.sleep[0m
+[2;35m0 311542/2            28 method         <- Func_abc.func_c[0m
+[2;35m0 311542/2            10 method       <- Func_abc.func_b[0m
+[2;35m0 311542/2            10 method     <- Func_abc.func_a[0m
+[2;35m0 311542/2            10 method   <- Func_abc.main[0m
+[2;35m0 311542/2            27 method   -> java/lang/Thread.exit[0m
+[2;35m0 311542/2            38 method     -> java/lang/ThreadGroup.remove[0m
+[2;35m0 311542/2            19 method       -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            11 method       <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            14 method       -> java/lang/Object.notifyAll[0m
+[2;35m0 311542/2            16 method       <- java/lang/Object.notifyAll[0m
+[2;35m0 311542/2            11 method     <- java/lang/ThreadGroup.remove[0m
+[2;35m0 311542/2            16 method   <- java/lang/Thread.exit[0m
+[2;32m0 311542/2            22 syscall  -> mprotect[0m
+[2;32m0 311542/2            19 syscall  <- mprotect[0m
+[2;32m0 311542/2            19 syscall  -> lwp_sigmask[0m
+[2;32m0 311542/2             7 syscall  <- lwp_sigmask[0m
+[2;32m0 311542/2            25 syscall  -> lwp_self[0m
+[2;32m0 311542/2             6 syscall  <- lwp_self[0m
+[2;32m0 311542/2             7 syscall  -> lwp_sigmask[0m
+[2;32m0 311542/2             5 syscall  <- lwp_sigmask[0m
+[2;32m0 311542/2             6 syscall  -> lwp_sigmask[0m
+[2;32m0 311542/2             6 syscall  <- lwp_sigmask[0m
+[2;35m0 311542/2           124 method       -> java/lang/Thread.<init>[0m
+[2;35m0 311542/2            12 method         -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method         <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method         -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method         <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method         -> java/lang/Thread.init[0m
+[2;35m0 311542/2            10 method           -> java/lang/Thread.currentThread[0m
+[2;35m0 311542/2            10 method           <- java/lang/Thread.currentThread[0m
+[2;35m0 311542/2            11 method           -> java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method           <- java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            11 method           -> java/lang/ThreadGroup.checkAccess[0m
+[2;35m0 311542/2            10 method             -> java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method             <- java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method           <- java/lang/ThreadGroup.checkAccess[0m
+[2;35m0 311542/2            10 method           -> java/lang/ThreadGroup.addUnstarted[0m
+[2;35m0 311542/2            10 method           <- java/lang/ThreadGroup.addUnstarted[0m
+[2;35m0 311542/2            11 method           -> java/lang/String.toCharArray[0m
+[2;35m0 311542/2            11 method             -> java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method               -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method               <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method             <- java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method           <- java/lang/String.toCharArray[0m
+[2;35m0 311542/2            10 method           -> java/lang/Thread.getContextClassLoader[0m
+[2;35m0 311542/2            10 method           <- java/lang/Thread.getContextClassLoader[0m
+[2;35m0 311542/2            11 method           -> java/security/AccessController.getContext[0m
+[2;35m0 311542/2            10 method             -> java/security/AccessController.getStackAccessControlContext[0m
+[2;35m0 311542/2            17 method             <- java/security/AccessController.getStackAccessControlContext[0m
+[2;35m0 311542/2            11 method             -> java/security/AccessControlContext.optimize[0m
+[2;35m0 311542/2            10 method               -> java/security/AccessController.getInheritedAccessControlContext[0m
+[2;35m0 311542/2            11 method               <- java/security/AccessController.getInheritedAccessControlContext[0m
+[2;35m0 311542/2            11 method             <- java/security/AccessControlContext.optimize[0m
+[2;35m0 311542/2            10 method           <- java/security/AccessController.getContext[0m
+[2;35m0 311542/2            10 method           -> java/lang/Thread.setPriority[0m
+[2;35m0 311542/2            10 method             -> java/lang/Thread.checkAccess[0m
+[2;35m0 311542/2             9 method               -> java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2             9 method               <- java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method             <- java/lang/Thread.checkAccess[0m
+[2;35m0 311542/2            11 method             -> java/lang/Thread.setPriority0[0m
+[2;32m0 311542/2            15 syscall              -> priocntlsys[0m
+[2;32m0 311542/2             9 syscall              <- priocntlsys[0m
+[2;32m0 311542/2             7 syscall              -> priocntlsys[0m
+[2;32m0 311542/2             8 syscall              <- priocntlsys[0m
+[2;35m0 311542/2             7 method             <- java/lang/Thread.setPriority0[0m
+[2;35m0 311542/2            10 method           <- java/lang/Thread.setPriority[0m
+[2;35m0 311542/2            11 method           -> java/lang/Thread.nextThreadID[0m
+[2;35m0 311542/2            11 method           <- java/lang/Thread.nextThreadID[0m
+[2;35m0 311542/2            10 method   <- java/lang/Thread.init[0m
+[2;35m0 311542/2            10 method   <- java/lang/Thread.<init>[0m
+[2;35m0 311542/2            12 method   -> java/lang/ThreadGroup.add[0m
+[2;35m0 311542/2            11 method   <- java/lang/ThreadGroup.add[0m
+[2;32m0 311542/2            10 syscall  -> mprotect[0m
+[2;32m0 311542/2             7 syscall  <- mprotect[0m
+[2;35m0 311542/2            12 method   -> java/lang/Shutdown.shutdown[0m
+[2;35m0 311542/2            15 method     -> java/lang/Shutdown.sequence[0m
+[2;35m0 311542/2            12 method       -> java/lang/Shutdown.runHooks[0m
+[2;35m0 311542/2            14 method         -> java/util/AbstractList.iterator[0m
+[2;32m0 311542/2            30 syscall          -> llseek[0m
+[2;32m0 311542/2             9 syscall          <- llseek[0m
+[2;32m0 311542/2             8 syscall          -> read[0m
+[2;32m0 311542/2          1709 syscall          <- read[0m
+[2;32m0 311542/2            27 syscall          -> llseek[0m
+[2;32m0 311542/2            14 syscall          <- llseek[0m
+[2;32m0 311542/2             7 syscall          -> read[0m
+[2;32m0 311542/2            23 syscall          <- read[0m
+[2;35m0 311542/2           280 method           -> java/util/AbstractList$Itr.<init>[0m
+[2;35m0 311542/2            28 method             -> java/util/AbstractList$Itr.<init>[0m
+[2;35m0 311542/2            17 method               -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            12 method               <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            25 method             <- java/util/AbstractList$Itr.<init>[0m
+[2;35m0 311542/2            11 method           <- java/util/AbstractList$Itr.<init>[0m
+[2;35m0 311542/2            10 method         <- java/util/AbstractList.iterator[0m
+[2;35m0 311542/2            17 method         -> java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            16 method         <- java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            13 method         -> java/util/AbstractList$Itr.next[0m
+[2;35m0 311542/2            12 method           -> java/util/AbstractList$Itr.checkForComodification[0m
+[2;35m0 311542/2            10 method           <- java/util/AbstractList$Itr.checkForComodification[0m
+[2;35m0 311542/2            13 method           -> java/util/ArrayList.get[0m
+[2;35m0 311542/2            11 method             -> java/util/ArrayList.RangeCheck[0m
+[2;35m0 311542/2            10 method             <- java/util/ArrayList.RangeCheck[0m
+[2;35m0 311542/2            10 method           <- java/util/ArrayList.get[0m
+[2;35m0 311542/2            10 method         <- java/util/AbstractList$Itr.next[0m
+[2;35m0 311542/2            15 method         -> java/io/Console$1$1.run[0m
+[2;35m0 311542/2            14 method           -> java/io/Console.access$600[0m
+[2;35m0 311542/2            12 method           <- java/io/Console.access$600[0m
+[2;35m0 311542/2            10 method         <- java/io/Console$1$1.run[0m
+[2;35m0 311542/2            10 method         -> java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            10 method         <- java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            10 method         -> java/util/AbstractList$Itr.next[0m
+[2;35m0 311542/2            10 method           -> java/util/AbstractList$Itr.checkForComodification[0m
+[2;35m0 311542/2            10 method           <- java/util/AbstractList$Itr.checkForComodification[0m
+[2;35m0 311542/2            11 method           -> java/util/ArrayList.get[0m
+[2;35m0 311542/2            10 method             -> java/util/ArrayList.RangeCheck[0m
+[2;35m0 311542/2            10 method             <- java/util/ArrayList.RangeCheck[0m
+[2;35m0 311542/2            10 method           <- java/util/ArrayList.get[0m
+[2;35m0 311542/2            10 method         <- java/util/AbstractList$Itr.next[0m
+[2;35m0 311542/2            11 method         -> java/lang/ApplicationShutdownHooks.run[0m
+[2;35m0 311542/2            16 method           -> java/util/IdentityHashMap.keySet[0m
+[2;32m0 311542/2            27 syscall            -> llseek[0m
+[2;32m0 311542/2             7 syscall            <- llseek[0m
+[2;32m0 311542/2             8 syscall            -> read[0m
+[2;32m0 311542/2            18 syscall            <- read[0m
+[2;32m0 311542/2             7 syscall            -> llseek[0m
+[2;32m0 311542/2             6 syscall            <- llseek[0m
+[2;32m0 311542/2             6 syscall            -> read[0m
+[2;32m0 311542/2            17 syscall            <- read[0m
+[2;35m0 311542/2           139 method             -> java/util/IdentityHashMap$KeySet.<init>[0m
+[2;35m0 311542/2            14 method               -> java/util/IdentityHashMap$KeySet.<init>[0m
+[2;35m0 311542/2            14 method                 -> java/util/AbstractSet.<init>[0m
+[2;35m0 311542/2            10 method                   -> java/util/AbstractCollection.<init>[0m
+[2;35m0 311542/2            10 method                     -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method                   <- java/util/AbstractCollection.<init>[0m
+[2;35m0 311542/2            10 method                 <- java/util/AbstractSet.<init>[0m
+[2;35m0 311542/2            10 method               <- java/util/IdentityHashMap$KeySet.<init>[0m
+[2;35m0 311542/2            10 method             <- java/util/IdentityHashMap$KeySet.<init>[0m
+[2;35m0 311542/2            10 method           <- java/util/IdentityHashMap.keySet[0m
+[2;35m0 311542/2            14 method           -> java/util/IdentityHashMap$KeySet.iterator[0m
+[2;32m0 311542/2            17 syscall            -> llseek[0m
+[2;32m0 311542/2             7 syscall            <- llseek[0m
+[2;32m0 311542/2             7 syscall            -> read[0m
+[2;32m0 311542/2            15 syscall            <- read[0m
+[2;32m0 311542/2             7 syscall            -> llseek[0m
+[2;32m0 311542/2             6 syscall            <- llseek[0m
+[2;32m0 311542/2             6 syscall            -> read[0m
+[2;32m0 311542/2            12 syscall            <- read[0m
+[2;32m0 311542/2            30 syscall            -> llseek[0m
+[2;32m0 311542/2             6 syscall            <- llseek[0m
+[2;32m0 311542/2             7 syscall            -> read[0m
+[2;32m0 311542/2            14 syscall            <- read[0m
+[2;32m0 311542/2             7 syscall            -> llseek[0m
+[2;32m0 311542/2             6 syscall            <- llseek[0m
+[2;32m0 311542/2             6 syscall            -> read[0m
+[2;32m0 311542/2            17 syscall            <- read[0m
+[2;35m0 311542/2           125 method             -> java/util/IdentityHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            14 method               -> java/util/IdentityHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            14 method                 -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>[0m
+[2;35m0 311542/2            13 method                   -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>[0m
+[2;35m0 311542/2            57 method                     -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method                     <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            15 method                     -> java/util/IdentityHashMap.access$000[0m
+[2;35m0 311542/2            11 method                     <- java/util/IdentityHashMap.access$000[0m
+[2;35m0 311542/2            15 method                     -> java/util/IdentityHashMap.access$200[0m
+[2;35m0 311542/2            11 method                     <- java/util/IdentityHashMap.access$200[0m
+[2;35m0 311542/2            13 method                   <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>[0m
+[2;35m0 311542/2            10 method                 <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>[0m
+[2;35m0 311542/2            10 method               <- java/util/IdentityHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            10 method             <- java/util/IdentityHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            10 method           <- java/util/IdentityHashMap$KeySet.iterator[0m
+[2;35m0 311542/2            14 method           -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext[0m
+[2;35m0 311542/2            11 method           <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext[0m
+[2;35m0 311542/2            11 method           -> java/util/IdentityHashMap$KeySet.iterator[0m
+[2;35m0 311542/2            10 method             -> java/util/IdentityHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            10 method               -> java/util/IdentityHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            10 method                 -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>[0m
+[2;35m0 311542/2            10 method                   -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>[0m
+[2;35m0 311542/2            10 method                     -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                   <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>[0m
+[2;35m0 311542/2            10 method                 <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>[0m
+[2;35m0 311542/2            10 method               <- java/util/IdentityHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            10 method             <- java/util/IdentityHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            10 method           <- java/util/IdentityHashMap$KeySet.iterator[0m
+[2;35m0 311542/2            10 method           -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext[0m
+[2;35m0 311542/2            10 method           <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext[0m
+[2;35m0 311542/2            11 method         <- java/lang/ApplicationShutdownHooks.run[0m
+[2;35m0 311542/2            10 method         -> java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            10 method         <- java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            10 method         -> java/util/AbstractList$Itr.next[0m
+[2;35m0 311542/2            10 method           -> java/util/AbstractList$Itr.checkForComodification[0m
+[2;35m0 311542/2            10 method           <- java/util/AbstractList$Itr.checkForComodification[0m
+[2;35m0 311542/2            11 method           -> java/util/ArrayList.get[0m
+[2;35m0 311542/2            10 method             -> java/util/ArrayList.RangeCheck[0m
+[2;35m0 311542/2            10 method             <- java/util/ArrayList.RangeCheck[0m
+[2;35m0 311542/2            10 method           <- java/util/ArrayList.get[0m
+[2;35m0 311542/2            10 method         <- java/util/AbstractList$Itr.next[0m
+[2;35m0 311542/2            11 method         -> java/io/File$1.run[0m
+[2;32m0 311542/2            17 syscall          -> llseek[0m
+[2;32m0 311542/2             8 syscall          <- llseek[0m
+[2;32m0 311542/2             8 syscall          -> read[0m
+[2;32m0 311542/2            17 syscall          <- read[0m
+[2;32m0 311542/2             7 syscall          -> llseek[0m
+[2;32m0 311542/2             6 syscall          <- llseek[0m
+[2;32m0 311542/2             6 syscall          -> read[0m
+[2;32m0 311542/2            12 syscall          <- read[0m
+[2;35m0 311542/2            62 method           -> java/io/DeleteOnExitHook.<clinit>[0m
+[2;32m0 311542/2            19 syscall            -> llseek[0m
+[2;32m0 311542/2             6 syscall            <- llseek[0m
+[2;32m0 311542/2             7 syscall            -> read[0m
+[2;32m0 311542/2            14 syscall            <- read[0m
+[2;32m0 311542/2             7 syscall            -> llseek[0m
+[2;32m0 311542/2             6 syscall            <- llseek[0m
+[2;32m0 311542/2             6 syscall            -> read[0m
+[2;32m0 311542/2            12 syscall            <- read[0m
+[2;35m0 311542/2           130 method             -> java/util/LinkedHashSet.<init>[0m
+[2;35m0 311542/2            15 method               -> java/util/HashSet.<init>[0m
+[2;35m0 311542/2            10 method                 -> java/util/AbstractSet.<init>[0m
+[2;35m0 311542/2            10 method                   -> java/util/AbstractCollection.<init>[0m
+[2;35m0 311542/2            10 method                     -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method                   <- java/util/AbstractCollection.<init>[0m
+[2;35m0 311542/2            10 method                 <- java/util/AbstractSet.<init>[0m
+[2;35m0 311542/2            15 method                 -> java/util/LinkedHashMap.<init>[0m
+[2;35m0 311542/2            13 method                   -> java/util/HashMap.<init>[0m
+[2;35m0 311542/2            10 method                     -> java/util/AbstractMap.<init>[0m
+[2;35m0 311542/2            10 method                       -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/util/AbstractMap.<init>[0m
+[2;35m0 311542/2            12 method                     -> java/lang/Float.isNaN[0m
+[2;35m0 311542/2            10 method                     <- java/lang/Float.isNaN[0m
+[2;35m0 311542/2            15 method                     -> java/util/LinkedHashMap.init[0m
+[2;35m0 311542/2            10 method                       -> java/util/LinkedHashMap$Entry.<init>[0m
+[2;35m0 311542/2            10 method                         -> java/util/HashMap$Entry.<init>[0m
+[2;35m0 311542/2            10 method                           -> java/lang/Object.<init>[0m
+[2;35m0 311542/2             9 method                           <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                         <- java/util/HashMap$Entry.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/util/LinkedHashMap$Entry.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/util/LinkedHashMap.init[0m
+[2;35m0 311542/2            10 method                   <- java/util/HashMap.<init>[0m
+[2;35m0 311542/2            10 method                 <- java/util/LinkedHashMap.<init>[0m
+[2;35m0 311542/2            10 method               <- java/util/HashSet.<init>[0m
+[2;35m0 311542/2            10 method             <- java/util/LinkedHashSet.<init>[0m
+[2;35m0 311542/2            12 method           <- java/io/DeleteOnExitHook.<clinit>[0m
+[2;35m0 311542/2            13 method           -> java/io/DeleteOnExitHook.hook[0m
+[2;35m0 311542/2            13 method             -> java/io/DeleteOnExitHook.<init>[0m
+[2;35m0 311542/2            12 method               -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method               <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method             <- java/io/DeleteOnExitHook.<init>[0m
+[2;35m0 311542/2            10 method           <- java/io/DeleteOnExitHook.hook[0m
+[2;35m0 311542/2            13 method           -> java/io/DeleteOnExitHook.run[0m
+[2;35m0 311542/2            15 method             -> java/util/ArrayList.<init>[0m
+[2;35m0 311542/2            10 method               -> java/util/AbstractList.<init>[0m
+[2;35m0 311542/2            10 method                 -> java/util/AbstractCollection.<init>[0m
+[2;35m0 311542/2            10 method                   -> java/lang/Object.<init>[0m
+[2;35m0 311542/2             9 method                   <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                 <- java/util/AbstractCollection.<init>[0m
+[2;35m0 311542/2            10 method               <- java/util/AbstractList.<init>[0m
+[2;35m0 311542/2            15 method               -> java/util/AbstractCollection.toArray[0m
+[2;35m0 311542/2            13 method                 -> java/util/HashSet.size[0m
+[2;35m0 311542/2            12 method                 <- java/util/HashSet.size[0m
+[2;35m0 311542/2            13 method                 -> java/util/HashSet.iterator[0m
+[2;35m0 311542/2            12 method                   -> java/util/HashMap.keySet[0m
+[2;32m0 311542/2            19 syscall                    -> llseek[0m
+[2;32m0 311542/2             7 syscall                    <- llseek[0m
+[2;32m0 311542/2             8 syscall                    -> read[0m
+[2;32m0 311542/2            17 syscall                    <- read[0m
+[2;32m0 311542/2             7 syscall                    -> llseek[0m
+[2;32m0 311542/2             6 syscall                    <- llseek[0m
+[2;32m0 311542/2             6 syscall                    -> read[0m
+[2;32m0 311542/2            12 syscall                    <- read[0m
+[2;35m0 311542/2            68 method                     -> java/util/HashMap$KeySet.<init>[0m
+[2;35m0 311542/2            14 method                       -> java/util/HashMap$KeySet.<init>[0m
+[2;35m0 311542/2            14 method                         -> java/util/AbstractSet.<init>[0m
+[2;35m0 311542/2            10 method                           -> java/util/AbstractCollection.<init>[0m
+[2;35m0 311542/2            10 method                             -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                             <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method                           <- java/util/AbstractCollection.<init>[0m
+[2;35m0 311542/2            10 method                         <- java/util/AbstractSet.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/util/HashMap$KeySet.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/util/HashMap$KeySet.<init>[0m
+[2;35m0 311542/2            10 method                   <- java/util/HashMap.keySet[0m
+[2;35m0 311542/2            13 method                   -> java/util/HashMap$KeySet.iterator[0m
+[2;35m0 311542/2            14 method                     -> java/util/LinkedHashMap.newKeyIterator[0m
+[2;32m0 311542/2            16 syscall                      -> llseek[0m
+[2;32m0 311542/2             6 syscall                      <- llseek[0m
+[2;32m0 311542/2             7 syscall                      -> read[0m
+[2;32m0 311542/2            14 syscall                      <- read[0m
+[2;32m0 311542/2             7 syscall                      -> llseek[0m
+[2;32m0 311542/2             6 syscall                      <- llseek[0m
+[2;32m0 311542/2             6 syscall                      -> read[0m
+[2;32m0 311542/2            16 syscall                      <- read[0m
+[2;32m0 311542/2            81 syscall                      -> llseek[0m
+[2;32m0 311542/2             7 syscall                      <- llseek[0m
+[2;32m0 311542/2             7 syscall                      -> read[0m
+[2;32m0 311542/2            14 syscall                      <- read[0m
+[2;32m0 311542/2             7 syscall                      -> llseek[0m
+[2;32m0 311542/2             6 syscall                      <- llseek[0m
+[2;32m0 311542/2             6 syscall                      -> read[0m
+[2;32m0 311542/2            12 syscall                      <- read[0m
+[2;35m0 311542/2            77 method                       -> java/util/LinkedHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            14 method                         -> java/util/LinkedHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            14 method                           -> java/util/LinkedHashMap$LinkedHashIterator.<init>[0m
+[2;35m0 311542/2            12 method                             -> java/util/LinkedHashMap$LinkedHashIterator.<init>[0m
+[2;35m0 311542/2            13 method                               -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                               <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            19 method                             <- java/util/LinkedHashMap$LinkedHashIterator.<init>[0m
+[2;35m0 311542/2            11 method                           <- java/util/LinkedHashMap$LinkedHashIterator.<init>[0m
+[2;35m0 311542/2            10 method                         <- java/util/LinkedHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/util/LinkedHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/util/LinkedHashMap.newKeyIterator[0m
+[2;35m0 311542/2            10 method                   <- java/util/HashMap$KeySet.iterator[0m
+[2;35m0 311542/2            10 method                 <- java/util/HashSet.iterator[0m
+[2;35m0 311542/2            14 method                 -> java/util/LinkedHashMap$LinkedHashIterator.hasNext[0m
+[2;35m0 311542/2            11 method                 <- java/util/LinkedHashMap$LinkedHashIterator.hasNext[0m
+[2;35m0 311542/2            11 method               <- java/util/AbstractCollection.toArray[0m
+[2;35m0 311542/2            11 method               -> java/lang/Object.getClass[0m
+[2;35m0 311542/2            12 method               <- java/lang/Object.getClass[0m
+[2;35m0 311542/2            11 method             <- java/util/ArrayList.<init>[0m
+[2;35m0 311542/2            14 method             -> java/util/Collections.reverse[0m
+[2;35m0 311542/2            15 method             <- java/util/Collections.reverse[0m
+[2;35m0 311542/2            13 method             -> java/util/AbstractList.iterator[0m
+[2;35m0 311542/2            11 method               -> java/util/AbstractList$Itr.<init>[0m
+[2;35m0 311542/2            10 method                 -> java/util/AbstractList$Itr.<init>[0m
+[2;35m0 311542/2            10 method                   -> java/lang/Object.<init>[0m
+[2;35m0 311542/2             9 method                   <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                 <- java/util/AbstractList$Itr.<init>[0m
+[2;35m0 311542/2            10 method               <- java/util/AbstractList$Itr.<init>[0m
+[2;35m0 311542/2            10 method             <- java/util/AbstractList.iterator[0m
+[2;35m0 311542/2            13 method             -> java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            10 method             <- java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            10 method           <- java/io/DeleteOnExitHook.run[0m
+[2;35m0 311542/2            10 method         <- java/io/File$1.run[0m
+[2;35m0 311542/2            10 method         -> java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            10 method         <- java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            10 method       <- java/lang/Shutdown.runHooks[0m
+[2;35m0 311542/2            12 method     <- java/lang/Shutdown.sequence[0m
+[2;35m0 311542/2            10 method   <- java/lang/Shutdown.shutdown[0m
+[2;32m0 311542/2            16 syscall  -> lwp_cond_wait[0m
+[2;32m0 311542/10        59973 syscall  <- pollsys[0m
+[2;32m0 311542/10           31 syscall  -> lwp_cond_signal[0m
+[2;32m0 311542/10           15 syscall  <- lwp_cond_signal[0m
+[2;32m0 311542/10           12 syscall  -> lwp_sigmask[0m
+[2;32m0 311542/10            7 syscall  <- lwp_sigmask[0m
+[2;32m0 311542/10           29 syscall  -> lwp_exit[0m
+[2;32m0 311542/2         13322 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/2            22 syscall  -> lwp_park[0m
+[2;32m0 311542/2             8 syscall  <- lwp_park[0m
+[2;32m0 311542/2            17 syscall  -> mprotect[0m
+[2;32m0 311542/2            16 syscall  <- mprotect[0m
+[2;32m0 311542/2            12 syscall  -> lwp_cond_signal[0m
+[2;32m0 311542/2             7 syscall  <- lwp_cond_signal[0m
+[2;32m0 311542/2             8 syscall  -> lwp_cond_wait[0m
+[2;32m0 311542/3        750221 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/3            36 syscall  -> mprotect[0m
+[2;32m0 311542/3             9 syscall  <- mprotect[0m
+[2;32m0 311542/3             7 syscall  -> mprotect[0m
+[2;32m0 311542/3             8 syscall  <- mprotect[0m
+[2;32m0 311542/3            14 syscall  -> mprotect[0m
+[2;32m0 311542/3             6 syscall  <- mprotect[0m
+[2;32m0 311542/3            40 syscall  -> lwp_cond_signal[0m
+[2;32m0 311542/3             7 syscall  <- lwp_cond_signal[0m
+[2;32m0 311542/3             7 syscall  -> lwp_sigmask[0m
+[2;32m0 311542/3             6 syscall  <- lwp_sigmask[0m
+[2;32m0 311542/3            11 syscall  -> lwp_exit[0m
+[2;32m0 311542/2           184 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/2            16 syscall  -> lwp_sigmask[0m
+[2;32m0 311542/2             6 syscall  <- lwp_sigmask[0m
+[2;32m0 311542/2           108 syscall  -> unlink[0m
+[2;32m0 311542/2            36 syscall  <- unlink[0m
+[2;32m0 311542/2             9 syscall  -> lwp_sigmask[0m
+[2;32m0 311542/2             6 syscall  <- lwp_sigmask[0m
+[2;32m0 311542/2            50 syscall  -> lwp_exit[0m
+[2;32m0 311542/1       6423404 syscall  <- lwp_wait[0m
+[2;32m0 311542/1            40 syscall  -> open64[0m
+[2;32m0 311542/1           101 syscall  <- open64[0m
+[2;32m0 311542/1             8 syscall  -> ioctl[0m
+[2;32m0 311542/1            14 syscall  <- ioctl[0m
+[2;32m0 311542/1            10 syscall  -> close[0m
+[2;32m0 311542/1            14 syscall  <- close[0m
+[2;32m0 311542/1             8 syscall  -> open64[0m
+[2;32m0 311542/1            31 syscall  <- open64[0m
+[2;32m0 311542/1             7 syscall  -> ioctl[0m
+[2;32m0 311542/1             7 syscall  <- ioctl[0m
+[2;32m0 311542/1             7 syscall  -> close[0m
+[2;32m0 311542/1             9 syscall  <- close[0m
+[2;32m0 311542/1            27 syscall  -> rexit[0m
+[2;32m0 311542/9       3298915 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/8       3375816 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/7       3376775 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/5       3738267 syscall          <- lwp_cond_wait[0m
+[2;32m0 311542/4       3760581 syscall        <- lwp_cond_wait[0m
+[2;32m0 311542/6       3376767 syscall  <- lwp_park[0m
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_thread_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_thread_example.txt
new file mode 100644
index 0000000..3c5e83c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_thread_example.txt
@@ -0,0 +1,20 @@
+Following we see examples of the results of running j_thread.d.  
+
+Here it is running while Code/Java/Func_abc is executing.
+
+# j_thread.d
+TIME                     PID/TID   -- THREAD
+2007 Sep 24 04:01:34  311512/5     => Finalizer
+2007 Sep 24 04:01:34  311512/4     => Reference Handler
+2007 Sep 24 04:01:34  311512/7     => CompilerThread0
+2007 Sep 24 04:01:34  311512/6     => Signal Dispatcher
+2007 Sep 24 04:01:34  311512/8     => CompilerThread1
+2007 Sep 24 04:01:34  311512/9     => Low Memory Detector
+^C
+
+The fields of the output are, in order, Event time, Process ID/Thread ID,
+entry (=>) or exit (<=) and Thread name.
+
+In this example we see six different threads starting, but we do not see 
+thread exit events as the JVM exited when the program stopped. 
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/j_who_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_who_example.txt
new file mode 100644
index 0000000..f765d48
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/j_who_example.txt
@@ -0,0 +1,17 @@
+In many cases, in order to get interesting or in-depth results the 
+ExtendedDTraceProbes flag needs to be set when DTracing Java programs.  In
+this case, because of the probes we have chosen to trace, running the program
+Code/Java/Func_abc, both with (PID 311517) and without (311526) this flag, 
+and we can see that it has made no difference, with each reporting 35 lines 
+executed.
+
+# j_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+      PID    UID  CALLS ARGS                                                   
+   194441    100     18 /usr/local/lib/opera/9.02-20060919.1/opera
+   309790    100     20 java_vm
+   311517    100     35 java -XX:+ExtendedDTraceProbes Func_abc
+   311526    100     35 java Func_abc
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/js_calldist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_calldist_example.txt
new file mode 100644
index 0000000..57058b7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_calldist_example.txt
@@ -0,0 +1,110 @@
+The following are examples of running js_calldist.d. 
+
+Here it is running while the code at Code/JavaScript/func_clock.html is
+being executed.
+
+# js_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Elapsed times (us),
+   func_clock.html, obj-new, Date 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+              16 |                                         0        
+
+
+Exclusive function elapsed times (us),
+   func_clock.html, func, setTimeout 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+             128 |                                         0        
+
+   func_clock.html, func, getElementById 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@                                       1        
+              16 |@@@@@@@@@@@@@@@@@@                       9        
+              32 |@@@@@@@@@@@@@@@@@@@@                     10       
+              64 |                                         0        
+
+   func_clock.html, func, start 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+            2048 |                                         0        
+
+   func_clock.html, func, func_a 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+           32768 |                                         0        
+
+   func_clock.html, func, func_b 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+           65536 |                                         0        
+
+   func_clock.html, func, func_c 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+           65536 |                                         0        
+
+
+Inclusive function elapsed times (us),
+   func_clock.html, func, setTimeout 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+             128 |                                         0        
+
+   func_clock.html, func, getElementById 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@                                       1        
+              16 |@@@@@@@@@@@@@@@@@@                       9        
+              32 |@@@@@@@@@@@@@@@@@@@@                     10       
+              64 |                                         0        
+
+   func_clock.html, func, func_c 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+           65536 |                                         0        
+
+   func_clock.html, func, func_a 
+           value  ------------- Distribution ------------- count    
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+          131072 |                                         0        
+
+   func_clock.html, func, func_b 
+           value  ------------- Distribution ------------- count    
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+          131072 |                                         0        
+
+   func_clock.html, func, start 
+           value  ------------- Distribution ------------- count    
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+          131072 |                                         0        
+
+The elapsed times show us that the script spent some small amount of time
+processing various events that were not functions.  In this case there was
+five new Date objects, and each event took between 8 microseconds and 15 
+microseconds.
+
+The exclusive function elapsed times show the time each of our functions
+takes, excluding the time spent in subroutines called by that function.  We
+can see in this example that func_a took between 16384 microseconds and 32767
+microseconds.
+
+The inclusive function elapsed times show that func_a took between 65536
+microseconds and 131071 microseconds, including the time spent in any
+subroutines it calls.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/js_calls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_calls_example.txt
new file mode 100644
index 0000000..848e436
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_calls_example.txt
@@ -0,0 +1,312 @@
+The following are examples of the results of running js_calls.d
+
+A JavaScript program that behaves like a clock is frequently used by these
+examples, since it can be left running in the background without browser
+input. Browser input, such as hitting the reload button or using menus,
+triggers many other JavaScript events since much of the browser uses
+JavaScript. 
+
+With Code/JavaScript/func_clock.html loaded, we trace one second of activity:
+
+# js_calls.d
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE                     TYPE       NAME                              CALLS
+ func_clock.html          exec       .                                     1
+ func_clock.html          func       func_a                                1
+ func_clock.html          func       func_b                                1
+ func_clock.html          func       func_c                                1
+ func_clock.html          func       setTimeout                            1
+ func_clock.html          func       start                                 1
+ func_clock.html          obj-new    Date                                  1
+ func_clock.html          func       getElementById                        4
+
+This shows the type of calls made, 1 exec, one obj-new, several func; a more
+descriptive name of each call; and a count of how many times a particular call
+was made. 
+
+
+The following demonstrates what happens when a different program -
+Code/JavaScript/func_slow.html is reloaded by hitting the reload button on the 
+browser.  Apart from the func_slow.html JavaScript events, all those events 
+from the browser caused by moving the mouse pointer over the screen etc. have 
+been traced as well.
+
+# js_calls.d
+Tracing... Hit Ctrl-C to end.
+
+ FILE                     TYPE       NAME                              CALLS
+ <null>                   obj-free   BarProp                               1
+ <null>                   obj-free   CSSStyleDeclaration                   1
+ <null>                   obj-free   Global Scope Polluter                 1
+ <null>                   obj-free   HTMLCollection                        1
+ <null>                   obj-free   HTMLDocument                          1
+ <null>                   obj-free   HTMLHtmlElement                       1
+ <null>                   obj-free   KeyboardEvent                         1
+ <null>                   obj-free   Location                              1
+ <null>                   obj-free   NodeList                              1
+ <null>                   obj-free   StyleSheetList                        1
+ <null>                   obj-free   TreeSelection                         1
+ <null>                   obj-free   Window                                1
+ <null>                   obj-free   XULCommandDispatcher                  1
+ <null>                   obj-free   chrome://global/content/bindings/scrollbar.xml#scrollbar 8c35ec2        1
+ <null>                   obj-free   nsXPCComponents_Classes               1
+ <null>                   obj-free   xpcTempGlobalClass                    1
+ <null>                   obj-new    BarProp                               1
+ <null>                   obj-new    CSSStyleDeclaration                   1
+ <null>                   obj-new    Global Scope Polluter                 1
+ <null>                   obj-new    HTMLCollection                        1
+ <null>                   obj-new    HTMLDocument                          1
+ <null>                   obj-new    HTMLHtmlElement                       1
+ <null>                   obj-new    KeyboardEvent                         1
+ <null>                   obj-new    NodeList                              1
+ <null>                   obj-new    StyleSheetList                        1
+ <null>                   obj-new    TreeSelection                         1
+ <null>                   obj-new    Window                                1
+ <null>                   obj-new    XULCommandDispatcher                  1
+ <null>                   obj-new    chrome://global/content/bindings/popup.xml#popup 8befc22        1
+ <null>                   obj-new    chrome://global/content/bindings/popup.xml#popup 8befcea        1
+ <null>                   obj-new    chrome://global/content/bindings/scrollbar.xml#scrollbar 8ce1c1a        1
+ <null>                   obj-new    nsXPCComponents_Classes               1
+ <null>                   obj-new    xpcTempGlobalClass                    1
+ autocomplete.xml         func       apply                                 1
+ autocomplete.xml         func       attachController                      1
+ autocomplete.xml         func       detachController                      1
+ autocomplete.xml         func       fireEvent                             1
+ autocomplete.xml         func       getPreventDefault                     1
+ autocomplete.xml         func       handleEnter                           1
+ autocomplete.xml         func       onKeyPress                            1
+ autocomplete.xml         obj-new    Object                                1
+ browser.js               func       BrowserLoadURL                        1
+ browser.js               func       SetPageProxyState                     1
+ browser.js               func       URLBarFocusHandler                    1
+ browser.js               func       UpdateBackForwardButtons              1
+ browser.js               func       addEventListener                      1
+ browser.js               func       addToUrlbarHistory                    1
+ browser.js               func       canonizeUrl                           1
+ browser.js               func       charsetLoadListener                   1
+ browser.js               func       checkForDirectoryListing              1
+ browser.js               func       contentAreaClick                      1
+ browser.js               func       createExposableURI                    1
+ browser.js               func       createFixupURI                        1
+ browser.js               func       getShortcutOrURI                      1
+ browser.js               func       getWebNavigation                      1
+ browser.js               func       handleURLBarCommand                   1
+ browser.js               func       isSuccessCode                         1
+ browser.js               func       markPageAsTyped                       1
+ browser.js               func       resolveKeyword                        1
+ browser.js               func       search                                1
+ browser.js               func       test                                  1
+ browser.js               func       updateLastVisitedDate                 1
+ browser.js               obj-new    Object                                1
+ browser.js               obj-new    XPC_WN_NoMods_Proto_JSClass           1
+ browser.js               obj-new    nsJSCID                               1
+ browser.xml              func       attachFormFill                        1
+ browser.xml              func       getAttribute                          1
+ browser.xml              func       getBoolPref                           1
+ consoleAPI.js            obj-new    Call                                  1
+ findBar.js               func       getElementById                        1
+ firebug.js               func       addEventListener                      1
+ firebug.js               obj-new    Constructor                           1
+ firebug.js               obj-new    Location                              1
+ firebug.js               obj-new    Object                                1
+ firebug.js               obj-new    XPC_WN_ModsAllowed_Proto_JSClass        1
+ func_slow.html           exec       .                                     1
+ func_slow.html           func       func_a                                1
+ func_slow.html           func       func_b                                1
+ func_slow.html           func       func_c                                1
+ func_slow.html           obj-new    Function                              1
+ preferences.js           obj-new    nsJSCID                               1
+ reporterOverlay.js       func       getElementById                        1
+ reporterOverlay.js       func       setAttribute                          1
+ tabbox.xml               func       getAttribute                          1
+ tabbrowser.xml           func       QueryInterface                        1
+ tabbrowser.xml           func       getAnonymousElementByAttribute        1
+ tabbrowser.xml           func       getBrowserIndexForDocument            1
+ tabbrowser.xml           func       indexOf                               1
+ tabbrowser.xml           func       push                                  1
+ tabbrowser.xml           func       setIcon                               1
+ tabbrowser.xml           func       setTabTitle                           1
+ tabbrowser.xml           func       shouldLoadFavIcon                     1
+ tabbrowser.xml           func       updateTitlebar                        1
+ tabbrowser.xml           func       useDefaultIcon                        1
+ tabbrowser.xml           obj-new    Array                                 1
+ tabbrowser.xml           obj-new    String                                1
+ textbox.xml              func       hasAttribute                          1
+ textbox.xml              func       setAttribute                          1
+ webdeveloper.js          func       getAttribute                          1
+ webdeveloper.js          func       hasAttribute                          1
+ webdeveloper.js          func       toLowerCase                           1
+ webdeveloper.js          func       webdeveloper_changeOptions            1
+ webdeveloper.js          func       webdeveloper_configureElement         1
+ webdeveloper.js          func       webdeveloper_openToolbarButton        1
+ webdeveloper.js          func       webdeveloper_updateMetaRedirects        1
+ webdeveloper.js          func       webdeveloper_updateRenderMode         1
+ webdeveloper.js          obj-new    Array                                 1
+ webdeveloper.js          obj-new    String                                1
+ <null>                   obj-free   BoxObject                             2
+ <null>                   obj-free   HTMLBodyElement                       2
+ <null>                   obj-free   JSOptions                             2
+ <null>                   obj-free   JavaArray                             2
+ <null>                   obj-free   JavaClass                             2
+ <null>                   obj-free   JavaMember                            2
+ <null>                   obj-free   JavaObject                            2
+ <null>                   obj-free   PageTransitionEvent                   2
+ <null>                   obj-free   nsJSCID                               2
+ <null>                   obj-new    BoxObject                             2
+ <null>                   obj-new    HTMLBodyElement                       2
+ <null>                   obj-new    JSOptions                             2
+ <null>                   obj-new    JavaArray                             2
+ <null>                   obj-new    JavaClass                             2
+ <null>                   obj-new    JavaMember                            2
+ <null>                   obj-new    JavaObject                            2
+ <null>                   obj-new    PageTransitionEvent                   2
+ autocomplete.xml         func       ensureRowIsVisible                    2
+ autocomplete.xml         func       initSearchNames                       2
+ autocomplete.xml         func       select                                2
+ autocomplete.xml         obj-new    Function                              2
+ browser.js               func       PageProxyClearIcon                    2
+ browser.js               func       PageProxySetIcon                      2
+ browser.js               func       URLBarClickHandler                    2
+ browser.js               func       URLBarMouseDownHandler                2
+ browser.js               func       XPCNativeWrapper function wrapper        2
+ browser.js               func       getService                            2
+ browser.js               func       loadURI                               2
+ browser.js               func       notifyObservers                       2
+ css.js                   func       <null>                                2
+ dom.js                   func       <null>                                2
+ events.js                func       <null>                                2
+ firebug.js               func       appendChild                           2
+ firebug.js               obj-new    XPC_WN_NoMods_Proto_JSClass           2
+ general.xml              func       getAttribute                          2
+ layout.js                func       <null>                                2
+ preferences.js           func       webdeveloper_getStringPreference        2
+ progressmeter.xml        func       createEvent                           2
+ progressmeter.xml        func       dispatchEvent                         2
+ progressmeter.xml        func       initEvent                             2
+ progressmeter.xml        func       setAttribute                          2
+ reporterOverlay.js       obj-new    Function                              2
+ scrollbar.xml            func       indexOf                               2
+ source.js                func       <null>                                2
+ style.js                 func       <null>                                2
+ tabbox.xml               func       setAttribute                          2
+ tabbrowser.xml           func       getBoolPref                           2
+ tabbrowser.xml           func       getBrowserAtIndex                     2
+ tabbrowser.xml           func       schemeIs                              2
+ tabbrowser.xml           func       setAttribute                          2
+ textbox.xml              func       setSelectionRange                     2
+ toolbar.xml              func       updateStatusText                      2
+ tree.xml                 obj-new    Function                              2
+ webdeveloper.js          func       getElementsByTagName                  2
+ webdeveloper.js          func       removeAttribute                       2
+ <null>                   obj-free   DOM Constructor.prototype             3
+ <null>                   obj-free   With                                  3
+ <null>                   obj-free   nsXPCComponents                       3
+ <null>                   obj-new    Array                                 3
+ <null>                   obj-new    DOM Constructor.prototype             3
+ <null>                   obj-new    With                                  3
+ <null>                   obj-new    XPC_WN_NoMods_Proto_JSClass           3
+ <null>                   obj-new    nsXPCComponents                       3
+ autocomplete.xml         func       getAttribute                          3
+ browser.js               func       QueryInterface                        3
+ func_slow.html           func       write                                 3
+ globalOverlay.js         obj-new    Function                              3
+ progressmeter.xml        func       getAttribute                          3
+ progressmeter.xml        func       round                                 3
+ scrollbar.xml            obj-new    String                                3
+ tabbrowser.xml           func       <null>                                3
+ tabbrowser.xml           func       hasAttribute                          3
+ tabbrowser.xml           func       updateIcon                            3
+ text.xml                 func       setAttribute                          3
+ textbox.xml              func       removeAttribute                       3
+ utils.js                 func       join                                  3
+ utils.js                 func       splice                                3
+ utils.js                 func       toLowerCase                           3
+ utils.js                 obj-new    Array                                 3
+ utils.js                 obj-new    String                                3
+ autocomplete.xml         func       closePopup                            4
+ browser.js               func       indexOf                               4
+ browser.js               obj-new    Call                                  4
+ browser.xml              func       getInterface                          4
+ preferences.js           func       webdeveloper_getBooleanPreference        4
+ tabbrowser.xml           func       getAttribute                          4
+ tabbrowser.xml           func       removeAttribute                       4
+ utilityOverlay.js        func       goUpdateGlobalEditMenuItems           4
+ utils.js                 func       isElement                             4
+ <null>                   obj-free   Call                                  5
+ view.js                  func       <null>                                5
+ <null>                   obj-free   XPCNativeWrapper                      6
+ <null>                   obj-free   XPC_WN_NoMods_Proto_JSClass           6
+ <null>                   obj-new    XPCNativeWrapper                      6
+ XStringBundle            func       GetStringFromName                     6
+ XStringBundle            func       getString                             6
+ autocomplete.xml         func       createEvent                           6
+ autocomplete.xml         func       dispatchEvent                         6
+ autocomplete.xml         func       initEvent                             6
+ browser.js               func       getBrowser                            6
+ browser.js               func       setTimeout                            6
+ browser.js               obj-new    String                                6
+ preferences.js           func       getBranch                             6
+ preferences.js           func       getService                            6
+ preferences.js           func       prefHasUserValue                      6
+ preferences.js           func       webdeveloper_isPreferenceSet          6
+ tabbrowser.xml           func       getBrowserForTab                      6
+ utils.js                 func       <null>                                6
+ webdeveloper.js          obj-new    Function                              6
+ <null>                   obj-new    Object                                7
+ firebug.js               func       removeAttribute                       7
+ tabbrowser.xml           obj-new    Function                              7
+ tree.xml                 func       QueryInterface                        7
+ <null>                   obj-free   Array                                 8
+ browser.js               func       hasAttribute                          8
+ globalOverlay.js         func       removeAttribute                       8
+ reporterOverlay.js       func       <null>                                8
+ browser.js               func       getElementById                        9
+ browser.js               func       setAttribute                          9
+ browser.xml              obj-new    Function                              9
+ webdeveloper.js          func       getElementById                        9
+ <null>                   obj-free   Constructor                          10
+ <null>                   obj-free   Object                               10
+ <null>                   obj-free   XPC_WN_ModsAllowed_Proto_JSClass       10
+ <null>                   obj-new    Constructor                          10
+ <null>                   obj-new    XPC_WN_ModsAllowed_Proto_JSClass       10
+ browser.js               func       removeAttribute                      10
+ firebug.js               obj-new    Function                             10
+ text.xml                 obj-new    String                               12
+ webdeveloper.js          func       item                                 14
+ firebug.js               func       getElementById                       15
+ <null>                   obj-free   XULElement                           16
+ button.xml               func       hasAttribute                         16
+ <null>                   obj-free   Event                                17
+ browser.js               func       <null>                               17
+ <null>                   obj-new    Event                                18
+ text.xml                 func       getAttribute                         19
+ firebug.js               func       getAttribute                         20
+ globalOverlay.js         func       setAttribute                         20
+ <null>                   obj-free   MouseEvent                           22
+ <null>                   obj-new    MouseEvent                           22
+ globalOverlay.js         func       isCommandEnabled                     22
+ webdeveloper.js          func       setAttribute                         22
+ <null>                   obj-free   String                               26
+ firebug.js               func       setAttribute                         26
+ <null>                   obj-free   RegExp                               28
+ <null>                   obj-new    RegExp                               28
+ globalOverlay.js         func       getControllerForCommand              28
+ globalOverlay.js         func       getElementById                       28
+ globalOverlay.js         func       goSetCommandEnabled                  28
+ globalOverlay.js         func       goUpdateCommand                      28
+ text.xml                 func       test                                 28
+ browser.js               obj-new    Function                             30
+ <null>                   obj-free   XPCWrappedNative_NoHelper            32
+ <null>                   obj-new    XPCWrappedNative_NoHelper            32
+ consoleAPI.js            obj-new    Function                             33
+ browser.xml              func       QueryInterface                       38
+ <null>                   obj-free   JavaPackage                          41
+ <null>                   obj-new    JavaPackage                          41
+ scrollbar.xml            obj-new    Function                             61
+ firebug.js               func       <null>                               62
+ text.xml                 exec       .                                    84
+ <null>                   obj-new    XULElement                           85
+ <null>                   obj-new    Function                            172
+ <null>                   obj-free   Function                            310
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/js_calltime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_calltime_example.txt
new file mode 100644
index 0000000..0b69b76
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_calltime_example.txt
@@ -0,0 +1,60 @@
+The following are examples of js_calltime.d.
+
+This script traces the elapsed time of JavaScript functions and
+prints a report. Here it traces the example program, 
+Code/JavaScript/func_clock.html
+
+# js_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   func_clock.html      func       func_a                                  3
+   func_clock.html      func       func_b                                  3
+   func_clock.html      func       func_c                                  3
+   func_clock.html      func       setTimeout                              3
+   func_clock.html      func       start                                   3
+   func_clock.html      obj-new    Date                                    3
+   func_clock.html      func       getElementById                         12
+   -                    total      -                                      30
+
+Elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   -                    total      -                                      29
+   func_clock.html      obj-new    Date                                   29
+
+Exclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_clock.html      func       setTimeout                            229
+   func_clock.html      func       getElementById                        378
+   func_clock.html      func       start                                4061
+   func_clock.html      func       func_a                              51080
+   func_clock.html      func       func_b                             102943
+   func_clock.html      func       func_c                             153330
+   -                    total      -                                  312024
+
+Inclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_clock.html      func       setTimeout                            229
+   func_clock.html      func       getElementById                        378
+   func_clock.html      func       func_c                             153454
+   func_clock.html      func       func_b                             256470
+   func_clock.html      func       func_a                             307601
+   func_clock.html      func       start                              312054
+
+Counts shows us how many times each different function was called, and how
+many functions were called in total.
+
+The elapsed time shows us the time spent not in a JavaScript function.
+
+The exclusive function elapsed times show the time that each function spent
+processing code - while not in other functions.
+
+The inclusive function elapsed times show the time that each function spent
+processing code, including the time spent in other calls.
+
+These elapsed times are the absolute time from when the function began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/js_cpudist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_cpudist_example.txt
new file mode 100644
index 0000000..c71a2ad
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_cpudist_example.txt
@@ -0,0 +1,112 @@
+The following are examples of js_cpudist.d.
+
+This script traces the on-CPU time of JavaScript functions and prints a report 
+in the form of a histogram.  Here it traces the example program,
+Code/JavaScript/func_clock.html 
+
+# js_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Elapsed times (us),
+   func_clock.html, obj-new, Date 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+               8 |                                         0        
+
+
+Exclusive function on-CPU times (us),
+   func_clock.html, func, setTimeout 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@                     2        
+              64 |@@@@@@@@@@@@@@@@@@@@                     2        
+             128 |                                         0        
+
+   func_clock.html, func, getElementById 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@                               4        
+              16 |@@@@@@@@@@                               4        
+              32 |@@@@@@@@@@@@@@@@@@@@                     8        
+              64 |                                         0        
+
+   func_clock.html, func, start 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+            1024 |                                         0        
+
+   func_clock.html, func, func_a 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+           32768 |                                         0        
+
+   func_clock.html, func, func_b 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+           65536 |                                         0        
+
+   func_clock.html, func, func_c 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+           65536 |                                         0        
+
+
+Inclusive function on-CPU times (us),
+   func_clock.html, func, setTimeout 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@                     2        
+              64 |@@@@@@@@@@@@@@@@@@@@                     2        
+             128 |                                         0        
+
+   func_clock.html, func, getElementById 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@                               4        
+              16 |@@@@@@@@@@                               4        
+              32 |@@@@@@@@@@@@@@@@@@@@                     8        
+              64 |                                         0        
+
+   func_clock.html, func, func_c 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+           65536 |                                         0        
+
+   func_clock.html, func, func_a 
+           value  ------------- Distribution ------------- count    
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+          131072 |                                         0        
+
+   func_clock.html, func, func_b 
+           value  ------------- Distribution ------------- count    
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+          131072 |                                         0        
+
+   func_clock.html, func, start 
+           value  ------------- Distribution ------------- count    
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+          131072 |                                         0        
+
+The first section, Exclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, not including time spent in subroutines.  You can
+see here that func_a had four instances of being on-CPU between 16384
+microseconds and 32767 microseconds.
+
+The second section, Inclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, including that time spent in subroutines called
+by those functions.  You can see that here func_a had four instances of being 
+on-CPU between 65536 microseconds and 131071 microseconds.
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/js_cputime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_cputime_example.txt
new file mode 100644
index 0000000..dff42fd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_cputime_example.txt
@@ -0,0 +1,69 @@
+The following are examples of js_cputime.d.
+
+This script traces the on-CPU time of JavaScript functions and prints a report. 
+Here it traces the example program, Code/JavaScript/func_clock.html
+
+# js_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   func_clock.html      func       func_a                                  5
+   func_clock.html      func       func_b                                  5
+   func_clock.html      func       func_c                                  5
+   func_clock.html      func       setTimeout                              5
+   func_clock.html      func       start                                   5
+   func_clock.html      obj-new    Date                                    5
+   func_clock.html      func       getElementById                         20
+   -                    total      -                                      50
+
+Elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   -                    total      -                                      37
+   func_clock.html      obj-new    Date                                   37
+
+Exclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_clock.html      func       setTimeout                            316
+   func_clock.html      func       getElementById                        588
+   func_clock.html      func       start                                4734
+   func_clock.html      func       func_a                              83465
+   func_clock.html      func       func_b                             166613
+   func_clock.html      func       func_c                             247683
+   -                    total      -                                  503402
+
+Inclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_clock.html      func       setTimeout                            316
+   func_clock.html      func       getElementById                        588
+   func_clock.html      func       func_c                             247872
+   func_clock.html      func       func_b                             414601
+   func_clock.html      func       func_a                             498142
+   func_clock.html      func       start                              503439
+
+You can see the results are printed in four sections.
+
+The first section reports how many times each subroutine was called, and it's
+type.
+
+The second section reports on the on-CPU time of anything that was not of type
+"func", in this case the only elements reported here are Date obj-new.
+
+The exclusive subroutine on-CPU times shows, amongst other results, that func_a 
+spent around 83,000 microseconds on-CPU.  This time excludes time spent in 
+other subroutines.
+
+The inclusive subroutine on-CPU times show that func_a spent around 0.5
+seconds on-CPU.  This includes the time spent in other subroutines
+called.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/js_execs_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_execs_example.txt
new file mode 100644
index 0000000..d555c1a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_execs_example.txt
@@ -0,0 +1,15 @@
+The following examples show the results of running the script js_execs.d.
+
+Here it runs on the program Code/JavaScript/func_clock.html.  The script will
+show you every time something is executed, including page reloads and
+timeouts.  
+
+# js_execs.d 
+TIME                                              FILE:LINENO
+2007 Sep 23 22:54:31                   func_clock.html:32
+2007 Sep 23 22:54:32                   func_clock.html:32
+2007 Sep 23 22:54:34                   func_clock.html:32
+2007 Sep 23 22:54:35                   func_clock.html:32
+2007 Sep 23 22:54:36                   func_clock.html:32
+^C
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/js_flow_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_flow_example.txt
new file mode 100644
index 0000000..7a9278d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_flow_example.txt
@@ -0,0 +1,41 @@
+The following are examples of js_flow.d.
+
+This is a simple script to trace the flow of JavaScript functions.
+Here it traces the example program, Code/JavaScript/func_clock.html
+
+# js_flow.d 
+  C TIME(us)         FILE                   -- FUNC
+  0 3650471830941    func_clock.html        -> start
+  0 3650471831005    func_clock.html          -> getElementById
+  0 3650471831058    func_clock.html          <- getElementById
+  0 3650471831890    func_clock.html          -> func_a
+  0 3650471831906    func_clock.html            -> getElementById
+  0 3650471831929    func_clock.html            <- getElementById
+  0 3650471850084    func_clock.html            -> func_b
+  0 3650471850111    func_clock.html              -> getElementById
+  0 3650471850146    func_clock.html              <- getElementById
+  0 3650471886534    func_clock.html              -> func_c
+  0 3650471886573    func_clock.html                -> getElementById
+  0 3650471886624    func_clock.html                <- getElementById
+  0 3650471942212    func_clock.html              <- func_c
+  0 3650471942231    func_clock.html            <- func_b
+  0 3650471942242    func_clock.html          <- func_a
+  0 3650471942300    func_clock.html          -> setTimeout
+  0 3650471942392    func_clock.html          <- setTimeout
+  0 3650471942404    func_clock.html        <- start
+^C
+
+The fourth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which - the output above shows that
+func_a called func_b, which in turn called func_c.
+
+The TIME(us) column shows time from boot in microseconds.
+
+The FILE column shows the file that was being executed.
+
+If the output looks strange, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/js_flowinfo_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_flowinfo_example.txt
new file mode 100644
index 0000000..45970c1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_flowinfo_example.txt
@@ -0,0 +1,42 @@
+Following are examples of js_flowinfo.d.
+
+This is a simple script to trace the flow of JavaScript functions.  Here it 
+traces the example program Code/JavaScript/func_clock.html
+
+# js_flowinfo.d
+  C    PID  DELTA(us)              FILE:LINE TYPE     -- FUNC
+  0  11651          2                 .:0    func     -> start
+  0  11651         75   func_clock.html:30   func       -> getElementById
+  0  11651         51   func_clock.html:-    func       <- getElementById
+  0  11651        479   func_clock.html:31   func       -> func_a
+  0  11651         25   func_clock.html:21   func         -> getElementById
+  0  11651         23   func_clock.html:-    func         <- getElementById
+  0  11651      30611   func_clock.html:25   func         -> func_b
+  0  11651         79   func_clock.html:13   func           -> getElementById
+  0  11651         51   func_clock.html:-    func           <- getElementById
+  0  11651      33922   func_clock.html:17   func           -> func_c
+  0  11651         75   func_clock.html:6    func             -> getElementById
+  0  11651         50   func_clock.html:-    func             <- getElementById
+  0  11651      50481   func_clock.html:-    func           <- func_c
+  0  11651         24   func_clock.html:-    func         <- func_b
+  0  11651         10   func_clock.html:-    func       <- func_a
+  0  11651         39   func_clock.html:32   func       -> setTimeout
+  0  11651        118   func_clock.html:-    func       <- setTimeout
+  0  11651         11   func_clock.html:-    func     <- start
+^C
+
+As each function is entered, the last column is indented by 2 spaces. This
+shows which function is calling which.
+
+The DELTA(us) column shows the change in time from the previous line to the
+current line.
+
+The FILE::LINE column shows which line in which file was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/js_flowtime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_flowtime_example.txt
new file mode 100644
index 0000000..46b2f2f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_flowtime_example.txt
@@ -0,0 +1,42 @@
+The following are examples of js_flowtime.d.
+
+This is a simple script to trace the flow of JavaScript functions.
+Here it traces the example program, Code/JavaScript/func_clock.html
+
+# js_flowtime.d 
+  C TIME(us)         FILE               DELTA(us) -- FUNC
+  0 3650523390654    func_clock.html            2 -> start
+  0 3650523390721    func_clock.html           67   -> getElementById
+  0 3650523390773    func_clock.html           51   <- getElementById
+  0 3650523391609    func_clock.html          835   -> func_a
+  0 3650523391627    func_clock.html           18     -> getElementById
+  0 3650523391651    func_clock.html           23     <- getElementById
+  0 3650523409735    func_clock.html        18084     -> func_b
+  0 3650523409763    func_clock.html           27       -> getElementById
+  0 3650523409795    func_clock.html           32       <- getElementById
+  0 3650523445921    func_clock.html        36125       -> func_c
+  0 3650523445959    func_clock.html           38         -> getElementById
+  0 3650523446004    func_clock.html           44         <- getElementById
+  0 3650523500557    func_clock.html        54552       <- func_c
+  0 3650523500581    func_clock.html           24     <- func_b
+  0 3650523500593    func_clock.html           11   <- func_a
+  0 3650523500648    func_clock.html           54   -> setTimeout
+  0 3650523500736    func_clock.html           88   <- setTimeout
+  0 3650523500749    func_clock.html           12 <- start
+^C
+
+The fifth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which. 
+
+The TIME(us) column shows time since boot.
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the second line of data output
+shows that a getElementById function happened 67 microseconds after start.
+
+The FILE column shows file that was being executed.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/js_objcpu_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_objcpu_example.txt
new file mode 100644
index 0000000..9e9a957
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_objcpu_example.txt
@@ -0,0 +1,317 @@
+The following are examples of running js_objcpu.d.  
+
+This script will show the time on-CPU of object creation events in graphical
+format.  
+
+Here we see it running on Code/JavaScript/func_clock.html 
+
+# js_objcpu.d 
+Tracing... Hit Ctrl-C to end.
+^C
+Total object creation on-CPU time (ms): 0
+
+Object creation on-CPU time distributions (us),
+
+  Date                                              
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              16 |                                         0   
+
+We can see that there were two object creation events, both of type 'Date'
+that spent between 8 microseconds and 15 microseconds on-CPU each.
+
+
+Here we see the results of having Code/JavaScript/func_slow.html in a browser
+window and hitting reload.  This includes events that happen due to mouse
+movement.
+
+# js_objcpu.d
+Tracing... Hit Ctrl-C to end.
+^C
+Total object creation on-CPU time (ms): 2
+
+Object creation on-CPU time distributions (us),
+
+  HTMLBodyElement                                   
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  HTMLCollection                                    
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  HTMLDocument                                      
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  HTMLHtmlElement                                   
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  Location                                          
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  NodeList                                          
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  StyleSheetList                                    
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  Window                                            
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  chrome://global/content/bindings/popup.xml#popup 8830492
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  chrome://global/content/bindings/scrollbar.xml#scrollbar 8beef52
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  BarProp                                           
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+  BoxObject                                         
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+  CSSStyleDeclaration                               
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+  chrome://global/content/bindings/popup.xml#popup 8bef592
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+  nsXPCComponents_Classes                           
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+  nsJSCID                                           
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+
+  nsXPCComponents                                   
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4 |                                         0        
+
+  Global Scope Polluter                             
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+  JavaArray                                         
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |                                         0        
+
+  JavaClass                                         
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |                                         0        
+
+  JavaMember                                        
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |                                         0        
+
+  JavaObject                                        
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |                                         0        
+
+  KeyboardEvent                                     
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |                                         0        
+
+  XPC_WN_NoMods_Proto_JSClass                       
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           3        
+               4 |@@@@@@@@@@                               1        
+               8 |                                         0        
+
+  PageTransitionEvent                               
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |                                         0        
+
+  JSOptions                                         
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              16 |                                         0        
+
+  Call                                              
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+               8 |                                         0        
+
+  DOM Constructor.prototype                         
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |                                         0        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@                            1        
+              32 |                                         0        
+
+  With                                              
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@                            1        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              16 |                                         0        
+
+  Constructor                                       
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     9        
+               4 |@@@@                                     1        
+               8 |                                         0        
+
+  Object                                            
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@                          3        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@                5        
+               8 |                                         0        
+
+  XPCNativeWrapper                                  
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@                                  1        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+               8 |@@@@@@@                                  1        
+              16 |                                         0        
+
+  XULElement                                        
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@                   5        
+               4 |@@@@@@@@@@@@@@@@@@                       4        
+               8 |                                         0        
+
+  Array                                             
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@                               2        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           6        
+               8 |                                         0        
+
+  XPCWrappedNative_NoHelper                         
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@                          3        
+               4 |@@@@@@@@@@@@@@@@@@@@                     4        
+               8 |@@@@@                                    1        
+              16 |                                         0        
+
+  XPC_WN_ModsAllowed_Proto_JSClass                  
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@                 6        
+               4 |@@@@@@@@@@@@                             3        
+               8 |@@@@                                     1        
+              16 |                                         0        
+
+  MouseEvent                                        
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@                        3        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@                  4        
+              16 |                                         0        
+
+  String                                            
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 11       
+               8 |                                         0        
+
+  Event                                             
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@                                      1        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@            10       
+               8 |@@@@@@@@@                                3        
+              16 |                                         0        
+
+  JavaPackage                                       
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  40       
+               4 |                                         0        
+               8 |@                                        1        
+              16 |                                         0        
+
+  Function                                          
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          246      
+               4 |@@@@@@@                                  58       
+               8 |@                                        8        
+              16 |@                                        9        
+              32 |                                         0        
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/js_objgc_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_objgc_example.txt
new file mode 100644
index 0000000..711b223
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_objgc_example.txt
@@ -0,0 +1,230 @@
+Following are examples of running js_objgc.d.
+
+This script reports on the garbage collection of Java objects.  That is it
+will keep track of when resources are allocated to an object, and when
+resources are freed from an object.  It is useful for providing information on
+when garbage collection is not working correctly, as this can cause the
+browser to have a memory leak.
+
+We trace object creation (+1) and destruction (-1), and provide a summary
+each second of the running tally of the object class and originating filename. 
+
+Here we can see it running on Code/JavaScript/func_clock.html
+
+# js_objgc.d
+Tracing... Hit Ctrl-C to end.
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:24
+ func_clock.html                 1 Date
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:25
+ func_clock.html                 2 Date
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:26
+ func_clock.html                 3 Date
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:27
+ func_clock.html                 4 Date
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:28
+ func_clock.html                 5 Date
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:29
+ browser.js                      3 Function
+ <null>                          5 Function
+ func_clock.html                 6 Date
+ <null>                          7 MouseEvent
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:30
+ browser.js                      3 Function
+ <null>                          5 Function
+ func_clock.html                 7 Date
+ <null>                         10 MouseEvent
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:31
+ <null>                          1 Constructor
+ <null>                          1 HTMLBodyElement
+ <null>                          1 XPCNativeWrapper
+ <null>                          1 XPC_WN_ModsAllowed_Proto_JSClass
+ browser.js                      1 Array
+ browser.js                      1 XPCNativeWrapper
+ popup.xml                       1 Array
+ func_clock.html                 7 Date
+ <null>                         13 MouseEvent
+ <null>                         18 Function
+ browser.js                     20 Function
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:32
+ <null>                          1 BoxObject
+ <null>                          1 Constructor
+ <null>                          1 HTMLBodyElement
+ <null>                          1 NodeList
+ <null>                          1 UIEvent
+ <null>                          1 XPCNativeWrapper
+ <null>                          1 XPC_WN_ModsAllowed_Proto_JSClass
+ <null>                          1 chrome://global/content/bindings/menu.xml#menu-iconic 84ff45a
+ <null>                          1 chrome://global/content/bindings/menu.xml#menu-iconic 8befbba
+ bookmarksMenu.js                1 Function
+ browser.js                      1 Array
+ browser.js                      1 XPCNativeWrapper
+ popup.xml                       1 Function
+ scrollbox.xml                   1 Function
+ <null>                          2 Event
+ popup.xml                       2 Array
+ bookmarks.js                    3 With
+ firebug-service.js              3 Object
+ bookmarks.js                    6 Object
+ bookmarks.js                    6 XPCWrappedNative_NoHelper
+ func_clock.html                 8 Date
+ firebug-service.js             10 Function
+ <null>                         15 MouseEvent
+ bookmarks.js                   19 Error
+ browser.js                     20 Function
+ bookmarks.js                   22 Function
+ <null>                         39 XPCWrappedNative_NoHelper
+ <null>                         44 Function
+ <null>                         60 RegExp
+ <null>                        191 XULElement
+
+[... 39 seconds deleted ...]
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 23:00:10
+ <null>                          1 HTMLBodyElement
+ <null>                          1 HTMLCollection
+ <null>                          1 TreeColumns
+ <null>                          1 XPCNativeWrapper
+ <null>                          1 XPC_WN_NoMods_Proto_JSClass
+ <null>                          1 XULTreeBuilder
+ <null>                          1 chrome://global/content/bindings/menu.xml#menu-iconic 84ff45a
+ <null>                          1 chrome://global/content/bindings/menu.xml#menu-iconic 8befbba
+ <null>                          1 chrome://global/content/bindings/tree.xml#treebody 84caa3a
+ <null>                          1 chrome://global/content/bindings/tree.xml#treebody 84e3a72
+ <null>                          1 nsXPCComponents_Interfaces
+ <null>                          1 nsXPCComponents_Results
+ bookmarksMenu.js                1 Function
+ browser.js                      1 Array
+ browser.js                      1 XPCNativeWrapper
+ browser.js                      1 XPC_WN_NoMods_Proto_JSClass
+ nsUpdateService.js              1 XPC_WN_NoMods_Proto_JSClass
+ nsUpdateService.js              1 nsJSCID
+ popup.xml                       1 Function
+ scrollbar.xml                   1 String
+ scrollbox.xml                   1 Function
+ tree.xml                        1 Array
+ <null>                          2 Constructor
+ <null>                          2 UIEvent
+ <null>                          2 XPC_WN_ModsAllowed_Proto_JSClass
+ <null>                          2 nsXPCComponents_Classes
+ browser.js                      2 nsJSCID
+ browser.js                      2 nsJSIID
+ utilityOverlay.js               2 nsJSCID
+ utilityOverlay.js               2 nsJSIID
+ <null>                          3 Array
+ <null>                          3 NodeList
+ nsUpdateService.js              3 Array
+ nsUpdateService.js              3 Object
+ nsUpdateService.js              3 With
+ utilityOverlay.js               3 Call
+ tree.xml                        4 Function
+ utilityOverlay.js               4 Function
+ nsUpdateService.js              7 nsJSIID
+ nsUpdateService.js             15 Function
+ bookmarks.js                   22 Function
+ text.xml                       23 String
+ <null>                         36 BoxObject
+ func_clock.html                42 Date
+ bookmarks.js                   57 With
+ firebug-service.js             57 Object
+ bookmarks.js                   73 Error
+ browser.js                     78 Function
+ popup.xml                      82 Array
+ bookmarks.js                  114 Object
+ bookmarks.js                  114 XPCWrappedNative_NoHelper
+ <null>                        157 MouseEvent
+ firebug-service.js            172 Function
+ <null>                        307 XPCWrappedNative_NoHelper
+ <null>                        388 RegExp
+ <null>                        488 Event
+ <null>                        876 XULElement
+ <null>                       1221 Function
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 23:00:11
+ <missed>                      -94 Date
+ <missed>                      -34 Function
+ <missed>                       -4 MouseEvent
+ <missed>                       -2 Array
+ <missed>                       -1 HTMLBodyElement
+ <missed>                       -1 HTMLCollection
+ <missed>                       -1 XPCNativeWrapper
+ <missed>                       -1 XPC_WN_ModsAllowed_Proto_JSClass
+ <null>                          0 Array
+ <null>                          0 HTMLBodyElement
+ <null>                          0 HTMLCollection
+ <null>                          0 RegExp
+ <null>                          0 TreeColumns
+ <null>                          0 UIEvent
+ <null>                          0 XPC_WN_NoMods_Proto_JSClass
+ <null>                          0 XULTreeBuilder
+ <null>                          0 nsXPCComponents_Classes
+ <null>                          0 nsXPCComponents_Interfaces
+ <null>                          0 nsXPCComponents_Results
+ browser.js                      0 Array
+ browser.js                      0 XPCNativeWrapper
+ browser.js                      0 XPC_WN_NoMods_Proto_JSClass
+ browser.js                      0 nsJSCID
+ nsUpdateService.js              0 Array
+ nsUpdateService.js              0 Function
+ nsUpdateService.js              0 Object
+ nsUpdateService.js              0 With
+ nsUpdateService.js              0 XPC_WN_NoMods_Proto_JSClass
+ nsUpdateService.js              0 nsJSCID
+ nsUpdateService.js              0 nsJSIID
+ scrollbar.xml                   0 String
+ text.xml                        0 String
+ tree.xml                        0 Array
+ utilityOverlay.js               0 Call
+ utilityOverlay.js               0 Function
+ utilityOverlay.js               0 nsJSCID
+ <null>                          1 NodeList
+ <null>                          1 XPCNativeWrapper
+ <null>                          1 chrome://global/content/bindings/menu.xml#menu-iconic 84ff45a
+ <null>                          1 chrome://global/content/bindings/menu.xml#menu-iconic 8befbba
+ <null>                          1 chrome://global/content/bindings/tree.xml#treebody 84caa3a
+ <null>                          1 chrome://global/content/bindings/tree.xml#treebody 84e3a72
+ bookmarksMenu.js                1 Function
+ browser.xul                     1 Function
+ func_clock.html                 1 Date
+ popup.xml                       1 Function
+ scrollbox.xml                   1 XULElement
+ scrollbox.xml                   1 nsJSIID
+ <null>                          2 Constructor
+ <null>                          2 XPC_WN_ModsAllowed_Proto_JSClass
+ browser.js                      2 nsJSIID
+ scrollbox.xml                   2 Function
+ tree.xml                        2 Function
+ utilityOverlay.js               2 nsJSIID
+ popup.xml                       3 Array
+ bookmarks.js                    5 With
+ firebug-service.js              5 Object
+ <null>                          6 Event
+ <null>                          6 MouseEvent
+ bookmarks.js                    9 XPCWrappedNative_NoHelper
+ <null>                         10 XPCWrappedNative_NoHelper
+ bookmarks.js                   10 Object
+ browser.js                     10 Function
+ bookmarks.js                   15 Function
+ firebug-service.js             16 Function
+ <null>                         18 BoxObject
+ bookmarks.js                   75 Error
+ <null>                         79 Function
+ <null>                        315 XULElement
+^C
+
+Just after time 23:00:10, garbage collection fired cleaning up many objects.
+The final output shows a much reduced object count including a negative
+count for objects created before this script was tracing.
+
+If over the period of several minutes an object type is still steadily 
+increasing, then that would be of interest.  Be patient, depending on the rate 
+of object creation it can take over ten minutes for garbage collect to kick in.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/js_objnew_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_objnew_example.txt
new file mode 100644
index 0000000..c3a8881
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_objnew_example.txt
@@ -0,0 +1,100 @@
+The following are examples of the results of running js_objnew.d.  
+
+It reports on the class type of new objects created. 
+
+Here we can see it running on the program Code/JavaScript/func_clock.html.
+
+# js_objnew.d 
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE                     CLASS                                   COUNT
+ func_clock.html          Date                                        2
+
+The results are very simple, func_clock.html caused two new objects to be
+created, both of type 'Date'.
+
+
+Here is a more complicated example, running on the program
+Code/JavaScript/func_slow.html, with the results of that plus JavaScript caused 
+by hitting reload on the browser.
+
+
+# js_objnew.d 
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE                     CLASS                                   COUNT
+ <null>                   BarProp                                     1
+ <null>                   CSSStyleDeclaration                         1
+ <null>                   Global Scope Polluter                       1
+ <null>                   HTMLBodyElement                             1
+ <null>                   HTMLDocument                                1
+ <null>                   HTMLHtmlElement                             1
+ <null>                   NodeList                                    1
+ <null>                   StyleSheetList                              1
+ <null>                   TreeSelection                               1
+ <null>                   Window                                      1
+ <null>                   XULCommandDispatcher                        1
+ <null>                   chrome://global/content/bindings/popup.xml#popup 8c35c92        1
+ <null>                   chrome://global/content/bindings/popup.xml#popup 8fb299a        1
+ <null>                   chrome://global/content/bindings/scrollbar.xml#scrollbar 8fb2ea2        1
+ <null>                   nsXPCComponents_Classes                     1
+ <null>                   xpcTempGlobalClass                          1
+ autocomplete.xml         Object                                      1
+ browser.js               Array                                       1
+ browser.js               Object                                      1
+ browser.js               XPC_WN_NoMods_Proto_JSClass                 1
+ browser.js               nsJSCID                                     1
+ consoleAPI.js            Call                                        1
+ firebug.js               Constructor                                 1
+ firebug.js               Location                                    1
+ firebug.js               Object                                      1
+ firebug.js               XPC_WN_ModsAllowed_Proto_JSClass            1
+ func_slow.html           Function                                    1
+ popup.xml                Array                                       1
+ preferences.js           nsJSCID                                     1
+ tabbrowser.xml           Array                                       1
+ tabbrowser.xml           String                                      1
+ webdeveloper.js          Array                                       1
+ webdeveloper.js          String                                      1
+ <null>                   BoxObject                                   2
+ <null>                   JSOptions                                   2
+ <null>                   JavaArray                                   2
+ <null>                   JavaClass                                   2
+ <null>                   JavaMember                                  2
+ <null>                   JavaObject                                  2
+ <null>                   PageTransitionEvent                         2
+ autocomplete.xml         Function                                    2
+ firebug.js               XPC_WN_NoMods_Proto_JSClass                 2
+ reporterOverlay.js       Function                                    2
+ tree.xml                 Function                                    2
+ <null>                   Array                                       3
+ <null>                   DOM Constructor.prototype                   3
+ <null>                   With                                        3
+ <null>                   XPC_WN_NoMods_Proto_JSClass                 3
+ <null>                   nsXPCComponents                             3
+ globalOverlay.js         Function                                    3
+ scrollbar.xml            String                                      3
+ utils.js                 Array                                       3
+ utils.js                 String                                      3
+ browser.js               Call                                        4
+ func_clock.html          Date                                        4
+ webdeveloper.js          Function                                    4
+ <null>                   XPCNativeWrapper                            5
+ browser.js               String                                      6
+ <null>                   Object                                      7
+ tabbrowser.xml           Function                                    7
+ <null>                   XPC_WN_ModsAllowed_Proto_JSClass            8
+ <null>                   Constructor                                 9
+ browser.xml              Function                                    9
+ firebug.js               Function                                   10
+ <null>                   MouseEvent                                 12
+ <null>                   XPCWrappedNative_NoHelper                  13
+ <null>                   KeyboardEvent                              14
+ <null>                   XULElement                                 16
+ <null>                   Event                                      29
+ browser.js               Function                                   33
+ consoleAPI.js            Function                                   33
+ <null>                   JavaPackage                                41
+ scrollbar.xml            Function                                   61
+ <null>                   Function                                  211
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/js_stat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_stat_example.txt
new file mode 100644
index 0000000..b658b4f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_stat_example.txt
@@ -0,0 +1,35 @@
+The following are examples of running js_stat.d
+
+Here is the result after running the program Code/JavaScript/func_clock.html.
+
+# js_stat.d 
+TIME                   EXEC/s   FUNC/s OBJNEW/s OBJFRE/s
+2007 Sep 23 23:04:59        1        9        1        0
+2007 Sep 23 23:05:00        1        9        1        0
+2007 Sep 23 23:05:01        1        9        1        0
+2007 Sep 23 23:05:02        1        6        1        0
+2007 Sep 23 23:05:03        0        3        0        0
+2007 Sep 23 23:05:04        1        9        1        0
+2007 Sep 23 23:05:05        1        9        1        0
+2007 Sep 23 23:05:06        1        9        1        0
+^C
+
+We can see that at 2007 Sep 23 23:05:02 there was one JavaScript program
+executed, six functions called, one new object created and no objects freed.
+
+
+Here is the result after running the program Code/JavaScript/func_slow.html.
+This also includes browser JavaScript.
+
+# js_stat.d 
+TIME                   EXEC/s   FUNC/s OBJNEW/s OBJFRE/s
+2007 Sep 23 23:05:48        1      124       41        0
+2007 Sep 23 23:05:49        1       29       19        0
+2007 Sep 23 23:05:50        1       29       25        0
+2007 Sep 23 23:05:51        1      670      497        0
+2007 Sep 23 23:05:52        0       62       11        0
+2007 Sep 23 23:05:53        0        0        6      617
+2007 Sep 23 23:05:54        0        0        0        0
+2007 Sep 23 23:05:55        0        0        0        0
+^C
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/js_who_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_who_example.txt
new file mode 100644
index 0000000..06e3e31
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/js_who_example.txt
@@ -0,0 +1,59 @@
+The following examples are the results of running the js_who.d script while
+various JavaScript events happen.
+
+A JavaScript program that behaves like a clock is frequently used by these
+examples, since it can be left running in the background without browser
+input. Browser input, such as hitting the reload button or using menus,
+triggers many other JavaScript events since much of the browser uses
+JavaScript. This makes for interesting longer examples, but would be
+overwhelming for example #1.
+
+In the first example, we can see what happens when we run this program,
+Code/JavaScript/func_clock.html
+
+# js_who.d 
+Tracing... Hit Ctrl-C to end.
+^C
+      PID    UID  FUNCS FILE
+    10530    100     18 file:///export/home/brendan/Lang/JavaScript/func_clock.html
+
+
+The second example is more complex, the reason for this is that the program
+Code/Javascript/func_slow.html was loaded in the browser, and the reload
+button was pressed.  This output captured the many browser events that occured
+when moving the mouse pointer to do so.
+
+# js_who.d 
+Tracing... Hit Ctrl-C to end.
+^C
+      PID    UID  FUNCS FILE
+    10530    100      2 chrome://firebug/content/views/css.js
+    10530    100      2 chrome://firebug/content/views/dom.js
+    10530    100      2 chrome://firebug/content/views/events.js
+    10530    100      2 chrome://firebug/content/views/layout.js
+    10530    100      2 chrome://firebug/content/views/source.js
+    10530    100      2 chrome://firebug/content/views/style.js
+    10530    100      2 chrome://global/content/bindings/scrollbar.xml
+    10530    100      3 chrome://global/content/bindings/general.xml
+    10530    100      3 chrome://global/content/bindings/tabbox.xml
+    10530    100      3 chrome://global/content/bindings/text.xml
+    10530    100      4 chrome://browser/content/utilityOverlay.js
+    10530    100      5 chrome://firebug/content/views/view.js
+    10530    100      6 file:///export/home/brendan/Lang/JavaScript/func_slow.html
+    10530    100      7 chrome://global/content/bindings/textbox.xml
+    10530    100      7 chrome://global/content/bindings/tree.xml
+    10530    100     10 chrome://reporter/content/reporterOverlay.js
+    10530    100     12 XStringBundle
+    10530    100     14 chrome://global/content/bindings/progressmeter.xml
+    10530    100     18 file:///export/home/brendan/Lang/JavaScript/func_clock.html
+    10530    100     19 chrome://firebug/content/utils.js
+    10530    100     30 chrome://webdeveloper/content/common/preferences.js
+    10530    100     43 chrome://global/content/bindings/browser.xml
+    10530    100     44 chrome://global/content/bindings/tabbrowser.xml
+    10530    100     72 chrome://global/content/bindings/button.xml
+    10530    100     88 chrome://global/content/bindings/autocomplete.xml
+    10530    100    110 chrome://browser/content/browser.js
+    10530    100    121 chrome://webdeveloper/content/webdeveloper.js
+    10530    100    133 chrome://firebug/content/firebug.js
+    10530    100    162 chrome://global/content/globalOverlay.js
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/kill_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/kill_example.txt
new file mode 100644
index 0000000..f73621c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/kill_example.txt
@@ -0,0 +1,12 @@
+This is an example of the kill.d DTrace script,
+
+   # kill.d
+    FROM      COMMAND   SIG TO     RESULT   
+    2344         bash     2 3117   0
+    2344         bash     9 12345  -1
+   ^C
+
+In the above output, a kill -2 (Ctrl-C) was sent from the bash command
+to PID 3177. Then a kill -9 (SIGKILL) was sent to PID 12345 - which 
+returned a "-1" for failure.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/kstat_types_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/kstat_types_example.txt
new file mode 100644
index 0000000..8ffecbf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/kstat_types_example.txt
@@ -0,0 +1,1358 @@
+The following are demonstrations of the kstat_types.d script.
+
+
+Here kstat_types.d is used to trace the kstat activity of the vmstat command,
+
+   # ./kstat_types.d
+   CMD              CLASS            TYPE   MOD:INS:NAME
+   vmstat           .                raw    :0:kstat_headers
+   vmstat           .                raw    :0:kstat_headers
+   vmstat           misc             named  cpu_info:0:cpu_info0
+   vmstat           misc             named  cpu:0:vm
+   vmstat           misc             named  cpu:0:sys
+   vmstat           disk             io     cmdk:0:cmdk0
+   vmstat           disk             io     sd:0:sd0
+   vmstat           misc             raw    unix:0:sysinfo
+   vmstat           vm               raw    unix:0:vminfo
+   vmstat           misc             named  unix:0:dnlcstats
+   vmstat           misc             named  unix:0:system_misc
+   ^C
+
+Details of each lookup can be seen, including each disk device that
+was read.
+
+
+
+This is mpstat on a single CPU server,
+
+   # ./kstat_types.d
+   CMD              CLASS            TYPE   MOD:INS:NAME
+   mpstat           .                raw    :0:kstat_headers
+   mpstat           .                raw    :0:kstat_headers
+   mpstat           misc             named  cpu_info:0:cpu_info0
+   mpstat           misc             named  cpu:0:vm
+   mpstat           misc             named  cpu:0:sys
+   ^C
+
+The output shows that the focus was CPU statistics, as expected.
+
+
+
+The following has caught in.routed reading some statistics,
+
+   # ./kstat_types.d
+   CMD              CLASS            TYPE   MOD:INS:NAME
+   in.routed        .                raw    :0:kstat_headers
+   in.routed        .                raw    :0:kstat_headers
+   in.routed        net              named  lo:0:lo0
+   in.routed        .                raw    :0:kstat_headers
+   in.routed        .                raw    :0:kstat_headers
+   in.routed        net              named  rtls:0:rtls0
+   in.routed        .                raw    :0:kstat_headers
+   in.routed        .                raw    :0:kstat_headers
+   in.routed        net              named  rtls:0:rtls0
+   ^C
+
+Which shows that the network interfaces were checked.
+
+
+
+Finally, this is the kstats used when a "sar -u 1 1" command is run.
+ie, this thing,
+
+   $ sar -u 1 1
+   
+   SunOS jupiter 5.10 Generic i86pc    04/21/2006
+   
+   23:28:53    %usr    %sys    %wio   %idle
+   23:28:54       1       3       0      96
+
+sar actually forks a child "sadc" to do the lookups. sadc caused the
+following kstat lookups (I'm not making this up),
+
+   # ./kstat_types.d
+   CMD              CLASS            TYPE   MOD:INS:NAME
+   sadc             .                raw    :0:kstat_headers
+   sadc             .                raw    :0:kstat_headers
+   sadc             misc             named  unix:0:system_misc
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             vmem             named  vmem:16:kmem_oversize
+   sadc             ufs              named  ufs:0:inode_cache
+   sadc             misc             raw    unix:0:var
+   sadc             kmem_cache       named  unix:0:kmem_magazine_1
+   sadc             kmem_cache       named  unix:0:kmem_magazine_3
+   sadc             kmem_cache       named  unix:0:kmem_magazine_7
+   sadc             kmem_cache       named  unix:0:kmem_magazine_15
+   sadc             kmem_cache       named  unix:0:kmem_magazine_31
+   sadc             kmem_cache       named  unix:0:kmem_magazine_47
+   sadc             kmem_cache       named  unix:0:kmem_magazine_63
+   sadc             kmem_cache       named  unix:0:kmem_magazine_95
+   sadc             kmem_cache       named  unix:0:kmem_magazine_143
+   sadc             kmem_cache       named  unix:0:kmem_slab_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_audit_cache
+   sadc             kmem_cache       named  unix:0:kmem_va_4096
+   sadc             kmem_cache       named  unix:0:kmem_va_8192
+   sadc             kmem_cache       named  unix:0:kmem_va_12288
+   sadc             kmem_cache       named  unix:0:kmem_va_16384
+   sadc             kmem_cache       named  unix:0:kmem_va_20480
+   sadc             kmem_cache       named  unix:0:kmem_va_24576
+   sadc             kmem_cache       named  unix:0:kmem_va_28672
+   sadc             kmem_cache       named  unix:0:kmem_va_32768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16
+   sadc             kmem_cache       named  unix:0:kmem_alloc_24
+   sadc             kmem_cache       named  unix:0:kmem_alloc_32
+   sadc             kmem_cache       named  unix:0:kmem_alloc_40
+   sadc             kmem_cache       named  unix:0:kmem_alloc_48
+   sadc             kmem_cache       named  unix:0:kmem_alloc_56
+   sadc             kmem_cache       named  unix:0:kmem_alloc_64
+   sadc             kmem_cache       named  unix:0:kmem_alloc_80
+   sadc             kmem_cache       named  unix:0:kmem_alloc_96
+   sadc             kmem_cache       named  unix:0:kmem_alloc_112
+   sadc             kmem_cache       named  unix:0:kmem_alloc_128
+   sadc             kmem_cache       named  unix:0:kmem_alloc_160
+   sadc             kmem_cache       named  unix:0:kmem_alloc_192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_224
+   sadc             kmem_cache       named  unix:0:kmem_alloc_256
+   sadc             kmem_cache       named  unix:0:kmem_alloc_320
+   sadc             kmem_cache       named  unix:0:kmem_alloc_384
+   sadc             kmem_cache       named  unix:0:kmem_alloc_448
+   sadc             kmem_cache       named  unix:0:kmem_alloc_512
+   sadc             kmem_cache       named  unix:0:kmem_alloc_640
+   sadc             kmem_cache       named  unix:0:kmem_alloc_768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_896
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1152
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1344
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1600
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2048
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2688
+   sadc             kmem_cache       named  unix:0:kmem_alloc_4096
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_12288
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16384
+   sadc             kmem_cache       named  unix:0:streams_mblk
+   sadc             kmem_cache       named  unix:0:streams_dblk_64
+   sadc             kmem_cache       named  unix:0:streams_dblk_128
+   sadc             kmem_cache       named  unix:0:streams_dblk_320
+   sadc             kmem_cache       named  unix:0:streams_dblk_576
+   sadc             kmem_cache       named  unix:0:streams_dblk_1088
+   sadc             kmem_cache       named  unix:0:streams_dblk_1536
+   sadc             kmem_cache       named  unix:0:streams_dblk_1984
+   sadc             kmem_cache       named  unix:0:streams_dblk_2624
+   sadc             kmem_cache       named  unix:0:streams_dblk_3968
+   sadc             kmem_cache       named  unix:0:streams_dblk_8192
+   sadc             kmem_cache       named  unix:0:streams_dblk_12160
+   sadc             kmem_cache       named  unix:0:streams_dblk_16384
+   sadc             kmem_cache       named  unix:0:streams_dblk_20352
+   sadc             kmem_cache       named  unix:0:streams_dblk_24576
+   sadc             kmem_cache       named  unix:0:streams_dblk_28544
+   sadc             kmem_cache       named  unix:0:streams_dblk_32768
+   sadc             kmem_cache       named  unix:0:streams_dblk_36736
+   sadc             kmem_cache       named  unix:0:streams_dblk_40960
+   sadc             kmem_cache       named  unix:0:streams_dblk_44928
+   sadc             kmem_cache       named  unix:0:streams_dblk_49152
+   sadc             kmem_cache       named  unix:0:streams_dblk_53120
+   sadc             kmem_cache       named  unix:0:streams_dblk_57344
+   sadc             kmem_cache       named  unix:0:streams_dblk_61312
+   sadc             kmem_cache       named  unix:0:streams_dblk_65536
+   sadc             kmem_cache       named  unix:0:streams_dblk_69504
+   sadc             kmem_cache       named  unix:0:streams_dblk_73728
+   sadc             kmem_cache       named  unix:0:streams_dblk_esb
+   sadc             kmem_cache       named  unix:0:streams_fthdr
+   sadc             kmem_cache       named  unix:0:streams_ftblk
+   sadc             kmem_cache       named  unix:0:multidata
+   sadc             kmem_cache       named  unix:0:multidata_pdslab
+   sadc             kmem_cache       named  unix:0:multidata_pattbl
+   sadc             kmem_cache       named  unix:0:taskq_ent_cache
+   sadc             kmem_cache       named  unix:0:taskq_cache
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_4096
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_4096
+   sadc             kmem_cache       named  unix:0:id32_cache
+   sadc             kmem_cache       named  unix:0:bp_map_4096
+   sadc             kmem_cache       named  unix:0:bp_map_8192
+   sadc             kmem_cache       named  unix:0:bp_map_12288
+   sadc             kmem_cache       named  unix:0:bp_map_16384
+   sadc             kmem_cache       named  unix:0:bp_map_20480
+   sadc             kmem_cache       named  unix:0:bp_map_24576
+   sadc             kmem_cache       named  unix:0:bp_map_28672
+   sadc             kmem_cache       named  unix:0:bp_map_32768
+   sadc             kmem_cache       named  unix:0:mod_hash_entries
+   sadc             kmem_cache       named  unix:0:ipp_mod
+   sadc             kmem_cache       named  unix:0:ipp_action
+   sadc             kmem_cache       named  unix:0:ipp_packet
+   sadc             kmem_cache       named  unix:0:htable_t
+   sadc             kmem_cache       named  unix:0:hment_t
+   sadc             kmem_cache       named  unix:0:hat_t
+   sadc             kmem_cache       named  unix:0:HatHash
+   sadc             kmem_cache       named  unix:0:seg_cache
+   sadc             kmem_cache       named  unix:0:snode_cache
+   sadc             kmem_cache       named  unix:0:dv_node_cache
+   sadc             kmem_cache       named  unix:0:dev_info_node_cache
+   sadc             kmem_cache       named  unix:0:segkp_4096
+   sadc             kmem_cache       named  unix:0:segkp_8192
+   sadc             kmem_cache       named  unix:0:segkp_12288
+   sadc             kmem_cache       named  unix:0:segkp_16384
+   sadc             kmem_cache       named  unix:0:segkp_20480
+   sadc             kmem_cache       named  unix:0:thread_cache
+   sadc             kmem_cache       named  unix:0:lwp_cache
+   sadc             kmem_cache       named  unix:0:turnstile_cache
+   sadc             kmem_cache       named  unix:0:cred_cache
+   sadc             kmem_cache       named  unix:0:rctl_cache
+   sadc             kmem_cache       named  unix:0:rctl_val_cache
+   sadc             kmem_cache       named  unix:0:task_cache
+   sadc             kmem_cache       named  unix:0:cyclic_id_cache
+   sadc             kmem_cache       named  unix:0:dnlc_space_cache
+   sadc             kmem_cache       named  unix:0:vn_cache
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             kmem_cache       named  unix:0:stream_head_cache
+   sadc             kmem_cache       named  unix:0:queue_cache
+   sadc             kmem_cache       named  unix:0:syncq_cache
+   sadc             kmem_cache       named  unix:0:qband_cache
+   sadc             kmem_cache       named  unix:0:linkinfo_cache
+   sadc             kmem_cache       named  unix:0:ciputctrl_cache
+   sadc             kmem_cache       named  unix:0:serializer_cache
+   sadc             kmem_cache       named  unix:0:as_cache
+   sadc             kmem_cache       named  unix:0:marker_cache
+   sadc             kmem_cache       named  unix:0:anon_cache
+   sadc             kmem_cache       named  unix:0:anonmap_cache
+   sadc             kmem_cache       named  unix:0:segvn_cache
+   sadc             kmem_cache       named  unix:0:flk_edges
+   sadc             kmem_cache       named  unix:0:fdb_cache
+   sadc             kmem_cache       named  unix:0:timer_cache
+   sadc             kmem_cache       named  unix:0:physio_buf_cache
+   sadc             kmem_cache       named  unix:0:ufs_inode_cache
+   sadc             kmem_cache       named  unix:0:directio_buf_cache
+   sadc             kmem_cache       named  unix:0:lufs_save
+   sadc             kmem_cache       named  unix:0:lufs_bufs
+   sadc             kmem_cache       named  unix:0:lufs_mapentry_cache
+   sadc             misc             raw    cpu_stat:0:cpu_stat0
+   sadc             kmem_cache       named  unix:0:kcf_sreq_cache
+   sadc             kmem_cache       named  unix:0:kcf_areq_cache
+   sadc             kmem_cache       named  unix:0:kcf_context_cache
+   sadc             kmem_cache       named  unix:0:ipsec_actions
+   sadc             kmem_cache       named  unix:0:ipsec_selectors
+   sadc             kmem_cache       named  unix:0:ipsec_policy
+   sadc             kmem_cache       named  unix:0:ipsec_info
+   sadc             kmem_cache       named  unix:0:ip_minor_arena_1
+   sadc             kmem_cache       named  unix:0:ipcl_conn_cache
+   sadc             kmem_cache       named  unix:0:ipcl_tcpconn_cache
+   sadc             kmem_cache       named  unix:0:ire_cache
+   sadc             kmem_cache       named  unix:0:tcp_timercache
+   sadc             kmem_cache       named  unix:0:tcp_sack_info_cache
+   sadc             kmem_cache       named  unix:0:tcp_iphc_cache
+   sadc             kmem_cache       named  unix:0:squeue_cache
+   sadc             kmem_cache       named  unix:0:sctp_conn_cache
+   sadc             kmem_cache       named  unix:0:sctp_faddr_cache
+   sadc             kmem_cache       named  unix:0:sctp_set_cache
+   sadc             kmem_cache       named  unix:0:sctp_ftsn_set_cache
+   sadc             kmem_cache       named  unix:0:sctpsock
+   sadc             kmem_cache       named  unix:0:sctp_assoc
+   sadc             kmem_cache       named  unix:0:socktpi_cache
+   sadc             kmem_cache       named  unix:0:socktpi_unix_cache
+   sadc             kmem_cache       named  unix:0:ncafs_cache
+   sadc             kmem_cache       named  unix:0:process_cache
+   sadc             kmem_cache       named  unix:0:exacct_object_cache
+   sadc             kmem_cache       named  unix:0:fctl_cache
+   sadc             kmem_cache       named  unix:0:tl_cache
+   sadc             kmem_cache       named  unix:0:keysock_1
+   sadc             kmem_cache       named  unix:0:spdsock_1
+   sadc             kmem_cache       named  unix:0:fnode_cache
+   sadc             kmem_cache       named  unix:0:pipe_cache
+   sadc             kmem_cache       named  unix:0:namefs_inodes_1
+   sadc             kmem_cache       named  unix:0:port_cache
+   sadc             kmem_cache       named  unix:0:lnode_cache
+   sadc             kmem_cache       named  unix:0:clnt_clts_endpnt_cache
+   sadc             kmem_cache       named  unix:0:pty_map
+   sadc             kmem_cache       named  unix:0:sppptun_map
+   sadc             kmem_cache       named  unix:0:dtrace_state_cache
+   sadc             kmem_cache       named  unix:0:qif_head_cache
+   sadc             kmem_cache       named  unix:0:udp_minor_1
+   sadc             kmem_cache       named  unix:0:authkern_cache
+   sadc             kmem_cache       named  unix:0:authloopback_cache
+   sadc             kmem_cache       named  unix:0:authdes_cache_handle
+   sadc             kmem_cache       named  unix:0:rnode_cache
+   sadc             kmem_cache       named  unix:0:nfs_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle_cache
+   sadc             kmem_cache       named  unix:0:rnode4_cache
+   sadc             kmem_cache       named  unix:0:svnode_cache
+   sadc             kmem_cache       named  unix:0:nfs4_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle4_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4vals_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4_list_cache
+   sadc             kmem_cache       named  unix:0:NFS_idmap_cache
+   sadc             kmem_cache       named  unix:0:lm_vnode
+   sadc             kmem_cache       named  unix:0:lm_xprt
+   sadc             kmem_cache       named  unix:0:lm_sysid
+   sadc             kmem_cache       named  unix:0:lm_client
+   sadc             kmem_cache       named  unix:0:lm_async
+   sadc             kmem_cache       named  unix:0:lm_sleep
+   sadc             kmem_cache       named  unix:0:lm_config
+   sadc             kmem_cache       named  unix:0:nfslog_small_rec
+   sadc             kmem_cache       named  unix:0:nfslog_medium_rec
+   sadc             kmem_cache       named  unix:0:nfslog_large_rec
+   sadc             kmem_cache       named  unix:0:exi_cache_handle
+   sadc             kmem_cache       named  unix:0:Client_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenOwner_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:LockStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:Lockowner_entry_cache
+   sadc             kmem_cache       named  unix:0:File_entry_cache
+   sadc             kmem_cache       named  unix:0:DelegStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:ip_minor_1
+   sadc             kmem_cache       named  unix:0:ar_minor_1
+   sadc             kmem_cache       named  unix:0:icmp_minor_1
+   sadc             kmem_cache       named  unix:0:crypto_session_cache
+   sadc             kmem_cache       named  unix:0:fcsm_job_cache
+   sadc             kmem_cache       named  unix:0:sd0_cache
+   sadc             kmem_cache       named  unix:0:hsfs_hsnode_cache
+   sadc             kmem_cache       named  unix:0:kmem_magazine_1
+   sadc             misc             named  unix:0:system_misc
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             vmem             named  vmem:16:kmem_oversize
+   sadc             ufs              named  ufs:0:inode_cache
+   sadc             misc             raw    unix:0:var
+   sadc             kmem_cache       named  unix:0:kmem_magazine_1
+   sadc             kmem_cache       named  unix:0:kmem_magazine_3
+   sadc             kmem_cache       named  unix:0:kmem_magazine_7
+   sadc             kmem_cache       named  unix:0:kmem_magazine_15
+   sadc             kmem_cache       named  unix:0:kmem_magazine_31
+   sadc             kmem_cache       named  unix:0:kmem_magazine_47
+   sadc             kmem_cache       named  unix:0:kmem_magazine_63
+   sadc             kmem_cache       named  unix:0:kmem_magazine_95
+   sadc             kmem_cache       named  unix:0:kmem_magazine_143
+   sadc             kmem_cache       named  unix:0:kmem_slab_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_audit_cache
+   sadc             kmem_cache       named  unix:0:kmem_va_4096
+   sadc             kmem_cache       named  unix:0:kmem_va_8192
+   sadc             kmem_cache       named  unix:0:kmem_va_12288
+   sadc             kmem_cache       named  unix:0:kmem_va_16384
+   sadc             kmem_cache       named  unix:0:kmem_va_20480
+   sadc             kmem_cache       named  unix:0:kmem_va_24576
+   sadc             kmem_cache       named  unix:0:kmem_va_28672
+   sadc             kmem_cache       named  unix:0:kmem_va_32768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16
+   sadc             kmem_cache       named  unix:0:kmem_alloc_24
+   sadc             kmem_cache       named  unix:0:kmem_alloc_32
+   sadc             kmem_cache       named  unix:0:kmem_alloc_40
+   sadc             kmem_cache       named  unix:0:kmem_alloc_48
+   sadc             kmem_cache       named  unix:0:kmem_alloc_56
+   sadc             kmem_cache       named  unix:0:kmem_alloc_64
+   sadc             kmem_cache       named  unix:0:kmem_alloc_80
+   sadc             kmem_cache       named  unix:0:kmem_alloc_96
+   sadc             kmem_cache       named  unix:0:kmem_alloc_112
+   sadc             kmem_cache       named  unix:0:kmem_alloc_128
+   sadc             kmem_cache       named  unix:0:kmem_alloc_160
+   sadc             kmem_cache       named  unix:0:kmem_alloc_192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_224
+   sadc             kmem_cache       named  unix:0:kmem_alloc_256
+   sadc             kmem_cache       named  unix:0:kmem_alloc_320
+   sadc             kmem_cache       named  unix:0:kmem_alloc_384
+   sadc             kmem_cache       named  unix:0:kmem_alloc_448
+   sadc             kmem_cache       named  unix:0:kmem_alloc_512
+   sadc             kmem_cache       named  unix:0:kmem_alloc_640
+   sadc             kmem_cache       named  unix:0:kmem_alloc_768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_896
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1152
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1344
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1600
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2048
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2688
+   sadc             kmem_cache       named  unix:0:kmem_alloc_4096
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_12288
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16384
+   sadc             kmem_cache       named  unix:0:streams_mblk
+   sadc             kmem_cache       named  unix:0:streams_dblk_64
+   sadc             kmem_cache       named  unix:0:streams_dblk_128
+   sadc             kmem_cache       named  unix:0:streams_dblk_320
+   sadc             kmem_cache       named  unix:0:streams_dblk_576
+   sadc             kmem_cache       named  unix:0:streams_dblk_1088
+   sadc             kmem_cache       named  unix:0:streams_dblk_1536
+   sadc             kmem_cache       named  unix:0:streams_dblk_1984
+   sadc             kmem_cache       named  unix:0:streams_dblk_2624
+   sadc             kmem_cache       named  unix:0:streams_dblk_3968
+   sadc             kmem_cache       named  unix:0:streams_dblk_8192
+   sadc             kmem_cache       named  unix:0:streams_dblk_12160
+   sadc             kmem_cache       named  unix:0:streams_dblk_16384
+   sadc             kmem_cache       named  unix:0:streams_dblk_20352
+   sadc             kmem_cache       named  unix:0:streams_dblk_24576
+   sadc             kmem_cache       named  unix:0:streams_dblk_28544
+   sadc             kmem_cache       named  unix:0:streams_dblk_32768
+   sadc             kmem_cache       named  unix:0:streams_dblk_36736
+   sadc             kmem_cache       named  unix:0:streams_dblk_40960
+   sadc             kmem_cache       named  unix:0:streams_dblk_44928
+   sadc             kmem_cache       named  unix:0:streams_dblk_49152
+   sadc             kmem_cache       named  unix:0:streams_dblk_53120
+   sadc             kmem_cache       named  unix:0:streams_dblk_57344
+   sadc             kmem_cache       named  unix:0:streams_dblk_61312
+   sadc             kmem_cache       named  unix:0:streams_dblk_65536
+   sadc             kmem_cache       named  unix:0:streams_dblk_69504
+   sadc             kmem_cache       named  unix:0:streams_dblk_73728
+   sadc             kmem_cache       named  unix:0:streams_dblk_esb
+   sadc             kmem_cache       named  unix:0:streams_fthdr
+   sadc             kmem_cache       named  unix:0:streams_ftblk
+   sadc             kmem_cache       named  unix:0:multidata
+   sadc             kmem_cache       named  unix:0:multidata_pdslab
+   sadc             kmem_cache       named  unix:0:multidata_pattbl
+   sadc             kmem_cache       named  unix:0:taskq_ent_cache
+   sadc             kmem_cache       named  unix:0:taskq_cache
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_4096
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_4096
+   sadc             kmem_cache       named  unix:0:id32_cache
+   sadc             kmem_cache       named  unix:0:bp_map_4096
+   sadc             kmem_cache       named  unix:0:bp_map_8192
+   sadc             kmem_cache       named  unix:0:bp_map_12288
+   sadc             kmem_cache       named  unix:0:bp_map_16384
+   sadc             kmem_cache       named  unix:0:bp_map_20480
+   sadc             kmem_cache       named  unix:0:bp_map_24576
+   sadc             kmem_cache       named  unix:0:bp_map_28672
+   sadc             kmem_cache       named  unix:0:bp_map_32768
+   sadc             kmem_cache       named  unix:0:mod_hash_entries
+   sadc             kmem_cache       named  unix:0:ipp_mod
+   sadc             kmem_cache       named  unix:0:ipp_action
+   sadc             kmem_cache       named  unix:0:ipp_packet
+   sadc             kmem_cache       named  unix:0:htable_t
+   sadc             kmem_cache       named  unix:0:hment_t
+   sadc             kmem_cache       named  unix:0:hat_t
+   sadc             kmem_cache       named  unix:0:HatHash
+   sadc             kmem_cache       named  unix:0:seg_cache
+   sadc             kmem_cache       named  unix:0:snode_cache
+   sadc             kmem_cache       named  unix:0:dv_node_cache
+   sadc             kmem_cache       named  unix:0:dev_info_node_cache
+   sadc             kmem_cache       named  unix:0:segkp_4096
+   sadc             kmem_cache       named  unix:0:segkp_8192
+   sadc             kmem_cache       named  unix:0:segkp_12288
+   sadc             kmem_cache       named  unix:0:segkp_16384
+   sadc             kmem_cache       named  unix:0:segkp_20480
+   sadc             kmem_cache       named  unix:0:thread_cache
+   sadc             kmem_cache       named  unix:0:lwp_cache
+   sadc             kmem_cache       named  unix:0:turnstile_cache
+   sadc             kmem_cache       named  unix:0:cred_cache
+   sadc             kmem_cache       named  unix:0:rctl_cache
+   sadc             kmem_cache       named  unix:0:rctl_val_cache
+   sadc             kmem_cache       named  unix:0:task_cache
+   sadc             kmem_cache       named  unix:0:cyclic_id_cache
+   sadc             kmem_cache       named  unix:0:dnlc_space_cache
+   sadc             kmem_cache       named  unix:0:vn_cache
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             kmem_cache       named  unix:0:stream_head_cache
+   sadc             kmem_cache       named  unix:0:queue_cache
+   sadc             kmem_cache       named  unix:0:syncq_cache
+   sadc             kmem_cache       named  unix:0:qband_cache
+   sadc             kmem_cache       named  unix:0:linkinfo_cache
+   sadc             kmem_cache       named  unix:0:ciputctrl_cache
+   sadc             kmem_cache       named  unix:0:serializer_cache
+   sadc             kmem_cache       named  unix:0:as_cache
+   sadc             kmem_cache       named  unix:0:marker_cache
+   sadc             kmem_cache       named  unix:0:anon_cache
+   sadc             kmem_cache       named  unix:0:anonmap_cache
+   sadc             kmem_cache       named  unix:0:segvn_cache
+   sadc             kmem_cache       named  unix:0:flk_edges
+   sadc             kmem_cache       named  unix:0:fdb_cache
+   sadc             kmem_cache       named  unix:0:timer_cache
+   sadc             kmem_cache       named  unix:0:physio_buf_cache
+   sadc             kmem_cache       named  unix:0:ufs_inode_cache
+   sadc             kmem_cache       named  unix:0:directio_buf_cache
+   sadc             kmem_cache       named  unix:0:lufs_save
+   sadc             kmem_cache       named  unix:0:lufs_bufs
+   sadc             kmem_cache       named  unix:0:lufs_mapentry_cache
+   sadc             misc             raw    cpu_stat:0:cpu_stat0
+   sadc             kmem_cache       named  unix:0:kcf_sreq_cache
+   sadc             kmem_cache       named  unix:0:kcf_areq_cache
+   sadc             kmem_cache       named  unix:0:kcf_context_cache
+   sadc             kmem_cache       named  unix:0:ipsec_actions
+   sadc             kmem_cache       named  unix:0:ipsec_selectors
+   sadc             kmem_cache       named  unix:0:ipsec_policy
+   sadc             kmem_cache       named  unix:0:ipsec_info
+   sadc             kmem_cache       named  unix:0:ip_minor_arena_1
+   sadc             kmem_cache       named  unix:0:ipcl_conn_cache
+   sadc             kmem_cache       named  unix:0:ipcl_tcpconn_cache
+   sadc             kmem_cache       named  unix:0:ire_cache
+   sadc             kmem_cache       named  unix:0:tcp_timercache
+   sadc             kmem_cache       named  unix:0:tcp_sack_info_cache
+   sadc             kmem_cache       named  unix:0:tcp_iphc_cache
+   sadc             kmem_cache       named  unix:0:squeue_cache
+   sadc             kmem_cache       named  unix:0:sctp_conn_cache
+   sadc             kmem_cache       named  unix:0:sctp_faddr_cache
+   sadc             kmem_cache       named  unix:0:sctp_set_cache
+   sadc             kmem_cache       named  unix:0:sctp_ftsn_set_cache
+   sadc             kmem_cache       named  unix:0:sctpsock
+   sadc             kmem_cache       named  unix:0:sctp_assoc
+   sadc             kmem_cache       named  unix:0:socktpi_cache
+   sadc             kmem_cache       named  unix:0:socktpi_unix_cache
+   sadc             kmem_cache       named  unix:0:ncafs_cache
+   sadc             kmem_cache       named  unix:0:process_cache
+   sadc             kmem_cache       named  unix:0:exacct_object_cache
+   sadc             kmem_cache       named  unix:0:fctl_cache
+   sadc             kmem_cache       named  unix:0:tl_cache
+   sadc             kmem_cache       named  unix:0:keysock_1
+   sadc             kmem_cache       named  unix:0:spdsock_1
+   sadc             kmem_cache       named  unix:0:fnode_cache
+   sadc             kmem_cache       named  unix:0:pipe_cache
+   sadc             kmem_cache       named  unix:0:namefs_inodes_1
+   sadc             kmem_cache       named  unix:0:port_cache
+   sadc             kmem_cache       named  unix:0:lnode_cache
+   sadc             kmem_cache       named  unix:0:clnt_clts_endpnt_cache
+   sadc             kmem_cache       named  unix:0:pty_map
+   sadc             kmem_cache       named  unix:0:sppptun_map
+   sadc             kmem_cache       named  unix:0:dtrace_state_cache
+   sadc             kmem_cache       named  unix:0:qif_head_cache
+   sadc             kmem_cache       named  unix:0:udp_minor_1
+   sadc             kmem_cache       named  unix:0:authkern_cache
+   sadc             kmem_cache       named  unix:0:authloopback_cache
+   sadc             kmem_cache       named  unix:0:authdes_cache_handle
+   sadc             kmem_cache       named  unix:0:rnode_cache
+   sadc             kmem_cache       named  unix:0:nfs_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle_cache
+   sadc             kmem_cache       named  unix:0:rnode4_cache
+   sadc             kmem_cache       named  unix:0:svnode_cache
+   sadc             kmem_cache       named  unix:0:nfs4_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle4_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4vals_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4_list_cache
+   sadc             kmem_cache       named  unix:0:NFS_idmap_cache
+   sadc             kmem_cache       named  unix:0:lm_vnode
+   sadc             kmem_cache       named  unix:0:lm_xprt
+   sadc             kmem_cache       named  unix:0:lm_sysid
+   sadc             kmem_cache       named  unix:0:lm_client
+   sadc             kmem_cache       named  unix:0:lm_async
+   sadc             kmem_cache       named  unix:0:lm_sleep
+   sadc             kmem_cache       named  unix:0:lm_config
+   sadc             kmem_cache       named  unix:0:nfslog_small_rec
+   sadc             kmem_cache       named  unix:0:nfslog_medium_rec
+   sadc             kmem_cache       named  unix:0:nfslog_large_rec
+   sadc             kmem_cache       named  unix:0:exi_cache_handle
+   sadc             kmem_cache       named  unix:0:Client_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenOwner_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:LockStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:Lockowner_entry_cache
+   sadc             kmem_cache       named  unix:0:File_entry_cache
+   sadc             kmem_cache       named  unix:0:DelegStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:ip_minor_1
+   sadc             kmem_cache       named  unix:0:ar_minor_1
+   sadc             kmem_cache       named  unix:0:icmp_minor_1
+   sadc             kmem_cache       named  unix:0:crypto_session_cache
+   sadc             kmem_cache       named  unix:0:fcsm_job_cache
+   sadc             kmem_cache       named  unix:0:sd0_cache
+   sadc             kmem_cache       named  unix:0:hsfs_hsnode_cache
+   sadc             kmem_cache       named  unix:0:kmem_magazine_1
+   sadc             misc             raw    unix:0:sysinfo
+   sadc             vm               raw    unix:0:vminfo
+   sadc             misc             named  unix:0:system_misc
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             ufs              named  ufs:0:inode_cache
+   sadc             misc             raw    cpu_stat:0:cpu_stat0
+   sadc             kmem_cache       named  unix:0:kmem_magazine_1
+   sadc             kmem_cache       named  unix:0:kmem_magazine_3
+   sadc             kmem_cache       named  unix:0:kmem_magazine_7
+   sadc             kmem_cache       named  unix:0:kmem_magazine_15
+   sadc             kmem_cache       named  unix:0:kmem_magazine_31
+   sadc             kmem_cache       named  unix:0:kmem_magazine_47
+   sadc             kmem_cache       named  unix:0:kmem_magazine_63
+   sadc             kmem_cache       named  unix:0:kmem_magazine_95
+   sadc             kmem_cache       named  unix:0:kmem_magazine_143
+   sadc             kmem_cache       named  unix:0:kmem_slab_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_audit_cache
+   sadc             kmem_cache       named  unix:0:kmem_va_4096
+   sadc             kmem_cache       named  unix:0:kmem_va_8192
+   sadc             kmem_cache       named  unix:0:kmem_va_12288
+   sadc             kmem_cache       named  unix:0:kmem_va_16384
+   sadc             kmem_cache       named  unix:0:kmem_va_20480
+   sadc             kmem_cache       named  unix:0:kmem_va_24576
+   sadc             kmem_cache       named  unix:0:kmem_va_28672
+   sadc             kmem_cache       named  unix:0:kmem_va_32768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16
+   sadc             kmem_cache       named  unix:0:kmem_alloc_24
+   sadc             kmem_cache       named  unix:0:kmem_alloc_32
+   sadc             kmem_cache       named  unix:0:kmem_alloc_40
+   sadc             kmem_cache       named  unix:0:kmem_alloc_48
+   sadc             kmem_cache       named  unix:0:kmem_alloc_56
+   sadc             kmem_cache       named  unix:0:kmem_alloc_64
+   sadc             kmem_cache       named  unix:0:kmem_alloc_80
+   sadc             kmem_cache       named  unix:0:kmem_alloc_96
+   sadc             kmem_cache       named  unix:0:kmem_alloc_112
+   sadc             kmem_cache       named  unix:0:kmem_alloc_128
+   sadc             kmem_cache       named  unix:0:kmem_alloc_160
+   sadc             kmem_cache       named  unix:0:kmem_alloc_192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_224
+   sadc             kmem_cache       named  unix:0:kmem_alloc_256
+   sadc             kmem_cache       named  unix:0:kmem_alloc_320
+   sadc             kmem_cache       named  unix:0:kmem_alloc_384
+   sadc             kmem_cache       named  unix:0:kmem_alloc_448
+   sadc             kmem_cache       named  unix:0:kmem_alloc_512
+   sadc             kmem_cache       named  unix:0:kmem_alloc_640
+   sadc             kmem_cache       named  unix:0:kmem_alloc_768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_896
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1152
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1344
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1600
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2048
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2688
+   sadc             kmem_cache       named  unix:0:kmem_alloc_4096
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_12288
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16384
+   sadc             kmem_cache       named  unix:0:streams_mblk
+   sadc             kmem_cache       named  unix:0:streams_dblk_64
+   sadc             kmem_cache       named  unix:0:streams_dblk_128
+   sadc             kmem_cache       named  unix:0:streams_dblk_320
+   sadc             kmem_cache       named  unix:0:streams_dblk_576
+   sadc             kmem_cache       named  unix:0:streams_dblk_1088
+   sadc             kmem_cache       named  unix:0:streams_dblk_1536
+   sadc             kmem_cache       named  unix:0:streams_dblk_1984
+   sadc             kmem_cache       named  unix:0:streams_dblk_2624
+   sadc             kmem_cache       named  unix:0:streams_dblk_3968
+   sadc             kmem_cache       named  unix:0:streams_dblk_8192
+   sadc             kmem_cache       named  unix:0:streams_dblk_12160
+   sadc             kmem_cache       named  unix:0:streams_dblk_16384
+   sadc             kmem_cache       named  unix:0:streams_dblk_20352
+   sadc             kmem_cache       named  unix:0:streams_dblk_24576
+   sadc             kmem_cache       named  unix:0:streams_dblk_28544
+   sadc             kmem_cache       named  unix:0:streams_dblk_32768
+   sadc             kmem_cache       named  unix:0:streams_dblk_36736
+   sadc             kmem_cache       named  unix:0:streams_dblk_40960
+   sadc             kmem_cache       named  unix:0:streams_dblk_44928
+   sadc             kmem_cache       named  unix:0:streams_dblk_49152
+   sadc             kmem_cache       named  unix:0:streams_dblk_53120
+   sadc             kmem_cache       named  unix:0:streams_dblk_57344
+   sadc             kmem_cache       named  unix:0:streams_dblk_61312
+   sadc             kmem_cache       named  unix:0:streams_dblk_65536
+   sadc             kmem_cache       named  unix:0:streams_dblk_69504
+   sadc             kmem_cache       named  unix:0:streams_dblk_73728
+   sadc             kmem_cache       named  unix:0:streams_dblk_esb
+   sadc             kmem_cache       named  unix:0:streams_fthdr
+   sadc             kmem_cache       named  unix:0:streams_ftblk
+   sadc             kmem_cache       named  unix:0:multidata
+   sadc             kmem_cache       named  unix:0:multidata_pdslab
+   sadc             kmem_cache       named  unix:0:multidata_pattbl
+   sadc             kmem_cache       named  unix:0:taskq_ent_cache
+   sadc             kmem_cache       named  unix:0:taskq_cache
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_4096
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_4096
+   sadc             kmem_cache       named  unix:0:id32_cache
+   sadc             kmem_cache       named  unix:0:bp_map_4096
+   sadc             kmem_cache       named  unix:0:bp_map_8192
+   sadc             kmem_cache       named  unix:0:bp_map_12288
+   sadc             kmem_cache       named  unix:0:bp_map_16384
+   sadc             kmem_cache       named  unix:0:bp_map_20480
+   sadc             kmem_cache       named  unix:0:bp_map_24576
+   sadc             kmem_cache       named  unix:0:bp_map_28672
+   sadc             kmem_cache       named  unix:0:bp_map_32768
+   sadc             kmem_cache       named  unix:0:mod_hash_entries
+   sadc             kmem_cache       named  unix:0:ipp_mod
+   sadc             kmem_cache       named  unix:0:ipp_action
+   sadc             kmem_cache       named  unix:0:ipp_packet
+   sadc             kmem_cache       named  unix:0:htable_t
+   sadc             kmem_cache       named  unix:0:hment_t
+   sadc             kmem_cache       named  unix:0:hat_t
+   sadc             kmem_cache       named  unix:0:HatHash
+   sadc             kmem_cache       named  unix:0:seg_cache
+   sadc             kmem_cache       named  unix:0:snode_cache
+   sadc             kmem_cache       named  unix:0:dv_node_cache
+   sadc             kmem_cache       named  unix:0:dev_info_node_cache
+   sadc             kmem_cache       named  unix:0:segkp_4096
+   sadc             kmem_cache       named  unix:0:segkp_8192
+   sadc             kmem_cache       named  unix:0:segkp_12288
+   sadc             kmem_cache       named  unix:0:segkp_16384
+   sadc             kmem_cache       named  unix:0:segkp_20480
+   sadc             kmem_cache       named  unix:0:thread_cache
+   sadc             kmem_cache       named  unix:0:lwp_cache
+   sadc             kmem_cache       named  unix:0:turnstile_cache
+   sadc             kmem_cache       named  unix:0:cred_cache
+   sadc             kmem_cache       named  unix:0:rctl_cache
+   sadc             kmem_cache       named  unix:0:rctl_val_cache
+   sadc             kmem_cache       named  unix:0:task_cache
+   sadc             kmem_cache       named  unix:0:cyclic_id_cache
+   sadc             kmem_cache       named  unix:0:dnlc_space_cache
+   sadc             kmem_cache       named  unix:0:vn_cache
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             kmem_cache       named  unix:0:stream_head_cache
+   sadc             kmem_cache       named  unix:0:queue_cache
+   sadc             kmem_cache       named  unix:0:syncq_cache
+   sadc             kmem_cache       named  unix:0:qband_cache
+   sadc             kmem_cache       named  unix:0:linkinfo_cache
+   sadc             kmem_cache       named  unix:0:ciputctrl_cache
+   sadc             kmem_cache       named  unix:0:serializer_cache
+   sadc             kmem_cache       named  unix:0:as_cache
+   sadc             kmem_cache       named  unix:0:marker_cache
+   sadc             kmem_cache       named  unix:0:anon_cache
+   sadc             kmem_cache       named  unix:0:anonmap_cache
+   sadc             kmem_cache       named  unix:0:segvn_cache
+   sadc             kmem_cache       named  unix:0:flk_edges
+   sadc             kmem_cache       named  unix:0:fdb_cache
+   sadc             kmem_cache       named  unix:0:timer_cache
+   sadc             kmem_cache       named  unix:0:physio_buf_cache
+   sadc             kmem_cache       named  unix:0:ufs_inode_cache
+   sadc             kmem_cache       named  unix:0:directio_buf_cache
+   sadc             kmem_cache       named  unix:0:lufs_save
+   sadc             kmem_cache       named  unix:0:lufs_bufs
+   sadc             kmem_cache       named  unix:0:lufs_mapentry_cache
+   sadc             kmem_cache       named  unix:0:kcf_sreq_cache
+   sadc             kmem_cache       named  unix:0:kcf_areq_cache
+   sadc             kmem_cache       named  unix:0:kcf_context_cache
+   sadc             kmem_cache       named  unix:0:ipsec_actions
+   sadc             kmem_cache       named  unix:0:ipsec_selectors
+   sadc             kmem_cache       named  unix:0:ipsec_policy
+   sadc             kmem_cache       named  unix:0:ipsec_info
+   sadc             kmem_cache       named  unix:0:ip_minor_arena_1
+   sadc             kmem_cache       named  unix:0:ipcl_conn_cache
+   sadc             kmem_cache       named  unix:0:ipcl_tcpconn_cache
+   sadc             kmem_cache       named  unix:0:ire_cache
+   sadc             kmem_cache       named  unix:0:tcp_timercache
+   sadc             kmem_cache       named  unix:0:tcp_sack_info_cache
+   sadc             kmem_cache       named  unix:0:tcp_iphc_cache
+   sadc             kmem_cache       named  unix:0:squeue_cache
+   sadc             kmem_cache       named  unix:0:sctp_conn_cache
+   sadc             kmem_cache       named  unix:0:sctp_faddr_cache
+   sadc             kmem_cache       named  unix:0:sctp_set_cache
+   sadc             kmem_cache       named  unix:0:sctp_ftsn_set_cache
+   sadc             kmem_cache       named  unix:0:sctpsock
+   sadc             kmem_cache       named  unix:0:sctp_assoc
+   sadc             kmem_cache       named  unix:0:socktpi_cache
+   sadc             kmem_cache       named  unix:0:socktpi_unix_cache
+   sadc             kmem_cache       named  unix:0:ncafs_cache
+   sadc             kmem_cache       named  unix:0:process_cache
+   sadc             kmem_cache       named  unix:0:exacct_object_cache
+   sadc             kmem_cache       named  unix:0:fctl_cache
+   sadc             kmem_cache       named  unix:0:tl_cache
+   sadc             kmem_cache       named  unix:0:keysock_1
+   sadc             kmem_cache       named  unix:0:spdsock_1
+   sadc             kmem_cache       named  unix:0:fnode_cache
+   sadc             kmem_cache       named  unix:0:pipe_cache
+   sadc             kmem_cache       named  unix:0:namefs_inodes_1
+   sadc             kmem_cache       named  unix:0:port_cache
+   sadc             kmem_cache       named  unix:0:lnode_cache
+   sadc             kmem_cache       named  unix:0:clnt_clts_endpnt_cache
+   sadc             kmem_cache       named  unix:0:pty_map
+   sadc             kmem_cache       named  unix:0:sppptun_map
+   sadc             kmem_cache       named  unix:0:dtrace_state_cache
+   sadc             kmem_cache       named  unix:0:qif_head_cache
+   sadc             kmem_cache       named  unix:0:udp_minor_1
+   sadc             kmem_cache       named  unix:0:authkern_cache
+   sadc             kmem_cache       named  unix:0:authloopback_cache
+   sadc             kmem_cache       named  unix:0:authdes_cache_handle
+   sadc             kmem_cache       named  unix:0:rnode_cache
+   sadc             kmem_cache       named  unix:0:nfs_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle_cache
+   sadc             kmem_cache       named  unix:0:rnode4_cache
+   sadc             kmem_cache       named  unix:0:svnode_cache
+   sadc             kmem_cache       named  unix:0:nfs4_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle4_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4vals_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4_list_cache
+   sadc             kmem_cache       named  unix:0:NFS_idmap_cache
+   sadc             kmem_cache       named  unix:0:lm_vnode
+   sadc             kmem_cache       named  unix:0:lm_xprt
+   sadc             kmem_cache       named  unix:0:lm_sysid
+   sadc             kmem_cache       named  unix:0:lm_client
+   sadc             kmem_cache       named  unix:0:lm_async
+   sadc             kmem_cache       named  unix:0:lm_sleep
+   sadc             kmem_cache       named  unix:0:lm_config
+   sadc             kmem_cache       named  unix:0:nfslog_small_rec
+   sadc             kmem_cache       named  unix:0:nfslog_medium_rec
+   sadc             kmem_cache       named  unix:0:nfslog_large_rec
+   sadc             kmem_cache       named  unix:0:exi_cache_handle
+   sadc             kmem_cache       named  unix:0:Client_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenOwner_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:LockStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:Lockowner_entry_cache
+   sadc             kmem_cache       named  unix:0:File_entry_cache
+   sadc             kmem_cache       named  unix:0:DelegStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:ip_minor_1
+   sadc             kmem_cache       named  unix:0:ar_minor_1
+   sadc             kmem_cache       named  unix:0:icmp_minor_1
+   sadc             kmem_cache       named  unix:0:crypto_session_cache
+   sadc             kmem_cache       named  unix:0:fcsm_job_cache
+   sadc             kmem_cache       named  unix:0:sd0_cache
+   sadc             kmem_cache       named  unix:0:hsfs_hsnode_cache
+   sadc             vmem             named  vmem:16:kmem_oversize
+   sadc             disk             io     cmdk:0:cmdk0
+   sadc             nfs              io     nfs:1:nfs1
+   sadc             disk             io     sd:0:sd0
+   sadc             usb_byte_count   io     usba:0:uhci0,bulk
+   sadc             usb_byte_count   io     usba:0:uhci0,ctrl
+   sadc             usb_byte_count   io     usba:0:uhci0,intr
+   sadc             usb_byte_count   io     usba:0:uhci0,isoch
+   sadc             usb_byte_count   io     usba:0:uhci0,total
+   sadc             usb_byte_count   io     usba:1:uhci1,bulk
+   sadc             usb_byte_count   io     usba:1:uhci1,ctrl
+   sadc             usb_byte_count   io     usba:1:uhci1,intr
+   sadc             usb_byte_count   io     usba:1:uhci1,isoch
+   sadc             usb_byte_count   io     usba:1:uhci1,total
+   sadc             misc             named  unix:0:system_misc
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             vmem             named  vmem:16:kmem_oversize
+   sadc             ufs              named  ufs:0:inode_cache
+   sadc             misc             raw    unix:0:var
+   sadc             kmem_cache       named  unix:0:kmem_magazine_1
+   sadc             kmem_cache       named  unix:0:kmem_magazine_3
+   sadc             kmem_cache       named  unix:0:kmem_magazine_7
+   sadc             kmem_cache       named  unix:0:kmem_magazine_15
+   sadc             kmem_cache       named  unix:0:kmem_magazine_31
+   sadc             kmem_cache       named  unix:0:kmem_magazine_47
+   sadc             kmem_cache       named  unix:0:kmem_magazine_63
+   sadc             kmem_cache       named  unix:0:kmem_magazine_95
+   sadc             kmem_cache       named  unix:0:kmem_magazine_143
+   sadc             kmem_cache       named  unix:0:kmem_slab_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_audit_cache
+   sadc             kmem_cache       named  unix:0:kmem_va_4096
+   sadc             kmem_cache       named  unix:0:kmem_va_8192
+   sadc             kmem_cache       named  unix:0:kmem_va_12288
+   sadc             kmem_cache       named  unix:0:kmem_va_16384
+   sadc             kmem_cache       named  unix:0:kmem_va_20480
+   sadc             kmem_cache       named  unix:0:kmem_va_24576
+   sadc             kmem_cache       named  unix:0:kmem_va_28672
+   sadc             kmem_cache       named  unix:0:kmem_va_32768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16
+   sadc             kmem_cache       named  unix:0:kmem_alloc_24
+   sadc             kmem_cache       named  unix:0:kmem_alloc_32
+   sadc             kmem_cache       named  unix:0:kmem_alloc_40
+   sadc             kmem_cache       named  unix:0:kmem_alloc_48
+   sadc             kmem_cache       named  unix:0:kmem_alloc_56
+   sadc             kmem_cache       named  unix:0:kmem_alloc_64
+   sadc             kmem_cache       named  unix:0:kmem_alloc_80
+   sadc             kmem_cache       named  unix:0:kmem_alloc_96
+   sadc             kmem_cache       named  unix:0:kmem_alloc_112
+   sadc             kmem_cache       named  unix:0:kmem_alloc_128
+   sadc             kmem_cache       named  unix:0:kmem_alloc_160
+   sadc             kmem_cache       named  unix:0:kmem_alloc_192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_224
+   sadc             kmem_cache       named  unix:0:kmem_alloc_256
+   sadc             kmem_cache       named  unix:0:kmem_alloc_320
+   sadc             kmem_cache       named  unix:0:kmem_alloc_384
+   sadc             kmem_cache       named  unix:0:kmem_alloc_448
+   sadc             kmem_cache       named  unix:0:kmem_alloc_512
+   sadc             kmem_cache       named  unix:0:kmem_alloc_640
+   sadc             kmem_cache       named  unix:0:kmem_alloc_768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_896
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1152
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1344
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1600
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2048
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2688
+   sadc             kmem_cache       named  unix:0:kmem_alloc_4096
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_12288
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16384
+   sadc             kmem_cache       named  unix:0:streams_mblk
+   sadc             kmem_cache       named  unix:0:streams_dblk_64
+   sadc             kmem_cache       named  unix:0:streams_dblk_128
+   sadc             kmem_cache       named  unix:0:streams_dblk_320
+   sadc             kmem_cache       named  unix:0:streams_dblk_576
+   sadc             kmem_cache       named  unix:0:streams_dblk_1088
+   sadc             kmem_cache       named  unix:0:streams_dblk_1536
+   sadc             kmem_cache       named  unix:0:streams_dblk_1984
+   sadc             kmem_cache       named  unix:0:streams_dblk_2624
+   sadc             kmem_cache       named  unix:0:streams_dblk_3968
+   sadc             kmem_cache       named  unix:0:streams_dblk_8192
+   sadc             kmem_cache       named  unix:0:streams_dblk_12160
+   sadc             kmem_cache       named  unix:0:streams_dblk_16384
+   sadc             kmem_cache       named  unix:0:streams_dblk_20352
+   sadc             kmem_cache       named  unix:0:streams_dblk_24576
+   sadc             kmem_cache       named  unix:0:streams_dblk_28544
+   sadc             kmem_cache       named  unix:0:streams_dblk_32768
+   sadc             kmem_cache       named  unix:0:streams_dblk_36736
+   sadc             kmem_cache       named  unix:0:streams_dblk_40960
+   sadc             kmem_cache       named  unix:0:streams_dblk_44928
+   sadc             kmem_cache       named  unix:0:streams_dblk_49152
+   sadc             kmem_cache       named  unix:0:streams_dblk_53120
+   sadc             kmem_cache       named  unix:0:streams_dblk_57344
+   sadc             kmem_cache       named  unix:0:streams_dblk_61312
+   sadc             kmem_cache       named  unix:0:streams_dblk_65536
+   sadc             kmem_cache       named  unix:0:streams_dblk_69504
+   sadc             kmem_cache       named  unix:0:streams_dblk_73728
+   sadc             kmem_cache       named  unix:0:streams_dblk_esb
+   sadc             kmem_cache       named  unix:0:streams_fthdr
+   sadc             kmem_cache       named  unix:0:streams_ftblk
+   sadc             kmem_cache       named  unix:0:multidata
+   sadc             kmem_cache       named  unix:0:multidata_pdslab
+   sadc             kmem_cache       named  unix:0:multidata_pattbl
+   sadc             kmem_cache       named  unix:0:taskq_ent_cache
+   sadc             kmem_cache       named  unix:0:taskq_cache
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_4096
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_4096
+   sadc             kmem_cache       named  unix:0:id32_cache
+   sadc             kmem_cache       named  unix:0:bp_map_4096
+   sadc             kmem_cache       named  unix:0:bp_map_8192
+   sadc             kmem_cache       named  unix:0:bp_map_12288
+   sadc             kmem_cache       named  unix:0:bp_map_16384
+   sadc             kmem_cache       named  unix:0:bp_map_20480
+   sadc             kmem_cache       named  unix:0:bp_map_24576
+   sadc             kmem_cache       named  unix:0:bp_map_28672
+   sadc             kmem_cache       named  unix:0:bp_map_32768
+   sadc             kmem_cache       named  unix:0:mod_hash_entries
+   sadc             kmem_cache       named  unix:0:ipp_mod
+   sadc             kmem_cache       named  unix:0:ipp_action
+   sadc             kmem_cache       named  unix:0:ipp_packet
+   sadc             kmem_cache       named  unix:0:htable_t
+   sadc             kmem_cache       named  unix:0:hment_t
+   sadc             kmem_cache       named  unix:0:hat_t
+   sadc             kmem_cache       named  unix:0:HatHash
+   sadc             kmem_cache       named  unix:0:seg_cache
+   sadc             kmem_cache       named  unix:0:snode_cache
+   sadc             kmem_cache       named  unix:0:dv_node_cache
+   sadc             kmem_cache       named  unix:0:dev_info_node_cache
+   sadc             kmem_cache       named  unix:0:segkp_4096
+   sadc             kmem_cache       named  unix:0:segkp_8192
+   sadc             kmem_cache       named  unix:0:segkp_12288
+   sadc             kmem_cache       named  unix:0:segkp_16384
+   sadc             kmem_cache       named  unix:0:segkp_20480
+   sadc             kmem_cache       named  unix:0:thread_cache
+   sadc             kmem_cache       named  unix:0:lwp_cache
+   sadc             kmem_cache       named  unix:0:turnstile_cache
+   sadc             kmem_cache       named  unix:0:cred_cache
+   sadc             kmem_cache       named  unix:0:rctl_cache
+   sadc             kmem_cache       named  unix:0:rctl_val_cache
+   sadc             kmem_cache       named  unix:0:task_cache
+   sadc             kmem_cache       named  unix:0:cyclic_id_cache
+   sadc             kmem_cache       named  unix:0:dnlc_space_cache
+   sadc             kmem_cache       named  unix:0:vn_cache
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             kmem_cache       named  unix:0:stream_head_cache
+   sadc             kmem_cache       named  unix:0:queue_cache
+   sadc             kmem_cache       named  unix:0:syncq_cache
+   sadc             kmem_cache       named  unix:0:qband_cache
+   sadc             kmem_cache       named  unix:0:linkinfo_cache
+   sadc             kmem_cache       named  unix:0:ciputctrl_cache
+   sadc             kmem_cache       named  unix:0:serializer_cache
+   sadc             kmem_cache       named  unix:0:as_cache
+   sadc             kmem_cache       named  unix:0:marker_cache
+   sadc             kmem_cache       named  unix:0:anon_cache
+   sadc             kmem_cache       named  unix:0:anonmap_cache
+   sadc             kmem_cache       named  unix:0:segvn_cache
+   sadc             kmem_cache       named  unix:0:flk_edges
+   sadc             kmem_cache       named  unix:0:fdb_cache
+   sadc             kmem_cache       named  unix:0:timer_cache
+   sadc             kmem_cache       named  unix:0:physio_buf_cache
+   sadc             kmem_cache       named  unix:0:ufs_inode_cache
+   sadc             kmem_cache       named  unix:0:directio_buf_cache
+   sadc             kmem_cache       named  unix:0:lufs_save
+   sadc             kmem_cache       named  unix:0:lufs_bufs
+   sadc             kmem_cache       named  unix:0:lufs_mapentry_cache
+   sadc             misc             raw    cpu_stat:0:cpu_stat0
+   sadc             kmem_cache       named  unix:0:kcf_sreq_cache
+   sadc             kmem_cache       named  unix:0:kcf_areq_cache
+   sadc             kmem_cache       named  unix:0:kcf_context_cache
+   sadc             kmem_cache       named  unix:0:ipsec_actions
+   sadc             kmem_cache       named  unix:0:ipsec_selectors
+   sadc             kmem_cache       named  unix:0:ipsec_policy
+   sadc             kmem_cache       named  unix:0:ipsec_info
+   sadc             kmem_cache       named  unix:0:ip_minor_arena_1
+   sadc             kmem_cache       named  unix:0:ipcl_conn_cache
+   sadc             kmem_cache       named  unix:0:ipcl_tcpconn_cache
+   sadc             kmem_cache       named  unix:0:ire_cache
+   sadc             kmem_cache       named  unix:0:tcp_timercache
+   sadc             kmem_cache       named  unix:0:tcp_sack_info_cache
+   sadc             kmem_cache       named  unix:0:tcp_iphc_cache
+   sadc             kmem_cache       named  unix:0:squeue_cache
+   sadc             kmem_cache       named  unix:0:sctp_conn_cache
+   sadc             kmem_cache       named  unix:0:sctp_faddr_cache
+   sadc             kmem_cache       named  unix:0:sctp_set_cache
+   sadc             kmem_cache       named  unix:0:sctp_ftsn_set_cache
+   sadc             kmem_cache       named  unix:0:sctpsock
+   sadc             kmem_cache       named  unix:0:sctp_assoc
+   sadc             kmem_cache       named  unix:0:socktpi_cache
+   sadc             kmem_cache       named  unix:0:socktpi_unix_cache
+   sadc             kmem_cache       named  unix:0:ncafs_cache
+   sadc             kmem_cache       named  unix:0:process_cache
+   sadc             kmem_cache       named  unix:0:exacct_object_cache
+   sadc             kmem_cache       named  unix:0:fctl_cache
+   sadc             kmem_cache       named  unix:0:tl_cache
+   sadc             kmem_cache       named  unix:0:keysock_1
+   sadc             kmem_cache       named  unix:0:spdsock_1
+   sadc             kmem_cache       named  unix:0:fnode_cache
+   sadc             kmem_cache       named  unix:0:pipe_cache
+   sadc             kmem_cache       named  unix:0:namefs_inodes_1
+   sadc             kmem_cache       named  unix:0:port_cache
+   sadc             kmem_cache       named  unix:0:lnode_cache
+   sadc             kmem_cache       named  unix:0:clnt_clts_endpnt_cache
+   sadc             kmem_cache       named  unix:0:pty_map
+   sadc             kmem_cache       named  unix:0:sppptun_map
+   sadc             kmem_cache       named  unix:0:dtrace_state_cache
+   sadc             kmem_cache       named  unix:0:qif_head_cache
+   sadc             kmem_cache       named  unix:0:udp_minor_1
+   sadc             kmem_cache       named  unix:0:authkern_cache
+   sadc             kmem_cache       named  unix:0:authloopback_cache
+   sadc             kmem_cache       named  unix:0:authdes_cache_handle
+   sadc             kmem_cache       named  unix:0:rnode_cache
+   sadc             kmem_cache       named  unix:0:nfs_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle_cache
+   sadc             kmem_cache       named  unix:0:rnode4_cache
+   sadc             kmem_cache       named  unix:0:svnode_cache
+   sadc             kmem_cache       named  unix:0:nfs4_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle4_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4vals_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4_list_cache
+   sadc             kmem_cache       named  unix:0:NFS_idmap_cache
+   sadc             kmem_cache       named  unix:0:lm_vnode
+   sadc             kmem_cache       named  unix:0:lm_xprt
+   sadc             kmem_cache       named  unix:0:lm_sysid
+   sadc             kmem_cache       named  unix:0:lm_client
+   sadc             kmem_cache       named  unix:0:lm_async
+   sadc             kmem_cache       named  unix:0:lm_sleep
+   sadc             kmem_cache       named  unix:0:lm_config
+   sadc             kmem_cache       named  unix:0:nfslog_small_rec
+   sadc             kmem_cache       named  unix:0:nfslog_medium_rec
+   sadc             kmem_cache       named  unix:0:nfslog_large_rec
+   sadc             kmem_cache       named  unix:0:exi_cache_handle
+   sadc             kmem_cache       named  unix:0:Client_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenOwner_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:LockStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:Lockowner_entry_cache
+   sadc             kmem_cache       named  unix:0:File_entry_cache
+   sadc             kmem_cache       named  unix:0:DelegStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:ip_minor_1
+   sadc             kmem_cache       named  unix:0:ar_minor_1
+   sadc             kmem_cache       named  unix:0:icmp_minor_1
+   sadc             kmem_cache       named  unix:0:crypto_session_cache
+   sadc             kmem_cache       named  unix:0:fcsm_job_cache
+   sadc             kmem_cache       named  unix:0:sd0_cache
+   sadc             kmem_cache       named  unix:0:hsfs_hsnode_cache
+   sadc             kmem_cache       named  unix:0:kmem_magazine_1
+   sadc             misc             raw    unix:0:sysinfo
+   sadc             vm               raw    unix:0:vminfo
+   sadc             misc             named  unix:0:system_misc
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             ufs              named  ufs:0:inode_cache
+   sadc             misc             raw    cpu_stat:0:cpu_stat0
+   sadc             kmem_cache       named  unix:0:kmem_magazine_1
+   sadc             kmem_cache       named  unix:0:kmem_magazine_3
+   sadc             kmem_cache       named  unix:0:kmem_magazine_7
+   sadc             kmem_cache       named  unix:0:kmem_magazine_15
+   sadc             kmem_cache       named  unix:0:kmem_magazine_31
+   sadc             kmem_cache       named  unix:0:kmem_magazine_47
+   sadc             kmem_cache       named  unix:0:kmem_magazine_63
+   sadc             kmem_cache       named  unix:0:kmem_magazine_95
+   sadc             kmem_cache       named  unix:0:kmem_magazine_143
+   sadc             kmem_cache       named  unix:0:kmem_slab_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_audit_cache
+   sadc             kmem_cache       named  unix:0:kmem_va_4096
+   sadc             kmem_cache       named  unix:0:kmem_va_8192
+   sadc             kmem_cache       named  unix:0:kmem_va_12288
+   sadc             kmem_cache       named  unix:0:kmem_va_16384
+   sadc             kmem_cache       named  unix:0:kmem_va_20480
+   sadc             kmem_cache       named  unix:0:kmem_va_24576
+   sadc             kmem_cache       named  unix:0:kmem_va_28672
+   sadc             kmem_cache       named  unix:0:kmem_va_32768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16
+   sadc             kmem_cache       named  unix:0:kmem_alloc_24
+   sadc             kmem_cache       named  unix:0:kmem_alloc_32
+   sadc             kmem_cache       named  unix:0:kmem_alloc_40
+   sadc             kmem_cache       named  unix:0:kmem_alloc_48
+   sadc             kmem_cache       named  unix:0:kmem_alloc_56
+   sadc             kmem_cache       named  unix:0:kmem_alloc_64
+   sadc             kmem_cache       named  unix:0:kmem_alloc_80
+   sadc             kmem_cache       named  unix:0:kmem_alloc_96
+   sadc             kmem_cache       named  unix:0:kmem_alloc_112
+   sadc             kmem_cache       named  unix:0:kmem_alloc_128
+   sadc             kmem_cache       named  unix:0:kmem_alloc_160
+   sadc             kmem_cache       named  unix:0:kmem_alloc_192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_224
+   sadc             kmem_cache       named  unix:0:kmem_alloc_256
+   sadc             kmem_cache       named  unix:0:kmem_alloc_320
+   sadc             kmem_cache       named  unix:0:kmem_alloc_384
+   sadc             kmem_cache       named  unix:0:kmem_alloc_448
+   sadc             kmem_cache       named  unix:0:kmem_alloc_512
+   sadc             kmem_cache       named  unix:0:kmem_alloc_640
+   sadc             kmem_cache       named  unix:0:kmem_alloc_768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_896
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1152
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1344
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1600
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2048
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2688
+   sadc             kmem_cache       named  unix:0:kmem_alloc_4096
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_12288
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16384
+   sadc             kmem_cache       named  unix:0:streams_mblk
+   sadc             kmem_cache       named  unix:0:streams_dblk_64
+   sadc             kmem_cache       named  unix:0:streams_dblk_128
+   sadc             kmem_cache       named  unix:0:streams_dblk_320
+   sadc             kmem_cache       named  unix:0:streams_dblk_576
+   sadc             kmem_cache       named  unix:0:streams_dblk_1088
+   sadc             kmem_cache       named  unix:0:streams_dblk_1536
+   sadc             kmem_cache       named  unix:0:streams_dblk_1984
+   sadc             kmem_cache       named  unix:0:streams_dblk_2624
+   sadc             kmem_cache       named  unix:0:streams_dblk_3968
+   sadc             kmem_cache       named  unix:0:streams_dblk_8192
+   sadc             kmem_cache       named  unix:0:streams_dblk_12160
+   sadc             kmem_cache       named  unix:0:streams_dblk_16384
+   sadc             kmem_cache       named  unix:0:streams_dblk_20352
+   sadc             kmem_cache       named  unix:0:streams_dblk_24576
+   sadc             kmem_cache       named  unix:0:streams_dblk_28544
+   sadc             kmem_cache       named  unix:0:streams_dblk_32768
+   sadc             kmem_cache       named  unix:0:streams_dblk_36736
+   sadc             kmem_cache       named  unix:0:streams_dblk_40960
+   sadc             kmem_cache       named  unix:0:streams_dblk_44928
+   sadc             kmem_cache       named  unix:0:streams_dblk_49152
+   sadc             kmem_cache       named  unix:0:streams_dblk_53120
+   sadc             kmem_cache       named  unix:0:streams_dblk_57344
+   sadc             kmem_cache       named  unix:0:streams_dblk_61312
+   sadc             kmem_cache       named  unix:0:streams_dblk_65536
+   sadc             kmem_cache       named  unix:0:streams_dblk_69504
+   sadc             kmem_cache       named  unix:0:streams_dblk_73728
+   sadc             kmem_cache       named  unix:0:streams_dblk_esb
+   sadc             kmem_cache       named  unix:0:streams_fthdr
+   sadc             kmem_cache       named  unix:0:streams_ftblk
+   sadc             kmem_cache       named  unix:0:multidata
+   sadc             kmem_cache       named  unix:0:multidata_pdslab
+   sadc             kmem_cache       named  unix:0:multidata_pattbl
+   sadc             kmem_cache       named  unix:0:taskq_ent_cache
+   sadc             kmem_cache       named  unix:0:taskq_cache
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_4096
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_4096
+   sadc             kmem_cache       named  unix:0:id32_cache
+   sadc             kmem_cache       named  unix:0:bp_map_4096
+   sadc             kmem_cache       named  unix:0:bp_map_8192
+   sadc             kmem_cache       named  unix:0:bp_map_12288
+   sadc             kmem_cache       named  unix:0:bp_map_16384
+   sadc             kmem_cache       named  unix:0:bp_map_20480
+   sadc             kmem_cache       named  unix:0:bp_map_24576
+   sadc             kmem_cache       named  unix:0:bp_map_28672
+   sadc             kmem_cache       named  unix:0:bp_map_32768
+   sadc             kmem_cache       named  unix:0:mod_hash_entries
+   sadc             kmem_cache       named  unix:0:ipp_mod
+   sadc             kmem_cache       named  unix:0:ipp_action
+   sadc             kmem_cache       named  unix:0:ipp_packet
+   sadc             kmem_cache       named  unix:0:htable_t
+   sadc             kmem_cache       named  unix:0:hment_t
+   sadc             kmem_cache       named  unix:0:hat_t
+   sadc             kmem_cache       named  unix:0:HatHash
+   sadc             kmem_cache       named  unix:0:seg_cache
+   sadc             kmem_cache       named  unix:0:snode_cache
+   sadc             kmem_cache       named  unix:0:dv_node_cache
+   sadc             kmem_cache       named  unix:0:dev_info_node_cache
+   sadc             kmem_cache       named  unix:0:segkp_4096
+   sadc             kmem_cache       named  unix:0:segkp_8192
+   sadc             kmem_cache       named  unix:0:segkp_12288
+   sadc             kmem_cache       named  unix:0:segkp_16384
+   sadc             kmem_cache       named  unix:0:segkp_20480
+   sadc             kmem_cache       named  unix:0:thread_cache
+   sadc             kmem_cache       named  unix:0:lwp_cache
+   sadc             kmem_cache       named  unix:0:turnstile_cache
+   sadc             kmem_cache       named  unix:0:cred_cache
+   sadc             kmem_cache       named  unix:0:rctl_cache
+   sadc             kmem_cache       named  unix:0:rctl_val_cache
+   sadc             kmem_cache       named  unix:0:task_cache
+   sadc             kmem_cache       named  unix:0:cyclic_id_cache
+   sadc             kmem_cache       named  unix:0:dnlc_space_cache
+   sadc             kmem_cache       named  unix:0:vn_cache
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             kmem_cache       named  unix:0:stream_head_cache
+   sadc             kmem_cache       named  unix:0:queue_cache
+   sadc             kmem_cache       named  unix:0:syncq_cache
+   sadc             kmem_cache       named  unix:0:qband_cache
+   sadc             kmem_cache       named  unix:0:linkinfo_cache
+   sadc             kmem_cache       named  unix:0:ciputctrl_cache
+   sadc             kmem_cache       named  unix:0:serializer_cache
+   sadc             kmem_cache       named  unix:0:as_cache
+   sadc             kmem_cache       named  unix:0:marker_cache
+   sadc             kmem_cache       named  unix:0:anon_cache
+   sadc             kmem_cache       named  unix:0:anonmap_cache
+   sadc             kmem_cache       named  unix:0:segvn_cache
+   sadc             kmem_cache       named  unix:0:flk_edges
+   sadc             kmem_cache       named  unix:0:fdb_cache
+   sadc             kmem_cache       named  unix:0:timer_cache
+   sadc             kmem_cache       named  unix:0:physio_buf_cache
+   sadc             kmem_cache       named  unix:0:ufs_inode_cache
+   sadc             kmem_cache       named  unix:0:directio_buf_cache
+   sadc             kmem_cache       named  unix:0:lufs_save
+   sadc             kmem_cache       named  unix:0:lufs_bufs
+   sadc             kmem_cache       named  unix:0:lufs_mapentry_cache
+   sadc             kmem_cache       named  unix:0:kcf_sreq_cache
+   sadc             kmem_cache       named  unix:0:kcf_areq_cache
+   sadc             kmem_cache       named  unix:0:kcf_context_cache
+   sadc             kmem_cache       named  unix:0:ipsec_actions
+   sadc             kmem_cache       named  unix:0:ipsec_selectors
+   sadc             kmem_cache       named  unix:0:ipsec_policy
+   sadc             kmem_cache       named  unix:0:ipsec_info
+   sadc             kmem_cache       named  unix:0:ip_minor_arena_1
+   sadc             kmem_cache       named  unix:0:ipcl_conn_cache
+   sadc             kmem_cache       named  unix:0:ipcl_tcpconn_cache
+   sadc             kmem_cache       named  unix:0:ire_cache
+   sadc             kmem_cache       named  unix:0:tcp_timercache
+   sadc             kmem_cache       named  unix:0:tcp_sack_info_cache
+   sadc             kmem_cache       named  unix:0:tcp_iphc_cache
+   sadc             kmem_cache       named  unix:0:squeue_cache
+   sadc             kmem_cache       named  unix:0:sctp_conn_cache
+   sadc             kmem_cache       named  unix:0:sctp_faddr_cache
+   sadc             kmem_cache       named  unix:0:sctp_set_cache
+   sadc             kmem_cache       named  unix:0:sctp_ftsn_set_cache
+   sadc             kmem_cache       named  unix:0:sctpsock
+   sadc             kmem_cache       named  unix:0:sctp_assoc
+   sadc             kmem_cache       named  unix:0:socktpi_cache
+   sadc             kmem_cache       named  unix:0:socktpi_unix_cache
+   sadc             kmem_cache       named  unix:0:ncafs_cache
+   sadc             kmem_cache       named  unix:0:process_cache
+   sadc             kmem_cache       named  unix:0:exacct_object_cache
+   sadc             kmem_cache       named  unix:0:fctl_cache
+   sadc             kmem_cache       named  unix:0:tl_cache
+   sadc             kmem_cache       named  unix:0:keysock_1
+   sadc             kmem_cache       named  unix:0:spdsock_1
+   sadc             kmem_cache       named  unix:0:fnode_cache
+   sadc             kmem_cache       named  unix:0:pipe_cache
+   sadc             kmem_cache       named  unix:0:namefs_inodes_1
+   sadc             kmem_cache       named  unix:0:port_cache
+   sadc             kmem_cache       named  unix:0:lnode_cache
+   sadc             kmem_cache       named  unix:0:clnt_clts_endpnt_cache
+   sadc             kmem_cache       named  unix:0:pty_map
+   sadc             kmem_cache       named  unix:0:sppptun_map
+   sadc             kmem_cache       named  unix:0:dtrace_state_cache
+   sadc             kmem_cache       named  unix:0:qif_head_cache
+   sadc             kmem_cache       named  unix:0:udp_minor_1
+   sadc             kmem_cache       named  unix:0:authkern_cache
+   sadc             kmem_cache       named  unix:0:authloopback_cache
+   sadc             kmem_cache       named  unix:0:authdes_cache_handle
+   sadc             kmem_cache       named  unix:0:rnode_cache
+   sadc             kmem_cache       named  unix:0:nfs_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle_cache
+   sadc             kmem_cache       named  unix:0:rnode4_cache
+   sadc             kmem_cache       named  unix:0:svnode_cache
+   sadc             kmem_cache       named  unix:0:nfs4_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle4_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4vals_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4_list_cache
+   sadc             kmem_cache       named  unix:0:NFS_idmap_cache
+   sadc             kmem_cache       named  unix:0:lm_vnode
+   sadc             kmem_cache       named  unix:0:lm_xprt
+   sadc             kmem_cache       named  unix:0:lm_sysid
+   sadc             kmem_cache       named  unix:0:lm_client
+   sadc             kmem_cache       named  unix:0:lm_async
+   sadc             kmem_cache       named  unix:0:lm_sleep
+   sadc             kmem_cache       named  unix:0:lm_config
+   sadc             kmem_cache       named  unix:0:nfslog_small_rec
+   sadc             kmem_cache       named  unix:0:nfslog_medium_rec
+   sadc             kmem_cache       named  unix:0:nfslog_large_rec
+   sadc             kmem_cache       named  unix:0:exi_cache_handle
+   sadc             kmem_cache       named  unix:0:Client_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenOwner_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:LockStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:Lockowner_entry_cache
+   sadc             kmem_cache       named  unix:0:File_entry_cache
+   sadc             kmem_cache       named  unix:0:DelegStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:ip_minor_1
+   sadc             kmem_cache       named  unix:0:ar_minor_1
+   sadc             kmem_cache       named  unix:0:icmp_minor_1
+   sadc             kmem_cache       named  unix:0:crypto_session_cache
+   sadc             kmem_cache       named  unix:0:fcsm_job_cache
+   sadc             kmem_cache       named  unix:0:sd0_cache
+   sadc             kmem_cache       named  unix:0:hsfs_hsnode_cache
+   sadc             vmem             named  vmem:16:kmem_oversize
+   sadc             disk             io     cmdk:0:cmdk0
+   sadc             nfs              io     nfs:1:nfs1
+   sadc             disk             io     sd:0:sd0
+   sadc             usb_byte_count   io     usba:0:uhci0,bulk
+   sadc             usb_byte_count   io     usba:0:uhci0,ctrl
+   sadc             usb_byte_count   io     usba:0:uhci0,intr
+   sadc             usb_byte_count   io     usba:0:uhci0,isoch
+   sadc             usb_byte_count   io     usba:0:uhci0,total
+   sadc             usb_byte_count   io     usba:1:uhci1,bulk
+   sadc             usb_byte_count   io     usba:1:uhci1,ctrl
+   sadc             usb_byte_count   io     usba:1:uhci1,intr
+   sadc             usb_byte_count   io     usba:1:uhci1,isoch
+   sadc             usb_byte_count   io     usba:1:uhci1,total
+
+Yep, to print the four fields from "sar -u 1 1", sadc read the ENTIRE
+KSTAT TREE FIVE TIMES.
+
+Comparing the effect of this to vmstat,
+
+ # ptime vmstat 1 6
+  kthr      memory            page            disk          faults      cpu
+  r b w   swap  free  re  mf pi po fr de sr cd s0 -- --   in   sy   cs us sy id
+  0 0 43 907784 115324 29 124 34 1  1  0  4  2  0  0  0  277  470  210  1  2 97
+  0 0 38 750856 172304 1  40  0  0  0  0  0  0  0  0  0  230  224  130  1  1 98
+  0 0 38 750856 172304 0   0  0  0  0  0  0  0  0  0  0  219  168  111  0  1 99
+  0 0 38 750856 172304 0   0  0  0  0  0  0  0  0  0  0  226  109  113  0  0 100
+  0 0 38 750856 172304 0   0  0  0  0  0  0  0  0  0  0  225  246  137  1  1 98
+  0 0 38 750856 172304 0   0  0  0  0  0  0  0  0  0  0  222  175  119  0  1 99
+ 
+ real        5.060
+ user        0.006
+ sys         0.013
+
+Ok, so vmstat causes a total of 13 ms of sys time - much of which would
+be the fork and exec. Now lets try sar,
+
+ # ptime sar -u 1 5
+ 
+ SunOS jupiter 5.10 Generic i86pc    04/21/2006
+ 
+ 23:42:55    %usr    %sys    %wio   %idle
+ 23:42:56       0       3       0      97
+ 23:42:57       1       2       0      97
+ 23:42:58       0       2       0      98
+ 23:42:59       1       3       0      96
+ 23:43:00       0       2       0      98
+ 
+ Average        0       2       0      97
+ 
+ real        5.148
+ user        0.010
+ sys         0.127
+
+Phwaorr - 127 ms of sys time to measure 5 samples. That is a LOT.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/lastwords_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/lastwords_example.txt
new file mode 100644
index 0000000..5452d2e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/lastwords_example.txt
@@ -0,0 +1,81 @@
+The following is a demonstration of the lastwords command,
+
+
+Here we run lastwords to catch syscalls from processes named "bash" as they
+exit,
+
+   # ./lastwords bash
+   Tracing... Waiting for bash to exit...
+   1091567219163679    1861         bash    sigaction          0   0
+   1091567219177487    1861         bash    sigaction          0   0
+   1091567219189692    1861         bash    sigaction          0   0
+   1091567219202085    1861         bash    sigaction          0   0
+   1091567219214553    1861         bash    sigaction          0   0
+   1091567219226690    1861         bash    sigaction          0   0
+   1091567219238786    1861         bash    sigaction          0   0
+   1091567219251697    1861         bash    sigaction          0   0
+   1091567219265770    1861         bash    sigaction          0   0
+   1091567219294110    1861         bash        gtime   42a7c194   0
+   1091567219428305    1861         bash        write          5   0
+   1091567219451138    1861         bash   setcontext          0   0
+   1091567219473911    1861         bash    sigaction          0   0
+   1091567219516487    1861         bash       stat64          0   0
+   1091567219547973    1861         bash       open64          4   0
+   1091567219638345    1861         bash        write          5   0
+   1091567219658886    1861         bash        close          0   0
+   1091567219689094    1861         bash       open64          4   0
+   1091567219704301    1861         bash      fstat64          0   0
+   1091567219731796    1861         bash         read        2fe   0
+   1091567219745541    1861         bash        close          0   0
+   1091567219768536    1861         bash  lwp_sigmask   ffbffeff   0
+   1091567219787494    1861         bash        ioctl          0   0
+   1091567219801338    1861         bash      setpgrp        6a3   0
+   1091567219814067    1861         bash        ioctl          0   0
+   1091567219825791    1861         bash  lwp_sigmask   ffbffeff   0
+   1091567219847778    1861         bash      setpgrp          0   0
+   TIME                 PID         EXEC      SYSCALL     RETURN ERR
+
+In another window, a bash shell was executed and then exited normally. The
+last few system calls that the bash shell made can be seen above.
+
+
+
+
+In the following example we moniter the exit of bash shells again, but this
+time the bash shell sends itself a "kill -8",
+
+   # ./lastwords bash
+   Tracing... Waiting for bash to exit...
+   1091650185555391    1865         bash    sigaction          0   0
+   1091650185567963    1865         bash    sigaction          0   0
+   1091650185580316    1865         bash    sigaction          0   0
+   1091650185592381    1865         bash    sigaction          0   0
+   1091650185605046    1865         bash    sigaction          0   0
+   1091650185618451    1865         bash    sigaction          0   0
+   1091650185647663    1865         bash        gtime   42a7c1e7   0
+   1091650185794626    1865         bash         kill          0   0
+   1091650185836941    1865         bash  lwp_sigmask   ffbffeff   0
+   1091650185884145    1865         bash       stat64          0   0
+   1091650185916135    1865         bash       open64          4   0
+   1091650186005673    1865         bash        write          b   0
+   1091650186025782    1865         bash        close          0   0
+   1091650186052002    1865         bash       open64          4   0
+   1091650186067538    1865         bash      fstat64          0   0
+   1091650186094289    1865         bash         read        309   0
+   1091650186108086    1865         bash        close          0   0
+   1091650186129965    1865         bash  lwp_sigmask   ffbffeff   0
+   1091650186149092    1865         bash        ioctl          0   0
+   1091650186162614    1865         bash      setpgrp        6a3   0
+   1091650186175457    1865         bash        ioctl          0   0
+   1091650186187206    1865         bash  lwp_sigmask   ffbffeff   0
+   1091650186209514    1865         bash      setpgrp          0   0
+   1091650186225307    1865         bash    sigaction          0   0
+   1091650186238832    1865         bash       getpid        749   0
+   1091650186260149    1865         bash         kill          0   0
+   1091650186277925    1865         bash   setcontext          0   0
+   TIME                 PID         EXEC      SYSCALL     RETURN ERR
+
+The last few system calls are different, we can see the kill system call
+before bash exits.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/loads_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/loads_example.txt
new file mode 100644
index 0000000..f369f96
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/loads_example.txt
@@ -0,0 +1,19 @@
+The following is a demonstration of the loads.d script.
+
+
+Here we run both loads.d and the uptime command for comparison,
+
+   # uptime
+     1:30am  up 14 day(s),  2:27,  3 users,  load average: 3.52, 3.45, 3.05
+
+   # ./loads.d
+   2005 Jun 11 01:30:49,  load average: 3.52, 3.45, 3.05
+
+Both have returned the same load average, confirming that loads.d is
+behaving as expected.
+
+
+The point of loads.d is to demonstrate fetching the same data as uptime
+does, in the DTrace language. It is not intended as a replacement
+or substitute to the uptime(1) command.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/lockbydist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/lockbydist_example.txt
new file mode 100644
index 0000000..7310e5a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/lockbydist_example.txt
@@ -0,0 +1,114 @@
+The following is a demonstration of the lockbyproc.d script,
+
+   # lockbydist.d
+   dtrace: description 'lockstat:::adaptive-block ' matched 1 probe
+   ^C
+
+     metadata-manager                                  
+              value  ------------- Distribution ------------- count    
+             131072 |                                         0        
+             262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             524288 |                                         0        
+   
+     sched                                             
+              value  ------------- Distribution ------------- count    
+              16384 |                                         0        
+              32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9        
+              65536 |                                         0        
+   
+     oracle                                            
+              value  ------------- Distribution ------------- count    
+              16384 |                                         0        
+              32768 |@@@@@@@@@@@@@@@@@@@                      9        
+              65536 |@@@@@@@@@@@@@@@@@@@@@                    10       
+             131072 |                                         0        
+
+In the above output, oracle can be seen to have blocked 10 times from 
+65 to 131 microseconds, and 9 times from 32 to 65 microseconds. sched,
+the kernel, has blocked several times also. metadata-manager only
+blocked once, which was at least 262 microseconds.
+
+
+
+The following is a longer sample,
+
+   # lockbydist.d
+   dtrace: description 'lockstat:::adaptive-block ' matched 1 probe
+   ^C
+
+     svc.startd                                        
+              value  ------------- Distribution ------------- count    
+               8192 |                                         0        
+              16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32768 |                                         0        
+   
+     java                                              
+              value  ------------- Distribution ------------- count    
+              16384 |                                         0        
+              32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              65536 |                                         0        
+   
+     oracle                                            
+              value  ------------- Distribution ------------- count    
+              16384 |                                         0        
+              32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+              65536 |@@@@@@@@@@@@@                            2        
+             131072 |                                         0        
+   
+     mysql-test-run                                    
+              value  ------------- Distribution ------------- count    
+              65536 |                                         0        
+             131072 |@@@@@@@@@@@@@@@@@@@@                     1        
+             262144 |@@@@@@@@@@@@@@@@@@@@                     1        
+             524288 |                                         0        
+   
+     pageout                                           
+              value  ------------- Distribution ------------- count    
+              16384 |                                         0        
+              32768 |@@@@@@@@@@@@@                            1        
+              65536 |                                         0        
+             131072 |                                         0        
+             262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+             524288 |                                         0        
+   
+     mysqltest                                         
+              value  ------------- Distribution ------------- count    
+              16384 |                                         0        
+              32768 |@@@@@@                                   1        
+              65536 |@@@@@@@@@@@                              2        
+             131072 |@@@@@@@@@@@                              2        
+             262144 |@@@@@@@@@@@                              2        
+             524288 |                                         0        
+   
+     sched                                             
+              value  ------------- Distribution ------------- count    
+               8192 |                                         0        
+              16384 |@@@@@@@@@@@                              11       
+              32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@               25       
+              65536 |                                         0        
+             131072 |@                                        1        
+             262144 |@@                                       2        
+             524288 |                                         0        
+   
+     mysqld                                            
+              value  ------------- Distribution ------------- count    
+              16384 |                                         0        
+              32768 |@@@@@@@@@@@@@@@@@@@@@                    22       
+              65536 |@@@@@@@@@                                9        
+             131072 |                                         0        
+             262144 |@@@@                                     4        
+             524288 |                                         0        
+            1048576 |                                         0        
+            2097152 |                                         0        
+            4194304 |@@                                       2        
+            8388608 |@@@@                                     4        
+           16777216 |                                         0      
+   
+The length of time threads were blocked, and the number of such blocks 
+can be easily observed from the above output.
+
+mysqld can be seen to have many short blocks: 22 from 32 -> 65 microseconds,
+and a few larger blocks: 4 from 8 -> 16 ms.
+   
+   
+   
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/lockbyproc_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/lockbyproc_example.txt
new file mode 100644
index 0000000..1109235
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/lockbyproc_example.txt
@@ -0,0 +1,42 @@
+The following is a demonstration of the lockbyproc.d script,
+
+   # lockbyproc.d
+   dtrace: description 'lockstat:::adaptive-block ' matched 1 probe
+   ^C
+   
+     pageout                                                       49438
+     mysql-test-run                                                96414
+     oracle                                                       149086
+     sched                                                        220601
+
+The above output shows that threads belonging to sched, the kernel, spent 
+a total of 220 microseconds waiting for an adaptive mutex lock.
+
+
+
+
+This example sampled for a longer interval,
+
+   # lockbyproc.d
+   dtrace: description 'lockstat:::adaptive-block ' matched 1 probe
+   ^C
+
+     init                                                         136228
+     java                                                         371896
+     oracle                                                       783402
+     sched                                                       2315779
+     mysqltest                                                   9428277
+     mysql-test-run                                             10093658
+     mysqld                                                     17412999
+     fsflush                                                    19676738
+
+Here we can see threads belonging to fsflush have spent a total of 19.7 ms 
+waiting for an adaptive mutex. Note: it's not easy to say that it means a
+19.7 ms delay in the completion of the fsflush program, as this value is 
+the sum of the block times across all the threads. So it is possible that 
+many threads were blocked at the same time, eg, it could have been 19 threads
+blocked during the same 1 ms.
+ 
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/minfbypid_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/minfbypid_example.txt
new file mode 100644
index 0000000..c2fffb4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/minfbypid_example.txt
@@ -0,0 +1,20 @@
+The following is a demonstration of the minfbypid.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+   # minfbypid.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD                     MINFAULTS
+    11021 dtrace                         54
+    11023 ls                             56
+    11024 df                             57
+    11023 bash                           75
+    11022 bash                           75
+    11024 bash                           76
+    11022 find                           91
+
+In the above output, we can see that each of the bash shells had about 75
+minor faults each. Minor faults are an indication of memory consumption.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/minfbyproc_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/minfbyproc_example.txt
new file mode 100644
index 0000000..0c1ce84
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/minfbyproc_example.txt
@@ -0,0 +1,14 @@
+The following is an example of the minfbyproc.d script,
+
+   # minfbyproc.d
+   dtrace: description 'vminfo:::as_fault ' matched 1 probe
+   ^C
+    
+     mozilla-bin                                                      18
+     dtrace                                                           57
+     find                                                             64
+     bash                                                            150
+     tar                                                             501
+
+In the above output, tar processes caused 501 minor faults. 
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/mmapfiles_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/mmapfiles_example.txt
new file mode 100644
index 0000000..eca4370
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/mmapfiles_example.txt
@@ -0,0 +1,109 @@
+The following is a demonstration of the mmapfiles.d script.
+
+Here we run mmapfiles.d while in another window a new bash shell is started.
+The files that were mapped in aren't suprising, they are the common shared
+librarios,
+
+   # mmapfiles.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   MMAPS CMD              PATHNAME
+       1 bash             /lib/libdl.so.1
+       3 bash             /lib/libsocket.so.1
+       3 bash             /lib/libnsl.so.1
+       3 bash             /lib/libc.so.1
+       3 bash             /lib/libcurses.so.1
+
+
+
+Now we examine zsh. This time a number of extra libraries are mapped,
+
+   # mmapfiles.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   MMAPS CMD              PATHNAME
+       1 zsh              /lib/libdl.so.1
+       3 getent           /lib/libc.so.1
+       3 getent           /lib/libnsl.so.1
+       3 getent           /lib/libsocket.so.1
+       3 zsh              /usr/sfw/lib/zsh/4.2.1/zsh/parameter.so
+       3 zsh              /usr/sfw/lib/zsh/4.2.1/zsh/zutil.so
+       3 zsh              /usr/sfw/lib/zsh/4.2.1/zsh/complete.so
+       3 zsh              /usr/sfw/lib/zsh/4.2.1/zsh/stat.so
+       3 zsh              /usr/sfw/lib/zsh/4.2.1/zsh/zle.so
+       3 tset             /lib/libc.so.1
+       3 tset             /opt/sfw/lib/libncurses.so.5.2
+       3 zsh              /lib/libc.so.1
+       3 zsh              /lib/libm.so.2
+       3 zsh              /lib/libcurses.so.1
+       3 zsh              /lib/libnsl.so.1
+       3 zsh              /usr/sfw/lib/zsh/4.2.1/zsh/complist.so
+       3 zsh              /lib/libsocket.so.1
+
+
+
+Sometimes the output can be quite suprising. The following shows the mmaps
+caused by the "sdtaudiocontrol" tool, a java tool to change the volume levels
+on Solaris,
+
+   # mmapfiles.d
+   Tracing... Hit Ctrl-C to end.
+   
+   MMAPS CMD              PATHNAME
+       1 java             /usr/jdk/packages/jmf/lib/ext/jmplay.jar
+       1 java             /usr/dt/appconfig/sdtaudiocontrol/classes/SDtAudioControl.jar
+       1 java             /usr/dt/classes/xservices.jar
+       1 java             /usr/dt/classes/jhall.jar
+       1 java             /usr/dt/classes/jsearch.jar
+       1 java             /usr/jdk/packages/jmf/lib/ext/mp3plugin.jar
+       1 java             /usr/jdk/packages/jmf/lib/ext/jmfmp3.jar
+       1 java             /usr/jdk/packages/jmf/lib/ext/multiplayer.jar
+       1 java             /usr/jdk/packages/jmf/lib/ext/mediaplayer.jar
+       1 java             /usr/jdk/packages/jmf/lib/ext/jmf.jar
+       1 java             /usr/jdk/packages/jai-imageio/lib/ext/jai_imageio.jar
+       1 java             /usr/jdk/packages/jai-imageio/lib/ext/clibwrapper_jiio.jar
+       1 java             /usr/jdk/packages/jai/lib/ext/mlibwrapper_jai.jar
+       1 java             /usr/jdk/packages/jai/lib/ext/jai_core.jar
+       1 java             /usr/jdk/packages/jai/lib/ext/jai_codec.jar
+       1 java             /usr/jdk/packages/javax.help-2.0/lib/jhall.jar
+       1 java             /usr/jdk/instances/jdk1.5.0/jre/lib/ext/sunpkcs11.jar
+       1 java             /usr/jdk/instances/jdk1.5.0/jre/lib/ext/sunjce_provider.jar
+       1 java             /usr/jdk/instances/jdk1.5.0/jre/lib/ext/localedata.jar
+       1 java             /usr/jdk/instances/jdk1.5.0/jre/lib/ext/dnsns.jar
+       1 java             /tmp/hsperfdata_root/6464
+       1 java             /tmp/hsperfdata_root/6455
+       2 java             /usr/lib/libsched.so.1
+       2 java             /usr/jdk/instances/jdk1.5.0/jre/lib/charsets.jar
+       2 java             /usr/jdk/instances/jdk1.5.0/jre/lib/jce.jar
+       2 java             /usr/jdk/instances/jdk1.5.0/jre/lib/jsse.jar
+       2 java             /usr/jdk/instances/jdk1.5.0/jre/lib/rt.jar
+       3 sdtaudiocontrol  /lib/libc.so.1
+       3 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/headless/libmawt.so
+       3 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/libmlib_image.so
+       3 ls               /lib/libc.so.1
+       3 rm               /lib/libc.so.1
+       3 java             /usr/dt/appconfig/sdtaudiocontrol/lib/libAudioControl.so
+       3 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/libawt.so
+       4 java             /lib/libdl.so.1
+       6 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/libzip.so
+       6 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/libjava.so
+       6 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/libverify.so
+       6 java             /lib/libscf.so.1
+       6 java             /usr/lib/libCrun.so.1
+       6 java             /lib/libnsl.so.1
+       6 java             /lib/libm.so.1
+       6 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/client/libjvm.so
+       6 java             /lib/libsocket.so.1
+       6 java             /lib/libuutil.so.1
+       6 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/native_threads/libhpi.so
+       6 java             /lib/libmp.so.2
+       6 java             /lib/libmd5.so.1
+       6 java             /lib/libm.so.2
+       6 java             /lib/libdoor.so.1
+       8 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/client/classes.jsa
+       8 java             /lib/libthread.so.1
+      12 java             /lib/libc.so.1
+      21 awk              /lib/libm.so.2
+      21 awk              /lib/libc.so.1
+      65 java             /devices/pseudo/mm@0:zero
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/modcalls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/modcalls_example.txt
new file mode 100644
index 0000000..f920d20
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/modcalls_example.txt
@@ -0,0 +1,47 @@
+The following is an example of the modcalls.d oneliner,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+   # modcalls.d
+   dtrace: script './modcalls.d' matched 18437 probes
+   ^C
+   
+     ptm                                                               2
+     mntfs                                                             2
+     pool                                                              2
+     kcf                                                               4
+     pts                                                               5
+     portfs                                                            6
+     pset                                                              6
+     ttcompat                                                          9
+     ptem                                                              9
+     devfs                                                            13
+     ipf                                                              15
+     namefs                                                           20
+     ctfs                                                             22
+     procfs                                                           22
+     ldterm                                                           23
+     ipgpc                                                            48
+     sockfs                                                           58
+     flowacct                                                         69
+     ata                                                              70
+     gld                                                              75
+     rtls                                                             76
+     specfs                                                           83
+     ip                                                              201
+     uhci                                                            294
+     TS                                                              333
+     tmpfs                                                           694
+     doorfs                                                          897
+     ufs                                                            1329
+     uppc                                                           5617
+     unix                                                          49794
+     genunix                                                       53445
+
+The output lists kernel modules, and the number of function calls for
+each module. For example, "rtls" - the network driver, called 76 functions.
+
+This script may be useful to determine whether drivers are "thinking" when
+troubleshooting driver issues.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/newproc_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/newproc_example.txt
new file mode 100644
index 0000000..f392b05
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/newproc_example.txt
@@ -0,0 +1,19 @@
+The following is an example of the newproc.d script,
+
+   # ./newproc.d
+   dtrace: description 'proc:::exec-success ' matched 1 probe
+   CPU     ID                    FUNCTION:NAME
+     0   3297         exec_common:exec-success   man ls
+     0   3297         exec_common:exec-success   sh -c cd /usr/share/man; tbl /usr/share/man/man1/ls.1 |neqn /usr/share/lib/pub/
+     0   3297         exec_common:exec-success   tbl /usr/share/man/man1/ls.1
+     0   3297         exec_common:exec-success   neqn /usr/share/lib/pub/eqnchar -
+     0   3297         exec_common:exec-success   nroff -u0 -Tlp -man -
+     0   3297         exec_common:exec-success   col -x
+     0   3297         exec_common:exec-success   sh -c trap '' 1 15; /usr/bin/mv -f/tmp/mpzIaOZF /usr/share/man/cat1/ls.1 2> /d
+     0   3297         exec_common:exec-success   /usr/bin/mv -f /tmp/mpzIaOZF /usr/share/man/cat1/ls.1
+     0   3297         exec_common:exec-success   sh -c more -s /tmp/mpzIaOZF
+     0   3297         exec_common:exec-success   more -s /tmp/mpzIaOZF
+
+The above output was caught when running "man ls". This identifies all the
+commands responsible for processing the man page.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/nfswizard_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/nfswizard_example.txt
new file mode 100644
index 0000000..68fb185
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/nfswizard_example.txt
@@ -0,0 +1,67 @@
+The following is a demonstration of the NFS client wizard tool, nfswizard.d,
+
+
+
+   # nfswizard.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   NFS Client Wizard. 2005 Dec  2 14:59:07 -> 2005 Dec  2 14:59:14
+   
+   Read:  4591616 bytes (4 Mb)
+   Write: 0 bytes (0 Mb)
+   
+   Read:  640 Kb/sec
+   Write: 0 Kb/sec
+   
+   NFS I/O events:    166
+   Avg response time: 8 ms
+   Max response time: 14 ms
+   
+   Response times (us):
+              value  ------------- Distribution ------------- count
+                128 |                                         0
+                256 |                                         1
+                512 |@@@                                      14
+               1024 |@                                        4
+               2048 |@@@@@@@                                  30
+               4096 |@@@@@                                    20
+               8192 |@@@@@@@@@@@@@@@@@@@@@@@                  97
+              16384 |                                         0
+   
+   Top 25 files accessed (bytes):
+      PATHNAME                                                         BYTES
+      /net/mars/var/tmp/adm/vold.log                                   4096
+      /net/mars/var/tmp/adm/uptime                                     4096
+      /net/mars/var/tmp/adm/mail                                       4096
+      /net/mars/var/tmp/adm/authlog.5                                  4096
+      /net/mars/var/tmp/adm/ftpd                                       12288
+      /net/mars/var/tmp/adm/spellhist                                  16384
+      /net/mars/var/tmp/adm/messages                                   16384
+      /net/mars/var/tmp/adm/utmpx                                      20480
+      /net/mars/var/tmp/adm/ftpd.2                                     20480
+      /net/mars/var/tmp/adm/ftpd.3                                     20480
+      /net/mars/var/tmp/adm/ftpd.1                                     24576
+      /net/mars/var/tmp/adm/ftpd.0                                     24576
+      /net/mars/var/tmp/adm/lastlog                                    28672
+      /net/mars/var/tmp/adm/ipf                                        61440
+      /net/mars/var/tmp/adm/loginlog                                   69632
+      /net/mars/var/tmp/adm/ipf.4                                      73728
+      /net/mars/var/tmp/adm/messages.20040906                          81920
+      /net/mars/var/tmp/adm/ipf.3                                      102400
+      /net/mars/var/tmp/adm/ipf.1                                      110592
+      /net/mars/var/tmp/adm/ipf.5                                      114688
+      /net/mars/var/tmp/adm/ipf.2                                      114688
+      /net/mars/var/tmp/adm/ipf.0                                      122880
+      /net/mars/var/tmp/adm/route.log                                  266240
+      /net/mars/var/tmp/adm/pppd.log                                   425984
+      /net/mars/var/tmp/adm/wtmpx                                      2842624
+
+
+
+In the above demonstration, we run nfswizard.d for several seconds then hit
+Ctrl-C. The report contains useful information about NFS client activity,
+including response time statistics and file access details.
+
+Note: this is measuring activity caused by NFS client processes (which must
+be on the same server). It is not examining NFS server processes.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/oneliners_examples.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/oneliners_examples.txt
new file mode 100644
index 0000000..9ca0fa6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/oneliners_examples.txt
@@ -0,0 +1,307 @@
+#
+#   DTrace OneLiners Examples
+#
+
+### New processes with arguments,
+  
+# dtrace -n 'proc:::exec-success { trace(curpsinfo->pr_psargs); }'
+dtrace: description 'proc:::exec-success ' matched 1 probe
+CPU     ID                    FUNCTION:NAME
+  0   3297         exec_common:exec-success   man ls
+  0   3297         exec_common:exec-success   sh -c cd /usr/share/man; tbl /usr/share/man/man1/ls.1 |neqn /usr/share/lib/pub/
+  0   3297         exec_common:exec-success   tbl /usr/share/man/man1/ls.1
+  0   3297         exec_common:exec-success   neqn /usr/share/lib/pub/eqnchar -
+  0   3297         exec_common:exec-success   nroff -u0 -Tlp -man -
+  0   3297         exec_common:exec-success   col -x
+  0   3297         exec_common:exec-success   sh -c trap '' 1 15; /usr/bin/mv -f /tmp/mpzIaOZF /usr/share/man/cat1/ls.1 2> /d
+  0   3297         exec_common:exec-success   /usr/bin/mv -f /tmp/mpzIaOZF /usr/share/man/cat1/ls.1
+  0   3297         exec_common:exec-success   sh -c more -s /tmp/mpzIaOZF
+  0   3297         exec_common:exec-success   more -s /tmp/mpzIaOZF
+
+
+### Files opened by process,
+ 
+# dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }'
+dtrace: description 'syscall::open*:entry ' matched 2 probes
+CPU     ID                    FUNCTION:NAME
+  0     14                       open:entry gnome-netstatus- /dev/kstat
+  0     14                       open:entry man /var/ld/ld.config
+  0     14                       open:entry man /lib/libc.so.1
+  0     14                       open:entry man /usr/share/man/man.cf
+  0     14                       open:entry man /usr/share/man/windex
+  0     14                       open:entry man /usr/share/man/man1/ls.1
+  0     14                       open:entry man /usr/share/man/man1/ls.1
+  0     14                       open:entry man /tmp/mpqea4RF
+  0     14                       open:entry sh /var/ld/ld.config
+  0     14                       open:entry sh /lib/libc.so.1
+  0     14                       open:entry neqn /var/ld/ld.config
+  0     14                       open:entry neqn /lib/libc.so.1
+  0     14                       open:entry neqn /usr/share/lib/pub/eqnchar
+  0     14                       open:entry tbl /var/ld/ld.config
+  0     14                       open:entry tbl /lib/libc.so.1
+  0     14                       open:entry tbl /usr/share/man/man1/ls.1
+  0     14                       open:entry nroff /var/ld/ld.config
+[...]
+
+
+### Syscall count by program,
+ 
+# dtrace -n 'syscall:::entry { @num[execname] = count(); }'
+dtrace: description 'syscall:::entry ' matched 228 probes
+^C
+  snmpd                                                             1
+  utmpd                                                             2
+  inetd                                                             2
+  nscd                                                              7
+  svc.startd                                                       11
+  sendmail                                                         31
+  poold                                                           133
+  dtrace                                                         1720
+
+
+### Syscall count by syscall,
+ 
+# dtrace -n 'syscall:::entry { @num[probefunc] = count(); }'
+dtrace: description 'syscall:::entry ' matched 228 probes
+^C
+  fstat                                                             1
+  setcontext                                                        1
+  lwp_park                                                          1
+  schedctl                                                          1
+  mmap                                                              1
+  sigaction                                                         2
+  pset                                                              2
+  lwp_sigmask                                                       2
+  gtime                                                             3
+  sysconfig                                                         3
+  write                                                             4
+  brk                                                               6
+  pollsys                                                           7
+  p_online                                                        558
+  ioctl                                                           579
+
+
+### Syscall count by process,
+ 
+# dtrace -n 'syscall:::entry { @num[pid,execname] = count(); }'
+dtrace: description 'syscall:::entry ' matched 228 probes
+^C
+     1109  svc.startd                                                        1
+     4588  svc.startd                                                        2
+        7  svc.startd                                                        2
+     3950  svc.startd                                                        2
+     1626  nscd                                                              2
+      870  svc.startd                                                        2
+       82  nscd                                                              6
+     5011  sendmail                                                         10
+     6010  poold                                                            74
+     8707  dtrace                                                         1720
+
+
+### Read bytes by process,
+  
+# dtrace -n 'sysinfo:::readch { @bytes[execname] = sum(arg0); }'
+dtrace: description 'sysinfo:::readch ' matched 4 probes
+^C
+ 
+  mozilla-bin                                                      16
+  gnome-smproxy                                                    64
+  metacity                                                         64
+  dsdm                                                             64
+  wnck-applet                                                      64
+  xscreensaver                                                     96
+  gnome-terminal                                                  900
+  ttymon                                                         5952
+  Xorg                                                          17544
+ 
+
+### Write bytes by process,
+ 
+# dtrace -n 'sysinfo:::writech { @bytes[execname] = sum(arg0); }'
+dtrace: description 'sysinfo:::writech ' matched 4 probes
+^C
+
+  dtrace                                                            1
+  gnome-settings-d                                                  8
+  xscreensaver                                                      8
+  gnome-panel                                                       8
+  nautilus                                                          8
+  date                                                             29
+  wnck-applet                                                     120
+  bash                                                            210
+  mozilla-bin                                                    1497
+  ls                                                             1947
+  metacity                                                       3172
+  Xorg                                                           7424
+  gnome-terminal                                                51955
+
+
+### Read size distribution by process,
+ 
+# dtrace -n 'sysinfo:::readch { @dist[execname] = quantize(arg0); }'
+dtrace: description 'sysinfo:::readch ' matched 4 probes
+^C
+[...]
+  gnome-terminal
+           value  ------------- Distribution ------------- count
+              16 |                                         0
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   15
+              64 |@@@                                      1
+             128 |                                         0
+ 
+  Xorg
+           value  ------------- Distribution ------------- count
+              -1 |                                         0
+               0 |@@@@@@@@@@@@@@@@@@@                      26
+               1 |                                         0
+               2 |                                         0
+               4 |                                         0
+               8 |@@@@                                     6
+              16 |@                                        2
+              32 |@                                        2
+              64 |                                         0
+             128 |@@@@@@@@                                 11
+             256 |@@@                                      4
+             512 |                                         0
+
+
+### Write size distribution by process,
+ 
+# dtrace -n 'sysinfo:::writech { @dist[execname] = quantize(arg0); }'
+dtrace: description 'sysinfo:::writech ' matched 4 probes
+^C
+[...]
+  Xorg
+           value  ------------- Distribution ------------- count
+              16 |                                         0
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       169
+              64 |@@@                                      16
+             128 |@@                                       10
+             256 |                                         0
+ 
+  gnome-terminal
+           value  ------------- Distribution ------------- count
+               0 |                                         0
+               1 |@@                                       6
+               2 |                                         0
+               4 |                                         0
+               8 |                                         1
+              16 |@                                        2
+              32 |@@@                                      7
+              64 |                                         0
+             128 |@@@@@@@@@@@@@@@@@@@@@@@                  63
+             256 |@@@@                                     10
+             512 |                                         1
+            1024 |@@@@@                                    13
+            2048 |@                                        2
+            4096 |@@@                                      7
+
+
+### Disk size by process,
+  
+# dtrace -n 'io:::start { printf("%d %s %d",pid,execname,args[0]->b_bcount); }'
+  0   3271              bdev_strategy:start 16459 tar 1024
+  0   3271              bdev_strategy:start 16459 tar 1024
+  0   3271              bdev_strategy:start 16459 tar 2048
+  0   3271              bdev_strategy:start 16459 tar 1024
+  0   3271              bdev_strategy:start 16459 tar 1024
+  0   3271              bdev_strategy:start 16459 tar 1024
+  0   3271              bdev_strategy:start 16459 tar 8192
+  0   3271              bdev_strategy:start 16459 tar 8192
+  0   3271              bdev_strategy:start 16459 tar 16384
+  0   3271              bdev_strategy:start 16459 tar 2048
+  0   3271              bdev_strategy:start 16459 tar 1024
+  0   3271              bdev_strategy:start 16459 tar 1024
+
+
+### Pages paged in by process,
+ 
+# dtrace -n 'vminfo:::pgpgin { @pg[execname] = sum(arg0); }'
+dtrace: description 'vminfo:::pgpgin ' matched 1 probe
+^C
+ 
+  ttymon                                                            1
+  bash                                                              1
+  mozilla-bin                                                      36
+  tar                                                            6661
+
+
+### Minor faults by process,
+  
+# dtrace -n 'vminfo:::as_fault { @mem[execname] = sum(arg0); }'
+dtrace: description 'vminfo:::as_fault ' matched 1 probe
+^C
+ 
+  mozilla-bin                                                      18
+  dtrace                                                           57
+  find                                                             64
+  bash                                                            150
+  tar                                                             501
+
+
+### Interrupts by CPU,
+ 
+# dtrace -n 'sdt:::interrupt-start { @num[cpu] = count(); }'
+dtrace: description 'sdt:::interrupt-start ' matched 1 probe
+^C
+ 
+      513                2
+      515                4
+        3               39
+        2               39
+
+
+### New processes with arguments and time,
+ 
+# dtrace -qn 'syscall::exec*:return { printf("%Y %s\n",walltimestamp,curpsinfo->pr_psargs); }'
+2005 Apr 25 19:15:09 man ls
+2005 Apr 25 19:15:09 sh -c cd /usr/share/man; tbl /usr/share/man/man1/ls.1 |...
+2005 Apr 25 19:15:09 neqn /usr/share/lib/pub/eqnchar -
+2005 Apr 25 19:15:09 tbl /usr/share/man/man1/ls.1
+2005 Apr 25 19:15:09 nroff -u0 -Tlp -man -
+2005 Apr 25 19:15:09 col -x
+2005 Apr 25 19:15:10 sh -c trap '' 1 15; /usr/bin/mv -f /tmp/mpRZaqTF /usr/s...
+2005 Apr 25 19:15:10 /usr/bin/mv -f /tmp/mpRZaqTF /usr/share/man/cat1/ls.1
+2005 Apr 25 19:15:10 sh -c more -s /tmp/mpRZaqTF
+2005 Apr 25 19:15:10 more -s /tmp/mpRZaqTF
+[...]
+
+
+### Successful signal details,
+  
+# dtrace -n 'proc:::signal-send /pid/ { printf("%s -%d %d",execname,args[2],args[1]->pr_pid); }'
+dtrace: description 'proc:::signal-send ' matched 1 probe
+CPU     ID                    FUNCTION:NAME
+  0   3303            sigtoproc:signal-send bash -15 16442
+  0   3303            sigtoproc:signal-send bash -9 16443
+^C
+
+
+### Kernel function calls by module,
+
+# dtrace -n 'fbt:::entry { @calls[probemod] = count(); }'
+dtrace: description 'fbt:::entry ' matched 18437 probes
+^C
+
+  devfs                                                             2
+  ptm                                                               2
+  ipf                                                               5
+  pts                                                               5
+  ttcompat                                                          9
+  ptem                                                              9
+  ldterm                                                           23
+  ipgpc                                                            24
+  ufs                                                              24
+  ata                                                              25
+  sockfs                                                           27
+  gld                                                              32
+  rtls                                                             34
+  flowacct                                                         38
+  specfs                                                           50
+  ip                                                               84
+  TS                                                               92
+  uhci                                                            101
+  uppc                                                           1758
+  unix                                                           6347
+  genunix                                                       10023
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/opensnoop_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/opensnoop_example.txt
new file mode 100644
index 0000000..329d09b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/opensnoop_example.txt
@@ -0,0 +1,110 @@
+The following are examples of opensnoop. File open events are traced
+along with some process details.
+
+
+This first example is of the default output. The commands "cat", "cal",
+"ls" and "uname" were run. The returned file descriptor (or -1 for error) are
+shown, along with the filenames.
+
+  # ./opensnoop
+    UID   PID COMM          FD PATH
+    100  3504 cat           -1 /var/ld/ld.config
+    100  3504 cat            3 /usr/lib/libc.so.1
+    100  3504 cat            3 /etc/passwd
+    100  3505 cal           -1 /var/ld/ld.config
+    100  3505 cal            3 /usr/lib/libc.so.1
+    100  3505 cal            3 /usr/share/lib/zoneinfo/Australia/NSW
+    100  3506 ls            -1 /var/ld/ld.config
+    100  3506 ls             3 /usr/lib/libc.so.1
+    100  3507 uname         -1 /var/ld/ld.config
+    100  3507 uname          3 /usr/lib/libc.so.1
+  [...]
+
+
+Full command arguments can be fetched using -g,
+
+  # ./opensnoop -g
+    UID   PID PATH                                   FD ARGS
+    100  3528 /var/ld/ld.config                      -1 cat /etc/passwd
+    100  3528 /usr/lib/libc.so.1                      3 cat /etc/passwd
+    100  3528 /etc/passwd                             3 cat /etc/passwd
+    100  3529 /var/ld/ld.config                      -1 cal
+    100  3529 /usr/lib/libc.so.1                      3 cal
+    100  3529 /usr/share/lib/zoneinfo/Australia/NSW   3 cal
+    100  3530 /var/ld/ld.config                      -1 ls -l
+    100  3530 /usr/lib/libc.so.1                      3 ls -l
+    100  3530 /var/run/name_service_door              3 ls -l
+    100  3530 /usr/share/lib/zoneinfo/Australia/NSW   4 ls -l
+    100  3531 /var/ld/ld.config                      -1 uname -a
+    100  3531 /usr/lib/libc.so.1                      3 uname -a
+  [...]
+
+
+
+The verbose option prints human readable timestamps,
+
+  # ./opensnoop -v
+  STRTIME                UID   PID COMM          FD PATH
+  2005 Jan 22 01:22:50     0 23212 df            -1 /var/ld/ld.config
+  2005 Jan 22 01:22:50     0 23212 df             3 /lib/libcmd.so.1
+  2005 Jan 22 01:22:50     0 23212 df             3 /lib/libc.so.1
+  2005 Jan 22 01:22:50     0 23212 df             3 /platform/SUNW,Sun-Fire-V210/lib/libc_psr.so.1
+  2005 Jan 22 01:22:50     0 23212 df             3 /etc/mnttab
+  2005 Jan 22 01:22:50     0 23211 dtrace         4 /usr/share/lib/zoneinfo/Australia/NSW
+  2005 Jan 22 01:22:51     0 23213 uname         -1 /var/ld/ld.config
+  2005 Jan 22 01:22:51     0 23213 uname          3 /lib/libc.so.1
+  2005 Jan 22 01:22:51     0 23213 uname          3 /platform/SUNW,Sun-Fire-V210/lib/libc_psr.so.1
+  [...]
+
+
+
+Particular files can be monitored using -f. For example,
+
+  # ./opensnoop -vgf /etc/passwd
+  STRTIME                UID   PID PATH                  FD ARGS
+  2005 Jan 22 01:28:50     0 23242 /etc/passwd            3 cat /etc/passwd
+  2005 Jan 22 01:28:54     0 23243 /etc/passwd            4 vi /etc/passwd
+  2005 Jan 22 01:29:06     0 23244 /etc/passwd            3 passwd brendan
+  [...]
+
+
+
+This example is of opensnoop running on a quiet system. We can see as 
+various daemons are opening files,
+
+   # ./opensnoop
+     UID   PID COMM          FD PATH
+       0   253 nscd           5 /etc/user_attr
+       0   253 nscd           5 /etc/hosts
+       0   419 mibiisa        2 /dev/kstat
+       0   419 mibiisa        2 /dev/rtls
+       0   419 mibiisa        2 /dev/kstat
+       0   419 mibiisa        2 /dev/kstat
+       0   419 mibiisa        2 /dev/rtls
+       0   419 mibiisa        2 /dev/kstat
+       0   253 nscd           5 /etc/user_attr
+       0   419 mibiisa        2 /dev/kstat
+       0   419 mibiisa        2 /dev/rtls
+       0   419 mibiisa        2 /dev/kstat
+       0   174 in.routed      8 /dev/kstat
+       0   174 in.routed      8 /dev/kstat
+       0   174 in.routed      6 /dev/ip
+       0   419 mibiisa        2 /dev/kstat
+       0   419 mibiisa        2 /dev/rtls
+       0   419 mibiisa        2 /dev/kstat
+       0   293 utmpd          4 /var/adm/utmpx
+       0   293 utmpd          5 /var/adm/utmpx
+       0   293 utmpd          6 /proc/442/psinfo
+       0   293 utmpd          6 /proc/567/psinfo
+       0   293 utmpd          6 /proc/567/psinfo
+       0   293 utmpd          6 /proc/567/psinfo
+       0   293 utmpd          6 /proc/567/psinfo
+       0   293 utmpd          6 /proc/567/psinfo
+       0   293 utmpd          6 /proc/567/psinfo
+       0   293 utmpd          6 /proc/567/psinfo
+       0   293 utmpd          6 /proc/567/psinfo
+       0   293 utmpd          6 /proc/3013/psinfo
+       0   419 mibiisa        2 /dev/kstat
+       0   419 mibiisa        2 /dev/rtls
+       0   419 mibiisa        2 /dev/kstat
+  [...]
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pathopens_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pathopens_example.txt
new file mode 100644
index 0000000..b5004dd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pathopens_example.txt
@@ -0,0 +1,32 @@
+The following is a demonstration of the pathopens.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+   # pathopens.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    COUNT PATHNAME
+        1 /lib/libcmd.so.1
+        1 /export/home/root/DTrace/Dexplorer/dexplorer
+        1 /lib/libmd5.so.1
+        1 /lib/libaio.so.1
+        1 /lib/librt.so.1
+        1 /etc/security/prof_attr
+        1 /etc/mnttab
+        2 /devices/pseudo/devinfo@0:devinfo
+        2 /dev/kstat
+        2 /lib/libnvpair.so.1
+        2 /lib/libkstat.so.1
+        2 /lib/libdevinfo.so.1
+        2 /lib/libnsl.so.1
+        4 /lib/libc.so.1
+        4 /var/ld/ld.config
+        8 /export/home/brendan/Utils_solx86/setiathome-3.08.i386-pc-solaris2.6/outfile.sah
+
+In the above output, many of the files would have been opened using 
+absolute pathnames. However the "dexplorer" file was opened using a relative
+pathname - and the pathopens.d script has correctly printed the full path.
+
+The above shows that the outfile.sah file was opened successfully 8 times.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pfilestat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pfilestat_example.txt
new file mode 100644
index 0000000..b2c54a0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pfilestat_example.txt
@@ -0,0 +1,200 @@
+The following are sample outputs of the pfilestat tool for various scenarios.
+
+
+
+Starting with something simple,
+
+Running: dd if=/dev/rdsk/c0d0s0 of=/dev/null bs=56k	# x86, 32-bit
+
+   # ./pfilestat `pgrep -x dd`
+   
+        STATE   FDNUM      Time Filename
+         read       3        2% /devices/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
+        write       4        3% /devices/pseudo/mm@0:null
+      waitcpu       0        7%
+      running       0       16%
+      sleep-r       0       69%
+   
+        STATE   FDNUM      KB/s Filename
+        write       4     53479 /devices/pseudo/mm@0:null
+         read       3     53479 /devices/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
+   
+   Total event time (ms): 4999   Total Mbytes/sec: 104
+
+Most of the time we are sleeping on read, which is to be expected as dd on
+the raw device is simple -> read:entry, strategy, biodone, read:return.
+CPU time in read() itself is small.
+
+
+
+Now for the dsk device,
+
+Running: dd if=/dev/dsk/c0d0s0 of=/dev/null bs=56k	# x86, 32-bit
+
+   # ./pfilestat `pgrep -x dd`
+   
+        STATE   FDNUM      Time Filename
+        write       4        5% /devices/pseudo/mm@0:null
+      waitcpu       0        8%
+      running       0       15%
+      sleep-r       0       18%
+         read       3       53% /devices/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
+   
+        STATE   FDNUM      KB/s Filename
+         read       3     53492 /devices/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
+        write       4     53492 /devices/pseudo/mm@0:null
+   
+   Total event time (ms): 4914   Total Mbytes/sec: 102
+
+Woah, we are now spending much more time in read()! I imagine segmap is
+a busy bee. The "running" and "write" times are hardly different.
+
+
+
+Now for a SPARC demo of the same,
+
+Running: dd if=/dev/dsk/c0d0s0 of=/dev/null bs=56k	# SPARC, 64-bit
+
+   # ./pfilestat `pgrep -x dd`
+
+        STATE   FDNUM      Time Filename
+        write       4        3% /devices/pseudo/mm@0:zero
+      waitcpu       0        7%
+      running       0       17%
+         read       3       24% /devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a
+      sleep-r       0       54%
+   
+        STATE   FDNUM      KB/s Filename
+         read       3     13594 /devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a
+        write       4     13606 /devices/pseudo/mm@0:zero
+   
+   Total event time (ms): 4741   Total Mbytes/sec: 25
+
+I did prime the cache by running this a few times first. There is less
+read() time than with the x86 32-bit demo, as I would guess that the
+process is more often exhausting the (faster) segmap cache and getting
+to the point where it must sleep. (However, do take this comparison with
+a grain of salt - my development servers aren't ideal for comparing
+statistics: one is a 867 MHz Pentium, and the other a 360 MHz Ultra 5).
+
+The file system cache is faster on 64-bit systems due to the segkpm
+enhancement in Solaris 10. For details see,
+http://blogs.sun.com/roller/page/rmc?entry=solaris_10_fast_filesystem_cache
+
+
+
+Now, back to x86.
+
+Running: tar cf /dev/null /
+
+   # ./pfilestat `pgrep -x tar`
+   
+        STATE   FDNUM      Time Filename
+         read      11        0% /extra1/test/amd64/libCstd.so.1
+         read      11        0% /extra1/test/amd64/libXm.so
+         read      11        0% /extra1/test/amd64/libXm.so.4
+         read      11        1% /extra1/test/amd64/libgtk-x11-2.0.so
+         read      11        2% /extra1/test/amd64/libgtk-x11-2.0.so.0
+      waitcpu       0        2%
+         read       9        4% /extra1/5000
+        write       3        7% /devices/pseudo/mm@0:null
+      running       0       19%
+      sleep-r       0       46%
+   
+        STATE   FDNUM      KB/s Filename
+         read      11       293 /extra1/test/amd64/libgdk-x11-2.0.so
+         read      11       295 /extra1/test/amd64/libgdk-x11-2.0.so.0
+         read       9       476 /extra1/1000
+         read      11       526 /extra1/test/amd64/libCstd.so.1
+         read      11       594 /extra1/test/amd64/libXm.so.4
+         read      11       594 /extra1/test/amd64/libXm.so
+         read      11      1603 /extra1/test/amd64/libgtk-x11-2.0.so.0
+         read      11      1606 /extra1/test/amd64/libgtk-x11-2.0.so
+         read       9      4078 /extra1/5000
+        write       3     21254 /devices/pseudo/mm@0:null
+   
+   Total event time (ms): 4903   Total Mbytes/sec: 41
+
+Fair enough. tar is crusing along at 21 Mbytes/sec (writes to fd 3!).
+
+
+
+More interesting is to do the following,
+
+Running: tar cf - / | gzip > /dev/null
+
+   # ./pfilestat `pgrep -x tar`
+   
+        STATE   FDNUM      Time Filename
+         read      11        0% /extra1/test/amd64/libm.so
+         read      11        0% /extra1/test/amd64/libm.so.2
+         read      11        0% /extra1/test/amd64/libnsl.so
+         read      11        0% /extra1/test/amd64/libnsl.so.1
+         read      11        0% /extra1/test/amd64/libc.so.1
+        write       3        2% <none>
+      waitcpu       0        4%
+      sleep-r       0        4%
+      running       0        6%
+      sleep-w       0       78%
+   
+        STATE   FDNUM      KB/s Filename
+         read      11        74 /extra1/test/amd64/libldap.so
+         read      11        75 /extra1/test/amd64/libldap.so.5
+         read      11        75 /extra1/test/amd64/libresolv.so.2
+         read      11        76 /extra1/test/amd64/libresolv.so
+         read      11        97 /extra1/test/amd64/libm.so.2
+         read      11        98 /extra1/test/amd64/libm.so
+         read      11       174 /extra1/test/amd64/libnsl.so
+         read      11       176 /extra1/test/amd64/libnsl.so.1
+         read      11       216 /extra1/test/amd64/libc.so.1
+        write       3      3022 <none>
+   
+   Total event time (ms): 4911   Total Mbytes/sec: 6
+
+Woah now, tar is writing 3 Mbytes/sec - AND spending 78% of it's time on
+sleep-w, sleeping on writes! Of course, this is because we are piping the
+output to gzip, which is spending a while compressing the data. 78%
+matches the time gzip was on the CPU (using either "prstat -m" or dtrace
+to measure; procfs's pr_pctcpu would take too long to catch up).
+
+
+
+
+Also interesting is,
+
+Running: perl -e 'while (1) {;}' &
+Running: perl -e 'while (1) {;}' &
+Running: perl -e 'while (1) {;}' &
+Running: perl -e 'while (1) {;}' &
+Running: tar cf /dev/null /
+
+   # ./pfilestat `pgrep -x tar`
+
+        STATE   FDNUM      Time Filename
+         read      11        0% /extra1/test/amd64/libxml2.so.2
+         read      11        0% /extra1/test/amd64/libgdk-x11-2.0.so.0
+         read      11        0% /extra1/test/amd64/libgdk-x11-2.0.so
+         read      11        0% /extra1/test/amd64/libCstd.so.1
+         read      11        0% /extra1/test/amd64/libgtk-x11-2.0.so.0
+         read      11        2% /extra1/test/amd64/libgtk-x11-2.0.so
+        write       3        2% /devices/pseudo/mm@0:null
+      running       0        8%
+      sleep-r       0       22%
+      waitcpu       0       65%
+   
+        STATE   FDNUM      KB/s Filename
+         read      11       182 /extra1/test/amd64/libsun_fc.so
+         read      11       264 /extra1/test/amd64/libglib-2.0.so
+         read      11       266 /extra1/test/amd64/libglib-2.0.so.0
+         read      11       280 /extra1/test/amd64/libxml2.so.2
+         read      11       293 /extra1/test/amd64/libgdk-x11-2.0.so
+         read      11       295 /extra1/test/amd64/libgdk-x11-2.0.so.0
+         read      11       526 /extra1/test/amd64/libCstd.so.1
+         read      11       761 /extra1/test/amd64/libgtk-x11-2.0.so.0
+         read      11      1606 /extra1/test/amd64/libgtk-x11-2.0.so
+        write       3      7881 /devices/pseudo/mm@0:null
+   
+   Total event time (ms): 4596   Total Mbytes/sec: 13
+
+Now we have "waitcpu" as tar competes for CPU cycles along with the greedy
+infinite perl processes.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pgpginbypid_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pgpginbypid_example.txt
new file mode 100644
index 0000000..8326b90
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pgpginbypid_example.txt
@@ -0,0 +1,14 @@
+The following is a demonstration of the pgpginbypid.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+   # pgpginbypid.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD                         PAGES
+    10692 find                          128
+    10693 tar                         11928
+
+In the output above, we can see which processes are responsible for page ins,
+as well as the number of pages paged in.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pgpginbyproc_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pgpginbyproc_example.txt
new file mode 100644
index 0000000..e8bb821
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pgpginbyproc_example.txt
@@ -0,0 +1,13 @@
+The following is a demonstration of the pgpginbyproc.d script,
+
+   # pgpginbyproc.d
+   dtrace: description 'vminfo:::pgpgin ' matched 1 probe
+   ^C
+    
+     ttymon                                                            1
+     bash                                                              1
+     mozilla-bin                                                      36
+     tar                                                            6661
+
+In the above output, tar processes have paged in 6661 pages from the filesystem.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/php_calldist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_calldist_example.txt
new file mode 100644
index 0000000..db3b0af
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_calldist_example.txt
@@ -0,0 +1,84 @@
+The following are examples of php_calldist.d.
+
+This script traces the elapsed time of PHP functions and prints a report 
+containing distribution plots per subroutine. Here it traces the example program
+Code/Php/func_abc.php.
+
+# php_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive function elapsed times (us),
+   func_abc.php, func, func_a 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   func_abc.php, func, func_b 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   func_abc.php, func, func_c 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   func_abc.php, func, sleep 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+         1048576 |                                         0        
+
+
+Inclusive function elapsed times (us),
+   func_abc.php, func, func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   func_abc.php, func, func_b 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   func_abc.php, func, sleep 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+         1048576 |                                         0        
+
+   func_abc.php, func, func_a 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+In total, 3 subroutines were called, one each of func_a(), func_b() and
+func_c(), and sleep was called 3 times.  You can see this reflected in the
+"count" column on the right.
+
+The exclusive subroutine elapsed times show that each subroutine spent
+between 256 and 512 microseconds. This time excludes the time spent in
+other subroutines.
+
+The inclusive subroutine elapsed times show that func_c() took between 0.5 
+seconds and 1 second, func_b() took between 1 second and 2.1 seconds, and 
+func_a() took between 2.1 seconds and 4.2 seconds to execute. This time 
+includes the time spent in other subroutines called, and since func_a() called 
+func_b() which called func_c(), these times make sense.
+
+These elapsed times are the absolute time from when the subroutine began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
+Elapsed times are useful for identifying where latencies are.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/php_calltime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_calltime_example.txt
new file mode 100644
index 0000000..d76cb6e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_calltime_example.txt
@@ -0,0 +1,51 @@
+The following is an example of running php_calltime.d and tracing the elapsed
+times for functions.
+
+We run php_calltime.d while running the program Code/Php/func_abc.php.  We can
+see that there are three sections in the DTrace output
+
+# php_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   func_abc.php         func       func_a                                  1
+   func_abc.php         func       func_b                                  1
+   func_abc.php         func       func_c                                  1
+   func_abc.php         func       sleep                                   3
+   -                    total      -                                       6
+
+Exclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_abc.php         func       func_c                                330
+   func_abc.php         func       func_b                                367
+   func_abc.php         func       func_a                                418
+   func_abc.php         func       sleep                             3025644
+   -                    total      -                                 3026761
+
+Inclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_abc.php         func       func_c                            1010119
+   func_abc.php         func       func_b                            2020118
+   func_abc.php         func       sleep                             3025644
+   func_abc.php         func       func_a                            3026761
+
+Section 1 - Count shows us how many times each function was called in the
+Code/Php/func_abc.php program, with the last line giving us a total number of
+functions called (in this case, six).
+
+Section 2 - These elapsed times shows us how many microseconds the program 
+spends in each function.  This does not include the time spent in any 
+sub-functions called by that particular function.  Again the last line gives
+us the total time in microseconds.
+
+Section 3 - These elapsed times are the absolute time from when the function began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc. In particular, for this case it has
+included the time waiting for the sleep commands.
+
+Elapsed times are useful for identifying where latencies are.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive function time.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/php_cpudist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_cpudist_example.txt
new file mode 100644
index 0000000..6da7d29
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_cpudist_example.txt
@@ -0,0 +1,84 @@
+The following are examples of php_cpudist.d.
+
+This script traces the on-CPU time of PHP functions and prints a report
+containing distribution plots per subroutine. Here it traces the example 
+program Code/Php/func_abc.php.
+
+# php_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive function on-CPU times (us),
+   func_abc.php, func, func_a 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   func_abc.php, func, func_b 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   func_abc.php, func, func_c 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   func_abc.php, func, sleep 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+
+Inclusive function on-CPU times (us),
+   func_abc.php, func, func_c 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   func_abc.php, func, sleep 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   func_abc.php, func, func_b 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   func_abc.php, func, func_a 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+In total, 3 subroutines were called, one each of func_a(), func_b() and
+func_c(), and sleep was called 3 times.  You can see this reflected in the
+"count" column on the right.
+
+The exclusive subroutine elapsed times show that each subroutine spent
+between 16 and 31 microseconds on CPU. This time excludes the time spent in
+other subroutines.
+
+The inclusive subroutine elapsed times show that func_c() took between 32 
+microseconds and 63 microseconds on CPU; sleep ran three times and each time 
+took between 16 and 31 microseconds on CPU; func_b() took between 64 and 127 
+microseconds on CPU; and func_a() took between 128 and 255 microseconds on
+CPU.  This time includes the time spent in other subroutines called, and since 
+func_a() called func_b() which called func_c(), these times make sense.
+
+These elapsed times are the on CPU time from when the subroutine began to
+when it completed.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/php_cputime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_cputime_example.txt
new file mode 100644
index 0000000..db218e1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_cputime_example.txt
@@ -0,0 +1,58 @@
+The following are examples of php_cputime.d.
+
+This script traces the on-CPU time of PHP functions and prints a report. 
+Here it traces the example program, Code/Php/func_abc.php.
+
+# php_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   func_abc.php         func       func_a                                  1
+   func_abc.php         func       func_b                                  1
+   func_abc.php         func       func_c                                  1
+   func_abc.php         func       sleep                                   3
+   -                    total      -                                       6
+
+Exclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_abc.php         func       func_c                                 17
+   func_abc.php         func       func_b                                 25
+   func_abc.php         func       func_a                                 74
+   func_abc.php         func       sleep                                  93
+   -                    total      -                                     210
+
+Inclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_abc.php         func       func_c                                 39
+   func_abc.php         func       func_b                                 87
+   func_abc.php         func       sleep                                  93
+   func_abc.php         func       func_a                                210
+
+In total, six functions were called; sleep was called three times and there
+was one call each of func_a(), func_b() and func_c().
+
+The exclusive subroutine on-CPU times show that func_a() spent around 74
+microseconds on-CPU, func_b() spent 25 microseconds on-CPU, and func_c() spent 
+17 microseconds on-CPU. This exclusive times excludes time spent in other 
+subroutines.
+
+The inclusive subroutine on-CPU times show that func_c() spent around 39
+microseconds on-CPU, func_b() spent around 87 microseconds on-CPU and 
+func_a() spent around 210 microseconds. This inclusive time includes the time 
+spent in other functions called (including sleep),  and since func_a() called 
+func_b() which called func_c(), these times make perfect sense.
+
+These on-CPU times are the time the program spent running on a CPU, from when
+the function began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
+If you study the func_abc.php program alongside the above output, the numbers
+should make sense.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/php_flow_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_flow_example.txt
new file mode 100644
index 0000000..6470daf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_flow_example.txt
@@ -0,0 +1,36 @@
+The following are examples of php_flow.d.
+
+This is a simple script to trace the flow of PHP functions.
+Here it traces the example program, Code/Php/func_abc.php
+
+# php_flow.d 
+  C TIME(us)         FILE             -- FUNC
+  0 3645535409575    func_abc.php     -> func_a
+  0 3645535409653    func_abc.php       -> sleep
+  0 3645536410511    func_abc.php       <- sleep
+  0 3645536410536    func_abc.php       -> func_b
+  0 3645536410557    func_abc.php         -> sleep
+  0 3645537420627    func_abc.php         <- sleep
+  0 3645537420652    func_abc.php         -> func_c
+  0 3645537420673    func_abc.php           -> sleep
+  0 3645538430106    func_abc.php           <- sleep
+  0 3645538430125    func_abc.php         <- func_c
+  0 3645538430134    func_abc.php       <- func_b
+  0 3645538430143    func_abc.php     <- func_a
+^C
+
+The fourth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which - the output above begins by
+showing that func_a() began; slept, and returned from sleep; and then called
+func_b().
+
+The TIME(us) column shows time from boot in microseconds.
+
+The FILE column shows the file that was being executed. 
+
+If the output looks strange, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/php_flowinfo_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_flowinfo_example.txt
new file mode 100644
index 0000000..3b2e3c1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_flowinfo_example.txt
@@ -0,0 +1,40 @@
+The following are examples of php_flowinfo.d.
+
+This is a simple script to trace the flow of PHP functions.
+Here it traces the example program, Code/Php/func_abc.php
+
+# php_flowinfo.d 
+C    PID/TID   DELTA(us)              FILE:LINE TYPE     -- FUNC
+0  18422/1             9      func_abc.php:22   func     -> func_a
+0  18422/1            35      func_abc.php:18   func       -> sleep
+0  18422/1       1009146      func_abc.php:18   func       <- sleep
+0  18422/1            35      func_abc.php:19   func       -> func_b
+0  18422/1            24      func_abc.php:11   func         -> sleep
+0  18422/1       1009803      func_abc.php:11   func         <- sleep
+0  18422/1            34      func_abc.php:12   func         -> func_c
+0  18422/1            24      func_abc.php:5    func           -> sleep
+0  18422/1       1009953      func_abc.php:5    func           <- sleep
+0  18422/1            28      func_abc.php:6    func         <- func_c
+0  18422/1            11      func_abc.php:13   func       <- func_b
+0  18422/1            10      func_abc.php:20   func     <- func_a
+^C
+
+The third column is indented by 2 spaces to show when a new function begins. 
+This shows which function is calling which - the output above begins by 
+showing that func_a() began; slept, and returned from sleep; and then called 
+func_b().
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the second line of data output
+(skipping the header) reads as "the time from func_a() beginning to
+calling the sleep function beginning was 35 microseconds".
+
+The LINE column shows the line in the file what was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/php_flowtime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_flowtime_example.txt
new file mode 100644
index 0000000..57eb69c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_flowtime_example.txt
@@ -0,0 +1,41 @@
+The following are examples of php_flowtime.d.
+
+This is a simple script to trace the flow of PHP functions.
+Here it traces the example program, Code/Php/func_abc.php
+
+# php_flowtime.d
+  C TIME(us)         FILE             DELTA(us)  -- FUNC
+  0 3646108339057    func_abc.php             9 -> func_a
+  0 3646108339090    func_abc.php            32   -> sleep
+  0 3646109341043    func_abc.php       1001953   <- sleep
+  0 3646109341074    func_abc.php            31   -> func_b
+  0 3646109341098    func_abc.php            23     -> sleep
+  0 3646110350712    func_abc.php       1009614     <- sleep
+  0 3646110350745    func_abc.php            32     -> func_c
+  0 3646110350768    func_abc.php            23       -> sleep
+  0 3646111362323    func_abc.php       1011554       <- sleep
+  0 3646111362351    func_abc.php            27     <- func_c
+  0 3646111362361    func_abc.php            10   <- func_b
+  0 3646111362370    func_abc.php             9 <- func_a
+^C
+
+The fifth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which - the output above begins by
+showing that func_a() began; slept, and returned from sleep; and then called
+func_b().
+
+The TIME(us) column shows time since boot.
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the second line of data output
+(skipping the header) reads as "the time from func_a() beginning to
+calling the sleep function beginning was 32 microseconds".
+
+The FILE column shows file that was being executed. 
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/php_funccalls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_funccalls_example.txt
new file mode 100644
index 0000000..7155a71
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_funccalls_example.txt
@@ -0,0 +1,17 @@
+The following are examples of php_funccalls.d.
+
+This is a simple script to count executed PHP functions. Here it traces
+an example program, Code/Php/func_abc.php
+
+# php_funccalls.d 
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE                             FUNC                                CALLS
+ func_abc.php                     func_a                                  1
+ func_abc.php                     func_b                                  1
+ func_abc.php                     func_c                                  1
+ func_abc.php                     sleep                                   3
+
+While tracing, func_a() from the program "func_abc.php" was executed once,
+as were func_b() and func_c().  sleep was executed three times.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/php_malloc_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_malloc_example.txt
new file mode 100644
index 0000000..853d082
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_malloc_example.txt
@@ -0,0 +1,23 @@
+Following are examples of running php_malloc.d.
+
+Here it is running on Code/Php/func_abc.php
+
+   # php_malloc.d -p 18523
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   PHP malloc byte distributions by engine caller,
+   
+   
+   PHP malloc byte distributions by PHP file and function,
+
+
+Theoretically this should show you mallocs.  However there weren't any in this
+example.  The rest of these example files would have been so much easier to
+write if they were all like this.  I would have been finished by now and would
+have been flicking through the TV channels with a nice, cold beer in hand.
+
+
+... Fixing this example is on my todo list.  Check for newer versions of the
+toolkit.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/php_syscalls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_syscalls_example.txt
new file mode 100644
index 0000000..c783420
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_syscalls_example.txt
@@ -0,0 +1,22 @@
+The following are examples of php_syscalls.d.
+
+This is a simple script to count executed PHP functions and system calls.
+Here it traces an example program, Code/Php/func_abc.php
+
+# php_syscalls.d 
+Tracing... Hit Ctrl-C to end.
+^C
+ PID     FILE                       TYPE       NAME                      COUNT
+ 18419   func_abc.php               func       func_a                        1
+ 18419   func_abc.php               func       func_b                        1
+ 18419   func_abc.php               func       func_c                        1
+ 18419   func_abc.php               func       sleep                         3
+ 18419   httpd                      syscall    nanosleep                     3
+
+While tracing, four functions were called - func_a(), func_b(), func_c(), and
+sleep.  There were also three instances of the system call nanosleep().
+
+This script can provide an insight to how a PHP application is interacting
+with the system, by providing both application function calls and system calls 
+in the same output.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/php_syscolors_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_syscolors_example.txt
new file mode 100644
index 0000000..96b26a8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_syscolors_example.txt
@@ -0,0 +1,63 @@
+The following are examples of php_syscolors.d.
+
+This is a simple script to trace the flow of PHP functions and system
+calls made, and renders the output in color ("colour") using terminal
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Php/func_abc.php.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# php_syscolors.d
+C    PID/TID   DELTA(us)              FILE:LINE TYPE     -- NAME
+[2;35m0  18426/1             8      func_abc.php:22   func     -> func_a[0m
+[2;35m0  18426/1            41      func_abc.php:18   func       -> sleep[0m
+[2;32m0  18426/1            15                 ":-    syscall      -> nanosleep[0m
+[2;32m0  18426/1       1008700                 ":-    syscall      <- nanosleep[0m
+[2;35m0  18426/1            30      func_abc.php:18   func       <- sleep[0m
+[2;35m0  18426/1            42      func_abc.php:19   func       -> func_b[0m
+[2;35m0  18426/1            28      func_abc.php:11   func         -> sleep[0m
+[2;32m0  18426/1            14                 ":-    syscall        -> nanosleep[0m
+[2;32m0  18426/1       1010083                 ":-    syscall        <- nanosleep[0m
+[2;35m0  18426/1            29      func_abc.php:11   func         <- sleep[0m
+[2;35m0  18426/1            43      func_abc.php:12   func         -> func_c[0m
+[2;35m0  18426/1            28      func_abc.php:5    func           -> sleep[0m
+[2;32m0  18426/1            14                 ":-    syscall          -> nanosleep[0m
+[2;32m0  18426/1       1009794                 ":-    syscall          <- nanosleep[0m
+[2;35m0  18426/1            28      func_abc.php:5    func           <- sleep[0m
+[2;35m0  18426/1            34      func_abc.php:6    func         <- func_c[0m
+[2;35m0  18426/1            18      func_abc.php:13   func       <- func_b[0m
+[2;35m0  18426/1            17      func_abc.php:20   func     <- func_a[0m
+[2;32m0  18426/1            21                 ":-    syscall  -> fchdir[0m
+[2;32m0  18426/1            19                 ":-    syscall  <- fchdir[0m
+[2;32m0  18426/1             9                 ":-    syscall  -> close[0m
+[2;32m0  18426/1            13                 ":-    syscall  <- close[0m
+[2;32m0  18426/1            35                 ":-    syscall  -> semsys[0m
+[2;32m0  18426/1            12                 ":-    syscall  <- semsys[0m
+[2;32m0  18426/1             7                 ":-    syscall  -> semsys[0m
+[2;32m0  18426/1             7                 ":-    syscall  <- semsys[0m
+[2;32m0  18426/1            66                 ":-    syscall  -> setitimer[0m
+[2;32m0  18426/1             8                 ":-    syscall  <- setitimer[0m
+[2;32m0  18426/1            39                 ":-    syscall  -> read[0m
+[2;32m0  18426/1            14                 ":-    syscall  <- read[0m
+[2;32m0  18426/1            11                 ":-    syscall  -> writev[0m
+[2;32m0  18426/1            22                 ":-    syscall  <- writev[0m
+[2;32m0  18426/1            23                 ":-    syscall  -> write[0m
+[2;32m0  18426/1           110                 ":-    syscall  <- write[0m
+[2;32m0  18426/1            61                 ":-    syscall  -> pollsys[0m
+
+In this excerpt:
+[2;35m0  18426/1            43      func_abc.php:12   func         -> func_c[0m
+[2;35m0  18426/1            28      func_abc.php:5    func           -> sleep[0m
+[2;32m0  18426/1            14                 ":-    syscall          -> nanosleep[0m
+[2;32m0  18426/1       1009794                 ":-    syscall          <- nanosleep[0m
+[2;35m0  18426/1            28      func_abc.php:5    func           <- sleep[0m
+[2;35m0  18426/1            34      func_abc.php:6    func         <- func_c[0m
+
+we can see that we are at Line 12 of the program which invokes func_c.  func_c
+then invokes sleep, which uses the syscall nanosleep.  Approximately one
+second later nanosleep returns, then sleep finishes, then func_c finishes.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/php_who_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_who_example.txt
new file mode 100644
index 0000000..cee32b2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/php_who_example.txt
@@ -0,0 +1,10 @@
+The following are examples of the results of running php_who.d.
+
+# php_who.d 
+Tracing... Hit Ctrl-C to end.
+^C
+      PID    UID  FUNCS FILE
+   158525     80      7 /opt/coolstack/apache2/htdocs/php/func_abc.php
+
+Running the php_who.d while the func_abc.php program runs, we can see that
+while func_abc.php was running, it called seven functions. 
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pidpersec_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pidpersec_example.txt
new file mode 100644
index 0000000..11f6bd7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pidpersec_example.txt
@@ -0,0 +1,33 @@
+The following is a demonstration of the pidpersec.d script.
+
+
+Here the program is run on an idle system,
+
+   # ./pidpersec.d
+   TIME                    LASTPID  PID/s
+   2005 Jun  9 22:15:09       3010      0
+   2005 Jun  9 22:15:10       3010      0
+   2005 Jun  9 22:15:11       3010      0
+   2005 Jun  9 22:15:12       3010      0
+   2005 Jun  9 22:15:13       3010      0
+   ^C
+
+This shows that there are now new processes being created.
+
+
+
+Now the script is run on a busy system, that is creating many processes
+(which happen to be short-lived),
+
+   # ./pidpersec.d
+   TIME                    LASTPID  PID/s
+   2005 Jun  9 22:16:30       3051     13
+   2005 Jun  9 22:16:31       3063     12
+   2005 Jun  9 22:16:32       3073     10
+   2005 Jun  9 22:16:33       3084     11
+   2005 Jun  9 22:16:34       3096     12
+   ^C
+
+Now we can see that there are over 10 new processes created each second.
+The value for lastpid confirms the rates printed.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_calldist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_calldist_example.txt
new file mode 100644
index 0000000..f53b7f5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_calldist_example.txt
@@ -0,0 +1,456 @@
+The following are examples of pl_calldist.d.
+
+This script traces the elapsed time of Perl subroutines (functions) and
+prints a report containing distribution plots per subroutine. Here it
+traces the example program, Code/Perl/func_abc.pl.
+
+   # pl_calldist.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   Exclusive subroutine elapsed times (us),
+      func_abc.pl, sub, func_a 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+      func_abc.pl, sub, func_b 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+      func_abc.pl, sub, func_c 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+   
+   Inclusive subroutine elapsed times (us),
+      func_abc.pl, sub, func_c 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+      func_abc.pl, sub, func_b 
+              value  ------------- Distribution ------------- count    
+             524288 |                                         0        
+            1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2097152 |                                         0        
+   
+      func_abc.pl, sub, func_a 
+              value  ------------- Distribution ------------- count    
+            1048576 |                                         0        
+            2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4194304 |                                         0        
+   
+In total, 3 subroutines were called - func_a(), func_b(), and func_c().
+
+The exclusive subroutine elapsed times show that each subroutine spent
+between 524 and 1048 ms. This exclusive time excludes the time spent in
+other subroutines.
+
+The inclusive subroutine elapsed times show that func_c() took between 0.5 and
+1.0 seconds, func_b() took between 1.0 and 2.1 seconds, and func_a() took
+between 2.1 and 4.2 seconds to execute. This inclusive time includes the
+time spent in other subroutines called, and since func_a() called func_b()
+which called func_c(), these times make sense.
+
+These elapsed times are the absolute time from when the subroutine began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
+Elapsed times are useful for identifying where latencies are.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive subroutine elapsed times (us),
+   DynaLoader.pm, sub, dl_load_flags 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   Config.pm, sub, TIEHASH 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   Config.pm, sub, DESTROY 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   Config.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   register.pm, sub, mkMask 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+               8 |                                         0        
+
+   Config.pm, sub, FETCH 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     2        
+               4 |@@@@@@@@@@@@@@@@@@@@                     2        
+               8 |                                         0        
+
+   Config.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |@@@@@@@@@@@@@@@@@@@@                     1        
+              32 |                                         0        
+
+   strict.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@                                 1        
+               4 |@@@@@@@@@@@@@@@@                         2        
+               8 |@@@@@@@@                                 1        
+              16 |@@@@@@@@                                 1        
+              32 |                                         0        
+
+   strict.pm, sub, bits 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+               8 |@@@@@@@                                  1        
+              16 |@@@@@@@                                  1        
+              32 |                                         0        
+
+   strict.pm, sub, unimport 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           3        
+              16 |@@@@@@@@@@                               1        
+              32 |                                         0        
+
+   AutoLoader.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@                                  1        
+               4 |@@@@@@@                                  1        
+               8 |@@@@@@@@@@@@@@@@@@@@                     3        
+              16 |@@@@@@@                                  1        
+              32 |                                         0        
+
+   Std.pm, sub, getopts 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   register.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   vars.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   Exporter.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@                     1        
+              64 |@@@@@@@@@@@@@@@@@@@@                     1        
+             128 |                                         0        
+
+   DynaLoader.pm, sub, bootstrap 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   warnings.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   DynaLoader.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@                     1        
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@                     1        
+            2048 |                                         0        
+
+   nicstat, sub, print_neat 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@                   10       
+             128 |@@@@@@@@@@@@@@@@@@                       8        
+             256 |                                         0        
+
+   vars.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@                            1        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@                            1        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+
+   Kstat.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+
+   nicstat, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@                            1        
+             512 |@@@@@@@@@@@@@                            1        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+
+   nicstat, sub, fetch_net_data 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+   nicstat, sub, find_nets 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+
+Inclusive subroutine elapsed times (us),
+   DynaLoader.pm, sub, dl_load_flags 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   Config.pm, sub, TIEHASH 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   Config.pm, sub, DESTROY 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   Config.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   register.pm, sub, mkMask 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+               8 |                                         0        
+
+   Config.pm, sub, FETCH 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     2        
+               4 |@@@@@@@@@@@@@@@@@@@@                     2        
+               8 |                                         0        
+
+   strict.pm, sub, bits 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+               8 |@@@@@@@                                  1        
+              16 |@@@@@@@                                  1        
+              32 |                                         0        
+
+   strict.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@                                 1        
+               4 |@@@@@@@@@@@@@@@@                         2        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@                         2        
+              32 |                                         0        
+
+   Config.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     1        
+              32 |@@@@@@@@@@@@@@@@@@@@                     1        
+              64 |                                         0        
+
+   Std.pm, sub, getopts 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   register.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   strict.pm, sub, unimport 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+              32 |                                         0        
+
+   vars.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   AutoLoader.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@                                  1        
+               4 |@@@@@@@                                  1        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     3        
+              32 |@@@@@@@                                  1        
+              64 |                                         0        
+
+   Exporter.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@                     1        
+              64 |@@@@@@@@@@@@@@@@@@@@                     1        
+             128 |                                         0        
+
+   DynaLoader.pm, sub, bootstrap 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   warnings.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   nicstat, sub, print_neat 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@                   10       
+             128 |@@@@@@@@@@@@@@@@@@                       8        
+             256 |                                         0        
+
+   vars.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@                            1        
+               4 |                                         0        
+               8 |                                         0        
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@                            1        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+
+   DynaLoader.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@                     1        
+            2048 |@@@@@@@@@@@@@@@@@@@@                     1        
+            4096 |                                         0        
+
+   Kstat.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@                            1        
+              32 |@@@@@@@@@@@@@                            1        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@                            1        
+           16384 |                                         0        
+
+   nicstat, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@                            1        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@                            1        
+           16384 |                                         0        
+
+   nicstat, sub, fetch_net_data 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+   nicstat, sub, find_nets 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+As an example of interpreting the output: the inclusive elapsed time for
+the "print_neat" subroutine in "nicstat",
+
+   nicstat, sub, print_neat 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@                   10       
+             128 |@@@@@@@@@@@@@@@@@@                       8        
+             256 |                                         0        
+
+shows that "print_neat" was called 18 times, 10 of which took between 64
+and 127 microseconds, and 8 of which took between 128 and 255 microseconds.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_calltime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_calltime_example.txt
new file mode 100644
index 0000000..3cc5480
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_calltime_example.txt
@@ -0,0 +1,150 @@
+The following are examples of pl_calltime.d.
+
+This script traces the elapsed time of Perl subroutines (functions) and
+prints a report. Here it traces the example program, Code/Perl/func_abc.pl.
+
+   # pl_calltime.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   Count,
+      FILE                 TYPE       NAME                                COUNT
+      func_abc.pl          sub        func_a                                  1
+      func_abc.pl          sub        func_b                                  1
+      func_abc.pl          sub        func_c                                  1
+      -                    total      -                                       3
+   
+   Exclusive subroutine elapsed times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_abc.pl          sub        func_a                            1006119
+      func_abc.pl          sub        func_c                            1009978
+      func_abc.pl          sub        func_b                            1010273
+      -                    total      -                                 3026371
+   
+   Inclusive subroutine elapsed times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_abc.pl          sub        func_c                            1009978
+      func_abc.pl          sub        func_b                            2020252
+      func_abc.pl          sub        func_a                            3026371
+
+In total, 3 subroutines were called, one of each.
+
+The exclusive subroutine elapsed times show that each subroutine spent around
+1.0 seconds of time (~1000000 us) processing code - while not in other
+subroutines.
+
+The inclusive subroutine elapsed times show that func_a() took around 3.0
+seconds to execute, followed by func_b() at 2.0 seconds, and func_c() at 1.0.
+The inclusive time includes the time spent in other subroutines called, and
+since func_a() called func_b() which called func_c(), these times make
+perfect sense.
+
+These elapsed times are the absolute time from when the subroutine began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
+Elapsed times are useful for identifying where latencies are.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
+If you study the func_abc.pl program alongside the above output, the numbers
+should make sense. 
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   Config.pm            sub        DESTROY                                 1
+   Config.pm            sub        TIEHASH                                 1
+   Config.pm            sub        import                                  1
+   DynaLoader.pm        sub        bootstrap                               1
+   DynaLoader.pm        sub        dl_load_flags                           1
+   Std.pm               sub        getopts                                 1
+   nicstat              sub        fetch_net_data                          1
+   nicstat              sub        find_nets                               1
+   register.pm          sub        import                                  1
+   warnings.pm          sub        BEGIN                                   1
+   Config.pm            sub        BEGIN                                   2
+   DynaLoader.pm        sub        BEGIN                                   2
+   Exporter.pm          sub        import                                  2
+   register.pm          sub        mkMask                                  2
+   vars.pm              sub        import                                  2
+   Kstat.pm             sub        BEGIN                                   3
+   nicstat              sub        BEGIN                                   3
+   vars.pm              sub        BEGIN                                   3
+   Config.pm            sub        FETCH                                   4
+   strict.pm            sub        unimport                                4
+   strict.pm            sub        import                                  5
+   AutoLoader.pm        sub        BEGIN                                   6
+   strict.pm            sub        bits                                    6
+   nicstat              sub        print_neat                             18
+   -                    total      -                                      72
+
+Exclusive subroutine elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   DynaLoader.pm        sub        dl_load_flags                           2
+   Config.pm            sub        TIEHASH                                 3
+   Config.pm            sub        DESTROY                                 9
+   register.pm          sub        mkMask                                 11
+   Config.pm            sub        import                                 12
+   Config.pm            sub        FETCH                                  17
+   strict.pm            sub        import                                 38
+   Config.pm            sub        BEGIN                                  38
+   strict.pm            sub        bits                                   49
+   vars.pm              sub        import                                 59
+   strict.pm            sub        unimport                               65
+   AutoLoader.pm        sub        BEGIN                                  70
+   Std.pm               sub        getopts                                78
+   register.pm          sub        import                                 86
+   Exporter.pm          sub        import                                112
+   warnings.pm          sub        BEGIN                                 680
+   DynaLoader.pm        sub        BEGIN                                1131
+   DynaLoader.pm        sub        bootstrap                            1221
+   nicstat              sub        print_neat                           2450
+   vars.pm              sub        BEGIN                                2608
+   Kstat.pm             sub        BEGIN                                3171
+   nicstat              sub        BEGIN                                3963
+   nicstat              sub        fetch_net_data                      45424
+   nicstat              sub        find_nets                           55737
+   -                    total      -                                  117047
+
+Inclusive subroutine elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   DynaLoader.pm        sub        dl_load_flags                           2
+   Config.pm            sub        TIEHASH                                 3
+   Config.pm            sub        DESTROY                                 9
+   register.pm          sub        mkMask                                 11
+   Config.pm            sub        import                                 12
+   Config.pm            sub        FETCH                                  17
+   strict.pm            sub        import                                 46
+   strict.pm            sub        bits                                   49
+   vars.pm              sub        import                                 59
+   Config.pm            sub        BEGIN                                  64
+   strict.pm            sub        unimport                               87
+   register.pm          sub        import                                 97
+   Std.pm               sub        getopts                               112
+   Exporter.pm          sub        import                                112
+   AutoLoader.pm        sub        BEGIN                                 140
+   warnings.pm          sub        BEGIN                                 680
+   DynaLoader.pm        sub        bootstrap                            1224
+   nicstat              sub        print_neat                           2450
+   vars.pm              sub        BEGIN                                3412
+   DynaLoader.pm        sub        BEGIN                                4656
+   Kstat.pm             sub        BEGIN                                8020
+   nicstat              sub        BEGIN                               13313
+   nicstat              sub        fetch_net_data                      45424
+   nicstat              sub        find_nets                           55737
+
+The output showed that the most time was spent in the subroutine find_nets(),
+with a total exclusive elapsed time of 55.7 ms. This also matches the
+total inclusive time, suggesting that find_nets() didn't call other
+subroutines.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_cpudist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_cpudist_example.txt
new file mode 100644
index 0000000..a2ccff8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_cpudist_example.txt
@@ -0,0 +1,470 @@
+The following are examples of pl_cpudist.d.
+
+This script traces the on-CPU time of Perl subroutines (functions) and
+prints a report containing distribution plots per subroutine. Here it
+traces the example program, Code/Perl/func_slow.pl.
+
+   # pl_cpudist.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   Exclusive subroutine on-CPU times (us),
+      func_slow.pl, sub, func_a 
+              value  ------------- Distribution ------------- count    
+             131072 |                                         0        
+             262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             524288 |                                         0        
+   
+      func_slow.pl, sub, func_b 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+      func_slow.pl, sub, func_c 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+   
+   Inclusive subroutine on-CPU times (us),
+      func_slow.pl, sub, func_c 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+      func_slow.pl, sub, func_a 
+              value  ------------- Distribution ------------- count    
+             524288 |                                         0        
+            1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2097152 |                                         0        
+   
+      func_slow.pl, sub, func_b 
+              value  ------------- Distribution ------------- count    
+             524288 |                                         0        
+            1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2097152 |                                         0        
+
+The exclusive subroutine on-CPU times show that func_a() spent between
+262 ms and 524 ms on-CPU, while func_b() and func_c() both spent between
+524 ms and 1048 ms on-CPU.
+
+The inclusive subroutine on-CPU times show that func_c() spent between 0.5 and
+1.0 seconds, and both func_b() and func_a() spent between 1.0 and 2.1 seconds
+of CPU time. This inclusive time includes the time spent in other subroutines
+called, and since func_a() called func_b() which called func_c(), these times
+make sense.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time 
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_cpudist.pl
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive subroutine on-CPU times (us),
+   Config.pm, sub, TIEHASH 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   DynaLoader.pm, sub, dl_load_flags 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   Config.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+               4 |                                         0        
+
+   Config.pm, sub, DESTROY 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   register.pm, sub, mkMask 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+
+   Config.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   Config.pm, sub, FETCH 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           3        
+               4 |@@@@@@@@@@                               1        
+               8 |                                         0        
+
+   strict.pm, sub, unimport 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           3        
+               8 |@@@@@@@@@@                               1        
+              16 |                                         0        
+
+   Std.pm, sub, getopts 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   register.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   strict.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@                         2        
+               4 |@@@@@@@@                                 1        
+               8 |@@@@@@@@                                 1        
+              16 |@@@@@@@@                                 1        
+              32 |                                         0        
+
+   strict.pm, sub, bits 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+               8 |@@@@@@@                                  1        
+              16 |@@@@@@@                                  1        
+              32 |                                         0        
+
+   AutoLoader.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@                                  1        
+               2 |@@@@@@@@@@@@@                            2        
+               4 |@@@@@@@@@@@@@                            2        
+               8 |                                         0        
+              16 |                                         0        
+              32 |@@@@@@@                                  1        
+              64 |                                         0        
+
+   vars.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   Exporter.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     1        
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@                     1        
+             128 |                                         0        
+
+   nicstat, sub, print_neat 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     16       
+              32 |@@                                       1        
+              64 |@@                                       1        
+             128 |                                         0        
+
+   DynaLoader.pm, sub, bootstrap 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   warnings.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   DynaLoader.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@                     1        
+             512 |@@@@@@@@@@@@@@@@@@@@                     1        
+            1024 |                                         0        
+
+   vars.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@                            1        
+               2 |@@@@@@@@@@@@@                            1        
+               4 |                                         0        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+
+   Kstat.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |                                         0        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+
+   nicstat, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+
+   nicstat, sub, fetch_net_data 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+   nicstat, sub, find_nets 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+
+Inclusive subroutine on-CPU times (us),
+   Config.pm, sub, TIEHASH 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   DynaLoader.pm, sub, dl_load_flags 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   Config.pm, sub, DESTROY 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   register.pm, sub, mkMask 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+
+   Config.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   Config.pm, sub, FETCH 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           3        
+               4 |@@@@@@@@@@                               1        
+               8 |                                         0        
+
+   Config.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     1        
+              32 |                                         0        
+
+   strict.pm, sub, unimport 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+              16 |                                         0        
+
+   strict.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@                         2        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@                         2        
+              16 |@@@@@@@@                                 1        
+              32 |                                         0        
+
+   strict.pm, sub, bits 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+               8 |@@@@@@@                                  1        
+              16 |@@@@@@@                                  1        
+              32 |                                         0        
+
+   Std.pm, sub, getopts 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   register.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   vars.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   AutoLoader.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@                                  1        
+               2 |                                         0        
+               4 |@@@@@@@                                  1        
+               8 |@@@@@@@@@@@@@                            2        
+              16 |@@@@@@@                                  1        
+              32 |@@@@@@@                                  1        
+              64 |                                         0        
+
+   Exporter.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     1        
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@                     1        
+             128 |                                         0        
+
+   nicstat, sub, print_neat 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     16       
+              32 |@@                                       1        
+              64 |@@                                       1        
+             128 |                                         0        
+
+   DynaLoader.pm, sub, bootstrap 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   warnings.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   vars.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@                            1        
+               2 |                                         0        
+               4 |                                         0        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@                            1        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+
+   DynaLoader.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@                     1        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@                     1        
+            4096 |                                         0        
+
+   Kstat.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@                            1        
+               8 |                                         0        
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@                            1        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |@@@@@@@@@@@@@                            1        
+            8192 |                                         0        
+
+   nicstat, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@                            1        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@                            1        
+           16384 |                                         0        
+
+   nicstat, sub, fetch_net_data 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+   nicstat, sub, find_nets 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+As an example of interpreting the output: the inclusive on-CPU time for
+the "print_neat" subroutine in "nicstat",
+
+   nicstat, sub, print_neat 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     16       
+              32 |@@                                       1        
+              64 |@@                                       1        
+             128 |                                         0        
+
+shows that "print_neat" was called 18 times, 16 of which spent between 16
+and 31 microseconds on-CPU, once between 32 and 63 microseconds, and once
+between 64 and 127 microseconds.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_cputime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_cputime_example.txt
new file mode 100644
index 0000000..5dc56ee
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_cputime_example.txt
@@ -0,0 +1,151 @@
+The following are examples of pl_cputime.d.
+
+This script traces the on-CPU time of Perl subroutines (functions) and
+prints a report. Here it traces the example program, Code/Perl/func_slow.pl.
+
+   # pl_cputime.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   Count,
+      FILE                 TYPE       NAME                                COUNT
+      func_slow.pl         sub        func_a                                  1
+      func_slow.pl         sub        func_b                                  1
+      func_slow.pl         sub        func_c                                  1
+      -                    total      -                                       3
+   
+   Exclusive subroutine on-CPU times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_slow.pl         sub        func_a                             264193
+      func_slow.pl         sub        func_b                             538498
+      func_slow.pl         sub        func_c                             798961
+      -                    total      -                                 1601653
+   
+   Inclusive subroutine on-CPU times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_slow.pl         sub        func_c                             798961
+      func_slow.pl         sub        func_b                            1337459
+      func_slow.pl         sub        func_a                            1601653
+
+In total, 3 subroutines were called, one each of func_a(), func_b() and
+func_c().
+
+The exclusive subroutine on-CPU times show that func_a() spent around 264.2 ms
+on-CPU, func_b() spent 538.5 ms, and func_c() spent 799.0 ms. This exclusive
+times excludes time spent in other subroutines.
+
+The inclusive subroutine on-CPU times show that func_c() spent around 799.0 ms
+on-CPU, func_b() spent around 1.3 seconds, and func_a() spent around 1.6
+seconds. This inclusive time includes the time spent in other subroutines
+called, and since func_a() called func_b() which called func_c(), these
+times make perfect sense.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time 
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
+If you study the func_slow.pl program alongside the above output, the numbers
+should make sense. 
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_cputime.pl
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   Config.pm            sub        DESTROY                                 1
+   Config.pm            sub        TIEHASH                                 1
+   Config.pm            sub        import                                  1
+   DynaLoader.pm        sub        bootstrap                               1
+   DynaLoader.pm        sub        dl_load_flags                           1
+   Std.pm               sub        getopts                                 1
+   nicstat              sub        fetch_net_data                          1
+   nicstat              sub        find_nets                               1
+   register.pm          sub        import                                  1
+   warnings.pm          sub        BEGIN                                   1
+   Config.pm            sub        BEGIN                                   2
+   DynaLoader.pm        sub        BEGIN                                   2
+   Exporter.pm          sub        import                                  2
+   register.pm          sub        mkMask                                  2
+   vars.pm              sub        import                                  2
+   Kstat.pm             sub        BEGIN                                   3
+   nicstat              sub        BEGIN                                   3
+   vars.pm              sub        BEGIN                                   3
+   Config.pm            sub        FETCH                                   4
+   strict.pm            sub        unimport                                4
+   strict.pm            sub        import                                  5
+   AutoLoader.pm        sub        BEGIN                                   6
+   strict.pm            sub        bits                                    6
+   nicstat              sub        print_neat                             18
+   -                    total      -                                      72
+
+Exclusive subroutine on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   DynaLoader.pm        sub        dl_load_flags                           2
+   Config.pm            sub        TIEHASH                                 2
+   Config.pm            sub        DESTROY                                 6
+   Config.pm            sub        BEGIN                                   7
+   register.pm          sub        mkMask                                  8
+   Config.pm            sub        import                                 11
+   Config.pm            sub        FETCH                                  12
+   strict.pm            sub        unimport                               17
+   strict.pm            sub        import                                 21
+   AutoLoader.pm        sub        BEGIN                                  22
+   Std.pm               sub        getopts                                33
+   strict.pm            sub        bits                                   40
+   register.pm          sub        import                                 51
+   vars.pm              sub        import                                 65
+   Exporter.pm          sub        import                                 88
+   nicstat              sub        print_neat                            426
+   warnings.pm          sub        BEGIN                                 598
+   DynaLoader.pm        sub        bootstrap                             677
+   DynaLoader.pm        sub        BEGIN                                1015
+   Kstat.pm             sub        BEGIN                                2627
+   vars.pm              sub        BEGIN                                2642
+   nicstat              sub        BEGIN                                3033
+   nicstat              sub        fetch_net_data                      42018
+   nicstat              sub        find_nets                           52094
+   -                    total      -                                  105526
+
+Inclusive subroutine on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   DynaLoader.pm        sub        dl_load_flags                           2
+   Config.pm            sub        TIEHASH                                 2
+   Config.pm            sub        DESTROY                                 6
+   register.pm          sub        mkMask                                  8
+   Config.pm            sub        import                                 11
+   Config.pm            sub        FETCH                                  12
+   Config.pm            sub        BEGIN                                  19
+   strict.pm            sub        import                                 28
+   strict.pm            sub        unimport                               35
+   strict.pm            sub        bits                                   40
+   AutoLoader.pm        sub        BEGIN                                  51
+   register.pm          sub        import                                 59
+   Std.pm               sub        getopts                                63
+   vars.pm              sub        import                                 65
+   Exporter.pm          sub        import                                 88
+   nicstat              sub        print_neat                            426
+   warnings.pm          sub        BEGIN                                 598
+   DynaLoader.pm        sub        bootstrap                             680
+   vars.pm              sub        BEGIN                                3313
+   DynaLoader.pm        sub        BEGIN                                4401
+   Kstat.pm             sub        BEGIN                                7124
+   nicstat              sub        BEGIN                               10916
+   nicstat              sub        fetch_net_data                      42018
+   nicstat              sub        find_nets                           52094
+
+The output showed that the most CPU time was spent in the subroutine
+find_nets(), with a total exclusive on-CPU time of 52.1 ms. This also matches
+the total inclusive time, suggesting that find_nets() didn't call other
+subroutines.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_flow_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_flow_example.txt
new file mode 100644
index 0000000..dcce6e0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_flow_example.txt
@@ -0,0 +1,179 @@
+The following are examples of pl_flow.d.
+
+This is a simple script to trace the flow of Perl subroutines (functions).
+Here it traces the example program, Code/Perl/func_abc.pl.
+
+   # pl_flow.d 
+     C TIME(us)          FILE             -- SUB
+     0 2979519183757     func_abc.pl      -> func_a
+     0 2979520190159     func_abc.pl        -> func_b
+     0 2979521200166     func_abc.pl          -> func_c
+     0 2979522210184     func_abc.pl          <- func_c
+     0 2979522210199     func_abc.pl        <- func_b
+     0 2979522210207     func_abc.pl      <- func_a
+   ^C
+
+As each subroutine is entered, the third column is indented by 2 spaces. This
+shows which subroutine is calling who - the output abovebegins by showing that
+func_a() began, and then called func_b().
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and 
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_flow.d
+  C TIME(us)         FILE             -- SUB
+  0 4181899422549    nicstat          -> BEGIN
+  0 4181899423048    strict.pm          -> bits
+  0 4181899423081    strict.pm          <- bits
+  0 4181899423105    strict.pm          -> import
+  0 4181899423126    strict.pm          <- import
+  0 4181899423133    nicstat          <- BEGIN
+  0 4181899423157    nicstat          -> BEGIN
+  0 4181899445634    Exporter.pm        -> import
+  0 4181899445730    Exporter.pm        <- import
+  0 4181899445743    nicstat          <- BEGIN
+  0 4181899445770    nicstat          -> BEGIN
+  0 4181899446066    Kstat.pm           -> BEGIN
+  0 4181899446076    strict.pm            -> import
+  0 4181899446087    strict.pm            <- import
+  0 4181899446094    Kstat.pm           <- BEGIN
+  0 4181899446116    Kstat.pm           -> BEGIN
+  0 4181899453669    DynaLoader.pm        -> BEGIN
+  0 4181899453810    vars.pm                -> BEGIN
+  0 4181899453821    vars.pm                <- BEGIN
+  0 4181899453921    vars.pm                -> BEGIN
+  0 4181899454494    warnings.pm              -> BEGIN
+  0 4181899455149    warnings.pm              <- BEGIN
+  0 4181899457183    register.pm              -> import
+  0 4181899457202    register.pm                -> mkMask
+  0 4181899457214    register.pm                <- mkMask
+  0 4181899457264    register.pm                -> mkMask
+  0 4181899457274    register.pm                <- mkMask
+  0 4181899457283    register.pm              <- import
+  0 4181899457290    vars.pm                <- BEGIN
+  0 4181899457316    vars.pm                -> BEGIN
+  0 4181899457324    strict.pm                -> import
+  0 4181899457332    strict.pm                  -> bits
+  0 4181899457345    strict.pm                  <- bits
+  0 4181899457353    strict.pm                <- import
+  0 4181899457359    vars.pm                <- BEGIN
+  0 4181899457652    vars.pm                -> import
+  0 4181899457703    vars.pm                <- import
+  0 4181899457710    DynaLoader.pm        <- BEGIN
+  0 4181899457758    DynaLoader.pm        -> BEGIN
+  0 4181899457883    Config.pm              -> BEGIN
+  0 4181899457890    strict.pm                -> import
+  0 4181899457899    strict.pm                <- import
+  0 4181899457906    Config.pm              <- BEGIN
+  0 4181899458038    Config.pm              -> BEGIN
+  0 4181899458045    strict.pm                -> unimport
+  0 4181899458053    strict.pm                  -> bits
+  0 4181899458063    strict.pm                  <- bits
+  0 4181899458077    strict.pm                <- unimport
+  0 4181899458084    Config.pm              <- BEGIN
+  0 4181899458426    Config.pm              -> TIEHASH
+  0 4181899458435    Config.pm              <- TIEHASH
+  0 4181899458476    Config.pm              -> import
+  0 4181899458493    Config.pm              <- import
+  0 4181899458500    DynaLoader.pm        <- BEGIN
+  0 4181899459978    AutoLoader.pm        -> BEGIN
+  0 4181899459990    strict.pm              -> import
+  0 4181899460033    strict.pm              <- import
+  0 4181899460064    AutoLoader.pm        <- BEGIN
+  0 4181899460088    AutoLoader.pm        -> BEGIN
+  0 4181899460096    AutoLoader.pm        <- BEGIN
+  0 4181899460187    AutoLoader.pm        -> BEGIN
+  0 4181899460199    AutoLoader.pm        <- BEGIN
+  0 4181899460582    AutoLoader.pm        -> BEGIN
+  0 4181899460590    strict.pm              -> unimport
+  0 4181899460598    strict.pm                -> bits
+  0 4181899460611    strict.pm                <- bits
+  0 4181899460619    strict.pm              <- unimport
+  0 4181899460625    AutoLoader.pm        <- BEGIN
+  0 4181899460830    AutoLoader.pm        -> BEGIN
+  0 4181899460838    strict.pm              -> unimport
+  0 4181899460845    strict.pm                -> bits
+  0 4181899460855    strict.pm                <- bits
+  0 4181899460862    strict.pm              <- unimport
+  0 4181899460869    AutoLoader.pm        <- BEGIN
+  0 4181899461092    AutoLoader.pm        -> BEGIN
+  0 4181899461100    strict.pm              -> unimport
+  0 4181899461107    strict.pm                -> bits
+  0 4181899461116    strict.pm                <- bits
+  0 4181899461124    strict.pm              <- unimport
+  0 4181899461130    AutoLoader.pm        <- BEGIN
+  0 4181899461238    Config.pm            -> FETCH
+  0 4181899461250    Config.pm            <- FETCH
+  0 4181899461264    Config.pm            -> FETCH
+  0 4181899461272    Config.pm            <- FETCH
+  0 4181899461282    Config.pm            -> FETCH
+  0 4181899461290    Config.pm            <- FETCH
+  0 4181899461299    Config.pm            -> FETCH
+  0 4181899461307    Config.pm            <- FETCH
+  0 4181899461403    Kstat.pm           <- BEGIN
+  0 4181899461432    Kstat.pm           -> BEGIN
+  0 4181899461440    vars.pm              -> import
+  0 4181899461476    vars.pm              <- import
+  0 4181899461483    Kstat.pm           <- BEGIN
+  0 4181899461539    DynaLoader.pm      -> bootstrap
+  0 4181899461769    DynaLoader.pm        -> dl_load_flags
+  0 4181899461777    DynaLoader.pm        <- dl_load_flags
+  0 4181899462208    DynaLoader.pm      <- bootstrap
+  0 4181899462231    nicstat          <- BEGIN
+  0 4181899468306    Std.pm           -> getopts
+  0 4181899468351    Exporter.pm        -> import
+  0 4181899468390    Exporter.pm        <- import
+  0 4181899468405    Std.pm           <- getopts
+  0 4181899468426    nicstat          -> find_nets
+  0 4181899521011    nicstat          <- find_nets
+  0 4181899521415    nicstat          -> fetch_net_data
+  0 4181899564973    nicstat          <- fetch_net_data
+  0 4181899565526    nicstat          -> print_neat
+  0 4181899565672    nicstat          <- print_neat
+  0 4181899565680    nicstat          -> print_neat
+  0 4181899565902    nicstat          <- print_neat
+  0 4181899565909    nicstat          -> print_neat
+  0 4181899566033    nicstat          <- print_neat
+  0 4181899566039    nicstat          -> print_neat
+  0 4181899566165    nicstat          <- print_neat
+  0 4181899566172    nicstat          -> print_neat
+  0 4181899566331    nicstat          <- print_neat
+  0 4181899566338    nicstat          -> print_neat
+  0 4181899566494    nicstat          <- print_neat
+  0 4181899566791    nicstat          -> print_neat
+  0 4181899566953    nicstat          <- print_neat
+  0 4181899566961    nicstat          -> print_neat
+  0 4181899567085    nicstat          <- print_neat
+  0 4181899567091    nicstat          -> print_neat
+  0 4181899567247    nicstat          <- print_neat
+  0 4181899567254    nicstat          -> print_neat
+  0 4181899567377    nicstat          <- print_neat
+  0 4181899567383    nicstat          -> print_neat
+  0 4181899567538    nicstat          <- print_neat
+  0 4181899567544    nicstat          -> print_neat
+  0 4181899567666    nicstat          <- print_neat
+  0 4181899567977    nicstat          -> print_neat
+  0 4181899568232    nicstat          <- print_neat
+  0 4181899568240    nicstat          -> print_neat
+  0 4181899568397    nicstat          <- print_neat
+  0 4181899568404    nicstat          -> print_neat
+  0 4181899568528    nicstat          <- print_neat
+  0 4181899568535    nicstat          -> print_neat
+  0 4181899568656    nicstat          <- print_neat
+  0 4181899568663    nicstat          -> print_neat
+  0 4181899568819    nicstat          <- print_neat
+  0 4181899568826    nicstat          -> print_neat
+  0 4181899568947    nicstat          <- print_neat
+  0 4181899572708    Config.pm        -> DESTROY
+  0 4181899572735    Config.pm        <- DESTROY
+
+After initialising Perl libraries and modules, the "nicstat" program ran,
+the output matching what was expected from the source.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_flowinfo_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_flowinfo_example.txt
new file mode 100644
index 0000000..e4b406f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_flowinfo_example.txt
@@ -0,0 +1,188 @@
+The following are examples of pl_flowinfo.d.
+
+This is a simple script to trace the flow of Perl subroutines (functions).
+Here it traces the example program, Code/Perl/func_abc.pl.
+
+   # pl_flowinfo.d
+   C    PID  DELTA(us)              FILE:LINE TYPE     -- SUB
+   0 305127          2       func_abc.pl:15   sub      -> func_a
+   0 305127    1008776       func_abc.pl:9    sub        -> func_b
+   0 305127    1010019       func_abc.pl:4    sub          -> func_c
+   0 305127    1009979       func_abc.pl:4    sub          <- func_c
+   0 305127         26       func_abc.pl:9    sub        <- func_b
+   0 305127          9       func_abc.pl:15   sub      <- func_a
+   ^C
+
+As each subroutine is entered, the third column is indented by 2 spaces. This
+shows which subroutine is calling who - the output abovebegins by showing that
+func_a() began, and then called func_b().
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the second line of data output
+(skipping the header) reads as "the time from func_a() beginning to
+func_b() beginning was 1008776 us, or 1.01 seconds".
+
+The LINE column shows the line in the file what was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_flowinfo.d
+C    PID  DELTA(us)              FILE:LINE TYPE     -- SUB
+0 305132          2           nicstat:83   sub      -> BEGIN
+0 305132        444         strict.pm:12   sub        -> bits
+0 305132         34         strict.pm:12   sub        <- bits
+0 305132         32         strict.pm:28   sub        -> import
+0 305132         22         strict.pm:28   sub        <- import
+0 305132          8           nicstat:83   sub      <- BEGIN
+0 305132         26           nicstat:84   sub      -> BEGIN
+0 305132       2339       Exporter.pm:30   sub        -> import
+0 305132         83       Exporter.pm:30   sub        <- import
+0 305132         14           nicstat:84   sub      <- BEGIN
+0 305132         27           nicstat:85   sub      -> BEGIN
+0 305132        205          Kstat.pm:34   sub        -> BEGIN
+0 305132         11         strict.pm:28   sub          -> import
+0 305132         11         strict.pm:28   sub          <- import
+0 305132          8          Kstat.pm:34   sub        <- BEGIN
+0 305132         23          Kstat.pm:35   sub        -> BEGIN
+0 305132        187     DynaLoader.pm:18   sub          -> BEGIN
+0 305132         73           vars.pm:3    sub            -> BEGIN
+0 305132          9           vars.pm:3    sub            <- BEGIN
+0 305132         34           vars.pm:7    sub            -> BEGIN
+0 305132        470       warnings.pm:134  sub              -> BEGIN
+0 305132        598       warnings.pm:134  sub              <- BEGIN
+0 305132       2151       register.pm:37   sub              -> import
+0 305132         23       register.pm:28   sub                -> mkMask
+0 305132         13       register.pm:28   sub                <- mkMask
+0 305132         53       register.pm:28   sub                -> mkMask
+0 305132         11       register.pm:28   sub                <- mkMask
+0 305132         11       register.pm:37   sub              <- import
+0 305132          8           vars.pm:7    sub            <- BEGIN
+0 305132         28           vars.pm:8    sub            -> BEGIN
+0 305132          9         strict.pm:28   sub              -> import
+0 305132          8         strict.pm:12   sub                -> bits
+0 305132         13         strict.pm:12   sub                <- bits
+0 305132          9         strict.pm:28   sub              <- import
+0 305132          8           vars.pm:8    sub            <- BEGIN
+0 305132        294           vars.pm:11   sub            -> import
+0 305132         52           vars.pm:11   sub            <- import
+0 305132          8     DynaLoader.pm:18   sub          <- BEGIN
+0 305132         48     DynaLoader.pm:25   sub          -> BEGIN
+0 305132         97         Config.pm:5    sub            -> BEGIN
+0 305132          9         strict.pm:28   sub              -> import
+0 305132          9         strict.pm:28   sub              <- import
+0 305132          8         Config.pm:5    sub            <- BEGIN
+0 305132        134         Config.pm:31   sub            -> BEGIN
+0 305132          9         strict.pm:33   sub              -> unimport
+0 305132          8         strict.pm:12   sub                -> bits
+0 305132         11         strict.pm:12   sub                <- bits
+0 305132         16         strict.pm:33   sub              <- unimport
+0 305132          8         Config.pm:31   sub            <- BEGIN
+0 305132        343         Config.pm:60   sub            -> TIEHASH
+0 305132         10         Config.pm:60   sub            <- TIEHASH
+0 305132         44         Config.pm:25   sub            -> import
+0 305132         18         Config.pm:25   sub            <- import
+0 305132          9     DynaLoader.pm:25   sub          <- BEGIN
+0 305132       1301     AutoLoader.pm:3    sub          -> BEGIN
+0 305132         11         strict.pm:28   sub            -> import
+0 305132         10         strict.pm:28   sub            <- import
+0 305132          9     AutoLoader.pm:3    sub          <- BEGIN
+0 305132         22     AutoLoader.pm:4    sub          -> BEGIN
+0 305132          9     AutoLoader.pm:4    sub          <- BEGIN
+0 305132         89     AutoLoader.pm:14   sub          -> BEGIN
+0 305132         13     AutoLoader.pm:14   sub          <- BEGIN
+0 305132        375     AutoLoader.pm:95   sub          -> BEGIN
+0 305132          9         strict.pm:33   sub            -> unimport
+0 305132          8         strict.pm:12   sub              -> bits
+0 305132         11         strict.pm:12   sub              <- bits
+0 305132          9         strict.pm:33   sub            <- unimport
+0 305132          8     AutoLoader.pm:95   sub          <- BEGIN
+0 305132        203     AutoLoader.pm:128  sub          -> BEGIN
+0 305132          9         strict.pm:33   sub            -> unimport
+0 305132          8         strict.pm:12   sub              -> bits
+0 305132         11         strict.pm:12   sub              <- bits
+0 305132          9         strict.pm:33   sub            <- unimport
+0 305132          8     AutoLoader.pm:128  sub          <- BEGIN
+0 305132        220     AutoLoader.pm:173  sub          -> BEGIN
+0 305132          9         strict.pm:33   sub            -> unimport
+0 305132          8         strict.pm:12   sub              -> bits
+0 305132         10         strict.pm:12   sub              <- bits
+0 305132          9         strict.pm:33   sub            <- unimport
+0 305132          8     AutoLoader.pm:173  sub          <- BEGIN
+0 305132        103         Config.pm:52   sub          -> FETCH
+0 305132         12         Config.pm:52   sub          <- FETCH
+0 305132         16         Config.pm:52   sub          -> FETCH
+0 305132          9         Config.pm:52   sub          <- FETCH
+0 305132         11         Config.pm:52   sub          -> FETCH
+0 305132          9         Config.pm:52   sub          <- FETCH
+0 305132         11         Config.pm:52   sub          -> FETCH
+0 305132          9         Config.pm:52   sub          <- FETCH
+0 305132         95          Kstat.pm:35   sub        <- BEGIN
+0 305132         29          Kstat.pm:36   sub        -> BEGIN
+0 305132         10           vars.pm:11   sub          -> import
+0 305132         33           vars.pm:11   sub          <- import
+0 305132          8          Kstat.pm:36   sub        <- BEGIN
+0 305132         56     DynaLoader.pm:133  sub        -> bootstrap
+0 305132        314     DynaLoader.pm:48   sub          -> dl_load_flags
+0 305132         11     DynaLoader.pm:48   sub          <- dl_load_flags
+0 305132       1113     DynaLoader.pm:133  sub        <- bootstrap
+0 305132         41           nicstat:85   sub      <- BEGIN
+0 305132       6102            Std.pm:219  sub      -> getopts
+0 305132         52       Exporter.pm:30   sub        -> import
+0 305132         40       Exporter.pm:30   sub        <- import
+0 305132         22            Std.pm:219  sub      <- getopts
+0 305132         24           nicstat:264  sub      -> find_nets
+0 305132      79662           nicstat:264  sub      <- find_nets
+0 305132        420           nicstat:304  sub      -> fetch_net_data
+0 305132      43871           nicstat:304  sub      <- fetch_net_data
+0 305132        479           nicstat:372  sub      -> print_neat
+0 305132        150           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        220           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        126           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        125           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        157           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        171           nicstat:372  sub      <- print_neat
+0 305132        343           nicstat:372  sub      -> print_neat
+0 305132        128           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        157           nicstat:372  sub      <- print_neat
+0 305132          9           nicstat:372  sub      -> print_neat
+0 305132        125           nicstat:372  sub      <- print_neat
+0 305132          9           nicstat:372  sub      -> print_neat
+0 305132        123           nicstat:372  sub      <- print_neat
+0 305132          9           nicstat:372  sub      -> print_neat
+0 305132        160           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        124           nicstat:372  sub      <- print_neat
+0 305132        342           nicstat:372  sub      -> print_neat
+0 305132        126           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        123           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        156           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        153           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        123           nicstat:372  sub      <- print_neat
+0 305132          9           nicstat:372  sub      -> print_neat
+0 305132        123           nicstat:372  sub      <- print_neat
+0 305132       3736         Config.pm:63   sub      -> DESTROY
+0 305132         32         Config.pm:63   sub      <- DESTROY
+
+After initialising Perl libraries and modules, the "nicstat" program ran,
+the output matching what was expected from the source.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_flowtime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_flowtime_example.txt
new file mode 100644
index 0000000..24c5383
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_flowtime_example.txt
@@ -0,0 +1,199 @@
+The following are examples of pl_flowtime.d.
+
+This is a simple script to trace the flow of Perl subroutines (functions).
+Here it traces the example program, Code/Perl/func_abc.pl.
+
+   # pl_flowtime.d 
+     C TIME(us)         FILE             DELTA(us)  -- SUB
+     0 4201460363351    func_abc.pl              2 -> func_a
+     0 4201461370041    func_abc.pl        1006689   -> func_b
+     0 4201462380038    func_abc.pl        1009997     -> func_c
+     0 4201463390094    func_abc.pl        1010055     <- func_c
+     0 4201463390117    func_abc.pl             23   <- func_b
+     0 4201463390126    func_abc.pl              8 <- func_a
+   ^C
+
+As each subroutine is entered, the third column is indented by 2 spaces. This
+shows which subroutine is calling who - the output above begins by showing that
+func_a() began, and then called func_b().
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the second line of data output
+(skipping the header) reads as "the time from func_a() beginning to
+func_b() beginning was 1006689 us, or 1.01 seconds".
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and 
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_flowtime.d
+  C TIME(us)         FILE             DELTA(us)  -- SUB
+  0 4201691465151    nicstat                  2 -> BEGIN
+  0 4201691465593    strict.pm              441   -> bits
+  0 4201691465625    strict.pm               32   <- bits
+  0 4201691465655    strict.pm               29   -> import
+  0 4201691465676    strict.pm               21   <- import
+  0 4201691465684    nicstat                  7 <- BEGIN
+  0 4201691465710    nicstat                 25 -> BEGIN
+  0 4201691468038    Exporter.pm           2328   -> import
+  0 4201691468121    Exporter.pm             82   <- import
+  0 4201691468133    nicstat                 12 <- BEGIN
+  0 4201691468160    nicstat                 26 -> BEGIN
+  0 4201691468367    Kstat.pm               207   -> BEGIN
+  0 4201691468378    strict.pm               10     -> import
+  0 4201691468388    strict.pm               10     <- import
+  0 4201691468396    Kstat.pm                 8   <- BEGIN
+  0 4201691468419    Kstat.pm                23   -> BEGIN
+  0 4201691468612    DynaLoader.pm          192     -> BEGIN
+  0 4201691468685    vars.pm                 73       -> BEGIN
+  0 4201691468694    vars.pm                  8       <- BEGIN
+  0 4201691468727    vars.pm                 33       -> BEGIN
+  0 4201691469199    warnings.pm            471         -> BEGIN
+  0 4201691469863    warnings.pm            663         <- BEGIN
+  0 4201691471965    register.pm           2102         -> import
+  0 4201691471986    register.pm             21           -> mkMask
+  0 4201691472000    register.pm             13           <- mkMask
+  0 4201691472052    register.pm             52           -> mkMask
+  0 4201691472063    register.pm             10           <- mkMask
+  0 4201691472074    register.pm             10         <- import
+  0 4201691472081    vars.pm                  7       <- BEGIN
+  0 4201691472109    vars.pm                 28       -> BEGIN
+  0 4201691472118    strict.pm                8         -> import
+  0 4201691472126    strict.pm                8           -> bits
+  0 4201691472139    strict.pm               12           <- bits
+  0 4201691472148    strict.pm                9         <- import
+  0 4201691472155    vars.pm                  7       <- BEGIN
+  0 4201691472450    vars.pm                294       -> import
+  0 4201691472501    vars.pm                 51       <- import
+  0 4201691472509    DynaLoader.pm            7     <- BEGIN
+  0 4201691472557    DynaLoader.pm           48     -> BEGIN
+  0 4201691472650    Config.pm               92       -> BEGIN
+  0 4201691472658    strict.pm                8         -> import
+  0 4201691472667    strict.pm                8         <- import
+  0 4201691472675    Config.pm                7       <- BEGIN
+  0 4201691472809    Config.pm              133       -> BEGIN
+  0 4201691472817    strict.pm                8         -> unimport
+  0 4201691472825    strict.pm                8           -> bits
+  0 4201691472852    strict.pm               26           <- bits
+  0 4201691472868    strict.pm               16         <- unimport
+  0 4201691472876    Config.pm                7       <- BEGIN
+  0 4201691473222    Config.pm              345       -> TIEHASH
+  0 4201691473231    Config.pm                9       <- TIEHASH
+  0 4201691473275    Config.pm               43       -> import
+  0 4201691473292    Config.pm               17       <- import
+  0 4201691473301    DynaLoader.pm            8     <- BEGIN
+  0 4201691474650    AutoLoader.pm         1349     -> BEGIN
+  0 4201691474661    strict.pm               10       -> import
+  0 4201691474670    strict.pm                9       <- import
+  0 4201691474679    AutoLoader.pm            8     <- BEGIN
+  0 4201691474701    AutoLoader.pm           21     -> BEGIN
+  0 4201691474709    AutoLoader.pm            8     <- BEGIN
+  0 4201691474797    AutoLoader.pm           88     -> BEGIN
+  0 4201691474810    AutoLoader.pm           12     <- BEGIN
+  0 4201691475186    AutoLoader.pm          376     -> BEGIN
+  0 4201691475195    strict.pm                9       -> unimport
+  0 4201691475203    strict.pm                7         -> bits
+  0 4201691475214    strict.pm               10         <- bits
+  0 4201691475223    strict.pm                8       <- unimport
+  0 4201691475230    AutoLoader.pm            7     <- BEGIN
+  0 4201691475435    AutoLoader.pm          204     -> BEGIN
+  0 4201691475444    strict.pm                8       -> unimport
+  0 4201691475451    strict.pm                7         -> bits
+  0 4201691475462    strict.pm               10         <- bits
+  0 4201691475470    strict.pm                8       <- unimport
+  0 4201691475478    AutoLoader.pm            7     <- BEGIN
+  0 4201691475697    AutoLoader.pm          219     -> BEGIN
+  0 4201691475706    strict.pm                8       -> unimport
+  0 4201691475714    strict.pm                7         -> bits
+  0 4201691475724    strict.pm               10         <- bits
+  0 4201691475732    strict.pm                8       <- unimport
+  0 4201691475739    AutoLoader.pm            7     <- BEGIN
+  0 4201691475842    Config.pm              102     -> FETCH
+  0 4201691475854    Config.pm               11     <- FETCH
+  0 4201691475870    Config.pm               15     -> FETCH
+  0 4201691475879    Config.pm                9     <- FETCH
+  0 4201691475890    Config.pm               10     -> FETCH
+  0 4201691475898    Config.pm                8     <- FETCH
+  0 4201691475909    Config.pm               10     -> FETCH
+  0 4201691475917    Config.pm                8     <- FETCH
+  0 4201691476012    Kstat.pm                94   <- BEGIN
+  0 4201691476041    Kstat.pm                29   -> BEGIN
+  0 4201691476051    vars.pm                  9     -> import
+  0 4201691476084    vars.pm                 32     <- import
+  0 4201691476091    Kstat.pm                 7   <- BEGIN
+  0 4201691476147    DynaLoader.pm           56   -> bootstrap
+  0 4201691476373    DynaLoader.pm          225     -> dl_load_flags
+  0 4201691476383    DynaLoader.pm            9     <- dl_load_flags
+  0 4201691476813    DynaLoader.pm          430   <- bootstrap
+  0 4201691476837    nicstat                 23 <- BEGIN
+  0 4201691483648    Std.pm                6811 -> getopts
+  0 4201691483697    Exporter.pm             49   -> import
+  0 4201691483737    Exporter.pm             39   <- import
+  0 4201691483756    Std.pm                  19 <- getopts
+  0 4201691483780    nicstat                 24 -> find_nets
+  0 4201691539198    nicstat              55418 <- find_nets
+  0 4201691539610    nicstat                411 -> fetch_net_data
+  0 4201691583290    nicstat              43679 <- fetch_net_data
+  0 4201691583781    nicstat                491 -> print_neat
+  0 4201691583930    nicstat                149 <- print_neat
+  0 4201691583996    nicstat                 65 -> print_neat
+  0 4201691584165    nicstat                169 <- print_neat
+  0 4201691584174    nicstat                  9 -> print_neat
+  0 4201691584298    nicstat                124 <- print_neat
+  0 4201691584308    nicstat                  9 -> print_neat
+  0 4201691584432    nicstat                124 <- print_neat
+  0 4201691584473    nicstat                 41 -> print_neat
+  0 4201691584597    nicstat                123 <- print_neat
+  0 4201691584607    nicstat                  9 -> print_neat
+  0 4201691584730    nicstat                123 <- print_neat
+  0 4201691585091    nicstat                361 -> print_neat
+  0 4201691585217    nicstat                125 <- print_neat
+  0 4201691585226    nicstat                  9 -> print_neat
+  0 4201691585379    nicstat                152 <- print_neat
+  0 4201691585389    nicstat                  9 -> print_neat
+  0 4201691585512    nicstat                123 <- print_neat
+  0 4201691585521    nicstat                  9 -> print_neat
+  0 4201691585644    nicstat                123 <- print_neat
+  0 4201691585653    nicstat                  9 -> print_neat
+  0 4201691585825    nicstat                171 <- print_neat
+  0 4201691585834    nicstat                  9 -> print_neat
+  0 4201691585988    nicstat                154 <- print_neat
+  0 4201691586274    nicstat                285 -> print_neat
+  0 4201691586434    nicstat                160 <- print_neat
+  0 4201691586443    nicstat                  9 -> print_neat
+  0 4201691586567    nicstat                123 <- print_neat
+  0 4201691586576    nicstat                  9 -> print_neat
+  0 4201691586731    nicstat                154 <- print_neat
+  0 4201691586740    nicstat                  8 -> print_neat
+  0 4201691586892    nicstat                151 <- print_neat
+  0 4201691586901    nicstat                  9 -> print_neat
+  0 4201691587025    nicstat                123 <- print_neat
+  0 4201691587034    nicstat                  9 -> print_neat
+  0 4201691587157    nicstat                123 <- print_neat
+  0 4201691590909    Config.pm             3751 -> DESTROY
+  0 4201691590938    Config.pm               29 <- DESTROY
+
+After initialising Perl libraries and modules, the "nicstat" program ran,
+the output matching what was expected from the source.
+
+The DELTA column shows that most time is spent in the find_nets() and
+fetch_nets_data() subroutines, with 55.4 ms and 44.7 ms of elapsed
+function time respectively. Those particular times were easy to interpret,
+since there were no child subroutines called, and the delta spanned
+the subroutine entry to its return.
+
+Some times get trickier to comprehend. The 2nd last line with a DELTA time
+of 3751 us, means "the time from the print_neat() subroutine completing
+to the DESTROY() subroutine starting, took 3751 us.". What is happening
+during this time? It is hard to say based on this output - since it isn't
+time within a function, rather it is time that Perl spent processing the
+main program. Since we have the last function called, we may guess where
+the program was at; or we could enhance this script to trace Perl engine
+internals as well (and/or syscalls).
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_malloc_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_malloc_example.txt
new file mode 100644
index 0000000..a22a008
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_malloc_example.txt
@@ -0,0 +1,79 @@
+The following are examples of pl_malloc.d.
+
+This is an expiremental script that attepmts to identify who is calling
+malloc() from Perl, and to print byte distribution plots.
+
+Here it traces the example program, Code/Perl/func_malloc.pl.
+
+# pl_malloc.d -c ./func_malloc.pl
+Function A
+Function B
+Function C
+Tracing... Hit Ctrl-C to end.
+
+Perl malloc byte distributions by engine caller,
+
+   perl`perl_alloc, total bytes = 1 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   libc.so.1`_findbuf, total bytes = 520 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   perl`Perl_safesysmalloc, total bytes = 72106 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@                                       26       
+               4 |@@@@@                                    72       
+               8 |@@@@@@                                   101      
+              16 |@@@@@@@@@@@@@@                           216      
+              32 |@@@@@@@@@@@                              178      
+              64 |@                                        21       
+             128 |                                         6        
+             256 |                                         2        
+             512 |                                         4        
+            1024 |                                         1        
+            2048 |@                                        11       
+            4096 |                                         1        
+            8192 |                                         0        
+
+
+Perl malloc byte distributions by Perl file and subroutine,
+
+   func_malloc.pl, func_a, bytes total = 42504 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+   func_malloc.pl, func_b, bytes total = 100008 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |                                         0        
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@                     1        
+          131072 |                                         0        
+
+The func_malloc.pl program allocated around 100 Kbytes by creating a 
+variable ($b) and populating it with 100,000 "b" characters. This has been
+identified in the last distribution plot printed, with one malloc event
+of between 64 Kbytes and 128 Kbytes in size. There was also a malloc event
+of between 4 and 7 bytes in size.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_subcalls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_subcalls_example.txt
new file mode 100644
index 0000000..1ea0369
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_subcalls_example.txt
@@ -0,0 +1,53 @@
+The following are examples of pl_subcalls.d.
+
+This is a simple script to count executed Perl subroutines. Here it traces
+an example program, Code/Perl/func_abc.pl.
+
+   # pl_subcalls.d 
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    FILE                             SUB                                 CALLS
+    func_abc.pl                      func_a                                  1
+    func_abc.pl                      func_b                                  1
+    func_abc.pl                      func_c                                  1
+
+While tracing, func_a() from the program "func_abc.pl" was executed once,
+along with func_b() and func_c().
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+   # pl_subcalls.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    FILE                             SUB                                 CALLS
+    Config.pm                        DESTROY                                 1
+    Config.pm                        TIEHASH                                 1
+    Config.pm                        import                                  1
+    DynaLoader.pm                    bootstrap                               1
+    DynaLoader.pm                    dl_load_flags                           1
+    Std.pm                           getopts                                 1
+    nicstat                          fetch_net_data                          1
+    nicstat                          find_nets                               1
+    register.pm                      import                                  1
+    warnings.pm                      BEGIN                                   1
+    Config.pm                        BEGIN                                   2
+    DynaLoader.pm                    BEGIN                                   2
+    Exporter.pm                      import                                  2
+    register.pm                      mkMask                                  2
+    vars.pm                          import                                  2
+    Kstat.pm                         BEGIN                                   3
+    nicstat                          BEGIN                                   3
+    vars.pm                          BEGIN                                   3
+    Config.pm                        FETCH                                   4
+    strict.pm                        unimport                                4
+    strict.pm                        import                                  5
+    AutoLoader.pm                    BEGIN                                   6
+    strict.pm                        bits                                    6
+    nicstat                          print_neat                             18
+
+The number of subroutines called by nicstat can be seen above, which includes
+subroutines from libraries and modules that the program used.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_syscalls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_syscalls_example.txt
new file mode 100644
index 0000000..8cd5094
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_syscalls_example.txt
@@ -0,0 +1,50 @@
+The following are examples of pl_syscalls.d.
+
+This is a simple script to count executed Perl subroutines and system calls.
+Here it traces an example program, Code/Perl/func_abc.pl.
+
+   # pl_syscalls.d -c ./func_abc.pl 
+   Function A
+   Tracing... Hit Ctrl-C to end.
+   Function B
+   Function C
+   
+   Calls for PID 305173,
+   
+    FILE                             TYPE       NAME                      COUNT
+    func_abc.pl                      sub        func_a                        1
+    func_abc.pl                      sub        func_b                        1
+    func_abc.pl                      sub        func_c                        1
+    func_abc.pl                      syscall    fcntl                         1
+    func_abc.pl                      syscall    getrlimit                     1
+    func_abc.pl                      syscall    mmap                          1
+    func_abc.pl                      syscall    munmap                        1
+    func_abc.pl                      syscall    rexit                         1
+    func_abc.pl                      syscall    schedctl                      1
+    func_abc.pl                      syscall    sigpending                    1
+    func_abc.pl                      syscall    sysi86                        1
+    func_abc.pl                      syscall    getgid                        2
+    func_abc.pl                      syscall    getpid                        2
+    func_abc.pl                      syscall    getuid                        2
+    func_abc.pl                      syscall    sigaction                     2
+    func_abc.pl                      syscall    sysconfig                     2
+    func_abc.pl                      syscall    fstat64                       3
+    func_abc.pl                      syscall    nanosleep                     3
+    func_abc.pl                      syscall    read                          3
+    func_abc.pl                      syscall    setcontext                    3
+    func_abc.pl                      syscall    write                         3
+    func_abc.pl                      syscall    close                         4
+    func_abc.pl                      syscall    ioctl                         4
+    func_abc.pl                      syscall    open64                        4
+    func_abc.pl                      syscall    llseek                        5
+    func_abc.pl                      syscall    gtime                         7
+    func_abc.pl                      syscall    brk                          20
+
+While tracing, three subroutines were called - func_a(), func_b() and func_c().
+There were numerous system calls made, including 20 brk()'s, 7 gtime()'s
+and 5 llseek()'s.
+
+This script can provide an insight to how an application is interacting
+with the system, by providing both application subroutine calls and
+system calls in the same output.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_syscolors_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_syscolors_example.txt
new file mode 100644
index 0000000..3a5f249
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_syscolors_example.txt
@@ -0,0 +1,183 @@
+The following are examples of pl_syscolors.d.
+
+This is a simple script to trace the flow of Perl subroutines and system 
+calls made, and renders the output in color ("colour") using terminal
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Perl/func_abc.pl.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful). 
+
+# pl_syscolors.d
+C    PID  DELTA(us)              FILE:LINE TYPE     -- NAME
+[2;32m0 305181          2                 ":-    syscall  -> munmap[0m
+[2;32m0 305181         33                 ":-    syscall  <- munmap[0m
+[2;32m0 305181         59                 ":-    syscall  -> mmap[0m
+[2;32m0 305181         18                 ":-    syscall  <- mmap[0m
+[2;32m0 305181         35                 ":-    syscall  -> setcontext[0m
+[2;32m0 305181          8                 ":-    syscall  <- setcontext[0m
+[2;32m0 305181          8                 ":-    syscall  -> getrlimit[0m
+[2;32m0 305181          9                 ":-    syscall  <- getrlimit[0m
+[2;32m0 305181          8                 ":-    syscall  -> getpid[0m
+[2;32m0 305181          7                 ":-    syscall  <- getpid[0m
+[2;32m0 305181         64                 ":-    syscall  -> setcontext[0m
+[2;32m0 305181          6                 ":-    syscall  <- setcontext[0m
+[2;32m0 305181        137                 ":-    syscall  -> sigpending[0m
+[2;32m0 305181          8                 ":-    syscall  <- sigpending[0m
+[2;32m0 305181       1148                 ":-    syscall  -> sysi86[0m
+[2;32m0 305181         11                 ":-    syscall  <- sysi86[0m
+[2;32m0 305181        105                 ":-    syscall  -> open64[0m
+[2;32m0 305181         96                 ":-    syscall  <- open64[0m
+[2;32m0 305181         13                 ":-    syscall  -> ioctl[0m
+[2;32m0 305181         18                 ":-    syscall  <- ioctl[0m
+[2;32m0 305181         14                 ":-    syscall  -> close[0m
+[2;32m0 305181         14                 ":-    syscall  <- close[0m
+[2;32m0 305181        123                 ":-    syscall  -> sigaction[0m
+[2;32m0 305181          9                 ":-    syscall  <- sigaction[0m
+[2;32m0 305181         49                 ":-    syscall  -> brk[0m
+[2;32m0 305181          9                 ":-    syscall  <- brk[0m
+[2;32m0 305181          8                 ":-    syscall  -> brk[0m
+[2;32m0 305181         16                 ":-    syscall  <- brk[0m
+[2;32m0 305181         63                 ":-    syscall  -> brk[0m
+[2;32m0 305181          7                 ":-    syscall  <- brk[0m
+[2;32m0 305181          7                 ":-    syscall  -> brk[0m
+[2;32m0 305181          8                 ":-    syscall  <- brk[0m
+[2;32m0 305181         43                 ":-    syscall  -> brk[0m
+[2;32m0 305181          7                 ":-    syscall  <- brk[0m
+[2;32m0 305181          7                 ":-    syscall  -> brk[0m
+[2;32m0 305181          8                 ":-    syscall  <- brk[0m
+[2;32m0 305181        141                 ":-    syscall  -> brk[0m
+[2;32m0 305181          7                 ":-    syscall  <- brk[0m
+[2;32m0 305181          8                 ":-    syscall  -> brk[0m
+[2;32m0 305181          9                 ":-    syscall  <- brk[0m
+[2;32m0 305181         24                 ":-    syscall  -> brk[0m
+[2;32m0 305181          7                 ":-    syscall  <- brk[0m
+[2;32m0 305181          7                 ":-    syscall  -> brk[0m
+[2;32m0 305181          8                 ":-    syscall  <- brk[0m
+[2;32m0 305181         30                 ":-    syscall  -> getuid[0m
+[2;32m0 305181          7                 ":-    syscall  <- getuid[0m
+[2;32m0 305181         10                 ":-    syscall  -> getuid[0m
+[2;32m0 305181          6                 ":-    syscall  <- getuid[0m
+[2;32m0 305181         10                 ":-    syscall  -> getgid[0m
+[2;32m0 305181          7                 ":-    syscall  <- getgid[0m
+[2;32m0 305181          9                 ":-    syscall  -> getgid[0m
+[2;32m0 305181          6                 ":-    syscall  <- getgid[0m
+[2;32m0 305181        117                 ":-    syscall  -> sysconfig[0m
+[2;32m0 305181          9                 ":-    syscall  <- sysconfig[0m
+[2;32m0 305181         19                 ":-    syscall  -> open64[0m
+[2;32m0 305181         59                 ":-    syscall  <- open64[0m
+[2;32m0 305181         15                 ":-    syscall  -> read[0m
+[2;32m0 305181         11                 ":-    syscall  <- read[0m
+[2;32m0 305181          8                 ":-    syscall  -> close[0m
+[2;32m0 305181          8                 ":-    syscall  <- close[0m
+[2;32m0 305181         34                 ":-    syscall  -> gtime[0m
+[2;32m0 305181          7                 ":-    syscall  <- gtime[0m
+[2;32m0 305181         34                 ":-    syscall  -> brk[0m
+[2;32m0 305181          7                 ":-    syscall  <- brk[0m
+[2;32m0 305181          7                 ":-    syscall  -> brk[0m
+[2;32m0 305181          9                 ":-    syscall  <- brk[0m
+[2;32m0 305181         44                 ":-    syscall  -> sysconfig[0m
+[2;32m0 305181          7                 ":-    syscall  <- sysconfig[0m
+[2;32m0 305181          9                 ":-    syscall  -> brk[0m
+[2;32m0 305181          6                 ":-    syscall  <- brk[0m
+[2;32m0 305181          7                 ":-    syscall  -> brk[0m
+[2;32m0 305181          8                 ":-    syscall  <- brk[0m
+[2;32m0 305181        145                 ":-    syscall  -> open64[0m
+[2;32m0 305181         16                 ":-    syscall  <- open64[0m
+[2;32m0 305181         16                 ":-    syscall  -> fcntl[0m
+[2;32m0 305181          7                 ":-    syscall  <- fcntl[0m
+[2;32m0 305181         10                 ":-    syscall  -> sigaction[0m
+[2;32m0 305181          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 305181          8                 ":-    syscall  -> brk[0m
+[2;32m0 305181          7                 ":-    syscall  <- brk[0m
+[2;32m0 305181          7                 ":-    syscall  -> brk[0m
+[2;32m0 305181          9                 ":-    syscall  <- brk[0m
+[2;32m0 305181        104                 ":-    syscall  -> brk[0m
+[2;32m0 305181          7                 ":-    syscall  <- brk[0m
+[2;32m0 305181          7                 ":-    syscall  -> brk[0m
+[2;32m0 305181          8                 ":-    syscall  <- brk[0m
+[2;32m0 305181         88                 ":-    syscall  -> getpid[0m
+[2;32m0 305181          7                 ":-    syscall  <- getpid[0m
+[2;32m0 305181          8                 ":-    syscall  -> brk[0m
+[2;32m0 305181          6                 ":-    syscall  <- brk[0m
+[2;32m0 305181          7                 ":-    syscall  -> brk[0m
+[2;32m0 305181          8                 ":-    syscall  <- brk[0m
+[2;32m0 305181        105                 ":-    syscall  -> fstat64[0m
+[2;32m0 305181         10                 ":-    syscall  <- fstat64[0m
+[2;32m0 305181         16                 ":-    syscall  -> fstat64[0m
+[2;32m0 305181          7                 ":-    syscall  <- fstat64[0m
+[2;32m0 305181         25                 ":-    syscall  -> ioctl[0m
+[2;32m0 305181          8                 ":-    syscall  <- ioctl[0m
+[2;32m0 305181          7                 ":-    syscall  -> read[0m
+[2;32m0 305181         23                 ":-    syscall  <- read[0m
+[2;32m0 305181         18                 ":-    syscall  -> llseek[0m
+[2;32m0 305181          8                 ":-    syscall  <- llseek[0m
+[2;32m0 305181        126                 ":-    syscall  -> llseek[0m
+[2;32m0 305181          7                 ":-    syscall  <- llseek[0m
+[2;32m0 305181         34                 ":-    syscall  -> llseek[0m
+[2;32m0 305181          7                 ":-    syscall  <- llseek[0m
+[2;32m0 305181         30                 ":-    syscall  -> llseek[0m
+[2;32m0 305181          7                 ":-    syscall  <- llseek[0m
+[2;32m0 305181         12                 ":-    syscall  -> read[0m
+[2;32m0 305181          8                 ":-    syscall  <- read[0m
+[2;32m0 305181         11                 ":-    syscall  -> llseek[0m
+[2;32m0 305181          6                 ":-    syscall  <- llseek[0m
+[2;32m0 305181          7                 ":-    syscall  -> close[0m
+[2;32m0 305181          8                 ":-    syscall  <- close[0m
+[2;35m0 305181         27            func_a:15   sub      -> ./func_abc.pl[0m
+[2;32m0 305181         36                 ":-    syscall    -> ioctl[0m
+[2;32m0 305181          7                 ":-    syscall    <- ioctl[0m
+[2;32m0 305181          8                 ":-    syscall    -> fstat64[0m
+[2;32m0 305181          8                 ":-    syscall    <- fstat64[0m
+[2;32m0 305181          8                 ":-    syscall    -> brk[0m
+[2;32m0 305181          7                 ":-    syscall    <- brk[0m
+[2;32m0 305181          7                 ":-    syscall    -> brk[0m
+[2;32m0 305181          9                 ":-    syscall    <- brk[0m
+[2;32m0 305181         23                 ":-    syscall    -> fstat64[0m
+[2;32m0 305181          7                 ":-    syscall    <- fstat64[0m
+[2;32m0 305181         13                 ":-    syscall    -> gtime[0m
+[2;32m0 305181          7                 ":-    syscall    <- gtime[0m
+[2;32m0 305181         11                 ":-    syscall    -> nanosleep[0m
+[2;32m0 305181    1007250                 ":-    syscall    <- nanosleep[0m
+[2;32m0 305181         24                 ":-    syscall    -> gtime[0m
+[2;32m0 305181         15                 ":-    syscall    <- gtime[0m
+[2;35m0 305181         21            func_b:9    sub        -> ./func_abc.pl[0m
+[2;32m0 305181         27                 ":-    syscall      -> gtime[0m
+[2;32m0 305181          6                 ":-    syscall      <- gtime[0m
+[2;32m0 305181          8                 ":-    syscall      -> nanosleep[0m
+[2;32m0 305181    1009847                 ":-    syscall      <- nanosleep[0m
+[2;32m0 305181         24                 ":-    syscall      -> gtime[0m
+[2;32m0 305181         15                 ":-    syscall      <- gtime[0m
+[2;35m0 305181         21            func_c:4    sub          -> ./func_abc.pl[0m
+[2;32m0 305181         27                 ":-    syscall        -> gtime[0m
+[2;32m0 305181          6                 ":-    syscall        <- gtime[0m
+[2;32m0 305181          8                 ":-    syscall        -> nanosleep[0m
+Function A
+Function B
+Function C
+[2;32m0 305181    1009916                 ":-    syscall        <- nanosleep[0m
+[2;32m0 305181         24                 ":-    syscall        -> gtime[0m
+[2;32m0 305181         15                 ":-    syscall        <- gtime[0m
+[2;35m0 305181         20            func_c:4    sub          <- ./func_abc.pl[0m
+[2;35m0 305181         29            func_b:9    sub        <- ./func_abc.pl[0m
+[2;35m0 305181         12            func_a:15   sub      <- ./func_abc.pl[0m
+[2;32m0 305181         51                 ":-    syscall  -> schedctl[0m
+[2;32m0 305181         53                 ":-    syscall  <- schedctl[0m
+[2;32m0 305181         16                 ":-    syscall  -> setcontext[0m
+[2;32m0 305181          8                 ":-    syscall  <- setcontext[0m
+[2;32m0 305181         21                 ":-    syscall  -> write[0m
+[2;32m0 305181         97                 ":-    syscall  <- write[0m
+[2;32m0 305181         28                 ":-    syscall  -> open64[0m
+[2;32m0 305181        101                 ":-    syscall  <- open64[0m
+[2;32m0 305181          9                 ":-    syscall  -> ioctl[0m
+[2;32m0 305181         10                 ":-    syscall  <- ioctl[0m
+[2;32m0 305181         10                 ":-    syscall  -> close[0m
+[2;32m0 305181         15                 ":-    syscall  <- close[0m
+[2;32m0 305181         35                 ":-    syscall  -> rexit[0m
+
+If the colors don't suit you (or you'd rather HTML colored output), it
+should be trivial to modify the script to do so.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_who_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_who_example.txt
new file mode 100644
index 0000000..4ef361d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pl_who_example.txt
@@ -0,0 +1,41 @@
+The following are examples of pl_who.d.
+
+This is a simple script to see who is executing Perl subroutines. Here it
+traces as a few examples programs are executed (from Code/Perl/*.pl).
+
+   # pl_who.d 
+   Tracing... Hit Ctrl-C to end.
+   ^C
+         PID    UID   SUBS FILE
+       30817    100      3 ./func_abc.pl
+       30818    100      3 ./func_slow.pl
+       30819    100      3 ./func_slow.pl
+
+While tracing, the user with UID 100 executed three Perl programs;
+"func_abc.pl" once getting PID 130817, and "func_slow.pl" twice. All
+programs called three subroutines.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+   # pl_who.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+         PID    UID   SUBS FILE
+       14977    100      1 lib/Getopt/Std.pm
+       14977    100      1 lib/warnings.pm
+       14977    100      2 lib/Exporter.pm
+       14977    100      3 /usr/perl5/5.8.4/lib/Sun/Solaris/Kstat.pm
+       14977    100      3 lib/warnings/register.pm
+       14977    100      4 lib/DynaLoader.pm
+       14977    100      5 lib/vars.pm
+       14977    100      6 lib/AutoLoader.pm
+       14977    100      9 lib/Config.pm
+       14977    100     15 lib/strict.pm
+       14977    100     23 /tmp/nicstat
+
+This shows the location of libraries and modules from where subroutines were
+called.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/priclass_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/priclass_example.txt
new file mode 100644
index 0000000..bf63e09
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/priclass_example.txt
@@ -0,0 +1,82 @@
+The following is a demonstration of the priclass.d script.
+
+
+The script was run for several seconds then Ctrl-C was hit. During
+this time, other processes in different scheduling classes were
+running.
+
+   # ./priclass.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+   
+     IA
+              value  ------------- Distribution ------------- count
+                 40 |                                         0
+                 50 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 30
+                 60 |                                         0
+   
+     SYS
+              value  ------------- Distribution ------------- count
+                < 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  4959
+                  0 |                                         0
+                 10 |                                         0
+                 20 |                                         0
+                 30 |                                         0
+                 40 |                                         0
+                 50 |                                         0
+                 60 |                                         30
+                 70 |                                         0
+                 80 |                                         0
+                 90 |                                         0
+                100 |                                         0
+                110 |                                         0
+                120 |                                         0
+                130 |                                         0
+                140 |                                         0
+                150 |                                         0
+                160 |                                         50
+             >= 170 |                                         0
+   
+     RT
+              value  ------------- Distribution ------------- count
+                 90 |                                         0
+                100 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 110
+                110 |                                         0
+   
+     TS
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@                          2880
+                 10 |@@@@@@@                                  1280
+                 20 |@@@@@                                    990
+                 30 |@@@@@                                    920
+                 40 |@@@@                                     670
+                 50 |@@@@                                     730
+                 60 |                                         0
+
+The output is quite interesting, and illustrates neatly the behaviour
+of different scheduling classes.
+
+The IA interactive class had 30 samples of a 50 to 59 priority, a fairly
+high priority. This class is used for interactive processes, such as
+the windowing system. I had clicked on a few windows to create this
+activity.
+
+The SYS system class has had 4959 samples at a < 0 priority - the lowest,
+which was for the idle thread. There are a few samples at higher
+priorities, including some in the 160 to 169 range (the highest), which
+are for interrupt threads. The system class is used by the kernel.
+
+The RT real time class had 110 samples in the 100 to 109 priority range.
+This class is designed for real-time applications, those that must have
+a consistant response time regardless of other process activity. For that
+reason, the RT class trumps both TS and IA. I created these events by
+running "prstat -R" as root, which runs prstat in the real time class.
+
+The TS time sharing class is the default scheduling class for the processes
+on a Solaris system. I ran an infinite shell loop to create heavy activity,
+"while :; do :; done", which shows a profile that leans towards lower
+priorities. This is deliberate behaivour from the time sharing class, which
+reduces the priority of CPU bound processes so that they interefere less
+with I/O bound processes. The result is more samples in the lower priority
+ranges.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/pridist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/pridist_example.txt
new file mode 100644
index 0000000..1f930ab
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/pridist_example.txt
@@ -0,0 +1,238 @@
+The following are demonstrations of the pridist.d script.
+
+
+Here we run pridist.d for a few seconds then hit Ctrl-C,
+
+   # pridist.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+    CMD: setiathome       PID: 2190
+   
+              value  ------------- Distribution ------------- count
+                 -5 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6629
+                  5 |                                         0
+   
+    CMD: sshd             PID: 9172
+   
+              value  ------------- Distribution ------------- count
+                 50 |                                         0
+                 55 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+                 60 |                                         0
+   
+    CMD: mozilla-bin      PID: 3164
+   
+              value  ------------- Distribution ------------- count
+                 40 |                                         0
+                 45 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 20
+                 50 |                                         0
+   
+    CMD: perl             PID: 11544
+   
+              value  ------------- Distribution ------------- count
+                 10 |                                         0
+                 15 |@@@@@@@@                                 60
+                 20 |                                         0
+                 25 |@@@@@@@@@@@@@@@                          120
+                 30 |                                         0
+                 35 |@@@@@@@@@@                               80
+                 40 |                                         0
+                 45 |@@@@@                                    40
+                 50 |                                         0
+                 55 |@@@                                      20
+                 60 |                                         0
+
+During this sample there was a CPU bound process called "setiathome"
+running, and a new CPU bound "perl" process was executed.
+
+perl, executing an infinite loop, begins with a high priority of 55 to 59
+where it is sampled 20 times. pridist.d samples 1000 times per second,
+so this equates to 20 ms. The perl process has also been sampled for 40 ms
+at priority 45 to 49, for 80 ms at priority 35 to 39, down to 60 ms at a
+priority 15 to 19 - at which point I had hit Ctrl-C to end sampling. 
+
+The output is spectacular as it matches the behaviour of the dispatcher
+table for the time sharing class perfectly!
+
+setiathome is running with the lowest priority, in the 0 to 4 range.
+
+... ok, so when I say 20 samples equates 20 ms, we know that's only an
+estimate. It really means that for 20 samples that process was the one on
+the CPU. In between the samples anything may have occured (I/O bound
+processes will context switch off the CPU). DTrace can certainly be used
+to measure this based on schedular events not samples (eg, cpudist), 
+however DTrace can then sometimes consume a noticable portion of the CPUs
+(for example, 2%). 
+
+
+
+
+The following is a longer sample. Again, I start a new CPU bound perl
+process,
+
+   # pridist.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+    CMD: setiathome       PID: 2190
+   
+              value  ------------- Distribution ------------- count
+                 -5 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1820
+                  5 |                                         0
+   
+    CMD: mozilla-bin      PID: 3164
+   
+              value  ------------- Distribution ------------- count
+                 40 |                                         0
+                 45 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+                 50 |                                         0
+   
+    CMD: bash             PID: 9185
+   
+              value  ------------- Distribution ------------- count
+                 50 |                                         0
+                 55 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+                 60 |                                         0
+   
+    CMD: perl             PID: 11547
+   
+              value  ------------- Distribution ------------- count
+                 -5 |                                         0
+                  0 |@@@@@@@@@@@@@@@                          2020
+                  5 |@@                                       200
+                 10 |@@@@@@@                                  960
+                 15 |@                                        160
+                 20 |@@@@@                                    720
+                 25 |@                                        120
+                 30 |@@@@                                     480
+                 35 |@                                        80
+                 40 |@@                                       240
+                 45 |                                         40
+                 50 |@@                                       240
+                 55 |                                         10
+                 60 |                                         0
+
+Now other behaviour can be observed as the perl process runs. The effect
+here is due to ts_maxwait triggering a priority boot to avoid CPU starvation;
+the priority is boosted to the 50 to 54 range, then decreases by 10 until
+it reaches 0 and another ts_maxwait is triggered. The process spends
+more time at lower priorities, as that is exactly how the TS dispatch table
+has been configured.
+
+
+
+
+Now we run prdist.d for a considerable time,
+
+   # pridist.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+    CMD: setiathome       PID: 2190
+   
+              value  ------------- Distribution ------------- count
+                 -5 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3060
+                  5 |                                         0
+   
+    CMD: mozilla-bin      PID: 3164
+   
+              value  ------------- Distribution ------------- count
+                 40 |                                         0
+                 45 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 20
+                 50 |                                         0
+   
+    CMD: perl             PID: 11549
+   
+              value  ------------- Distribution ------------- count
+                 -5 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@                      7680
+                  5 |                                         0
+                 10 |@@@@@@@                                  3040
+                 15 |                                         70
+                 20 |@@@@@@                                   2280
+                 25 |                                         120
+                 30 |@@@@                                     1580
+                 35 |                                         80
+                 40 |@@                                       800
+                 45 |                                         40
+                 50 |@@                                       800
+                 55 |                                         20
+                 60 |                                         0
+   
+The process has settled to a pattern of 0 priority, ts_maxwait boot to 50,
+drop back to 0.
+
+Run "dispadmin -c TS -g" for a printout of the time sharing dispatcher table.
+
+
+
+
+
+The following shows running pridist.d on a completely idle system,
+
+   # pridist.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+    CMD: sched            PID: 0
+   
+              value  ------------- Distribution ------------- count
+                -10 |                                         0
+                 -5 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1190
+                  0 |                                         0
+
+Only the kernel "sched" was sampled. It would have been running the idle
+thread.
+
+
+
+
+The following is an unusual output that is worth mentioning,
+
+   # pridist.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+    CMD: sched            PID: 0
+   
+              value  ------------- Distribution ------------- count
+                -10 |                                         0
+                 -5 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 940
+                  0 |                                         0
+                  5 |                                         0
+                 10 |                                         0
+                 15 |                                         0
+                 20 |                                         0
+                 25 |                                         0
+                 30 |                                         0
+                 35 |                                         0
+                 40 |                                         0
+                 45 |                                         0
+                 50 |                                         0
+                 55 |                                         0
+                 60 |                                         0
+                 65 |                                         0
+                 70 |                                         0
+                 75 |                                         0
+                 80 |                                         0
+                 85 |                                         0
+                 90 |                                         0
+                 95 |                                         0
+                100 |                                         0
+                105 |                                         0
+                110 |                                         0
+                115 |                                         0
+                120 |                                         0
+                125 |                                         0
+                130 |                                         0
+                135 |                                         0
+                140 |                                         0
+                145 |                                         0
+                150 |                                         0
+                155 |                                         0
+                160 |                                         0
+                165 |                                         10
+             >= 170 |                                         0
+
+Here we have sampled the kernel running at a priority of 165 to 169. This
+is the interrupt priority range, and would be an interrupt servicing thread.
+Eg, a network interrupt.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/procsystime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/procsystime_example.txt
new file mode 100644
index 0000000..89f98bb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/procsystime_example.txt
@@ -0,0 +1,149 @@
+This is a demonstration of the procsystime tool, which can give details
+on how processes make use of system calls.
+
+Here we run procsystime on processes which have the name "bash",
+
+   #  procsystime -n bash
+   Tracing... Hit Ctrl-C to end...
+   ^C
+   
+   Elapsed Times for process bash,
+   
+            SYSCALL          TIME (ns)
+            setpgrp              27768
+              gtime              28692
+        lwp_sigmask             148074
+              write             235814
+          sigaction             553556
+              ioctl             776691
+               read          857401243
+
+By default procsystime prints elapsed times, the time from when the syscall
+was issued to it's completion. In the above output, we can see the read()
+syscall took the most time for this process - 8.57 seconds for all the
+reads combined. This is because the read syscall is waiting for keystrokes.
+
+
+
+Here we try the "-o" option to print CPU overhead times on "bash",
+
+   # procsystime -o -n bash
+   Tracing... Hit Ctrl-C to end...
+   ^C
+   
+   CPU Times for process bash,
+   
+            SYSCALL          TIME (ns)
+            setpgrp               6994
+              gtime               8054
+        lwp_sigmask              33865
+               read             154895
+          sigaction             259899
+              write             343825
+              ioctl             932280
+
+This identifies which syscall type from bash is consuming the most CPU time.
+This is ioctl, at 932 microseconds. Compare this output to the default in
+the first example - both are useful for different reasons, this CPU overhead
+output helps us see why processes are consuming a lot of sys time.
+
+
+
+This demonstrates using the "-a" for all details, this time with "ssh",
+
+   # procsystime -a -n ssh
+   Tracing... Hit Ctrl-C to end...
+   ^C
+
+   Elapsed Times for processes ssh,
+   
+            SYSCALL          TIME (ns)
+               read             115833
+              write             302419
+            pollsys          114616076
+             TOTAL:          115034328
+   
+   CPU Times for processes ssh,
+   
+            SYSCALL          TIME (ns)
+               read              82381
+            pollsys             201818
+              write             280390
+             TOTAL:             564589
+   
+   Syscall Counts for processes ssh,
+   
+            SYSCALL              COUNT
+               read                  4
+              write                  4
+            pollsys                  8
+             TOTAL:                 16
+
+Now we can see elapsed times, overhead times, and syscall counts in one
+report. Very handy. We can also see totals printed as "TOTAL:".
+
+
+
+procsystime also lets us just examine one PID. For example,
+
+   # procsystime -p 1304
+   Tracing... Hit Ctrl-C to end...
+   ^C
+   
+   Elapsed Times for PID 1304,
+   
+            SYSCALL          TIME (ns)
+              fcntl               7323
+            fstat64              21349
+              ioctl             190683
+               read             238197
+              write            1276169
+            pollsys         1005360640
+
+
+
+Here is a longer example of running procsystime on mozilla,
+
+   # procsystime -a -n mozilla-bin
+   Tracing... Hit Ctrl-C to end...
+   ^C
+   
+   Elapsed Times for processes mozilla-bin,
+   
+            SYSCALL          TIME (ns)
+              readv             677958
+             writev            1159088
+              yield            1298742
+               read           18019194
+              write           35679619
+              ioctl          108845685
+           lwp_park        38090969432
+            pollsys        65955258781
+             TOTAL:       104211908499
+   
+   CPU Times for processes mozilla-bin,
+   
+            SYSCALL          TIME (ns)
+              yield             120345
+              readv             398046
+             writev            1117178
+           lwp_park            8591428
+               read            9752315
+              write           29043460
+              ioctl           37089349
+            pollsys          189933470
+             TOTAL:          276045591
+   
+   Syscall Counts for processes mozilla-bin,
+   
+            SYSCALL              COUNT
+             writev                  3
+              yield                  9
+              readv                 58
+           lwp_park                280
+              write               1317
+               read               1744
+            pollsys               8268
+              ioctl              16434
+             TOTAL:              28113
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/putnexts_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/putnexts_example.txt
new file mode 100644
index 0000000..fd7fc3d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/putnexts_example.txt
@@ -0,0 +1,520 @@
+The following is an example of the putnexts.d script.
+
+
+When investigating the operation of kernel streams, it can be extreamly
+useful to trace who (which stack trace) is calling putnext to who (the
+kernel modele). This script does that,
+
+# putnexts.d 
+dtrace: script './putnexts.d' matched 1 probe
+^C
+
+  bufmod                                            
+              bufmod`sbrput+0xb9
+              unix`putnext+0x1b7
+              pts`ptswput+0x1e1
+              unix`putnext+0x1b7
+              ptem`ptemwput+0x22f
+                1
+  ip                                                
+              ip`ip_fanout_proto+0x4d2
+              ip`ip_proto_input+0x616
+              ip`ip_fanout_proto_again+0x160
+              ip`ip_proto_input+0x530
+              ip`ip_rput+0x50d
+                1
+  ip                                                
+              ip`ip_wput_ipsec_out+0x60a
+              ip`ipsec_out_process+0x322
+              ip`ip_wput_ire+0x18d0
+              ip`ip_output+0x70a
+              ip`ip_wput+0x14
+                1
+  ip                                                
+              ip`ip_wput_ire+0x17d1
+              ip`ip_output+0x70a
+              ip`tcp_send_data+0x68c
+              ip`tcp_ack_timer+0xb0
+              ip`tcp_timer_handler+0x1d
+                1
+  ip                                                
+              ip`ip_udp_input+0x4e4
+              ip`ip_rput+0x540
+              unix`putnext+0x1b7
+              gld`gld_recv_tagged+0xed
+              gld`gld_recv+0x10
+                1
+  ldterm                                            
+              genunix`putnextctl1+0x52
+              ldterm`ldterm_dosig+0x7b
+              ldterm`ldtermrput+0x6fe
+              unix`putnext+0x1b7
+              ptem`ptemrput+0xff
+                1
+  ldterm                                            
+              ldterm`ldterm_ioctl_reply+0x93
+              ldterm`ldtermrput+0x186
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+              genunix`putnext_tail+0x88
+                1
+  ldterm                                            
+              ldterm`ldtermrput+0x12a
+              unix`putnext+0x1b7
+              ptem`ptemrput+0xff
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+                1
+  ldterm                                            
+              ldterm`ldterm_dosig+0x16f
+              ldterm`ldtermrput+0x6fe
+              unix`putnext+0x1b7
+              ptem`ptemrput+0xff
+              unix`putnext+0x1b7
+                1
+  ldterm                                            
+              genunix`putnextctl1+0x52
+              ldterm`ldterm_dosig+0x124
+              ldterm`ldtermrput+0x6fe
+              unix`putnext+0x1b7
+              ptem`ptemrput+0xff
+                1
+  ldterm                                            
+              ldterm`ldterm_do_ioctl+0xd8b
+              ldterm`ldtermwmsg+0x41
+              ldterm`ldtermwput+0x8e
+              unix`putnext+0x1b7
+              ttcompat`ttcompat_do_ioctl+0x425
+                1
+  ldterm                                            
+              genunix`putnextctl1+0x52
+              ldterm`ldterm_dosig+0xe3
+              ldterm`ldtermrput+0x6fe
+              unix`putnext+0x1b7
+              ptem`ptemrput+0xff
+                1
+  ptem                                              
+              genunix`qreply+0x23
+              ptem`ptemwmsg+0x2b9
+              ptem`ptemwput+0xe1
+              unix`putnext+0x1b7
+              ldterm`ldterm_do_ioctl+0xd8b
+                1
+  ptem                                              
+              ptem`ptemwput+0x22f
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+              genunix`putnext_tail+0x88
+              unix`putnext+0x38e
+                1
+  ptem                                              
+              ptem`ptemrput+0xff
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+              genunix`putnext_tail+0x88
+              unix`putnext+0x38e
+                1
+  ptem                                              
+              ptem`ptemwmsg+0x44d
+              ptem`ptemwput+0xe1
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+              genunix`putnext_tail+0x88
+                1
+  ptm                                               
+              pts`ptswsrv+0x7c
+              genunix`runservice+0x2a
+              genunix`queue_service+0x30
+              genunix`stream_service+0x69
+              genunix`taskq_d_thread+0x8a
+                1
+  ptm                                               
+              pts`ptswput+0x1e1
+              unix`putnext+0x1b7
+              ptem`ptemwput+0x22f
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+                1
+  pts                                               
+              genunix`qreply+0x23
+              pts`ptswput+0x201
+              unix`putnext+0x1b7
+              ptem`ptemwput+0x22f
+              genunix`qdrain_syncq+0x68
+                1
+  strwhead                                          
+              genunix`qreply+0x23
+              genunix`strrput_nondata+0x22d
+              genunix`strrput+0x256
+              unix`putnext+0x1b7
+              ttcompat`ttcompatrput+0x1d
+                1
+  strwhead                                          
+              genunix`strdoioctl+0x30d
+              genunix`strioctl+0x6ae
+              specfs`spec_ioctl+0x48
+              genunix`fop_ioctl+0x1e
+              genunix`ioctl+0x199
+                1
+  tcp                                               
+              ip`tcp_rput_data+0x2221
+              ip`tcp_input+0x39
+              ip`squeue_enter+0x1bf
+              ip`ip_tcp_input+0x9f8
+              ip`ip_rput+0x583
+                1
+  ttcompat                                          
+              ttcompat`ttcompat_ioctl_ack+0x398
+              ttcompat`ttcompatrput+0x39
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+              genunix`putnext_tail+0x88
+                1
+  ttcompat                                          
+              ttcompat`ttcompatrput+0x1d
+              unix`putnext+0x1b7
+              ldterm`ldtermrput+0x12a
+              unix`putnext+0x1b7
+              ptem`ptemrput+0xff
+                1
+  ttcompat                                          
+              ttcompat`ttcompatrput+0x1d
+              unix`putnext+0x1b7
+              genunix`putnextctl1+0x52
+              ldterm`ldterm_dosig+0x124
+              ldterm`ldtermrput+0x6fe
+                1
+  ttcompat                                          
+              ttcompat`ttcompatwput+0x32
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+              genunix`putnext_tail+0x88
+              unix`putnext+0x38e
+                1
+  ttcompat                                          
+              ttcompat`ttcompat_do_ioctl+0x425
+              ttcompat`ttcompatwput+0x152
+              unix`putnext+0x1b7
+              genunix`strdoioctl+0x30d
+              genunix`strioctl+0x6ae
+                1
+  ttcompat                                          
+              ttcompat`ttcompatrput+0x1d
+              unix`putnext+0x1b7
+              genunix`putnextctl1+0x52
+              ldterm`ldterm_dosig+0xe3
+              ldterm`ldtermrput+0x6fe
+                1
+  tun                                               
+              tun`tun_rdata_v4+0x58c
+              tun`tun_rproc+0x256
+              tun`tun_rput+0x23
+              unix`putnext+0x1b7
+              ip`ip_fanout_proto+0x4d2
+                1
+  tun                                               
+              tun`tun_wputnext_v4+0x1f8
+              tun`tun_wproc_mdata+0x71
+              tun`tun_wproc+0xdf
+              tun`tun_wput+0x23
+              unix`putnext+0x1b7
+                1
+  udp                                               
+              udp`udp_rput+0x975
+              unix`putnext+0x1b7
+              ip`ip_udp_input+0x4e4
+              ip`ip_rput+0x540
+              unix`putnext+0x1b7
+                1
+  conskbd                                           
+              genunix`qreply+0x23
+              conskbd`conskbd_mux_upstream_msg+0x24f
+              conskbd`conskbd_lqs_ack_complete+0x65
+              conskbd`conskbdlrput+0x9d
+              unix`putnext+0x1b7
+                2
+  conskbd                                           
+              conskbd`conskbdlwserv+0x2d
+              genunix`runservice+0x2a
+              genunix`queue_service+0x30
+              genunix`stream_service+0x69
+              genunix`taskq_d_thread+0x8a
+                2
+  kb8042                                            
+              genunix`qreply+0x23
+              genunix`miocack+0x2a
+              kb8042`kb8042_ioctlmsg+0x281
+              kb8042`kb8042_wsrv+0xcb
+              genunix`runservice+0x2a
+                2
+  strwhead                                          
+              genunix`strdoioctl+0x30d
+              genunix`strioctl+0x587
+              specfs`spec_ioctl+0x48
+              genunix`fop_ioctl+0x1e
+              genunix`ioctl+0x199
+                2
+  consms                                            
+              consms`consmslrput+0x15a
+              unix`putnext+0x1b7
+              vuid3ps2`vuid3ps2_putnext+0x94
+              vuid3ps2`sendButtonEvent+0x58
+              vuid3ps2`vuid3ps2+0x8ee
+                4
+  vuid3ps2                                          
+              vuid3ps2`vuid3ps2_putnext+0x94
+              vuid3ps2`sendButtonEvent+0x58
+              vuid3ps2`vuid3ps2+0x8ee
+              vuid3ps2`vuidmice_rsrv+0x69
+              genunix`runservice+0x2a
+                4
+  ip                                                
+              ip`tcp_send_data+0x55d
+              ip`tcp_ack_timer+0xb0
+              ip`tcp_timer_handler+0x1d
+              ip`squeue_drain+0xbb
+              ip`squeue_worker+0xeb
+               10
+  ip                                                
+              ip`tcp_send_data+0x55d
+              ip`tcp_rput_data+0x259e
+              ip`squeue_enter+0x1bf
+              ip`ip_tcp_input+0xcfb
+              ip`ip_rput+0x583
+               11
+  ip                                                
+              ip`ip_fanout_udp_conn+0x14b
+              ip`ip_fanout_udp+0x373
+              ip`ip_wput_local+0x16f
+              ip`ip_wput_ire+0x1436
+              ip`ip_output+0x70a
+               14
+  strwhead                                          
+              genunix`strput+0x168
+              genunix`strputmsg+0x1d5
+              genunix`msgio+0x142
+              genunix`putmsg+0x6e
+              unix`sys_sysenter+0xdc
+               14
+  timod                                             
+              timod`timodwput+0xea
+              unix`putnext+0x1b7
+              genunix`strput+0x168
+              genunix`strputmsg+0x1d5
+              genunix`msgio+0x142
+               14
+  timod                                             
+              timod`timodrput+0xa9
+              unix`putnext+0x1b7
+              udp`udp_rput+0x975
+              unix`putnext+0x1b7
+              ip`ip_fanout_udp_conn+0x14b
+               14
+  udp                                               
+              udp`udp_rput+0x975
+              unix`putnext+0x1b7
+              ip`ip_fanout_udp_conn+0x14b
+              ip`ip_fanout_udp+0x373
+              ip`ip_wput_local+0x16f
+               14
+  udp                                               
+              udp`udp_wput+0x378
+              unix`putnext+0x1b7
+              timod`timodwput+0xea
+              unix`putnext+0x1b7
+              genunix`strput+0x168
+               14
+  bufmod                                            
+              bufmod`sbsendit+0x5a
+              bufmod`sbclosechunk+0x2e
+              bufmod`sbrput+0xee
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+               21
+  conskbd                                           
+              kbtrans`kbtrans_queueevent+0x5c
+              kbtrans`kbtrans_keyreleased+0x3d
+              kbtrans`kbtrans_untrans_keyreleased_raw+0x10
+              kbtrans`kbtrans_processkey+0x20
+              kbtrans`kbtrans_streams_key+0x95
+               22
+  kb8042                                            
+              kbtrans`kbtrans_queueevent+0x5c
+              kbtrans`kbtrans_keyreleased+0x3d
+              kbtrans`kbtrans_untrans_keyreleased_raw+0x10
+              kbtrans`kbtrans_processkey+0x20
+              kbtrans`kbtrans_streams_key+0x95
+               22
+  ldterm                                            
+              ldterm`ldterm_msg_upstream+0x2c
+              ldterm`vmin_satisfied+0x5e
+              ldterm`ldterm_dononcanon+0x230
+              ldterm`ldtermrmsg+0x252
+              ldterm`ldtermrput+0x7e9
+               22
+  ttcompat                                          
+              ttcompat`ttcompatrput+0x1d
+              unix`putnext+0x1b7
+              ldterm`ldterm_msg_upstream+0x2c
+              ldterm`vmin_satisfied+0x5e
+              ldterm`ldterm_dononcanon+0x230
+               22
+  bufmod                                            
+              bufmod`sbwput+0x33
+              unix`putnext+0x1b7
+              genunix`strput+0x168
+              genunix`strwrite+0x151
+              specfs`spec_write+0x4e
+               23
+  ptem                                              
+              ptem`ptemrput+0xff
+              unix`putnext+0x1b7
+              ptm`ptmwsrv+0x90
+              genunix`runservice+0x2a
+              genunix`queue_service+0x30
+               23
+  pts                                               
+              ptm`ptmwsrv+0x90
+              genunix`runservice+0x2a
+              genunix`queue_service+0x30
+              genunix`stream_runservice+0x96
+              genunix`strput+0x171
+               23
+  conskbd                                           
+              kbtrans`kbtrans_queueevent+0x5c
+              kbtrans`kbtrans_queuepress+0x5f
+              kbtrans`kbtrans_untrans_keypressed_raw+0x36
+              kbtrans`kbtrans_processkey+0x30
+              kbtrans`kbtrans_streams_key+0x95
+               24
+  kb8042                                            
+              kbtrans`kbtrans_queueevent+0x5c
+              kbtrans`kbtrans_queuepress+0x5f
+              kbtrans`kbtrans_untrans_keypressed_raw+0x36
+              kbtrans`kbtrans_processkey+0x30
+              kbtrans`kbtrans_streams_key+0x95
+               24
+  ip                                                
+              ip`tcp_send_data+0x55d
+              ip`tcp_output+0x562
+              ip`squeue_enter+0x1bf
+              ip`tcp_wput+0x234
+              unix`putnext+0x1b7
+               32
+  ldterm                                            
+              ldterm`ldtermwmsg+0x100
+              ldterm`ldtermwput+0x8e
+              unix`putnext+0x1b7
+              ttcompat`ttcompatwput+0x32
+              unix`putnext+0x1b7
+               36
+  ptem                                              
+              ptem`ptemwmsg+0x44d
+              ptem`ptemwput+0xe1
+              unix`putnext+0x1b7
+              ldterm`ldtermwmsg+0x100
+              ldterm`ldtermwput+0x8e
+               36
+  ptm                                               
+              pts`ptswsrv+0x7c
+              genunix`runservice+0x2a
+              genunix`queue_service+0x30
+              genunix`stream_runservice+0x96
+              genunix`strput+0x171
+               36
+  ttcompat                                          
+              ttcompat`ttcompatwput+0x32
+              unix`putnext+0x1b7
+              genunix`strput+0x168
+              genunix`strwrite+0x151
+              specfs`spec_write+0x4e
+               36
+  tcp                                               
+              ip`tcp_rput_data+0x2221
+              ip`squeue_enter+0x1bf
+              ip`ip_tcp_input+0xcfb
+              ip`ip_rput+0x583
+              unix`putnext+0x1b7
+               40
+  rtls                                              
+              gld`gld_recv_tagged+0xed
+              gld`gld_recv+0x10
+              rtls`rtls_receive+0x18f
+              rtls`rtls_gld_intr+0x133
+              gld`gld_intr+0x1e
+               46
+  consms                                            
+              consms`consmslrput+0x15a
+              unix`putnext+0x1b7
+              vuid3ps2`vuid3ps2_putnext+0x94
+              vuid3ps2`vuid3ps2+0x82b
+              vuid3ps2`vuidmice_rsrv+0x69
+               59
+  strwhead                                          
+              genunix`strput+0x168
+              genunix`strwrite+0x151
+              specfs`spec_write+0x4e
+              genunix`fop_write+0x1b
+              genunix`write+0x29a
+               59
+  vuid3ps2                                          
+              vuid3ps2`vuid3ps2_putnext+0x94
+              vuid3ps2`vuid3ps2+0x82b
+              vuid3ps2`vuidmice_rsrv+0x69
+              genunix`runservice+0x2a
+              genunix`queue_service+0x30
+               59
+  consms                                            
+              consms`consmslrput+0x15a
+              unix`putnext+0x1b7
+              vuid3ps2`vuid3ps2_putnext+0x94
+              vuid3ps2`vuid3ps2+0x809
+              vuid3ps2`vuidmice_rsrv+0x69
+               77
+  vuid3ps2                                          
+              vuid3ps2`vuid3ps2_putnext+0x94
+              vuid3ps2`vuid3ps2+0x809
+              vuid3ps2`vuidmice_rsrv+0x69
+              genunix`runservice+0x2a
+              genunix`queue_service+0x30
+               77
+  strwhead                                          
+              genunix`strput+0x168
+              genunix`strwrite+0x151
+              sockfs`socktpi_write+0xcb
+              genunix`fop_write+0x1b
+              genunix`writev+0x308
+              108
+  rtls                                              
+              gld`gld_passon+0x9e
+              gld`gld_sendup+0xfc
+              gld`gld_recv_tagged+0x15f
+              gld`gld_recv+0x10
+              rtls`rtls_receive+0x18f
+              124
+  strwhead                                          
+              genunix`strput+0x168
+              genunix`strwrite+0x151
+              sockfs`socktpi_write+0xcb
+              genunix`fop_write+0x1b
+              genunix`write+0x29a
+              138
+  tl                                                
+              tl`tl_wput_data_ser+0x5e
+              genunix`serializer_exec+0x1d
+              genunix`serializer_enter+0x81
+              tl`tl_serializer_enter+0x40
+              tl`tl_wput+0x1c7
+              214
+  mouse8042                                         
+              mouse8042`mouse8042_intr+0x68
+              i8042`i8042_intr+0xa6
+              unix`intr_thread+0x107
+              261
+
+Highlights of the above output include,
+
+- gld calling putnext to rtls (my laptop network device driver)
+- ip receive path calling putnext to tcp
+- tcp_send_data() calling putnext to ip
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/py_calldist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_calldist_example.txt
new file mode 100644
index 0000000..da44430
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_calldist_example.txt
@@ -0,0 +1,966 @@
+The following are examples of py_calldist.d.
+
+This script traces the elapsed time of Python functions and prints a report in
+the form of a histogram.  Here it traces the example program,
+Code/Python/func_abc.py
+
+The results are displayed in two sections, the first, Exclusive function
+elapsed times, shows us the time spent in each functions, not including time 
+spent in subroutines. 
+
+The third section, Inclusive function elapsed times, shows us the time spent
+in each function, this time including that time spent in subroutines called
+by those functions.  
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly. 
+
+# py_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive function elapsed times (us),
+   UserDict.py, func, IterableUserDict 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   __init__.py, func, CodecRegistryError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, Codec 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, StreamConverter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, StreamReader 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, StreamWriter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, getregentry 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, _Helper 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, aliasmbcs 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, setencoding 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, sethelper 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   types.py, func, _C 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   warnings.py, func, _OptionError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   warnings.py, func, _processoptions 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   UserDict.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, Codec 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamReader 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamReaderWriter 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamRecoder 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamWriter 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   os.py, func, _Environ 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   site.py, func, _Printer 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   site.py, func, setquit 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   copy_reg.py, func, constructor 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4 |                                         0        
+
+   site.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4 |                                         0        
+
+   warnings.py, func, simplefilter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+
+   __init__.py, func, normalize_encoding 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   linecache.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   posixpath.py, func, dirname 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   posixpath.py, func, split 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+               8 |                                         0        
+
+   stat.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   stat.py, func, S_IFMT 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+               4 |                                         0        
+
+   UserDict.py, func, UserDict 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   os.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   posixpath.py, func, basename 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   posixpath.py, func, normcase 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@                        6        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@                  8        
+               4 |                                         0        
+
+   aliases.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   copy_reg.py, func, pickle 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              16 |@@@@@@@@@@@@@                            1        
+              32 |                                         0        
+
+   posixpath.py, func, exists 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   <string>, func, ? 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     10       
+               4 |                                         0        
+               8 |                                         0        
+              16 |@@@@                                     1        
+              32 |                                         0        
+
+   posixpath.py, func, isabs 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   21       
+               4 |@@                                       1        
+               8 |                                         0        
+
+   stat.py, func, S_ISDIR 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@        5        
+              16 |@@@@@@@                                  1        
+              32 |                                         0        
+
+   UserDict.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   ascii.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   site.py, func, addsitepackages 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   site.py, func, removeduppaths 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   site.py, func, setcopyright 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   types.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   posixpath.py, func, join 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@                 12       
+               4 |@@@@@@@@@@@@                             6        
+               8 |@@                                       1        
+              16 |                                         0        
+              32 |@@                                       1        
+              64 |                                         0        
+
+   UserDict.py, func, DictMixin 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   __init__.py, func, search_function 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   codecs.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   copy_reg.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   os.py, func, _get_exports_list 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   site.py, func, _init_pathinfo 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   site.py, func, abs__file__ 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   site.py, func, main 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   warnings.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   posixpath.py, func, normpath 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 22       
+              16 |                                         0        
+
+   posixpath.py, func, isdir 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           6        
+              32 |@@@@@                                    1        
+              64 |@@@@@                                    1        
+             128 |                                         0        
+
+   site.py, func, addpackage 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@                            1        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+             256 |                                         0        
+
+   posixpath.py, func, abspath 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   21       
+              32 |@@                                       1        
+              64 |                                         0        
+
+   site.py, func, makepath 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14       
+              64 |                                         0        
+
+   posixpath.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   site.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   site.py, func, execsitecustomize 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   site.py, func, addsitedir 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@                     1        
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@                     1        
+            1024 |                                         0        
+
+   os.py, func, _exists 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@             7        
+              32 |@@@@@@@@                                 2        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |@@@@                                     1        
+            1024 |                                         0        
+
+   __init__.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   os.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   func_abc.py, func, ? 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+   func_abc.py, func, func_a 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   func_abc.py, func, func_b 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   func_abc.py, func, func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+
+Inclusive function elapsed times (us),
+   UserDict.py, func, IterableUserDict 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   __init__.py, func, CodecRegistryError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, Codec 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, StreamConverter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, StreamReader 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, StreamWriter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, getregentry 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, _Helper 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, aliasmbcs 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, setencoding 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, sethelper 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   types.py, func, _C 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   warnings.py, func, _OptionError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   warnings.py, func, _processoptions 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   UserDict.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, Codec 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamReader 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamReaderWriter 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamRecoder 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamWriter 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   os.py, func, _Environ 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   site.py, func, _Printer 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   site.py, func, setquit 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   copy_reg.py, func, constructor 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4 |                                         0        
+
+   site.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4 |                                         0        
+
+   warnings.py, func, simplefilter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+
+   __init__.py, func, normalize_encoding 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   linecache.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   posixpath.py, func, split 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+               8 |                                         0        
+
+   stat.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   stat.py, func, S_IFMT 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+               4 |                                         0        
+
+   UserDict.py, func, UserDict 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   os.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   posixpath.py, func, basename 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   posixpath.py, func, dirname 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   posixpath.py, func, normcase 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@                        6        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@                  8        
+               4 |                                         0        
+
+   aliases.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   posixpath.py, func, exists 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   copy_reg.py, func, pickle 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@                            1        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              32 |                                         0        
+
+   posixpath.py, func, isabs 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   21       
+               4 |@@                                       1        
+               8 |                                         0        
+
+   ascii.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   site.py, func, setcopyright 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   stat.py, func, S_ISDIR 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+              16 |@@@@@@@@@@@@@                            2        
+              32 |                                         0        
+
+   types.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   posixpath.py, func, join 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@                 12       
+               4 |@@@@@@@@@@@@                             6        
+               8 |@@                                       1        
+              16 |                                         0        
+              32 |@@                                       1        
+              64 |                                         0        
+
+   UserDict.py, func, DictMixin 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   codecs.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   os.py, func, _get_exports_list 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   posixpath.py, func, normpath 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 22       
+              16 |                                         0        
+
+   UserDict.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   __init__.py, func, search_function 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   copy_reg.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   site.py, func, abs__file__ 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   site.py, func, removeduppaths 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   warnings.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   posixpath.py, func, isdir 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@                                    1        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@                5        
+              64 |@@@@@@@@@@                               2        
+             128 |                                         0        
+
+   posixpath.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   site.py, func, _init_pathinfo 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   site.py, func, execsitecustomize 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   posixpath.py, func, abspath 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 22       
+              64 |                                         0        
+
+   os.py, func, _exists 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@                         4        
+              32 |@@@@@@@@@@@@@@@@@@@@                     5        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |@@@@                                     1        
+            1024 |                                         0        
+
+   site.py, func, makepath 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14       
+             128 |                                         0        
+
+   __init__.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   <string>, func, ? 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     10       
+               4 |                                         0        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |@@@@                                     1        
+            2048 |                                         0        
+
+   site.py, func, addpackage 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@                            1        
+             256 |@@@@@@@@@@@@@                            1        
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@                            1        
+            2048 |                                         0        
+
+   os.py, func, ? 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+   site.py, func, addsitepackages 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+   site.py, func, addsitedir 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@                     1        
+            2048 |@@@@@@@@@@@@@@@@@@@@                     1        
+            4096 |                                         0        
+
+   site.py, func, main 
+           value  ------------- Distribution ------------- count    
+            2048 |                                         0        
+            4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            8192 |                                         0        
+
+   site.py, func, ? 
+           value  ------------- Distribution ------------- count    
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           16384 |                                         0        
+
+   func_abc.py, func, func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   func_abc.py, func, func_b 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   func_abc.py, func, ? 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+   func_abc.py, func, func_a 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/py_calltime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_calltime_example.txt
new file mode 100644
index 0000000..bda8ea8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_calltime_example.txt
@@ -0,0 +1,255 @@
+The following are examples of py_calltime.d.
+
+This script traces the elapsed time of Python functions and prints a report. 
+Here it traces the example program, Code/Python/func_abc.py
+
+# py_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   UserDict.py          func       ?                                       1
+   UserDict.py          func       DictMixin                               1
+   UserDict.py          func       IterableUserDict                        1
+   UserDict.py          func       UserDict                                1
+   UserDict.py          func       __init__                                1
+   __init__.py          func       ?                                       1
+   __init__.py          func       CodecRegistryError                      1
+   __init__.py          func       normalize_encoding                      1
+   __init__.py          func       search_function                         1
+   aliases.py           func       ?                                       1
+   ascii.py             func       ?                                       1
+   ascii.py             func       Codec                                   1
+   ascii.py             func       StreamConverter                         1
+   ascii.py             func       StreamReader                            1
+   ascii.py             func       StreamWriter                            1
+   ascii.py             func       getregentry                             1
+   codecs.py            func       ?                                       1
+   codecs.py            func       Codec                                   1
+   codecs.py            func       StreamReader                            1
+   codecs.py            func       StreamReaderWriter                      1
+   codecs.py            func       StreamRecoder                           1
+   codecs.py            func       StreamWriter                            1
+   copy_reg.py          func       ?                                       1
+   func_abc.py          func       ?                                       1
+   func_abc.py          func       func_a                                  1
+   func_abc.py          func       func_b                                  1
+   func_abc.py          func       func_c                                  1
+   linecache.py         func       ?                                       1
+   os.py                func       ?                                       1
+   os.py                func       _Environ                                1
+   os.py                func       __init__                                1
+   os.py                func       _get_exports_list                       1
+   posixpath.py         func       ?                                       1
+   posixpath.py         func       basename                                1
+   posixpath.py         func       dirname                                 1
+   site.py              func       ?                                       1
+   site.py              func       _Helper                                 1
+   site.py              func       _Printer                                1
+   site.py              func       _init_pathinfo                          1
+   site.py              func       abs__file__                             1
+   site.py              func       addsitepackages                         1
+   site.py              func       aliasmbcs                               1
+   site.py              func       execsitecustomize                       1
+   site.py              func       main                                    1
+   site.py              func       removeduppaths                          1
+   site.py              func       setcopyright                            1
+   site.py              func       setencoding                             1
+   site.py              func       sethelper                               1
+   site.py              func       setquit                                 1
+   stat.py              func       ?                                       1
+   types.py             func       ?                                       1
+   types.py             func       _C                                      1
+   warnings.py          func       ?                                       1
+   warnings.py          func       _OptionError                            1
+   warnings.py          func       _processoptions                         1
+   posixpath.py         func       exists                                  2
+   posixpath.py         func       split                                   2
+   site.py              func       addsitedir                              2
+   warnings.py          func       simplefilter                            2
+   copy_reg.py          func       constructor                             3
+   copy_reg.py          func       pickle                                  3
+   site.py              func       __init__                                3
+   site.py              func       addpackage                              3
+   stat.py              func       S_IFMT                                  6
+   stat.py              func       S_ISDIR                                 6
+   posixpath.py         func       isdir                                   8
+   os.py                func       _exists                                10
+   <string>             func       ?                                      11
+   posixpath.py         func       normcase                               14
+   site.py              func       makepath                               14
+   posixpath.py         func       join                                   20
+   posixpath.py         func       abspath                                22
+   posixpath.py         func       isabs                                  22
+   posixpath.py         func       normpath                               22
+   -                    total      -                                     230
+
+Exclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   ascii.py             func       StreamWriter                            2
+   ascii.py             func       StreamReader                            2
+   site.py              func       setencoding                             2
+   UserDict.py          func       IterableUserDict                        2
+   __init__.py          func       CodecRegistryError                      2
+   ascii.py             func       getregentry                             2
+   site.py              func       aliasmbcs                               2
+   warnings.py          func       _OptionError                            3
+   types.py             func       _C                                      3
+   site.py              func       sethelper                               3
+   warnings.py          func       _processoptions                         3
+   ascii.py             func       StreamConverter                         3
+   ascii.py             func       Codec                                   3
+   site.py              func       _Helper                                 3
+   site.py              func       setquit                                 4
+   codecs.py            func       StreamWriter                            4
+   UserDict.py          func       __init__                                4
+   site.py              func       _Printer                                4
+   codecs.py            func       Codec                                   4
+   os.py                func       _Environ                                4
+   codecs.py            func       StreamRecoder                           5
+   codecs.py            func       StreamReaderWriter                      6
+   codecs.py            func       StreamReader                            6
+   copy_reg.py          func       constructor                             7
+   __init__.py          func       normalize_encoding                      9
+   site.py              func       __init__                               10
+   warnings.py          func       simplefilter                           11
+   linecache.py         func       ?                                      11
+   posixpath.py         func       split                                  13
+   stat.py              func       ?                                      14
+   stat.py              func       S_IFMT                                 14
+   posixpath.py         func       dirname                                16
+   posixpath.py         func       basename                               24
+   os.py                func       __init__                               26
+   posixpath.py         func       normcase                               29
+   UserDict.py          func       UserDict                               32
+   posixpath.py         func       exists                                 37
+   aliases.py           func       ?                                      46
+   <string>             func       ?                                      56
+   copy_reg.py          func       pickle                                 59
+   UserDict.py          func       ?                                      84
+   site.py              func       addsitepackages                        85
+   posixpath.py         func       isabs                                  87
+   site.py              func       setcopyright                           94
+   stat.py              func       S_ISDIR                                98
+   posixpath.py         func       join                                  105
+   types.py             func       ?                                     106
+   site.py              func       removeduppaths                        115
+   ascii.py             func       ?                                     122
+   os.py                func       _get_exports_list                     136
+   site.py              func       _init_pathinfo                        155
+   site.py              func       abs__file__                           158
+   codecs.py            func       ?                                     182
+   UserDict.py          func       DictMixin                             184
+   __init__.py          func       search_function                       205
+   site.py              func       main                                  218
+   posixpath.py         func       normpath                              231
+   copy_reg.py          func       ?                                     239
+   posixpath.py         func       isdir                                 285
+   site.py              func       addpackage                            419
+   site.py              func       addsitedir                            473
+   warnings.py          func       ?                                     500
+   posixpath.py         func       ?                                     546
+   site.py              func       execsitecustomize                     558
+   site.py              func       makepath                              608
+   posixpath.py         func       abspath                               646
+   os.py                func       _exists                               925
+   __init__.py          func       ?                                    1289
+   os.py                func       ?                                    1473
+   site.py              func       ?                                    1510
+   func_abc.py          func       ?                                    1517
+   func_abc.py          func       func_c                            1000071
+   func_abc.py          func       func_a                            1005706
+   func_abc.py          func       func_b                            1010158
+   -                    total      -                                 3029815
+
+Inclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   ascii.py             func       StreamWriter                            2
+   ascii.py             func       StreamReader                            2
+   site.py              func       setencoding                             2
+   UserDict.py          func       IterableUserDict                        2
+   __init__.py          func       CodecRegistryError                      2
+   ascii.py             func       getregentry                             2
+   site.py              func       aliasmbcs                               2
+   warnings.py          func       _OptionError                            3
+   types.py             func       _C                                      3
+   site.py              func       sethelper                               3
+   warnings.py          func       _processoptions                         3
+   ascii.py             func       StreamConverter                         3
+   ascii.py             func       Codec                                   3
+   site.py              func       _Helper                                 3
+   site.py              func       setquit                                 4
+   codecs.py            func       StreamWriter                            4
+   UserDict.py          func       __init__                                4
+   site.py              func       _Printer                                4
+   codecs.py            func       Codec                                   4
+   os.py                func       _Environ                                4
+   codecs.py            func       StreamRecoder                           5
+   codecs.py            func       StreamReaderWriter                      6
+   codecs.py            func       StreamReader                            6
+   copy_reg.py          func       constructor                             7
+   __init__.py          func       normalize_encoding                      9
+   site.py              func       __init__                               10
+   warnings.py          func       simplefilter                           11
+   linecache.py         func       ?                                      11
+   posixpath.py         func       split                                  13
+   stat.py              func       ?                                      14
+   stat.py              func       S_IFMT                                 14
+   posixpath.py         func       dirname                                22
+   posixpath.py         func       normcase                               29
+   os.py                func       __init__                               31
+   posixpath.py         func       basename                               31
+   UserDict.py          func       UserDict                               32
+   posixpath.py         func       exists                                 37
+   aliases.py           func       ?                                      46
+   copy_reg.py          func       pickle                                 66
+   posixpath.py         func       isabs                                  87
+   posixpath.py         func       join                                  105
+   types.py             func       ?                                     109
+   stat.py              func       S_ISDIR                               113
+   site.py              func       setcopyright                          132
+   ascii.py             func       ?                                     133
+   os.py                func       _get_exports_list                     136
+   UserDict.py          func       DictMixin                             184
+   codecs.py            func       ?                                     210
+   posixpath.py         func       normpath                              231
+   UserDict.py          func       ?                                     303
+   __init__.py          func       search_function                       350
+   copy_reg.py          func       ?                                     377
+   posixpath.py         func       isdir                                 399
+   warnings.py          func       ?                                     530
+   site.py              func       abs__file__                           540
+   site.py              func       execsitecustomize                     558
+   posixpath.py         func       ?                                     560
+   site.py              func       removeduppaths                        565
+   site.py              func       _init_pathinfo                        899
+   os.py                func       _exists                               953
+   posixpath.py         func       abspath                               966
+   site.py              func       makepath                             1296
+   __init__.py          func       ?                                    1548
+   <string>             func       ?                                    1808
+   site.py              func       addsitepackages                      2471
+   site.py              func       addpackage                           2475
+   os.py                func       ?                                    3879
+   site.py              func       addsitedir                           4026
+   site.py              func       main                                 4532
+   site.py              func       ?                                    9930
+   func_abc.py          func       func_c                            1000071
+   func_abc.py          func       func_b                            2010230
+   func_abc.py          func       func_a                            3015936
+   func_abc.py          func       ?                                 3017454
+
+Counts shows us how many times each different function was called, and how
+many functions were called in total.
+
+The exclusive function elapsed times show the time that each function spent 
+processing code - while not in other functions.
+
+The inclusive function elapsed times show the time that each function spent
+processing code, including the time spent in other calls.
+
+These elapsed times are the absolute time from when the function began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/py_cpudist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_cpudist_example.txt
new file mode 100644
index 0000000..3272e90
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_cpudist_example.txt
@@ -0,0 +1,966 @@
+The following are examples of py_cpudist.d.
+
+This script traces the on-CPU time of Python functions and prints a report
+in the form of a histogram.  Here it traces the example program,
+Code/Python/func_slow.py
+
+# py_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive function on-CPU times (us),
+   UserDict.py, func, IterableUserDict 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   __init__.py, func, CodecRegistryError 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   ascii.py, func, StreamReader 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   ascii.py, func, StreamWriter 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   ascii.py, func, getregentry 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   site.py, func, aliasmbcs 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   site.py, func, sethelper 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   types.py, func, _C 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   warnings.py, func, _OptionError 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   UserDict.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, Codec 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, StreamConverter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   codecs.py, func, Codec 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   codecs.py, func, StreamWriter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   os.py, func, _Environ 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   posixpath.py, func, basename 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   posixpath.py, func, dirname 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, _Helper 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, _Printer 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, setencoding 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, setquit 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   warnings.py, func, _processoptions 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   copy_reg.py, func, constructor 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               2 |                                         0        
+
+   codecs.py, func, StreamReader 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamReaderWriter 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamRecoder 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   func_slow.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   os.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   site.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4 |                                         0        
+
+   stat.py, func, S_IFMT 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+               2 |                                         0        
+
+   warnings.py, func, simplefilter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+
+   __init__.py, func, normalize_encoding 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   copy_reg.py, func, pickle 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |@@@@@@@@@@@@@                            1        
+               8 |                                         0        
+
+   linecache.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   posixpath.py, func, split 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+               8 |                                         0        
+
+   stat.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   stat.py, func, S_ISDIR 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+               4 |                                         0        
+
+   posixpath.py, func, normcase 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14       
+               2 |                                         0        
+
+   UserDict.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   UserDict.py, func, UserDict 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   site.py, func, _init_pathinfo 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   site.py, func, addsitepackages 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   site.py, func, setcopyright 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   <string>, func, ? 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@                       5        
+               2 |@@@@@@@@@@@@@@@@@@                       5        
+               4 |@@@@                                     1        
+               8 |                                         0        
+
+   posixpath.py, func, isabs 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     20       
+               2 |@@@@                                     2        
+               4 |                                         0        
+
+   aliases.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   ascii.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   posixpath.py, func, exists 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   site.py, func, abs__file__ 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   site.py, func, removeduppaths 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   site.py, func, makepath 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14       
+               8 |                                         0        
+
+   posixpath.py, func, join 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@                 12       
+               2 |@@@@@@@@@@                               5        
+               4 |@@@@                                     2        
+               8 |                                         0        
+              16 |                                         0        
+              32 |@@                                       1        
+              64 |                                         0        
+
+   codecs.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   site.py, func, main 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   types.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   posixpath.py, func, abspath 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 22       
+               8 |                                         0        
+
+   UserDict.py, func, DictMixin 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   __init__.py, func, search_function 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   copy_reg.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   os.py, func, _get_exports_list 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   posixpath.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   warnings.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   posixpath.py, func, isdir 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@                                    1        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           6        
+              32 |                                         0        
+              64 |@@@@@                                    1        
+             128 |                                         0        
+
+   posixpath.py, func, normpath 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@                                       1        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   21       
+              16 |                                         0        
+
+   site.py, func, addpackage 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+             128 |@@@@@@@@@@@@@                            1        
+             256 |                                         0        
+
+   site.py, func, addsitedir 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+             256 |                                         0        
+
+   site.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   site.py, func, execsitecustomize 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   os.py, func, _exists 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     9        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |@@@@                                     1        
+            1024 |                                         0        
+
+   __init__.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   os.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   func_slow.py, func, func_a 
+           value  ------------- Distribution ------------- count    
+           65536 |                                         0        
+          131072 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+          262144 |                                         0        
+
+   func_slow.py, func, func_b 
+           value  ------------- Distribution ------------- count    
+          131072 |                                         0        
+          262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+          524288 |                                         0        
+
+   func_slow.py, func, func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+
+Inclusive function on-CPU times (us),
+   UserDict.py, func, IterableUserDict 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   __init__.py, func, CodecRegistryError 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   ascii.py, func, StreamReader 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   ascii.py, func, StreamWriter 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   ascii.py, func, getregentry 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   site.py, func, aliasmbcs 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   site.py, func, sethelper 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   types.py, func, _C 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   warnings.py, func, _OptionError 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   UserDict.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, Codec 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, StreamConverter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   codecs.py, func, Codec 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   codecs.py, func, StreamWriter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   os.py, func, _Environ 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, _Helper 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, _Printer 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, setencoding 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, setquit 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   warnings.py, func, _processoptions 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   copy_reg.py, func, constructor 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               2 |                                         0        
+
+   codecs.py, func, StreamReader 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamReaderWriter 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamRecoder 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   site.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4 |                                         0        
+
+   stat.py, func, S_IFMT 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+               2 |                                         0        
+
+   warnings.py, func, simplefilter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+
+   __init__.py, func, normalize_encoding 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   linecache.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   os.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   posixpath.py, func, basename 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   posixpath.py, func, dirname 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   posixpath.py, func, split 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+               8 |                                         0        
+
+   stat.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   copy_reg.py, func, pickle 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               8 |                                         0        
+
+   posixpath.py, func, normcase 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14       
+               2 |                                         0        
+
+   UserDict.py, func, UserDict 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   stat.py, func, S_ISDIR 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+               4 |@@@@@@@@@@@@@                            2        
+               8 |                                         0        
+
+   posixpath.py, func, isabs 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     20       
+               2 |@@@@                                     2        
+               4 |                                         0        
+
+   aliases.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   ascii.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   posixpath.py, func, exists 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   site.py, func, setcopyright 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   posixpath.py, func, join 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@                 12       
+               2 |@@@@@@@@@@                               5        
+               4 |@@@@                                     2        
+               8 |                                         0        
+              16 |                                         0        
+              32 |@@                                       1        
+              64 |                                         0        
+
+   codecs.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   types.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   UserDict.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   UserDict.py, func, DictMixin 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   __init__.py, func, search_function 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   os.py, func, _get_exports_list 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   posixpath.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   site.py, func, abs__file__ 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   site.py, func, removeduppaths 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   warnings.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   posixpath.py, func, normpath 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@                                       1        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   21       
+              16 |                                         0        
+
+   posixpath.py, func, isdir 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@      7        
+              32 |                                         0        
+              64 |@@@@@                                    1        
+             128 |                                         0        
+
+   posixpath.py, func, abspath 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          17       
+              16 |@@@@@@@@@                                5        
+              32 |                                         0        
+
+   copy_reg.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   site.py, func, _init_pathinfo 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   site.py, func, makepath 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    13       
+              32 |                                         0        
+              64 |@@@                                      1        
+             128 |                                         0        
+
+   site.py, func, execsitecustomize 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   <string>, func, ? 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@                       5        
+               2 |@@@@@@@@@@@@@@@@@@                       5        
+               4 |                                         0        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |@@@@                                     1        
+            1024 |                                         0        
+
+   os.py, func, _exists 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@         8        
+              32 |@@@@                                     1        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |@@@@                                     1        
+            1024 |                                         0        
+
+   site.py, func, addpackage 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@                            1        
+            1024 |                                         0        
+
+   __init__.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   site.py, func, addsitepackages 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   site.py, func, addsitedir 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@                     1        
+            1024 |@@@@@@@@@@@@@@@@@@@@                     1        
+            2048 |                                         0        
+
+   os.py, func, ? 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+   site.py, func, main 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+   site.py, func, ? 
+           value  ------------- Distribution ------------- count    
+            2048 |                                         0        
+            4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            8192 |                                         0        
+
+   func_slow.py, func, func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   func_slow.py, func, ? 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   func_slow.py, func, func_a 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   func_slow.py, func, func_b 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+The first section, Exclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, not including time spent in subroutines.  You can
+see here that func_a had one instance of being on-CPU between 0.13 seconds and
+0.25 seconds. 
+
+The second section, Inclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, including that time spent in subroutines called
+by those functions.  You can see that here func_a had an instance of being
+on-CPU between 1.0 seconds and 2.1 seconds.
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/py_cputime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_cputime_example.txt
new file mode 100644
index 0000000..2f25922
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_cputime_example.txt
@@ -0,0 +1,262 @@
+The following are examples of py_cputime.d.
+
+This script traces the on-CPU time of JavaScript functions and prints a
+report. Here it traces the example program, Code/Python/func_slow.py
+
+# py_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   UserDict.py          func       ?                                       1
+   UserDict.py          func       DictMixin                               1
+   UserDict.py          func       IterableUserDict                        1
+   UserDict.py          func       UserDict                                1
+   UserDict.py          func       __init__                                1
+   __init__.py          func       ?                                       1
+   __init__.py          func       CodecRegistryError                      1
+   __init__.py          func       normalize_encoding                      1
+   __init__.py          func       search_function                         1
+   aliases.py           func       ?                                       1
+   ascii.py             func       ?                                       1
+   ascii.py             func       Codec                                   1
+   ascii.py             func       StreamConverter                         1
+   ascii.py             func       StreamReader                            1
+   ascii.py             func       StreamWriter                            1
+   ascii.py             func       getregentry                             1
+   codecs.py            func       ?                                       1
+   codecs.py            func       Codec                                   1
+   codecs.py            func       StreamReader                            1
+   codecs.py            func       StreamReaderWriter                      1
+   codecs.py            func       StreamRecoder                           1
+   codecs.py            func       StreamWriter                            1
+   copy_reg.py          func       ?                                       1
+   func_slow.py         func       ?                                       1
+   func_slow.py         func       func_a                                  1
+   func_slow.py         func       func_b                                  1
+   func_slow.py         func       func_c                                  1
+   linecache.py         func       ?                                       1
+   os.py                func       ?                                       1
+   os.py                func       _Environ                                1
+   os.py                func       __init__                                1
+   os.py                func       _get_exports_list                       1
+   posixpath.py         func       ?                                       1
+   posixpath.py         func       basename                                1
+   posixpath.py         func       dirname                                 1
+   site.py              func       ?                                       1
+   site.py              func       _Helper                                 1
+   site.py              func       _Printer                                1
+   site.py              func       _init_pathinfo                          1
+   site.py              func       abs__file__                             1
+   site.py              func       addsitepackages                         1
+   site.py              func       aliasmbcs                               1
+   site.py              func       execsitecustomize                       1
+   site.py              func       main                                    1
+   site.py              func       removeduppaths                          1
+   site.py              func       setcopyright                            1
+   site.py              func       setencoding                             1
+   site.py              func       sethelper                               1
+   site.py              func       setquit                                 1
+   stat.py              func       ?                                       1
+   types.py             func       ?                                       1
+   types.py             func       _C                                      1
+   warnings.py          func       ?                                       1
+   warnings.py          func       _OptionError                            1
+   warnings.py          func       _processoptions                         1
+   posixpath.py         func       exists                                  2
+   posixpath.py         func       split                                   2
+   site.py              func       addsitedir                              2
+   warnings.py          func       simplefilter                            2
+   copy_reg.py          func       constructor                             3
+   copy_reg.py          func       pickle                                  3
+   site.py              func       __init__                                3
+   site.py              func       addpackage                              3
+   stat.py              func       S_IFMT                                  6
+   stat.py              func       S_ISDIR                                 6
+   posixpath.py         func       isdir                                   8
+   os.py                func       _exists                                10
+   <string>             func       ?                                      11
+   posixpath.py         func       normcase                               14
+   site.py              func       makepath                               14
+   posixpath.py         func       join                                   20
+   posixpath.py         func       abspath                                22
+   posixpath.py         func       isabs                                  22
+   posixpath.py         func       normpath                               22
+   -                    total      -                                     230
+
+Exclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   ascii.py             func       StreamWriter                            1
+   __init__.py          func       CodecRegistryError                      1
+   ascii.py             func       StreamReader                            1
+   site.py              func       setencoding                             1
+   warnings.py          func       _OptionError                            1
+   UserDict.py          func       IterableUserDict                        1
+   site.py              func       aliasmbcs                               1
+   warnings.py          func       _processoptions                         1
+   types.py             func       _C                                      1
+   ascii.py             func       getregentry                             1
+   site.py              func       _Helper                                 2
+   ascii.py             func       Codec                                   2
+   ascii.py             func       StreamConverter                         2
+   site.py              func       sethelper                               2
+   codecs.py            func       Codec                                   2
+   UserDict.py          func       __init__                                3
+   posixpath.py         func       dirname                                 3
+   posixpath.py         func       basename                                3
+   site.py              func       _Printer                                3
+   os.py                func       _Environ                                3
+   codecs.py            func       StreamWriter                            3
+   site.py              func       setquit                                 3
+   copy_reg.py          func       constructor                             3
+   codecs.py            func       StreamRecoder                           4
+   codecs.py            func       StreamReaderWriter                      5
+   codecs.py            func       StreamReader                            5
+   os.py                func       __init__                                6
+   func_slow.py         func       ?                                       6
+   __init__.py          func       normalize_encoding                      7
+   site.py              func       __init__                                7
+   linecache.py         func       ?                                       7
+   warnings.py          func       simplefilter                            7
+   stat.py              func       S_IFMT                                  9
+   stat.py              func       ?                                      10
+   copy_reg.py          func       pickle                                 12
+   posixpath.py         func       split                                  12
+   posixpath.py         func       normcase                               15
+   stat.py              func       S_ISDIR                                17
+   site.py              func       addsitepackages                        20
+   UserDict.py          func       ?                                      20
+   site.py              func       setcopyright                           23
+   site.py              func       main                                   24
+   <string>             func       ?                                      28
+   UserDict.py          func       UserDict                               31
+   site.py              func       _init_pathinfo                         33
+   posixpath.py         func       exists                                 35
+   ascii.py             func       ?                                      38
+   posixpath.py         func       isabs                                  42
+   aliases.py           func       ?                                      43
+   site.py              func       removeduppaths                         51
+   site.py              func       abs__file__                            56
+   codecs.py            func       ?                                      75
+   types.py             func       ?                                      83
+   posixpath.py         func       join                                   85
+   site.py              func       makepath                               97
+   posixpath.py         func       abspath                                99
+   os.py                func       _get_exports_list                     132
+   __init__.py          func       search_function                       142
+   warnings.py          func       ?                                     171
+   UserDict.py          func       DictMixin                             182
+   posixpath.py         func       ?                                     192
+   copy_reg.py          func       ?                                     196
+   posixpath.py         func       normpath                              209
+   posixpath.py         func       isdir                                 255
+   site.py              func       addpackage                            375
+   site.py              func       addsitedir                            506
+   site.py              func       execsitecustomize                     540
+   site.py              func       ?                                     725
+   os.py                func       _exists                               802
+   os.py                func       ?                                    1138
+   __init__.py          func       ?                                    1199
+   func_slow.py         func       func_a                             229669
+   func_slow.py         func       func_b                             456371
+   func_slow.py         func       func_c                             686056
+   -                    total      -                                 1379951
+
+Inclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   ascii.py             func       StreamWriter                            1
+   __init__.py          func       CodecRegistryError                      1
+   ascii.py             func       StreamReader                            1
+   site.py              func       setencoding                             1
+   warnings.py          func       _OptionError                            1
+   UserDict.py          func       IterableUserDict                        1
+   site.py              func       aliasmbcs                               1
+   warnings.py          func       _processoptions                         1
+   types.py             func       _C                                      1
+   ascii.py             func       getregentry                             1
+   site.py              func       _Helper                                 2
+   ascii.py             func       Codec                                   2
+   ascii.py             func       StreamConverter                         2
+   site.py              func       sethelper                               2
+   codecs.py            func       Codec                                   2
+   UserDict.py          func       __init__                                3
+   site.py              func       _Printer                                3
+   os.py                func       _Environ                                3
+   codecs.py            func       StreamWriter                            3
+   site.py              func       setquit                                 3
+   copy_reg.py          func       constructor                             3
+   codecs.py            func       StreamRecoder                           4
+   codecs.py            func       StreamReaderWriter                      5
+   codecs.py            func       StreamReader                            5
+   __init__.py          func       normalize_encoding                      7
+   site.py              func       __init__                                7
+   linecache.py         func       ?                                       7
+   warnings.py          func       simplefilter                            7
+   stat.py              func       S_IFMT                                  9
+   os.py                func       __init__                                9
+   posixpath.py         func       basename                                9
+   posixpath.py         func       dirname                                10
+   stat.py              func       ?                                      10
+   posixpath.py         func       split                                  12
+   posixpath.py         func       normcase                               15
+   copy_reg.py          func       pickle                                 15
+   stat.py              func       S_ISDIR                                26
+   UserDict.py          func       UserDict                               31
+   posixpath.py         func       exists                                 35
+   posixpath.py         func       isabs                                  42
+   aliases.py           func       ?                                      43
+   site.py              func       setcopyright                           44
+   ascii.py             func       ?                                      45
+   types.py             func       ?                                      85
+   posixpath.py         func       join                                   85
+   codecs.py            func       ?                                      97
+   os.py                func       _get_exports_list                     132
+   site.py              func       removeduppaths                        171
+   UserDict.py          func       DictMixin                             182
+   site.py              func       abs__file__                           184
+   warnings.py          func       ?                                     190
+   __init__.py          func       search_function                       196
+   posixpath.py         func       ?                                     202
+   posixpath.py         func       normpath                              209
+   UserDict.py          func       ?                                     235
+   posixpath.py         func       isdir                                 281
+   copy_reg.py          func       ?                                     288
+   posixpath.py         func       abspath                               351
+   site.py              func       _init_pathinfo                        392
+   site.py              func       makepath                              395
+   site.py              func       execsitecustomize                     540
+   os.py                func       _exists                               819
+   <string>             func       ?                                     973
+   __init__.py          func       ?                                    1341
+   site.py              func       addpackage                           1470
+   site.py              func       addsitepackages                      1562
+   site.py              func       addsitedir                           2420
+   site.py              func       main                                 2546
+   os.py                func       ?                                    2839
+   site.py              func       ?                                    6118
+   func_slow.py         func       func_c                             686056
+   func_slow.py         func       func_b                            1142427
+   func_slow.py         func       func_a                            1372097
+   func_slow.py         func       ?                                 1372104
+
+You can see the results are printed in three sections.
+
+The first section reports how many times each function was called.
+
+The exclusive function on-CPU times shows, amongst other results that func_a
+spent around 0.22 seconds on-CPU.  This times excludes time spent in
+other functions.
+
+The inclusive function on-CPU times show that func_a spent around 1.4
+seconds on-CPU.  This includes the time spent in other functions called.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/py_flow_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_flow_example.txt
new file mode 100644
index 0000000..d62269e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_flow_example.txt
@@ -0,0 +1,485 @@
+The following are examples of py_flow.d.
+
+This is a simple script to trace the flow of Python functions.
+Here it traces the example program, Code/Python/func_abc.py
+
+# py_flow.d
+  C TIME(us)         FILE             -- FUNC
+  0 3064371810154    site.py          -> ?
+  0 3064371830069    os.py              -> ?
+  0 3064371840076    posixpath.py         -> ?
+  0 3064371840298    stat.py                -> ?
+  0 3064371840319    stat.py                <- ?
+  0 3064371840345    posixpath.py         <- ?
+  0 3064371840364    os.py                -> _get_exports_list
+  0 3064371840510    os.py                <- _get_exports_list
+  0 3064371849994    UserDict.py          -> ?
+  0 3064371850011    UserDict.py            -> UserDict
+  0 3064371850051    UserDict.py            <- UserDict
+  0 3064371850067    UserDict.py            -> IterableUserDict
+  0 3064371850075    UserDict.py            <- IterableUserDict
+  0 3064371850088    UserDict.py            -> DictMixin
+  0 3064371850291    UserDict.py            <- DictMixin
+  0 3064371850300    UserDict.py          <- ?
+  0 3064371850320    os.py                -> _Environ
+  0 3064371850330    os.py                <- _Environ
+  0 3064371850342    os.py                -> __init__
+  0 3064371850353    UserDict.py            -> __init__
+  0 3064371850363    UserDict.py            <- __init__
+  0 3064371850372    os.py                <- __init__
+  0 3064371850381    os.py                -> _exists
+  0 3064371851137    <string>               -> ?
+  0 3064371851146    <string>               <- ?
+  0 3064371851155    os.py                <- _exists
+  0 3064371851162    os.py                -> _exists
+  0 3064371851186    <string>               -> ?
+  0 3064371851195    <string>               <- ?
+  0 3064371851213    os.py                <- _exists
+  0 3064371851220    os.py                -> _exists
+  0 3064371851242    <string>               -> ?
+  0 3064371851249    <string>               <- ?
+  0 3064371851257    os.py                <- _exists
+  0 3064371851266    os.py                -> _exists
+  0 3064371851286    <string>               -> ?
+  0 3064371851293    <string>               <- ?
+  0 3064371851300    os.py                <- _exists
+  0 3064371851310    os.py                -> _exists
+  0 3064371851330    <string>               -> ?
+  0 3064371851337    <string>               <- ?
+  0 3064371851344    os.py                <- _exists
+  0 3064371851354    os.py                -> _exists
+  0 3064371851374    <string>               -> ?
+  0 3064371851381    <string>               <- ?
+  0 3064371851388    os.py                <- _exists
+  0 3064371851395    os.py                -> _exists
+  0 3064371851415    <string>               -> ?
+  0 3064371851423    <string>               <- ?
+  0 3064371851436    os.py                <- _exists
+  0 3064371851445    os.py                -> _exists
+  0 3064371851465    <string>               -> ?
+  0 3064371851473    <string>               <- ?
+  0 3064371851485    os.py                <- _exists
+  0 3064371851493    os.py                -> _exists
+  0 3064371851514    <string>               -> ?
+  0 3064371851522    <string>               <- ?
+  0 3064371851534    os.py                <- _exists
+  0 3064371851785    copy_reg.py          -> ?
+  0 3064371851996    types.py               -> ?
+  0 3064371852063    types.py                 -> _C
+  0 3064371852073    types.py                 <- _C
+  0 3064371852108    types.py               <- ?
+  0 3064371852129    copy_reg.py            -> pickle
+  0 3064371852139    copy_reg.py              -> constructor
+  0 3064371852147    copy_reg.py              <- constructor
+  0 3064371852155    copy_reg.py            <- pickle
+  0 3064371852166    copy_reg.py          <- ?
+  0 3064371852179    copy_reg.py          -> pickle
+  0 3064371852188    copy_reg.py            -> constructor
+  0 3064371852196    copy_reg.py            <- constructor
+  0 3064371852204    copy_reg.py          <- pickle
+  0 3064371852212    copy_reg.py          -> pickle
+  0 3064371852221    copy_reg.py            -> constructor
+  0 3064371852229    copy_reg.py            <- constructor
+  0 3064371852236    copy_reg.py          <- pickle
+  0 3064371852244    os.py                -> _exists
+  0 3064371852269    <string>               -> ?
+  0 3064371852277    <string>               <- ?
+  0 3064371852289    os.py                <- _exists
+  0 3064371852297    os.py              <- ?
+  0 3064371852330    site.py            -> _Printer
+  0 3064371852340    site.py            <- _Printer
+  0 3064371852376    site.py            -> _Helper
+  0 3064371852384    site.py            <- _Helper
+  0 3064371852416    site.py            -> main
+  0 3064371852423    site.py              -> abs__file__
+  0 3064371852434    posixpath.py           -> abspath
+  0 3064371852442    posixpath.py             -> isabs
+  0 3064371852452    posixpath.py             <- isabs
+  0 3064371852460    posixpath.py             -> normpath
+  0 3064371852482    posixpath.py             <- normpath
+  0 3064371852490    posixpath.py           <- abspath
+  0 3064371852504    posixpath.py           -> abspath
+  0 3064371852511    posixpath.py             -> isabs
+  0 3064371852520    posixpath.py             <- isabs
+  0 3064371852527    posixpath.py             -> normpath
+  0 3064371852543    posixpath.py             <- normpath
+  0 3064371852552    posixpath.py           <- abspath
+  0 3064371852560    posixpath.py           -> abspath
+  0 3064371852567    posixpath.py             -> isabs
+  0 3064371852576    posixpath.py             <- isabs
+  0 3064371852583    posixpath.py             -> normpath
+  0 3064371852598    posixpath.py             <- normpath
+  0 3064371852607    posixpath.py           <- abspath
+  0 3064371852615    posixpath.py           -> abspath
+  0 3064371852622    posixpath.py             -> isabs
+  0 3064371852631    posixpath.py             <- isabs
+  0 3064371852638    posixpath.py             -> normpath
+  0 3064371852653    posixpath.py             <- normpath
+  0 3064371852661    posixpath.py           <- abspath
+  0 3064371852674    posixpath.py           -> abspath
+  0 3064371852682    posixpath.py             -> isabs
+  0 3064371852690    posixpath.py             <- isabs
+  0 3064371852697    posixpath.py             -> normpath
+  0 3064371852713    posixpath.py             <- normpath
+  0 3064371852721    posixpath.py           <- abspath
+  0 3064371852741    posixpath.py           -> abspath
+  0 3064371852748    posixpath.py             -> isabs
+  0 3064371852757    posixpath.py             <- isabs
+  0 3064371852764    posixpath.py             -> normpath
+  0 3064371852779    posixpath.py             <- normpath
+  0 3064371852787    posixpath.py           <- abspath
+  0 3064371852804    posixpath.py           -> abspath
+  0 3064371852811    posixpath.py             -> isabs
+  0 3064371852819    posixpath.py             <- isabs
+  0 3064371852826    posixpath.py             -> normpath
+  0 3064371852842    posixpath.py             <- normpath
+  0 3064371852850    posixpath.py           <- abspath
+  0 3064371852858    posixpath.py           -> abspath
+  0 3064371852865    posixpath.py             -> isabs
+  0 3064371852874    posixpath.py             <- isabs
+  0 3064371852881    posixpath.py             -> normpath
+  0 3064371852896    posixpath.py             <- normpath
+  0 3064371852904    posixpath.py           <- abspath
+  0 3064371852915    site.py              <- abs__file__
+  0 3064371852922    site.py              -> removeduppaths
+  0 3064371852931    site.py                -> makepath
+  0 3064371852940    posixpath.py             -> join
+  0 3064371852948    posixpath.py             <- join
+  0 3064371852955    posixpath.py             -> abspath
+  0 3064371852963    posixpath.py               -> isabs
+  0 3064371852972    posixpath.py               <- isabs
+  0 3064371852980    posixpath.py               -> normpath
+  0 3064371852995    posixpath.py               <- normpath
+  0 3064371853002    posixpath.py             <- abspath
+  0 3064371853010    posixpath.py             -> normcase
+  0 3064371853018    posixpath.py             <- normcase
+  0 3064371853025    site.py                <- makepath
+  0 3064371853065    site.py                -> makepath
+  0 3064371853073    posixpath.py             -> join
+  0 3064371853081    posixpath.py             <- join
+  0 3064371853088    posixpath.py             -> abspath
+  0 3064371853096    posixpath.py               -> isabs
+  0 3064371853104    posixpath.py               <- isabs
+  0 3064371853111    posixpath.py               -> normpath
+  0 3064371853126    posixpath.py               <- normpath
+  0 3064371853134    posixpath.py             <- abspath
+  0 3064371853142    posixpath.py             -> normcase
+  0 3064371853150    posixpath.py             <- normcase
+  0 3064371853157    site.py                <- makepath
+  0 3064371853165    site.py                -> makepath
+  0 3064371853173    posixpath.py             -> join
+  0 3064371853181    posixpath.py             <- join
+  0 3064371853188    posixpath.py             -> abspath
+  0 3064371853195    posixpath.py               -> isabs
+  0 3064371853203    posixpath.py               <- isabs
+  0 3064371853210    posixpath.py               -> normpath
+  0 3064371853226    posixpath.py               <- normpath
+  0 3064371853234    posixpath.py             <- abspath
+  0 3064371853241    posixpath.py             -> normcase
+  0 3064371853249    posixpath.py             <- normcase
+  0 3064371853256    site.py                <- makepath
+  0 3064371853265    site.py                -> makepath
+  0 3064371853272    posixpath.py             -> join
+  0 3064371853280    posixpath.py             <- join
+  0 3064371853287    posixpath.py             -> abspath
+  0 3064371853294    posixpath.py               -> isabs
+  0 3064371853303    posixpath.py               <- isabs
+  0 3064371853310    posixpath.py               -> normpath
+  0 3064371853325    posixpath.py               <- normpath
+  0 3064371853333    posixpath.py             <- abspath
+  0 3064371853341    posixpath.py             -> normcase
+  0 3064371853348    posixpath.py             <- normcase
+  0 3064371853356    site.py                <- makepath
+  0 3064371853364    site.py                -> makepath
+  0 3064371853372    posixpath.py             -> join
+  0 3064371853380    posixpath.py             <- join
+  0 3064371853387    posixpath.py             -> abspath
+  0 3064371853394    posixpath.py               -> isabs
+  0 3064371853402    posixpath.py               <- isabs
+  0 3064371853409    posixpath.py               -> normpath
+  0 3064371853425    posixpath.py               <- normpath
+  0 3064371853433    posixpath.py             <- abspath
+  0 3064371853440    posixpath.py             -> normcase
+  0 3064371853448    posixpath.py             <- normcase
+  0 3064371853455    site.py                <- makepath
+  0 3064371853466    site.py              <- removeduppaths
+  0 3064371853476    posixpath.py         -> basename
+  0 3064371853484    posixpath.py           -> split
+  0 3064371853498    posixpath.py           <- split
+  0 3064371853505    posixpath.py         <- basename
+  0 3064371853513    site.py              -> addsitepackages
+  0 3064371853524    posixpath.py           -> join
+  0 3064371853538    posixpath.py           <- join
+  0 3064371853546    posixpath.py           -> join
+  0 3064371853557    posixpath.py           <- join
+  0 3064371853566    posixpath.py           -> isdir
+  0 3064371853597    stat.py                  -> S_ISDIR
+  0 3064371853604    stat.py                    -> S_IFMT
+  0 3064371853612    stat.py                    <- S_IFMT
+  0 3064371853620    stat.py                  <- S_ISDIR
+  0 3064371853627    posixpath.py           <- isdir
+  0 3064371853636    site.py                -> addsitedir
+  0 3064371853643    site.py                  -> makepath
+  0 3064371853651    posixpath.py               -> join
+  0 3064371853659    posixpath.py               <- join
+  0 3064371853666    posixpath.py               -> abspath
+  0 3064371853674    posixpath.py                 -> isabs
+  0 3064371853683    posixpath.py                 <- isabs
+  0 3064371853691    posixpath.py                 -> normpath
+  0 3064371853707    posixpath.py                 <- normpath
+  0 3064371853715    posixpath.py               <- abspath
+  0 3064371853723    posixpath.py               -> normcase
+  0 3064371853730    posixpath.py               <- normcase
+  0 3064371853738    site.py                  <- makepath
+  0 3064371853938    site.py                  -> addpackage
+  0 3064371853948    posixpath.py               -> join
+  0 3064371853958    posixpath.py               <- join
+  0 3064371854087    <string>                   -> ?
+  0 3064371854098    site.py                      -> addsitedir
+  0 3064371854106    site.py                        -> _init_pathinfo
+  0 3064371854115    posixpath.py                     -> isdir
+  0 3064371854195    posixpath.py                     <- isdir
+  0 3064371854204    posixpath.py                     -> isdir
+  0 3064371854224    stat.py                            -> S_ISDIR
+  0 3064371854232    stat.py                              -> S_IFMT
+  0 3064371854240    stat.py                              <- S_IFMT
+  0 3064371854247    stat.py                            <- S_ISDIR
+  0 3064371854254    posixpath.py                     <- isdir
+  0 3064371854262    site.py                          -> makepath
+  0 3064371854271    posixpath.py                       -> join
+  0 3064371854279    posixpath.py                       <- join
+  0 3064371854286    posixpath.py                       -> abspath
+  0 3064371854293    posixpath.py                         -> isabs
+  0 3064371854302    posixpath.py                         <- isabs
+  0 3064371854309    posixpath.py                         -> normpath
+  0 3064371854325    posixpath.py                         <- normpath
+  0 3064371854333    posixpath.py                       <- abspath
+  0 3064371854341    posixpath.py                       -> normcase
+  0 3064371854349    posixpath.py                       <- normcase
+  0 3064371854356    site.py                          <- makepath
+  0 3064371854364    posixpath.py                     -> isdir
+  0 3064371854386    stat.py                            -> S_ISDIR
+  0 3064371854393    stat.py                              -> S_IFMT
+  0 3064371854400    stat.py                              <- S_IFMT
+  0 3064371854408    stat.py                            <- S_ISDIR
+  0 3064371854415    posixpath.py                     <- isdir
+  0 3064371854423    site.py                          -> makepath
+  0 3064371854431    posixpath.py                       -> join
+  0 3064371854438    posixpath.py                       <- join
+  0 3064371854446    posixpath.py                       -> abspath
+  0 3064371854453    posixpath.py                         -> isabs
+  0 3064371854461    posixpath.py                         <- isabs
+  0 3064371854469    posixpath.py                         -> normpath
+  0 3064371854485    posixpath.py                         <- normpath
+  0 3064371854493    posixpath.py                       <- abspath
+  0 3064371854500    posixpath.py                       -> normcase
+  0 3064371854508    posixpath.py                       <- normcase
+  0 3064371854516    site.py                          <- makepath
+  0 3064371854524    posixpath.py                     -> isdir
+  0 3064371854556    stat.py                            -> S_ISDIR
+  0 3064371854563    stat.py                              -> S_IFMT
+  0 3064371854571    stat.py                              <- S_IFMT
+  0 3064371854578    stat.py                            <- S_ISDIR
+  0 3064371854585    posixpath.py                     <- isdir
+  0 3064371854593    site.py                          -> makepath
+  0 3064371854601    posixpath.py                       -> join
+  0 3064371854609    posixpath.py                       <- join
+  0 3064371854616    posixpath.py                       -> abspath
+  0 3064371854624    posixpath.py                         -> isabs
+  0 3064371854632    posixpath.py                         <- isabs
+  0 3064371854639    posixpath.py                         -> normpath
+  0 3064371854655    posixpath.py                         <- normpath
+  0 3064371854663    posixpath.py                       <- abspath
+  0 3064371854671    posixpath.py                       -> normcase
+  0 3064371854679    posixpath.py                       <- normcase
+  0 3064371854686    site.py                          <- makepath
+  0 3064371854694    posixpath.py                     -> isdir
+  0 3064371854715    stat.py                            -> S_ISDIR
+  0 3064371854722    stat.py                              -> S_IFMT
+  0 3064371854730    stat.py                              <- S_IFMT
+  0 3064371854737    stat.py                            <- S_ISDIR
+  0 3064371854744    posixpath.py                     <- isdir
+  0 3064371854752    site.py                          -> makepath
+  0 3064371854759    posixpath.py                       -> join
+  0 3064371854767    posixpath.py                       <- join
+  0 3064371854774    posixpath.py                       -> abspath
+  0 3064371854782    posixpath.py                         -> isabs
+  0 3064371854790    posixpath.py                         <- isabs
+  0 3064371854797    posixpath.py                         -> normpath
+  0 3064371854813    posixpath.py                         <- normpath
+  0 3064371854821    posixpath.py                       <- abspath
+  0 3064371854829    posixpath.py                       -> normcase
+  0 3064371854837    posixpath.py                       <- normcase
+  0 3064371854844    site.py                          <- makepath
+  0 3064371854852    posixpath.py                     -> isdir
+  0 3064371854872    stat.py                            -> S_ISDIR
+  0 3064371854879    stat.py                              -> S_IFMT
+  0 3064371854887    stat.py                              <- S_IFMT
+  0 3064371854894    stat.py                            <- S_ISDIR
+  0 3064371854901    posixpath.py                     <- isdir
+  0 3064371854909    site.py                          -> makepath
+  0 3064371854917    posixpath.py                       -> join
+  0 3064371854925    posixpath.py                       <- join
+  0 3064371854932    posixpath.py                       -> abspath
+  0 3064371854939    posixpath.py                         -> isabs
+  0 3064371854947    posixpath.py                         <- isabs
+  0 3064371854954    posixpath.py                         -> normpath
+  0 3064371854970    posixpath.py                         <- normpath
+  0 3064371854978    posixpath.py                       <- abspath
+  0 3064371854986    posixpath.py                       -> normcase
+  0 3064371854994    posixpath.py                       <- normcase
+  0 3064371855001    site.py                          <- makepath
+  0 3064371855009    site.py                        <- _init_pathinfo
+  0 3064371855016    site.py                        -> makepath
+  0 3064371855024    posixpath.py                     -> join
+  0 3064371855032    posixpath.py                     <- join
+  0 3064371855039    posixpath.py                     -> abspath
+  0 3064371855047    posixpath.py                       -> isabs
+  0 3064371855055    posixpath.py                       <- isabs
+  0 3064371855063    posixpath.py                       -> normpath
+  0 3064371855078    posixpath.py                       <- normpath
+  0 3064371855086    posixpath.py                     <- abspath
+  0 3064371855094    posixpath.py                     -> normcase
+  0 3064371855101    posixpath.py                     <- normcase
+  0 3064371855144    site.py                        <- makepath
+  0 3064371855318    site.py                        -> addpackage
+  0 3064371855327    posixpath.py                     -> join
+  0 3064371855337    posixpath.py                     <- join
+  0 3064371855411    site.py                          -> makepath
+  0 3064371855420    posixpath.py                       -> join
+  0 3064371855430    posixpath.py                       <- join
+  0 3064371855437    posixpath.py                       -> abspath
+  0 3064371855445    posixpath.py                         -> isabs
+  0 3064371855453    posixpath.py                         <- isabs
+  0 3064371855460    posixpath.py                         -> normpath
+  0 3064371855477    posixpath.py                         <- normpath
+  0 3064371855485    posixpath.py                       <- abspath
+  0 3064371855493    posixpath.py                       -> normcase
+  0 3064371855501    posixpath.py                       <- normcase
+  0 3064371855509    site.py                          <- makepath
+  0 3064371855517    posixpath.py                     -> exists
+  0 3064371855542    posixpath.py                     <- exists
+  0 3064371855591    site.py                        <- addpackage
+  0 3064371855611    site.py                        -> addpackage
+  0 3064371855618    posixpath.py                     -> join
+  0 3064371855628    posixpath.py                     <- join
+  0 3064371855683    site.py                          -> makepath
+  0 3064371855692    posixpath.py                       -> join
+  0 3064371855739    posixpath.py                       <- join
+  0 3064371855747    posixpath.py                       -> abspath
+  0 3064371855754    posixpath.py                         -> isabs
+  0 3064371855763    posixpath.py                         <- isabs
+  0 3064371855770    posixpath.py                         -> normpath
+  0 3064371855788    posixpath.py                         <- normpath
+  0 3064371855796    posixpath.py                       <- abspath
+  0 3064371855803    posixpath.py                       -> normcase
+  0 3064371855811    posixpath.py                       <- normcase
+  0 3064371855818    site.py                          <- makepath
+  0 3064371855826    posixpath.py                     -> exists
+  0 3064371855851    posixpath.py                     <- exists
+  0 3064371855880    site.py                        <- addpackage
+  0 3064371855892    site.py                      <- addsitedir
+  0 3064371855900    <string>                   <- ?
+  0 3064371855915    site.py                  <- addpackage
+  0 3064371855923    site.py                <- addsitedir
+  0 3064371855932    posixpath.py           -> isdir
+  0 3064371855965    posixpath.py           <- isdir
+  0 3064371855973    site.py              <- addsitepackages
+  0 3064371855982    site.py              -> setquit
+  0 3064371855993    site.py              <- setquit
+  0 3064371856000    site.py              -> setcopyright
+  0 3064371856009    site.py                -> __init__
+  0 3064371856019    site.py                <- __init__
+  0 3064371856028    site.py                -> __init__
+  0 3064371856037    site.py                <- __init__
+  0 3064371856045    posixpath.py           -> dirname
+  0 3064371856052    posixpath.py             -> split
+  0 3064371856065    posixpath.py             <- split
+  0 3064371856073    posixpath.py           <- dirname
+  0 3064371856085    posixpath.py           -> join
+  0 3064371856096    posixpath.py           <- join
+  0 3064371856104    site.py                -> __init__
+  0 3064371856113    site.py                <- __init__
+  0 3064371856121    site.py              <- setcopyright
+  0 3064371856128    site.py              -> sethelper
+  0 3064371856136    site.py              <- sethelper
+  0 3064371856143    site.py              -> aliasmbcs
+  0 3064371856151    site.py              <- aliasmbcs
+  0 3064371856158    site.py              -> setencoding
+  0 3064371856166    site.py              <- setencoding
+  0 3064371856173    site.py              -> execsitecustomize
+  0 3064371871773    site.py              <- execsitecustomize
+  0 3064371871794    site.py            <- main
+  0 3064371871805    site.py          <- ?
+  0 3064371872141    warnings.py      -> ?
+  0 306437187232e    linecache.py       -> ?
+  0 3064371872336    linecache.py       <- ?
+  0 3064371872352    warnings.py        -> _OptionError
+  0 3064371872361    warnings.py        <- _OptionError
+  0 3064371872378    warnings.py        -> _processoptions
+  0 3064371872387    warnings.py        <- _processoptions
+  0 3064371872397    warnings.py        -> simplefilter
+  0 3064371872410    warnings.py        <- simplefilter
+  0 3064371872418    warnings.py        -> simplefilter
+  0 3064371872428    warnings.py        <- simplefilter
+  0 3064371872436    warnings.py      <- ?
+  0 3064371886557    __init__.py      -> ?
+  0 3064371891761    codecs.py          -> ?
+  0 3064371891836    codecs.py            -> Codec
+  0 3064371891848    codecs.py            <- Codec
+  0 3064371891864    codecs.py            -> StreamWriter
+  0 3064371891874    codecs.py            <- StreamWriter
+  0 3064371891885    codecs.py            -> StreamReader
+  0 3064371891897    codecs.py            <- StreamReader
+  0 3064371891907    codecs.py            -> StreamReaderWriter
+  0 3064371891918    codecs.py            <- StreamReaderWriter
+  0 3064371891926    codecs.py            -> StreamRecoder
+  0 3064371891938    codecs.py            <- StreamRecoder
+  0 3064371891953    codecs.py          <- ?
+  0 3064371902521    aliases.py         -> ?
+  0 3064371902580    aliases.py         <- ?
+  0 3064371902605    __init__.py        -> CodecRegistryError
+  0 3064371902614    __init__.py        <- CodecRegistryError
+  0 3064371902636    __init__.py      <- ?
+  0 3064371902655    __init__.py      -> search_function
+  0 3064371902666    __init__.py        -> normalize_encoding
+  0 3064371902682    __init__.py        <- normalize_encoding
+  0 3064371902888    ascii.py           -> ?
+  0 3064371902900    ascii.py             -> Codec
+  0 3064371902909    ascii.py             <- Codec
+  0 3064371902922    ascii.py             -> StreamWriter
+  0 3064371902930    ascii.py             <- StreamWriter
+  0 3064371902941    ascii.py             -> StreamReader
+  0 3064371902949    ascii.py             <- StreamReader
+  0 3064371902972    ascii.py             -> StreamConverter
+  0 3064371902981    ascii.py             <- StreamConverter
+  0 3064371902993    ascii.py           <- ?
+  0 3064371903009    ascii.py           -> getregentry
+  0 3064371903018    ascii.py           <- getregentry
+  0 3064371903044    __init__.py      <- search_function
+  0 3064371903414    func_abc.py      -> ?
+  0 3064371933251    func_abc.py        -> func_a
+  0 3064372940696    func_abc.py          -> func_b
+  0 3064373950608    func_abc.py            -> func_c
+  0 3064374960497    func_abc.py            <- func_c
+  0 3064374960512    func_abc.py          <- func_b
+  0 3064374960520    func_abc.py        <- func_a
+  0 3064374960528    func_abc.py      <- ?
+^C
+
+Here we can see that Python has done extensive pre-processing before it runs
+the Code/Python/func_abc.py program itself.
+
+This shows which function is calling which - the output above ends by
+showing that func_a called func_b which in turn called func_c etc.
+
+The TIME(us) column shows time from boot in microseconds.
+
+The FILE column shows the file that was being executed.
+
+If the output looks strange, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/py_flowinfo_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_flowinfo_example.txt
new file mode 100644
index 0000000..f93dc09
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_flowinfo_example.txt
@@ -0,0 +1,485 @@
+Following are examples of py_flowinfo.d.
+
+This is a simple script to trace the flow of Python functions.  Here it traces 
+the flow into and out of libraries and the example program,
+Code/Python/func_abc.py.
+
+# py_flowinfo.d
+C    PID  DELTA(us)              FILE:LINE TYPE     -- FUNC
+0 145424          3           site.py:58   func     -> ?
+0 145424       1375             os.py:22   func       -> ?
+0 145424        692      posixpath.py:11   func         -> ?
+0 145424        184           stat.py:4    func           -> ?
+0 145424         21           stat.py:86   func           <- ?
+0 145424         32      posixpath.py:454  func         <- ?
+0 145424         18             os.py:34   func         -> _get_exports_list
+0 145424        135             os.py:38   func         <- _get_exports_list
+0 145424        261       UserDict.py:1    func         -> ?
+0 145424         11       UserDict.py:3    func           -> UserDict
+0 145424         36       UserDict.py:71   func           <- UserDict
+0 145424         16       UserDict.py:73   func           -> IterableUserDict
+0 145424          9       UserDict.py:74   func           <- IterableUserDict
+0 145424         13       UserDict.py:77   func           -> DictMixin
+0 145424        174       UserDict.py:169  func           <- DictMixin
+0 145424         11       UserDict.py:77   func         <- ?
+0 145424         17             os.py:458  func         -> _Environ
+0 145424         11             os.py:489  func         <- _Environ
+0 145424         13             os.py:459  func         -> __init__
+0 145424         11       UserDict.py:4    func           -> __init__
+0 145424         11       UserDict.py:9    func           <- __init__
+0 145424         10             os.py:461  func         <- __init__
+0 145424         11             os.py:501  func         -> _exists
+0 145424        604          <string>:0    func           -> ?
+0 145424         10          <string>:0    func           <- ?
+0 145424          9             os.py:504  func         <- _exists
+0 145424          9             os.py:501  func         -> _exists
+0 145424         24          <string>:0    func           -> ?
+0 145424          9          <string>:0    func           <- ?
+0 145424         15             os.py:506  func         <- _exists
+0 145424          9             os.py:501  func         -> _exists
+0 145424         23          <string>:0    func           -> ?
+0 145424          8          <string>:0    func           <- ?
+0 145424          9             os.py:504  func         <- _exists
+0 145424         26             os.py:501  func         -> _exists
+0 145424         23          <string>:0    func           -> ?
+0 145424          8          <string>:0    func           <- ?
+0 145424          8             os.py:504  func         <- _exists
+0 145424         11             os.py:501  func         -> _exists
+0 145424         22          <string>:0    func           -> ?
+0 145424          8          <string>:0    func           <- ?
+0 145424          8             os.py:504  func         <- _exists
+0 145424         11             os.py:501  func         -> _exists
+0 145424         22          <string>:0    func           -> ?
+0 145424          8          <string>:0    func           <- ?
+0 145424          8             os.py:504  func         <- _exists
+0 145424          9             os.py:501  func         -> _exists
+0 145424         21          <string>:0    func           -> ?
+0 145424          9          <string>:0    func           <- ?
+0 145424         14             os.py:506  func         <- _exists
+0 145424         10             os.py:501  func         -> _exists
+0 145424         22          <string>:0    func           -> ?
+0 145424          9          <string>:0    func           <- ?
+0 145424         13             os.py:506  func         <- _exists
+0 145424         11             os.py:501  func         -> _exists
+0 145424         22          <string>:0    func           -> ?
+0 145424          8          <string>:0    func           <- ?
+0 145424         13             os.py:506  func         <- _exists
+0 145424        181       copy_reg.py:5    func         -> ?
+0 145424        181          types.py:4    func           -> ?
+0 145424         64          types.py:55   func             -> _C
+0 145424         10          types.py:56   func             <- _C
+0 145424         35          types.py:89   func           <- ?
+0 145424         22       copy_reg.py:14   func           -> pickle
+0 145424         11       copy_reg.py:27   func             -> constructor
+0 145424          9       copy_reg.py:29   func             <- constructor
+0 145424          9       copy_reg.py:25   func           <- pickle
+0 145424         12       copy_reg.py:175  func         <- ?
+0 145424         15       copy_reg.py:14   func         -> pickle
+0 145424         10       copy_reg.py:27   func           -> constructor
+0 145424          9       copy_reg.py:29   func           <- constructor
+0 145424          9       copy_reg.py:25   func         <- pickle
+0 145424         10       copy_reg.py:14   func         -> pickle
+0 145424         10       copy_reg.py:27   func           -> constructor
+0 145424          9       copy_reg.py:29   func           <- constructor
+0 145424          9       copy_reg.py:25   func         <- pickle
+0 145424          9             os.py:501  func         -> _exists
+0 145424         26          <string>:0    func           -> ?
+0 145424          9          <string>:0    func           <- ?
+0 145424         14             os.py:506  func         <- _exists
+0 145424          9             os.py:711  func       <- ?
+0 145424         33           site.py:238  func       -> _Printer
+0 145424         11           site.py:279  func       <- _Printer
+0 145424         38           site.py:317  func       -> _Helper
+0 145424          9           site.py:326  func       <- _Helper
+0 145424         34           site.py:376  func       -> main
+0 145424          8           site.py:69   func         -> abs__file__
+0 145424         11      posixpath.py:401  func           -> abspath
+0 145424          9      posixpath.py:47   func             -> isabs
+0 145424         11      posixpath.py:49   func             <- isabs
+0 145424         10      posixpath.py:374  func             -> normpath
+0 145424         22      posixpath.py:398  func             <- normpath
+0 145424         10      posixpath.py:405  func           <- abspath
+0 145424         16      posixpath.py:401  func           -> abspath
+0 145424          9      posixpath.py:47   func             -> isabs
+0 145424          9      posixpath.py:49   func             <- isabs
+0 145424          9      posixpath.py:374  func             -> normpath
+0 145424         17      posixpath.py:398  func             <- normpath
+0 145424         10      posixpath.py:405  func           <- abspath
+0 145424         10      posixpath.py:401  func           -> abspath
+0 145424          9      posixpath.py:47   func             -> isabs
+0 145424          9      posixpath.py:49   func             <- isabs
+0 145424          9      posixpath.py:374  func             -> normpath
+0 145424         16      posixpath.py:398  func             <- normpath
+0 145424         10      posixpath.py:405  func           <- abspath
+0 145424         10      posixpath.py:401  func           -> abspath
+0 145424          9      posixpath.py:47   func             -> isabs
+0 145424          9      posixpath.py:49   func             <- isabs
+0 145424          9      posixpath.py:374  func             -> normpath
+0 145424         16      posixpath.py:398  func             <- normpath
+0 145424          9      posixpath.py:405  func           <- abspath
+0 145424         15      posixpath.py:401  func           -> abspath
+0 145424          9      posixpath.py:47   func             -> isabs
+0 145424          9      posixpath.py:49   func             <- isabs
+0 145424          9      posixpath.py:374  func             -> normpath
+0 145424         16      posixpath.py:398  func             <- normpath
+0 145424          9      posixpath.py:405  func           <- abspath
+0 145424         22      posixpath.py:401  func           -> abspath
+0 145424          9      posixpath.py:47   func             -> isabs
+0 145424          9      posixpath.py:49   func             <- isabs
+0 145424          9      posixpath.py:374  func             -> normpath
+0 145424         16      posixpath.py:398  func             <- normpath
+0 145424          9      posixpath.py:405  func           <- abspath
+0 145424         18      posixpath.py:401  func           -> abspath
+0 145424          9      posixpath.py:47   func             -> isabs
+0 145424          9      posixpath.py:49   func             <- isabs
+0 145424          9      posixpath.py:374  func             -> normpath
+0 145424         16      posixpath.py:398  func             <- normpath
+0 145424         10      posixpath.py:405  func           <- abspath
+0 145424         10      posixpath.py:401  func           -> abspath
+0 145424          9      posixpath.py:47   func             -> isabs
+0 145424          9      posixpath.py:49   func             <- isabs
+0 145424          9      posixpath.py:374  func             -> normpath
+0 145424         16      posixpath.py:398  func             <- normpath
+0 145424          9      posixpath.py:405  func           <- abspath
+0 145424         12           site.py:75   func         <- abs__file__
+0 145424          9           site.py:77   func         -> removeduppaths
+0 145424         11           site.py:65   func           -> makepath
+0 145424         10      posixpath.py:56   func             -> join
+0 145424          9      posixpath.py:66   func             <- join
+0 145424          9      posixpath.py:401  func             -> abspath
+0 145424          9      posixpath.py:47   func               -> isabs
+0 145424          9      posixpath.py:49   func               <- isabs
+0 145424         10      posixpath.py:374  func               -> normpath
+0 145424         16      posixpath.py:398  func               <- normpath
+0 145424          9      posixpath.py:405  func             <- abspath
+0 145424          9      posixpath.py:39   func             -> normcase
+0 145424          9      posixpath.py:41   func             <- normcase
+0 145424          9           site.py:67   func           <- makepath
+0 145424         42           site.py:65   func           -> makepath
+0 145424          9      posixpath.py:56   func             -> join
+0 145424          9      posixpath.py:66   func             <- join
+0 145424          9      posixpath.py:401  func             -> abspath
+0 145424          9      posixpath.py:47   func               -> isabs
+0 145424          9      posixpath.py:49   func               <- isabs
+0 145424          9      posixpath.py:374  func               -> normpath
+0 145424         16      posixpath.py:398  func               <- normpath
+0 145424          9      posixpath.py:405  func             <- abspath
+0 145424         10      posixpath.py:39   func             -> normcase
+0 145424          8      posixpath.py:41   func             <- normcase
+0 145424          9           site.py:67   func           <- makepath
+0 145424         10           site.py:65   func           -> makepath
+0 145424          9      posixpath.py:56   func             -> join
+0 145424          9      posixpath.py:66   func             <- join
+0 145424          9      posixpath.py:401  func             -> abspath
+0 145424          9      posixpath.py:47   func               -> isabs
+0 145424          9      posixpath.py:49   func               <- isabs
+0 145424          9      posixpath.py:374  func               -> normpath
+0 145424         16      posixpath.py:398  func               <- normpath
+0 145424          9      posixpath.py:405  func             <- abspath
+0 145424          9      posixpath.py:39   func             -> normcase
+0 145424          8      posixpath.py:41   func             <- normcase
+0 145424          9           site.py:67   func           <- makepath
+0 145424         10           site.py:65   func           -> makepath
+0 145424          9      posixpath.py:56   func             -> join
+0 145424          9      posixpath.py:66   func             <- join
+0 145424          9      posixpath.py:401  func             -> abspath
+0 145424          9      posixpath.py:47   func               -> isabs
+0 145424          9      posixpath.py:49   func               <- isabs
+0 145424          9      posixpath.py:374  func               -> normpath
+0 145424         16      posixpath.py:398  func               <- normpath
+0 145424          9      posixpath.py:405  func             <- abspath
+0 145424          9      posixpath.py:39   func             -> normcase
+0 145424          8      posixpath.py:41   func             <- normcase
+0 145424          9           site.py:67   func           <- makepath
+0 145424         10           site.py:65   func           -> makepath
+0 145424          9      posixpath.py:56   func             -> join
+0 145424          9      posixpath.py:66   func             <- join
+0 145424          9      posixpath.py:401  func             -> abspath
+0 145424          9      posixpath.py:47   func               -> isabs
+0 145424          9      posixpath.py:49   func               <- isabs
+0 145424          9      posixpath.py:374  func               -> normpath
+0 145424         16      posixpath.py:398  func               <- normpath
+0 145424          9      posixpath.py:405  func             <- abspath
+0 145424          9      posixpath.py:39   func             -> normcase
+0 145424          8      posixpath.py:41   func             <- normcase
+0 145424          9           site.py:67   func           <- makepath
+0 145424         12           site.py:93   func         <- removeduppaths
+0 145424         11      posixpath.py:110  func         -> basename
+0 145424         10      posixpath.py:74   func           -> split
+0 145424         14      posixpath.py:81   func           <- split
+0 145424          9      posixpath.py:112  func         <- basename
+0 145424          9           site.py:171  func         -> addsitepackages
+0 145424         13      posixpath.py:56   func           -> join
+0 145424         15      posixpath.py:66   func           <- join
+0 145424         10      posixpath.py:56   func           -> join
+0 145424         12      posixpath.py:66   func           <- join
+0 145424         11      posixpath.py:192  func           -> isdir
+0 145424         34           stat.py:45   func             -> S_ISDIR
+0 145424          9           stat.py:29   func               -> S_IFMT
+0 145424          9           stat.py:30   func               <- S_IFMT
+0 145424          9           stat.py:46   func             <- S_ISDIR
+0 145424          9      posixpath.py:198  func           <- isdir
+0 145424         11           site.py:148  func           -> addsitedir
+0 145424          9           site.py:65   func             -> makepath
+0 145424          9      posixpath.py:56   func               -> join
+0 145424          9      posixpath.py:66   func               <- join
+0 145424          9      posixpath.py:401  func               -> abspath
+0 145424          9      posixpath.py:47   func                 -> isabs
+0 145424          9      posixpath.py:49   func                 <- isabs
+0 145424         10      posixpath.py:374  func                 -> normpath
+0 145424         17      posixpath.py:398  func                 <- normpath
+0 145424          9      posixpath.py:405  func               <- abspath
+0 145424          9      posixpath.py:39   func               -> normcase
+0 145424          9      posixpath.py:41   func               <- normcase
+0 145424          9           site.py:67   func             <- makepath
+0 145424        222           site.py:117  func             -> addpackage
+0 145424         12      posixpath.py:56   func               -> join
+0 145424         12      posixpath.py:66   func               <- join
+0 145424        132          <string>:1    func               -> ?
+0 145424         13           site.py:148  func                 -> addsitedir
+0 145424          9           site.py:105  func                   -> _init_pathinfo
+0 145424         11      posixpath.py:192  func                     -> isdir
+0 145424         84      posixpath.py:197  func                     <- isdir
+0 145424         12      posixpath.py:192  func                     -> isdir
+0 145424         23           stat.py:45   func                       -> S_ISDIR
+0 145424          9           stat.py:29   func                         -> S_IFMT
+0 145424          9           stat.py:30   func                         <- S_IFMT
+0 145424          9           stat.py:46   func                       <- S_ISDIR
+0 145424          9      posixpath.py:198  func                     <- isdir
+0 145424         10           site.py:65   func                     -> makepath
+0 145424         10      posixpath.py:56   func                       -> join
+0 145424          9      posixpath.py:66   func                       <- join
+0 145424          9      posixpath.py:401  func                       -> abspath
+0 145424          9      posixpath.py:47   func                         -> isabs
+0 145424          9      posixpath.py:49   func                         <- isabs
+0 145424         10      posixpath.py:374  func                         -> normpath
+0 145424         17      posixpath.py:398  func                         <- normpath
+0 145424         10      posixpath.py:405  func                       <- abspath
+0 145424         10      posixpath.py:39   func                       -> normcase
+0 145424          9      posixpath.py:41   func                       <- normcase
+0 145424          9           site.py:67   func                     <- makepath
+0 145424         10      posixpath.py:192  func                     -> isdir
+0 145424         23           stat.py:45   func                       -> S_ISDIR
+0 145424          8           stat.py:29   func                         -> S_IFMT
+0 145424          8           stat.py:30   func                         <- S_IFMT
+0 145424          9           stat.py:46   func                       <- S_ISDIR
+0 145424          9      posixpath.py:198  func                     <- isdir
+0 145424         10           site.py:65   func                     -> makepath
+0 145424          9      posixpath.py:56   func                       -> join
+0 145424          9      posixpath.py:66   func                       <- join
+0 145424          9      posixpath.py:401  func                       -> abspath
+0 145424          9      posixpath.py:47   func                         -> isabs
+0 145424          9      posixpath.py:49   func                         <- isabs
+0 145424          9      posixpath.py:374  func                         -> normpath
+0 145424         17      posixpath.py:398  func                         <- normpath
+0 145424         10      posixpath.py:405  func                       <- abspath
+0 145424         10      posixpath.py:39   func                       -> normcase
+0 145424          9      posixpath.py:41   func                       <- normcase
+0 145424          9           site.py:67   func                     <- makepath
+0 145424         10      posixpath.py:192  func                     -> isdir
+0 145424         24           stat.py:45   func                       -> S_ISDIR
+0 145424          8           stat.py:29   func                         -> S_IFMT
+0 145424          8           stat.py:30   func                         <- S_IFMT
+0 145424          9           stat.py:46   func                       <- S_ISDIR
+0 145424          8      posixpath.py:198  func                     <- isdir
+0 145424         10           site.py:65   func                     -> makepath
+0 145424          9      posixpath.py:56   func                       -> join
+0 145424          9      posixpath.py:66   func                       <- join
+0 145424          9      posixpath.py:401  func                       -> abspath
+0 145424          9      posixpath.py:47   func                         -> isabs
+0 145424          9      posixpath.py:49   func                         <- isabs
+0 145424          9      posixpath.py:374  func                         -> normpath
+0 145424         17      posixpath.py:398  func                         <- normpath
+0 145424         10      posixpath.py:405  func                       <- abspath
+0 145424         10      posixpath.py:39   func                       -> normcase
+0 145424          9      posixpath.py:41   func                       <- normcase
+0 145424          9           site.py:67   func                     <- makepath
+0 145424         10      posixpath.py:192  func                     -> isdir
+0 145424         23           stat.py:45   func                       -> S_ISDIR
+0 145424          8           stat.py:29   func                         -> S_IFMT
+0 145424          8           stat.py:30   func                         <- S_IFMT
+0 145424          9           stat.py:46   func                       <- S_ISDIR
+0 145424          9      posixpath.py:198  func                     <- isdir
+0 145424         10           site.py:65   func                     -> makepath
+0 145424          9      posixpath.py:56   func                       -> join
+0 145424          9      posixpath.py:66   func                       <- join
+0 145424          9      posixpath.py:401  func                       -> abspath
+0 145424          9      posixpath.py:47   func                         -> isabs
+0 145424          9      posixpath.py:49   func                         <- isabs
+0 145424          9      posixpath.py:374  func                         -> normpath
+0 145424         17      posixpath.py:398  func                         <- normpath
+0 145424          9      posixpath.py:405  func                       <- abspath
+0 145424          9      posixpath.py:39   func                       -> normcase
+0 145424          9      posixpath.py:41   func                       <- normcase
+0 145424          9           site.py:67   func                     <- makepath
+0 145424         10      posixpath.py:192  func                     -> isdir
+0 145424         22           stat.py:45   func                       -> S_ISDIR
+0 145424          8           stat.py:29   func                         -> S_IFMT
+0 145424          8           stat.py:30   func                         <- S_IFMT
+0 145424          9           stat.py:46   func                       <- S_ISDIR
+0 145424          8      posixpath.py:198  func                     <- isdir
+0 145424         10           site.py:65   func                     -> makepath
+0 145424          9      posixpath.py:56   func                       -> join
+0 145424          9      posixpath.py:66   func                       <- join
+0 145424          9      posixpath.py:401  func                       -> abspath
+0 145424          9      posixpath.py:47   func                         -> isabs
+0 145424          9      posixpath.py:49   func                         <- isabs
+0 145424          9      posixpath.py:374  func                         -> normpath
+0 145424         17      posixpath.py:398  func                         <- normpath
+0 145424         10      posixpath.py:405  func                       <- abspath
+0 145424         10      posixpath.py:39   func                       -> normcase
+0 145424          8      posixpath.py:41   func                       <- normcase
+0 145424          9           site.py:67   func                     <- makepath
+0 145424         10           site.py:115  func                   <- _init_pathinfo
+0 145424          9           site.py:65   func                   -> makepath
+0 145424         10      posixpath.py:56   func                     -> join
+0 145424          9      posixpath.py:66   func                     <- join
+0 145424          9      posixpath.py:401  func                     -> abspath
+0 145424          9      posixpath.py:47   func                       -> isabs
+0 145424          9      posixpath.py:49   func                       <- isabs
+0 145424         10      posixpath.py:374  func                       -> normpath
+0 145424         17      posixpath.py:398  func                       <- normpath
+0 145424          9      posixpath.py:405  func                     <- abspath
+0 145424          9      posixpath.py:39   func                     -> normcase
+0 145424          9      posixpath.py:41   func                     <- normcase
+0 145424          9           site.py:67   func                   <- makepath
+0 145424        170           site.py:117  func                   -> addpackage
+0 145424         11      posixpath.py:56   func                     -> join
+0 145424         12      posixpath.py:66   func                     <- join
+0 145424         73           site.py:65   func                     -> makepath
+0 145424         11      posixpath.py:56   func                       -> join
+0 145424         11      posixpath.py:66   func                       <- join
+0 145424         10      posixpath.py:401  func                       -> abspath
+0 145424          9      posixpath.py:47   func                         -> isabs
+0 145424          9      posixpath.py:49   func                         <- isabs
+0 145424          9      posixpath.py:374  func                         -> normpath
+0 145424         19      posixpath.py:398  func                         <- normpath
+0 145424         10      posixpath.py:405  func                       <- abspath
+0 145424          9      posixpath.py:39   func                       -> normcase
+0 145424          9      posixpath.py:41   func                       <- normcase
+0 145424          9           site.py:67   func                     <- makepath
+0 145424         10      posixpath.py:168  func                     -> exists
+0 145424         41      posixpath.py:174  func                     <- exists
+0 145424         53           site.py:146  func                   <- addpackage
+0 145424         21           site.py:117  func                   -> addpackage
+0 145424          9      posixpath.py:56   func                     -> join
+0 145424         11      posixpath.py:66   func                     <- join
+0 145424         48           site.py:65   func                     -> makepath
+0 145424         10      posixpath.py:56   func                       -> join
+0 145424         47      posixpath.py:66   func                       <- join
+0 145424         10      posixpath.py:401  func                       -> abspath
+0 145424          9      posixpath.py:47   func                         -> isabs
+0 145424          9      posixpath.py:49   func                         <- isabs
+0 145424          9      posixpath.py:374  func                         -> normpath
+0 145424         18      posixpath.py:398  func                         <- normpath
+0 145424         10      posixpath.py:405  func                       <- abspath
+0 145424         10      posixpath.py:39   func                       -> normcase
+0 145424          9      posixpath.py:41   func                       <- normcase
+0 145424          9           site.py:67   func                     <- makepath
+0 145424         10      posixpath.py:168  func                     -> exists
+0 145424         25      posixpath.py:174  func                     <- exists
+0 145424         32           site.py:146  func                   <- addpackage
+0 145424         14           site.py:169  func                 <- addsitedir
+0 145424         10          <string>:1    func               <- ?
+0 145424         16           site.py:146  func             <- addpackage
+0 145424         10           site.py:169  func           <- addsitedir
+0 145424         10      posixpath.py:192  func           -> isdir
+0 145424         34      posixpath.py:197  func           <- isdir
+0 145424         10           site.py:204  func         <- addsitepackages
+0 145424         11           site.py:224  func         -> setquit
+0 145424         11           site.py:235  func         <- setquit
+0 145424          9           site.py:299  func         -> setcopyright
+0 145424         11           site.py:244  func           -> __init__
+0 145424         10           site.py:249  func           <- __init__
+0 145424         12           site.py:244  func           -> __init__
+0 145424          9           site.py:249  func           <- __init__
+0 145424         10      posixpath.py:117  func           -> dirname
+0 145424          9      posixpath.py:74   func             -> split
+0 145424         14      posixpath.py:81   func             <- split
+0 145424          9      posixpath.py:119  func           <- dirname
+0 145424         14      posixpath.py:56   func           -> join
+0 145424         11      posixpath.py:66   func           <- join
+0 145424         11           site.py:244  func           -> __init__
+0 145424          9           site.py:249  func           <- __init__
+0 145424          9           site.py:314  func         <- setcopyright
+0 145424          9           site.py:330  func         -> sethelper
+0 145424          9           site.py:331  func         <- sethelper
+0 145424          9           site.py:333  func         -> aliasmbcs
+0 145424          9           site.py:346  func         <- aliasmbcs
+0 145424          9           site.py:348  func         -> setencoding
+0 145424          9           site.py:365  func         <- setencoding
+0 145424          9           site.py:368  func         -> execsitecustomize
+0 145424        706           site.py:373  func         <- execsitecustomize
+0 145424         16           site.py:395  func       <- main
+0 145424         12           site.py:406  func     <- ?
+0 145424        289       warnings.py:1    func     -> ?
+0 145424        158      linecache.py:6    func       -> ?
+0 145424         17      linecache.py:66   func       <- ?
+0 145424         20       warnings.py:179  func       -> _OptionError
+0 145424          9       warnings.py:180  func       <- _OptionError
+0 145424         19       warnings.py:184  func       -> _processoptions
+0 145424         10       warnings.py:189  func       <- _processoptions
+0 145424         12       warnings.py:160  func       -> simplefilter
+0 145424         13       warnings.py:173  func       <- simplefilter
+0 145424         10       warnings.py:160  func       -> simplefilter
+0 145424         11       warnings.py:173  func       <- simplefilter
+0 145424          9       warnings.py:259  func     <- ?
+0 145424        492       __init__.py:28   func     -> ?
+0 145424        599         codecs.py:8    func       -> ?
+0 145424         61         codecs.py:76   func         -> Codec
+0 145424         12         codecs.py:117  func         <- Codec
+0 145424         18         codecs.py:147  func         -> StreamWriter
+0 145424         11         codecs.py:200  func         <- StreamWriter
+0 145424         13         codecs.py:209  func         -> StreamReader
+0 145424         13         codecs.py:436  func         <- StreamReader
+0 145424         12         codecs.py:445  func         -> StreamReaderWriter
+0 145424         13         codecs.py:509  func         <- StreamReaderWriter
+0 145424         11         codecs.py:518  func         -> StreamRecoder
+0 145424         12         codecs.py:619  func         <- StreamRecoder
+0 145424         17         codecs.py:817  func       <- ?
+0 145424        625        aliases.py:17   func       -> ?
+0 145424         54        aliases.py:18   func       <- ?
+0 145424         21       __init__.py:43   func       -> CodecRegistryError
+0 145424         10       __init__.py:45   func       <- CodecRegistryError
+0 145424         19       __init__.py:145  func     <- ?
+0 145424         18       __init__.py:69   func     -> search_function
+0 145424         12       __init__.py:47   func       -> normalize_encoding
+0 145424         16       __init__.py:67   func       <- normalize_encoding
+0 145424        120          ascii.py:8    func       -> ?
+0 145424         14          ascii.py:13   func         -> Codec
+0 145424         10          ascii.py:18   func         <- Codec
+0 145424         15          ascii.py:20   func         -> StreamWriter
+0 145424          9          ascii.py:21   func         <- StreamWriter
+0 145424         13          ascii.py:23   func         -> StreamReader
+0 145424          9          ascii.py:24   func         <- StreamReader
+0 145424         24          ascii.py:26   func         -> StreamConverter
+0 145424         10          ascii.py:29   func         <- StreamConverter
+0 145424         14          ascii.py:33   func       <- ?
+0 145424         17          ascii.py:33   func       -> getregentry
+0 145424         10          ascii.py:35   func       <- getregentry
+0 145424         26       __init__.py:142  func     <- search_function
+0 145424        367       func_abc.py:3    func     -> ?
+0 145424       1722       func_abc.py:14   func       -> func_a
+0 145424    1005677       func_abc.py:9    func         -> func_b
+0 145424    1000271       func_abc.py:5    func           -> func_c
+0 145424    1009739       func_abc.py:7    func           <- func_c
+0 145424         25       func_abc.py:12   func         <- func_b
+0 145424          9       func_abc.py:17   func       <- func_a
+0 145424          9       func_abc.py:19   func     <- ?
+^C
+
+As each function is entered, the last column is indented by 2 spaces. This
+shows which function is calling which.
+
+The DELTA(us) column shows the change in time from the previous line to the
+current line.
+
+The FILE::LINE column shows which line in which file was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/py_flowtime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_flowtime_example.txt
new file mode 100644
index 0000000..5ac494b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_flowtime_example.txt
@@ -0,0 +1,487 @@
+The following are examples of py_flowtime.d.
+
+This is a simple script to trace the flow of Python functions.  Here it traces 
+the example program, Code/Python/func_abc.py
+
+# py_flowtime.d
+  C TIME(us)         FILE             DELTA(us)  -- FUNC
+  0 3064660319556    site.py                  3 -> ?
+  0 3064660320224    os.py                  667   -> ?
+  0 3064660321335    posixpath.py          1111     -> ?
+  0 3064660321526    stat.py                190       -> ?
+  0 3064660321546    stat.py                 20       <- ?
+  0 3064660321576    posixpath.py            29     <- ?
+  0 3064660321593    os.py                   17     -> _get_exports_list
+  0 3064660321728    os.py                  134     <- _get_exports_list
+  0 3064660321989    UserDict.py            260     -> ?
+  0 3064660322000    UserDict.py             10       -> UserDict
+  0 3064660322035    UserDict.py             34       <- UserDict
+  0 3064660322050    UserDict.py             15       -> IterableUserDict
+  0 3064660322058    UserDict.py              8       <- IterableUserDict
+  0 3064660322071    UserDict.py             12       -> DictMixin
+  0 3064660322247    UserDict.py            176       <- DictMixin
+  0 3064660322258    UserDict.py             10     <- ?
+  0 3064660322275    os.py                   16     -> _Environ
+  0 3064660322285    os.py                   10     <- _Environ
+  0 3064660322298    os.py                   13     -> __init__
+  0 3064660322308    UserDict.py             10       -> __init__
+  0 3064660322319    UserDict.py             10       <- __init__
+  0 3064660322328    os.py                    9     <- __init__
+  0 3064660322338    os.py                   10     -> _exists
+  0 3064660322946    <string>               607       -> ?
+  0 3064660322955    <string>                 8       <- ?
+  0 3064660322963    os.py                    8     <- _exists
+  0 3064660322972    os.py                    8     -> _exists
+  0 3064660322996    <string>                23       -> ?
+  0 3064660323005    <string>                 8       <- ?
+  0 3064660323020    os.py                   14     <- _exists
+  0 3064660323029    os.py                    8     -> _exists
+  0 3064660323051    <string>                22       -> ?
+  0 3064660323059    <string>                 7       <- ?
+  0 3064660323067    os.py                    8     <- _exists
+  0 3064660323077    os.py                   10     -> _exists
+  0 3064660323098    <string>                21       -> ?
+  0 3064660323106    <string>                 7       <- ?
+  0 3064660323114    os.py                    8     <- _exists
+  0 3064660323125    os.py                   10     -> _exists
+  0 3064660323146    <string>                21       -> ?
+  0 3064660323154    <string>                 7       <- ?
+  0 3064660323162    os.py                    8     <- _exists
+  0 3064660323173    os.py                   10     -> _exists
+  0 3064660323194    <string>                21       -> ?
+  0 3064660323202    <string>                 7       <- ?
+  0 3064660323210    os.py                    8     <- _exists
+  0 3064660323218    os.py                    8     -> _exists
+  0 3064660323239    <string>                21       -> ?
+  0 3064660323247    <string>                 8       <- ?
+  0 3064660323261    os.py                   13     <- _exists
+  0 3064660323271    os.py                   10     -> _exists
+  0 3064660323293    <string>                21       -> ?
+  0 3064660323301    <string>                 8       <- ?
+  0 3064660323314    os.py                   12     <- _exists
+  0 3064660323324    os.py                   10     -> _exists
+  0 3064660323345    <string>                21       -> ?
+  0 3064660323354    <string>                 8       <- ?
+  0 3064660323366    os.py                   12     <- _exists
+  0 3064660323545    copy_reg.py            178     -> ?
+  0 3064660323726    types.py               180       -> ?
+  0 3064660323790    types.py                64         -> _C
+  0 3064660323800    types.py                 9         <- _C
+  0 3064660323834    types.py                33       <- ?
+  0 3064660323855    copy_reg.py             21       -> pickle
+  0 3064660323866    copy_reg.py             10         -> constructor
+  0 3064660323874    copy_reg.py              8         <- constructor
+  0 3064660323883    copy_reg.py              8       <- pickle
+  0 3064660323895    copy_reg.py             11     <- ?
+  0 3064660323909    copy_reg.py             14     -> pickle
+  0 3064660323919    copy_reg.py              9       -> constructor
+  0 3064660323927    copy_reg.py              8       <- constructor
+  0 3064660323936    copy_reg.py              8     <- pickle
+  0 3064660323946    copy_reg.py              9     -> pickle
+  0 3064660323955    copy_reg.py              9       -> constructor
+  0 3064660323963    copy_reg.py              8       <- constructor
+  0 3064660323972    copy_reg.py              8     <- pickle
+  0 3064660323981    os.py                    9     -> _exists
+  0 3064660324006    <string>                25       -> ?
+  0 3064660324015    <string>                 8       <- ?
+  0 3064660324028    os.py                   13     <- _exists
+  0 3064660324037    os.py                    8   <- ?
+  0 3064660324069    site.py                 31   -> _Printer
+  0 3064660324080    site.py                 10   <- _Printer
+  0 3064660324118    site.py                 38   -> _Helper
+  0 3064660324127    site.py                  9   <- _Helper
+  0 3064660324160    site.py                 33   -> main
+  0 3064660324168    site.py                  8     -> abs__file__
+  0 3064660324179    posixpath.py            10       -> abspath
+  0 3064660324187    posixpath.py             8         -> isabs
+  0 3064660324197    posixpath.py             9         <- isabs
+  0 3064660324207    posixpath.py             9         -> normpath
+  0 3064660324228    posixpath.py            21         <- normpath
+  0 3064660324238    posixpath.py             9       <- abspath
+  0 3064660324253    posixpath.py            15       -> abspath
+  0 3064660324261    posixpath.py             8         -> isabs
+  0 3064660324270    posixpath.py             8         <- isabs
+  0 3064660324278    posixpath.py             8         -> normpath
+  0 3064660324295    posixpath.py            16         <- normpath
+  0 3064660324304    posixpath.py             9       <- abspath
+  0 3064660324314    posixpath.py             9       -> abspath
+  0 3064660324322    posixpath.py             8         -> isabs
+  0 3064660324331    posixpath.py             8         <- isabs
+  0 3064660324339    posixpath.py             8         -> normpath
+  0 3064660324355    posixpath.py            15         <- normpath
+  0 3064660324364    posixpath.py             8       <- abspath
+  0 3064660324374    posixpath.py             9       -> abspath
+  0 3064660324382    posixpath.py             8         -> isabs
+  0 3064660324391    posixpath.py             8         <- isabs
+  0 3064660324399    posixpath.py             8         -> normpath
+  0 3064660324415    posixpath.py            15         <- normpath
+  0 3064660324424    posixpath.py             8       <- abspath
+  0 3064660324439    posixpath.py            14       -> abspath
+  0 3064660324447    posixpath.py             8         -> isabs
+  0 3064660324456    posixpath.py             8         <- isabs
+  0 3064660324464    posixpath.py             8         -> normpath
+  0 3064660324480    posixpath.py            15         <- normpath
+  0 3064660324489    posixpath.py             8       <- abspath
+  0 3064660324511    posixpath.py            21       -> abspath
+  0 3064660324519    posixpath.py             8         -> isabs
+  0 3064660324528    posixpath.py             8         <- isabs
+  0 3064660324536    posixpath.py             8         -> normpath
+  0 3064660324552    posixpath.py            15         <- normpath
+  0 3064660324561    posixpath.py             9       <- abspath
+  0 3064660324579    posixpath.py            17       -> abspath
+  0 3064660324588    posixpath.py             8         -> isabs
+  0 3064660324596    posixpath.py             8         <- isabs
+  0 3064660324605    posixpath.py             8         -> normpath
+  0 3064660324621    posixpath.py            15         <- normpath
+  0 3064660324630    posixpath.py             8       <- abspath
+  0 3064660324639    posixpath.py             9       -> abspath
+  0 3064660324648    posixpath.py             8         -> isabs
+  0 3064660324656    posixpath.py             8         <- isabs
+  0 3064660324665    posixpath.py             8         -> normpath
+  0 3064660324681    posixpath.py            15         <- normpath
+  0 3064660324690    posixpath.py             9       <- abspath
+  0 3064660324701    site.py                 11     <- abs__file__
+  0 3064660324709    site.py                  8     -> removeduppaths
+  0 3064660324719    site.py                 10       -> makepath
+  0 3064660324729    posixpath.py             9         -> join
+  0 3064660324738    posixpath.py             8         <- join
+  0 3064660324746    posixpath.py             8         -> abspath
+  0 3064660324755    posixpath.py             8           -> isabs
+  0 3064660324764    posixpath.py             8           <- isabs
+  0 3064660324773    posixpath.py             9           -> normpath
+  0 3064660324789    posixpath.py            15           <- normpath
+  0 3064660324797    posixpath.py             8         <- abspath
+  0 3064660324806    posixpath.py             8         -> normcase
+  0 3064660324814    posixpath.py             8         <- normcase
+  0 3064660324823    site.py                  8       <- makepath
+  0 3064660324864    site.py                 40       -> makepath
+  0 3064660324873    posixpath.py             8         -> join
+  0 3064660324881    posixpath.py             8         <- join
+  0 3064660324889    posixpath.py             8         -> abspath
+  0 3064660324898    posixpath.py             8           -> isabs
+  0 3064660324906    posixpath.py             8           <- isabs
+  0 3064660324915    posixpath.py             8           -> normpath
+  0 3064660324931    posixpath.py            15           <- normpath
+  0 3064660324939    posixpath.py             8         <- abspath
+  0 3064660324948    posixpath.py             8         -> normcase
+  0 3064660324957    posixpath.py             8         <- normcase
+  0 3064660324965    site.py                  8       <- makepath
+  0 3064660324974    site.py                  9       -> makepath
+  0 3064660324983    posixpath.py             8         -> join
+  0 3064660324991    posixpath.py             8         <- join
+  0 3064660325000    posixpath.py             8         -> abspath
+  0 3064660325008    posixpath.py             8           -> isabs
+  0 3064660325017    posixpath.py             8           <- isabs
+  0 3064660325025    posixpath.py             8           -> normpath
+  0 3064660325041    posixpath.py            15           <- normpath
+  0 3064660325050    posixpath.py             8         <- abspath
+  0 3064660325059    posixpath.py             8         -> normcase
+  0 3064660325067    posixpath.py             8         <- normcase
+  0 3064660325075    site.py                  8       <- makepath
+  0 3064660325084    site.py                  9       -> makepath
+  0 3064660325093    posixpath.py             8         -> join
+  0 3064660325102    posixpath.py             8         <- join
+  0 3064660325110    posixpath.py             8         -> abspath
+  0 3064660325118    posixpath.py             8           -> isabs
+  0 3064660325127    posixpath.py             8           <- isabs
+  0 3064660325135    posixpath.py             8           -> normpath
+  0 3064660325151    posixpath.py            15           <- normpath
+  0 3064660325160    posixpath.py             8         <- abspath
+  0 3064660325169    posixpath.py             8         -> normcase
+  0 3064660325177    posixpath.py             7         <- normcase
+  0 3064660325185    site.py                  8       <- makepath
+  0 3064660325194    site.py                  9       -> makepath
+  0 3064660325203    posixpath.py             8         -> join
+  0 3064660325212    posixpath.py             8         <- join
+  0 3064660325220    posixpath.py             8         -> abspath
+  0 3064660325228    posixpath.py             8           -> isabs
+  0 3064660325237    posixpath.py             8           <- isabs
+  0 3064660325245    posixpath.py             8           -> normpath
+  0 3064660325261    posixpath.py            15           <- normpath
+  0 3064660325270    posixpath.py             8         <- abspath
+  0 3064660325279    posixpath.py             8         -> normcase
+  0 3064660325287    posixpath.py             8         <- normcase
+  0 3064660325295    site.py                  8       <- makepath
+  0 3064660325307    site.py                 11     <- removeduppaths
+  0 3064660325317    posixpath.py            10     -> basename
+  0 3064660325327    posixpath.py             9       -> split
+  0 3064660325340    posixpath.py            13       <- split
+  0 3064660325349    posixpath.py             8     <- basename
+  0 3064660325358    site.py                  8     -> addsitepackages
+  0 3064660325370    posixpath.py            12       -> join
+  0 3064660325385    posixpath.py            14       <- join
+  0 3064660325394    posixpath.py             9       -> join
+  0 3064660325406    posixpath.py            11       <- join
+  0 3064660325416    posixpath.py            10       -> isdir
+  0 3064660325447    stat.py                 31         -> S_ISDIR
+  0 3064660325456    stat.py                  8           -> S_IFMT
+  0 3064660325464    stat.py                  8           <- S_IFMT
+  0 3064660325473    stat.py                  8         <- S_ISDIR
+  0 3064660325481    posixpath.py             7       <- isdir
+  0 3064660325491    site.py                 10       -> addsitedir
+  0 3064660325500    site.py                  8         -> makepath
+  0 3064660325508    posixpath.py             8           -> join
+  0 3064660325517    posixpath.py             8           <- join
+  0 3064660325525    posixpath.py             8           -> abspath
+  0 3064660325534    posixpath.py             8             -> isabs
+  0 3064660325543    posixpath.py             8             <- isabs
+  0 3064660325552    posixpath.py             9             -> normpath
+  0 3064660325569    posixpath.py            16             <- normpath
+  0 3064660325578    posixpath.py             8           <- abspath
+  0 3064660325587    posixpath.py             8           -> normcase
+  0 3064660325595    posixpath.py             8           <- normcase
+  0 3064660325604    site.py                  8         <- makepath
+  0 3064660325823    site.py                219         -> addpackage
+  0 3064660325834    posixpath.py            10           -> join
+  0 3064660325844    posixpath.py            10           <- join
+  0 3064660325972    <string>               127           -> ?
+  0 3064660325985    site.py                 13             -> addsitedir
+  0 3064660325994    site.py                  8               -> _init_pathinfo
+  0 3064660326004    posixpath.py            10                 -> isdir
+  0 3064660326086    posixpath.py            81                 <- isdir
+  0 3064660326097    posixpath.py            10                 -> isdir
+  0 3064660326118    stat.py                 21                   -> S_ISDIR
+  0 3064660326127    stat.py                  9                     -> S_IFMT
+  0 3064660326136    stat.py                  8                     <- S_IFMT
+  0 3064660326144    stat.py                  8                   <- S_ISDIR
+  0 3064660326152    posixpath.py             7                 <- isdir
+  0 3064660326161    site.py                  9                 -> makepath
+  0 3064660326171    posixpath.py             9                   -> join
+  0 3064660326179    posixpath.py             8                   <- join
+  0 3064660326188    posixpath.py             8                   -> abspath
+  0 3064660326196    posixpath.py             8                     -> isabs
+  0 3064660326205    posixpath.py             9                     <- isabs
+  0 3064660326215    posixpath.py             9                     -> normpath
+  0 3064660326231    posixpath.py            16                     <- normpath
+  0 3064660326240    posixpath.py             8                   <- abspath
+  0 3064660326249    posixpath.py             9                   -> normcase
+  0 3064660326258    posixpath.py             8                   <- normcase
+  0 3064660326266    site.py                  8                 <- makepath
+  0 3064660326276    posixpath.py             9                 -> isdir
+  0 3064660326298    stat.py                 22                   -> S_ISDIR
+  0 3064660326306    stat.py                  8                     -> S_IFMT
+  0 3064660326314    stat.py                  7                     <- S_IFMT
+  0 3064660326322    stat.py                  8                   <- S_ISDIR
+  0 3064660326330    posixpath.py             8                 <- isdir
+  0 3064660326340    site.py                  9                 -> makepath
+  0 3064660326349    posixpath.py             8                   -> join
+  0 3064660326357    posixpath.py             8                   <- join
+  0 3064660326382    posixpath.py            24                   -> abspath
+  0 3064660326390    posixpath.py             8                     -> isabs
+  0 3064660326399    posixpath.py             8                     <- isabs
+  0 3064660326408    posixpath.py             8                     -> normpath
+  0 3064660326425    posixpath.py            16                     <- normpath
+  0 3064660326434    posixpath.py             9                   <- abspath
+  0 3064660326443    posixpath.py             9                   -> normcase
+  0 3064660326451    posixpath.py             8                   <- normcase
+  0 3064660326460    site.py                  8                 <- makepath
+  0 3064660326469    posixpath.py             9                 -> isdir
+  0 3064660326493    stat.py                 23                   -> S_ISDIR
+  0 3064660326501    stat.py                  8                     -> S_IFMT
+  0 3064660326509    stat.py                  7                     <- S_IFMT
+  0 3064660326517    stat.py                  8                   <- S_ISDIR
+  0 3064660326525    posixpath.py             7                 <- isdir
+  0 3064660326534    site.py                  9                 -> makepath
+  0 3064660326542    posixpath.py             8                   -> join
+  0 3064660326551    posixpath.py             8                   <- join
+  0 3064660326559    posixpath.py             8                   -> abspath
+  0 3064660326568    posixpath.py             8                     -> isabs
+  0 3064660326576    posixpath.py             8                     <- isabs
+  0 3064660326585    posixpath.py             8                     -> normpath
+  0 3064660326602    posixpath.py            16                     <- normpath
+  0 3064660326610    posixpath.py             8                   <- abspath
+  0 3064660326619    posixpath.py             8                   -> normcase
+  0 3064660326628    posixpath.py             8                   <- normcase
+  0 3064660326636    site.py                  8                 <- makepath
+  0 3064660326646    posixpath.py             9                 -> isdir
+  0 3064660326668    stat.py                 22                   -> S_ISDIR
+  0 3064660326676    stat.py                  8                     -> S_IFMT
+  0 3064660326684    stat.py                  7                     <- S_IFMT
+  0 3064660326692    stat.py                  8                   <- S_ISDIR
+  0 3064660326700    posixpath.py             8                 <- isdir
+  0 3064660326709    site.py                  9                 -> makepath
+  0 3064660326718    posixpath.py             8                   -> join
+  0 3064660326726    posixpath.py             8                   <- join
+  0 3064660326735    posixpath.py             8                   -> abspath
+  0 3064660326743    posixpath.py             8                     -> isabs
+  0 3064660326752    posixpath.py             8                     <- isabs
+  0 3064660326760    posixpath.py             8                     -> normpath
+  0 3064660326777    posixpath.py            16                     <- normpath
+  0 3064660326786    posixpath.py             9                   <- abspath
+  0 3064660326795    posixpath.py             9                   -> normcase
+  0 3064660326803    posixpath.py             8                   <- normcase
+  0 3064660326811    site.py                  8                 <- makepath
+  0 3064660326821    posixpath.py             9                 -> isdir
+  0 3064660326842    stat.py                 21                   -> S_ISDIR
+  0 3064660326850    stat.py                  8                     -> S_IFMT
+  0 3064660326858    stat.py                  7                     <- S_IFMT
+  0 3064660326866    stat.py                  8                   <- S_ISDIR
+  0 3064660326874    posixpath.py             7                 <- isdir
+  0 3064660326883    site.py                  9                 -> makepath
+  0 3064660326892    posixpath.py             8                   -> join
+  0 3064660326901    posixpath.py             8                   <- join
+  0 3064660326909    posixpath.py             8                   -> abspath
+  0 3064660326917    posixpath.py             8                     -> isabs
+  0 3064660326926    posixpath.py             8                     <- isabs
+  0 3064660326935    posixpath.py             8                     -> normpath
+  0 3064660326951    posixpath.py            16                     <- normpath
+  0 3064660326960    posixpath.py             8                   <- abspath
+  0 3064660326970    posixpath.py             9                   -> normcase
+  0 3064660326978    posixpath.py             8                   <- normcase
+  0 3064660326986    site.py                  8                 <- makepath
+  0 3064660326995    site.py                  8               <- _init_pathinfo
+  0 3064660327004    site.py                  8               -> makepath
+  0 3064660327013    posixpath.py             9                 -> join
+  0 3064660327021    posixpath.py             8                 <- join
+  0 3064660327030    posixpath.py             8                 -> abspath
+  0 3064660327038    posixpath.py             8                   -> isabs
+  0 3064660327047    posixpath.py             8                   <- isabs
+  0 3064660327056    posixpath.py             8                   -> normpath
+  0 3064660327072    posixpath.py            15                   <- normpath
+  0 3064660327081    posixpath.py             9                 <- abspath
+  0 3064660327090    posixpath.py             8                 -> normcase
+  0 3064660327098    posixpath.py             8                 <- normcase
+  0 3064660327106    site.py                  8               <- makepath
+  0 3064660327278    site.py                171               -> addpackage
+  0 3064660327289    posixpath.py            10                 -> join
+  0 3064660327300    posixpath.py            10                 <- join
+  0 3064660327372    site.py                 72                 -> makepath
+  0 3064660327382    posixpath.py            10                   -> join
+  0 3064660327393    posixpath.py            10                   <- join
+  0 3064660327402    posixpath.py             9                   -> abspath
+  0 3064660327410    posixpath.py             8                     -> isabs
+  0 3064660327419    posixpath.py             8                     <- isabs
+  0 3064660327427    posixpath.py             8                     -> normpath
+  0 3064660327445    posixpath.py            17                     <- normpath
+  0 3064660327454    posixpath.py             9                   <- abspath
+  0 3064660327463    posixpath.py             9                   -> normcase
+  0 3064660327472    posixpath.py             8                   <- normcase
+  0 3064660327480    site.py                  8                 <- makepath
+  0 3064660327489    posixpath.py             9                 -> exists
+  0 3064660327515    posixpath.py            26                 <- exists
+  0 3064660327567    site.py                 51               <- addpackage
+  0 3064660327588    site.py                 20               -> addpackage
+  0 3064660327597    posixpath.py             8                 -> join
+  0 3064660327607    posixpath.py            10                 <- join
+  0 3064660327654    site.py                 46                 -> makepath
+  0 3064660327663    posixpath.py             9                   -> join
+  0 3064660327710    posixpath.py            46                   <- join
+  0 3064660327720    posixpath.py             9                   -> abspath
+  0 3064660327728    posixpath.py             8                     -> isabs
+  0 3064660327737    posixpath.py             9                     <- isabs
+  0 3064660327746    posixpath.py             8                     -> normpath
+  0 3064660327764    posixpath.py            17                     <- normpath
+  0 3064660327773    posixpath.py             9                   <- abspath
+  0 3064660327782    posixpath.py             9                   -> normcase
+  0 3064660327791    posixpath.py             8                   <- normcase
+  0 3064660327799    site.py                  8                 <- makepath
+  0 3064660327808    posixpath.py             9                 -> exists
+  0 3064660327833    posixpath.py            24                 <- exists
+  0 3064660327864    site.py                 31               <- addpackage
+  0 3064660327878    site.py                 13             <- addsitedir
+  0 3064660327887    <string>                 9           <- ?
+  0 3064660327903    site.py                 15         <- addpackage
+  0 3064660327913    site.py                  9       <- addsitedir
+  0 3064660327923    posixpath.py            10       -> isdir
+  0 3064660327955    posixpath.py            32       <- isdir
+  0 3064660327965    site.py                  9     <- addsitepackages
+  0 3064660327976    site.py                 10     -> setquit
+  0 3064660327986    site.py                 10     <- setquit
+  0 3064660327995    site.py                  8     -> setcopyright
+  0 3064660328005    site.py                 10       -> __init__
+  0 3064660328015    site.py                  9       <- __init__
+  0 3064660328026    site.py                 11       -> __init__
+  0 3064660328035    site.py                  8       <- __init__
+  0 3064660328045    posixpath.py             9       -> dirname
+  0 3064660328053    posixpath.py             8         -> split
+  0 3064660328066    posixpath.py            13         <- split
+  0 3064660328075    posixpath.py             8       <- dirname
+  0 3064660328089    posixpath.py            13       -> join
+  0 3064660328099    posixpath.py            10       <- join
+  0 3064660328109    site.py                 10       -> __init__
+  0 3064660328118    site.py                  9       <- __init__
+  0 3064660328127    site.py                  8     <- setcopyright
+  0 3064660328136    site.py                  8     -> sethelper
+  0 3064660328145    site.py                  8     <- sethelper
+  0 3064660328153    site.py                  8     -> aliasmbcs
+  0 3064660328161    site.py                  8     <- aliasmbcs
+  0 3064660328170    site.py                  8     -> setencoding
+  0 3064660328178    site.py                  7     <- setencoding
+  0 3064660328186    site.py                  8     -> execsitecustomize
+  0 3064660328736    site.py                549     <- execsitecustomize
+  0 3064660328748    site.py                 12   <- main
+  0 3064660328758    site.py                  9 <- ?
+  0 3064660329029    warnings.py            270 -> ?
+  0 3064660329184    linecache.py           155   -> ?
+  0 3064660329201    linecache.py            16   <- ?
+  0 3064660329220    warnings.py             18   -> _OptionError
+  0 3064660329228    warnings.py              8   <- _OptionError
+  0 3064660329246    warnings.py             17   -> _processoptions
+  0 3064660329255    warnings.py              8   <- _processoptions
+  0 3064660329266    warnings.py             10   -> simplefilter
+  0 3064660329278    warnings.py             12   <- simplefilter
+  0 3064660329288    warnings.py              9   -> simplefilter
+  0 3064660329298    warnings.py             10   <- simplefilter
+  0 3064660329307    warnings.py              8 <- ?
+  0 3064660329533    __init__.py            226 -> ?
+  0 3064660330090    codecs.py              557   -> ?
+  0 3064660330148    codecs.py               57     -> Codec
+  0 3064660330158    codecs.py               10     <- Codec
+  0 3064660330171    codecs.py               13     -> StreamWriter
+  0 3064660330182    codecs.py               10     <- StreamWriter
+  0 3064660330194    codecs.py               11     -> StreamReader
+  0 3064660330206    codecs.py               12     <- StreamReader
+  0 3064660330217    codecs.py               11     -> StreamReaderWriter
+  0 3064660330229    codecs.py               11     <- StreamReaderWriter
+  0 3064660330239    codecs.py               10     -> StreamRecoder
+  0 3064660330251    codecs.py               11     <- StreamRecoder
+  0 3064660330267    codecs.py               16   <- ?
+  0 3064660331439    aliases.py            1171   -> ?
+  0 3064660331500    aliases.py              61   <- ?
+  0 3064660331526    __init__.py             25   -> CodecRegistryError
+  0 3064660331535    __init__.py              9   <- CodecRegistryError
+  0 3064660331557    __init__.py             21 <- ?
+  0 3064660331577    __init__.py             20 -> search_function
+  0 3064660331590    __init__.py             12   -> normalize_encoding
+  0 3064660331605    __init__.py             15   <- normalize_encoding
+  0 3064660331728    ascii.py               122   -> ?
+  0 3064660331742    ascii.py                13     -> Codec
+  0 3064660331752    ascii.py                 9     <- Codec
+  0 3064660331766    ascii.py                13     -> StreamWriter
+  0 3064660331774    ascii.py                 8     <- StreamWriter
+  0 3064660331787    ascii.py                13     -> StreamReader
+  0 3064660331796    ascii.py                 8     <- StreamReader
+  0 3064660331819    ascii.py                23     -> StreamConverter
+  0 3064660331829    ascii.py                 9     <- StreamConverter
+  0 3064660331842    ascii.py                13   <- ?
+  0 3064660331860    ascii.py                17   -> getregentry
+  0 3064660331869    ascii.py                 9   <- getregentry
+  0 3064660331897    __init__.py             27 <- search_function
+  0 3064660332263    func_abc.py            366 -> ?
+  0 3064660333735    func_abc.py           1471   -> func_a
+  0 3064661340597    func_abc.py        1006862     -> func_b
+  0 3064662350504    func_abc.py        1009906       -> func_c
+  0 3064663350678    func_abc.py        1000174       <- func_c
+  0 3064663350700    func_abc.py             22     <- func_b
+  0 3064663350709    func_abc.py              8   <- func_a
+  0 3064663350717    func_abc.py              8 <- ?
+^C
+
+The fifth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which - first a whole lot of
+pre-processing, then working through the func_abc.py program. 
+
+The TIME(us) column shows time since boot.
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the third last line of data output
+shows the time elapsing between func_c returning and func_b returning as 22
+microseconds.
+
+The FILE column shows file that was being executed.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/py_funccalls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_funccalls_example.txt
new file mode 100644
index 0000000..0ac8780
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_funccalls_example.txt
@@ -0,0 +1,89 @@
+The following are examples of py_funccalls.d.
+
+This is a simple script to count executed PHP functions. Here it traces
+an example program, Code/Python/func_abc.py
+
+# py_funccalls.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+ FILE                             FUNC                                CALLS
+ UserDict.py                      ?                                       1
+ UserDict.py                      DictMixin                               1
+ UserDict.py                      IterableUserDict                        1
+ UserDict.py                      UserDict                                1
+ UserDict.py                      __init__                                1
+ __init__.py                      ?                                       1
+ __init__.py                      CodecRegistryError                      1
+ __init__.py                      normalize_encoding                      1
+ __init__.py                      search_function                         1
+ aliases.py                       ?                                       1
+ ascii.py                         ?                                       1
+ ascii.py                         Codec                                   1
+ ascii.py                         StreamConverter                         1
+ ascii.py                         StreamReader                            1
+ ascii.py                         StreamWriter                            1
+ ascii.py                         getregentry                             1
+ codecs.py                        ?                                       1
+ codecs.py                        Codec                                   1
+ codecs.py                        StreamReader                            1
+ codecs.py                        StreamReaderWriter                      1
+ codecs.py                        StreamRecoder                           1
+ codecs.py                        StreamWriter                            1
+ copy_reg.py                      ?                                       1
+ func_abc.py                      ?                                       1
+ func_abc.py                      func_a                                  1
+ func_abc.py                      func_b                                  1
+ func_abc.py                      func_c                                  1
+ linecache.py                     ?                                       1
+ os.py                            ?                                       1
+ os.py                            _Environ                                1
+ os.py                            __init__                                1
+ os.py                            _get_exports_list                       1
+ posixpath.py                     ?                                       1
+ posixpath.py                     basename                                1
+ posixpath.py                     dirname                                 1
+ site.py                          ?                                       1
+ site.py                          _Helper                                 1
+ site.py                          _Printer                                1
+ site.py                          _init_pathinfo                          1
+ site.py                          abs__file__                             1
+ site.py                          addsitepackages                         1
+ site.py                          aliasmbcs                               1
+ site.py                          execsitecustomize                       1
+ site.py                          main                                    1
+ site.py                          removeduppaths                          1
+ site.py                          setcopyright                            1
+ site.py                          setencoding                             1
+ site.py                          sethelper                               1
+ site.py                          setquit                                 1
+ stat.py                          ?                                       1
+ types.py                         ?                                       1
+ types.py                         _C                                      1
+ warnings.py                      ?                                       1
+ warnings.py                      _OptionError                            1
+ warnings.py                      _processoptions                         1
+ posixpath.py                     exists                                  2
+ posixpath.py                     split                                   2
+ site.py                          addsitedir                              2
+ warnings.py                      simplefilter                            2
+ copy_reg.py                      constructor                             3
+ copy_reg.py                      pickle                                  3
+ site.py                          __init__                                3
+ site.py                          addpackage                              3
+ stat.py                          S_IFMT                                  6
+ stat.py                          S_ISDIR                                 6
+ posixpath.py                     isdir                                   8
+ os.py                            _exists                                10
+ <string>                         ?                                      11
+ posixpath.py                     normcase                               14
+ site.py                          makepath                               14
+ posixpath.py                     join                                   20
+ posixpath.py                     abspath                                22
+ posixpath.py                     isabs                                  22
+ posixpath.py                     normpath                               22
+
+It tells you how many times each function was called, and which file this
+function was associated with.  In this case you can see most of the function
+calls come from functions within the posixpath.py library.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/py_malloc_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_malloc_example.txt
new file mode 100644
index 0000000..be8fc25
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_malloc_example.txt
@@ -0,0 +1,508 @@
+The following are examples of py_malloc.d
+
+This is an experimental script to identify who is calling malloc() for memory 
+allocation, and to print distribution plots of the requested bytes.  Here you
+can see it running on Code/Python/func_abc.py
+
+# py_malloc.d -c ./func_abc.py
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+
+Python malloc byte distributions by engine caller,
+
+   libpython2.4.so.1.0`_PyUnicode_New, total bytes = 2 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   libpython2.4.so.1.0`find_key, total bytes = 16 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   libpython2.4.so.1.0`PyInterpreterState_New, total bytes = 36 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   libpython2.4.so.1.0`_PyImport_Init, total bytes = 60 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   libpython2.4.so.1.0`PyThreadState_New, total bytes = 84 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   libpython2.4.so.1.0`pmerge, total bytes = 132 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@                                       1        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   16       
+              16 |                                         0        
+
+   libpython2.4.so.1.0`PyThread_allocate_lock, total bytes = 144 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              64 |                                         0        
+
+   libpython2.4.so.1.0`convertsimple, total bytes = 210 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+              64 |                                         0        
+
+   libc.so.1`strdup, total bytes = 451 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@                                      1        
+               4 |@@@                                      1        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     8        
+              32 |@@@@@@@@@@@@@@@                          6        
+              64 |                                         0        
+
+   libpython2.4.so.1.0`PyList_New, total bytes = 528 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@                       22       
+               8 |@@@@@@@@@@@@@@@@@                        21       
+              16 |@@@@@                                    6        
+              32 |                                         0        
+              64 |                                         0        
+             128 |@                                        1        
+             256 |                                         0        
+
+   libpython2.4.so.1.0`PyTokenizer_FromFile, total bytes = 1024 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   libpython2.4.so.1.0`_PyExc_Init, total bytes = 1058 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   40       
+              32 |@@                                       2        
+              64 |                                         0        
+
+   libpython2.4.so.1.0`tok_new, total bytes = 1832 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+            1024 |                                         0        
+
+   libpython2.4.so.1.0`fill_free_list, total bytes = 1976 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+            1024 |                                         0        
+
+   libpython2.4.so.1.0`PyParser_New, total bytes = 12024 
+           value  ------------- Distribution ------------- count    
+            2048 |                                         0        
+            4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+            8192 |                                         0        
+
+   libpython2.4.so.1.0`PyObject_Malloc, total bytes = 35152 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@                      20       
+             512 |@@@@@@@                                  7        
+            1024 |@@@@@@@@@@                               11       
+            2048 |@@@@                                     4        
+            4096 |                                         0        
+
+   libpython2.4.so.1.0`PyMem_Malloc, total bytes = 50683 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@                                      2        
+              16 |@@@@@@@                                  4        
+              32 |@@                                       1        
+              64 |@@@@@@@@@@@@@                            8        
+             128 |@@@@@                                    3        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |@@@@@@@@@@                               6        
+           16384 |                                         0        
+
+   libc.so.1`_findbuf, total bytes = 51800 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@                          4        
+            1024 |@@@@                                     1        
+            2048 |                                         0        
+            4096 |@@@@@@@                                  2        
+            8192 |@@@@@@@@@@@@@@@                          4        
+           16384 |                                         0        
+
+   libpython2.4.so.1.0`dictresize, total bytes = 178752 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@                                        1        
+             256 |@@@@@@@@@@@@@@@@@@@@@                    29       
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@                           19       
+            2048 |@                                        1        
+            4096 |@                                        2        
+            8192 |                                         0        
+           16384 |@                                        1        
+           32768 |                                         0        
+           65536 |@                                        1        
+          131072 |                                         0        
+
+   libpython2.4.so.1.0`new_arena, total bytes = 262208 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@                     1        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |                                         0        
+           32768 |                                         0        
+           65536 |                                         0        
+          131072 |                                         0        
+          262144 |@@@@@@@@@@@@@@@@@@@@                     1        
+          524288 |                                         0        
+
+
+Python malloc byte distributions by Python file and function,
+
+   site.py, addsitepackages, bytes total = 4 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   site.py, abs__file__, bytes total = 60 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   posixpath.py, exists, bytes total = 83 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   stat.py, S_ISDIR, bytes total = 364 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   site.py, _init_pathinfo, bytes total = 380 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   UserDict.py, DictMixin, bytes total = 384 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   codecs.py, StreamReader, bytes total = 384 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   codecs.py, StreamReaderWriter, bytes total = 384 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   codecs.py, StreamRecoder, bytes total = 384 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   codecs.py, StreamWriter, bytes total = 384 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   os.py, _Environ, bytes total = 384 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   site.py, _Printer, bytes total = 384 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   site.py, addsitedir, bytes total = 388 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   linecache.py, ?, bytes total = 396 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@                     1        
+             512 |                                         0        
+
+   posixpath.py, isdir, bytes total = 608 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@                                  2        
+               4 |                                         0        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@                  7        
+              32 |@@@@@@@                                  2        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@                                      1        
+             512 |                                         0        
+
+   os.py, _get_exports_list, bytes total = 612 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   posixpath.py, abspath, bytes total = 728 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+             512 |                                         0        
+
+   site.py, execsitecustomize, bytes total = 790 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     9        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@@                                     1        
+             512 |                                         0        
+
+   UserDict.py, UserDict, bytes total = 1920 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@                     1        
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@                     1        
+            2048 |                                         0        
+
+   stat.py, ?, bytes total = 1920 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@                     1        
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@                     1        
+            2048 |                                         0        
+
+   types.py, ?, bytes total = 2680 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@                                   1        
+               8 |@@@@@@@@@@@                              2        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@                        3        
+             512 |                                         0        
+            1024 |@@@@@@                                   1        
+            2048 |                                         0        
+
+   posixpath.py, ?, bytes total = 3306 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@                         2        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@                         2        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@                                 1        
+            4096 |                                         0        
+
+   copy_reg.py, ?, bytes total = 3547 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@                         2        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@@@@@@                                 1        
+             512 |@@@@@@@@                                 1        
+            1024 |                                         0        
+            2048 |@@@@@@@@                                 1        
+            4096 |                                         0        
+
+   warnings.py, ?, bytes total = 3924 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@                                 1        
+              32 |@@@@@@@@                                 1        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@                         2        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@                                 1        
+            4096 |                                         0        
+
+   func_abc.py, func_a, bytes total = 5100 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@                     1        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |@@@@@@@@@@@@@@@@@@@@                     1        
+            8192 |                                         0        
+
+   codecs.py, ?, bytes total = 5612 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@                                   1        
+             128 |@@@@@@                                   1        
+             256 |@@@@@@@@@@@                              2        
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@                        3        
+            2048 |                                         0        
+
+   aliases.py, ?, bytes total = 8064 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@                            1        
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@                            1        
+            2048 |                                         0        
+            4096 |@@@@@@@@@@@@@                            1        
+            8192 |                                         0        
+
+   func_abc.py, ?, bytes total = 16105 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@                                       1        
+               8 |@@@@@                                    2        
+              16 |@@@@@@@@@                                4        
+              32 |@@@@@                                    2        
+              64 |                                         0        
+             128 |@@                                       1        
+             256 |@@@@@@@                                  3        
+             512 |@@                                       1        
+            1024 |@@@@@                                    2        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |@@                                       1        
+           16384 |                                         0        
+
+   os.py, ?, bytes total = 58957 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@                                       3        
+               8 |@@@@@                                    6        
+              16 |@                                        1        
+              32 |@@                                       2        
+              64 |                                         0        
+             128 |@                                        1        
+             256 |@@@@@@@@@@@@@@@@@@                       23       
+             512 |@@                                       3        
+            1024 |@@@@@                                    7        
+            2048 |                                         0        
+            4096 |@@@                                      4        
+            8192 |@                                        1        
+           16384 |                                         0        
+
+   site.py, ?, bytes total = 62589 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@                                      2        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@            20       
+             512 |@                                        1        
+            1024 |@@@                                      2        
+            2048 |@                                        1        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |@@@                                      2        
+           32768 |                                         0        
+
+   __init__.py, ?, bytes total = 62593 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@                                       1        
+               2 |                                         0        
+               4 |                                         0        
+               8 |                                         0        
+              16 |@@@                                      2        
+              32 |@@                                       1        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@@@@@@@@@                              7        
+             512 |@@@@@@@@@@@@@@@@                         10       
+            1024 |@@@                                      2        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |@@@                                      2        
+           32768 |                                         0        
+
+   posixpath.py, join, bytes total = 262144 
+           value  ------------- Distribution ------------- count    
+          131072 |                                         0        
+          262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+          524288 |                                         0        
+
+   os.py, _exists, bytes total = 362768 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@                                        10       
+               8 |@                                        10       
+              16 |@@                                       20       
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@                                        7        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       447      
+            1024 |@@                                       20       
+            2048 |                                         0        
+            4096 |@                                        10       
+            8192 |                                         0        
+
+
+The results are divided into two sections.  If a malloc() occurred while in a
+Python function, then that function is identified as responsible; and the
+results will appear in the second section - Python malloc byte distributions
+by Python file and function.
+
+Otherwise the caller of malloc() is identified as responsible - which will be
+a function from the Python engine, and these are noted in the first section -
+Python malloc byte distributions by engine caller.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/py_mallocstk_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_mallocstk_example.txt
new file mode 100644
index 0000000..a466737
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_mallocstk_example.txt
@@ -0,0 +1,314 @@
+Following are examples of running py_mallocstk.d.  This traces malloc() from
+Python, printing byte distributions by user stack trace.
+
+Here we see the script runnin on the program Code/Python/func_abc.py
+
+# py_mallocstk.d -c ./func_abc.py
+
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+
+Python malloc byte distributions by stack trace,
+
+
+
+              libc.so.1`malloc
+              libpython2.4.so.1.0`r_object+0x52f
+              libpython2.4.so.1.0`r_object+0x491
+              libpython2.4.so.1.0`r_object+0xd3
+              libpython2.4.so.1.0`r_object+0x491
+              libpython2.4.so.1.0`r_object+0xd3
+              libpython2.4.so.1.0`r_object+0x491
+              libpython2.4.so.1.0`r_object+0xd3
+              libpython2.4.so.1.0`PyMarshal_ReadObjectFromString+0x36
+              libpython2.4.so.1.0`PyMarshal_ReadLastObjectFromFile+0x6a
+              libpython2.4.so.1.0`read_compiled_module+0xf
+              libpython2.4.so.1.0`load_source_module+0x63
+              libpython2.4.so.1.0`load_module+0xac
+              libpython2.4.so.1.0`import_submodule+0xfb
+              libpython2.4.so.1.0`load_next+0xee
+              libpython2.4.so.1.0`import_module_ex+0x48
+              libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+              libpython2.4.so.1.0`builtin___import__+0x4e
+              libpython2.4.so.1.0`PyCFunction_Call+0x15f
+              libpython2.4.so.1.0`PyObject_Call+0x1d
+              libpython2.4.so.1.0`PyEval_CallObjectWithKeywords+0xb8
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xd3c
+                [ /usr/lib/python2.4/encodings/__init__.py:28 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`PyImport_ExecCodeModuleEx+0xc0
+              libpython2.4.so.1.0`load_source_module+0xe6
+              libpython2.4.so.1.0`load_module+0xac
+              libpython2.4.so.1.0`load_package+0xef
+              libpython2.4.so.1.0`load_module+0x6a
+              libpython2.4.so.1.0`import_submodule+0xfb
+              libpython2.4.so.1.0`load_next+0xa2
+              libpython2.4.so.1.0`import_module_ex+0x48
+              libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+              libpython2.4.so.1.0`_PyCodecRegistry_Init+0xce
+              libpython2.4.so.1.0`_PyCodec_Lookup+0x2a
+              libpython2.4.so.1.0`PyCodec_Encoder+0xf
+              libpython2.4.so.1.0`Py_InitializeEx+0x257
+              libpython2.4.so.1.0`Py_Initialize+0xd
+              libpython2.4.so.1.0`Py_Main+0x4db
+              python`main+0x11
+              python`_start+0x7a
+
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+
+              libc.so.1`malloc
+              libpython2.4.so.1.0`_PyUnicode_New+0xb2
+              libpython2.4.so.1.0`_PyUnicodeUCS2_Init+0x19
+              libpython2.4.so.1.0`Py_InitializeEx+0x11c
+              libpython2.4.so.1.0`Py_Initialize+0xd
+              libpython2.4.so.1.0`Py_Main+0x4db
+              python`main+0x11
+              python`_start+0x7a
+
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+
+              libc.so.1`malloc
+              libc.so.1`_real_gettext_u+0x81
+              libc.so.1`dgettext+0x5e
+              libc.so.1`strerror+0x40
+              libpython2.4.so.1.0`PyErr_SetFromErrnoWithFilenameObject+0x2d
+              libpython2.4.so.1.0`PyErr_SetFromErrnoWithFilename+0x27
+              libpython2.4.so.1.0`posix_error_with_allocated_filename+0x17
+              libpython2.4.so.1.0`posix_do_stat+0x21f
+              libpython2.4.so.1.0`posix_stat+0x1f
+              libpython2.4.so.1.0`PyCFunction_Call+0x15f
+              libpython2.4.so.1.0`call_function+0x406
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/posixpath.py:195 (isdir) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:202 (addsitepackages) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:382 (main) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:397 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`PyImport_ExecCodeModuleEx+0xc0
+              libpython2.4.so.1.0`load_source_module+0xe6
+              libpython2.4.so.1.0`load_module+0xac
+              libpython2.4.so.1.0`import_submodule+0xfb
+              libpython2.4.so.1.0`load_next+0xa2
+              libpython2.4.so.1.0`import_module_ex+0x48
+              libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+              libpython2.4.so.1.0`builtin___import__+0x4e
+              libpython2.4.so.1.0`PyCFunction_Call+0x15f
+              libpython2.4.so.1.0`PyObject_Call+0x1d
+              libpython2.4.so.1.0`PyObject_CallFunction+0x90
+              libpython2.4.so.1.0`PyImport_Import+0x163
+              libpython2.4.so.1.0`PyImport_ImportModule+0x1f
+              libpython2.4.so.1.0`initsite+0x10
+              libpython2.4.so.1.0`Py_InitializeEx+0x1ea
+              libpython2.4.so.1.0`Py_Initialize+0xd
+              libpython2.4.so.1.0`Py_Main+0x4db
+              python`main+0x11
+              python`_start+0x7a
+
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+[... around 17000 lines truncated ...]
+
+
+              libc.so.1`malloc
+              libpython2.4.so.1.0`PyObject_Malloc+0x126
+              libpython2.4.so.1.0`fixstate+0x26
+              libpython2.4.so.1.0`fixdfa+0x2a
+              libpython2.4.so.1.0`PyGrammar_AddAccelerators+0x1b
+              libpython2.4.so.1.0`PyParser_New+0x18
+              libpython2.4.so.1.0`parsetok+0x17
+              libpython2.4.so.1.0`PyParser_ParseStringFlagsFilename+0x72
+              libpython2.4.so.1.0`PyParser_ParseStringFlags+0x1c
+              libpython2.4.so.1.0`PyParser_SimpleParseStringFlags+0x23
+              libpython2.4.so.1.0`PyRun_StringFlags+0x2c
+              libpython2.4.so.1.0`builtin_eval+0x273
+              libpython2.4.so.1.0`PyCFunction_Call+0x15f
+              libpython2.4.so.1.0`call_function+0x406
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/os.py:503 (_exists) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/os.py:509 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`PyImport_ExecCodeModuleEx+0xc0
+              libpython2.4.so.1.0`load_source_module+0xe6
+              libpython2.4.so.1.0`load_module+0xac
+              libpython2.4.so.1.0`import_submodule+0xfb
+              libpython2.4.so.1.0`load_next+0xa2
+              libpython2.4.so.1.0`import_module_ex+0x48
+              libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+              libpython2.4.so.1.0`builtin___import__+0x4e
+              libpython2.4.so.1.0`PyCFunction_Call+0x15f
+              libpython2.4.so.1.0`PyObject_Call+0x1d
+              libpython2.4.so.1.0`PyEval_CallObjectWithKeywords+0xb8
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xd3c
+                [ /usr/lib/python2.4/site.py:58 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`PyImport_ExecCodeModuleEx+0xc0
+              libpython2.4.so.1.0`load_source_module+0xe6
+              libpython2.4.so.1.0`load_module+0xac
+              libpython2.4.so.1.0`import_submodule+0xfb
+              libpython2.4.so.1.0`load_next+0xa2
+              libpython2.4.so.1.0`import_module_ex+0x48
+              libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+              libpython2.4.so.1.0`builtin___import__+0x4e
+              libpython2.4.so.1.0`PyCFunction_Call+0x15f
+              libpython2.4.so.1.0`PyObject_Call+0x1d
+              libpython2.4.so.1.0`PyObject_CallFunction+0x90
+              libpython2.4.so.1.0`PyImport_Import+0x163
+              libpython2.4.so.1.0`PyImport_ImportModule+0x1f
+              libpython2.4.so.1.0`initsite+0x10
+              libpython2.4.so.1.0`Py_InitializeEx+0x1ea
+              libpython2.4.so.1.0`Py_Initialize+0xd
+              libpython2.4.so.1.0`Py_Main+0x4db
+              python`main+0x11
+              python`_start+0x7a
+
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 331      
+            1024 |                                         0        
+
+
+              libc.so.1`malloc
+              libpython2.4.so.1.0`new_arena+0x13
+              libpython2.4.so.1.0`PyObject_Malloc+0x91
+              libpython2.4.so.1.0`string_concat+0x109
+              libpython2.4.so.1.0`PyString_Concat+0x3b
+              libpython2.4.so.1.0`string_concatenate+0x150
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x27cc
+                [ /usr/lib/python2.4/posixpath.py:62 (join) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`function_call+0x15e
+              libpython2.4.so.1.0`PyObject_Call+0x1d
+              libpython2.4.so.1.0`ext_do_call+0xfb
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xb4f
+                [ /usr/lib/python2.4/site.py:66 (makepath) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`fast_function+0x112
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:138 (addpackage) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`fast_function+0x112
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:166 (addsitedir) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`fast_function+0x112
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ <string>:1 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+              libpython2.4.so.1.0`run_err_node+0x1f
+              libpython2.4.so.1.0`PyRun_String+0x27
+              libpython2.4.so.1.0`exec_statement+0x2b0
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x15d6
+                [ /usr/lib/python2.4/site.py:134 (addpackage) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`fast_function+0x112
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:166 (addsitedir) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`fast_function+0x112
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:203 (addsitepackages) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:382 (main) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:397 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`PyImport_ExecCodeModuleEx+0xc0
+              libpython2.4.so.1.0`load_source_module+0xe6
+              libpython2.4.so.1.0`load_module+0xac
+              libpython2.4.so.1.0`import_submodule+0xfb
+              libpython2.4.so.1.0`load_next+0xa2
+              libpython2.4.so.1.0`import_module_ex+0x48
+              libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+              libpython2.4.so.1.0`builtin___import__+0x4e
+              libpython2.4.so.1.0`PyCFunction_Call+0x15f
+              libpython2.4.so.1.0`PyObject_Call+0x1d
+              libpython2.4.so.1.0`PyObject_CallFunction+0x90
+              libpython2.4.so.1.0`PyImport_Import+0x163
+              libpython2.4.so.1.0`PyImport_ImportModule+0x1f
+              libpython2.4.so.1.0`initsite+0x10
+              libpython2.4.so.1.0`Py_InitializeEx+0x1ea
+              libpython2.4.so.1.0`Py_Initialize+0xd
+              libpython2.4.so.1.0`Py_Main+0x4db
+
+           value  ------------- Distribution ------------- count    
+          131072 |                                         0        
+          262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+          524288 |                                         0        
+
+
+              libc.so.1`malloc
+              libpython2.4.so.1.0`new_arena+0x13
+              libpython2.4.so.1.0`PyObject_Malloc+0x91
+              libpython2.4.so.1.0`_PyObject_GC_Malloc+0x13
+              libpython2.4.so.1.0`_PyObject_GC_NewVar+0x24
+              libpython2.4.so.1.0`PyTuple_New+0x78
+              libpython2.4.so.1.0`PyType_Ready+0x98
+              libpython2.4.so.1.0`PyType_Ready+0x60
+              libpython2.4.so.1.0`_Py_ReadyTypes+0x10
+              libpython2.4.so.1.0`Py_InitializeEx+0xed
+              libpython2.4.so.1.0`Py_Initialize+0xd
+              libpython2.4.so.1.0`Py_Main+0x4db
+              python`main+0x11
+              python`_start+0x7a
+
+           value  ------------- Distribution ------------- count    
+          131072 |                                         0        
+          262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+          524288 |                                         0        
+
+
+This output looks a little  unusual at first glance, and can be confusing for
+people unfamiliar with stack tracing and Python engine internals. 
+
+Start by looking at the distribution plots below each stack trace - each plot
+shows how many bytes were requested as a histogram by byte size.  This should
+indicated to you if python is malloc()ing much memory or not, and whether it
+is doing so in a few large malloc()s or many small ones.
+
+With this information in mind you can inspect the stack traces - these explain
+why Python called malloc() in that instance, along with translations of Python
+functions buried in the stack trace.  The stack traces can be hard to read at
+first (or even at second or at third) - since you are examining Python engine
+internals. Try looking for lines in square brackets - those are Python language 
+frames, and will show where (or if) the malloc() was caused by Python code.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/py_profile_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_profile_example.txt
new file mode 100644
index 0000000..04c0688
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_profile_example.txt
@@ -0,0 +1,399 @@
+The following are examples of py_profile.d.
+
+This samples stack traces for the process specified. This stack trace will 
+cross the Python engine and system libraries, and insert translations for 
+Python stack frames where appropriate.   Here you can see it running on 
+Code/Python/func_slow.py
+
+# py_profile.d -c ./func_slow.py
+Sampling 10-level stacks at 1001 Hertz... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+Top 25 most frequently sampled stacks,
+
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x266
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               11
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x278
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               11
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x278a
+                [ ./func_slow.py:10 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+               11
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x205
+                [ ./func_slow.py:18 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+              libpython2.4.so.1.0`run_err_node+0x1f
+              libpython2.4.so.1.0`PyRun_FileExFlags+0x5e
+              libpython2.4.so.1.0`PyRun_SimpleFileExFlags+0x12f
+               12
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x1fe
+                [ ./func_slow.py:10 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+               13
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x35d
+                [ ./func_slow.py:10 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+               13
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x1f5
+                [ ./func_slow.py:10 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+               14
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x149
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               14
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x5aa
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               14
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x58f
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               15
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x58f
+                [ ./func_slow.py:10 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+               15
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x254
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               17
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x286
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               17
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x2fbf
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               17
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x35d
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               18
+
+              libc.so.1`ioctl+0x7
+              libpython2.4.so.1.0`_init+0x25
+              ld.so.1`call_init+0xff
+              ld.so.1`setup+0xf93
+              ld.so.1`_setup+0x310
+              ld.so.1`_rt_boot+0x56
+              0x8047e5c
+               19
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x5a4
+                [ ./func_slow.py:18 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+              libpython2.4.so.1.0`run_err_node+0x1f
+              libpython2.4.so.1.0`PyRun_FileExFlags+0x5e
+              libpython2.4.so.1.0`PyRun_SimpleFileExFlags+0x12f
+               20
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x5ba
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               20
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x583
+                [ ./func_slow.py:10 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+               22
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x5a4
+                [ ./func_slow.py:10 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+               22
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x278a
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               24
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x205
+                [ ./func_slow.py:10 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+               25
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x583
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               35
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x5a4
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               47
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x205
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               50
+
+ The lines in square brackets are the native Python frames, the rest
+ are the Python engine.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/py_syscalls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_syscalls_example.txt
new file mode 100644
index 0000000..3aac3d28
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_syscalls_example.txt
@@ -0,0 +1,129 @@
+The following are examples of py_syscalls.d.
+
+This is a simple script to count executed Python functions and system calls.
+Here it traces an example program, Code/Pythong/func_abc.py.
+
+# py_syscalls.d -c ./func_abc.py
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+
+Calls for PID 145538,
+
+ FILE                             TYPE       NAME                      COUNT
+ UserDict.py                      func       ?                             1
+ UserDict.py                      func       DictMixin                     1
+ UserDict.py                      func       IterableUserDict              1
+ UserDict.py                      func       UserDict                      1
+ UserDict.py                      func       __init__                      1
+ __init__.py                      func       ?                             1
+ __init__.py                      func       CodecRegistryError            1
+ __init__.py                      func       normalize_encoding            1
+ __init__.py                      func       search_function               1
+ aliases.py                       func       ?                             1
+ ascii.py                         func       ?                             1
+ ascii.py                         func       Codec                         1
+ ascii.py                         func       StreamConverter               1
+ ascii.py                         func       StreamReader                  1
+ ascii.py                         func       StreamWriter                  1
+ ascii.py                         func       getregentry                   1
+ codecs.py                        func       ?                             1
+ codecs.py                        func       Codec                         1
+ codecs.py                        func       StreamReader                  1
+ codecs.py                        func       StreamReaderWriter            1
+ codecs.py                        func       StreamRecoder                 1
+ codecs.py                        func       StreamWriter                  1
+ copy_reg.py                      func       ?                             1
+ func_abc.py                      func       ?                             1
+ func_abc.py                      func       func_a                        1
+ func_abc.py                      func       func_b                        1
+ func_abc.py                      func       func_c                        1
+ func_abc.py                      syscall    getrlimit                     1
+ func_abc.py                      syscall    gtime                         1
+ func_abc.py                      syscall    memcntl                       1
+ func_abc.py                      syscall    rexit                         1
+ func_abc.py                      syscall    sigpending                    1
+ func_abc.py                      syscall    sysi86                        1
+ func_abc.py                      syscall    write                         1
+ func_abc.py                      syscall    xstat                         1
+ linecache.py                     func       ?                             1
+ os.py                            func       ?                             1
+ os.py                            func       _Environ                      1
+ os.py                            func       __init__                      1
+ os.py                            func       _get_exports_list             1
+ posixpath.py                     func       ?                             1
+ posixpath.py                     func       basename                      1
+ posixpath.py                     func       dirname                       1
+ site.py                          func       ?                             1
+ site.py                          func       _Helper                       1
+ site.py                          func       _Printer                      1
+ site.py                          func       _init_pathinfo                1
+ site.py                          func       abs__file__                   1
+ site.py                          func       addsitepackages               1
+ site.py                          func       aliasmbcs                     1
+ site.py                          func       execsitecustomize             1
+ site.py                          func       main                          1
+ site.py                          func       removeduppaths                1
+ site.py                          func       setcopyright                  1
+ site.py                          func       setencoding                   1
+ site.py                          func       sethelper                     1
+ site.py                          func       setquit                       1
+ stat.py                          func       ?                             1
+ types.py                         func       ?                             1
+ types.py                         func       _C                            1
+ warnings.py                      func       ?                             1
+ warnings.py                      func       _OptionError                  1
+ warnings.py                      func       _processoptions               1
+ func_abc.py                      syscall    fcntl                         2
+ func_abc.py                      syscall    fsat                          2
+ func_abc.py                      syscall    getcwd                        2
+ func_abc.py                      syscall    getpid                        2
+ func_abc.py                      syscall    mprotect                      2
+ func_abc.py                      syscall    readlink                      2
+ func_abc.py                      syscall    resolvepath                   2
+ func_abc.py                      syscall    setcontext                    2
+ posixpath.py                     func       exists                        2
+ posixpath.py                     func       split                         2
+ site.py                          func       addsitedir                    2
+ warnings.py                      func       simplefilter                  2
+ copy_reg.py                      func       constructor                   3
+ copy_reg.py                      func       pickle                        3
+ func_abc.py                      syscall    munmap                        3
+ func_abc.py                      syscall    pollsys                       3
+ site.py                          func       __init__                      3
+ site.py                          func       addpackage                    3
+ func_abc.py                      syscall    getdents64                    4
+ func_abc.py                      syscall    open                          4
+ func_abc.py                      syscall    sysconfig                     4
+ func_abc.py                      syscall    mmap                          5
+ func_abc.py                      syscall    lwp_exit                      6
+ stat.py                          func       S_IFMT                        6
+ stat.py                          func       S_ISDIR                       6
+ posixpath.py                     func       isdir                         8
+ os.py                            func       _exists                      10
+ <string>                         func       ?                            11
+ posixpath.py                     func       normcase                     14
+ site.py                          func       makepath                     14
+ posixpath.py                     func       join                         20
+ posixpath.py                     func       abspath                      22
+ posixpath.py                     func       isabs                        22
+ posixpath.py                     func       normpath                     22
+ func_abc.py                      syscall    ioctl                        28
+ func_abc.py                      syscall    llseek                       34
+ func_abc.py                      syscall    read                         36
+ func_abc.py                      syscall    close                        41
+ func_abc.py                      syscall    sigaction                    52
+ func_abc.py                      syscall    brk                          58
+ func_abc.py                      syscall    fstat64                      74
+ func_abc.py                      syscall    stat64                       77
+ func_abc.py                      syscall    open64                      173
+
+While tracing there were numerous system calls made, including 173 open64()'s, 
+and 77 stat64()'s.  There were also many functions called, including 22 each
+of abspath, isabs, and normpath by the posixpath.py library.
+
+This script can provide an insight to how an application is interacting
+with the system, by providing both application function calls and
+system calls in the same output.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/py_syscolors_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_syscolors_example.txt
new file mode 100644
index 0000000..0a6367f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_syscolors_example.txt
@@ -0,0 +1,584 @@
+The following are examples of py_syscolors.d.
+
+This is a simple script to trace the flow of Python functons and system
+calls made, and renders the output in color ("colour") using terminal
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Python/func_abc.py.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# py_syscolors.d -c ./func_abc.py
+C    PID  DELTA(us)              FILE:LINE TYPE     -- NAME
+[2;32m0 145544          2                 ":-    syscall  -> munmap[0m
+[2;32m0 145544         34                 ":-    syscall  <- munmap[0m
+[2;32m0 145544         56                 ":-    syscall  -> mmap[0m
+[2;32m0 145544         19                 ":-    syscall  <- mmap[0m
+[2;32m0 145544         42                 ":-    syscall  -> setcontext[0m
+[2;32m0 145544         10                 ":-    syscall  <- setcontext[0m
+[2;32m0 145544          9                 ":-    syscall  -> getrlimit[0m
+[2;32m0 145544         10                 ":-    syscall  <- getrlimit[0m
+[2;32m0 145544          9                 ":-    syscall  -> getpid[0m
+[2;32m0 145544          8                 ":-    syscall  <- getpid[0m
+[2;32m0 145544         68                 ":-    syscall  -> setcontext[0m
+[2;32m0 145544          8                 ":-    syscall  <- setcontext[0m
+[2;32m0 145544        121                 ":-    syscall  -> sigpending[0m
+[2;32m0 145544          9                 ":-    syscall  <- sigpending[0m
+[2;32m0 145544        172                 ":-    syscall  -> open64[0m
+[2;32m0 145544        114                 ":-    syscall  <- open64[0m
+[2;32m0 145544         14                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544      28209                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        285                 ":-    syscall  -> close[0m
+[2;32m0 145544         31                 ":-    syscall  <- close[0m
+[2;32m0 145544         41                 ":-    syscall  -> open64[0m
+[2;32m0 145544         88                 ":-    syscall  <- open64[0m
+[2;32m0 145544          9                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        293                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544         11                 ":-    syscall  -> close[0m
+[2;32m0 145544         13                 ":-    syscall  <- close[0m
+[2;32m0 145544       1182                 ":-    syscall  -> sysi86[0m
+[2;32m0 145544         12                 ":-    syscall  <- sysi86[0m
+[2;32m0 145544        143                 ":-    syscall  -> sysconfig[0m
+[2;32m0 145544         53                 ":-    syscall  <- sysconfig[0m
+[2;32m0 145544         95                 ":-    syscall  -> open64[0m
+[2;32m0 145544         22                 ":-    syscall  <- open64[0m
+[2;32m0 145544         11                 ":-    syscall  -> fstat64[0m
+[2;32m0 145544         10                 ":-    syscall  <- fstat64[0m
+[2;32m0 145544         31                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         42                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544         24                 ":-    syscall  -> brk[0m
+[2;32m0 145544         10                 ":-    syscall  <- brk[0m
+[2;32m0 145544          8                 ":-    syscall  -> brk[0m
+[2;32m0 145544         17                 ":-    syscall  <- brk[0m
+[2;32m0 145544         30                 ":-    syscall  -> sysconfig[0m
+[2;32m0 145544          8                 ":-    syscall  <- sysconfig[0m
+[2;32m0 145544         32                 ":-    syscall  -> brk[0m
+[2;32m0 145544          7                 ":-    syscall  <- brk[0m
+[2;32m0 145544          8                 ":-    syscall  -> brk[0m
+
+[... 1400 lines truncated ...]
+
+[2;32m0 145544          8                 ":-    syscall    -> fstat64[0m
+[2;32m0 145544          7                 ":-    syscall    <- fstat64[0m
+[2;32m0 145544         11                 ":-    syscall    -> read[0m
+[2;32m0 145544          8                 ":-    syscall    <- read[0m
+[2;32m0 145544         29                 ":-    syscall    -> brk[0m
+[2;32m0 145544          8                 ":-    syscall    <- brk[0m
+[2;32m0 145544          8                 ":-    syscall    -> brk[0m
+[2;32m0 145544         10                 ":-    syscall    <- brk[0m
+[2;32m0 145544        393                 ":-    syscall    -> llseek[0m
+[2;32m0 145544          8                 ":-    syscall    <- llseek[0m
+[2;32m0 145544          9                 ":-    syscall    -> close[0m
+[2;32m0 145544          9                 ":-    syscall    <- close[0m
+[2;35m0 145544         14        aliases.py:17   func       -> ?[0m
+[2;35m0 145544         57        aliases.py:18   func       <- ?[0m
+[2;32m0 145544         20                 ":-    syscall    -> llseek[0m
+[2;32m0 145544          8                 ":-    syscall    <- llseek[0m
+[2;32m0 145544          8                 ":-    syscall    -> close[0m
+[2;32m0 145544          8                 ":-    syscall    <- close[0m
+[2;35m0 145544         15       __init__.py:43   func       -> CodecRegistryError[0m
+[2;35m0 145544         12       __init__.py:45   func       <- CodecRegistryError[0m
+[2;35m0 145544         26       __init__.py:145  func     <- ?[0m
+[2;32m0 145544         18                 ":-    syscall  -> llseek[0m
+[2;32m0 145544          8                 ":-    syscall  <- llseek[0m
+[2;32m0 145544          8                 ":-    syscall  -> close[0m
+[2;32m0 145544          9                 ":-    syscall  <- close[0m
+[2;35m0 145544         13       __init__.py:69   func     -> search_function[0m
+[2;35m0 145544         14       __init__.py:47   func       -> normalize_encoding[0m
+[2;35m0 145544         18       __init__.py:67   func       <- normalize_encoding[0m
+[2;32m0 145544         29                 ":-    syscall    -> stat64[0m
+[2;32m0 145544         20                 ":-    syscall    <- stat64[0m
+[2;32m0 145544         10                 ":-    syscall    -> open64[0m
+[2;32m0 145544         18                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         17                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         18                 ":-    syscall    <- open64[0m
+[2;32m0 145544          9                 ":-    syscall    -> fstat64[0m
+[2;32m0 145544          8                 ":-    syscall    <- fstat64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         18                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> fstat64[0m
+[2;32m0 145544          8                 ":-    syscall    <- fstat64[0m
+[2;32m0 145544          9                 ":-    syscall    -> fstat64[0m
+[2;32m0 145544          7                 ":-    syscall    <- fstat64[0m
+[2;32m0 145544          8                 ":-    syscall    -> ioctl[0m
+[2;32m0 145544          7                 ":-    syscall    <- ioctl[0m
+[2;32m0 145544          8                 ":-    syscall    -> read[0m
+[2;32m0 145544         19                 ":-    syscall    <- read[0m
+[2;32m0 145544          8                 ":-    syscall    -> fstat64[0m
+[2;32m0 145544          8                 ":-    syscall    <- fstat64[0m
+[2;32m0 145544          8                 ":-    syscall    -> read[0m
+[2;32m0 145544          8                 ":-    syscall    <- read[0m
+[2;32m0 145544         22                 ":-    syscall    -> llseek[0m
+[2;32m0 145544          8                 ":-    syscall    <- llseek[0m
+[2;32m0 145544          8                 ":-    syscall    -> close[0m
+[2;32m0 145544          9                 ":-    syscall    <- close[0m
+[2;35m0 145544         12          ascii.py:8    func       -> ?[0m
+[2;35m0 145544         16          ascii.py:13   func         -> Codec[0m
+[2;35m0 145544         12          ascii.py:18   func         <- Codec[0m
+[2;35m0 145544         22          ascii.py:20   func         -> StreamWriter[0m
+[2;35m0 145544         11          ascii.py:21   func         <- StreamWriter[0m
+[2;35m0 145544         20          ascii.py:23   func         -> StreamReader[0m
+[2;35m0 145544         11          ascii.py:24   func         <- StreamReader[0m
+[2;35m0 145544         32          ascii.py:26   func         -> StreamConverter[0m
+[2;35m0 145544         12          ascii.py:29   func         <- StreamConverter[0m
+[2;35m0 145544         21          ascii.py:33   func       <- ?[0m
+[2;32m0 145544         17                 ":-    syscall    -> llseek[0m
+[2;32m0 145544          8                 ":-    syscall    <- llseek[0m
+[2;32m0 145544          8                 ":-    syscall    -> close[0m
+[2;32m0 145544          8                 ":-    syscall    <- close[0m
+[2;35m0 145544         13          ascii.py:33   func       -> getregentry[0m
+[2;35m0 145544         12          ascii.py:35   func       <- getregentry[0m
+[2;35m0 145544         34       __init__.py:142  func     <- search_function[0m
+[2;32m0 145544         23                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         42                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544         11                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544          9                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544         12                 ":-    syscall  -> readlink[0m
+[2;32m0 145544         16                 ":-    syscall  <- readlink[0m
+[2;32m0 145544         20                 ":-    syscall  -> resolvepath[0m
+[2;32m0 145544         18                 ":-    syscall  <- resolvepath[0m
+[2;32m0 145544         12                 ":-    syscall  -> getcwd[0m
+[2;32m0 145544         20                 ":-    syscall  <- getcwd[0m
+[2;32m0 145544         27                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544          8                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544         14                 ":-    syscall  -> llseek[0m
+[2;32m0 145544          7                 ":-    syscall  <- llseek[0m
+[2;32m0 145544          8                 ":-    syscall  -> fstat64[0m
+[2;32m0 145544          8                 ":-    syscall  <- fstat64[0m
+[2;32m0 145544          8                 ":-    syscall  -> fstat64[0m
+[2;32m0 145544          7                 ":-    syscall  <- fstat64[0m
+[2;32m0 145544          8                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544          7                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544          8                 ":-    syscall  -> read[0m
+[2;32m0 145544         19                 ":-    syscall  <- read[0m
+[2;32m0 145544          9                 ":-    syscall  -> llseek[0m
+[2;32m0 145544          7                 ":-    syscall  <- llseek[0m
+[2;32m0 145544          8                 ":-    syscall  -> llseek[0m
+[2;32m0 145544          7                 ":-    syscall  <- llseek[0m
+[2;32m0 145544         12                 ":-    syscall  -> read[0m
+[2;32m0 145544         13                 ":-    syscall  <- read[0m
+[2;32m0 145544        105                 ":-    syscall  -> read[0m
+[2;32m0 145544          9                 ":-    syscall  <- read[0m
+[2;32m0 145544         10                 ":-    syscall  -> llseek[0m
+[2;32m0 145544          7                 ":-    syscall  <- llseek[0m
+[2;32m0 145544          8                 ":-    syscall  -> close[0m
+[2;32m0 145544          9                 ":-    syscall  <- close[0m
+[2;35m0 145544        117       func_abc.py:3    func     -> ?[0m
+[2;32m0 145544         20                 ":-    syscall    -> stat64[0m
+[2;32m0 145544         15                 ":-    syscall    <- stat64[0m
+[2;32m0 145544         10                 ":-    syscall    -> stat64[0m
+[2;32m0 145544         13                 ":-    syscall    <- stat64[0m
+[2;32m0 145544         10                 ":-    syscall    -> open64[0m
+[2;32m0 145544         15                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         13                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         13                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         13                 ":-    syscall    <- open64[0m
+[2;32m0 145544          9                 ":-    syscall    -> stat64[0m
+[2;32m0 145544         13                 ":-    syscall    <- stat64[0m
+[2;32m0 145544          9                 ":-    syscall    -> open64[0m
+[2;32m0 145544         13                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         13                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         13                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         13                 ":-    syscall    <- open64[0m
+[2;32m0 145544          9                 ":-    syscall    -> stat64[0m
+[2;32m0 145544         15                 ":-    syscall    <- stat64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         15                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         15                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         15                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         15                 ":-    syscall    <- open64[0m
+[2;32m0 145544          9                 ":-    syscall    -> stat64[0m
+[2;32m0 145544         17                 ":-    syscall    <- stat64[0m
+[2;32m0 145544          9                 ":-    syscall    -> open64[0m
+[2;32m0 145544         17                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         16                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         16                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         16                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> stat64[0m
+[2;32m0 145544         17                 ":-    syscall    <- stat64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         17                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         16                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         16                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         16                 ":-    syscall    <- open64[0m
+[2;32m0 145544          9                 ":-    syscall    -> stat64[0m
+[2;32m0 145544         17                 ":-    syscall    <- stat64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         19                 ":-    syscall    <- open64[0m
+[2;32m0 145544         14                 ":-    syscall    -> fstat64[0m
+[2;32m0 145544          9                 ":-    syscall    <- fstat64[0m
+[2;32m0 145544         20                 ":-    syscall    -> xstat[0m
+[2;32m0 145544         18                 ":-    syscall    <- xstat[0m
+[2;32m0 145544          8                 ":-    syscall    -> resolvepath[0m
+[2;32m0 145544         19                 ":-    syscall    <- resolvepath[0m
+[2;32m0 145544         10                 ":-    syscall    -> open[0m
+[2;32m0 145544         19                 ":-    syscall    <- open[0m
+[2;32m0 145544         10                 ":-    syscall    -> mmap[0m
+[2;32m0 145544         21                 ":-    syscall    <- mmap[0m
+[2;32m0 145544         33                 ":-    syscall    -> mmap[0m
+[2;32m0 145544         13                 ":-    syscall    <- mmap[0m
+[2;32m0 145544          9                 ":-    syscall    -> mmap[0m
+[2;32m0 145544         16                 ":-    syscall    <- mmap[0m
+[2;32m0 145544          8                 ":-    syscall    -> mmap[0m
+[2;32m0 145544         11                 ":-    syscall    <- mmap[0m
+[2;32m0 145544         34                 ":-    syscall    -> munmap[0m
+[2;32m0 145544         11                 ":-    syscall    <- munmap[0m
+[2;32m0 145544         43                 ":-    syscall    -> memcntl[0m
+[2;32m0 145544         13                 ":-    syscall    <- memcntl[0m
+[2;32m0 145544          8                 ":-    syscall    -> close[0m
+[2;32m0 145544          9                 ":-    syscall    <- close[0m
+[2;32m0 145544         30                 ":-    syscall    -> mprotect[0m
+[2;32m0 145544         13                 ":-    syscall    <- mprotect[0m
+[2;32m0 145544        169                 ":-    syscall    -> mprotect[0m
+[2;32m0 145544         13                 ":-    syscall    <- mprotect[0m
+[2;32m0 145544          2                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        280                 ":-    syscall  -> open[0m
+[2;32m0 145544         90                 ":-    syscall  <- open[0m
+[2;32m0 145544        154                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        214                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        301                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        186                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        210                 ":-    syscall  -> close[0m
+[2;32m0 145544         18                 ":-    syscall  <- close[0m
+[2;32m0 145544        146                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        208                 ":-    syscall  -> open[0m
+[2;32m0 145544         73                 ":-    syscall  <- open[0m
+[2;32m0 145544        151                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        209                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         45                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        171                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        194                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        203                 ":-    syscall  -> open[0m
+[2;32m0 145544         63                 ":-    syscall  <- open[0m
+[2;32m0 145544        150                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        209                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        280                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        185                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        193                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        230                 ":-    syscall  -> open[0m
+[2;32m0 145544         82                 ":-    syscall  <- open[0m
+[2;32m0 145544        151                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        210                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         45                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        171                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        195                 ":-    syscall  -> close[0m
+[2;32m0 145544         18                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        204                 ":-    syscall  -> open[0m
+[2;32m0 145544         64                 ":-    syscall  <- open[0m
+[2;32m0 145544        149                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        208                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        283                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        184                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        192                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        146                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        209                 ":-    syscall  -> open[0m
+[2;32m0 145544         72                 ":-    syscall  <- open[0m
+[2;32m0 145544        150                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        209                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         45                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        171                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        198                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        860                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        223                 ":-    syscall  -> open[0m
+[2;32m0 145544         83                 ":-    syscall  <- open[0m
+[2;32m0 145544        151                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        281                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        187                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        196                 ":-    syscall  -> close[0m
+[2;32m0 145544         19                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        209                 ":-    syscall  -> open[0m
+[2;32m0 145544         69                 ":-    syscall  <- open[0m
+[2;32m0 145544        151                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         47                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        173                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        199                 ":-    syscall  -> close[0m
+[2;32m0 145544         18                 ":-    syscall  <- close[0m
+[2;32m0 145544        144                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        212                 ":-    syscall  -> open[0m
+[2;32m0 145544         67                 ":-    syscall  <- open[0m
+[2;32m0 145544        149                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        282                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        187                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        197                 ":-    syscall  -> close[0m
+[2;32m0 145544         59                 ":-    syscall  <- close[0m
+[2;32m0 145544        637                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        222                 ":-    syscall  -> open[0m
+[2;32m0 145544         80                 ":-    syscall  <- open[0m
+[2;32m0 145544        151                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        214                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         47                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        172                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        199                 ":-    syscall  -> close[0m
+[2;32m0 145544         19                 ":-    syscall  <- close[0m
+[2;32m0 145544        144                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        205                 ":-    syscall  -> open[0m
+[2;32m0 145544         62                 ":-    syscall  <- open[0m
+[2;32m0 145544        150                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        211                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        304                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        190                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        197                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        211                 ":-    syscall  -> open[0m
+[2;32m0 145544         70                 ":-    syscall  <- open[0m
+[2;32m0 145544        149                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        211                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         46                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        172                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          2                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        260                 ":-    syscall  -> close[0m
+[2;32m0 145544         26                 ":-    syscall  <- close[0m
+[2;32m0 145544        160                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        207                 ":-    syscall  -> open[0m
+[2;32m0 145544         79                 ":-    syscall  <- open[0m
+[2;32m0 145544        151                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        216                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        274                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        187                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        195                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        211                 ":-    syscall  -> open[0m
+[2;32m0 145544         70                 ":-    syscall  <- open[0m
+[2;32m0 145544        149                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        214                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         48                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        173                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        201                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        211                 ":-    syscall  -> open[0m
+[2;32m0 145544         65                 ":-    syscall  <- open[0m
+[2;32m0 145544        150                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        324                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        342                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        203                 ":-    syscall  -> close[0m
+[2;32m0 145544         19                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> open[0m
+[2;32m0 145544         76                 ":-    syscall  <- open[0m
+[2;32m0 145544        150                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        214                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         48                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        174                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        198                 ":-    syscall  -> close[0m
+[2;32m0 145544         18                 ":-    syscall  <- close[0m
+[2;32m0 145544        146                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        206                 ":-    syscall  -> open[0m
+[2;32m0 145544         63                 ":-    syscall  <- open[0m
+[2;32m0 145544        150                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        272                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        185                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        194                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        146                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> open[0m
+[2;32m0 145544         70                 ":-    syscall  <- open[0m
+[2;32m0 145544        151                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        214                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         47                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        173                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        236                 ":-    syscall  -> close[0m
+[2;32m0 145544         23                 ":-    syscall  <- close[0m
+[2;32m0 145544        156                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        210                 ":-    syscall  -> open[0m
+[2;32m0 145544         76                 ":-    syscall  <- open[0m
+[2;32m0 145544        150                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        214                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        276                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        187                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        197                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        211                 ":-    syscall  -> open[0m
+[2;32m0 145544         71                 ":-    syscall  <- open[0m
+[2;32m0 145544        149                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        214                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         47                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        172                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        199                 ":-    syscall  -> close[0m
+[2;32m0 145544         19                 ":-    syscall  <- close[0m
+[2;32m0 145544        144                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        210                 ":-    syscall  -> open[0m
+[2;32m0 145544         64                 ":-    syscall  <- open[0m
+[2;32m0 145544        150                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        212                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        297                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        522                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        210                 ":-    syscall  -> close[0m
+[2;32m0 145544         21                 ":-    syscall  <- close[0m
+[2;32m0 145544        146                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> open[0m
+[2;32m0 145544         79                 ":-    syscall  <- open[0m
+[2;32m0 145544        151                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         47                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        173                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        201                 ":-    syscall  -> close[0m
+[2;32m0 145544         19                 ":-    syscall  <- close[0m
+[2;32m0 145544        144                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544      91667                 ":-    syscall    -> munmap[0m
+[2;32m0 145544         34                 ":-    syscall    <- munmap[0m
+[2;32m0 145544         65                 ":-    syscall    -> gtime[0m
+[2;32m0 145544          9                 ":-    syscall    <- gtime[0m
+[2;32m0 145544         13                 ":-    syscall    -> open[0m
+[2;32m0 145544         42                 ":-    syscall    <- open[0m
+[2;32m0 145544         10                 ":-    syscall    -> fstat64[0m
+[2;32m0 145544          9                 ":-    syscall    <- fstat64[0m
+[2;32m0 145544          8                 ":-    syscall    -> read[0m
+[2;32m0 145544         31                 ":-    syscall    <- read[0m
+[2;32m0 145544          9                 ":-    syscall    -> close[0m
+[2;32m0 145544         11                 ":-    syscall    <- close[0m
+[2;32m0 145544         65                 ":-    syscall    -> llseek[0m
+[2;32m0 145544          9                 ":-    syscall    <- llseek[0m
+[2;32m0 145544          8                 ":-    syscall    -> close[0m
+[2;32m0 145544          9                 ":-    syscall    <- close[0m
+[2;35m0 145544         25       func_abc.py:14   func       -> func_a[0m
+[2;32m0 145544         24                 ":-    syscall      -> ioctl[0m
+[2;32m0 145544          9                 ":-    syscall      <- ioctl[0m
+[2;32m0 145544          8                 ":-    syscall      -> fstat64[0m
+[2;32m0 145544          8                 ":-    syscall      <- fstat64[0m
+[2;32m0 145544          9                 ":-    syscall      -> fstat64[0m
+[2;32m0 145544          7                 ":-    syscall      <- fstat64[0m
+[2;32m0 145544         40                 ":-    syscall      -> pollsys[0m
+[2;32m0 145544    1009424                 ":-    syscall      <- pollsys[0m
+[2;35m0 145544         35       func_abc.py:9    func         -> func_b[0m
+[2;32m0 145544         40                 ":-    syscall        -> pollsys[0m
+[2;32m0 145544    1009681                 ":-    syscall        <- pollsys[0m
+[2;35m0 145544         36       func_abc.py:5    func           -> func_c[0m
+[2;32m0 145544         41                 ":-    syscall          -> pollsys[0m
+Function A
+Function B
+Function C
+[2;32m0 145544    1000116                 ":-    syscall          <- pollsys[0m
+[2;35m0 145544         34       func_abc.py:7    func           <- func_c[0m
+[2;35m0 145544         28       func_abc.py:12   func         <- func_b[0m
+[2;35m0 145544         14       func_abc.py:17   func       <- func_a[0m
+[2;35m0 145544         14       func_abc.py:19   func     <- ?[0m
+[2;32m0 145544         26                 ":-    syscall  -> sigaction[0m
+[2;32m0 145544         15                 ":-    syscall  <- sigaction[0m
+[2;32m0 145544       1150                 ":-    syscall  -> write[0m
+[2;32m0 145544         21                 ":-    syscall  <- write[0m
+[2;32m0 145544        212                 ":-    syscall  -> open64[0m
+[2;32m0 145544        116                 ":-    syscall  <- open64[0m
+[2;32m0 145544         11                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         24                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544         10                 ":-    syscall  -> close[0m
+[2;32m0 145544         16                 ":-    syscall  <- close[0m
+[2;32m0 145544          8                 ":-    syscall  -> open64[0m
+[2;32m0 145544         32                 ":-    syscall  <- open64[0m
+[2;32m0 145544          9                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        169                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544         10                 ":-    syscall  -> close[0m
+[2;32m0 145544         12                 ":-    syscall  <- close[0m
+[2;32m0 145544         62                 ":-    syscall  -> rexit[0m
+
+Here you can see the output showing the path the script follows as it is
+executed.
+
+[2;35m0 145544         35       func_abc.py:9    func         -> func_b[0m
+[2;32m0 145544         40                 ":-    syscall        -> pollsys[0m
+[2;32m0 145544    1009681                 ":-    syscall        <- pollsys[0m
+[2;35m0 145544         36       func_abc.py:5    func           -> func_c[0m
+
+This excerpt shows line 9 of the script executing. It makes a pollsys syscall
+in order to fulfill the request to sleep for one second, returns and then goes
+to line 5.  Checking the logic flow of the example program, this makes sense.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/py_who_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_who_example.txt
new file mode 100644
index 0000000..7d1c3f1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/py_who_example.txt
@@ -0,0 +1,34 @@
+These are examples of the results after running the py_who.d script.
+
+This script shows which UIDs and PIDs are running Python programs with Python 
+provider support, and how active they are.  It lists the name of the program, 
+along with the number of lines executed per program as recorded by the line
+provider.
+
+Here it runs as the Code/Python/func_abc.py program is executed.  
+
+# py_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+      PID    UID  FUNCS FILE
+   145442      0      1 /usr/lib/python2.4/encodings/aliases.py
+   145442      0      1 /usr/lib/python2.4/linecache.py
+   145442      0      2 /usr/lib/python2.4/types.py
+   145442      0      4 /usr/lib/python2.4/encodings/__init__.py
+   145442      0      4 func_abc.py
+   145442      0      5 /usr/lib/python2.4/UserDict.py
+   145442      0      5 /usr/lib/python2.4/warnings.py
+   145442      0      6 /usr/lib/python2.4/codecs.py
+   145442      0      6 /usr/lib/python2.4/encodings/ascii.py
+   145442      0      7 /usr/lib/python2.4/copy_reg.py
+   145442      0     11 <string>
+   145442      0     13 /usr/lib/python2.4/stat.py
+   145442      0     14 /usr/lib/python2.4/os.py
+   145442      0     36 /usr/lib/python2.4/site.py
+   145442      0    115 /usr/lib/python2.4/posixpath.py
+
+You can see that the program itself had four lines executed attributed to it,
+and the other lines in the program were associated with their particular
+Python library calls.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_calldist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_calldist_example.txt
new file mode 100644
index 0000000..088497c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_calldist_example.txt
@@ -0,0 +1,153 @@
+The following is an example of running rb_calldist.d and tracing the elapsed
+times for functions.
+
+We run rb_calldist.d while running the program Code/Ruby/func_abc.rb.  We can
+see that there are three sections in the DTrace output
+
+# rb_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Elapsed times (us),
+   ., obj-new, NoMemoryError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ., obj-new, SystemStackError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ., obj-new, ThreadGroup 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   ., obj-new, fatal 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   ., obj-new, Object 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |                                         0        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@                            1        
+              32 |                                         0        
+
+
+Exclusive function elapsed times (us),
+   func_abc.rb, func, Module::method_added 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |@@@@@@@@@@@@@                            1        
+               8 |                                         0        
+
+   func_abc.rb, func, Object::print 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              32 |@@@@@@@@@@@@@                            1        
+              64 |                                         0        
+
+   func_abc.rb, func, IO::write 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              64 |@@@@@@@@@@@@@                            1        
+             128 |                                         0        
+
+   func_abc.rb, func, Object::func_a 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   func_abc.rb, func, Object::func_b 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   func_abc.rb, func, Object::func_c 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   func_abc.rb, func, Object::sleep 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+         1048576 |                                         0        
+
+
+Inclusive function elapsed times (us),
+   func_abc.rb, func, Module::method_added 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |@@@@@@@@@@@@@                            1        
+               8 |                                         0        
+
+   func_abc.rb, func, IO::write 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              64 |@@@@@@@@@@@@@                            1        
+             128 |                                         0        
+
+   func_abc.rb, func, Object::print 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+             128 |@@@@@@@@@@@@@                            1        
+             256 |                                         0        
+
+   func_abc.rb, func, Object::func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   func_abc.rb, func, Object::func_b 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   func_abc.rb, func, Object::sleep 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+         1048576 |                                         0        
+
+   func_abc.rb, func, Object::func_a 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+The elapsed times show us that the script spent some small amount of time
+processing various events that were not functions.  In this case they were all
+obj-new events, and you can see that the slowest of these was a new Object at
+between 16 microseconds and 31 microseconds.
+
+The exclusive subroutine elapsed times show that each of our user defined
+functions took between 256 and 511 microseconds. This time excludes the time 
+spent in other subroutines.
+
+The inclusive subroutine elapsed times show that func_c() took between 0.5
+seconds and 1 second, func_b() took between 1 second and 2.1 seconds, and
+func_a() took between 2.1 seconds and 4.2 seconds to execute. This time
+includes the time spent in other subroutines called, and since func_a() called
+func_b() which called func_c(), these times make sense.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_calls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_calls_example.txt
new file mode 100644
index 0000000..acc0d4d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_calls_example.txt
@@ -0,0 +1,29 @@
+The following are examples of the results of running the rb_calls.d script.
+
+This script traces activity from all Ruby programs on the system that are
+running with Ruby provider support. In this example we see it running while
+the Code/Ruby/func_abc.rb script is run.
+
+# rb_calls.d
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE                     TYPE       NAME                              CALLS
+ .                        obj-new    NoMemoryError                         1
+ .                        obj-new    SystemStackError                      1
+ .                        obj-new    ThreadGroup                           1
+ .                        obj-new    fatal                                 1
+ func_abc.rb              method     Object::func_a                        1
+ func_abc.rb              method     Object::func_b                        1
+ func_abc.rb              method     Object::func_c                        1
+ .                        obj-new    Object                                3
+ func_abc.rb              method     IO::write                             3
+ func_abc.rb              method     Module::method_added                  3
+ func_abc.rb              method     Object::print                         3
+ func_abc.rb              method     Object::sleep                         3
+
+We can see that the file func_abc.rb called each of the user-defined functions
+included in the script; func_a, func_b, and func_c.  It also called the print
+object and sleep amongst other things.  Interspersed in the output are calls
+to new objects that are not tied to the program func_abc.rb.  They are called
+from the Ruby engine for some other reason.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_calltime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_calltime_example.txt
new file mode 100644
index 0000000..7245fec
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_calltime_example.txt
@@ -0,0 +1,77 @@
+The following is an example of running rb_calltime.d and tracing the elapsed
+times for functions.
+
+We run rb_calltime.d while running the program Code/Ruby/func_abc.rb.  We can
+see that there are four sections in the DTrace output
+
+# rb_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   .                    obj-new    NoMemoryError                           1
+   .                    obj-new    SystemStackError                        1
+   .                    obj-new    ThreadGroup                             1
+   .                    obj-new    fatal                                   1
+   func_abc.rb          func       Object::func_a                          1
+   func_abc.rb          func       Object::func_b                          1
+   func_abc.rb          func       Object::func_c                          1
+   .                    obj-new    Object                                  3
+   func_abc.rb          func       IO::write                               3
+   func_abc.rb          func       Module::method_added                    3
+   func_abc.rb          func       Object::print                           3
+   func_abc.rb          func       Object::sleep                           3
+   -                    total      -                                      15
+
+Elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   .                    obj-new    SystemStackError                        3
+   .                    obj-new    NoMemoryError                           3
+   .                    obj-new    fatal                                  11
+   .                    obj-new    ThreadGroup                            13
+   .                    obj-new    Object                                 26
+
+Exclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_abc.rb          func       Module::method_added                    9
+   func_abc.rb          func       Object::print                          92
+   func_abc.rb          func       IO::write                             185
+   func_abc.rb          func       Object::func_c                        344
+   func_abc.rb          func       Object::func_a                        379
+   func_abc.rb          func       Object::func_b                        383
+   func_abc.rb          func       Object::sleep                     3020597
+   -                    total      -                                 3021992
+
+Inclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_abc.rb          func       Module::method_added                    9
+   func_abc.rb          func       IO::write                             185
+   func_abc.rb          func       Object::print                         277
+   func_abc.rb          func       Object::func_c                    1009829
+   func_abc.rb          func       Object::func_b                    2019781
+   func_abc.rb          func       Object::sleep                     3020597
+   func_abc.rb          func       Object::func_a                    3021983
+
+The first section, Count, shows us how many times each function associated
+with func_abc.rb was called.  It also shows other functions called by the Ruby
+engine.
+
+The second section, elapsed times, shows how long each action that was not
+calling a function took.		
+
+The third section, exclusive function elapsed times, shows us how many 
+microseconds the program spends in each function.  This does not include the 
+time spent in any sub-functions called by that particular function.  The last 
+line gives us the total time in microseconds.
+
+The fourth section, inclusive function elapsed times, are the absolute time
+from when the function began to when it completed - which includes off-CPU time 
+due to other system events such as I/O, scheduling, interrupts, etc. In 
+particular, for this case it has included the time waiting for the sleep 
+commands.
+
+Elapsed times are useful for identifying where latencies are.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive function time.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_cpudist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_cpudist_example.txt
new file mode 100644
index 0000000..718495e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_cpudist_example.txt
@@ -0,0 +1,199 @@
+The following are examples of rb_cpudist.d.
+
+This script traces the on-CPU time of Ruby functions and prints a report in
+the form of a histogram.  Here it traces the example program, 
+Code/Ruby/func_slow.rb
+
+# rb_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+On-CPU times (us),
+   ., obj-new, NoMemoryError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ., obj-new, SystemStackError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ., obj-new, ThreadGroup 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   ., obj-new, fatal 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   ., obj-new, Object 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@                            1        
+              16 |                                         0        
+
+
+Exclusive function on-CPU times (us),
+   func_slow.rb, func, Module::method_added 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               2 |                                         0        
+
+   func_slow.rb, func, Object::print 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               8 |@@@@@@@@@@@@@                            1        
+              16 |                                         0        
+
+   func_slow.rb, func, IO::write 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              64 |@@@@@@@@@@@@@                            1        
+             128 |                                         0        
+
+   func_slow.rb, func, Object::func_a 
+           value  ------------- Distribution ------------- count    
+          131072 |                                         0        
+          262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+          524288 |                                         0        
+
+   func_slow.rb, func, Object::func_b 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   func_slow.rb, func, Fixnum::< 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 599556   
+               2 |                                         72       
+               4 |                                         35       
+               8 |                                         128      
+              16 |                                         158      
+              32 |                                         49       
+              64 |                                         3        
+             128 |                                         2        
+             256 |                                         0        
+
+   func_slow.rb, func, Object::func_c 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   func_slow.rb, func, Fixnum::+ 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1199062  
+               2 |                                         138      
+               4 |                                         74       
+               8 |                                         279      
+              16 |                                         344      
+              32 |                                         91       
+              64 |                                         9        
+             128 |                                         0        
+             256 |                                         3        
+             512 |                                         0        
+
+
+Inclusive function on-CPU times (us),
+   func_slow.rb, func, Module::method_added 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               2 |                                         0        
+
+   func_slow.rb, func, IO::write 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              64 |@@@@@@@@@@@@@                            1        
+             128 |                                         0        
+
+   func_slow.rb, func, Object::print 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              64 |@@@@@@@@@@@@@                            1        
+             128 |                                         0        
+
+   func_slow.rb, func, Fixnum::< 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 599556   
+               2 |                                         72       
+               4 |                                         35       
+               8 |                                         128      
+              16 |                                         158      
+              32 |                                         49       
+              64 |                                         3        
+             128 |                                         2        
+             256 |                                         0        
+
+   func_slow.rb, func, Fixnum::+ 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1199062  
+               2 |                                         138      
+               4 |                                         74       
+               8 |                                         279      
+              16 |                                         344      
+              32 |                                         91       
+              64 |                                         9        
+             128 |                                         0        
+             256 |                                         3        
+             512 |                                         0        
+
+   func_slow.rb, func, Object::func_b 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+   func_slow.rb, func, Object::func_c 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+   func_slow.rb, func, Object::func_a 
+           value  ------------- Distribution ------------- count    
+         2097152 |                                         0        
+         4194304 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         8388608 |                                         0        
+
+You can see that the results are in three sections.  
+
+The first section shows us the on-CPU time for actions that were not of the
+type 'func'.  
+
+The second section, Exclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, not including time spent in subroutines.  You can
+see here that Object::print had two instances of being on-CPU between 4
+microseconds and 7 microseconds, and once instance of being on-CPU between 8
+microseconds and 15 microseconds. 
+
+The third section, Inclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, including that time spent in subroutines called
+by those functions.  You can see that here Object::print had two instances 
+of being on-CPU between 32 microseconds and 63 microseconds, and one instance 
+of being on-CPU between 64 microseconds and 127 microseconds.
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly.  See Inclusive
+function on-CPU time for Fixnum::+ for an example.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_cputime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_cputime_example.txt
new file mode 100644
index 0000000..edfa5aa
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_cputime_example.txt
@@ -0,0 +1,81 @@
+The following are examples of rb_cputime.d.
+
+This script traces the on-CPU time of Ruby functions and prints a report.
+Here it traces the example program, Code/Ruby/func_slow.rb
+
+# rb_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   .                    obj-new    NoMemoryError                           1
+   .                    obj-new    SystemStackError                        1
+   .                    obj-new    ThreadGroup                             1
+   .                    obj-new    fatal                                   1
+   func_slow.rb         func       Object::func_a                          1
+   func_slow.rb         func       Object::func_b                          1
+   func_slow.rb         func       Object::func_c                          1
+   .                    obj-new    Object                                  3
+   func_slow.rb         func       IO::write                               3
+   func_slow.rb         func       Module::method_added                    3
+   func_slow.rb         func       Object::print                           3
+   func_slow.rb         func       Fixnum::<                          600003
+   func_slow.rb         func       Fixnum::+                         1200000
+   -                    total      -                                 1800015
+
+Elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   .                    obj-new    SystemStackError                        2
+   .                    obj-new    NoMemoryError                           2
+   .                    obj-new    fatal                                  11
+   .                    obj-new    ThreadGroup                            12
+   .                    obj-new    Object                                 19
+
+Exclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_slow.rb         func       Module::method_added                    4
+   func_slow.rb         func       Object::print                          57
+   func_slow.rb         func       IO::write                             180
+   func_slow.rb         func       Object::func_a                     405946
+   func_slow.rb         func       Fixnum::<                          691125
+   func_slow.rb         func       Object::func_b                     809970
+   func_slow.rb         func       Object::func_c                    1225235
+   func_slow.rb         func       Fixnum::+                         1285200
+   -                    total      -                                 4417721
+
+Inclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_slow.rb         func       Module::method_added                    4
+   func_slow.rb         func       IO::write                             180
+   func_slow.rb         func       Object::print                         238
+   func_slow.rb         func       Fixnum::<                          691125
+   func_slow.rb         func       Fixnum::+                         1285200
+   func_slow.rb         func       Object::func_c                    2212572
+   func_slow.rb         func       Object::func_b                    3683688
+   func_slow.rb         func       Object::func_a                    4417717
+
+You can see the results are printed in four sections.
+
+The first section reports how many times each subroutine was called, and it's
+type.
+
+The second section reports on the on-CPU time of anything that was not of type
+"func", in this case the only elements reported here are of type obj-new.
+
+The exclusive function on-CPU times shows, amongst other results, that func_a
+spent around 0.4 seconds on-CPU.  This time excludes time spent in other 
+subroutines.
+
+The inclusive function on-CPU times show that func_a spent around 4.4
+seconds on-CPU.  This includes the time spent in other subroutines called.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_flow_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_flow_example.txt
new file mode 100644
index 0000000..6cfa54f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_flow_example.txt
@@ -0,0 +1,54 @@
+The following are examples of rb_flow.d.
+
+This is a simple script to trace the flow of Ruby functions.
+Here it traces the example program, Code/Ruby/func_abc.rb
+ 
+# rb_flow.d
+  C TIME(us)         FILE                   -- CLASS::METHOD
+  0 3066417516583    func_abc.rb            -> Module::method_added
+  0 3066417516640    func_abc.rb            <- Module::method_added
+  0 3066417516658    func_abc.rb            -> Module::method_added
+  0 3066417516668    func_abc.rb            <- Module::method_added
+  0 3066417516680    func_abc.rb            -> Module::method_added
+  0 3066417516689    func_abc.rb            <- Module::method_added
+  0 3066417516701    func_abc.rb            -> Object::func_a
+  0 3066417516711    func_abc.rb              -> Object::print
+  0 3066417516730    func_abc.rb                -> IO::write
+  0 3066417516832    func_abc.rb                <- IO::write
+  0 3066417516841    func_abc.rb              <- Object::print
+  0 3066417516849    func_abc.rb              -> Object::sleep
+  0 3066418520705    func_abc.rb              <- Object::sleep
+  0 3066418520727    func_abc.rb              -> Object::func_b
+  0 3066418520744    func_abc.rb                -> Object::print
+  0 3066418520753    func_abc.rb                  -> IO::write
+  0 3066418520796    func_abc.rb                  <- IO::write
+  0 3066418520805    func_abc.rb                <- Object::print
+  0 3066418520813    func_abc.rb                -> Object::sleep
+  0 3066419530803    func_abc.rb                <- Object::sleep
+  0 3066419530825    func_abc.rb                -> Object::func_c
+  0 3066419530842    func_abc.rb                  -> Object::print
+  0 3066419530852    func_abc.rb                    -> IO::write
+  0 3066419530893    func_abc.rb                    <- IO::write
+  0 3066419530902    func_abc.rb                  <- Object::print
+  0 3066419530910    func_abc.rb                  -> Object::sleep
+  0 3066420540804    func_abc.rb                  <- Object::sleep
+  0 3066420540822    func_abc.rb                <- Object::func_c
+  0 3066420540831    func_abc.rb              <- Object::func_b
+  0 3066420540840    func_abc.rb            <- Object::func_a
+^C
+
+The fourth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which - the output above begins by adding
+new methods, then showing that func_a began; did some print IO; slept, and 
+returned from sleep; and then called func_b.
+
+The TIME(us) column shows time from boot in microseconds.
+
+The FILE column shows the file that was being executed. 
+
+If the output looks illogical, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_flowinfo_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_flowinfo_example.txt
new file mode 100644
index 0000000..14fd851
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_flowinfo_example.txt
@@ -0,0 +1,54 @@
+Following are examples of rb_flowinfo.d.
+
+This is a simple script to trace the flow of Ruby methods.  Here it traces the 
+example program, Code/Ruby/func_abc.rb.
+
+# rb_flowinfo.d
+C    PID  DELTA(us)              FILE:LINE TYPE     -- NAME
+0 146395          2       func_abc.rb:3    method   -> Module::method_added
+0 146395         26       func_abc.rb:3    method   <- Module::method_added
+0 146395         25       func_abc.rb:8    method   -> Module::method_added
+0 146395         11       func_abc.rb:8    method   <- Module::method_added
+0 146395         16       func_abc.rb:14   method   -> Module::method_added
+0 146395         10       func_abc.rb:14   method   <- Module::method_added
+0 146395         15       func_abc.rb:20   method   -> Object::func_a
+0 146395         12       func_abc.rb:15   method     -> Object::print
+0 146395         20       func_abc.rb:15   method       -> IO::write
+0 146395        110       func_abc.rb:15   method       <- IO::write
+0 146395         11       func_abc.rb:15   method     <- Object::print
+0 146395         11       func_abc.rb:16   method     -> Object::sleep
+0 146395    1003728       func_abc.rb:16   method     <- Object::sleep
+0 146395         35       func_abc.rb:17   method     -> Object::func_b
+0 146395         20       func_abc.rb:9    method       -> Object::print
+0 146395         12       func_abc.rb:9    method         -> IO::write
+0 146395         42       func_abc.rb:9    method         <- IO::write
+0 146395         11       func_abc.rb:9    method       <- Object::print
+0 146395         11       func_abc.rb:10   method       -> Object::sleep
+0 146395    1009976       func_abc.rb:10   method       <- Object::sleep
+0 146395         35       func_abc.rb:11   method       -> Object::func_c
+0 146395         20       func_abc.rb:4    method         -> Object::print
+0 146395         12       func_abc.rb:4    method           -> IO::write
+0 146395         38       func_abc.rb:4    method           <- IO::write
+0 146395         11       func_abc.rb:4    method         <- Object::print
+0 146395         11       func_abc.rb:5    method         -> Object::sleep
+0 146395    1009883       func_abc.rb:5    method         <- Object::sleep
+0 146395         29       func_abc.rb:5    method       <- Object::func_c
+0 146395         12       func_abc.rb:11   method     <- Object::func_b
+0 146395         11       func_abc.rb:17   method   <- Object::func_a
+^C
+
+As each method is entered, the last column is indented by 2 spaces. This
+shows which method is calling which.
+
+The DELTA(us) column shows the change in time from the previous line to the
+current line.
+
+The LINE column shows the line in the file what was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_flowtime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_flowtime_example.txt
new file mode 100644
index 0000000..27102da
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_flowtime_example.txt
@@ -0,0 +1,56 @@
+The following are examples of rb_flowtime.d.
+
+This is a simple script to trace the flow of Ruby methods.
+Here it traces the example program, Code/Ruby/func_abc.rb
+
+# rb_flowtime.d
+  C TIME(us)         FILE             DELTA(us) -- CLASS::METHOD
+  0 3066547402640    func_abc.rb              2 -> Module::method_added
+  0 3066547402662    func_abc.rb             22 <- Module::method_added
+  0 3066547402683    func_abc.rb             20 -> Module::method_added
+  0 3066547402693    func_abc.rb              9 <- Module::method_added
+  0 3066547402707    func_abc.rb             14 -> Module::method_added
+  0 3066547402716    func_abc.rb              9 <- Module::method_added
+  0 3066547402729    func_abc.rb             12 -> Object::func_a
+  0 3066547402740    func_abc.rb             10   -> Object::print
+  0 3066547402759    func_abc.rb             18     -> IO::write
+  0 3066547402860    func_abc.rb            101     <- IO::write
+  0 3066547402871    func_abc.rb             10   <- Object::print
+  0 3066547402881    func_abc.rb             10   -> Object::sleep
+  0 3066548410630    func_abc.rb        1007749   <- Object::sleep
+  0 3066548410660    func_abc.rb             30   -> Object::func_b
+  0 3066548410679    func_abc.rb             18     -> Object::print
+  0 3066548410689    func_abc.rb             10       -> IO::write
+  0 3066548410730    func_abc.rb             40       <- IO::write
+  0 3066548410740    func_abc.rb              9     <- Object::print
+  0 3066548410749    func_abc.rb              9     -> Object::sleep
+  0 3066549420724    func_abc.rb        1009974     <- Object::sleep
+  0 3066549420755    func_abc.rb             30     -> Object::func_c
+  0 3066549420773    func_abc.rb             18       -> Object::print
+  0 3066549420783    func_abc.rb             10         -> IO::write
+  0 3066549420825    func_abc.rb             41         <- IO::write
+  0 3066549420835    func_abc.rb              9       <- Object::print
+  0 3066549420844    func_abc.rb              9       -> Object::sleep
+  0 3066550430611    func_abc.rb        1009766       <- Object::sleep
+  0 3066550430635    func_abc.rb             24     <- Object::func_c
+  0 3066550430645    func_abc.rb             10   <- Object::func_b
+  0 3066550430655    func_abc.rb              9 <- Object::func_a
+^C
+
+The fifth column is indented by 2 spaces to show when a new method begins.
+This shows which method is calling which.
+
+The TIME(us) column shows time since boot.
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the seventh line of data output
+(skipping the header) reads as "the time from func_a beginning to
+calling the print method was 10 microseconds".
+
+The FILE column shows file that was being executed.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_funccalls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_funccalls_example.txt
new file mode 100644
index 0000000..27c9c0c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_funccalls_example.txt
@@ -0,0 +1,25 @@
+This is a list of examples of the usage of rb_funccalls.d.
+
+It reports method calls from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Here we run it while the program Code/Ruby/func_abc.rb is executing.
+
+# rb_funccalls.d
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE                             CLASS            METHOD              CALLS
+ func_abc.rb                      Object           func_a                  1
+ func_abc.rb                      Object           func_b                  1
+ func_abc.rb                      Object           func_c                  1
+ func_abc.rb                      IO               write                   3
+ func_abc.rb                      Module           method_added            3
+ func_abc.rb                      Object           print                   3
+ func_abc.rb                      Object           sleep                   3
+
+We can see that during that one Ruby program, Our 3 user-defined methods,
+func_a, func_b and func_c are called once each.  Amongst other calls we can
+see that a method from class IO - write, was called three times; probably by
+the print method.  If you look at the example program Code/Ruby/func_abc.rb,
+you can see that 'print' is used three times, but IO::write is never directly
+called.   
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_lines_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_lines_example.txt
new file mode 100644
index 0000000..544b508
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_lines_example.txt
@@ -0,0 +1,30 @@
+This simple script uses the line probe to count how many times a line was
+executed in a Ruby program.  In this example you can see it running on the
+Code/Ruby/func_slow.rb program.
+
+# rb_lines.d
+Tracing... Hit Ctrl-C to end.
+^C
+                             FILE:LINE        COUNT
+                     func_slow.rb:3               1
+                     func_slow.rb:4               1
+                     func_slow.rb:5               1
+                     func_slow.rb:6               1
+                     func_slow.rb:12              1
+                     func_slow.rb:13              1
+                     func_slow.rb:14              1
+                     func_slow.rb:15              1
+                     func_slow.rb:19              1
+                     func_slow.rb:22              1
+                     func_slow.rb:23              1
+                     func_slow.rb:24              1
+                     func_slow.rb:25              1
+                     func_slow.rb:29              1
+                     func_slow.rb:32              1
+                     func_slow.rb:26         100000
+                     func_slow.rb:27         100000
+                     func_slow.rb:16         200000
+                     func_slow.rb:17         200000
+                     func_slow.rb:7          300000
+                     func_slow.rb:8          300000
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_malloc_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_malloc_example.txt
new file mode 100644
index 0000000..e0917c9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_malloc_example.txt
@@ -0,0 +1,120 @@
+The following is an example of rb_malloc.d.
+
+WARNING: This script is not 100% accurate; This prints graphical
+representations of libc malloc() byte distributions by "recent" Ruby operation, 
+which we hope will be usually correct. This is an experimental script that may
+be improved over time.
+
+Here we can see it running on Code/Ruby/func_abc.rb
+
+# rb_malloc.d -c ./func_abc.rb
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+Ruby malloc byte distributions by recent Ruby operation,
+   func_abc.rb, method, Object::print 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |                                         0        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     1        
+              32 |                                         0        
+
+   func_abc.rb, method, Module::method_added 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   ., objnew, fatal 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@                                        1        
+               4 |@                                        1        
+               8 |@@@                                      2        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@             22       
+              32 |@@@@@@                                   5        
+              64 |                                         0        
+
+   func_abc.rb, method, IO::write 
+           value  ------------- Distribution ------------- count    
+            2048 |                                         0        
+            4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            8192 |                                         0        
+
+   ., objnew, SystemStackError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |                                         3        
+               4 |@@@@                                     32       
+               8 |@@                                       15       
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          279      
+              32 |@@@                                      30       
+              64 |                                         2        
+             128 |                                         0        
+
+   ., objnew, NoMemoryError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@                                        3        
+               4 |@@@                                      17       
+               8 |@@@@@@                                   37       
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@                 146      
+              32 |@@                                       13       
+              64 |                                         2        
+             128 |@@@                                      20       
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         1        
+            2048 |                                         0        
+
+   ., objnew, ThreadGroup 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |                                         8        
+               4 |@@@                                      224      
+               8 |@                                        93       
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              1806     
+              32 |@@@@@@@@                                 496      
+              64 |                                         3        
+             128 |                                         2        
+             256 |                                         0        
+             512 |                                         1        
+            1024 |                                         0        
+
+   ., objnew, Object 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |                                         35       
+               4 |@@@                                      291      
+               8 |@@@                                      300      
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           2679     
+              32 |@@                                       215      
+              64 |                                         7        
+             128 |                                         0        
+
+   ruby, startup, - 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@                                        10       
+               4 |@@@                                      34       
+               8 |@@@                                      38       
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          409      
+              32 |@@                                       30       
+              64 |                                         1        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         2        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |                                         0        
+           32768 |                                         0        
+           65536 |                                         0        
+          131072 |                                         1        
+          262144 |                                         0        
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_objcpu_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_objcpu_example.txt
new file mode 100644
index 0000000..48e8a78
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_objcpu_example.txt
@@ -0,0 +1,51 @@
+The following are examples of running rb_objcpu.d.
+
+The rb_objnew.d script reports the on-CPU time for new Object creation in Ruby
+while the script is tracing.   Here we see it running while 
+Code/Ruby/func_abc.rb is executed.
+
+# rb_objcpu.d
+Tracing... Hit Ctrl-C to end.
+^C
+Total object creation on-CPU time (ms): 0
+
+Object creation on-CPU time distributions (us),
+
+  NoMemoryError                                     
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+  SystemStackError                                  
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+  fatal                                             
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+  ThreadGroup                                       
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+  Object                                            
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@                            1        
+               2 |@@@@@@@@@@@@@                            1        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@                            1        
+              16 |                                         0        
+
+We can see that there were several different types of Objects created
+including three of type 'Object', one of which took 1 microsecond, one of
+which took 2 to 3 microseconds, and the last of which took between 8 and 15
+microseconds.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_objnew_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_objnew_example.txt
new file mode 100644
index 0000000..340ac9a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_objnew_example.txt
@@ -0,0 +1,21 @@
+The following are examples of running rb_objnew.d.  
+
+The rb_objnew.d script reports the new Ruby objects created (by filename and
+class) while the script is tracing.   Here we see it running while 
+Code/Ruby/func_abc.rb is executed.
+
+# rb_objnew.d
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE                     CLASS                                   COUNT
+ .                        NoMemoryError                               1
+ .                        SystemStackError                            1
+ .                        ThreadGroup                                 1
+ .                        fatal                                       1
+ .                        Object                                      3
+
+Since this is a simple example, not many objects were allocated - a few
+for the ruby engine, and three of class Object. No file was associated
+with these allocations, as they may have been caused by Ruby engine startup,
+and not necessarily lines of code in the example program.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_stat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_stat_example.txt
new file mode 100644
index 0000000..706bf95
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_stat_example.txt
@@ -0,0 +1,22 @@
+The following are examples of running rb_stat.d on Ruby programs.
+
+rb_stat.d shows you the number of events per second that have happened since
+the last line output.  The default interval is 1 second, but you can specify
+other intervals as arguments to the script.
+
+This shows the rb_stat.d script reflecting the Code/Ruby/func_slow.rb script.
+
+# ./rb_stat.d
+TIME                   EXEC/s METHOD/s OBJNEW/s OBJFRE/s RAIS/s RESC/s   GC/s
+2007 Sep 17 03:59:07        0        0        0        0      0      0      0
+2007 Sep 17 03:59:08        0   210426        7        0      0      0      0
+2007 Sep 17 03:59:09        0   724067        0        0      0      0      0
+2007 Sep 17 03:59:10        0   730877        0        0      0      0      0
+2007 Sep 17 03:59:11        0   134645        0        0      0      0      0
+2007 Sep 17 03:59:12        0        0        0        0      0      0      0
+2007 Sep 17 03:59:13        0        0        0        0      0      0      0
+^C
+
+We can see that at 2007 Sep 17 03:59:08 there were 0 new Ruby programs
+executed, 210426 methods called, 7 objects created, 0 objects freed, 0 raises,
+0 rescues and 0 garbage collects.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_syscalls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_syscalls_example.txt
new file mode 100644
index 0000000..869884b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_syscalls_example.txt
@@ -0,0 +1,54 @@
+The following are examples of sh_syscalls.d.
+
+This is a simple script to count Ruby methods and system calls.  Here we trace 
+an example program - Code/Ruby/func_abc.rb
+
+# rb_syscalls.d -c ./func_abc.rb
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+
+Calls for PID 146493,
+
+ FILE                             TYPE       NAME                      COUNT
+ func_abc.rb                      method     Object::func_a                1
+ func_abc.rb                      method     Object::func_b                1
+ func_abc.rb                      method     Object::func_c                1
+ func_abc.rb                      syscall    getpid                        1
+ func_abc.rb                      syscall    getrlimit                     1
+ func_abc.rb                      syscall    getrlimit64                   1
+ func_abc.rb                      syscall    mmap                          1
+ func_abc.rb                      syscall    munmap                        1
+ func_abc.rb                      syscall    rexit                         1
+ func_abc.rb                      syscall    schedctl                      1
+ func_abc.rb                      syscall    sigpending                    1
+ func_abc.rb                      syscall    sysconfig                     1
+ func_abc.rb                      syscall    sysi86                        1
+ func_abc.rb                      syscall    write                         1
+ func_abc.rb                      syscall    llseek                        2
+ func_abc.rb                      syscall    read                          2
+ func_abc.rb                      syscall    setcontext                    2
+ func_abc.rb                      method     IO::write                     3
+ func_abc.rb                      method     Module::method_added          3
+ func_abc.rb                      method     Object::print                 3
+ func_abc.rb                      method     Object::sleep                 3
+ func_abc.rb                      syscall    fstat64                       3
+ func_abc.rb                      syscall    getgid                        3
+ func_abc.rb                      syscall    getuid                        3
+ func_abc.rb                      syscall    ioctl                         3
+ func_abc.rb                      syscall    pollsys                       3
+ func_abc.rb                      syscall    close                         4
+ func_abc.rb                      syscall    lwp_sigmask                   4
+ func_abc.rb                      syscall    open64                        4
+ func_abc.rb                      syscall    gtime                         6
+ func_abc.rb                      syscall    sigaction                    12
+ func_abc.rb                      syscall    brk                          56
+
+While tracing, three user-defined functions were called - func_a, func_b and 
+func_c.  There were 3 instances of the IO::write method being called. There 
+were also many system calls made, including 56 brk()'s, and 12 sigaction()'s.
+
+This script can provide an insight to how a Ruby program is interacting
+with the system, by providing methods and system calls in the same output.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_syscolors_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_syscolors_example.txt
new file mode 100644
index 0000000..854016e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_syscolors_example.txt
@@ -0,0 +1,331 @@
+The following are examples of rb_syscolors.d.
+
+This is a simple script to trace the method flow of Ruby functions within a 
+program, and the system calls made.  It renders the output in color ("colour") 
+using terminal escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Ruby/func_abc.rb.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# rb_syscolors.d -c ./func_abc.rb
+C    PID  DELTA(us)              FILE:LINE TYPE     -- NAME
+[2;32m0 146499          2                 ":-    syscall  -> munmap[0m
+[2;32m0 146499         35                 ":-    syscall  <- munmap[0m
+[2;32m0 146499         56                 ":-    syscall  -> mmap[0m
+[2;32m0 146499         18                 ":-    syscall  <- mmap[0m
+[2;32m0 146499         41                 ":-    syscall  -> setcontext[0m
+[2;32m0 146499         10                 ":-    syscall  <- setcontext[0m
+[2;32m0 146499         10                 ":-    syscall  -> getrlimit[0m
+[2;32m0 146499         11                 ":-    syscall  <- getrlimit[0m
+[2;32m0 146499          9                 ":-    syscall  -> getpid[0m
+[2;32m0 146499          8                 ":-    syscall  <- getpid[0m
+[2;32m0 146499         66                 ":-    syscall  -> setcontext[0m
+[2;32m0 146499          8                 ":-    syscall  <- setcontext[0m
+[2;32m0 146499       1125                 ":-    syscall  -> sysi86[0m
+[2;32m0 146499         12                 ":-    syscall  <- sysi86[0m
+[2;32m0 146499         86                 ":-    syscall  -> open64[0m
+[2;32m0 146499         89                 ":-    syscall  <- open64[0m
+[2;32m0 146499         13                 ":-    syscall  -> ioctl[0m
+[2;32m0 146499         35                 ":-    syscall  <- ioctl[0m
+[2;32m0 146499         15                 ":-    syscall  -> close[0m
+[2;32m0 146499         16                 ":-    syscall  <- close[0m
+[2;32m0 146499        141                 ":-    syscall  -> getrlimit64[0m
+[2;32m0 146499         10                 ":-    syscall  <- getrlimit64[0m
+[2;32m0 146499         37                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499         17                 ":-    syscall  <- brk[0m
+[2;32m0 146499         19                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         11                 ":-    syscall  <- brk[0m
+[2;32m0 146499        495                 ":-    syscall  -> brk[0m
+[2;32m0 146499         11                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499         55                 ":-    syscall  -> sysconfig[0m
+[2;32m0 146499          9                 ":-    syscall  <- sysconfig[0m
+[2;32m0 146499        109                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        189                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499        161                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        144                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499        184                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499        129                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        174                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        145                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        129                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499        134                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        135                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499        136                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499         98                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499        132                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        125                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499        189                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        413                 ":-    syscall  -> brk[0m
+[2;32m0 146499         11                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        171                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        137                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        188                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499        135                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499         10                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499         10                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499          9                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499         12                 ":-    syscall  -> sigpending[0m
+[2;32m0 146499          8                 ":-    syscall  <- sigpending[0m
+[2;32m0 146499         15                 ":-    syscall  -> schedctl[0m
+[2;32m0 146499         44                 ":-    syscall  <- schedctl[0m
+[2;32m0 146499         17                 ":-    syscall  -> lwp_sigmask[0m
+[2;32m0 146499          8                 ":-    syscall  <- lwp_sigmask[0m
+[2;32m0 146499          9                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499         11                 ":-    syscall  -> lwp_sigmask[0m
+[2;32m0 146499          8                 ":-    syscall  <- lwp_sigmask[0m
+[2;32m0 146499          9                 ":-    syscall  -> lwp_sigmask[0m
+[2;32m0 146499          7                 ":-    syscall  <- lwp_sigmask[0m
+[2;32m0 146499          8                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  -> lwp_sigmask[0m
+[2;32m0 146499          7                 ":-    syscall  <- lwp_sigmask[0m
+[2;32m0 146499         65                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         11                 ":-    syscall  <- brk[0m
+[2;32m0 146499        149                 ":-    syscall  -> getuid[0m
+[2;32m0 146499          9                 ":-    syscall  <- getuid[0m
+[2;32m0 146499         12                 ":-    syscall  -> getgid[0m
+[2;32m0 146499          8                 ":-    syscall  <- getgid[0m
+[2;32m0 146499         29                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        184                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        171                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499         48                 ":-    syscall  -> getuid[0m
+[2;32m0 146499          8                 ":-    syscall  <- getuid[0m
+[2;32m0 146499          9                 ":-    syscall  -> getuid[0m
+[2;32m0 146499          7                 ":-    syscall  <- getuid[0m
+[2;32m0 146499         10                 ":-    syscall  -> getgid[0m
+[2;32m0 146499          7                 ":-    syscall  <- getgid[0m
+[2;32m0 146499          8                 ":-    syscall  -> getgid[0m
+[2;32m0 146499          7                 ":-    syscall  <- getgid[0m
+[2;32m0 146499         79                 ":-    syscall  -> open64[0m
+[2;32m0 146499         31                 ":-    syscall  <- open64[0m
+[2;32m0 146499         14                 ":-    syscall  -> llseek[0m
+[2;32m0 146499          9                 ":-    syscall  <- llseek[0m
+[2;32m0 146499          9                 ":-    syscall  -> close[0m
+[2;32m0 146499         12                 ":-    syscall  <- close[0m
+[2;32m0 146499         15                 ":-    syscall  -> open64[0m
+[2;32m0 146499         13                 ":-    syscall  <- open64[0m
+[2;32m0 146499         21                 ":-    syscall  -> fstat64[0m
+[2;32m0 146499         11                 ":-    syscall  <- fstat64[0m
+[2;32m0 146499         22                 ":-    syscall  -> read[0m
+[2;32m0 146499         36                 ":-    syscall  <- read[0m
+[2;32m0 146499        153                 ":-    syscall  -> read[0m
+[2;32m0 146499         10                 ":-    syscall  <- read[0m
+[2;32m0 146499         11                 ":-    syscall  -> llseek[0m
+[2;32m0 146499          8                 ":-    syscall  <- llseek[0m
+[2;32m0 146499          8                 ":-    syscall  -> close[0m
+[2;32m0 146499          9                 ":-    syscall  <- close[0m
+[1;35m0 146499         23       func_abc.rb:3    line     -- [0m
+[2;35m0 146499         64       func_abc.rb:3    method   -> Module::method_added[0m
+[2;35m0 146499         24       func_abc.rb:3    method   <- Module::method_added[0m
+[1;35m0 146499         20       func_abc.rb:8    line     -- [0m
+[2;35m0 146499         15       func_abc.rb:8    method   -> Module::method_added[0m
+[2;35m0 146499         13       func_abc.rb:8    method   <- Module::method_added[0m
+[1;35m0 146499         13       func_abc.rb:14   line     -- [0m
+[2;35m0 146499         14       func_abc.rb:14   method   -> Module::method_added[0m
+[2;35m0 146499         13       func_abc.rb:14   method   <- Module::method_added[0m
+[1;35m0 146499         12       func_abc.rb:20   line     -- [0m
+[2;35m0 146499         13       func_abc.rb:20   method   -> Object::func_a[0m
+[1;35m0 146499         12       func_abc.rb:15   line       -- [0m
+[2;35m0 146499         10       func_abc.rb:15   method     -> Object::print[0m
+[2;35m0 146499         22       func_abc.rb:15   method       -> IO::write[0m
+[2;32m0 146499         38                 ":-    syscall        -> ioctl[0m
+[2;32m0 146499         11                 ":-    syscall        <- ioctl[0m
+[2;32m0 146499         20                 ":-    syscall        -> fstat64[0m
+[2;32m0 146499          9                 ":-    syscall        <- fstat64[0m
+[2;32m0 146499          9                 ":-    syscall        -> brk[0m
+[2;32m0 146499          8                 ":-    syscall        <- brk[0m
+[2;32m0 146499          8                 ":-    syscall        -> brk[0m
+[2;32m0 146499         11                 ":-    syscall        <- brk[0m
+[2;32m0 146499         25                 ":-    syscall        -> fstat64[0m
+[2;32m0 146499          8                 ":-    syscall        <- fstat64[0m
+[2;35m0 146499         10       func_abc.rb:15   method       <- IO::write[0m
+[2;35m0 146499         13       func_abc.rb:15   method     <- Object::print[0m
+[1;35m0 146499         12       func_abc.rb:16   line       -- [0m
+[2;35m0 146499         10       func_abc.rb:16   method     -> Object::sleep[0m
+[2;32m0 146499         20                 ":-    syscall      -> gtime[0m
+[2;32m0 146499          9                 ":-    syscall      <- gtime[0m
+[2;32m0 146499         24                 ":-    syscall      -> pollsys[0m
+[2;32m0 146499    1006964                 ":-    syscall      <- pollsys[0m
+[2;32m0 146499         26                 ":-    syscall      -> gtime[0m
+[2;32m0 146499         14                 ":-    syscall      <- gtime[0m
+[2;35m0 146499         18       func_abc.rb:16   method     <- Object::sleep[0m
+[1;35m0 146499         27       func_abc.rb:17   line       -- [0m
+[2;35m0 146499         21       func_abc.rb:17   method     -> Object::func_b[0m
+[1;35m0 146499         19       func_abc.rb:9    line         -- [0m
+[2;35m0 146499         12       func_abc.rb:9    method       -> Object::print[0m
+[2;35m0 146499         14       func_abc.rb:9    method         -> IO::write[0m
+[2;35m0 146499         15       func_abc.rb:9    method         <- IO::write[0m
+[2;35m0 146499         12       func_abc.rb:9    method       <- Object::print[0m
+[1;35m0 146499         12       func_abc.rb:10   line         -- [0m
+[2;35m0 146499          9       func_abc.rb:10   method       -> Object::sleep[0m
+[2;32m0 146499         12                 ":-    syscall        -> gtime[0m
+[2;32m0 146499          8                 ":-    syscall        <- gtime[0m
+[2;32m0 146499         11                 ":-    syscall        -> pollsys[0m
+[2;32m0 146499    1009739                 ":-    syscall        <- pollsys[0m
+[2;32m0 146499         26                 ":-    syscall        -> gtime[0m
+[2;32m0 146499         14                 ":-    syscall        <- gtime[0m
+[2;35m0 146499         18       func_abc.rb:10   method       <- Object::sleep[0m
+[1;35m0 146499         27       func_abc.rb:11   line         -- [0m
+[2;35m0 146499         21       func_abc.rb:11   method       -> Object::func_c[0m
+[1;35m0 146499         20       func_abc.rb:4    line           -- [0m
+[2;35m0 146499         12       func_abc.rb:4    method         -> Object::print[0m
+[2;35m0 146499         14       func_abc.rb:4    method           -> IO::write[0m
+[2;35m0 146499         15       func_abc.rb:4    method           <- IO::write[0m
+[2;35m0 146499         12       func_abc.rb:4    method         <- Object::print[0m
+[1;35m0 146499         12       func_abc.rb:5    line           -- [0m
+[2;35m0 146499          9       func_abc.rb:5    method         -> Object::sleep[0m
+[2;32m0 146499         12                 ":-    syscall          -> gtime[0m
+[2;32m0 146499          8                 ":-    syscall          <- gtime[0m
+[2;32m0 146499         11                 ":-    syscall          -> pollsys[0m
+Function A
+Function B
+Function C
+[2;32m0 146499    1009762                 ":-    syscall          <- pollsys[0m
+[2;32m0 146499         25                 ":-    syscall          -> gtime[0m
+[2;32m0 146499         14                 ":-    syscall          <- gtime[0m
+[2;35m0 146499         19       func_abc.rb:5    method         <- Object::sleep[0m
+[2;35m0 146499         26       func_abc.rb:5    method       <- Object::func_c[0m
+[2;35m0 146499         13       func_abc.rb:11   method     <- Object::func_b[0m
+[2;35m0 146499         13       func_abc.rb:17   method   <- Object::func_a[0m
+[2;32m0 146499         33                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499         10                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499        100                 ":-    syscall  -> open64[0m
+[2;32m0 146499        107                 ":-    syscall  <- open64[0m
+[2;32m0 146499         10                 ":-    syscall  -> ioctl[0m
+[2;32m0 146499         10                 ":-    syscall  <- ioctl[0m
+[2;32m0 146499         11                 ":-    syscall  -> close[0m
+[2;32m0 146499         17                 ":-    syscall  <- close[0m
+[2;32m0 146499         28                 ":-    syscall  -> write[0m
+[2;32m0 146499         20                 ":-    syscall  <- write[0m
+[2;32m0 146499         11                 ":-    syscall  -> rexit[0m
+
+Here you can see the output showing the path the program follows in its
+execution.
+
+ie:
+[2;35m0 146499         10       func_abc.rb:16   method     -> Object::sleep[0m
+[2;32m0 146499         20                 ":-    syscall      -> gtime[0m
+[2;32m0 146499          9                 ":-    syscall      <- gtime[0m
+[2;32m0 146499         24                 ":-    syscall      -> pollsys[0m
+[2;32m0 146499    1006964                 ":-    syscall      <- pollsys[0m
+[2;32m0 146499         26                 ":-    syscall      -> gtime[0m
+[2;32m0 146499         14                 ":-    syscall      <- gtime[0m
+[2;35m0 146499         18       func_abc.rb:16   method     <- Object::sleep[0m
+[1;35m0 146499         27       func_abc.rb:17   line       -- [0m
+[2;35m0 146499         21       func_abc.rb:17   method     -> Object::func_b[0m
+[1;35m0 146499         19       func_abc.rb:9    line         -- [0m
+[2;35m0 146499         12       func_abc.rb:9    method       -> Object::print[0m
+[2;35m0 146499         14       func_abc.rb:9    method         -> IO::write[0m
+[2;35m0 146499         15       func_abc.rb:9    method         <- IO::write[0m
+[2;35m0 146499         12       func_abc.rb:9    method       <- Object::print[0m
+[1;35m0 146499         12       func_abc.rb:10   line         -- [0m
+
+shows that on cpu 0 the program is running a sleep command at line 16 of the
+func_abc.rb program (the pollsys and gtime syscalls are used in the Ruby 
+engine to implement sleep).  Then func_b runs, and prints a line
+(using Object::print which uses IO::write).  Notice that the 'write' syscall 
+does not happen until later.  It is probably being buffered by Ruby - you can
+confirm this through further DTracing.  Notice also tht you can see the output 
+of the program:
+
+Function A
+Function B
+Function C
+
+in the file happening before the write syscall is run.  DTrace does not do its 
+output in 'real time'.  There is a slight delay due to buffering.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_who_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_who_example.txt
new file mode 100644
index 0000000..35c0bb7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rb_who_example.txt
@@ -0,0 +1,20 @@
+These are examples of the results after running the rb_who.d script.
+
+This script shows which UIDs and PIDs are running Ruby programs with Ruby
+provider support, and how active they are.  It lists the name of the program,
+along with the number of lines executed per program as recorded by the line
+provider.
+
+Here it runs as three Ruby programs are executed.  Code/Ruby/func_abc.rb runs
+twice and Code/Ruby/func_slow.rb once.
+
+# rb_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+      PID    UID      LINES FILE
+   146485      0         12 ./func_abc.rb
+   146486      0         12 ./func_abc.rb
+   146487      0    1200015 ./func_slow.rb
+
+You can see that func_abc.rb has twelve lines of executable Ruby code, and
+that func_slow.rb has 100,000x that.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/readbytes_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/readbytes_example.txt
new file mode 100644
index 0000000..fa2923b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/readbytes_example.txt
@@ -0,0 +1,22 @@
+The following is a demonstration of the readbytes.d script,
+
+
+Here the readbytes.d script is run for a few seconds, then Ctrl-C is hit,
+
+   # readbytes.d
+   dtrace: description 'sysinfo:::readch ' matched 4 probes
+   ^C
+   
+     mozilla-bin                                                      16
+     gnome-smproxy                                                    64
+     metacity                                                         64
+     dsdm                                                             64
+     wnck-applet                                                      64
+     xscreensaver                                                     96
+     gnome-terminal                                                  900
+     ttymon                                                         5952
+     Xorg                                                          17544
+
+In this interval the Xorg command has successfully read 17.5 Kb, while
+ttymon has read 5952 bytes.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/readdist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/readdist_example.txt
new file mode 100644
index 0000000..42811d8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/readdist_example.txt
@@ -0,0 +1,35 @@
+The following is an example of the readdist.d script,
+
+
+Here the readdist.d script is run for a few seconds, then Ctrl-C is hit,
+
+   # readdist.d
+   dtrace: description 'sysinfo:::readch ' matched 4 probes
+   ^C
+   [...]
+     gnome-terminal
+              value  ------------- Distribution ------------- count
+                 16 |                                         0
+                 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   15
+                 64 |@@@                                      1
+                128 |                                         0
+   
+     Xorg
+              value  ------------- Distribution ------------- count
+                 -1 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@                      26
+                  1 |                                         0
+                  2 |                                         0
+                  4 |                                         0
+                  8 |@@@@                                     6
+                 16 |@                                        2
+                 32 |@                                        2
+                 64 |                                         0
+                128 |@@@@@@@@                                 11
+                256 |@@@                                      4
+                512 |                                         0
+
+This allows us to understand the read behaviour of each process. The
+Xorg command has executed 26 reads that returned 0 bytes, through
+to 4 reads that were at least 256 bytes (up to 511). 
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rfileio_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rfileio_example.txt
new file mode 100644
index 0000000..dcce81e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rfileio_example.txt
@@ -0,0 +1,94 @@
+The following are demonstrations of the rfileio.d script.
+
+
+rfileio.d prints file system statistics by file,
+
+   # ./rfileio.d
+   
+   Read IOPS, top 20 (count)
+   /lib/ld.so.1                                              logical          2
+   /devices/pseudo/clone@0:ptm                               logical          4
+   /usr/bin/grep                                             logical          4
+   /devices/pseudo/pts@0:3                                   logical          4
+   /extra1/contents                                         physical       1700
+   /extra1/contents                                          logical      11582
+   
+   Read Bandwidth, top 20 (bytes)
+   /devices/pseudo/pts@0:3                                   logical          3
+   /devices/pseudo/clone@0:ptm                               logical         92
+   /lib/ld.so.1                                              logical        212
+   /usr/bin/grep                                             logical        269
+   /extra1/contents                                         physical   48115712
+   /extra1/contents                                          logical   94865162
+   
+   Total File System miss-rate: 50%
+   ^C
+
+   $ ls -l /extra1/contents
+   -rw-r--r--   1 root     root     94865162 Nov  2 21:08 /extra1/contents
+
+The /extra1/contents file was read using the grep command. The output shows
+that half of the contents was returned from the cache, the other half from disk
+(50% miss-rate). It is 94,865,162 bytes in size, which can be seen both in
+the ls -l output and the logical read() bytes reported by rfileio.d. There
+were 11,582 logical read() calls, which the disk driver satisfied by using
+1,700 disk events (aggregation).
+
+
+
+The following demonstrates many files being read. 
+
+   # ./rfileio.d
+   
+   Read IOPS, top 20 (count)
+   /usr/bin/amd64/glib-mkenums                               logical          4
+   /usr/bin/amd64/glib-genmarshal                           physical          4
+   /usr/bin/amd64/gdk-pixbuf-query-loaders                   logical          4
+   /usr/bin/amd64/ls                                         logical          5
+   /usr/bin/amd64/pargs                                      logical          5
+   /usr/bin/amd64/ps                                         logical          5
+   /usr/bin/amd64/gconf-merge-tree                          physical          6
+   /usr/bin/amd64/cputrack                                   logical          6
+   /usr/bin/amd64/gconftool-2                               physical          6
+   /usr/bin/amd64/prctl                                      logical          6
+   /usr/bin/amd64/prstat                                     logical          6
+   /usr/bin/amd64/glib-genmarshal                            logical          7
+   /usr/bin/amd64/truss                                     physical          8
+   /usr/bin/amd64/sort                                       logical          9
+   /usr/bin/amd64/prex                                       logical         10
+   /usr/bin/amd64/gconf-merge-tree                           logical         13
+   /usr/bin/amd64/mdb                                       physical         15
+   /usr/bin/amd64/gconftool-2                                logical         15
+   /usr/bin/amd64/truss                                      logical         26
+   /usr/bin/amd64/mdb                                        logical         63
+   
+   Read Bandwidth, top 20 (bytes)
+   /usr/bin/amd64/prctl                                      logical      36784
+   /usr/bin/amd64/prctl                                     physical      36864
+   /usr/bin/amd64/prstat                                     logical      44760
+   /usr/bin/amd64/prstat                                    physical      45056
+   /usr/bin/amd64/glib-genmarshal                            logical      46064
+   /usr/bin/amd64/glib-genmarshal                           physical      46080
+   /usr/bin/amd64/cputrack                                   logical      46912
+   /usr/bin/amd64/cputrack                                  physical      47104
+   /usr/bin/amd64/sort                                       logical      65120
+   /usr/bin/amd64/sort                                      physical      65536
+   /usr/bin/amd64/prex                                       logical      80968
+   /usr/bin/amd64/prex                                      physical      81920
+   /usr/bin/amd64/gconf-merge-tree                           logical     113592
+   /usr/bin/amd64/gconf-merge-tree                          physical     122880
+   /usr/bin/amd64/gconftool-2                                logical     129208
+   /usr/bin/amd64/gconftool-2                               physical     139264
+   /usr/bin/amd64/truss                                      logical     246360
+   /usr/bin/amd64/truss                                     physical     262144
+   /usr/bin/amd64/mdb                                        logical     627456
+   /usr/bin/amd64/mdb                                       physical     638976
+   
+   Total File System miss-rate: 81%
+   ^C
+
+The miss-rate was 81%, meaning we are returning around 20% of the data from
+the cache. Details for the top 20 files read by-bytes and by-count are listed;
+this shows the /usr/bin/amd64/mdb file was read() 63 times, causing 15 disk
+reads, and while 627,456 bytes were requested, 638,976 bytes were read from 
+disk (the extra bytes are due to read-ahead and file system metadata).
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rfsio_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rfsio_example.txt
new file mode 100644
index 0000000..858ddf8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rfsio_example.txt
@@ -0,0 +1,82 @@
+The following are demonstrations of the rfsio.d script.
+
+
+
+Here we trace file read() activity that has fully missed the cache and 
+must be read from disk,
+
+   # ./rfsio.d
+   
+   Read IOPS (count)
+   /                                   logical          7
+   /extra1                            physical        162
+   /boot                               logical        235
+   /boot                              physical        410
+   /extra1                             logical       9514
+   
+   Read Bandwidth (bytes)
+   /                                   logical        533
+   /boot                               logical    1502386
+   /boot                              physical    1512960
+   /extra1                            physical   97153024
+   /extra1                             logical   97228668
+   
+   Total File System miss-rate: 100%
+   ^C
+
+The miss rate of 100% means that all of the file system activity missed
+the cache, and had to read from disk.
+
+
+
+The following demonstrates file read() activity to the root filesystem
+that mostly returned from the file system cache.
+
+   # ./rfsio.d
+   
+   Read IOPS (count)
+   /                                  physical          1
+   /extra1                            physical          9
+   /devices                            logical          9
+   /                                   logical         15
+   /extra1                             logical       4096
+   
+   Read Bandwidth (bytes)
+   /devices                            logical          9
+   /                                   logical        949
+   /                                  physical       8192
+   /extra1                            physical     917504
+   /extra1                             logical    4194304
+   
+   Total File System miss-rate: 22%
+   ^C
+
+The total miss-rate was 22%, which is based on the bytes transferred that
+missed the cache.
+
+
+
+
+Now for an unusual demonstration,
+
+   # ./rfsio.d
+   
+   Read IOPS (count)
+   /devices                            logical          1
+   /                                   logical         10
+   /extra1                            physical        106
+   /extra1                             logical       6337
+   
+   Read Bandwidth (bytes)
+   /devices                            logical          2
+   /                                   logical        961
+   /extra1                             logical   64846450
+   /extra1                            physical   66151424
+   
+   Total File System miss-rate: 102%
+   ^C
+
+Here the miss-rate is 102%, which indicates that more data was read from 
+disk than was requested; this can occur due to UFS read-ahead, which
+assists the performance of sequential disk activity at the small risk of
+reading too much data.  
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/runocc_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/runocc_example.txt
new file mode 100644
index 0000000..53dcb5f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/runocc_example.txt
@@ -0,0 +1,53 @@
+The following are demonstrations of the runocc.d script.
+
+
+
+Here we run it on a single CPU server that is fairly busy,
+
+   # ./runocc.d
+   
+        CPU  %runocc
+          0       86
+   
+        CPU  %runocc
+          0       85
+   
+        CPU  %runocc
+          0       82
+   ^C
+
+The run queue occupancy is around 85%, meaning most of the time there
+are runnable threads queued waiting for CPU.
+
+
+
+This script is more interesting on a multi-CPU server,
+
+   # ./runocc.d
+   
+        CPU  %runocc
+          1       16
+          3       27
+          0       38
+          2       75
+   
+        CPU  %runocc
+          0       25
+          2       41
+          3       42
+          1       50
+   
+        CPU  %runocc
+          3        1
+          0       17
+          2       26
+          1       27
+   
+        CPU  %runocc
+          3        2
+          2        5
+          0       24
+          1       25
+   ^C
+
+Here there was some degree of saturation, especially on CPU 2 to start with.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rwbbypid_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rwbbypid_example.txt
new file mode 100644
index 0000000..9091adf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rwbbypid_example.txt
@@ -0,0 +1,26 @@
+The following is a demonstration of the rwbbypid.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+   # rwbbypid.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD                       DIR            BYTES
+    20347 bash                        R               22
+    11053 dtrace                      W               32
+     1532 Xorg                        W               64
+    20317 sshd                        R               86
+    20347 bash                        W               87
+    20317 sshd                        W              137
+     1659 mozilla-bin                 R              213
+    20334 sshd                        R             1232
+    20334 sshd                        W             1282
+    11054 cp                          W            18652
+    11054 cp                          R            18652
+     1532 Xorg                        R            51112
+     1659 mozilla-bin                 W            51261
+
+In the above output, we can see that mozilla-bin with PID 1659 has written
+51261 bytes, while Xorg has read 51112 bytes.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rwbypid_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rwbypid_example.txt
new file mode 100644
index 0000000..0c8559b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rwbypid_example.txt
@@ -0,0 +1,19 @@
+The following is a demonstration of the rwbypid.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+   # rwbypid.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD                       DIR    COUNT
+    11131 dtrace                      W        2
+    20334 sshd                        W       17
+    20334 sshd                        R       24
+     1532 Xorg                        W       69
+     1659 mozilla-bin                 R      852
+     1659 mozilla-bin                 W     1128
+     1532 Xorg                        R     1702
+
+In the above output, we can see that Xorg with PID 1532 has made 1702 reads.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rwbytype_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rwbytype_example.txt
new file mode 100644
index 0000000..118cf16
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rwbytype_example.txt
@@ -0,0 +1,37 @@
+The following is an example fo the rwbytype.d script.
+
+
+We run rwbytype.d for a few seconds then hit Ctrl-C,
+
+   # rwbytype.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   PID    CMD               VTYPE  DIR     BYTES
+   1545   sshd                chr    W         1
+   10357  more                chr    R        30
+   2357   sshd                chr    W        31
+   10354  dtrace              chr    W        32
+   1545   sshd                chr    R        34
+   6778   bash                chr    W        44
+   1545   sshd               sock    R        52
+   405    poold               reg    W        68
+   1545   sshd               sock    W       136
+   10357  bash                reg    R       481
+   10356  find                reg    R       481
+   10355  bash                reg    R       481
+   10357  more                reg    R      1652
+   2357   sshd               sock    R      1664
+   10357  more                chr    W     96925
+   10357  more               fifo    R     97280
+   2357   sshd                chr    R     98686
+   10356  grep               fifo    W    117760
+   2357   sshd               sock    W    118972
+   10356  grep                reg    R    147645
+
+Here we can see that the grep process with PID 10356 read 147645 bytes
+from "regular" files. These are I/O bytes at the application level, so
+much of these read bytes would have been cached by the filesystem page cache.
+
+vnode file types are listed in /usr/include/sys/vnode.h, and give an idea of
+what the file descriptor refers to.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rwsnoop_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rwsnoop_example.txt
new file mode 100644
index 0000000..2ef26ab
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rwsnoop_example.txt
@@ -0,0 +1,98 @@
+The following is a demonstration of the rwsnoop program,
+
+
+Here we run it for about a second,
+
+   # rwsnoop
+     UID    PID CMD          D   BYTES FILE
+     100  20334 sshd         R      52 <unknown>
+     100  20334 sshd         W       1 /devices/pseudo/clone@0:ptm
+       0  20320 bash         W       1 /devices/pseudo/pts@0:12
+     100  20334 sshd         R       2 /devices/pseudo/clone@0:ptm
+     100  20334 sshd         W      52 <unknown>
+       0   2848 ls           W      58 /devices/pseudo/pts@0:12
+       0   2848 ls           W      68 /devices/pseudo/pts@0:12
+       0   2848 ls           W      57 /devices/pseudo/pts@0:12
+       0   2848 ls           W      67 /devices/pseudo/pts@0:12
+       0   2848 ls           W      48 /devices/pseudo/pts@0:12
+       0   2848 ls           W      49 /devices/pseudo/pts@0:12
+       0   2848 ls           W      33 /devices/pseudo/pts@0:12
+       0   2848 ls           W      41 /devices/pseudo/pts@0:12
+     100  20334 sshd         R     429 /devices/pseudo/clone@0:ptm
+     100  20334 sshd         W     468 <unknown>
+   ^C
+
+The output scrolls rather fast. Above, we can see an ls command was run,
+and we can see as ls writes each line. The "<unknown>" read/writes are 
+socket activity, which have no corresponding filename.
+
+
+For a summary style output, use the rwtop program.
+
+
+
+If a particular program is of interest, the "-n" option can be used
+to match on process name. Here we match on "bash" during a login where
+the user uses the bash shell as their default,
+
+   # rwsnoop -n bash
+     UID    PID CMD          D   BYTES FILE
+     100   2854 bash         R     757 /etc/nsswitch.conf
+     100   2854 bash         R       0 /etc/nsswitch.conf
+     100   2854 bash         R     668 /etc/passwd
+     100   2854 bash         R     980 /etc/profile
+     100   2854 bash         W      15 /devices/pseudo/pts@0:14
+     100   2854 bash         R      10 /export/home/brendan/.bash_profile
+     100   2854 bash         R     867 /export/home/brendan/.bashrc
+     100   2854 bash         R     980 /etc/profile
+     100   2854 bash         W      15 /devices/pseudo/pts@0:14
+     100   2854 bash         R    8951 /export/home/brendan/.bash_history
+     100   2854 bash         R    8951 /export/home/brendan/.bash_history
+     100   2854 bash         R    1652 /usr/share/lib/terminfo/d/dtterm
+     100   2854 bash         W      41 /devices/pseudo/pts@0:14
+     100   2854 bash         R       1 /devices/pseudo/pts@0:14
+     100   2854 bash         W       1 /devices/pseudo/pts@0:14
+     100   2854 bash         W      41 /devices/pseudo/pts@0:14
+     100   2854 bash         R       1 /devices/pseudo/pts@0:14
+     100   2854 bash         W       7 /devices/pseudo/pts@0:14
+
+In the above, various bash related files such as ".bash_profile" and
+".bash_history" can be seen. The ".bashrc" is also read, as it was sourced
+from the .bash_profile.
+
+
+
+Extra options with rwsnoop allow us to print zone ID, project ID, timestamps,
+etc. Here we use "-v" to see the time printed, and match on "ps" processes,
+
+   # rwsnoop -vn ps
+   TIMESTR                UID    PID CMD          D   BYTES FILE
+   2005 Jul 24 04:23:45     0   2804 ps           R     168 /proc/2804/auxv
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/2804/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R    1495 /etc/ttysrch
+   2005 Jul 24 04:23:45     0   2804 ps           W      28 /devices/pseudo/pts.
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/0/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/1/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/2/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/3/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/218/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/7/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/9/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/360/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/91/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/112/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/307/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/226/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/242/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/228/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/243/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/234/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/119/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/143/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/361/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/20314/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/116/psinfo
+   [...]
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/rwtop_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/rwtop_example.txt
new file mode 100644
index 0000000..7284312
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/rwtop_example.txt
@@ -0,0 +1,59 @@
+The following is a demonstration of the rwtop program,
+
+
+By default it will refresh the screen every 5 seconds,
+
+   # rwtop
+   2005 Jul 24 01:00:43,  load: 1.02,  app_r:      8 KB,  app_w:     19 KB
+   
+     UID    PID   PPID CMD              D            BYTES
+       0  20320  20347 bash             R               10
+       0  20320  20347 bash             W               95
+     100  20317  20314 sshd             R              650
+     100  20317  20314 sshd             W              733
+       0   2365  20320 ls               W             1300
+       0   2364  20320 vi               R             2323
+       0   2365  20320 ls               R             2485
+     100  20334  20331 sshd             R             3010
+     100  20334  20331 sshd             W             3729
+       0   2364  20320 vi               W            14128
+
+In the above output, we can see that a "vi" process wrote 14 Kbytes and
+read 2 Kbytes. 
+
+
+
+In the following example, we print the top 5 processes in a scrolling
+output by using "-C" to not clear the screen,
+
+   # rwtop -C -t5
+   Tracing... Please wait.
+   2005 Jul 24 01:03:27,  load: 1.05,  app_r:    261 KB,  app_w:    348 KB
+   
+     UID    PID   PPID CMD              D            BYTES
+       0   2381  20320 svcs             W             5801
+       0      9      1 svc.configd      R           115712
+       0   2380  20320 find             W           140003
+     100  20334  20331 sshd             R           150740
+     100  20334  20331 sshd             W           210773
+   
+   2005 Jul 24 01:03:32,  load: 1.07,  app_r:    110 KB,  app_w:    233 KB
+   
+     UID    PID   PPID CMD              D            BYTES
+     100  20317  20314 sshd             R              419
+     100  20317  20314 sshd             W              468
+       0   2382  20320 find             W           110720
+     100  20334  20331 sshd             R           112835
+     100  20334  20331 sshd             W           128175
+   
+   2005 Jul 24 01:03:37,  load: 1.07,  app_r:      6 KB,  app_w:      7 KB
+   
+     UID    PID   PPID CMD              D            BYTES
+       0   2383  20320 df               W             1154
+       0   2385  20320 ls               W             1300
+       0   2385  20320 ls               R             2485
+     100  20334  20331 sshd             R             3929
+     100  20334  20331 sshd             W             4339
+   
+   ^C
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sampleproc_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sampleproc_example.txt
new file mode 100644
index 0000000..d60d446
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sampleproc_example.txt
@@ -0,0 +1,62 @@
+The following is an example of the sampleproc program.
+
+
+Here we run sampleproc for a few seconds on a workstation,
+
+   # ./sampleproc
+   Sampling at 100 hertz... Hit Ctrl-C to end.
+   ^C
+     PID CMD                       COUNT
+    1659 mozilla-bin                   3
+     109 nscd                          4
+    2197 prstat                       23
+    2190 setiathome                  421
+   
+     PID CMD                     PERCENT
+    1659 mozilla-bin                   0
+     109 nscd                          0
+    2197 prstat                        5
+    2190 setiathome                   93
+
+The first table shows a count of how many times each process was sampled
+on the CPU. The second table gives this as a percentage. 
+
+setiathome was on the CPU 421 times, which is 93% of the samples.
+
+
+
+
+The following is sampleproc running on a server with 4 CPUs. A bash shell
+is running in an infinate loop,
+
+   # ./sampleproc
+   Sampling at 100 hertz... Hit Ctrl-C to end.
+   ^C
+     PID CMD                       COUNT
+   10140 dtrace                        1
+   28286 java                          1
+   29345 esd                           2
+   29731 esd                           3
+       2 pageout                       4
+   29733 esd                           6
+   10098 bash                       1015
+       0 sched                      3028
+   
+     PID CMD                     PERCENT
+   10140 dtrace                        0
+   28286 java                          0
+   29345 esd                           0
+   29731 esd                           0
+       2 pageout                       0
+   29733 esd                           0
+   10098 bash                         24
+       0 sched                        74
+
+The bash shell was on the CPUs for 24% of the time, which is consistant 
+with a CPU bound single threaded application on a 4 CPU server.
+
+The above sample was around 10 seconds long. During this time, there were
+around 4000 samples (checking the COUNT column), this is due to
+4000 = CPUs (4) * Hertz (100) * Seconds (10).
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sar-c_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sar-c_example.txt
new file mode 100644
index 0000000..7669eba
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sar-c_example.txt
@@ -0,0 +1,55 @@
+The following is a demonstration of the sar-c.d script.
+
+
+Here we run both sar-c.d and "sar -c 1 100" at the same time, to compare
+outputs.
+
+The DTrace script,
+
+ # ./sar-c.d
+ Time                 scall/s sread/s swrit/s  fork/s  exec/s  rchar/s  wchar/s
+ 2005 Jun 14 02:40:24    1556      82      71    0.00    0.00    10262    10508
+ 2005 Jun 14 02:40:25    1553      88      75    0.00    0.00    15095    15341
+ 2005 Jun 14 02:40:26    1596      89      76    0.00    0.00    14885    15131
+ 2005 Jun 14 02:40:27    5395     290     154    9.00   10.00   185991    77219
+ 2005 Jun 14 02:40:28    1755      91      98    1.00    1.00    15421    16788
+ 2005 Jun 14 02:40:29    1757     100      91    1.00    1.00    17127    17462
+ 2005 Jun 14 02:40:30    1603      95      80    0.00    0.00    16767    16634
+ 2005 Jun 14 02:40:31   14380      83    2420    1.00    1.00    14556   126461
+ 2005 Jun 14 02:40:32   10573      88    1586    0.00    0.00    14222    87888
+ 2005 Jun 14 02:40:33    1645      87      76    0.00    0.00    15320    15608
+ 2005 Jun 14 02:40:34    2099     167     130    0.00    0.00   126295    74281
+ 2005 Jun 14 02:40:35    1559      79      67    0.00    0.00    11663    11977
+ [...]
+
+The original command,
+
+ $ sar -c 1 100
+ 
+ SunOS jupiter 5.10 Generic i86pc    06/14/2005
+ 
+ 02:40:23 scall/s sread/s swrit/s  fork/s  exec/s rchar/s wchar/s
+ 02:40:24    1549      86      74    0.00    0.00   14799   15040
+ 02:40:25    1552      85      73    0.00    0.00   14475   14719
+ 02:40:26    5479     300     161    9.00   10.00  186755   77983
+ 02:40:27    1725      86      94    0.99    0.99   14819   16172
+ 02:40:28    1596      96      82    0.00    0.00   16521   16762
+ 02:40:29    1716      93      85    1.00    1.00   16395   16730
+ 02:40:30    1579      88      75    0.00    0.00   15324   15192
+ 02:40:32   23036      79    3887    0.99    0.99   10113  193520
+ 02:40:33    1756      94      83    0.00    0.00   14935   15300
+ 02:40:34    2099     165     130    0.00    0.00  125051   73552
+ 02:40:35    1560      82      69    0.00    0.00   15976   16287
+ [...]
+
+We can see that both tools are producing similar data.
+
+The DTrace output lacks the "summary since boot" line, as it is not using
+Kstat to fetch this data.
+
+
+The sar-c.d script is not intended itself as a useful program, rather it
+is intended as a starting point for other DTrace scripts; a starting point
+of familiar statistics to provide the programmer with a "common ground"
+of knowledge.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/seeksize_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/seeksize_example.txt
new file mode 100644
index 0000000..ba41a87
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/seeksize_example.txt
@@ -0,0 +1,197 @@
+The following are examples of seeksize.d.
+
+seeksize.d records disk head seek size for each operation by process.
+This allows up to identify processes that are causing "random" disk
+access and those causing "sequential" disk access.
+
+It is desirable for processes to be accesing the disks in large 
+sequential operations. By using seeksize.d and bitesize.d we can
+identify this behaviour.
+
+
+
+In this example we read through a large file by copying it to a 
+remote server. Most of the seek sizes are zero, indicating sequential
+access - and we would expect good performance from the disks
+under these conditions,
+
+# ./seeksize.d 
+Tracing... Hit Ctrl-C to end.
+^C
+
+   22349  scp /dl/sol-10-b63-x86-v1.iso mars:\0
+
+           value  ------------- Distribution ------------- count    
+              -1 |                                         0        
+               0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   726      
+               1 |                                         0        
+               2 |                                         0        
+               4 |                                         0        
+               8 |@                                        13       
+              16 |                                         4        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         2        
+             256 |                                         3        
+             512 |                                         4        
+            1024 |                                         4        
+            2048 |                                         3        
+            4096 |                                         0        
+            8192 |                                         3        
+           16384 |                                         0        
+           32768 |                                         1        
+           65536 |                                         0        
+
+
+
+In this example we run find. The disk operations are fairly scattered,
+as illustrated below by the volume of non sequential reads,
+
+# ./seeksize.d 
+Tracing... Hit Ctrl-C to end.
+^C
+
+   22399  find /var/sadm/pkg/\0
+
+           value  ------------- Distribution ------------- count    
+              -1 |                                         0        
+               0 |@@@@@@@@@@@@@                            1475     
+               1 |                                         0        
+               2 |                                         44       
+               4 |@                                        77       
+               8 |@@@                                      286      
+              16 |@@                                       191      
+              32 |@                                        154      
+              64 |@@                                       173      
+             128 |@@                                       179      
+             256 |@@                                       201      
+             512 |@@                                       186      
+            1024 |@@                                       236      
+            2048 |@@                                       201      
+            4096 |@@                                       274      
+            8192 |@@                                       243      
+           16384 |@                                        154      
+           32768 |@                                        113      
+           65536 |@@                                       182      
+          131072 |@                                        81       
+          262144 |                                         0   
+
+
+
+
+I found the following interesting. This time I gzipp'd the large file.
+While zipping, the process is reading from one location and writing
+to another. One might expect that as the program toggles between
+reading from one location and writing to another, that often the
+distance would be the same (depending on where UFS puts the new file),
+ 
+# ./seeksize.d 
+Tracing... Hit Ctrl-C to end.
+^C
+
+   22368  gzip sol-10-b63-x86-v1.iso\0
+
+           value  ------------- Distribution ------------- count    
+              -1 |                                         0        
+               0 |@@@@@@@@@@@@                             353      
+               1 |                                         0        
+               2 |                                         0        
+               4 |                                         0        
+               8 |                                         7        
+              16 |                                         4        
+              32 |                                         2        
+              64 |                                         4        
+             128 |                                         14       
+             256 |                                         3        
+             512 |                                         3        
+            1024 |                                         5        
+            2048 |                                         1        
+            4096 |                                         0        
+            8192 |                                         3        
+           16384 |                                         1        
+           32768 |                                         1        
+           65536 |                                         1        
+          131072 |                                         1        
+          262144 |@@@@@@@@                                 249      
+          524288 |                                         1        
+         1048576 |                                         2        
+         2097152 |                                         1        
+         4194304 |                                         2        
+         8388608 |@@@@@@@@@@@@@@@@@@                       536      
+        16777216 |                                         0   
+
+
+
+
+The following example compares the operation of "find" with "tar".
+Both are reading from the same location, and we would expect that
+both programs would generally need to do the same number of seeks
+to navigate the direttory tree (depending on caching); and tar
+causing extra operations as it reads the file contents as well,
+
+# ./seeksize.d 
+Tracing... Hit Ctrl-C to end.
+^C
+
+     PID  CMD
+   22278  find /etc\0
+
+           value  ------------- Distribution ------------- count    
+              -1 |                                         0        
+               0 |@@@@@@@@@@@@@@@@@@@@                     251      
+               1 |                                         0        
+               2 |@                                        8        
+               4 |                                         5        
+               8 |@                                        10       
+              16 |@                                        10       
+              32 |@                                        10       
+              64 |@                                        9        
+             128 |@                                        11       
+             256 |@                                        14       
+             512 |@@                                       20       
+            1024 |@                                        10       
+            2048 |                                         6        
+            4096 |@                                        7        
+            8192 |@                                        10       
+           16384 |@                                        16       
+           32768 |@@                                       21       
+           65536 |@@                                       28       
+          131072 |@                                        7        
+          262144 |@                                        14       
+          524288 |                                         6        
+         1048576 |@                                        15       
+         2097152 |@                                        7        
+         4194304 |                                         0        
+
+
+   22282  tar cf /dev/null /etc\0
+
+           value  ------------- Distribution ------------- count    
+              -1 |                                         0        
+               0 |@@@@@@@@@@                               397      
+               1 |                                         0        
+               2 |                                         8        
+               4 |                                         14       
+               8 |                                         16       
+              16 |@                                        24       
+              32 |@                                        29       
+              64 |@@                                       99       
+             128 |@@                                       73       
+             256 |@@                                       78       
+             512 |@@@                                      109      
+            1024 |@@                                       62       
+            2048 |@@                                       69       
+            4096 |@@                                       73       
+            8192 |@@@                                      113      
+           16384 |@@                                       81       
+           32768 |@@@                                      111      
+           65536 |@@@                                      108      
+          131072 |@                                        49       
+          262144 |@                                        33       
+          524288 |                                         20       
+         1048576 |                                         13       
+         2097152 |                                         7        
+         4194304 |                                         5        
+         8388608 |@                                        30       
+        16777216 |                                         0  
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/setuids_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/setuids_example.txt
new file mode 100644
index 0000000..be197bf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/setuids_example.txt
@@ -0,0 +1,28 @@
+The following is an example of setuids.d. Login events in particular can
+be seen, along with use of the "su" command.
+
+   # ./setuids.d 
+     UID  SUID  PPID   PID PCMD         CMD
+       0   100  3037  3040 in.telnetd   login -p -h mars -d /dev/pts/12
+     100     0  3040  3045 bash         su -
+       0   102  3045  3051 sh           su - fred
+       0   100  3055  3059 sshd         /usr/lib/ssh/sshd
+       0   100  3065  3067 in.rlogind   login -d /dev/pts/12 -r mars
+       0   100  3071  3073 in.rlogind   login -d /dev/pts/12 -r mars
+       0   102  3078  3081 in.telnetd   login -p -h mars -d /dev/pts/12
+   ^C
+
+The first line is a telnet login to the user brendan, UID 100. The parent
+command is "in.telnetd", the telnet daemon spawned by inetd, and the 
+command that in.telnetd runs is "login".
+
+The second line shows UID 100 using the "su" command to become root.
+
+The third line has the root user using "su" to become fred, UID 102.
+
+The fourth line is an example of an ssh login.
+
+The fifth and sixth lines are examples of rsh and rlogin.
+
+The last line is another example of a telnet login for fred, UID 102.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_calldist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_calldist_example.txt
new file mode 100644
index 0000000..6c6a01f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_calldist_example.txt
@@ -0,0 +1,309 @@
+The following are examples of sh_calldist.d.
+
+This script traces the elapsed time of Bourne shell functions and
+prints a report containing distribution plots per function. Here it
+traces the example program, Code/Shell/func_abc.sh.
+
+   # sh_calldist.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   Elapsed times (us),
+   
+      func_abc.sh, builtin, echo 
+              value  ------------- Distribution ------------- count    
+                  8 |                                         0        
+                 16 |@@@@@@@@@@@@@                            1        
+                 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+                 64 |                                         0        
+   
+      func_abc.sh, cmd, sleep 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+            1048576 |                                         0        
+   
+   Exclusive function elapsed times (us),
+   
+      func_abc.sh, func, func_a 
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4096 |                                         0        
+   
+      func_abc.sh, func, func_b 
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4096 |                                         0        
+   
+      func_abc.sh, func, func_c 
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4096 |                                         0        
+   
+   Inclusive function elapsed times (us),
+   
+      func_abc.sh, func, func_c 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+      func_abc.sh, func, func_b 
+              value  ------------- Distribution ------------- count    
+             524288 |                                         0        
+            1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2097152 |                                         0        
+   
+      func_abc.sh, func, func_a 
+              value  ------------- Distribution ------------- count    
+            1048576 |                                         0        
+            2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4194304 |                                         0        
+
+The elapsed times show that the echo builtin takes between 16 and 64 us
+to execute.
+
+The exclusive function elapsed times show that each function spent
+between 2 and 4 ms. This exclusive time excludes the time spent in
+other functions.
+
+The inclusive function elapsed times show that func_c() took between 0.5 and
+1.0 seconds, func_b() took between 1.0 and 2.1 seconds, and func_a() took
+between 2.1 and 4.2 seconds to execute. This inclusive time includes the
+time spent in other functions and commands called, and since func_a()
+calls func_b() which calls func_c(), and, each function is calling "sleep 1",
+these times make sense.
+
+These elapsed times are the absolute time from when the function began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
+Elapsed times are useful for identifying where latencies are.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive function time.
+
+
+
+The following traces the firefox startup script.
+
+# sh_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Elapsed times (us),
+
+   run-mozilla.sh, builtin, return 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   run-mozilla.sh, builtin, shift 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   run-mozilla.sh, builtin, break 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   firefox, builtin, break 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   run-mozilla.sh, builtin, export 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@                            1        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |                                         0        
+
+   firefox, builtin, export 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |@@@@@@@@@@@@@                            1        
+               8 |                                         0        
+
+   firefox, builtin, : 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@        5        
+               2 |                                         0        
+               4 |@@@@@@@                                  1        
+               8 |                                         0        
+
+   firefox, builtin, pwd 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   firefox, builtin, test 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   firefox, builtin, cd 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@                            1        
+              16 |@@@@@@@@@@@@@                            1        
+              32 |@@@@@@@@@@@@@                            1        
+              64 |                                         0        
+
+   firefox, builtin, [ 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@                                  3        
+               2 |@@                                       1        
+               4 |@@                                       1        
+               8 |@@@@@@@                                  3        
+              16 |@@@@@@@@@@@                              5        
+              32 |@@@@@@@                                  3        
+              64 |@@@@                                     2        
+             128 |                                         0        
+
+   run-mozilla.sh, builtin, type 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   run-mozilla.sh, builtin, [ 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@                                 4        
+               2 |@@@@@@@@@@                               5        
+               4 |@@@@                                     2        
+               8 |@@@@@@                                   3        
+              16 |@@@@@@@@@@                               5        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@                                       1        
+            4096 |                                         0        
+
+   firefox, builtin, echo 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@                     1        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@                     1        
+            4096 |                                         0        
+
+   firefox, cmd, /usr/lib/firefox/run-mozilla.sh 
+           value  ------------- Distribution ------------- count    
+         2097152 |                                         0        
+         4194304 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         8388608 |                                         0        
+
+   run-mozilla.sh, cmd, /usr/lib/firefox/firefox-bin 
+           value  ------------- Distribution ------------- count    
+         2097152 |                                         0        
+         4194304 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         8388608 |                                         0        
+
+Exclusive function elapsed times (us),
+
+   run-mozilla.sh, func, moz_test_binary 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   firefox, func, moz_spc_verbose_echo 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@                            2        
+               8 |@@@@@@@@@@@@@                            2        
+              16 |@@@@@@@@@@@@@                            2        
+              32 |                                         0        
+
+   firefox, func, moz_pis_startstop_scripts 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@                     1        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@                     1        
+           65536 |                                         0        
+
+   run-mozilla.sh, func, moz_run_program 
+           value  ------------- Distribution ------------- count    
+           65536 |                                         0        
+          131072 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+          262144 |                                         0        
+
+Inclusive function elapsed times (us),
+
+   firefox, func, moz_spc_verbose_echo 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+              16 |@@@@@@@@@@@@@                            2        
+              32 |                                         0        
+
+   run-mozilla.sh, func, moz_test_binary 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   firefox, func, moz_pis_startstop_scripts 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@                     1        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@                     1        
+           65536 |                                         0        
+
+   run-mozilla.sh, func, moz_run_program 
+           value  ------------- Distribution ------------- count    
+         2097152 |                                         0        
+         4194304 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         8388608 |                                         0        
+
+
+As an example of interpreting the output: the inclusive elapsed time for
+the "[" (test) builtin,
+
+   firefox, builtin, [ 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@                                  3        
+               2 |@@                                       1        
+               4 |@@                                       1        
+               8 |@@@@@@@                                  3        
+              16 |@@@@@@@@@@@                              5        
+              32 |@@@@@@@                                  3        
+              64 |@@@@                                     2        
+             128 |                                         0        
+
+shows that it was called 17 times (after adding up the counts), 5 of which
+took between 16 and 31 microseconds.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_calls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_calls_example.txt
new file mode 100644
index 0000000..064cf97
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_calls_example.txt
@@ -0,0 +1,60 @@
+The following are examples of sh_calls.d.
+
+This is a simple script to count Bourne shell calls. Here it traces an
+example program, Code/Perl/func_abc.sh.
+
+   # sh_calls.d 
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    FILE                   TYPE       NAME                                COUNT
+    func_abc.sh            func       func_a                                  1
+    func_abc.sh            func       func_b                                  1
+    func_abc.sh            func       func_c                                  1
+    func_abc.sh            builtin    echo                                    3
+    func_abc.sh            cmd        sleep                                   3
+
+While tracing, function func_a() from the program "func_abc.sh" was executed
+once, along with func_b() and func_c(). The "echo" builtin was called 3
+times, as was the "sleep" command.
+
+
+The following traced the firefox start script,
+
+   # sh_calls.d 
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    FILE                   TYPE       NAME                                COUNT
+    firefox                builtin    .                                       1
+    firefox                builtin    break                                   1
+    firefox                builtin    exit                                    1
+    firefox                builtin    pwd                                     1
+    firefox                builtin    test                                    1
+    firefox                cmd        /usr/lib/firefox/run-mozilla.sh         1
+    run-mozilla.sh         builtin    break                                   1
+    run-mozilla.sh         builtin    exit                                    1
+    run-mozilla.sh         builtin    return                                  1
+    run-mozilla.sh         builtin    shift                                   1
+    run-mozilla.sh         builtin    type                                    1
+    run-mozilla.sh         cmd        /usr/lib/firefox/firefox-bin            1
+    run-mozilla.sh         func       moz_run_program                         1
+    run-mozilla.sh         func       moz_test_binary                         1
+    firefox                builtin    echo                                    2
+    firefox                func       moz_pis_startstop_scripts               2
+    firefox                builtin    cd                                      3
+    firefox                builtin    export                                  3
+    run-mozilla.sh         builtin    export                                  3
+    firefox                builtin    :                                       6
+    firefox                func       moz_spc_verbose_echo                    6
+    run-mozilla.sh         subsh      -                                       9
+    firefox                builtin    [                                      18
+    firefox                subsh      -                                      20
+    run-mozilla.sh         builtin    [                                      20
+
+The firefox start script called run-mozilla.sh, which can be seen both
+as a "cmd" call in the above output from the "firefox" script, and as
+additionall calls from the "run-mozilla.sh" script.
+
+The builtin called "[" is the test builtin, and was called 20 times by
+"run-mozilla.sh" and 18 times by "firefox". The "firefox" script also called
+20 subshells.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_calltime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_calltime_example.txt
new file mode 100644
index 0000000..5c39ae4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_calltime_example.txt
@@ -0,0 +1,144 @@
+The following are examples of sh_calltime.d.
+
+This script traces the elapsed time of Bourne shell functions and
+prints a report. Here it traces the example program, Code/Shell/func_abc.sh.
+
+   # sh_calltime.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   Counts,
+      FILE                 TYPE       NAME                                COUNT
+      func_abc.sh          func       func_a                                  1
+      func_abc.sh          func       func_b                                  1
+      func_abc.sh          func       func_c                                  1
+      func_abc.sh          builtin    echo                                    3
+      func_abc.sh          cmd        sleep                                   3
+      -                    total      -                                       9
+   
+   Elapsed times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_abc.sh          builtin    echo                                  108
+      func_abc.sh          cmd        sleep                             3023760
+      -                    total      -                                 3023868
+   
+   Exclusive function elapsed times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_abc.sh          func       func_b                               2629
+      func_abc.sh          func       func_c                               2822
+      func_abc.sh          func       func_a                               3249
+      -                    total      -                                    8702
+   
+   Inclusive function elapsed times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_abc.sh          func       func_c                            1009659
+      func_abc.sh          func       func_b                            2020077
+      func_abc.sh          func       func_a                            3032571
+
+In total, three functions were called, one builtin and one command.
+
+The elapsed times show that 3.0 seconds was spent in the sleep command,
+which is what would be expected based on the script.
+
+The exclusive function elapsed times show that each function spent around
+2.7 milliseconds of time processing code - while not in other functions.
+
+The inclusive function elapsed times show that func_a() took around 3.0
+seconds to execute, followed by func_b() at 2.0 seconds, and func_c() at 1.0.
+The inclusive time includes the time spent in other calls, and since
+func_a() called func_b() which called func_c(), and they all call "sleep 1",
+these times make sense.
+
+These elapsed times are the absolute time from when the function began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc. In particular, for this case it has
+included the time waiting for the sleep commands.
+
+Elapsed times are useful for identifying where latencies are.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive function time.
+
+If you study the func_abc.sh program alongside the above output, the numbers
+should make sense. 
+
+
+
+The following traces the firefox start script.
+
+# sh_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Counts,
+   FILE                 TYPE       NAME                                COUNT
+   firefox              builtin    break                                   1
+   firefox              builtin    pwd                                     1
+   firefox              builtin    test                                    1
+   firefox              cmd        /usr/lib/firefox/run-mozilla.sh         1
+   run-mozilla.sh       builtin    break                                   1
+   run-mozilla.sh       builtin    return                                  1
+   run-mozilla.sh       builtin    shift                                   1
+   run-mozilla.sh       builtin    type                                    1
+   run-mozilla.sh       cmd        /usr/lib/firefox/firefox-bin            1
+   run-mozilla.sh       func       moz_run_program                         1
+   run-mozilla.sh       func       moz_test_binary                         1
+   firefox              builtin    echo                                    2
+   firefox              func       moz_pis_startstop_scripts               2
+   firefox              builtin    cd                                      3
+   firefox              builtin    export                                  3
+   run-mozilla.sh       builtin    export                                  3
+   firefox              builtin    :                                       6
+   firefox              func       moz_spc_verbose_echo                    6
+   firefox              builtin    [                                      18
+   run-mozilla.sh       builtin    [                                      20
+   -                    total      -                                     103
+
+Elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   run-mozilla.sh       builtin    return                                  1
+   run-mozilla.sh       builtin    shift                                   1
+   run-mozilla.sh       builtin    break                                   2
+   firefox              builtin    break                                   4
+   run-mozilla.sh       builtin    export                                  6
+   firefox              builtin    export                                 10
+   firefox              builtin    :                                      15
+   firefox              builtin    pwd                                    50
+   firefox              builtin    cd                                     72
+   run-mozilla.sh       builtin    [                                     210
+   firefox              builtin    echo                                  323
+   firefox              builtin    [                                     480
+   run-mozilla.sh       builtin    type                                  486
+   firefox              builtin    test                                15330
+   run-mozilla.sh       cmd        /usr/lib/firefox/firefox-bin      8941269
+   firefox              cmd        /usr/lib/firefox/run-mozilla.sh   9384335
+   -                    total      -                                18342766
+
+Exclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   run-mozilla.sh       func       moz_test_binary                        54
+   firefox              func       moz_spc_verbose_echo                  136
+   firefox              func       moz_pis_startstop_scripts          230221
+   run-mozilla.sh       func       moz_run_program                    402343
+   -                    total      -                                  632756
+
+Inclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   run-mozilla.sh       func       moz_test_binary                        91
+   firefox              func       moz_spc_verbose_echo                  151
+   firefox              func       moz_pis_startstop_scripts          230587
+   run-mozilla.sh       func       moz_run_program                   9343826
+
+
+
+The output showed that the most inclusive function elapsed time was in
+moz_run_program() at 9.3 seconds, which comes as little suprise since
+I let firefox run for several seconds before closing it. That same duration
+explains the large command times in the elapsed times report.
+
+Of more interest are the exclusive function elapsed times, where 
+moz_pis_startstop_scripts() was the slowest at 230 ms. Other areas of the
+report are also useful to sanity check your software - should it be calling
+these things? Especially if there are any commands called that can be
+builtins instead.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_cpudist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_cpudist_example.txt
new file mode 100644
index 0000000..272e909
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_cpudist_example.txt
@@ -0,0 +1,92 @@
+The following are examples of sh_cpudist.d.
+
+This script traces the on-CPU time of Bourne shell functions and
+prints a report containing distribution plots per function. Here it
+traces the example program, Code/Shell/func_slow.sh.
+
+   # sh_cpudist.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   On-CPU times (us),
+   
+      func_slow.sh, builtin, echo 
+              value  ------------- Distribution ------------- count    
+                  8 |                                         0        
+                 16 |@@@@@@@@@@@@@                            1        
+                 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+                 64 |                                         0        
+   
+      func_slow.sh, builtin, [ 
+              value  ------------- Distribution ------------- count    
+                  0 |                                         0        
+                  1 |                                         1        
+                  2 |                                         1        
+                  4 |@                                        22       
+                  8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   575      
+                 16 |                                         2        
+                 32 |                                         0        
+                 64 |                                         2        
+                128 |                                         0        
+   
+   Exclusive function on-CPU times (us),
+   
+      func_slow.sh, func, func_a 
+              value  ------------- Distribution ------------- count    
+              65536 |                                         0        
+             131072 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             262144 |                                         0        
+   
+      func_slow.sh, func, func_b 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+      func_slow.sh, func, func_c 
+              value  ------------- Distribution ------------- count    
+             524288 |                                         0        
+            1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2097152 |                                         0        
+   
+   Inclusive function on-CPU times (us),
+   
+      func_slow.sh, func, func_b 
+              value  ------------- Distribution ------------- count    
+             524288 |                                         0        
+            1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2097152 |                                         0        
+   
+      func_slow.sh, func, func_c 
+              value  ------------- Distribution ------------- count    
+             524288 |                                         0        
+            1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2097152 |                                         0        
+   
+      func_slow.sh, func, func_a 
+              value  ------------- Distribution ------------- count    
+            1048576 |                                         0        
+            2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4194304 |                                         0        
+
+The on-CPU times should that the "[" builtin (test) usually took between 
+8 and 15 microseconds to execute, and was called over 500 times.
+
+The exclusive function on-CPU times show that func_a() spent between
+131 ms and 262 ms on-CPU.
+
+The inclusive function on-CPU times show that both func_b() and func_c()
+spent between 1.0 and 2.1 seconds on-CPU, and func_a() spent between 2.1
+and 4.2 seconds on-CPU. This inclusive time includes the time spent in other
+functions called, and since func_a() called func_b() which called func_c(),
+these times make sense.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the function began to when it completed. This does not include time 
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive function time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_cputime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_cputime_example.txt
new file mode 100644
index 0000000..d3ae5bc
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_cputime_example.txt
@@ -0,0 +1,131 @@
+The following are examples of sh_cputime.d.
+
+This script traces the on-CPU time of Bourne shell functions and
+prints a report. Here it traces the example program, Code/Shell/func_slow.sh.
+
+   # sh_cputime.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   Counts,
+      FILE                 TYPE       NAME                                COUNT
+      func_slow.sh         func       func_a                                  1
+      func_slow.sh         func       func_b                                  1
+      func_slow.sh         func       func_c                                  1
+      func_slow.sh         builtin    echo                                    3
+      func_slow.sh         builtin    [                                     603
+      -                    total      -                                     609
+   
+   On-CPU times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_slow.sh         builtin    echo                                  162
+      func_slow.sh         builtin    [                                    6279
+      -                    total      -                                    6441
+   
+   Exclusive function on-CPU times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_slow.sh         func       func_a                             269465
+      func_slow.sh         func       func_b                             670372
+      func_slow.sh         func       func_c                            1259073
+      -                    total      -                                 2198911
+   
+   Inclusive function on-CPU times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_slow.sh         func       func_c                            1262209
+      func_slow.sh         func       func_b                            1934839
+      func_slow.sh         func       func_a                            2205352
+
+In total, three functions were called, one builtin and one command.
+
+The exclusive function on-CPU times show that func_a() spent around 268.4 ms
+on-CPU, func_b() spent 670.3 ms, and func_c() spent 1259 ms. This exclusive
+times excludes time spent in other functions.
+
+The inclusive function on-CPU times show that func_c() spent around 1.3
+seconds on-CPU, func_b() spent around 1.9 seconds, and func_a() spent around
+2.2 seconds. This inclusive time includes the time spent in other functions
+called, and since func_a() called func_b() which called func_c(), these
+times make sense.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the function began to when it completed. This does not include time 
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive function time.
+
+If you study the func_slow.sh program alongside the above output, the numbers
+should make sense. 
+
+
+
+The following traced the firefox start script.
+
+# sh_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Counts,
+   FILE                 TYPE       NAME                                COUNT
+   firefox              builtin    break                                   1
+   firefox              builtin    pwd                                     1
+   firefox              builtin    test                                    1
+   firefox              cmd        run-mozilla.sh                          1
+   run-mozilla.sh       builtin    break                                   1
+   run-mozilla.sh       builtin    return                                  1
+   run-mozilla.sh       builtin    shift                                   1
+   run-mozilla.sh       builtin    type                                    1
+   run-mozilla.sh       cmd        firefox-bin                             1
+   run-mozilla.sh       func       moz_run_program                         1
+   run-mozilla.sh       func       moz_test_binary                         1
+   firefox              builtin    echo                                    2
+   firefox              func       moz_pis_startstop_scripts               2
+   firefox              builtin    cd                                      3
+   firefox              builtin    export                                  3
+   run-mozilla.sh       builtin    export                                  3
+   firefox              builtin    :                                       6
+   firefox              func       moz_spc_verbose_echo                    6
+   firefox              builtin    [                                      18
+   run-mozilla.sh       builtin    [                                      20
+   -                    total      -                                     103
+
+On-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   run-mozilla.sh       builtin    return                                  0
+   run-mozilla.sh       builtin    shift                                   0
+   run-mozilla.sh       builtin    break                                   1
+   firefox              builtin    break                                   2
+   run-mozilla.sh       builtin    export                                  4
+   firefox              builtin    export                                  7
+   firefox              builtin    :                                       9
+   firefox              builtin    test                                   35
+   firefox              builtin    pwd                                    49
+   firefox              builtin    cd                                     64
+   run-mozilla.sh       builtin    [                                     176
+   firefox              builtin    echo                                  309
+   firefox              builtin    [                                     357
+   run-mozilla.sh       builtin    type                                  475
+   firefox              cmd        run-mozilla.sh                      17090
+   run-mozilla.sh       cmd        firefox-bin                       1932333
+   -                    total      -                                 1950979
+
+Exclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   run-mozilla.sh       func       moz_test_binary                        21
+   firefox              func       moz_spc_verbose_echo                   22
+   run-mozilla.sh       func       moz_run_program                      9098
+   firefox              func       moz_pis_startstop_scripts           12960
+   -                    total      -                                   22103
+
+Inclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   firefox              func       moz_spc_verbose_echo                   31
+   run-mozilla.sh       func       moz_test_binary                        56
+   run-mozilla.sh       func       moz_run_program                      9243
+   firefox              func       moz_pis_startstop_scripts           13133
+
+The output showed that the most CPU time was spent in the firefox-bin command,
+taking 1.9 seconds of on-CPU time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_flow_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_flow_example.txt
new file mode 100644
index 0000000..de7f22b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_flow_example.txt
@@ -0,0 +1,129 @@
+The following are examples of sh_flow.d.
+
+This is a simple script to trace the flow of Bourne shell functions, 
+builtins and external commands. Here it traces the example program,
+Code/Shell/func_abc.sh.
+
+   # sh_flow.d 
+     C TIME(us)         FILE             -- NAME
+     0 3060274370505    func_abc.sh      -> func_a
+     0 3060274370529    func_abc.sh        > echo
+     0 3060274372742    func_abc.sh        | sleep
+     0 3060275381634    func_abc.sh        -> func_b
+     0 3060275381660    func_abc.sh          > echo
+     0 3060275383852    func_abc.sh          | sleep
+     0 3060276391653    func_abc.sh          -> func_c
+     0 3060276391679    func_abc.sh            > echo
+     0 3060276393671    func_abc.sh            | sleep
+     0 3060277401753    func_abc.sh          <- func_c
+     0 3060277401767    func_abc.sh        <- func_b
+     0 3060277401775    func_abc.sh      <- func_a
+   ^C
+
+As each function is entered, the third column is indented by 2 spaces. This
+shows which function is calling who - the output abovebegins by showing that
+func_a() began, and then called func_b().
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and 
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+
+The following traces the firefox startup script.
+
+# sh_flow.d
+  C TIME(us)         FILE             -- NAME
+  0 3060321598138    firefox          > test
+  0 3060321603730    firefox          > [
+  0 3060321603796    firefox          > cd
+  0 3060321603878    firefox          > [
+  0 3060321603900    firefox          > [
+  0 3060321604099    firefox          > [
+  0 3060321609050    firefox          > echo
+  0 3060321620601    firefox          > echo
+  0 3060321626369    firefox          > [
+  0 3060321626432    firefox          > export
+  0 3060321626459    firefox          -> moz_pis_startstop_scripts
+  0 3060321626519    firefox            > export
+  0 3060321626966    firefox            > [
+  0 3060321627031    firefox            > .
+  0 3060321628446    firefox            -> moz_spc_verbose_echo
+  0 3060321628458    firefox              > :
+  0 3060321628467    firefox            <- moz_spc_verbose_echo
+  0 3060321636461    firefox            > [
+  0 3060321636738    firefox            -> moz_spc_verbose_echo
+  0 3060321636751    firefox              > :
+  0 3060321636760    firefox            <- moz_spc_verbose_echo
+  0 3060321636778    firefox            > [
+  0 3060321636793    firefox            > [
+  0 3060321636817    firefox            > [
+  0 3060321637126    firefox            -> moz_spc_verbose_echo
+  0 3060321637136    firefox              > :
+  0 3060321637143    firefox            <- moz_spc_verbose_echo
+  0 3060321666922    firefox            -> moz_spc_verbose_echo
+  0 3060321666952    firefox              > :
+  0 3060321666964    firefox            <- moz_spc_verbose_echo
+  0 3060321674929    firefox          > [
+  0 3060321680246    firefox            > [
+  0 3060321680312    firefox            -> moz_spc_verbose_echo
+  0 3060321680323    firefox              > :
+  0 3060321680331    firefox            <- moz_spc_verbose_echo
+  0 3060321680356    firefox            -> moz_spc_verbose_echo
+  0 3060321680363    firefox              > :
+  0 3060321680370    firefox            <- moz_spc_verbose_echo
+  0 3060321680396    firefox            > [
+  0 3060321680428    firefox          <- moz_pis_startstop_scripts
+  0 3060321680525    firefox          > [
+  0 3060321680580    firefox          > [
+  0 3060321685358    firefox          | /usr/lib/firefox/run-mozilla.sh
+  0 3060321700731    run-mozilla.sh   > [
+  0 3060321700950    run-mozilla.sh   > break
+  0 3060321703259    run-mozilla.sh   > [
+  0 3060321703292    run-mozilla.sh   > shift
+  0 3060321703382    run-mozilla.sh   > [
+  0 3060321703421    run-mozilla.sh   > [
+  0 3060321703493    run-mozilla.sh   > [
+  0 3060321703642    run-mozilla.sh   > [
+  0 3060321703669    run-mozilla.sh   > export
+  0 3060321703706    run-mozilla.sh   > [
+  0 3060321703725    run-mozilla.sh   > [
+  0 3060321703857    run-mozilla.sh   > [
+  0 3060321703880    run-mozilla.sh   > export
+  0 3060321703925    run-mozilla.sh   > export
+  0 3060321703954    run-mozilla.sh   > [
+  0 3060321703982    run-mozilla.sh   -> moz_run_program
+  0 3060321704013    run-mozilla.sh     > [
+  0 3060321704049    run-mozilla.sh     -> moz_test_binary
+  0 3060321704065    run-mozilla.sh       > [
+  0 3060321704097    run-mozilla.sh       > [
+  0 3060321704127    run-mozilla.sh       > return
+  0 3060321704137    run-mozilla.sh     <- moz_test_binary
+  0 3060321704151    run-mozilla.sh     > [
+  0 3060321709953    run-mozilla.sh   > type
+  0 3060321724260    run-mozilla.sh     > [
+  0 3060321724559    run-mozilla.sh     > [
+  0 3060321724574    run-mozilla.sh     > [
+  0 3060321727396    run-mozilla.sh     | /usr/lib/firefox/firefox-bin
+  0 3060325513871    run-mozilla.sh     > [
+  0 3060325513898    run-mozilla.sh     > [
+  0 3060325513929    run-mozilla.sh     > [
+  0 3060325513940    run-mozilla.sh   <- moz_run_program
+  0 3060325513967    run-mozilla.sh   > exit
+  0 3060325515113    firefox          -> moz_pis_startstop_scripts
+  0 3060325515189    firefox            > export
+  0 3060325515431    firefox            > [
+  0 3060325515466    firefox            > [
+  0 3060325515487    firefox          <- moz_pis_startstop_scripts
+  0 3060325515503    firefox          > exit
+
+This shows the flow, incluing the handover between the "firefox" script
+and the "run-mozilla.sh" script.
+
+There is a point in the output where flow appears to reverse (at time
+3060321709953, with the entry "> type"). This is due to another instance
+of the run-mozilla.sh script running, which is indistinguishable from
+the other lines in the output. To confirm this for yourself, add a PID
+column to the flow script (or use sh_flowinfo.d).
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_flowinfo_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_flowinfo_example.txt
new file mode 100644
index 0000000..1fb27cf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_flowinfo_example.txt
@@ -0,0 +1,242 @@
+The following are examples of sh_flowinfo.d.
+
+This is a simple script to trace the flow of Bourne shell functions,
+builtins and external commands. Here it traces the example program,
+Code/Shell/func_abc.sh.
+
+   # sh_flowinfo.d
+     C    PID  DELTA(us)              FILE:LINE TYPE     -- NAME
+     0  19634          2       func_abc.sh:23   func     -> func_a
+     0  19634         24       func_abc.sh:18   builtin    -> echo
+     0  19634         41       func_abc.sh:-    builtin    <- echo
+     0  19634       5873       func_abc.sh:19   cmd        -> sleep
+     0  19634     999373       func_abc.sh:-    cmd        <- sleep
+     0  19634         39       func_abc.sh:20   func       -> func_b
+     0  19634         22       func_abc.sh:11   builtin      -> echo
+     0  19634         40       func_abc.sh:-    builtin      <- echo
+     0  19634       4661       func_abc.sh:12   cmd          -> sleep
+     0  19634    1005349       func_abc.sh:-    cmd          <- sleep
+     0  19634         49       func_abc.sh:13   func         -> func_c
+     0  19634         22       func_abc.sh:5    builtin        -> echo
+     0  19634         38       func_abc.sh:-    builtin        <- echo
+     0  19634       4949       func_abc.sh:6    cmd            -> sleep
+     0  19634    1004817       func_abc.sh:-    cmd            <- sleep
+     0  19634         36       func_abc.sh:-    func         <- func_c
+     0  19634         14       func_abc.sh:-    func       <- func_b
+     0  19634          8       func_abc.sh:-    func     <- func_a
+
+As each function is entered, the third column is indented by 2 spaces. This
+shows which function is calling who - the output abovebegins by showing that
+func_a() began, and then called func_b().
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the fifth line of data output
+(skipping the header) reads as "the time from the command sleep beginning
+to ending was 999373 us, or 1.0 seconds".
+
+The LINE column shows the line in the file what was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+The following traces the firefox startup script.
+
+# sh_flowinfo.d
+  C    PID  DELTA(us)              FILE:LINE TYPE     -- NAME
+  0 156789          1           firefox:-    subsh    -> pid 156790
+  0 156789         20           firefox:-    subsh    <- = 0
+  0 156789      31651           firefox:-    subsh    -> pid 156791
+  0 156789         20           firefox:-    subsh    <- = 0
+  0 156789      10502           firefox:109  builtin  -> test
+  0 156789         59           firefox:-    builtin  <- test
+  0 156789       3804           firefox:-    subsh    -> pid 156792
+  0 156789         21           firefox:-    subsh    <- = 0
+  0 156789      22029           firefox:114  builtin  -> [
+  0 156789         57           firefox:-    builtin  <- [
+  0 156789      90910           firefox:-    subsh    -> pid 156793
+  0 156789         22           firefox:-    subsh    <- = 0
+  0 156789     159492           firefox:-    subsh    -> pid 156794
+  0 156789         22           firefox:-    subsh    <- = 0
+  0 156789        127           firefox:116  builtin  -> cd
+  0 156789         54           firefox:-    builtin  <- cd
+  0 156789     209757           firefox:-    subsh    -> pid 156795
+  0 156789         23           firefox:-    subsh    <- = 0
+  0 156795     206160           firefox:-    subsh    -> pid 156796
+  0 156795          9           firefox:-    subsh    <- = 0
+  0 156789      12115           firefox:118  builtin  -> [
+  0 156789         61           firefox:-    builtin  <- [
+  0 156789     200529           firefox:-    subsh    -> pid 156797
+  0 156789         24           firefox:-    subsh    <- = 0
+  0 156789        136           firefox:123  builtin  -> [
+  0 156789         58           firefox:-    builtin  <- [
+  0 156789         21           firefox:124  builtin  -> cd
+  0 156789         19           firefox:-    builtin  <- cd
+  0 156798        175           firefox:1    builtin  -> pwd
+  0 156798         65           firefox:-    builtin  <- pwd
+  0 156789     108835           firefox:-    subsh    -> pid 156798
+  0 156789         18           firefox:-    subsh    <- = 0
+  0 156789        119           firefox:128  builtin  -> break
+  0 156789         15           firefox:-    builtin  <- break
+  0 156789         21           firefox:131  builtin  -> cd
+  0 156789         26           firefox:-    builtin  <- cd
+  0 156789         61           firefox:133  builtin  -> [
+  0 156789          9           firefox:-    builtin  <- [
+  0 156789      73508           firefox:147  builtin  -> [
+  0 156789         25           firefox:-    builtin  <- [
+  0 156800        184           firefox:1    builtin  -> echo
+  0 156800        175           firefox:-    builtin  <- echo
+  0 156789      15966           firefox:-    subsh    -> pid 156799
+  0 156789         22           firefox:-    subsh    <- = 0
+  0 156799      12091           firefox:-    subsh    -> pid 156800
+  0 156799         10           firefox:-    subsh    <- = 0
+  0 156802        178           firefox:1    builtin  -> echo
+  0 156802        167           firefox:-    builtin  <- echo
+  0 156789      13822           firefox:-    subsh    -> pid 156801
+  0 156789         18           firefox:-    subsh    <- = 0
+  0 156801      81683           firefox:-    subsh    -> pid 156802
+  0 156801         21           firefox:-    subsh    <- = 0
+  0 156789      78324           firefox:158  builtin  -> [
+  0 156789         37           firefox:-    builtin  <- [
+  0 156789         54           firefox:194  builtin  -> export
+  0 156789          9           firefox:-    builtin  <- export
+  0 156789         26           firefox:197  func     -> moz_pis_startstop_scripts
+  0 156789         61           firefox:62   builtin    -> export
+  0 156789          9           firefox:-    builtin    <- export
+  0 156789        413           firefox:67   builtin    -> [
+  0 156789         34           firefox:-    builtin    <- [
+  0 156789         40           firefox:69   builtin    -> .
+  0 156789      20833           firefox:18   func         -> moz_spc_verbose_echo
+  0 156789         26           firefox:15   builtin        -> :
+  0 156789         16           firefox:-    builtin        <- :
+  0 156789         15           firefox:-    func         <- moz_spc_verbose_echo
+  0 156789     105106           firefox:-    subsh        -> pid 156803
+  0 156789         22           firefox:-    subsh        <- = 0
+  0 156789        129           firefox:19   builtin      -> [
+  0 156789         17           firefox:-    builtin      <- [
+  0 156789         33           firefox:20   func         -> moz_spc_verbose_echo
+  0 156789         14           firefox:15   builtin        -> :
+  0 156789          7           firefox:-    builtin        <- :
+  0 156789          9           firefox:-    func         <- moz_spc_verbose_echo
+  0 156789         21           firefox:23   builtin      -> [
+  0 156789          8           firefox:-    builtin      <- [
+  0 156789         16           firefox:26   builtin      -> [
+  0 156789          8           firefox:-    builtin      <- [
+  0 156789         24           firefox:29   builtin      -> [
+  0 156789         43           firefox:-    builtin      <- [
+  0 156789         77           firefox:36   func         -> moz_spc_verbose_echo
+  0 156789          9           firefox:15   builtin        -> :
+  0 156789          8           firefox:-    builtin        <- :
+  0 156789          8           firefox:-    func         <- moz_spc_verbose_echo
+  0 156789     158947           firefox:-    subsh        -> pid 156804
+  0 156789         22           firefox:-    subsh        <- = 0
+  0 156789     210112           firefox:-    subsh        -> pid 156805
+  0 156789         22           firefox:-    subsh        <- = 0
+  0 156805     205500           firefox:-    subsh    -> pid 156806
+  0 156805         10           firefox:-    subsh    <- = 0
+  0 156805     200987           firefox:-    subsh    -> pid 156807
+  0 156805         20           firefox:-    subsh    <- = 0
+  0 156789     363564           firefox:40   func         -> moz_spc_verbose_echo
+  0 156789         26           firefox:15   builtin        -> :
+  0 156789         17           firefox:-    builtin        <- :
+  0 156789         15           firefox:-    func         <- moz_spc_verbose_echo
+  0 156809        234           firefox:1    builtin  -> [
+  0 156809         70           firefox:-    builtin  <- [
+  0 156789      46950           firefox:-    subsh        -> pid 156808
+  0 156789         22           firefox:-    subsh        <- = 0
+  0 156808      42371           firefox:-    subsh    -> pid 156809
+  0 156808         10           firefox:-    subsh    <- = 0
+  0 156789      27278           firefox:43   builtin      -> [
+  0 156789         26           firefox:-    builtin      <- [
+  0 156789         62           firefox:44   func         -> moz_spc_verbose_echo
+  0 156789         15           firefox:15   builtin        -> :
+  0 156789          8           firefox:-    builtin        <- :
+  0 156789         10           firefox:-    func         <- moz_spc_verbose_echo
+  0 156789         30           firefox:67   func         -> moz_spc_verbose_echo
+  0 156789          9           firefox:15   builtin        -> :
+  0 156789          8           firefox:-    builtin        <- :
+  0 156789          7           firefox:-    func         <- moz_spc_verbose_echo
+  0 156789          8           firefox:-    builtin    <- .
+  0 156789         28           firefox:67   builtin    -> [
+  0 156789         31           firefox:-    builtin    <- [
+  0 156789          8           firefox:-    func     <- moz_pis_startstop_scripts
+  0 156789         97           firefox:199  builtin  -> [
+  0 156789         35           firefox:-    builtin  <- [
+  0 156789         29           firefox:205  builtin  -> [
+  0 156789          9           firefox:-    builtin  <- [
+  0 156789      72519           firefox:209  cmd      -> /usr/lib/firefox/run-mozilla.sh
+  0 156810          1    run-mozilla.sh:-    subsh    -> pid 156811
+  0 156810         15    run-mozilla.sh:-    subsh    <- = 0
+  0 156810     129474    run-mozilla.sh:-    subsh    -> pid 156812
+  0 156810         24    run-mozilla.sh:-    subsh    <- = 0
+  0 156810        743    run-mozilla.sh:258  builtin  -> [
+  0 156810         28    run-mozilla.sh:-    builtin  <- [
+  0 156810        212    run-mozilla.sh:275  builtin  -> break
+  0 156810         10    run-mozilla.sh:-    builtin  <- break
+  0 156810         31    run-mozilla.sh:283  builtin  -> [
+  0 156810         10    run-mozilla.sh:-    builtin  <- [
+  0 156810         16    run-mozilla.sh:286  builtin  -> shift
+  0 156810          9    run-mozilla.sh:-    builtin  <- shift
+  0 156810         55    run-mozilla.sh:291  builtin  -> [
+  0 156810          9    run-mozilla.sh:-    builtin  <- [
+  0 156810         36    run-mozilla.sh:317  builtin  -> [
+  0 156810         34    run-mozilla.sh:-    builtin  <- [
+  0 156810         37    run-mozilla.sh:327  builtin  -> [
+  0 156810          9    run-mozilla.sh:-    builtin  <- [
+  0 156810        142    run-mozilla.sh:362  builtin  -> [
+  0 156810          9    run-mozilla.sh:-    builtin  <- [
+  0 156810         26    run-mozilla.sh:366  builtin  -> export
+  0 156810          9    run-mozilla.sh:-    builtin  <- export
+  0 156810         37    run-mozilla.sh:369  builtin  -> [
+  0 156810          9    run-mozilla.sh:-    builtin  <- [
+  0 156810         18    run-mozilla.sh:371  builtin  -> [
+  0 156810         19    run-mozilla.sh:-    builtin  <- [
+  0 156810        112    run-mozilla.sh:379  builtin  -> [
+  0 156810         10    run-mozilla.sh:-    builtin  <- [
+  0 156810         23    run-mozilla.sh:418  builtin  -> export
+  0 156810          9    run-mozilla.sh:-    builtin  <- export
+  0 156810         45    run-mozilla.sh:419  builtin  -> export
+  0 156810         10    run-mozilla.sh:-    builtin  <- export
+  0 156810         27    run-mozilla.sh:421  builtin  -> [
+  0 156810          9    run-mozilla.sh:-    builtin  <- [
+  0 156810         29    run-mozilla.sh:425  func     -> moz_run_program
+  0 156810         32    run-mozilla.sh:137  builtin    -> [
+  0 156810         25    run-mozilla.sh:-    builtin    <- [
+  0 156810         20    run-mozilla.sh:145  func       -> moz_test_binary
+  0 156810         17    run-mozilla.sh:97   builtin      -> [
+  0 156810         23    run-mozilla.sh:-    builtin      <- [
+  0 156810         15    run-mozilla.sh:99   builtin      -> [
+  0 156810         26    run-mozilla.sh:-    builtin      <- [
+  0 156810         13    run-mozilla.sh:101  builtin      -> return
+  0 156810          9    run-mozilla.sh:-    builtin      <- return
+  0 156810         11    run-mozilla.sh:-    func       <- moz_test_binary
+  0 156810         18    run-mozilla.sh:146  builtin    -> [
+  0 156810          9    run-mozilla.sh:-    builtin    <- [
+  0 156814        185    run-mozilla.sh:1    builtin  -> type
+  0 156814     118188    run-mozilla.sh:-    builtin  <- type
+  0 156810     167284    run-mozilla.sh:-    subsh      -> pid 156813
+  0 156810         23    run-mozilla.sh:-    subsh      <- = 0
+  0 156813     162135    run-mozilla.sh:-    subsh    -> pid 156814
+  0 156813         12    run-mozilla.sh:-    subsh    <- = 0
+  0 156813     200125    run-mozilla.sh:-    subsh    -> pid 156815
+  0 156813         22    run-mozilla.sh:-    subsh    <- = 0
+  0 156810     203465    run-mozilla.sh:152  builtin    -> [
+  0 156810         51    run-mozilla.sh:-    builtin    <- [
+  0 156810         21    run-mozilla.sh:156  builtin    -> [
+  0 156810          9    run-mozilla.sh:-    builtin    <- [
+  0 156810         15    run-mozilla.sh:159  builtin    -> [
+  0 156810         14    run-mozilla.sh:-    builtin    <- [
+  0 156810      65752    run-mozilla.sh:-    subsh      -> pid 156816
+  0 156810         24    run-mozilla.sh:-    subsh      <- = 0
+  0 156816     251788    run-mozilla.sh:-    subsh    -> pid 156817
+  0 156816         22    run-mozilla.sh:-    subsh    <- = 0
+  0 156810     299677    run-mozilla.sh:167  cmd        -> /usr/lib/firefox/firefox-bin
+  0 156810    5124906    run-mozilla.sh:-    cmd        <- /usr/lib/firefox/firefox-bin
+  0 156789    5993798           firefox:-    cmd      <- /usr/lib/firefox/run-mozilla.sh
+
+Now latencies can investigated by line number.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_flowtime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_flowtime_example.txt
new file mode 100644
index 0000000..03848de
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_flowtime_example.txt
@@ -0,0 +1,131 @@
+The following are examples of sh_flowtime.d.
+
+This is a simple script to trace the flow of Bourne shell functions,
+builtins and external commands. Here it traces the example program,
+Code/Shell/func_abc.sh.
+
+   # sh_flowtime.d 
+     C TIME(us)         FILE             DELTA(us) -- NAME
+     0 3060817866026    func_abc.sh              2 -> func_a
+     0 3060817866086    func_abc.sh             60   > echo
+     0 3060818871601    func_abc.sh        1005514   | sleep
+     0 3060818871639    func_abc.sh             38   -> func_b
+     0 3060818871684    func_abc.sh             44     > echo
+     0 3060819881597    func_abc.sh        1009912     | sleep
+     0 3060819881657    func_abc.sh             60     -> func_c
+     0 3060819881717    func_abc.sh             60       > echo
+     0 3060820891613    func_abc.sh        1009896       | sleep
+     0 3060820891661    func_abc.sh             47     <- func_c
+     0 3060820891675    func_abc.sh             14   <- func_b
+     0 3060820891683    func_abc.sh              7 <- func_a
+   ^C
+
+As each function is entered, the third column is indented by 2 spaces. This
+shows which function is calling who - the output above begins by showing that
+func_a() began, and then called func_b().
+
+The DELTA(us) column is interpreted as follows,
+
+	->              previous line to the start of this function
+	<-              previous line to the end of this function
+	>               previous line to the end of this builtin
+	|               previous line to the end of this command
+
+And so the above output shows that each sleep command is taking around 1.0
+seconds to execute.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and 
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+
+The following traces the firefox start script.
+
+# sh_flowtime.d
+  C TIME(us)         FILE             DELTA(us) -- NAME
+  0 3060994282580    firefox                  2 > test
+  0 3060994286921    firefox               4341 > [
+  0 3060994286955    firefox                 34 > cd
+  0 3060994287014    firefox                 58 > [
+  0 3060994287059    firefox                 45 > [
+  0 3060994287227    firefox                167 > [
+  0 3060994293793    firefox                  2 > echo
+  0 3060994305759    firefox                  2 > echo
+  0 3060994309613    firefox              22385 > [
+  0 3060994309665    firefox                 52 > export
+  0 3060994309691    firefox                 25 -> moz_pis_startstop_scripts
+  0 3060994309752    firefox                 61   > export
+  0 3060994310199    firefox                447   > [
+  0 3060994314462    firefox               4262   -> moz_spc_verbose_echo
+  0 3060994314484    firefox                 22     > :
+  0 3060994314497    firefox                 12   <- moz_spc_verbose_echo
+  0 3060994322101    firefox               7604   > [
+  0 3060994322134    firefox                 33   -> moz_spc_verbose_echo
+  0 3060994322147    firefox                 12     > :
+  0 3060994322155    firefox                  7   <- moz_spc_verbose_echo
+  0 3060994322501    firefox                345   > [
+  0 3060994322518    firefox                 17   > [
+  0 3060994322578    firefox                 59   > [
+  0 3060994322641    firefox                 62   -> moz_spc_verbose_echo
+  0 3060994322650    firefox                  9     > :
+  0 3060994322656    firefox                  6   <- moz_spc_verbose_echo
+  0 3060994653794    firefox             331137   -> moz_spc_verbose_echo
+  0 3060994653826    firefox                 32     > :
+  0 3060994653839    firefox                 12   <- moz_spc_verbose_echo
+  0 3060994659534    firefox                  2 > [
+  0 3060994667539    firefox              13699   > [
+  0 3060994667604    firefox                 65   -> moz_spc_verbose_echo
+  0 3060994667617    firefox                 13     > :
+  0 3060994667625    firefox                  8   <- moz_spc_verbose_echo
+  0 3060994667653    firefox                 27   -> moz_spc_verbose_echo
+  0 3060994667661    firefox                  7     > :
+  0 3060994667668    firefox                  6   <- moz_spc_verbose_echo
+  0 3060994667675    firefox                  7   > .
+  0 3060994667725    firefox                 49   > [
+  0 3060994667732    firefox                  6 <- moz_pis_startstop_scripts
+  0 3060994667853    firefox                121 > [
+  0 3060994667881    firefox                 27 > [
+  0 3060994804329    run-mozilla.sh           2 > [
+  0 3060994804524    run-mozilla.sh         194 > break
+  0 3060994804560    run-mozilla.sh          36 > [
+  0 3060994804580    run-mozilla.sh          20 > shift
+  0 3060994804649    run-mozilla.sh          68 > [
+  0 3060994804710    run-mozilla.sh          61 > [
+  0 3060994804747    run-mozilla.sh          36 > [
+  0 3060994804889    run-mozilla.sh         142 > [
+  0 3060994804915    run-mozilla.sh          26 > export
+  0 3060994804952    run-mozilla.sh          36 > [
+  0 3060994804981    run-mozilla.sh          28 > [
+  0 3060994805093    run-mozilla.sh         112 > [
+  0 3060994805116    run-mozilla.sh          22 > export
+  0 3060994805160    run-mozilla.sh          44 > export
+  0 3060994805187    run-mozilla.sh          27 > [
+  0 3060994805215    run-mozilla.sh          27 -> moz_run_program
+  0 3060994805263    run-mozilla.sh          48   > [
+  0 3060994805283    run-mozilla.sh          19   -> moz_test_binary
+  0 3060994805314    run-mozilla.sh          31     > [
+  0 3060994805346    run-mozilla.sh          31     > [
+  0 3060994805358    run-mozilla.sh          12     > return
+  0 3060994805367    run-mozilla.sh           9   <- moz_test_binary
+  0 3060994805385    run-mozilla.sh          17   > [
+  0 3060994964498    run-mozilla.sh           2 > type
+  0 3060995520942    run-mozilla.sh      715556   > [
+  0 3060995520967    run-mozilla.sh          24   > [
+  0 3060995520987    run-mozilla.sh          20   > [
+  0 3061000622172    run-mozilla.sh     5101184   | /usr/lib/firefox/firefox-bin
+  0 3061000622221    run-mozilla.sh          49   > [
+  0 3061000622252    run-mozilla.sh          30   > [
+  0 3061000622266    run-mozilla.sh          14   > [
+  0 3061000622275    run-mozilla.sh           9 <- moz_run_program
+  0 3061000623686    firefox            5955805 | /usr/lib/firefox/run-mozilla.sh
+  0 3061000623793    firefox                106 -> moz_pis_startstop_scripts
+  0 3061000623864    firefox                 71   > export
+  0 3061000624108    firefox                244   > [
+  0 3061000624138    firefox                 30   > [
+  0 3061000624147    firefox                  8 <- moz_pis_startstop_scripts
+
+Points of latency during startup are visible in the output. For more details,
+see Examples/sh_flowinfo_example.txt.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_lines_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_lines_example.txt
new file mode 100644
index 0000000..f19487c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_lines_example.txt
@@ -0,0 +1,32 @@
+The following are examples of sh_lines.d.
+
+This is a simple script to count Bourne shell line execution. Here it traces an
+example program, Code/Shell/func_slow.sh.
+
+   # sh_lines.d 
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+                                FILE:LINE        COUNT
+                        func_slow.sh:5               1
+                        func_slow.sh:6               1
+                        func_slow.sh:15              1
+                        func_slow.sh:16              1
+                        func_slow.sh:21              1
+                        func_slow.sh:26              1
+                        func_slow.sh:27              1
+                        func_slow.sh:32              1
+                        func_slow.sh:35              1
+                        func_slow.sh:30            100
+                        func_slow.sh:28            101
+                        func_slow.sh:19            200
+                        func_slow.sh:17            201
+                        func_slow.sh:9             300
+                        func_slow.sh:7             301
+                        func_slow.sh:1             600
+
+The most frequently executed line was line 1 of func_slow.sh - which is actually
+line 1 of func_slow.sh subshells (command substitution, ` `). Apart from
+this slight confusion, the rest of the output should make sense (and most
+scripts only call one line in command substitution anyway).
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_pidcolors_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_pidcolors_example.txt
new file mode 100644
index 0000000..a6025e4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_pidcolors_example.txt
@@ -0,0 +1,574 @@
+The following are examples of sh_pidcolors.d.
+
+This is the same script as in sh_syscolors.d, except with additional tracing.
+As well as the functions, lines and system calls traced in sh_syscolors.d,
+this also adds some "pid" provider tracing as a starting point for deeper
+analysis.  In this case it adds the probes:
+
+      pid$target:a.out:e*:entry,
+      pid$target:a.out:e*:return
+
+which means, all functions from the /usr/bin/sh binary that begin with
+the letter "e". This adds about 34 probes, but you can customize it to be as
+inclusive as you like.  It renders the output in color ("colour") using terminal
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Shell/func_abc.sh.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# sh_pidcolors.d -c ./func_abc.sh -o /tmp/out
+Function A
+Function B
+Function C
+
+# cat /tmp/out
+C    PID  DELTA(us)              FILE:LINE TYPE     -- NAME
+[2;32m0  12312          2       func_abc.sh:-    syscall  -> munmap[0m
+[2;32m0  12312         34       func_abc.sh:-    syscall  <- munmap[0m
+[2;32m0  12312         53       func_abc.sh:-    syscall  -> mmap[0m
+[2;32m0  12312         19       func_abc.sh:-    syscall  <- mmap[0m
+[2;32m0  12312         43       func_abc.sh:-    syscall  -> setcontext[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  <- setcontext[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  -> getrlimit[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  <- getrlimit[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> getpid[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- getpid[0m
+[2;32m0  12312         63       func_abc.sh:-    syscall  -> setcontext[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- setcontext[0m
+[2;32m0  12312        813       func_abc.sh:-    syscall  -> sysi86[0m
+[2;32m0  12312         13       func_abc.sh:-    syscall  <- sysi86[0m
+[2;32m0  12312         85       func_abc.sh:-    syscall  -> open64[0m
+[2;32m0  12312         88       func_abc.sh:-    syscall  <- open64[0m
+[2;32m0  12312         13       func_abc.sh:-    syscall  -> ioctl[0m
+[2;32m0  12312         35       func_abc.sh:-    syscall  <- ioctl[0m
+[2;32m0  12312         15       func_abc.sh:-    syscall  -> close[0m
+[2;32m0  12312         17       func_abc.sh:-    syscall  <- close[0m
+[2;32m0  12312        123       func_abc.sh:-    syscall  -> getpid[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- getpid[0m
+[2;32m0  12312         17       func_abc.sh:-    syscall  -> setpgrp[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- setpgrp[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  -> setpgrp[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- setpgrp[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  -> access[0m
+[2;32m0  12312         19       func_abc.sh:-    syscall  <- access[0m
+[2;32m0  12312         14       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12312         15       func_abc.sh:-    syscall  -> sysconfig[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sysconfig[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sysconfig[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sysconfig[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  -> sigaltstack[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaltstack[0m
+[2;32m0  12312         16       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         12       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;34m0  12312         18       func_abc.sh:-    sh       -> endstak[0m
+[2;34m0  12312         18       func_abc.sh:-    sh       <- endstak[0m
+[2;32m0  12312         60       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- brk[0m
+[2;34m0  12312         10       func_abc.sh:-    sh       -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh       <- endstak[0m
+[2;32m0  12312         13       func_abc.sh:-    syscall  -> getuid[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- getuid[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> getuid[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- getuid[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  -> getgid[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- getgid[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  -> getgid[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- getgid[0m
+[2;32m0  12312         16       func_abc.sh:-    syscall  -> open64[0m
+[2;32m0  12312         20       func_abc.sh:-    syscall  <- open64[0m
+[2;34m0  12312         11       func_abc.sh:-    sh       -> exfile[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> close[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall    <- close[0m
+[2;32m0  12312         24       func_abc.sh:-    syscall    -> fcntl[0m
+[2;32m0  12312         23       func_abc.sh:-    syscall    <- fcntl[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> close[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    <- close[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    -> fcntl[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall    <- fcntl[0m
+[2;32m0  12312         28       func_abc.sh:-    syscall    -> ioctl[0m
+[2;32m0  12312         42       func_abc.sh:-    syscall    <- ioctl[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> ioctl[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    <- ioctl[0m
+[2;32m0  12312         14       func_abc.sh:-    syscall    -> read[0m
+[2;32m0  12312         33       func_abc.sh:-    syscall    <- read[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall    -> brk[0m
+[2;32m0  12312         20       func_abc.sh:-    syscall    <- brk[0m
+[2;34m0  12312         13       func_abc.sh:-    sh         -> execute[0m
+[2;34m0  12312         11       func_abc.sh:-    sh         <- execute[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> brk[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    <- brk[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- execute[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312         29       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> execute[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> brk[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    <- brk[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> execute[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         <- execute[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    -> brk[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    <- brk[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> read[0m
+[2;32m0  12312         16       func_abc.sh:-    syscall    <- read[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         25       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> execute[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         <- execute[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> brk[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    <- brk[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- execute[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    -> brk[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    <- brk[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> execute[0m
+[1;35m0  12312          9       func_abc.sh:23   line         -- [0m
+[2;34m0  12312         14       func_abc.sh:-    sh           -> estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh           <- estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh           <- endstak[0m
+[2;34m0  12312         18       func_abc.sh:-    sh           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh           <- endstak[0m
+[2;34m0  12312         12       func_abc.sh:-    sh           -> expand[0m
+[2;34m0  12312         10       func_abc.sh:-    sh           <- expand[0m
+[2;35m0  12312         14       func_abc.sh:23   func         -> func_a[0m
+[2;34m0  12312         14       func_abc.sh:-    sh             -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh               -> execute[0m
+[1;35m0  12312          8       func_abc.sh:18   line               -- [0m
+[2;34m0  12312          8       func_abc.sh:-    sh                 -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 <- estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                 -> endstak[0m
+[2;34m0  12312          8       func_abc.sh:-    sh                 <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 <- expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 <- estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                 -> endstak[0m
+[2;34m0  12312          8       func_abc.sh:-    sh                 <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                 -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 <- expand[0m
+[2;35m0  12312         13       func_abc.sh:18   builtin            -> echo[0m
+[2;34m0  12312         15       func_abc.sh:-    sh                   -> echo[0m
+[2;32m0  12312         14       func_abc.sh:-    syscall                -> write[0m
+[2;32m0  12312         35       func_abc.sh:-    syscall                <- write[0m
+[2;34m0  12312        321       func_abc.sh:-    sh                   <- echo[0m
+[2;35m0  12312         13       func_abc.sh:0    builtin            <- echo[0m
+[2;34m0  12312         17       func_abc.sh:-    sh               <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh               -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 -> execute[0m
+[1;35m0  12312          8       func_abc.sh:19   line                 -- [0m
+[2;34m0  12312          8       func_abc.sh:-    sh                   -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                   -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- expand[0m
+[2;34m0  12312         11       func_abc.sh:-    sh                   -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- endstak[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall              -> getuid[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall              <- getuid[0m
+[2;32m0  12312         15       func_abc.sh:-    syscall              -> stat64[0m
+[2;32m0  12312         27       func_abc.sh:-    syscall              <- stat64[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall              -> access[0m
+[2;32m0  12312         15       func_abc.sh:-    syscall              <- access[0m
+[2;32m0  12312         18       func_abc.sh:-    syscall              -> schedctl[0m
+[2;32m0  12312         47       func_abc.sh:-    syscall              <- schedctl[0m
+[2;32m0  12312        219       func_abc.sh:-    syscall              -> fork1[0m
+[2;32m0  12312     234375       func_abc.sh:-    syscall              <- fork1[0m
+[2;32m0  12312        277       func_abc.sh:-    syscall              -> lwp_sigmask[0m
+[2;32m0  12312         13       func_abc.sh:-    syscall              <- lwp_sigmask[0m
+[2;35m0  12312         33       func_abc.sh:19   cmd                  -> sleep[0m
+[2;32m0  12312         59       func_abc.sh:-    syscall                -> waitsys[0m
+[2;32m0  12312     870257       func_abc.sh:-    syscall                <- waitsys[0m
+[2;32m0  12312         36       func_abc.sh:-    syscall                -> ioctl[0m
+[2;32m0  12312         16       func_abc.sh:-    syscall                <- ioctl[0m
+[2;32m0  12312         13       func_abc.sh:-    syscall                -> setpgrp[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                <- setpgrp[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                -> ioctl[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                <- ioctl[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall                -> ioctl[0m
+[2;32m0  12312         33       func_abc.sh:-    syscall                <- ioctl[0m
+[2;32m0  12312         12       func_abc.sh:-    syscall                -> waitsys[0m
+[2;32m0  12312         25       func_abc.sh:-    syscall                <- waitsys[0m
+[2;35m0  12312         15       func_abc.sh:0    cmd                  <- sleep[0m
+[2;34m0  12312         20       func_abc.sh:-    sh                 <- execute[0m
+[2;34m0  12312         15       func_abc.sh:-    sh                 -> execute[0m
+[1;35m0  12312         14       func_abc.sh:20   line                 -- [0m
+[2;34m0  12312         13       func_abc.sh:-    sh                   -> estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                   <- estabf[0m
+[2;34m0  12312         11       func_abc.sh:-    sh                   -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- endstak[0m
+[2;34m0  12312         12       func_abc.sh:-    sh                   -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- endstak[0m
+[2;34m0  12312         11       func_abc.sh:-    sh                   -> expand[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                   <- expand[0m
+[2;35m0  12312         17       func_abc.sh:20   func                 -> func_b[0m
+[2;34m0  12312         14       func_abc.sh:-    sh                     -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                       -> execute[0m
+[1;35m0  12312          8       func_abc.sh:11   line                       -- [0m
+[2;34m0  12312          8       func_abc.sh:-    sh                         -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         <- estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         <- expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         <- estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                         -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         <- expand[0m
+[2;35m0  12312         13       func_abc.sh:11   builtin                    -> echo[0m
+[2;34m0  12312         15       func_abc.sh:-    sh                           -> echo[0m
+[2;32m0  12312         12       func_abc.sh:-    syscall                        -> write[0m
+[2;32m0  12312         32       func_abc.sh:-    syscall                        <- write[0m
+[2;34m0  12312        320       func_abc.sh:-    sh                           <- echo[0m
+[2;35m0  12312         12       func_abc.sh:0    builtin                    <- echo[0m
+[2;34m0  12312         16       func_abc.sh:-    sh                       <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                       -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         -> execute[0m
+[1;35m0  12312          8       func_abc.sh:12   line                         -- [0m
+[2;34m0  12312          8       func_abc.sh:-    sh                           -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- expand[0m
+[2;32m0  12312        225       func_abc.sh:-    syscall                      -> fork1[0m
+[2;32m0  12312      60940       func_abc.sh:-    syscall                      <- fork1[0m
+[2;32m0  12312        243       func_abc.sh:-    syscall                      -> lwp_sigmask[0m
+[2;32m0  12312         15       func_abc.sh:-    syscall                      <- lwp_sigmask[0m
+[2;35m0  12312         31       func_abc.sh:12   cmd                          -> sleep[0m
+[2;32m0  12312         31       func_abc.sh:-    syscall                        -> waitsys[0m
+[2;32m0  12312    1007422       func_abc.sh:-    syscall                        <- waitsys[0m
+[2;32m0  12312         28       func_abc.sh:-    syscall                        -> ioctl[0m
+[2;32m0  12312         17       func_abc.sh:-    syscall                        <- ioctl[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall                        -> setpgrp[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                        <- setpgrp[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                        -> ioctl[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                        <- ioctl[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                        -> ioctl[0m
+[2;32m0  12312         38       func_abc.sh:-    syscall                        <- ioctl[0m
+[2;32m0  12312         12       func_abc.sh:-    syscall                        -> waitsys[0m
+[2;32m0  12312         26       func_abc.sh:-    syscall                        <- waitsys[0m
+[2;35m0  12312         15       func_abc.sh:0    cmd                          <- sleep[0m
+[2;34m0  12312         32       func_abc.sh:-    sh                         <- execute[0m
+[2;34m0  12312         15       func_abc.sh:-    sh                         -> execute[0m
+[1;35m0  12312         14       func_abc.sh:13   line                         -- [0m
+[2;34m0  12312         13       func_abc.sh:-    sh                           -> estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                           <- estabf[0m
+[2;34m0  12312         12       func_abc.sh:-    sh                           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- endstak[0m
+[2;34m0  12312         12       func_abc.sh:-    sh                           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                           -> expand[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                           <- expand[0m
+[2;35m0  12312         17       func_abc.sh:13   func                         -> func_c[0m
+[2;34m0  12312         13       func_abc.sh:-    sh                             -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                               -> execute[0m
+[1;35m0  12312          8       func_abc.sh:5    line                               -- [0m
+[2;34m0  12312          8       func_abc.sh:-    sh                                 -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                                 -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- expand[0m
+[2;35m0  12312         13       func_abc.sh:5    builtin                            -> echo[0m
+[2;34m0  12312         15       func_abc.sh:-    sh                                   -> echo[0m
+[2;32m0  12312         12       func_abc.sh:-    syscall                                -> write[0m
+[2;32m0  12312         32       func_abc.sh:-    syscall                                <- write[0m
+[2;34m0  12312        309       func_abc.sh:-    sh                                   <- echo[0m
+[2;35m0  12312         12       func_abc.sh:0    builtin                            <- echo[0m
+[2;34m0  12312         16       func_abc.sh:-    sh                               <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                               -> execute[0m
+[1;35m0  12312          9       func_abc.sh:6    line                               -- [0m
+[2;34m0  12312          8       func_abc.sh:-    sh                                 -> estabf[0m
+[2;34m0  12312         22       func_abc.sh:-    sh                                 <- estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- endstak[0m
+[2;34m0  12312         11       func_abc.sh:-    sh                                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- expand[0m
+[2;32m0  12312        220       func_abc.sh:-    syscall                            -> fork1[0m
+[2;32m0  12312      60982       func_abc.sh:-    syscall                            <- fork1[0m
+[2;32m0  12312        239       func_abc.sh:-    syscall                            -> lwp_sigmask[0m
+[2;32m0  12312         15       func_abc.sh:-    syscall                            <- lwp_sigmask[0m
+[2;35m0  12312         30       func_abc.sh:6    cmd                                -> sleep[0m
+[2;32m0  12312         30       func_abc.sh:-    syscall                              -> waitsys[0m
+[2;32m0  12312    1007259       func_abc.sh:-    syscall                              <- waitsys[0m
+[2;32m0  12312         29       func_abc.sh:-    syscall                              -> ioctl[0m
+[2;32m0  12312         17       func_abc.sh:-    syscall                              <- ioctl[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall                              -> setpgrp[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                              <- setpgrp[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                              -> ioctl[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                              <- ioctl[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                              -> ioctl[0m
+[2;32m0  12312         35       func_abc.sh:-    syscall                              <- ioctl[0m
+[2;32m0  12312         12       func_abc.sh:-    syscall                              -> waitsys[0m
+[2;32m0  12312         25       func_abc.sh:-    syscall                              <- waitsys[0m
+[2;35m0  12312         15       func_abc.sh:0    cmd                                <- sleep[0m
+[2;34m0  12312         31       func_abc.sh:-    sh                               <- execute[0m
+[2;34m0  12312         13       func_abc.sh:-    sh                             <- execute[0m
+[2;35m0  12312         11       func_abc.sh:-    func                         <- func_c[0m
+[2;34m0  12312         14       func_abc.sh:-    sh                         <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                       <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                     <- execute[0m
+[2;35m0  12312          9       func_abc.sh:-    func                 <- func_b[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                 <- execute[0m
+[2;34m0  12312         18       func_abc.sh:-    sh               <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh             <- execute[0m
+[2;35m0  12312          9       func_abc.sh:-    func         <- func_a[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- execute[0m
+[2;32m0  12312         12       func_abc.sh:-    syscall    -> brk[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall    <- brk[0m
+[2;32m0  12312         12       func_abc.sh:-    syscall    -> read[0m
+[2;32m0  12312         16       func_abc.sh:-    syscall    <- read[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> ioctl[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    <- ioctl[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> ioctl[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall    <- ioctl[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall    -> close[0m
+[2;32m0  12312         13       func_abc.sh:-    syscall    <- close[0m
+[2;34m0  12312         12       func_abc.sh:-    sh         -> endjobs[0m
+[2;34m0  12312         14       func_abc.sh:-    sh         <- endjobs[0m
+[2;34m0  12312         10       func_abc.sh:-    sh       <- exfile[0m
+[2;34m0  12312         11       func_abc.sh:-    sh       -> endjobs[0m
+[2;34m0  12312          9       func_abc.sh:-    sh       <- endjobs[0m
+[2;32m0  12312         37       func_abc.sh:-    syscall  -> open64[0m
+[2;32m0  12312        103       func_abc.sh:-    syscall  <- open64[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  -> ioctl[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  <- ioctl[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  -> close[0m
+[2;32m0  12312         15       func_abc.sh:-    syscall  <- close[0m
+[2;32m0  12312         32       func_abc.sh:-    syscall  -> rexit[0m
+
+Here you can see the output showing the path the script follows as it is
+executed.
+
+At the end of the sh_syscolor_example.txt file, you can see the steps that the
+script goes through when it runs func_a.  The output contains the two
+consecutive lines:
+
+[1;35m0  12979         14       func_abc.sh:23   line     -- [0m
+[2;35m0  12979         32       func_abc.sh:23   func     -> func_a[0m
+
+Here we trace many more events that happen in between these two lines, as seen
+below:
+
+[1;35m0  12312          9       func_abc.sh:23   line         -- [0m
+[2;34m0  12312         14       func_abc.sh:-    sh           -> estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh           <- estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh           <- endstak[0m
+[2;34m0  12312         18       func_abc.sh:-    sh           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh           <- endstak[0m
+[2;34m0  12312         12       func_abc.sh:-    sh           -> expand[0m
+[2;34m0  12312         10       func_abc.sh:-    sh           <- expand[0m
+[2;35m0  12312         14       func_abc.sh:23   func         -> func_a[0m
+[2;34m0  12312         14       func_abc.sh:-    sh             -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh               -> execute[0m
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_stat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_stat_example.txt
new file mode 100644
index 0000000..a44a563
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_stat_example.txt
@@ -0,0 +1,44 @@
+Following are examples of running sh_stat.d on Shell scripts. 
+
+sh_stat.d shows you the number of events per second that have happened since
+the last line output.  The default interval is 1 second, but you can specify 
+other intervals as arguments to the script.
+
+This shows the sh_stat.d script reflecting the Code/Shell/func_slow.sh script.
+
+   # sh_stat.d
+   TIME                   EXEC/s  FUNCS/s BLTINS/s SUB-SH/s    CMD/s
+   2007 Sep 17 03:29:02        1        1       50       96        0
+   2007 Sep 17 03:29:03        0        1      151      300        0
+   2007 Sep 17 03:29:04        0        1      142      280        0
+   2007 Sep 17 03:29:05        0        0      132      262        0
+   2007 Sep 17 03:29:06        0        0      122      245        0
+   2007 Sep 17 03:29:07        0        0        9       17        0
+   2007 Sep 17 03:29:08        0        0        0        0        0
+   2007 Sep 17 03:29:09        0        0        0        0        0
+   ^C
+
+We can see that at 2007 Sep 17 03:29:04 there were 0 Bourne shells executed,
+one function called, 142 built-in commands called, 280 sub-shells created and
+0 external commands called.
+
+
+Here the script runs when Mozilla Firefox is started.
+
+   # sh_stat.d 
+   TIME                   EXEC/s  FUNCS/s BLTINS/s SUB-SH/s    CMD/s
+   2007 Sep 17 03:29:52        1        9       52       38        2
+   2007 Sep 17 03:29:53        0        0        0        0        0
+   2007 Sep 17 03:29:54        0        0        0        0        0
+   2007 Sep 17 03:29:55        0        0        0        0        0
+   2007 Sep 17 03:29:56        0        0        0        0        0
+   2007 Sep 17 03:29:57        0        0        0        0        0
+   2007 Sep 17 03:29:58        0        0        0        0        0
+   2007 Sep 17 03:29:59        0        0        0        0        0
+   2007 Sep 17 03:30:00        0        0        0        0        0
+   2007 Sep 17 03:30:01        1        1        8        0        0
+   2007 Sep 17 03:30:02        0        0        0        0        0
+   2007 Sep 17 03:30:03        0        0        0        0        0
+   2007 Sep 17 03:30:04        0        0        0        0        0
+   ^C
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_syscalls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_syscalls_example.txt
new file mode 100644
index 0000000..fbda095
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_syscalls_example.txt
@@ -0,0 +1,59 @@
+The following are examples of sh_syscalls.d.
+
+This is a simple script to count Shell functions, built-ins, external command
+executions and system calls.  Here we trace an example program - 
+Code/Shell/func_abc.sh.
+
+# sh_syscalls.d -c ./func_abc.sh -o /tmp/out
+Function A
+Function B
+Function C
+
+# cat /tmp/out
+Tracing... Hit Ctrl-C to end.
+
+Calls for PID 12966,
+
+ FILE                             TYPE       NAME                      COUNT
+ func_abc.sh                      func       func_a                        1
+ func_abc.sh                      func       func_b                        1
+ func_abc.sh                      func       func_c                        1
+ func_abc.sh                      syscall    getrlimit                     1
+ func_abc.sh                      syscall    mmap                          1
+ func_abc.sh                      syscall    munmap                        1
+ func_abc.sh                      syscall    rexit                         1
+ func_abc.sh                      syscall    schedctl                      1
+ func_abc.sh                      syscall    sigaltstack                   1
+ func_abc.sh                      syscall    stat64                        1
+ func_abc.sh                      syscall    sysi86                        1
+ func_abc.sh                      syscall    access                        2
+ func_abc.sh                      syscall    fcntl                         2
+ func_abc.sh                      syscall    getgid                        2
+ func_abc.sh                      syscall    getpid                        2
+ func_abc.sh                      syscall    setcontext                    2
+ func_abc.sh                      syscall    sysconfig                     2
+ func_abc.sh                      builtin    echo                          3
+ func_abc.sh                      cmd        sleep                         3
+ func_abc.sh                      syscall    fork1                         3
+ func_abc.sh                      syscall    getuid                        3
+ func_abc.sh                      syscall    lwp_sigmask                   3
+ func_abc.sh                      syscall    open64                        3
+ func_abc.sh                      syscall    read                          3
+ func_abc.sh                      syscall    write                         3
+ func_abc.sh                      syscall    close                         5
+ func_abc.sh                      syscall    setpgrp                       5
+ func_abc.sh                      syscall    waitsys                       6
+ func_abc.sh                      syscall    brk                           9
+ func_abc.sh                      syscall    ioctl                        15
+ func_abc.sh                      syscall    sigaction                    53
+
+While tracing, three functions were called - func_a(), func_b() and
+func_c().  There were 3 instances of the shell built-in 'echo' being called,
+and 3 executions of the sleep command (which is probably /usr/bin/sleep - use
+the syscall provider to confirm). There were numerous system calls made, 
+including 9 brk()'s, 15 ioctl()'s and 53 sigaction()'s.
+
+This script can provide an insight to how a script is interacting
+with the system, by providing function calls, commands, built-ins and system 
+calls in the same output.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_syscolors_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_syscolors_example.txt
new file mode 100644
index 0000000..ccc722a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_syscolors_example.txt
@@ -0,0 +1,328 @@
+The following are examples of sh_syscolors.d.
+
+This is a simple script to trace the flow of Shell functions, lines, and 
+system calls made. It renders the output in color ("colour") using terminal
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Shell/func_abc.sh.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# sh_syscolors.d -c ./func_abc.sh -o /tmp/out
+Function A
+Function B
+Function C
+
+# cat /tmp/out
+C    PID  DELTA(us)              FILE:LINE TYPE     -- NAME
+[2;32m0  12979          2       func_abc.sh:-    syscall  -> munmap[0m
+[2;32m0  12979         35       func_abc.sh:-    syscall  <- munmap[0m
+[2;32m0  12979         56       func_abc.sh:-    syscall  -> mmap[0m
+[2;32m0  12979         18       func_abc.sh:-    syscall  <- mmap[0m
+[2;32m0  12979         40       func_abc.sh:-    syscall  -> setcontext[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  <- setcontext[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> getrlimit[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  <- getrlimit[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> getpid[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- getpid[0m
+[2;32m0  12979         61       func_abc.sh:-    syscall  -> setcontext[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- setcontext[0m
+[2;32m0  12979        865       func_abc.sh:-    syscall  -> sysi86[0m
+[2;32m0  12979         14       func_abc.sh:-    syscall  <- sysi86[0m
+[2;32m0  12979         84       func_abc.sh:-    syscall  -> open64[0m
+[2;32m0  12979         89       func_abc.sh:-    syscall  <- open64[0m
+[2;32m0  12979         14       func_abc.sh:-    syscall  -> ioctl[0m
+[2;32m0  12979         35       func_abc.sh:-    syscall  <- ioctl[0m
+[2;32m0  12979         15       func_abc.sh:-    syscall  -> close[0m
+[2;32m0  12979         16       func_abc.sh:-    syscall  <- close[0m
+[2;32m0  12979        119       func_abc.sh:-    syscall  -> getpid[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  <- getpid[0m
+[2;32m0  12979         17       func_abc.sh:-    syscall  -> setpgrp[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  <- setpgrp[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> setpgrp[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- setpgrp[0m
+[2;32m0  12979         12       func_abc.sh:-    syscall  -> access[0m
+[2;32m0  12979         20       func_abc.sh:-    syscall  <- access[0m
+[2;32m0  12979         15       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12979         15       func_abc.sh:-    syscall  -> sysconfig[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sysconfig[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sysconfig[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sysconfig[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> sigaltstack[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaltstack[0m
+[2;32m0  12979         16       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979         12       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979         61       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12979         13       func_abc.sh:-    syscall  -> getuid[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- getuid[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> getuid[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- getuid[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> getgid[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- getgid[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> getgid[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- getgid[0m
+[2;32m0  12979         15       func_abc.sh:-    syscall  -> open64[0m
+[2;32m0  12979         19       func_abc.sh:-    syscall  <- open64[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> close[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- close[0m
+[2;32m0  12979         24       func_abc.sh:-    syscall  -> fcntl[0m
+[2;32m0  12979         23       func_abc.sh:-    syscall  <- fcntl[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> close[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  <- close[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> fcntl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- fcntl[0m
+[2;32m0  12979         28       func_abc.sh:-    syscall  -> ioctl[0m
+[2;32m0  12979         42       func_abc.sh:-    syscall  <- ioctl[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> ioctl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- ioctl[0m
+[2;32m0  12979         14       func_abc.sh:-    syscall  -> read[0m
+[2;32m0  12979         33       func_abc.sh:-    syscall  <- read[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979         21       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12979         12       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12979         19       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> read[0m
+[2;32m0  12979         15       func_abc.sh:-    syscall  <- read[0m
+[2;32m0  12979         28       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- brk[0m
+[1;35m0  12979         14       func_abc.sh:23   line     -- [0m
+[2;35m0  12979         32       func_abc.sh:23   func     -> func_a[0m
+[1;35m0  12979         16       func_abc.sh:18   line       -- [0m
+[2;35m0  12979         18       func_abc.sh:18   builtin    -> echo[0m
+[2;32m0  12979         21       func_abc.sh:-    syscall      -> write[0m
+[2;32m0  12979         33       func_abc.sh:-    syscall      <- write[0m
+[2;35m0  12979        311       func_abc.sh:0    builtin    <- echo[0m
+[1;35m0  12979         65       func_abc.sh:19   line       -- [0m
+[2;32m0  12979         17       func_abc.sh:-    syscall    -> getuid[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall    <- getuid[0m
+[2;32m0  12979         15       func_abc.sh:-    syscall    -> stat64[0m
+[2;32m0  12979         25       func_abc.sh:-    syscall    <- stat64[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall    -> access[0m
+[2;32m0  12979         15       func_abc.sh:-    syscall    <- access[0m
+[2;32m0  12979         18       func_abc.sh:-    syscall    -> schedctl[0m
+[2;32m0  12979         46       func_abc.sh:-    syscall    <- schedctl[0m
+[2;32m0  12979        220       func_abc.sh:-    syscall    -> fork1[0m
+[2;32m0  12979     258957       func_abc.sh:-    syscall    <- fork1[0m
+[2;32m0  12979        244       func_abc.sh:-    syscall    -> lwp_sigmask[0m
+[2;32m0  12979         16       func_abc.sh:-    syscall    <- lwp_sigmask[0m
+[2;35m0  12979         31       func_abc.sh:19   cmd        -> sleep[0m
+[2;32m0  12979         53       func_abc.sh:-    syscall      -> waitsys[0m
+[2;32m0  12979    1008036       func_abc.sh:-    syscall      <- waitsys[0m
+[2;32m0  12979         38       func_abc.sh:-    syscall      -> ioctl[0m
+[2;32m0  12979         18       func_abc.sh:-    syscall      <- ioctl[0m
+[2;32m0  12979         12       func_abc.sh:-    syscall      -> setpgrp[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall      <- setpgrp[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall      -> ioctl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall      <- ioctl[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall      -> ioctl[0m
+[2;32m0  12979         37       func_abc.sh:-    syscall      <- ioctl[0m
+[2;32m0  12979         12       func_abc.sh:-    syscall      -> waitsys[0m
+[2;32m0  12979         26       func_abc.sh:-    syscall      <- waitsys[0m
+[2;35m0  12979         14       func_abc.sh:0    cmd        <- sleep[0m
+[1;35m0  12979         21       func_abc.sh:20   line       -- [0m
+[2;35m0  12979         28       func_abc.sh:20   func       -> func_b[0m
+[1;35m0  12979         15       func_abc.sh:11   line         -- [0m
+[2;35m0  12979         17       func_abc.sh:11   builtin      -> echo[0m
+[2;32m0  12979         19       func_abc.sh:-    syscall        -> write[0m
+[2;32m0  12979         33       func_abc.sh:-    syscall        <- write[0m
+[2;35m0  12979        310       func_abc.sh:0    builtin      <- echo[0m
+[1;35m0  12979         16       func_abc.sh:12   line         -- [0m
+[2;32m0  12979        226       func_abc.sh:-    syscall      -> fork1[0m
+[2;32m0  12979      64931       func_abc.sh:-    syscall      <- fork1[0m
+[2;32m0  12979        262       func_abc.sh:-    syscall      -> lwp_sigmask[0m
+[2;32m0  12979         16       func_abc.sh:-    syscall      <- lwp_sigmask[0m
+[2;35m0  12979         31       func_abc.sh:12   cmd          -> sleep[0m
+[2;32m0  12979         31       func_abc.sh:-    syscall        -> waitsys[0m
+[2;32m0  12979    1003941       func_abc.sh:-    syscall        <- waitsys[0m
+[2;32m0  12979         30       func_abc.sh:-    syscall        -> ioctl[0m
+[2;32m0  12979         19       func_abc.sh:-    syscall        <- ioctl[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall        -> setpgrp[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall        <- setpgrp[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall        -> ioctl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall        <- ioctl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall        -> ioctl[0m
+[2;32m0  12979         38       func_abc.sh:-    syscall        <- ioctl[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall        -> waitsys[0m
+[2;32m0  12979         26       func_abc.sh:-    syscall        <- waitsys[0m
+[2;35m0  12979         14       func_abc.sh:0    cmd          <- sleep[0m
+[1;35m0  12979         33       func_abc.sh:13   line         -- [0m
+[2;35m0  12979         27       func_abc.sh:13   func         -> func_c[0m
+[1;35m0  12979         15       func_abc.sh:5    line           -- [0m
+[2;35m0  12979         17       func_abc.sh:5    builtin        -> echo[0m
+[2;32m0  12979         20       func_abc.sh:-    syscall          -> write[0m
+[2;32m0  12979         33       func_abc.sh:-    syscall          <- write[0m
+[2;35m0  12979        309       func_abc.sh:0    builtin        <- echo[0m
+[1;35m0  12979         17       func_abc.sh:6    line           -- [0m
+[2;32m0  12979        267       func_abc.sh:-    syscall        -> fork1[0m
+[2;32m0  12979      64649       func_abc.sh:-    syscall        <- fork1[0m
+[2;32m0  12979        257       func_abc.sh:-    syscall        -> lwp_sigmask[0m
+[2;32m0  12979         16       func_abc.sh:-    syscall        <- lwp_sigmask[0m
+[2;35m0  12979         31       func_abc.sh:6    cmd            -> sleep[0m
+[2;32m0  12979         31       func_abc.sh:-    syscall          -> waitsys[0m
+[2;32m0  12979    1004183       func_abc.sh:-    syscall          <- waitsys[0m
+[2;32m0  12979         31       func_abc.sh:-    syscall          -> ioctl[0m
+[2;32m0  12979         18       func_abc.sh:-    syscall          <- ioctl[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall          -> setpgrp[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall          <- setpgrp[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall          -> ioctl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall          <- ioctl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall          -> ioctl[0m
+[2;32m0  12979         38       func_abc.sh:-    syscall          <- ioctl[0m
+[2;32m0  12979         12       func_abc.sh:-    syscall          -> waitsys[0m
+[2;32m0  12979         27       func_abc.sh:-    syscall          <- waitsys[0m
+[2;35m0  12979         14       func_abc.sh:0    cmd            <- sleep[0m
+[2;35m0  12979         32       func_abc.sh:-    func         <- func_c[0m
+[2;35m0  12979         16       func_abc.sh:-    func       <- func_b[0m
+[2;35m0  12979         10       func_abc.sh:-    func     <- func_a[0m
+[2;32m0  12979         13       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979         12       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12979         12       func_abc.sh:-    syscall  -> read[0m
+[2;32m0  12979         16       func_abc.sh:-    syscall  <- read[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> ioctl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- ioctl[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> ioctl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- ioctl[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> close[0m
+[2;32m0  12979         13       func_abc.sh:-    syscall  <- close[0m
+[2;32m0  12979         37       func_abc.sh:-    syscall  -> open64[0m
+[2;32m0  12979        105       func_abc.sh:-    syscall  <- open64[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> ioctl[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  <- ioctl[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> close[0m
+[2;32m0  12979         15       func_abc.sh:-    syscall  <- close[0m
+[2;32m0  12979         31       func_abc.sh:-    syscall  -> rexit[0m
+
+Here you can see the output showing the path the script follows as it is
+executed.
+
+ie:
+[1;35m0  12979         14       func_abc.sh:23   line     -- [0m
+[2;35m0  12979         32       func_abc.sh:23   func     -> func_a[0m
+[1;35m0  12979         16       func_abc.sh:18   line       -- [0m
+[2;35m0  12979         18       func_abc.sh:18   builtin    -> echo[0m
+[2;32m0  12979         21       func_abc.sh:-    syscall      -> write[0m
+[2;32m0  12979         33       func_abc.sh:-    syscall      <- write[0m
+[2;35m0  12979        311       func_abc.sh:0    builtin    <- echo[0m
+[1;35m0  12979         65       func_abc.sh:19   line       -- [0m
+
+shows that on CPU 0 we run func_a (which is line 23 of the example script), 
+where it uses the shell built-in echo command (on line 18 of the example 
+script) to write a line of text to the screen. You can see in column 3 (the 
+delta time) it takes 311 microseconds from when the write syscall finishes to
+when the echo built-in completes its clean-up and finishes.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_wasted_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_wasted_example.txt
new file mode 100644
index 0000000..b11f952
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_wasted_example.txt
@@ -0,0 +1,45 @@
+Many shell programmers are in the habit of using calls to external commands 
+instead of using shell built-in commands (an example of this is a call to
+usr/bin/echo instead of using the echo command built into the shell.
+
+This script shows sh_wasted.d tracing a shell script that calls /usr/bin/echo
+instead of using the built-in.
+
+# sh_wasted.d -c ./func_waste.sh
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+Script duration: 3101631 us
+
+External command elapsed times,
+   FILE                           NAME                   TIME(us)
+   func_waste.sh                  sleep                   3019573
+
+Wasted command elapsed times,
+   FILE                           NAME                   TIME(us)
+   func_waste.sh                  /usr/bin/echo             26510
+
+You can see that the calls to /usr/bin/echo took around 26 thousand
+microseconds; time wasted by the shell having to access an external command.
+
+
+Here we trace the same script, except it uses the shell built-in echo command.
+
+# sh_wasted.d -c ./func_abc.sh 
+Function A
+Tracing... Hit Ctrl-C to end.
+Function B
+Function C
+Script duration: 3032616 us
+
+External command elapsed times,
+   FILE                           NAME                   TIME(us)
+   func_abc.sh                    sleep                   3012920
+
+Wasted command elapsed times,
+   FILE                           NAME                   TIME(us)
+
+The total time here is less and there are no 'wasted' calls to external
+commands.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_who_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_who_example.txt
new file mode 100644
index 0000000..b35e8e4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sh_who_example.txt
@@ -0,0 +1,45 @@
+These are examples of the results after running the sh_who.d script. 
+
+This script shows which UIDs and PIDs are running shell scripts, and how 
+active they are.  It measures the number of lines executed according to 
+the line probe - which is a useful, but rough measure of shell activity.
+
+Here it runs as a script executes three times.
+
+# sh_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+      PID    UID  LINES FILE
+    13663      0      9 ./func_abc.sh
+    13667      0      9 ./func_abc.sh
+    13671      0      9 ./func_abc.sh
+
+We see func_abc.sh ran three seperate times, each with nine lines of shell 
+activity.
+
+
+Here we trace an instance of starting Mozilla Firefox.
+
+# sh_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+      PID    UID  LINES FILE
+    13678    100      1 firefox
+    13679    100      1 firefox
+    13680    100      1 firefox
+    13681    100      1 firefox
+    13683    100      1 firefox
+    13685    100      1 firefox
+    13686    100      1 firefox
+    13687    100      1 firefox
+    13690    100      1 firefox
+    13693    100      1 /usr/lib/firefox/run-mozilla.sh
+    13694    100      1 /usr/lib/firefox/run-mozilla.sh
+    13695    100      1 /usr/lib/firefox/run-mozilla.sh
+    13692    100     55 /usr/lib/firefox/run-mozilla.sh
+    13677    100     75 firefox
+
+Firefox itself (PID 13677) ran 75 lines of code.  There are also instances of 
+firefox running a single line of code with a different PID each time.  These 
+are probably calls to subshells.  Use the sh provider to confirm.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/shellsnoop_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/shellsnoop_example.txt
new file mode 100644
index 0000000..be307f8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/shellsnoop_example.txt
@@ -0,0 +1,112 @@
+shellsnoop captures the text input and output from shells running on the 
+system. In the following example shellsnoop was run in one window, while
+in another several commands were run: date, cal, uname -a, uptime and find.
+shellsnoop has successfully captured the text that was displayed on the
+other window.
+
+
+# shellsnoop
+  PID  PPID      CMD DIR  TEXT
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  date
+
+ 4741  4724     date   W  Sun Mar 28 23:10:06 EST 2004
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  jupiter:/etc/init.d>
+ 4724  3762      ksh   R
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  cal
+
+ 4742  4724      cal   W     March 2004
+ 4742  4724      cal   W   S  M Tu  W Th  F  S
+ 4742  4724      cal   W      1  2  3  4  5  6
+ 4742  4724      cal   W   7  8  9 10 11 12 13
+ 4742  4724      cal   W  14 15 16 17 18 19 20
+ 4742  4724      cal   W  21 22 23 24 25 26 27
+ 4742  4724      cal   W  28 29 30 31
+ 4742  4724      cal   W
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  jupiter:/etc/init.d>
+ 4724  3762      ksh   R
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  uname -a
+
+ 4743  4724    uname   W  SunOS jupiter 5.10 s10_51 i86pc i386 i86pc
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  jupiter:/etc/init.d>
+ 4724  3762      ksh   R
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  uptime
+
+ 4744  4724   uptime   W   11:10pm  up 4 day(s), 11:15,  4 users,  load average: 0.05, 0.02, 0.02
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  jupiter:/etc/init.d>
+ 4724  3762      ksh   R
+ 4724  3762      ksh   R
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  jupiter:/etc/init.d>
+ 4724  3762      ksh   R
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  ls -l d*
+
+ 4745  4724       ls   W  -rwxr--r--   3 root     sys         1292 Jan 14 16:24 devfsadm
+ 4745  4724       ls   W  -rwxr--r--   1 root     sys          904 Jan 14 16:24 devlinks
+ 4745  4724       ls   W  -rwxr--r--   6 root     sys          621 Jan 14 16:17 dhcp
+ 4745  4724       ls   W  -rwxr--r--   2 root     sys          494 Jan 14 16:17 dhcpagent
+ 4745  4724       ls   W  -rwxr--r--   5 root     sys         1050 Jan 16  2002 directory
+ 4745  4724       ls   W  -rwxr--r--   2 root     sys          779 Jan 14 16:17 domainname
+ 4745  4724       ls   W  -rwxr--r--   1 root     sys          469 Jan 14 16:24 drvconfig
+ 4745  4724       ls   W  -r-xr-xr-x   4 root     other       2804 Mar 27 13:37 dtlogin
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  jupiter:/etc/init.d>
+ 4724  3762      ksh   R
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  find /etc/default
+
+ 4746  4724     find   W  /etc/default
+ 4746  4724     find   W  /etc/default/cron
+ 4746  4724     find   W  /etc/default/devfsadm
+ 4746  4724     find   W  /etc/default/dhcpagent
+ 4746  4724     find   W  /etc/default/fs
+ 4746  4724     find   W  /etc/default/inetd
+ 4746  4724     find   W  /etc/default/inetinit
+ 4746  4724     find   W  /etc/default/kbd
+ 4746  4724     find   W  /etc/default/keyserv
+ 4746  4724     find   W  /etc/default/ipsec
+ 4746  4724     find   W  /etc/default/nss
+ 4746  4724     find   W  /etc/default/passwd
+ 4746  4724     find   W  /etc/default/syslogd
+ 4746  4724     find   W  /etc/default/tar
+ 4746  4724     find   W  /etc/default/utmpd
+ 4746  4724     find   W  /etc/default/init
+ 4746  4724     find   W  /etc/default/login
+ 4746  4724     find   W  /etc/default/su
+ 4746  4724     find   W  /etc/default/power
+ 4746  4724     find   W  /etc/default/sys-suspend
+ 4746  4724     find   W  /etc/default/rpc.nisd
+ 4746  4724     find   W  /etc/default/nfs
+[...]
+
+
+
+shellsnoop has a "-q" option for running in "quiet" mode - the previous 
+columns are not printed, so only shell output is seen,
+
+   # shellsnoop -q
+   # date
+   Wed Nov 30 16:19:48 EST 2005
+   #
+   # cal
+      November 2005
+    S  M Tu  W Th  F  S
+          1  2  3  4  5
+    6  7  8  9 10 11 12
+   13 14 15 16 17 18 19
+   20 21 22 23 24 25 26
+   27 28 29 30
+   
+   #
+
+The output appears somewhat boring, this is something you need to see
+in realtime.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/shortlived_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/shortlived_example.txt
new file mode 100644
index 0000000..ebe4692
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/shortlived_example.txt
@@ -0,0 +1,57 @@
+The following is an example of the shortlived.d program.
+It can measure time spent processing short lived processes,
+that may be responsible for heavy load on the system but
+are usually difficult to see with sampling tools like prstat.
+
+
+
+Here we run in for a few seconds on a server,
+
+   # shortlived.d
+   Tracing... Hit Ctrl-C to stop.
+   ^C
+   short lived processes:      0.456 secs
+   total sample duration:      9.352 secs
+   
+   Total time by process name,
+                 date           12 ms
+                   df           20 ms
+                   ls           40 ms
+                 perl          380 ms
+   
+   Total time by PPID,
+                 3279          452 ms
+
+In the above output, around 5% of the CPU was lost to short
+lived processes - mostly perl. This may be many perl processes,
+here we are aggregating on the process name not the instance.
+
+
+
+Now shortlived.d is run on a server with a performance problem,
+
+   # uptime
+     10:58pm  up 5 day(s),  1:28,  1 user,  load average: 2.20, 1.81, 1.04
+   #
+   # shortlived.d
+   Tracing... Hit Ctrl-C to stop.
+   ^C
+   short lived processes:      4.546 secs
+   total sample duration:      9.858 secs
+   
+   Total time by process name,
+                 expr         4122 ms
+   
+   Total time by PPID,
+                 3279         4122 ms
+   #
+   # ps -p 3279
+      PID TTY         TIME CMD
+     3279 pts/10      0:45 report.sh
+
+shortlived.d showed that 50% of the CPU was consumed by short lived
+processes, all of them the "expr" command, and all having the 
+parent proccess-ID 3279. We finished by checking PID 3279 to find
+it is a Bourne shell script called "report.sh".
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sigdist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sigdist_example.txt
new file mode 100644
index 0000000..88b9df4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sigdist_example.txt
@@ -0,0 +1,18 @@
+The following is a demonstration of the sigdist.d script.
+
+
+Here we run sigdist.d, and in another window we kill -9 a sleep process,
+
+   # ./sigdist.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+             SENDER        RECIPIENT    SIG  COUNT
+              sched           dtrace      2      1
+              sched             bash     18      1
+               bash            sleep      9      1
+              sched             Xorg     14     55
+
+We can see the signal sent from bash to sleep. We can also see that Xorg
+has recieved 55 signal 14s. a "man -s3head signal" may help explain what
+signal 14 is (alarm clock). 
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/stacksize_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/stacksize_example.txt
new file mode 100644
index 0000000..156f351
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/stacksize_example.txt
@@ -0,0 +1,87 @@
+The following is a domonstration of the stacksize.d script.
+
+
+Here it is run for a few seconds then Ctrl-C is hit. The output prints
+distrubition plots of the size of the user stack as the value, and the
+number of times sampled at that size as the count.
+
+   # ./stacksize.d
+   Sampling... Hit Ctrl-C to end
+   
+   
+     automountd                                        
+              value  ------------- Distribution ------------- count    
+                128 |                                         0        
+                256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+                512 |                                         0        
+   
+     nscd                                              
+              value  ------------- Distribution ------------- count    
+                 64 |                                         0        
+                128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+                256 |                                         0        
+   
+     svc.startd                                        
+              value  ------------- Distribution ------------- count    
+                128 |                                         0        
+                256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+                512 |                                         0        
+   
+     sshd                                              
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+               4096 |                                         0        
+   
+     dtrace                                            
+              value  ------------- Distribution ------------- count    
+                512 |                                         0        
+               1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+               2048 |                                         0        
+   
+     nautilus                                          
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4096 |                                         0        
+   
+     Xvnc                                              
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4096 |                                         0        
+   
+     gnome-vfs-daemon                                  
+              value  ------------- Distribution ------------- count    
+               2048 |                                         0        
+               4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               8192 |                                         0        
+   
+     Xorg                                              
+              value  ------------- Distribution ------------- count    
+               2048 |                                         0        
+               4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+               8192 |                                         0        
+   
+     gnome-terminal                                    
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@@@@@@@@@@@@@@                         7        
+               4096 |@@@@@@@@@@@@@@@@@@@@@@@@                 11       
+               8192 |                                         0        
+   
+     acroread                                          
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 92       
+               4096 |                                         0        
+   
+     perl                                              
+              value  ------------- Distribution ------------- count    
+                512 |                                         0        
+               1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1945     
+               2048 |                                         0        
+   
+   
+   Errors:
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/statsnoop_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/statsnoop_example.txt
new file mode 100644
index 0000000..842017e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/statsnoop_example.txt
@@ -0,0 +1,94 @@
+The following is an example of the statsnoop tool.
+
+
+statsnoop is a companion to opensnoop, which traces a variety of stat()
+calls rather than open() calls.
+
+Here I run statsnoop on my idle laptop for about 3 seconds,
+
+   # statsnoop 
+     UID    PID COMM          FD PATH                 
+       0   1485 dtrace         0 /devices/pseudo/pts@0:6 
+     100    791 dtwm          -1 /usr/mail/brendan    
+     100    791 dtwm          -1 /usr/mail/brendan    
+     100    791 dtwm          -1 /usr/mail/brendan    
+     100    791 dtwm          -1 /usr/mail/brendan    
+     100    795 sdtperfmeter   0 /devices/pseudo/mm@0:null 
+       0    803 rpc.rstatd     0 /devices/pseudo/udp@0:udp 
+       0    803 rpc.rstatd     0 /devices/pseudo/udp@0:udp 
+     100    795 sdtperfmeter   0 /devices/pseudo/mm@0:null 
+     100    791 dtwm           0 /export/home/brendan/.dt/Trash/.trashinfo 
+     100    791 dtwm           0 /export/home/brendan/.dt/Trash/.trashinfo 
+     100    791 dtwm           0 /devices/pseudo/mm@0:null 
+     100    783 ttsession      0 /devices/pseudo/pts@0:3 
+     100    783 ttsession      0 /devices/pseudo/pts@0:3 
+     100    783 ttsession      0 /devices/pseudo/pts@0:3 
+     100    791 dtwm           0 /devices/pseudo/mm@0:null 
+     100    783 ttsession      0 /devices/pseudo/pts@0:3 
+     100    783 ttsession      0 /devices/pseudo/pts@0:3 
+     100    791 dtwm           0 /devices/pseudo/mm@0:null 
+     100    791 dtwm           0 /devices/pseudo/mm@0:null 
+     100    792 dtfile         0 /devices/pseudo/mm@0:null 
+     100    783 ttsession      0 /devices/pseudo/pts@0:3 
+   ^C
+
+It is interesting what turns up. In the above output, a "dtwm" process
+with process ID 791 called stat on /usr/mail/brendan and received -1 as
+a return value - as this file does not exist. (when were mailboxes ever
+stored in /usr/mail??).
+
+
+statsnoop has a variety of options, as opensnoop does. Here I trace stat()s
+from processes called "bash", while a new bash shell is executed,
+
+   # statsnoop -n bash
+     UID    PID COMM          FD PATH                 
+     100   1493 bash           0 /usr/bin/bash        
+     100   1493 bash           0 /devices/pseudo/pts@0:8 
+     100   1493 bash           0 /lib/libcurses.so.1  
+     100   1493 bash           0 /lib/libsocket.so.1  
+     100   1493 bash           0 /lib/libnsl.so.1     
+     100   1493 bash           0 /lib/libdl.so.1      
+     100   1493 bash           0 /lib/libc.so.1       
+     100   1493 bash           0 /devices/pseudo/pts@0:8 
+     100   1493 bash           0 /devices/pseudo/pts@0:8 
+     100   1493 bash           0 /export/home/brendan 
+     100   1493 bash           0 .                    
+     100   1493 bash           0 /export/home/brendan/.bashrc 
+     100   1493 bash          -1 /usr/mail/brendan    
+     100   1493 bash           0 /export/home/brendan/.bash_history 
+     100   1493 bash           0 /export/home/brendan/.bash_history 
+     100   1493 bash           0 /export/home/brendan/.bash_history 
+     100   1493 bash          -1 /export/home/brendan/.inputrc 
+     100   1493 bash           0 .                    
+   ^C
+
+bash also checked /usr/mail/brendan? hmm...
+
+   $ echo $MAIL 
+   /usr/mail/brendan
+
+hmmmmm...
+
+   $ cat .profile
+   #       This is the default standard profile provided to a user.
+   #       They are expected to edit it to meet their own needs.
+   
+   MAIL=/usr/mail/${LOGNAME:?}
+
+huh?
+
+   $ cat /etc/skel/.profile 
+   #       This is the default standard profile provided to a user.
+   #       They are expected to edit it to meet their own needs.
+   
+   MAIL=/usr/mail/${LOGNAME:?}
+
+   $ cat /var/sadm/pkg/SUNWcsr/save/pspool/SUNWcsr/reloc/etc/skel/.profile
+   #       This is the default standard profile provided to a user.
+   #       They are expected to edit it to meet their own needs.
+   
+   MAIL=/usr/mail/${LOGNAME:?}
+
+oh.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/swapinfo_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/swapinfo_example.txt
new file mode 100644
index 0000000..e869766
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/swapinfo_example.txt
@@ -0,0 +1,22 @@
+The following is a demonstration of the swapinfo.d script,
+
+   # ./swapinfo.d
+   RAM  _______Total   511 MB
+   RAM      Unusable     8 MB
+   RAM        Kernel   128 MB
+   RAM        Locked     0 MB
+   RAM          Used   256 MB
+   RAM          Free   118 MB
+   
+   Disk _______Total  1023 MB
+   Disk         Resv   626 MB
+   Disk        Avail   397 MB
+   
+   Swap _______Total  1335 MB
+   Swap         Resv   626 MB
+   Swap        Avail   709 MB
+   Swap    (Minfree)    62 MB
+
+The output above gives a summary of the state of virtual memory (swap)
+on the system. 
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/sysbypid_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/sysbypid_example.txt
new file mode 100644
index 0000000..2858c51
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/sysbypid_example.txt
@@ -0,0 +1,45 @@
+The following is a demonstration of the sysbypid.d command,
+
+   # sysbypid.d 
+   Tracing... Hit Ctrl-C to end.
+   ^C
+               EXEC      PID                    SYS    VALUE
+              xterm    24030                  rawch        1
+              sched        0                 rcvint        1
+            fsflush        3                pswitch        1
+             dtrace    19235              inv_swtch        1
+              xterm    24030               syswrite        2
+               Xorg     3597               syswrite        2
+              xterm    24030              inv_swtch        2
+             dtrace    19235                pswitch        2
+             dtrace    19235               syswrite        2
+        soffice.bin     4019                pswitch        3
+              xterm    24030                pswitch        3
+        mozilla-bin     3730              inv_swtch        4
+              xterm    24030                sysread        4
+        mozilla-bin     3730                 readch        9
+        mozilla-bin     3730                sysread        9
+               Xorg     3597                pswitch       10
+               Xorg     3597                sysread       11
+        mozilla-bin     3730               syswrite       13
+            java_vm    28209                pswitch       13
+              sched        0                pswitch       15
+        mozilla-bin     3730                pswitch       25
+         setiathome     3929                   trap       26
+         setiathome     3929                pswitch       26
+         setiathome     3929              inv_swtch       26
+             dtrace    19235                writech       32
+             dtrace    19235                  outch       34
+             dtrace    19235                   trap       53
+               Xorg     3597                writech       64
+              xterm    24030                 readch       96
+              xterm    24030                writech      133
+        mozilla-bin     3730                writech      905
+               Xorg     3597                 readch     1044
+
+In the above output, the Xorg command with PID 3597 read 1044 bytes, as 
+indicated by readch.
+
+mozilla-bin with PID 3730 wrote 905 bytes, as indicated by the writech.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/syscallbypid_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/syscallbypid_example.txt
new file mode 100644
index 0000000..e51bb14
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/syscallbypid_example.txt
@@ -0,0 +1,50 @@
+The following is a demonstration of the syscallbypid.d script,
+
+
+Here we run syscallbypid.d for a few seconds then hit Ctrl-C,
+
+   # syscallbypid.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD                      SYSCALL                     COUNT
+    11039 dtrace                   setcontext                      1
+    11039 dtrace                   lwp_sigmask                     1
+        7 svc.startd               portfs                          1
+      357 poold                    lwp_cond_wait                   1
+    27328 java_vm                  lwp_cond_wait                   1
+     1532 Xorg                     writev                          1
+    11039 dtrace                   lwp_park                        1
+    11039 dtrace                   schedctl                        1
+    11039 dtrace                   mmap                            1
+      361 sendmail                 pollsys                         1
+    11039 dtrace                   fstat64                         1
+    11039 dtrace                   sigaction                       2
+    11039 dtrace                   write                           2
+      361 sendmail                 lwp_sigmask                     2
+     1659 mozilla-bin              yield                           2
+    11039 dtrace                   sysconfig                       3
+      361 sendmail                 pset                            3
+    20317 sshd                     read                            4
+      361 sendmail                 gtime                           4
+    20317 sshd                     write                           4
+    27328 java_vm                  ioctl                           6
+    11039 dtrace                   brk                             8
+     1532 Xorg                     setcontext                      8
+     1532 Xorg                     lwp_sigmask                     8
+    20317 sshd                     pollsys                         8
+      357 poold                    pollsys                        13
+     1659 mozilla-bin              read                           16
+    20317 sshd                     lwp_sigmask                    16
+     1532 Xorg                     setitimer                      17
+    27328 java_vm                  pollsys                        18
+     1532 Xorg                     pollsys                        19
+    11039 dtrace                   p_online                       21
+     1532 Xorg                     read                           22
+     1659 mozilla-bin              write                          25
+     1659 mozilla-bin              lwp_park                       26
+    11039 dtrace                   ioctl                          36
+     1659 mozilla-bin              pollsys                       155
+     1659 mozilla-bin              ioctl                         306
+
+In the above output, we can see that "mozilla-bin" with PID 1659 made the
+most system calls - 306 ioctl()s.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/syscallbyproc_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/syscallbyproc_example.txt
new file mode 100644
index 0000000..7469b79
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/syscallbyproc_example.txt
@@ -0,0 +1,17 @@
+The following is an example of the syscallbyproc.d script,
+
+   # syscallbyproc.d
+   dtrace: description 'syscall:::entry ' matched 228 probes
+   ^C
+     snmpd                                                             1
+     utmpd                                                             2
+     inetd                                                             2
+     nscd                                                              7
+     svc.startd                                                       11
+     sendmail                                                         31
+     poold                                                           133
+     dtrace                                                         1720
+
+The above output shows that dtrace made the most system calls in this sample,
+1720 syscalls.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/syscallbysysc_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/syscallbysysc_example.txt
new file mode 100644
index 0000000..d131a17
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/syscallbysysc_example.txt
@@ -0,0 +1,24 @@
+The following is a demonstration of the syscallbysysc.d script,
+
+   # syscallbysysc.d
+   dtrace: description 'syscall:::entry ' matched 228 probes
+   ^C
+     fstat                                                             1
+     setcontext                                                        1
+     lwp_park                                                          1
+     schedctl                                                          1
+     mmap                                                              1
+     sigaction                                                         2
+     pset                                                              2
+     lwp_sigmask                                                       2
+     gtime                                                             3
+     sysconfig                                                         3
+     write                                                             4
+     brk                                                               6
+     pollsys                                                           7
+     p_online                                                        558
+     ioctl                                                           579
+
+In the above output, the ioctl system call was the most common, occuring
+579 times.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_calldist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_calldist_example.txt
new file mode 100644
index 0000000..3388963
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_calldist_example.txt
@@ -0,0 +1,166 @@
+The following are examples of tcl_calldist.d.
+
+This script traces the elapsed time of Tcl procedures and commands and
+prints a report containing distribution plots per function. Here it traces the
+example program, Code/Tcl/func_abc.tcl
+
+# tcl_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 exclusive elapsed times (us),
+   PID=16033, cmd, namespace 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@                            1        
+               4 |@@@@@@@@@@@@@                            1        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@                            1        
+             256 |                                         0        
+
+   PID=16033, cmd, puts 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@                            1        
+             256 |                                         0        
+
+   PID=16033, cmd, tclInit 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   PID=16033, proc, func_a 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   PID=16033, proc, func_b 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   PID=16033, proc, func_c 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   PID=16033, cmd, file 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@                            4        
+               8 |@@@@@@@                                  2        
+              16 |@@@@@@@                                  2        
+              32 |@@@                                      1        
+              64 |@@@@@@@@@@                               3        
+             128 |                                         0        
+
+   PID=16033, cmd, source 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   PID=16033, cmd, if 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     4        
+              32 |@@@@@@@@@@@@@@@                          3        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |@@@@@                                    1        
+            1024 |                                         0        
+
+   PID=16033, cmd, after 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+         1048576 |                                         0        
+
+
+Top 10 inclusive elapsed times (us),
+   PID=16033, cmd, uplevel 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   PID=16033, cmd, tclInit 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+   PID=16033, proc, tclInit 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+   PID=16033, cmd, func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   PID=16033, proc, func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   PID=16033, cmd, func_b 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   PID=16033, proc, func_b 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   PID=16033, cmd, after 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+         1048576 |                                         0        
+
+   PID=16033, cmd, func_a 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+   PID=16033, proc, func_a 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+The exclusive function elapsed times show that each func_a took between 256
+and 511 microseconds. This time excludes the time spent in any other functions.
+
+The inclusive elapsed times section shows that each func_a spent
+took between 2.1 and 4.2 seconds. This time also includes the time spent in
+any other commands or procedures called by func_a.
+
+These elapsed times are the absolute time from when the function began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
+Elapsed times are useful for identifying where latencies are.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive function time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_calls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_calls_example.txt
new file mode 100644
index 0000000..5ffada4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_calls_example.txt
@@ -0,0 +1,41 @@
+The following are examples of the results of running the tcl_calls.d script.
+
+In this example we see it running while the Code/Tcl/func_abc.tcl script is run.
+
+# tcl_calls.d     Tracing... Hit Ctrl-C to end.
+^C
+    PID TYPE     NAME                                                    COUNT
+  16021 cmd      concat                                                      1
+  16021 cmd      exit                                                        1
+  16021 cmd      func_a                                                      1
+  16021 cmd      func_b                                                      1
+  16021 cmd      func_c                                                      1
+  16021 cmd      list                                                        1
+  16021 cmd      rename                                                      1
+  16021 cmd      source                                                      1
+  16021 cmd      tclInit                                                     1
+  16021 cmd      unset                                                       1
+  16021 cmd      uplevel                                                     1
+  16021 cmd      variable                                                    1
+  16021 proc     func_a                                                      1
+  16021 proc     func_b                                                      1
+  16021 proc     func_c                                                      1
+  16021 proc     tclInit                                                     1
+  16021 cmd      foreach                                                     2
+  16021 cmd      global                                                      2
+  16021 cmd      interp                                                      2
+  16021 cmd      package                                                     2
+  16021 cmd      set                                                         2
+  16021 cmd      after                                                       3
+  16021 cmd      namespace                                                   3
+  16021 cmd      puts                                                        3
+  16021 cmd      lappend                                                     4
+  16021 cmd      lsearch                                                     4
+  16021 cmd      if                                                          8
+  16021 cmd      info                                                       11
+  16021 cmd      file                                                       12
+  16021 cmd      proc                                                       12
+
+You can see that PID 16021 made quite a few different types of command and
+procedure calls during its execution.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_calltime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_calltime_example.txt
new file mode 100644
index 0000000..56d100a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_calltime_example.txt
@@ -0,0 +1,61 @@
+The following are examples of tcl_calltime.d.
+
+This script traces the total elapsed time of different Tcl commands and
+procedures and prints a report. Here it traces the example program, 
+Code/Tcl/func_abc.tcl
+
+# tcl_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 counts,
+      PID TYPE       NAME                                                COUNT
+    16028 cmd        after                                                   3
+    16028 cmd        namespace                                               3
+    16028 cmd        puts                                                    3
+    16028 cmd        lappend                                                 4
+    16028 cmd        lsearch                                                 4
+    16028 cmd        if                                                      8
+    16028 cmd        info                                                   11
+    16028 cmd        file                                                   12
+    16028 cmd        proc                                                   12
+        0 total      -                                                      85
+
+Top 10 exclusive elapsed times (us),
+      PID TYPE       NAME                                                TOTAL
+    16028 cmd        tclInit                                               253
+    16028 cmd        namespace                                             272
+    16028 proc       func_c                                                330
+    16028 proc       func_b                                                357
+    16028 proc       func_a                                                363
+    16028 cmd        file                                                  416
+    16028 cmd        if                                                    852
+    16028 cmd        source                                                929
+    16028 cmd        after                                             3025152
+        0 total      -                                                 3030001
+
+Top 10 inclusive elapsed times (us),
+      PID TYPE       NAME                                                TOTAL
+    16028 cmd        uplevel                                              1849
+    16028 proc       tclInit                                              2519
+    16028 cmd        tclInit                                              2772
+    16028 proc       func_c                                            1010031
+    16028 cmd        func_c                                            1010088
+    16028 proc       func_b                                            2020059
+    16028 cmd        func_b                                            2020106
+    16028 cmd        after                                             3025152
+    16028 proc       func_a                                            3026545
+    16028 cmd        func_a                                            3026572
+
+The output is in three sections.  The first shows the top ten most executed
+commands while the script is tracing.
+
+The second (Top 10 exclusive elapsed times) shows us the top ten slowest 
+commands or procedures, this number excludes any subroutines called during 
+command execution.
+
+The third (Top 10 inclusive elapsed times) shows us the top ten slowest
+commands or procedures including any time spent in subroutines.  You can see
+that func_a took the most amount of time all up.  This makes sense if you
+compare the code at Code/Tcl/func_abc.tcl with the results.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_cpudist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_cpudist_example.txt
new file mode 100644
index 0000000..09126f6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_cpudist_example.txt
@@ -0,0 +1,164 @@
+The following are examples of tcl_cpudist.d.
+
+This script traces the on-CPU time of Tcl commands and procedures and
+prints a report containing distribution plots per subroutine. Here it
+traces the example program, Code/Tcl/func_slow.tcl.
+
+# tcl_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 exclusive on-CPU times (us),
+   PID=16043, cmd, info 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@                                     1        
+               2 |@@@@@@@@@@@@@@@                          4        
+               4 |@@@@                                     1        
+               8 |@@@@                                     1        
+              16 |@@@@@@@@@@@                              3        
+              32 |@@@@                                     1        
+              64 |                                         0        
+
+   PID=16043, cmd, namespace 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@                            1        
+               2 |@@@@@@@@@@@@@                            1        
+               4 |                                         0        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@                            1        
+             256 |                                         0        
+
+   PID=16043, cmd, puts 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@                            1        
+             256 |                                         0        
+
+   PID=16043, cmd, if 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@                               2        
+              16 |@@@@@@@@@@@@@@@@@@@@                     4        
+              32 |@@@@@                                    1        
+              64 |                                         0        
+             128 |@@@@@                                    1        
+             256 |                                         0        
+
+   PID=16043, cmd, tclInit 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   PID=16043, cmd, file 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@                            4        
+               8 |@@@@@@@@@@@@@                            4        
+              16 |                                         0        
+              32 |@@@                                      1        
+              64 |@@@@@@@@@@                               3        
+             128 |                                         0        
+
+   PID=16043, cmd, source 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   PID=16043, proc, func_a 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   PID=16043, proc, func_b 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   PID=16043, proc, func_c 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+
+Top 10 inclusive on-CPU times (us),
+   PID=16043, cmd, source 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   PID=16043, cmd, uplevel 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   PID=16043, proc, tclInit 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   PID=16043, cmd, tclInit 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+   PID=16043, cmd, func_c 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   PID=16043, proc, func_c 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   PID=16043, cmd, func_a 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+   PID=16043, cmd, func_b 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+   PID=16043, proc, func_a 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+   PID=16043, proc, func_b 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_cputime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_cputime_example.txt
new file mode 100644
index 0000000..c736201
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_cputime_example.txt
@@ -0,0 +1,67 @@
+Following are examples of running tcl_cputime.d.
+
+Here it runs while we execute Code/Tcl/func_slow.tcl
+
+# tcl_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 counts,
+      PID TYPE       NAME                                                COUNT
+    16038 cmd        set                                                     2
+    16038 cmd        namespace                                               3
+    16038 cmd        puts                                                    3
+    16038 cmd        lappend                                                 4
+    16038 cmd        lsearch                                                 4
+    16038 cmd        if                                                      8
+    16038 cmd        info                                                   11
+    16038 cmd        file                                                   12
+    16038 cmd        proc                                                   12
+        0 total      -                                                      82
+
+Top 10 exclusive on-CPU times (us),
+      PID TYPE       NAME                                                TOTAL
+    16038 cmd        namespace                                             130
+    16038 cmd        puts                                                  232
+    16038 cmd        if                                                    310
+    16038 cmd        tclInit                                               315
+    16038 cmd        file                                                  411
+    16038 cmd        source                                                760
+    16038 proc       func_a                                             535521
+    16038 proc       func_b                                            1071082
+    16038 proc       func_c                                            1619323
+        0 total      -                                                 3228670
+
+Top 10 inclusive on-CPU times (us),
+      PID TYPE       NAME                                                TOTAL
+    16038 cmd        source                                               1359
+    16038 cmd        uplevel                                              1367
+    16038 proc       tclInit                                              1865
+    16038 cmd        tclInit                                              2180
+    16038 proc       func_c                                            1619360
+    16038 cmd        func_c                                            1619404
+    16038 proc       func_b                                            2690525
+    16038 cmd        func_b                                            2690568
+    16038 proc       func_a                                            3226247
+    16038 cmd        func_a                                            3226275
+
+We can see that the output is in three sections.  The first section represents
+the ten most commonly executed commands while the script is tracing.
+
+The exclusive function on-CPU times show that func_a spent around 0.5 seconds
+on-CPU, func_b spent about 1.0 seconds, and func_c, 1.6 seconds. This excludes
+time spent in other procedures or commands.
+
+The inclusive function on-CPU times show the time spent by these procedures in
+total, including the time spent in other functions called, and since func_a
+called func_b which called func_c, these times make sense.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the function began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive function time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_flow_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_flow_example.txt
new file mode 100644
index 0000000..dd2dcd6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_flow_example.txt
@@ -0,0 +1,195 @@
+The following are examples of running tcl_flow.d.
+
+Here the script is tracing the execution of Code/Tcl/func_abc.tcl
+
+# tcl_flow.d
+  C    PID TIME(us)         -- CALL
+  0  16068 3904942506169     > if
+  0  16068 3904942506261       > info
+  0  16068 3904942506286       < info
+  0  16068 3904942506350       > proc
+  0  16068 3904942506363       < proc
+  0  16068 3904942506369     < if
+  0  16068 3904942506383     > tclInit
+  0  16068 3904942506605      -> tclInit
+  0  16068 3904942506614         > global
+  0  16068 3904942506626         < global
+  0  16068 3904942506632         > global
+  0  16068 3904942506638         < global
+  0  16068 3904942506643         > rename
+  0  16068 3904942506666         < rename
+  0  16068 3904942506675         > info
+  0  16068 3904942506685         < info
+  0  16068 3904942506694         > info
+  0  16068 3904942506721         < info
+  0  16068 3904942506728         > unset
+  0  16068 3904942506741         < unset
+  0  16068 3904942506746         > concat
+  0  16068 3904942506760         < concat
+  0  16068 3904942506774         > file
+  0  16068 3904942506792         < file
+  0  16068 3904942506797         > file
+  0  16068 3904942506880         < file
+  0  16068 3904942506885         > file
+  0  16068 3904942506895         < file
+  0  16068 3904942506901         > file
+  0  16068 3904942507009         < file
+  0  16068 3904942507015         > file
+  0  16068 3904942507025         < file
+  0  16068 3904942507031         > file
+  0  16068 3904942507118         < file
+  0  16068 3904942507124         > file
+  0  16068 3904942507133         < file
+  0  16068 3904942507139         > file
+  0  16068 3904942507193         < file
+  0  16068 3904942507200         > uplevel
+  0  16068 3904942507209           > source
+  0  16068 3904942507649             > if
+  0  16068 3904942507664               > info
+  0  16068 3904942507673               < info
+  0  16068 3904942507681             < if
+  0  16068 3904942507691             > package
+  0  16068 3904942507700             < package
+  0  16068 3904942507712             > if
+  0  16068 3904942507722               > info
+  0  16068 3904942507728               < info
+  0  16068 3904942507749               > info
+  0  16068 3904942507773               < info
+  0  16068 3904942507780             < if
+  0  16068 3904942507797             > namespace
+  0  16068 3904942507898               > variable
+  0  16068 3904942507905               < variable
+  0  16068 3904942507911               > info
+  0  16068 3904942507923               < info
+  0  16068 3904942507928               > info
+  0  16068 3904942507934               < info
+  0  16068 3904942507939               > info
+  0  16068 3904942507947               < info
+  0  16068 3904942507952               > file
+  0  16068 3904942507971               < file
+  0  16068 3904942507977               > list
+  0  16068 3904942507991               < list
+  0  16068 3904942507996               > foreach
+  0  16068 3904942508020                 > lsearch
+  0  16068 3904942508028                 < lsearch
+  0  16068 3904942508034                 > lappend
+  0  16068 3904942508041                 < lappend
+  0  16068 3904942508051                 > lsearch
+  0  16068 3904942508056                 < lsearch
+  0  16068 3904942508061                 > lappend
+  0  16068 3904942508068                 < lappend
+  0  16068 3904942508073               < foreach
+  0  16068 3904942508078               > info
+  0  16068 3904942508086               < info
+  0  16068 3904942508090               > file
+  0  16068 3904942508108               < file
+  0  16068 3904942508113               > file
+  0  16068 3904942508129               < file
+  0  16068 3904942508134               > file
+  0  16068 3904942508142               < file
+  0  16068 3904942508148               > lsearch
+  0  16068 3904942508153               < lsearch
+  0  16068 3904942508158               > lappend
+  0  16068 3904942508166               < lappend
+  0  16068 3904942508170               > info
+  0  16068 3904942508176               < info
+  0  16068 3904942508181               > foreach
+  0  16068 3904942508190                 > lsearch
+  0  16068 3904942508195                 < lsearch
+  0  16068 3904942508200                 > lappend
+  0  16068 3904942508206                 < lappend
+  0  16068 3904942508211               < foreach
+  0  16068 3904942508217             < namespace
+  0  16068 3904942508243             > if
+  0  16068 3904942508261               > interp
+  0  16068 3904942508276               < interp
+  0  16068 3904942508283             < if
+  0  16068 3904942508296             > package
+  0  16068 3904942508302             < package
+  0  16068 3904942508312             > if
+  0  16068 3904942508322               > interp
+  0  16068 3904942508328               < interp
+  0  16068 3904942508369             < if
+  0  16068 3904942508387             > if
+  0  16068 3904942508398               > namespace
+  0  16068 3904942508406               < namespace
+  0  16068 3904942508412             < if
+  0  16068 3904942508424             > set
+  0  16068 3904942508430             < set
+  0  16068 3904942508437             > set
+  0  16068 3904942508443             < set
+  0  16068 3904942508451             > if
+  0  16068 3904942508463               > namespace
+  0  16068 3904942508469               < namespace
+  0  16068 3904942508479               > proc
+  0  16068 3904942508488               < proc
+  0  16068 3904942508493             < if
+  0  16068 3904942508573             > proc
+  0  16068 3904942508582             < proc
+  0  16068 3904942508599             > proc
+  0  16068 3904942508609             < proc
+  0  16068 3904942508638             > proc
+  0  16068 3904942508645             < proc
+  0  16068 3904942508664             > proc
+  0  16068 3904942508673             < proc
+  0  16068 3904942508686             > proc
+  0  16068 3904942508693             < proc
+  0  16068 3904942508737             > if
+  0  16068 3904942508760               > proc
+  0  16068 3904942508782               < proc
+  0  16068 3904942508788             < if
+  0  16068 3904942508826             > proc
+  0  16068 3904942508837             < proc
+  0  16068 3904942508843           < source
+  0  16068 3904942508848         < uplevel
+  0  16068 3904942508857      <- tclInit
+  0  16068 3904942508871     < tclInit
+  0  16068 3904942509050     > proc
+  0  16068 3904942509059     < proc
+  0  16068 3904942509067     > proc
+  0  16068 3904942509074     < proc
+  0  16068 3904942509081     > proc
+  0  16068 3904942509088     < proc
+  0  16068 3904942509094     > func_a
+  0  16068 3904942509110      -> func_a
+  0  16068 3904942509116         > puts
+  0  16068 3904942509256         < puts
+  0  16068 3904942509262         > after
+  0  16068 3904943510998         < after
+  0  16068 3904943511016         > func_b
+  0  16068 3904943511050          -> func_b
+  0  16068 3904943511058             > puts
+  0  16068 3904943511090             < puts
+  0  16068 3904943511094             > after
+  0  16068 3904944520994             < after
+  0  16068 3904944521013             > func_c
+  0  16068 3904944521043              -> func_c
+  0  16068 3904944521051                 > puts
+  0  16068 3904944521092                 < puts
+  0  16068 3904944521097                 > after
+  0  16068 3904945530993                 < after
+  0  16068 3904945531012              <- func_c
+  0  16068 3904945531020             < func_c
+  0  16068 3904945531025          <- func_b
+  0  16068 3904945531029         < func_b
+  0  16068 3904945531034      <- func_a
+  0  16068 3904945531039     < func_a
+  0  16068 3904945531064     > exit
+^C
+
+You can see the output is in five columns.
+
+The first column is CPU-id, the second is PID, third is the time since boot in
+microseconds since the previous action.  The fourth and fifth columns
+represent the action happening.   The Tcl command or procedure name is prefixed 
+by an indicator reprenting what is happening.  These may be -> (procedure 
+entry), <- (procedure return), > (command entry), or < (command return).
+
+As each action is taken, the fourth and fifth columns are indented by 2 spaces.
+This shows which procedure or command is calling which.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_flowtime_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_flowtime_example.txt
new file mode 100644
index 0000000..8e07238
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_flowtime_example.txt
@@ -0,0 +1,197 @@
+Following are examples of running tcl_flowtime.d.
+
+Here the tcl_flowtime.d script is running on the program
+Code/Tcl/func_abc.tcl.
+
+
+# tcl_flowtime.d
+  C    PID TIME(us)         DELTA(us) -- CALL
+  0  17901 4436098007906            2  > if
+  0  17901 4436098007976           70    > info
+  0  17901 4436098007998           21    < info
+  0  17901 4436098008050           52    > proc
+  0  17901 4436098008063           12    < proc
+  0  17901 4436098008069            6  < if
+  0  17901 4436098008085           15  > tclInit
+  0  17901 4436098008286          201   -> tclInit
+  0  17901 4436098008295            8      > global
+  0  17901 4436098008305           10      < global
+  0  17901 4436098008311            6      > global
+  0  17901 4436098008318            6      < global
+  0  17901 4436098008323            5      > rename
+  0  17901 4436098008342           18      < rename
+  0  17901 4436098008353           10      > info
+  0  17901 4436098008362            9      < info
+  0  17901 4436098008369            6      > info
+  0  17901 4436098008395           25      < info
+  0  17901 4436098008403            8      > unset
+  0  17901 4436098008410            6      < unset
+  0  17901 4436098008416            5      > concat
+  0  17901 4436098008425            8      < concat
+  0  17901 4436098008440           15      > file
+  0  17901 4436098008459           18      < file
+  0  17901 4436098008465            6      > file
+  0  17901 4436098008543           78      < file
+  0  17901 4436098008550            7      > file
+  0  17901 4436098008560            9      < file
+  0  17901 4436098008567            7      > file
+  0  17901 4436098008671          104      < file
+  0  17901 4436098008678            7      > file
+  0  17901 4436098008688            9      < file
+  0  17901 4436098008695            6      > file
+  0  17901 4436098008780           84      < file
+  0  17901 4436098008787            6      > file
+  0  17901 4436098008796            9      < file
+  0  17901 4436098008803            6      > file
+  0  17901 4436098008854           51      < file
+  0  17901 4436098008862            7      > uplevel
+  0  17901 4436098008872           10        > source
+  0  17901 4436098009290          417          > if
+  0  17901 4436098009304           14            > info
+  0  17901 4436098009311            7            < info
+  0  17901 4436098009319            7          < if
+  0  17901 4436098009331           11          > package
+  0  17901 4436098009340            9          < package
+  0  17901 4436098009353           12          > if
+  0  17901 4436098009363           10            > info
+  0  17901 4436098009369            6            < info
+  0  17901 4436098009390           20            > info
+  0  17901 4436098009413           22            < info
+  0  17901 4436098009421            7          < if
+  0  17901 4436098009439           18          > namespace
+  0  17901 4436098009530           90            > variable
+  0  17901 4436098009537            7            < variable
+  0  17901 4436098009544            6            > info
+  0  17901 4436098009554           10            < info
+  0  17901 4436098009561            6            > info
+  0  17901 4436098009567            6            < info
+  0  17901 4436098009573            5            > info
+  0  17901 4436098009579            6            < info
+  0  17901 4436098009586            6            > file
+  0  17901 4436098009605           19            < file
+  0  17901 4436098009611            6            > list
+  0  17901 4436098009627           15            < list
+  0  17901 4436098009633            6            > foreach
+  0  17901 4436098009658           24              > lsearch
+  0  17901 4436098009665            7              < lsearch
+  0  17901 4436098009673            7              > lappend
+  0  17901 4436098009680            7              < lappend
+  0  17901 4436098009689            9              > lsearch
+  0  17901 4436098009694            5              < lsearch
+  0  17901 4436098009700            6              > lappend
+  0  17901 4436098009707            6              < lappend
+  0  17901 4436098009712            5            < foreach
+  0  17901 4436098009719            6            > info
+  0  17901 4436098009726            7            < info
+  0  17901 4436098009732            5            > file
+  0  17901 4436098009749           17            < file
+  0  17901 4436098009756            6            > file
+  0  17901 4436098009772           16            < file
+  0  17901 4436098009778            6            > file
+  0  17901 4436098009787            9            < file
+  0  17901 4436098009795            7            > lsearch
+  0  17901 4436098009800            5            < lsearch
+  0  17901 4436098009806            6            > lappend
+  0  17901 4436098009812            5            < lappend
+  0  17901 4436098009818            5            > info
+  0  17901 4436098009823            5            < info
+  0  17901 4436098009830            6            > foreach
+  0  17901 4436098009840            9              > lsearch
+  0  17901 4436098009845            5              < lsearch
+  0  17901 4436098009851            6              > lappend
+  0  17901 4436098009857            5              < lappend
+  0  17901 4436098009862            5            < foreach
+  0  17901 4436098009868            5          < namespace
+  0  17901 4436098009896           27          > if
+  0  17901 4436098009915           18            > interp
+  0  17901 4436098009922            7            < interp
+  0  17901 4436098009930            8          < if
+  0  17901 4436098009943           12          > package
+  0  17901 4436098009949            5          < package
+  0  17901 4436098009960           10          > if
+  0  17901 4436098009970           10            > interp
+  0  17901 4436098009976            5            < interp
+  0  17901 4436098010018           41          < if
+  0  17901 4436098010036           18          > if
+  0  17901 4436098010049           12            > namespace
+  0  17901 4436098010057            7            < namespace
+  0  17901 4436098010063            6          < if
+  0  17901 4436098010074           11          > set
+  0  17901 4436098010081            6          < set
+  0  17901 4436098010089            8          > set
+  0  17901 4436098010095            5          < set
+  0  17901 4436098010104            9          > if
+  0  17901 4436098010116           12            > namespace
+  0  17901 4436098010122            6            < namespace
+  0  17901 4436098010133           10            > proc
+  0  17901 4436098010142            8            < proc
+  0  17901 4436098010148            5          < if
+  0  17901 4436098010228           79          > proc
+  0  17901 4436098010237            8          < proc
+  0  17901 4436098010255           18          > proc
+  0  17901 4436098010264            9          < proc
+  0  17901 4436098010293           29          > proc
+  0  17901 4436098010301            7          < proc
+  0  17901 4436098010320           18          > proc
+  0  17901 4436098010329            9          < proc
+  0  17901 4436098010342           13          > proc
+  0  17901 4436098010350            7          < proc
+  0  17901 4436098010394           44          > if
+  0  17901 4436098010418           23            > proc
+  0  17901 4436098010437           18            < proc
+  0  17901 4436098010443            6          < if
+  0  17901 4436098010563          120          > proc
+  0  17901 4436098010575           12          < proc
+  0  17901 4436098010582            7        < source
+  0  17901 4436098010588            5      < uplevel
+  0  17901 4436098010596            8   <- tclInit
+  0  17901 4436098010610           13  < tclInit
+  0  17901 4436098010800          190  > proc
+  0  17901 4436098010809            8  < proc
+  0  17901 4436098010818            9  > proc
+  0  17901 4436098010825            6  < proc
+  0  17901 4436098010833            8  > proc
+  0  17901 4436098010840            6  < proc
+  0  17901 4436098010847            7  > func_a
+  0  17901 4436098010863           15   -> func_a
+  0  17901 4436098010870            6      > puts
+  0  17901 4436098011006          136      < puts
+  0  17901 4436098011014            7      > after
+  0  17901 4436099020588      1009573      < after
+  0  17901 4436099020611           23      > func_b
+  0  17901 4436099020646           34       -> func_b
+  0  17901 4436099020655            8          > puts
+  0  17901 4436099020697           41          < puts
+  0  17901 4436099020703            6          > after
+  0  17901 4436100030614      1009910          < after
+  0  17901 4436100030638           24          > func_c
+  0  17901 4436100030671           32           -> func_c
+  0  17901 4436100030680            9              > puts
+  0  17901 4436100030723           42              < puts
+  0  17901 4436100030729            6              > after
+  0  17901 4436101040600      1009870              < after
+  0  17901 4436101040623           22           <- func_c
+  0  17901 4436101040633           10          < func_c
+  0  17901 4436101040639            6       <- func_b
+  0  17901 4436101040645            5      < func_b
+  0  17901 4436101040651            5   <- func_a
+  0  17901 4436101040656            5  < func_a
+  0  17901 4436101040682           25  > exit
+
+You can see the output is in six columns.  
+
+The first column is CPU-id, the second is PID, third is the time since boot in
+microseconds, fourth is the elapsed time since the previous action.  The fifth
+and sixth columns represent the action.   The Tcl command or procedure name is
+prefixed by an indicator reprenting what is happening.  These may be ->
+(procedure entry), <- (procedure return), > (command entry), or < (command
+return).
+
+As each action is taken, the fifth and sixth columns are indented by 2 spaces.
+This shows which procedure or command is calling which.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_ins_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_ins_example.txt
new file mode 100644
index 0000000..6f1ba9a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_ins_example.txt
@@ -0,0 +1,46 @@
+The following are examples of running the script tcl_ins.d
+
+Here it traces as Code/Tcl/func_slow.tcl executes.
+
+# tcl_ins.d
+Tracing... Hit Ctrl-C to end.
+^C  
+    PID TYPE     NAME                                                    COUNT
+  16005 inst     foreach_start4                                              1
+  16005 inst     jumpTrue1                                                   1
+  16005 inst     lappendScalar1                                              1
+  16005 inst     list                                                        1
+  16005 inst     strneq                                                      1
+  16005 inst     beginCatch4                                                 2
+  16005 inst     dup                                                         2
+  16005 inst     endCatch                                                    2
+  16005 inst     eq                                                          2
+  16005 inst     land                                                        2
+  16005 inst     storeScalarStk                                              2
+  16005 inst     foreach_step4                                               4
+  16005 inst     not                                                         4
+  16005 inst     loadArrayStk                                                5
+  16005 inst     streq                                                       7
+  16005 inst     tryCvtToNumeric                                             8
+  16005 inst     jumpFalse1                                                 12
+  16005 inst     loadScalarStk                                              13
+  16005 inst     jump1                                                      14
+  16005 inst     pop                                                        18
+  16005 inst     invokeStk1                                                 53
+  16005 inst     add                                                    600000
+  16005 inst     concat1                                                600000
+  16005 inst     exprStk                                                600000
+  16005 inst     lt                                                     600007
+  16005 inst     storeScalar1                                           600016
+  16005 inst     done                                                   600021
+  16005 inst     loadScalar1                                           1200020
+  16005 inst     push1                                                 4200193
+
+It is showing the instructions called by Tcl as the program executes.  The
+larger counts toward the bottom of the display are from the looping construct
+used in Code/Tcl/func_slow.tcl. 
+
+Tracing the instructions is quite low-level and slow the target application
+considerably and would probably be used only as a last resort if you have no 
+other indication of why CPUs are busy.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_insflow_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_insflow_example.txt
new file mode 100644
index 0000000..2919f8e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_insflow_example.txt
@@ -0,0 +1,997 @@
+The following are examples of running tcl_insflow.d
+
+Here you can see the script running while tracing Code/Tcl/func_abc.tcl
+
+# tcl_insflow.d
+  C    PID TIME(us)         DELTA(us)  TYPE -- CALL
+  0 174829 4436207514685            3   cmd -> if
+  0 174829 4436207514793          107  inst   -> push1
+  0 174829 4436207514805           11  inst   <- push1
+  0 174829 4436207514814            8  inst   -> push1
+  0 174829 4436207514820            5  inst   <- push1
+  0 174829 4436207514826            5  inst   -> push1
+  0 174829 4436207514832            5  inst   <- push1
+  0 174829 4436207514838            5  inst   -> invokeStk1
+  0 174829 4436207514845            6   cmd     -> info
+  0 174829 4436207514883           38   cmd     <- info
+  0 174829 4436207514895           11  inst   <- invokeStk1
+  0 174829 4436207514901            6  inst   -> push1
+  0 174829 4436207514907            5  inst   <- push1
+  0 174829 4436207514913            5  inst   -> eq
+  0 174829 4436207514927           14  inst   <- eq
+  0 174829 4436207514933            6  inst   -> done
+  0 174829 4436207514940            6  inst   <- done
+  0 174829 4436207514978           38  inst   -> push1
+  0 174829 4436207514985            6  inst   <- push1
+  0 174829 4436207514991            5  inst   -> push1
+  0 174829 4436207514996            5  inst   <- push1
+  0 174829 4436207515002            5  inst   -> push1
+  0 174829 4436207515007            5  inst   <- push1
+  0 174829 4436207515013            5  inst   -> push1
+  0 174829 4436207515019            5  inst   <- push1
+  0 174829 4436207515024            5  inst   -> invokeStk1
+  0 174829 4436207515031            6   cmd     -> proc
+  0 174829 4436207515045           13   cmd     <- proc
+  0 174829 4436207515051            6  inst   <- invokeStk1
+  0 174829 4436207515057            6  inst   -> done
+  0 174829 4436207515063            5  inst   <- done
+  0 174829 4436207515069            6   cmd <- if
+  0 174829 4436207515086           16   cmd -> tclInit
+  0 174829 4436207515295          208  proc   -> tclInit
+  0 174829 4436207515305           10  inst     -> push1
+  0 174829 4436207515311            5  inst     <- push1
+  0 174829 4436207515317            6  inst     -> push1
+  0 174829 4436207515323            5  inst     <- push1
+  0 174829 4436207515328            5  inst     -> push1
+  0 174829 4436207515334            5  inst     <- push1
+  0 174829 4436207515340            5  inst     -> push1
+  0 174829 4436207515345            5  inst     <- push1
+  0 174829 4436207515351            5  inst     -> invokeStk1
+  0 174829 4436207515357            6   cmd       -> global
+  0 174829 4436207515369           11   cmd       <- global
+  0 174829 4436207515375            6  inst     <- invokeStk1
+  0 174829 4436207515381            5  inst     -> pop
+  0 174829 4436207515387            5  inst     <- pop
+  0 174829 4436207515393            5  inst     -> push1
+  0 174829 4436207515398            5  inst     <- push1
+  0 174829 4436207515404            5  inst     -> push1
+  0 174829 4436207515410            5  inst     <- push1
+  0 174829 4436207515415            5  inst     -> push1
+  0 174829 4436207515421            5  inst     <- push1
+  0 174829 4436207515427            5  inst     -> invokeStk1
+  0 174829 4436207515433            6   cmd       -> global
+  0 174829 4436207515440            7   cmd       <- global
+  0 174829 4436207515446            6  inst     <- invokeStk1
+  0 174829 4436207515452            5  inst     -> pop
+  0 174829 4436207515458            5  inst     <- pop
+  0 174829 4436207515463            5  inst     -> push1
+  0 174829 4436207515469            5  inst     <- push1
+  0 174829 4436207515475            5  inst     -> push1
+  0 174829 4436207515480            5  inst     <- push1
+  0 174829 4436207515486            5  inst     -> push1
+  0 174829 4436207515492            5  inst     <- push1
+  0 174829 4436207515497            5  inst     -> invokeStk1
+  0 174829 4436207515504            6   cmd       -> rename
+  0 174829 4436207515553           49   cmd       <- rename
+  0 174829 4436207515560            6  inst     <- invokeStk1
+  0 174829 4436207515566            6  inst     -> pop
+  0 174829 4436207515571            5  inst     <- pop
+  0 174829 4436207515577            5  inst     -> push1
+  0 174829 4436207515583            5  inst     <- push1
+  0 174829 4436207515589            5  inst     -> storeScalar1
+  0 174829 4436207515598            9  inst     <- storeScalar1
+  0 174829 4436207515605            6  inst     -> push1
+  0 174829 4436207515610            5  inst     <- push1
+  0 174829 4436207515616            5  inst     -> storeScalar1
+  0 174829 4436207515622            5  inst     <- storeScalar1
+  0 174829 4436207515628            5  inst     -> push1
+  0 174829 4436207515633            5  inst     <- push1
+  0 174829 4436207515639            5  inst     -> push1
+  0 174829 4436207515645            5  inst     <- push1
+  0 174829 4436207515650            5  inst     -> push1
+  0 174829 4436207515656            5  inst     <- push1
+  0 174829 4436207515662            5  inst     -> invokeStk1
+  0 174829 4436207515668            6   cmd       -> info
+  0 174829 4436207515679           10   cmd       <- info
+  0 174829 4436207515685            6  inst     <- invokeStk1
+  0 174829 4436207515691            5  inst     -> tryCvtToNumeric
+  0 174829 4436207515701           10  inst     <- tryCvtToNumeric
+  0 174829 4436207515708            6  inst     -> jumpFalse1
+  0 174829 4436207515714            5  inst     <- jumpFalse1
+  0 174829 4436207515719            5  inst     -> push1
+  0 174829 4436207515725            5  inst     <- push1
+  0 174829 4436207515731            5  inst     -> push1
+  0 174829 4436207515736            5  inst     <- push1
+  0 174829 4436207515742            5  inst     -> push1
+  0 174829 4436207515747            5  inst     <- push1
+  0 174829 4436207515753            5  inst     -> invokeStk1
+  0 174829 4436207515760            6   cmd       -> info
+  0 174829 4436207515787           27   cmd       <- info
+  0 174829 4436207515793            6  inst     <- invokeStk1
+  0 174829 4436207515799            5  inst     -> tryCvtToNumeric
+  0 174829 4436207515805            5  inst     <- tryCvtToNumeric
+  0 174829 4436207515811            5  inst     -> jumpFalse1
+  0 174829 4436207515817            5  inst     <- jumpFalse1
+  0 174829 4436207515823            5  inst     -> push1
+  0 174829 4436207515828            5  inst     <- push1
+  0 174829 4436207515834            5  inst     -> pop
+  0 174829 4436207515839            5  inst     <- pop
+  0 174829 4436207515845            5  inst     -> beginCatch4
+  0 174829 4436207515851            5  inst     <- beginCatch4
+  0 174829 4436207515857            5  inst     -> loadScalar1
+  0 174829 4436207515863            5  inst     <- loadScalar1
+  0 174829 4436207515868            5  inst     -> lappendScalar1
+  0 174829 4436207515877            8  inst     <- lappendScalar1
+  0 174829 4436207515883            6  inst     -> push1
+  0 174829 4436207515889            5  inst     <- push1
+  0 174829 4436207515895            5  inst     -> push1
+  0 174829 4436207515900            5  inst     <- push1
+  0 174829 4436207515906            5  inst     -> invokeStk1
+  0 174829 4436207515912            6   cmd       -> unset
+  0 174829 4436207515920            7   cmd       <- unset
+  0 174829 4436207515926            6  inst     <- invokeStk1
+  0 174829 4436207515932            5  inst     -> pop
+  0 174829 4436207515938            5  inst     <- pop
+  0 174829 4436207515943            5  inst     -> push1
+  0 174829 4436207515949            5  inst     <- push1
+  0 174829 4436207515955            5  inst     -> jump1
+  0 174829 4436207515960            5  inst     <- jump1
+  0 174829 4436207515966            5  inst     -> endCatch
+  0 174829 4436207515972            5  inst     <- endCatch
+  0 174829 4436207515977            5  inst     -> pop
+  0 174829 4436207515983            5  inst     <- pop
+  0 174829 4436207515989            5  inst     -> push1
+  0 174829 4436207515994            5  inst     <- push1
+  0 174829 4436207516000            5  inst     -> loadScalar1
+  0 174829 4436207516006            5  inst     <- loadScalar1
+  0 174829 4436207516012            5  inst     -> loadScalar1
+  0 174829 4436207516017            5  inst     <- loadScalar1
+  0 174829 4436207516023            5  inst     -> invokeStk1
+  0 174829 4436207516029            6   cmd       -> concat
+  0 174829 4436207516049           19   cmd       <- concat
+  0 174829 4436207516055            6  inst     <- invokeStk1
+  0 174829 4436207516061            5  inst     -> storeScalar1
+  0 174829 4436207516068            6  inst     <- storeScalar1
+  0 174829 4436207516074            6  inst     -> loadScalar1
+  0 174829 4436207516080            5  inst     <- loadScalar1
+  0 174829 4436207516085            5  inst     -> storeScalar1
+  0 174829 4436207516091            5  inst     <- storeScalar1
+  0 174829 4436207516097            5  inst     -> foreach_start4
+  0 174829 4436207516104            6  inst     <- foreach_start4
+  0 174829 4436207516110            6  inst     -> foreach_step4
+  0 174829 4436207516125           14  inst     <- foreach_step4
+  0 174829 4436207516131            5  inst     -> loadScalar1
+  0 174829 4436207516137            5  inst     <- loadScalar1
+  0 174829 4436207516143            5  inst     -> storeScalar1
+  0 174829 4436207516148            5  inst     <- storeScalar1
+  0 174829 4436207516154            5  inst     -> push1
+  0 174829 4436207516160            5  inst     <- push1
+  0 174829 4436207516165            5  inst     -> push1
+  0 174829 4436207516171            5  inst     <- push1
+  0 174829 4436207516177            5  inst     -> loadScalar1
+  0 174829 4436207516182            5  inst     <- loadScalar1
+  0 174829 4436207516188            5  inst     -> push1
+  0 174829 4436207516194            5  inst     <- push1
+  0 174829 4436207516200            5  inst     -> invokeStk1
+  0 174829 4436207516206            6   cmd       -> file
+  0 174829 4436207516218           12   cmd       <- file
+  0 174829 4436207516224            6  inst     <- invokeStk1
+  0 174829 4436207516230            5  inst     -> storeScalar1
+  0 174829 4436207516236            5  inst     <- storeScalar1
+  0 174829 4436207516242            5  inst     -> push1
+  0 174829 4436207516247            5  inst     <- push1
+  0 174829 4436207516253            5  inst     -> push1
+  0 174829 4436207516258            5  inst     <- push1
+  0 174829 4436207516264            5  inst     -> loadScalar1
+  0 174829 4436207516270            5  inst     <- loadScalar1
+  0 174829 4436207516276            5  inst     -> invokeStk1
+  0 174829 4436207516282            6   cmd       -> file
+  0 174829 4436207516368           86   cmd       <- file
+  0 174829 4436207516375            6  inst     <- invokeStk1
+  0 174829 4436207516381            6  inst     -> tryCvtToNumeric
+  0 174829 4436207516387            5  inst     <- tryCvtToNumeric
+  0 174829 4436207516393            5  inst     -> jumpFalse1
+  0 174829 4436207516398            5  inst     <- jumpFalse1
+  0 174829 4436207516404            5  inst     -> push1
+  0 174829 4436207516410            5  inst     <- push1
+  0 174829 4436207516416            5  inst     -> pop
+  0 174829 4436207516421            5  inst     <- pop
+  0 174829 4436207516427            5  inst     -> jump1
+  0 174829 4436207516432            5  inst     <- jump1
+  0 174829 4436207516438            5  inst     -> foreach_step4
+  0 174829 4436207516444            5  inst     <- foreach_step4
+  0 174829 4436207516450            5  inst     -> loadScalar1
+  0 174829 4436207516456            5  inst     <- loadScalar1
+  0 174829 4436207516462            6  inst     -> storeScalar1
+  0 174829 4436207516468            5  inst     <- storeScalar1
+  0 174829 4436207516473            5  inst     -> push1
+  0 174829 4436207516479            5  inst     <- push1
+  0 174829 4436207516485            5  inst     -> push1
+  0 174829 4436207516490            5  inst     <- push1
+  0 174829 4436207516496            5  inst     -> loadScalar1
+  0 174829 4436207516502            5  inst     <- loadScalar1
+  0 174829 4436207516508            5  inst     -> push1
+  0 174829 4436207516513            5  inst     <- push1
+  0 174829 4436207516519            5  inst     -> invokeStk1
+  0 174829 4436207516525            6   cmd       -> file
+  0 174829 4436207516536           10   cmd       <- file
+  0 174829 4436207516542            6  inst     <- invokeStk1
+  0 174829 4436207516548            5  inst     -> storeScalar1
+  0 174829 4436207516555            6  inst     <- storeScalar1
+  0 174829 4436207516561            6  inst     -> push1
+  0 174829 4436207516566            5  inst     <- push1
+  0 174829 4436207516572            5  inst     -> push1
+  0 174829 4436207516578            5  inst     <- push1
+  0 174829 4436207516583            5  inst     -> loadScalar1
+  0 174829 4436207516589            5  inst     <- loadScalar1
+  0 174829 4436207516595            5  inst     -> invokeStk1
+  0 174829 4436207516601            6   cmd       -> file
+  0 174829 4436207516709          107   cmd       <- file
+  0 174829 4436207516716            6  inst     <- invokeStk1
+  0 174829 4436207516722            6  inst     -> tryCvtToNumeric
+  0 174829 4436207516728            5  inst     <- tryCvtToNumeric
+  0 174829 4436207516733            5  inst     -> jumpFalse1
+  0 174829 4436207516739            5  inst     <- jumpFalse1
+  0 174829 4436207516745            5  inst     -> push1
+  0 174829 4436207516751            5  inst     <- push1
+  0 174829 4436207516756            5  inst     -> pop
+  0 174829 4436207516762            5  inst     <- pop
+  0 174829 4436207516768            5  inst     -> jump1
+  0 174829 4436207516773            5  inst     <- jump1
+  0 174829 4436207516779            5  inst     -> foreach_step4
+  0 174829 4436207516785            5  inst     <- foreach_step4
+  0 174829 4436207516791            5  inst     -> loadScalar1
+  0 174829 4436207516796            5  inst     <- loadScalar1
+  0 174829 4436207516802            5  inst     -> storeScalar1
+  0 174829 4436207516808            5  inst     <- storeScalar1
+  0 174829 4436207516814            5  inst     -> push1
+  0 174829 4436207516820            5  inst     <- push1
+  0 174829 4436207516825            5  inst     -> push1
+  0 174829 4436207516831            5  inst     <- push1
+  0 174829 4436207516837            5  inst     -> loadScalar1
+  0 174829 4436207516842            5  inst     <- loadScalar1
+  0 174829 4436207516848            5  inst     -> push1
+  0 174829 4436207516854            5  inst     <- push1
+  0 174829 4436207516859            5  inst     -> invokeStk1
+  0 174829 4436207516866            6   cmd       -> file
+  0 174829 4436207516876           10   cmd       <- file
+  0 174829 4436207516882            6  inst     <- invokeStk1
+  0 174829 4436207516888            5  inst     -> storeScalar1
+  0 174829 4436207516895            6  inst     <- storeScalar1
+  0 174829 4436207516901            6  inst     -> push1
+  0 174829 4436207516906            5  inst     <- push1
+  0 174829 4436207516912            5  inst     -> push1
+  0 174829 4436207516918            5  inst     <- push1
+  0 174829 4436207516923            5  inst     -> loadScalar1
+  0 174829 4436207516929            5  inst     <- loadScalar1
+  0 174829 4436207516935            5  inst     -> invokeStk1
+  0 174829 4436207516941            6   cmd       -> file
+  0 174829 4436207517027           86   cmd       <- file
+  0 174829 4436207517034            6  inst     <- invokeStk1
+  0 174829 4436207517040            6  inst     -> tryCvtToNumeric
+  0 174829 4436207517046            5  inst     <- tryCvtToNumeric
+  0 174829 4436207517052            5  inst     -> jumpFalse1
+  0 174829 4436207517057            5  inst     <- jumpFalse1
+  0 174829 4436207517063            5  inst     -> push1
+  0 174829 4436207517069            5  inst     <- push1
+  0 174829 4436207517075            5  inst     -> pop
+  0 174829 4436207517080            5  inst     <- pop
+  0 174829 4436207517086            5  inst     -> jump1
+  0 174829 4436207517091            5  inst     <- jump1
+  0 174829 4436207517097            5  inst     -> foreach_step4
+  0 174829 4436207517103            5  inst     <- foreach_step4
+  0 174829 4436207517109            5  inst     -> loadScalar1
+  0 174829 4436207517115            5  inst     <- loadScalar1
+  0 174829 4436207517121            5  inst     -> storeScalar1
+  0 174829 4436207517127            5  inst     <- storeScalar1
+  0 174829 4436207517132            5  inst     -> push1
+  0 174829 4436207517138            5  inst     <- push1
+  0 174829 4436207517144            5  inst     -> push1
+  0 174829 4436207517149            5  inst     <- push1
+  0 174829 4436207517155            5  inst     -> loadScalar1
+  0 174829 4436207517161            5  inst     <- loadScalar1
+  0 174829 4436207517167            5  inst     -> push1
+  0 174829 4436207517172            5  inst     <- push1
+  0 174829 4436207517178            5  inst     -> invokeStk1
+  0 174829 4436207517184            6   cmd       -> file
+  0 174829 4436207517194           10   cmd       <- file
+  0 174829 4436207517201            6  inst     <- invokeStk1
+  0 174829 4436207517206            5  inst     -> storeScalar1
+  0 174829 4436207517213            6  inst     <- storeScalar1
+  0 174829 4436207517219            5  inst     -> push1
+  0 174829 4436207517225            5  inst     <- push1
+  0 174829 4436207517231            5  inst     -> push1
+  0 174829 4436207517236            5  inst     <- push1
+  0 174829 4436207517242            5  inst     -> loadScalar1
+  0 174829 4436207517247            5  inst     <- loadScalar1
+  0 174829 4436207517253            5  inst     -> invokeStk1
+  0 174829 4436207517260            6   cmd       -> file
+  0 174829 4436207517313           53   cmd       <- file
+  0 174829 4436207517319            6  inst     <- invokeStk1
+  0 174829 4436207517325            5  inst     -> tryCvtToNumeric
+  0 174829 4436207517331            6  inst     <- tryCvtToNumeric
+  0 174829 4436207517337            5  inst     -> jumpFalse1
+  0 174829 4436207517343            5  inst     <- jumpFalse1
+  0 174829 4436207517348            5  inst     -> beginCatch4
+  0 174829 4436207517354            5  inst     <- beginCatch4
+  0 174829 4436207517360            6  inst     -> push1
+  0 174829 4436207517366            5  inst     <- push1
+  0 174829 4436207517371            5  inst     -> push1
+  0 174829 4436207517377            5  inst     <- push1
+  0 174829 4436207517383            5  inst     -> push1
+  0 174829 4436207517388            5  inst     <- push1
+  0 174829 4436207517394            5  inst     -> loadScalar1
+  0 174829 4436207517400            5  inst     <- loadScalar1
+  0 174829 4436207517405            5  inst     -> list
+  0 174829 4436207517412            6  inst     <- list
+  0 174829 4436207517418            5  inst     -> invokeStk1
+  0 174829 4436207517424            6   cmd       -> uplevel
+  0 174829 4436207517436           11   cmd         -> source
+  0 174829 4436207517878          441   cmd           -> if
+  0 174829 4436207517897           18  inst             -> push1
+  0 174829 4436207517903            6  inst             <- push1
+  0 174829 4436207517910            6  inst             -> push1
+  0 174829 4436207517915            5  inst             <- push1
+  0 174829 4436207517921            5  inst             -> push1
+  0 174829 4436207517927            5  inst             <- push1
+  0 174829 4436207517932            5  inst             -> invokeStk1
+  0 174829 4436207517939            6   cmd               -> info
+  0 174829 4436207517947            8   cmd               <- info
+  0 174829 4436207517954            6  inst             <- invokeStk1
+  0 174829 4436207517960            5  inst             -> push1
+  0 174829 4436207517965            5  inst             <- push1
+  0 174829 4436207517971            5  inst             -> eq
+  0 174829 4436207517979            7  inst             <- eq
+  0 174829 4436207517985            5  inst             -> done
+  0 174829 4436207517991            5  inst             <- done
+  0 174829 4436207517997            6   cmd           <- if
+  0 174829 4436207518010           12   cmd           -> package
+  0 174829 4436207518021           10   cmd           <- package
+  0 174829 4436207518034           13   cmd           -> if
+  0 174829 4436207518046           11  inst             -> push1
+  0 174829 4436207518051            5  inst             <- push1
+  0 174829 4436207518057            5  inst             -> push1
+  0 174829 4436207518063            5  inst             <- push1
+  0 174829 4436207518068            5  inst             -> push1
+  0 174829 4436207518074            5  inst             <- push1
+  0 174829 4436207518080            5  inst             -> invokeStk1
+  0 174829 4436207518086            6   cmd               -> info
+  0 174829 4436207518094            7   cmd               <- info
+  0 174829 4436207518099            5  inst             <- invokeStk1
+  0 174829 4436207518105            5  inst             -> not
+  0 174829 4436207518111            6  inst             <- not
+  0 174829 4436207518117            5  inst             -> done
+  0 174829 4436207518123            5  inst             <- done
+  0 174829 4436207518147           24  inst             -> push1
+  0 174829 4436207518153            5  inst             <- push1
+  0 174829 4436207518159            5  inst             -> push1
+  0 174829 4436207518164            5  inst             <- push1
+  0 174829 4436207518170            5  inst             -> push1
+  0 174829 4436207518175            5  inst             <- push1
+  0 174829 4436207518181            5  inst             -> invokeStk1
+  0 174829 4436207518187            6   cmd               -> info
+  0 174829 4436207518212           25   cmd               <- info
+  0 174829 4436207518218            6  inst             <- invokeStk1
+  0 174829 4436207518224            5  inst             -> tryCvtToNumeric
+  0 174829 4436207518230            5  inst             <- tryCvtToNumeric
+  0 174829 4436207518236            5  inst             -> jumpFalse1
+  0 174829 4436207518242            5  inst             <- jumpFalse1
+  0 174829 4436207518248            5  inst             -> push1
+  0 174829 4436207518253            5  inst             <- push1
+  0 174829 4436207518259            5  inst             -> push1
+  0 174829 4436207518264            5  inst             <- push1
+  0 174829 4436207518270            5  inst             -> storeScalarStk
+  0 174829 4436207518278            7  inst             <- storeScalarStk
+  0 174829 4436207518284            5  inst             -> done
+  0 174829 4436207518289            5  inst             <- done
+  0 174829 4436207518295            6   cmd           <- if
+  0 174829 4436207518315           19   cmd           -> namespace
+  0 174829 4436207518421          106  inst             -> push1
+  0 174829 4436207518428            6  inst             <- push1
+  0 174829 4436207518434            5  inst             -> push1
+  0 174829 4436207518440            5  inst             <- push1
+  0 174829 4436207518445            5  inst             -> invokeStk1
+  0 174829 4436207518452            6   cmd               -> variable
+  0 174829 4436207518460            8   cmd               <- variable
+  0 174829 4436207518466            6  inst             <- invokeStk1
+  0 174829 4436207518472            5  inst             -> pop
+  0 174829 4436207518477            5  inst             <- pop
+  0 174829 4436207518483            5  inst             -> push1
+  0 174829 4436207518489            5  inst             <- push1
+  0 174829 4436207518494            5  inst             -> push1
+  0 174829 4436207518500            5  inst             <- push1
+  0 174829 4436207518506            5  inst             -> invokeStk1
+  0 174829 4436207518513            7   cmd               -> info
+  0 174829 4436207518526           13   cmd               <- info
+  0 174829 4436207518532            6  inst             <- invokeStk1
+  0 174829 4436207518538            5  inst             -> push1
+  0 174829 4436207518544            5  inst             <- push1
+  0 174829 4436207518549            5  inst             -> strneq
+  0 174829 4436207518555            6  inst             <- strneq
+  0 174829 4436207518561            5  inst             -> push1
+  0 174829 4436207518567            5  inst             <- push1
+  0 174829 4436207518573            5  inst             -> push1
+  0 174829 4436207518578            5  inst             <- push1
+  0 174829 4436207518584            5  inst             -> push1
+  0 174829 4436207518589            5  inst             <- push1
+  0 174829 4436207518595            5  inst             -> push1
+  0 174829 4436207518600            5  inst             <- push1
+  0 174829 4436207518606            5  inst             -> push1
+  0 174829 4436207518612            5  inst             <- push1
+  0 174829 4436207518617            5  inst             -> invokeStk1
+  0 174829 4436207518624            6   cmd               -> info
+  0 174829 4436207518631            7   cmd               <- info
+  0 174829 4436207518637            6  inst             <- invokeStk1
+  0 174829 4436207518643            5  inst             -> push1
+  0 174829 4436207518648            5  inst             <- push1
+  0 174829 4436207518654            5  inst             -> push1
+  0 174829 4436207518660            5  inst             <- push1
+  0 174829 4436207518665            5  inst             -> push1
+  0 174829 4436207518671            5  inst             <- push1
+  0 174829 4436207518677            5  inst             -> push1
+  0 174829 4436207518682            5  inst             <- push1
+  0 174829 4436207518688            5  inst             -> invokeStk1
+  0 174829 4436207518694            6   cmd               -> info
+  0 174829 4436207518701            7   cmd               <- info
+  0 174829 4436207518707            6  inst             <- invokeStk1
+  0 174829 4436207518713            5  inst             -> invokeStk1
+  0 174829 4436207518720            7   cmd               -> file
+  0 174829 4436207518741           20   cmd               <- file
+  0 174829 4436207518748            6  inst             <- invokeStk1
+  0 174829 4436207518753            5  inst             -> invokeStk1
+  0 174829 4436207518760            6   cmd               -> list
+  0 174829 4436207518768            8   cmd               <- list
+  0 174829 4436207518774            6  inst             <- invokeStk1
+  0 174829 4436207518780            5  inst             -> push1
+  0 174829 4436207518786            5  inst             <- push1
+  0 174829 4436207518791            5  inst             -> invokeStk1
+  0 174829 4436207518798            6   cmd               -> foreach
+  0 174829 4436207518821           23  inst                 -> push1
+  0 174829 4436207518827            6  inst                 <- push1
+  0 174829 4436207518833            5  inst                 -> push1
+  0 174829 4436207518839            5  inst                 <- push1
+  0 174829 4436207518844            5  inst                 -> push1
+  0 174829 4436207518850            5  inst                 <- push1
+  0 174829 4436207518856            5  inst                 -> loadScalarStk
+  0 174829 4436207518862            6  inst                 <- loadScalarStk
+  0 174829 4436207518868            5  inst                 -> push1
+  0 174829 4436207518874            5  inst                 <- push1
+  0 174829 4436207518879            5  inst                 -> loadScalarStk
+  0 174829 4436207518886            6  inst                 <- loadScalarStk
+  0 174829 4436207518892            5  inst                 -> invokeStk1
+  0 174829 4436207518898            6   cmd                   -> lsearch
+  0 174829 4436207518906            8   cmd                   <- lsearch
+  0 174829 4436207518913            6  inst                 <- invokeStk1
+  0 174829 4436207518918            5  inst                 -> push1
+  0 174829 4436207518924            5  inst                 <- push1
+  0 174829 4436207518930            5  inst                 -> lt
+  0 174829 4436207518936            6  inst                 <- lt
+  0 174829 4436207518942            5  inst                 -> push1
+  0 174829 4436207518947            5  inst                 <- push1
+  0 174829 4436207518953            5  inst                 -> push1
+  0 174829 4436207518958            5  inst                 <- push1
+  0 174829 4436207518964            5  inst                 -> push1
+  0 174829 4436207518969            5  inst                 <- push1
+  0 174829 4436207518975            5  inst                 -> loadScalarStk
+  0 174829 4436207518981            6  inst                 <- loadScalarStk
+  0 174829 4436207518987            5  inst                 -> invokeStk1
+  0 174829 4436207518993            6   cmd                   -> lappend
+  0 174829 4436207519002            8   cmd                   <- lappend
+  0 174829 4436207519008            6  inst                 <- invokeStk1
+  0 174829 4436207519013            5  inst                 -> jump1
+  0 174829 4436207519019            5  inst                 <- jump1
+  0 174829 4436207519025            5  inst                 -> done
+  0 174829 4436207519030            5  inst                 <- done
+  0 174829 4436207519038            8  inst                 -> push1
+  0 174829 4436207519044            5  inst                 <- push1
+  0 174829 4436207519050            5  inst                 -> push1
+  0 174829 4436207519055            5  inst                 <- push1
+  0 174829 4436207519061            5  inst                 -> push1
+  0 174829 4436207519066            5  inst                 <- push1
+  0 174829 4436207519072            5  inst                 -> loadScalarStk
+  0 174829 4436207519078            5  inst                 <- loadScalarStk
+  0 174829 4436207519084            5  inst                 -> push1
+  0 174829 4436207519090            5  inst                 <- push1
+  0 174829 4436207519095            5  inst                 -> loadScalarStk
+  0 174829 4436207519102            6  inst                 <- loadScalarStk
+  0 174829 4436207519108            5  inst                 -> invokeStk1
+  0 174829 4436207519114            6   cmd                   -> lsearch
+  0 174829 4436207519120            6   cmd                   <- lsearch
+  0 174829 4436207519126            5  inst                 <- invokeStk1
+  0 174829 4436207519132            5  inst                 -> push1
+  0 174829 4436207519138            5  inst                 <- push1
+  0 174829 4436207519143            5  inst                 -> lt
+  0 174829 4436207519149            5  inst                 <- lt
+  0 174829 4436207519155            5  inst                 -> push1
+  0 174829 4436207519160            5  inst                 <- push1
+  0 174829 4436207519166            5  inst                 -> push1
+  0 174829 4436207519171            5  inst                 <- push1
+  0 174829 4436207519177            5  inst                 -> push1
+  0 174829 4436207519182            5  inst                 <- push1
+  0 174829 4436207519188            5  inst                 -> loadScalarStk
+  0 174829 4436207519194            5  inst                 <- loadScalarStk
+  0 174829 4436207519200            5  inst                 -> invokeStk1
+  0 174829 4436207519206            6   cmd                   -> lappend
+  0 174829 4436207519213            7   cmd                   <- lappend
+  0 174829 4436207519219            6  inst                 <- invokeStk1
+  0 174829 4436207519225            5  inst                 -> jump1
+  0 174829 4436207519231            5  inst                 <- jump1
+  0 174829 4436207519236            5  inst                 -> done
+  0 174829 4436207519242            5  inst                 <- done
+  0 174829 4436207519248            6   cmd               <- foreach
+  0 174829 4436207519255            6  inst             <- invokeStk1
+  0 174829 4436207519260            5  inst             -> jump1
+  0 174829 4436207519266            5  inst             <- jump1
+  0 174829 4436207519272            5  inst             -> pop
+  0 174829 4436207519277            5  inst             <- pop
+  0 174829 4436207519283            5  inst             -> push1
+  0 174829 4436207519288            5  inst             <- push1
+  0 174829 4436207519294            5  inst             -> push1
+  0 174829 4436207519300            5  inst             <- push1
+  0 174829 4436207519305            5  inst             -> push1
+  0 174829 4436207519311            5  inst             <- push1
+  0 174829 4436207519316            5  inst             -> push1
+  0 174829 4436207519322            5  inst             <- push1
+  0 174829 4436207519328            5  inst             -> push1
+  0 174829 4436207519333            5  inst             <- push1
+  0 174829 4436207519339            5  inst             -> push1
+  0 174829 4436207519344            5  inst             <- push1
+  0 174829 4436207519350            5  inst             -> push1
+  0 174829 4436207519356            5  inst             <- push1
+  0 174829 4436207519362            5  inst             -> push1
+  0 174829 4436207519367            5  inst             <- push1
+  0 174829 4436207519373            5  inst             -> push1
+  0 174829 4436207519378            5  inst             <- push1
+  0 174829 4436207519384            5  inst             -> invokeStk1
+  0 174829 4436207519390            6   cmd               -> info
+  0 174829 4436207519399            8   cmd               <- info
+  0 174829 4436207519405            5  inst             <- invokeStk1
+  0 174829 4436207519411            5  inst             -> invokeStk1
+  0 174829 4436207519417            6   cmd               -> file
+  0 174829 4436207519435           18   cmd               <- file
+  0 174829 4436207519442            6  inst             <- invokeStk1
+  0 174829 4436207519448            5  inst             -> invokeStk1
+  0 174829 4436207519454            6   cmd               -> file
+  0 174829 4436207519471           17   cmd               <- file
+  0 174829 4436207519478            6  inst             <- invokeStk1
+  0 174829 4436207519484            5  inst             -> push1
+  0 174829 4436207519490            5  inst             <- push1
+  0 174829 4436207519495            5  inst             -> invokeStk1
+  0 174829 4436207519502            6   cmd               -> file
+  0 174829 4436207519512            9   cmd               <- file
+  0 174829 4436207519518            6  inst             <- invokeStk1
+  0 174829 4436207519524            5  inst             -> storeScalarStk
+  0 174829 4436207519530            6  inst             <- storeScalarStk
+  0 174829 4436207519536            6  inst             -> push1
+  0 174829 4436207519542            5  inst             <- push1
+  0 174829 4436207519547            5  inst             -> push1
+  0 174829 4436207519553            5  inst             <- push1
+  0 174829 4436207519559            5  inst             -> push1
+  0 174829 4436207519564            5  inst             <- push1
+  0 174829 4436207519570            5  inst             -> loadScalarStk
+  0 174829 4436207519576            6  inst             <- loadScalarStk
+  0 174829 4436207519582            5  inst             -> push1
+  0 174829 4436207519587            5  inst             <- push1
+  0 174829 4436207519593            5  inst             -> loadScalarStk
+  0 174829 4436207519599            5  inst             <- loadScalarStk
+  0 174829 4436207519605            5  inst             -> invokeStk1
+  0 174829 4436207519611            6   cmd               -> lsearch
+  0 174829 4436207519617            6   cmd               <- lsearch
+  0 174829 4436207519623            6  inst             <- invokeStk1
+  0 174829 4436207519629            5  inst             -> push1
+  0 174829 4436207519635            5  inst             <- push1
+  0 174829 4436207519640            5  inst             -> lt
+  0 174829 4436207519646            5  inst             <- lt
+  0 174829 4436207519652            5  inst             -> push1
+  0 174829 4436207519657            5  inst             <- push1
+  0 174829 4436207519663            5  inst             -> push1
+  0 174829 4436207519668            5  inst             <- push1
+  0 174829 4436207519674            5  inst             -> push1
+  0 174829 4436207519679            5  inst             <- push1
+  0 174829 4436207519685            5  inst             -> loadScalarStk
+  0 174829 4436207519691            5  inst             <- loadScalarStk
+  0 174829 4436207519697            5  inst             -> invokeStk1
+  0 174829 4436207519703            6   cmd               -> lappend
+  0 174829 4436207519710            6   cmd               <- lappend
+  0 174829 4436207519716            6  inst             <- invokeStk1
+  0 174829 4436207519722            5  inst             -> jump1
+  0 174829 4436207519727            5  inst             <- jump1
+  0 174829 4436207519733            5  inst             -> pop
+  0 174829 4436207519739            5  inst             <- pop
+  0 174829 4436207519744            5  inst             -> push1
+  0 174829 4436207519750            5  inst             <- push1
+  0 174829 4436207519756            5  inst             -> push1
+  0 174829 4436207519761            5  inst             <- push1
+  0 174829 4436207519767            5  inst             -> push1
+  0 174829 4436207519772            5  inst             <- push1
+  0 174829 4436207519778            5  inst             -> invokeStk1
+  0 174829 4436207519784            6   cmd               -> info
+  0 174829 4436207519791            6   cmd               <- info
+  0 174829 4436207519797            6  inst             <- invokeStk1
+  0 174829 4436207519803            5  inst             -> tryCvtToNumeric
+  0 174829 4436207519809            5  inst             <- tryCvtToNumeric
+  0 174829 4436207519815            5  inst             -> jumpFalse1
+  0 174829 4436207519820            5  inst             <- jumpFalse1
+  0 174829 4436207519826            5  inst             -> push1
+  0 174829 4436207519832            5  inst             <- push1
+  0 174829 4436207519837            5  inst             -> push1
+  0 174829 4436207519843            5  inst             <- push1
+  0 174829 4436207519849            5  inst             -> push1
+  0 174829 4436207519854            5  inst             <- push1
+  0 174829 4436207519860            5  inst             -> loadScalarStk
+  0 174829 4436207519866            6  inst             <- loadScalarStk
+  0 174829 4436207519872            5  inst             -> push1
+  0 174829 4436207519877            5  inst             <- push1
+  0 174829 4436207519883            5  inst             -> invokeStk1
+  0 174829 4436207519889            6   cmd               -> foreach
+  0 174829 4436207519899            9  inst                 -> push1
+  0 174829 4436207519904            5  inst                 <- push1
+  0 174829 4436207519910            5  inst                 -> push1
+  0 174829 4436207519915            5  inst                 <- push1
+  0 174829 4436207519921            5  inst                 -> push1
+  0 174829 4436207519927            5  inst                 <- push1
+  0 174829 4436207519932            5  inst                 -> loadScalarStk
+  0 174829 4436207519938            6  inst                 <- loadScalarStk
+  0 174829 4436207519944            5  inst                 -> push1
+  0 174829 4436207519950            5  inst                 <- push1
+  0 174829 4436207519955            5  inst                 -> loadScalarStk
+  0 174829 4436207519962            6  inst                 <- loadScalarStk
+  0 174829 4436207519968            5  inst                 -> invokeStk1
+  0 174829 4436207519974            6   cmd                   -> lsearch
+  0 174829 4436207519980            6   cmd                   <- lsearch
+  0 174829 4436207519986            6  inst                 <- invokeStk1
+  0 174829 4436207519992            5  inst                 -> push1
+  0 174829 4436207519998            5  inst                 <- push1
+  0 174829 4436207520003            5  inst                 -> lt
+  0 174829 4436207520009            5  inst                 <- lt
+  0 174829 4436207520015            5  inst                 -> push1
+  0 174829 4436207520020            5  inst                 <- push1
+  0 174829 4436207520026            5  inst                 -> push1
+  0 174829 4436207520031            5  inst                 <- push1
+  0 174829 4436207520037            5  inst                 -> push1
+  0 174829 4436207520043            5  inst                 <- push1
+  0 174829 4436207520048            5  inst                 -> loadScalarStk
+  0 174829 4436207520054            5  inst                 <- loadScalarStk
+  0 174829 4436207520060            5  inst                 -> invokeStk1
+  0 174829 4436207520066            6   cmd                   -> lappend
+  0 174829 4436207520073            6   cmd                   <- lappend
+  0 174829 4436207520079            5  inst                 <- invokeStk1
+  0 174829 4436207520085            5  inst                 -> jump1
+  0 174829 4436207520090            5  inst                 <- jump1
+  0 174829 4436207520096            5  inst                 -> done
+  0 174829 4436207520102            5  inst                 <- done
+  0 174829 4436207520108            6   cmd               <- foreach
+  0 174829 4436207520114            5  inst             <- invokeStk1
+  0 174829 4436207520119            5  inst             -> jump1
+  0 174829 4436207520125            5  inst             <- jump1
+  0 174829 4436207520131            5  inst             -> done
+  0 174829 4436207520136            5  inst             <- done
+  0 174829 4436207520143            6   cmd           <- namespace
+  0 174829 4436207520171           28   cmd           -> if
+  0 174829 4436207520192           20  inst             -> push1
+  0 174829 4436207520198            6  inst             <- push1
+  0 174829 4436207520203            5  inst             -> push1
+  0 174829 4436207520209            5  inst             <- push1
+  0 174829 4436207520215            5  inst             -> invokeStk1
+  0 174829 4436207520221            6   cmd               -> interp
+  0 174829 4436207520230            9   cmd               <- interp
+  0 174829 4436207520236            5  inst             <- invokeStk1
+  0 174829 4436207520242            5  inst             -> not
+  0 174829 4436207520247            5  inst             <- not
+  0 174829 4436207520253            5  inst             -> jumpTrue1
+  0 174829 4436207520259            5  inst             <- jumpTrue1
+  0 174829 4436207520265            5  inst             -> push1
+  0 174829 4436207520270            5  inst             <- push1
+  0 174829 4436207520276            5  inst             -> dup
+  0 174829 4436207520281            5  inst             <- dup
+  0 174829 4436207520287            5  inst             -> jumpFalse1
+  0 174829 4436207520293            5  inst             <- jumpFalse1
+  0 174829 4436207520298            5  inst             -> push1
+  0 174829 4436207520304            5  inst             <- push1
+  0 174829 4436207520310            5  inst             -> push1
+  0 174829 4436207520315            5  inst             <- push1
+  0 174829 4436207520321            5  inst             -> loadArrayStk
+  0 174829 4436207520328            6  inst             <- loadArrayStk
+  0 174829 4436207520334            5  inst             -> push1
+  0 174829 4436207520339            5  inst             <- push1
+  0 174829 4436207520345            5  inst             -> streq
+  0 174829 4436207520351            5  inst             <- streq
+  0 174829 4436207520357            5  inst             -> land
+  0 174829 4436207520363            6  inst             <- land
+  0 174829 4436207520368            5  inst             -> done
+  0 174829 4436207520374            5  inst             <- done
+  0 174829 4436207520381            6   cmd           <- if
+  0 174829 4436207520394           13   cmd           -> package
+  0 174829 4436207520401            6   cmd           <- package
+  0 174829 4436207520413           11   cmd           -> if
+  0 174829 4436207520424           11  inst             -> push1
+  0 174829 4436207520429            5  inst             <- push1
+  0 174829 4436207520435            5  inst             -> push1
+  0 174829 4436207520441            5  inst             <- push1
+  0 174829 4436207520446            5  inst             -> invokeStk1
+  0 174829 4436207520453            6   cmd               -> interp
+  0 174829 4436207520459            6   cmd               <- interp
+  0 174829 4436207520465            5  inst             <- invokeStk1
+  0 174829 4436207520471            5  inst             -> not
+  0 174829 4436207520476            5  inst             <- not
+  0 174829 4436207520482            5  inst             -> done
+  0 174829 4436207520488            5  inst             <- done
+  0 174829 4436207520527           39  inst             -> push1
+  0 174829 4436207520533            5  inst             <- push1
+  0 174829 4436207520539            5  inst             -> push1
+  0 174829 4436207520544            5  inst             <- push1
+  0 174829 4436207520550            5  inst             -> loadArrayStk
+  0 174829 4436207520557            6  inst             <- loadArrayStk
+  0 174829 4436207520563            5  inst             -> push1
+  0 174829 4436207520568            5  inst             <- push1
+  0 174829 4436207520574            5  inst             -> streq
+  0 174829 4436207520580            5  inst             <- streq
+  0 174829 4436207520586            5  inst             -> push1
+  0 174829 4436207520591            5  inst             <- push1
+  0 174829 4436207520597            5  inst             -> dup
+  0 174829 4436207520602            5  inst             <- dup
+  0 174829 4436207520608            5  inst             -> jumpFalse1
+  0 174829 4436207520614            5  inst             <- jumpFalse1
+  0 174829 4436207520619            5  inst             -> push1
+  0 174829 4436207520625            5  inst             <- push1
+  0 174829 4436207520631            5  inst             -> push1
+  0 174829 4436207520636            5  inst             <- push1
+  0 174829 4436207520642            5  inst             -> loadArrayStk
+  0 174829 4436207520648            6  inst             <- loadArrayStk
+  0 174829 4436207520654            5  inst             -> push1
+  0 174829 4436207520660            5  inst             <- push1
+  0 174829 4436207520665            5  inst             -> streq
+  0 174829 4436207520671            5  inst             <- streq
+  0 174829 4436207520677            5  inst             -> land
+  0 174829 4436207520682            5  inst             <- land
+  0 174829 4436207520688            5  inst             -> jumpFalse1
+  0 174829 4436207520694            5  inst             <- jumpFalse1
+  0 174829 4436207520700            5  inst             -> push1
+  0 174829 4436207520705            5  inst             <- push1
+  0 174829 4436207520711            5  inst             -> pop
+  0 174829 4436207520716            5  inst             <- pop
+  0 174829 4436207520722            5  inst             -> push1
+  0 174829 4436207520728            5  inst             <- push1
+  0 174829 4436207520733            5  inst             -> push1
+  0 174829 4436207520739            5  inst             <- push1
+  0 174829 4436207520744            5  inst             -> loadArrayStk
+  0 174829 4436207520751            6  inst             <- loadArrayStk
+  0 174829 4436207520757            5  inst             -> push1
+  0 174829 4436207520762            5  inst             <- push1
+  0 174829 4436207520768            5  inst             -> streq
+  0 174829 4436207520773            5  inst             <- streq
+  0 174829 4436207520779            5  inst             -> push1
+  0 174829 4436207520785            5  inst             <- push1
+  0 174829 4436207520791            5  inst             -> done
+  0 174829 4436207520796            5  inst             <- done
+  0 174829 4436207520802            6   cmd           <- if
+  0 174829 4436207520822           19   cmd           -> if
+  0 174829 4436207520835           13  inst             -> push1
+  0 174829 4436207520841            5  inst             <- push1
+  0 174829 4436207520847            5  inst             -> push1
+  0 174829 4436207520852            5  inst             <- push1
+  0 174829 4436207520858            5  inst             -> push1
+  0 174829 4436207520864            5  inst             <- push1
+  0 174829 4436207520869            5  inst             -> push1
+  0 174829 4436207520875            5  inst             <- push1
+  0 174829 4436207520881            5  inst             -> invokeStk1
+  0 174829 4436207520887            6   cmd               -> namespace
+  0 174829 4436207520896            8   cmd               <- namespace
+  0 174829 4436207520902            6  inst             <- invokeStk1
+  0 174829 4436207520908            5  inst             -> push1
+  0 174829 4436207520913            5  inst             <- push1
+  0 174829 4436207520919            5  inst             -> streq
+  0 174829 4436207520925            6  inst             <- streq
+  0 174829 4436207520931            5  inst             -> done
+  0 174829 4436207520936            5  inst             <- done
+  0 174829 4436207520942            6   cmd           <- if
+  0 174829 4436207521503          560   cmd           -> set
+  0 174829 4436207521515           11   cmd           <- set
+  0 174829 4436207521524            9   cmd           -> set
+  0 174829 4436207521531            6   cmd           <- set
+  0 174829 4436207521541           10   cmd           -> if
+  0 174829 4436207521559           17  inst             -> push1
+  0 174829 4436207521566            7  inst             <- push1
+  0 174829 4436207521573            6  inst             -> push1
+  0 174829 4436207521578            5  inst             <- push1
+  0 174829 4436207521584            5  inst             -> push1
+  0 174829 4436207521590            5  inst             <- push1
+  0 174829 4436207521596            5  inst             -> push1
+  0 174829 4436207521601            5  inst             <- push1
+  0 174829 4436207521607            5  inst             -> invokeStk1
+  0 174829 4436207521613            6   cmd               -> namespace
+  0 174829 4436207521621            7   cmd               <- namespace
+  0 174829 4436207521627            6  inst             <- invokeStk1
+  0 174829 4436207521633            5  inst             -> push1
+  0 174829 4436207521639            5  inst             <- push1
+  0 174829 4436207521644            5  inst             -> streq
+  0 174829 4436207521650            5  inst             <- streq
+  0 174829 4436207521656            5  inst             -> done
+  0 174829 4436207521662            5  inst             <- done
+  0 174829 4436207521674           11  inst             -> push1
+  0 174829 4436207521679            5  inst             <- push1
+  0 174829 4436207521685            5  inst             -> push1
+  0 174829 4436207521691            5  inst             <- push1
+  0 174829 4436207521697            5  inst             -> push1
+  0 174829 4436207521702            5  inst             <- push1
+  0 174829 4436207521708            5  inst             -> push1
+  0 174829 4436207521714            5  inst             <- push1
+  0 174829 4436207521720            5  inst             -> invokeStk1
+  0 174829 4436207521726            6   cmd               -> proc
+  0 174829 4436207521738           12   cmd               <- proc
+  0 174829 4436207521744            6  inst             <- invokeStk1
+  0 174829 4436207521750            5  inst             -> done
+  0 174829 4436207521756            5  inst             <- done
+  0 174829 4436207521762            6   cmd           <- if
+  0 174829 4436207521862           99   cmd           -> proc
+  0 174829 4436207521872           10   cmd           <- proc
+  0 174829 4436207521891           19   cmd           -> proc
+  0 174829 4436207521902           10   cmd           <- proc
+  0 174829 4436207521932           30   cmd           -> proc
+  0 174829 4436207521941            8   cmd           <- proc
+  0 174829 4436207521961           19   cmd           -> proc
+  0 174829 4436207521970            9   cmd           <- proc
+  0 174829 4436207521985           14   cmd           -> proc
+  0 174829 4436207521994            8   cmd           <- proc
+  0 174829 4436207522039           45   cmd           -> if
+  0 174829 4436207522053           14  inst             -> push1
+  0 174829 4436207522059            5  inst             <- push1
+  0 174829 4436207522065            6  inst             -> push1
+  0 174829 4436207522070            5  inst             <- push1
+  0 174829 4436207522076            5  inst             -> loadArrayStk
+  0 174829 4436207522083            7  inst             <- loadArrayStk
+  0 174829 4436207522089            5  inst             -> push1
+  0 174829 4436207522094            5  inst             <- push1
+  0 174829 4436207522100            5  inst             -> streq
+  0 174829 4436207522106            5  inst             <- streq
+  0 174829 4436207522112            5  inst             -> done
+  0 174829 4436207522117            5  inst             <- done
+  0 174829 4436207522134           16  inst             -> push1
+  0 174829 4436207522140            5  inst             <- push1
+  0 174829 4436207522146            5  inst             -> push1
+  0 174829 4436207522151            5  inst             <- push1
+  0 174829 4436207522157            5  inst             -> push1
+  0 174829 4436207522163            5  inst             <- push1
+  0 174829 4436207522168            5  inst             -> push1
+  0 174829 4436207522174            5  inst             <- push1
+  0 174829 4436207522180            5  inst             -> invokeStk1
+  0 174829 4436207522186            6   cmd               -> proc
+  0 174829 4436207522205           19   cmd               <- proc
+  0 174829 4436207522212            6  inst             <- invokeStk1
+  0 174829 4436207522218            5  inst             -> done
+  0 174829 4436207522223            5  inst             <- done
+  0 174829 4436207522230            6   cmd           <- if
+  0 174829 4436207522274           44   cmd           -> proc
+  0 174829 4436207522286           11   cmd           <- proc
+  0 174829 4436207522294            8   cmd         <- source
+  0 174829 4436207522301            6   cmd       <- uplevel
+  0 174829 4436207522307            6  inst     <- invokeStk1
+  0 174829 4436207522313            6  inst     -> storeScalar1
+  0 174829 4436207522319            5  inst     <- storeScalar1
+  0 174829 4436207522325            5  inst     -> push1
+  0 174829 4436207522331            5  inst     <- push1
+  0 174829 4436207522337            5  inst     -> jump1
+  0 174829 4436207522342            5  inst     <- jump1
+  0 174829 4436207522348            5  inst     -> endCatch
+  0 174829 4436207522354            5  inst     <- endCatch
+  0 174829 4436207522360            5  inst     -> not
+  0 174829 4436207522366            5  inst     <- not
+  0 174829 4436207522371            5  inst     -> jumpFalse1
+  0 174829 4436207522377            5  inst     <- jumpFalse1
+  0 174829 4436207522383            5  inst     -> push1
+  0 174829 4436207522389            5  inst     <- push1
+  0 174829 4436207522394            5  inst     -> done
+  0 174829 4436207522400            5  inst     <- done
+  0 174829 4436207522409            8  proc   <- tclInit
+  0 174829 4436207522426           17   cmd <- tclInit
+  0 174829 4436207522671          245   cmd -> proc
+  0 174829 4436207522681            9   cmd <- proc
+  0 174829 4436207522691            9   cmd -> proc
+  0 174829 4436207522698            7   cmd <- proc
+  0 174829 4436207522708            9   cmd -> proc
+  0 174829 4436207522715            7   cmd <- proc
+  0 174829 4436207522723            8   cmd -> func_a
+  0 174829 4436207522742           18  proc   -> func_a
+  0 174829 4436207522752           10  inst     -> push1
+  0 174829 4436207522757            5  inst     <- push1
+  0 174829 4436207522763            5  inst     -> push1
+  0 174829 4436207522769            5  inst     <- push1
+  0 174829 4436207522775            5  inst     -> invokeStk1
+  0 174829 4436207522781            6   cmd       -> puts
+  0 174829 4436207523212          430   cmd       <- puts
+  0 174829 4436207523266           54  inst     <- invokeStk1
+  0 174829 4436207523275            8  inst     -> pop
+  0 174829 4436207523281            6  inst     <- pop
+  0 174829 4436207523287            5  inst     -> push1
+  0 174829 4436207523292            5  inst     <- push1
+  0 174829 4436207523298            5  inst     -> push1
+  0 174829 4436207523304            5  inst     <- push1
+  0 174829 4436207523310            5  inst     -> invokeStk1
+  0 174829 4436207523318            7   cmd       -> after
+  0 174829 4436208530951      1007632   cmd       <- after
+  0 174829 4436208530972           21  inst     <- invokeStk1
+  0 174829 4436208530984           12  inst     -> pop
+  0 174829 4436208530993            9  inst     <- pop
+  0 174829 4436208530999            5  inst     -> push1
+  0 174829 4436208531005            5  inst     <- push1
+  0 174829 4436208531010            5  inst     -> invokeStk1
+  0 174829 4436208531021           10   cmd       -> func_b
+  0 174829 4436208531057           35  proc         -> func_b
+  0 174829 4436208531067           10  inst           -> push1
+  0 174829 4436208531073            5  inst           <- push1
+  0 174829 4436208531079            5  inst           -> push1
+  0 174829 4436208531084            5  inst           <- push1
+  0 174829 4436208531090            5  inst           -> invokeStk1
+  0 174829 4436208531096            6   cmd             -> puts
+  0 174829 4436208531137           40   cmd             <- puts
+  0 174829 4436208531144            6  inst           <- invokeStk1
+  0 174829 4436208531150            5  inst           -> pop
+  0 174829 4436208531155            5  inst           <- pop
+  0 174829 4436208531161            5  inst           -> push1
+  0 174829 4436208531166            5  inst           <- push1
+  0 174829 4436208531172            5  inst           -> push1
+  0 174829 4436208531178            5  inst           <- push1
+  0 174829 4436208531184            5  inst           -> invokeStk1
+  0 174829 4436208531190            6   cmd             -> after
+  0 174829 4436209540924      1009734   cmd             <- after
+  0 174829 4436209540946           21  inst           <- invokeStk1
+  0 174829 4436209540957           11  inst           -> pop
+  0 174829 4436209540967            9  inst           <- pop
+  0 174829 4436209540973            5  inst           -> push1
+  0 174829 4436209540978            5  inst           <- push1
+  0 174829 4436209540984            5  inst           -> invokeStk1
+  0 174829 4436209540995           10   cmd             -> func_c
+  0 174829 4436209541029           34  proc               -> func_c
+  0 174829 4436209541039           10  inst                 -> push1
+  0 174829 4436209541045            5  inst                 <- push1
+  0 174829 4436209541051            5  inst                 -> push1
+  0 174829 4436209541056            5  inst                 <- push1
+  0 174829 4436209541062            5  inst                 -> invokeStk1
+  0 174829 4436209541068            6   cmd                   -> puts
+  0 174829 4436209541111           42   cmd                   <- puts
+  0 174829 4436209541118            7  inst                 <- invokeStk1
+  0 174829 4436209541124            5  inst                 -> pop
+  0 174829 4436209541129            5  inst                 <- pop
+  0 174829 4436209541135            5  inst                 -> push1
+  0 174829 4436209541141            5  inst                 <- push1
+  0 174829 4436209541147            5  inst                 -> push1
+  0 174829 4436209541153            5  inst                 <- push1
+  0 174829 4436209541158            5  inst                 -> invokeStk1
+  0 174829 4436209541165            6   cmd                   -> after
+  0 174829 4436210550785      1009619   cmd                   <- after
+  0 174829 4436210550807           22  inst                 <- invokeStk1
+  0 174829 4436210550819           11  inst                 -> done
+  0 174829 4436210550830           10  inst                 <- done
+  0 174829 4436210550839            9  proc               <- func_c
+  0 174829 4436210550850           11   cmd             <- func_c
+  0 174829 4436210550856            6  inst           <- invokeStk1
+  0 174829 4436210550862            5  inst           -> done
+  0 174829 4436210550868            5  inst           <- done
+  0 174829 4436210550874            6  proc         <- func_b
+  0 174829 4436210550880            6   cmd       <- func_b
+  0 174829 4436210550887            6  inst     <- invokeStk1
+  0 174829 4436210550892            5  inst     -> done
+  0 174829 4436210550898            5  inst     <- done
+  0 174829 4436210550904            6  proc   <- func_a
+  0 174829 4436210550911            6   cmd <- func_a
+  0 174829 4436210550938           27   cmd -> exit
+
+As you can see the output is quite long, and in seven columns.  The first
+column is the CPU the action is on.  The second is the PID.  The third is the
+time since boot in microseconds.  
+
+The fourth column is the number of microseconds that has elapsed between the
+previous line and the current one.
+
+The fifth column is the type of event that occurred (procedure, command or
+instruction).
+
+The sixth and seventh columns are indented by 2 spaces to show when a new
+event occurs.  This shows us which command is calling which.
+
+If the output looks strange, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_proccalls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_proccalls_example.txt
new file mode 100644
index 0000000..ed6820d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_proccalls_example.txt
@@ -0,0 +1,17 @@
+Following are examples of running tcl_proccalls.d.
+
+The output shows what happens when the code from Code/Tcl/func_abc.tcl is
+traced.
+
+# tcl_proccalls.d
+Tracing... Hit Ctrl-C to end.
+^C
+    PID    COUNT PROCEDURE
+  16078        1 func_a
+  16078        1 func_b
+  16078        1 func_c
+  16078        1 tclInit
+
+This simple output shows that PID 16078 was responsible for four procedures
+beginning, one each of func_a, func_b, func_c, and tclInit.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_procflow_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_procflow_example.txt
new file mode 100644
index 0000000..93b822e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_procflow_example.txt
@@ -0,0 +1,29 @@
+The following are examples of tcl_procflow.d.
+
+This is a simple script to trace the flow of Tcl procedures.
+
+Here it traces the example program, Code/Tcl/func_abc.tcl.
+
+# tcl_procflow.d
+  C    PID TIME(us)         -- PROCEDURE
+  0  16073 3904971507502    -> tclInit
+  0  16073 3904971509096    <- tclInit
+  0  16073 3904971509305    -> func_a
+  0  16073 3904972511039      -> func_b
+  0  16073 3904973521023        -> func_c
+  0  16073 3904974530998        <- func_c
+  0  16073 3904974531008      <- func_b
+  0  16073 3904974531014    <- func_a
+^C
+
+As each procedure starts, the third column is indented by 2 spaces. This
+shows which procedure is calling which - the output above begins with an init
+procedure and then shows that func_a began, and then called func_b.
+
+The columns are CPU, PID, Time since boot, indicator and procedure name.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_stat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_stat_example.txt
new file mode 100644
index 0000000..178fef1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_stat_example.txt
@@ -0,0 +1,24 @@
+Following are examples of running tcl_stat.d on Tcl programs.
+
+tcl_stat.d shows you the number of events per second that have happened since
+the last line output.  The default interval is 1 second, but you can specify
+other intervals as arguments to the script.
+
+This shows the sh_stat.d script reflecting the Code/Tcl/func_abc.tcl program.
+
+# tcl_stat.d
+TIME                 EXEC/s   PROC/s    CMD/s OBJNEW/s OBJFRE/s     OP/s
+2007 Sep 26 23:34:36      0        0        0        0        0        0
+2007 Sep 26 23:34:37      1        2       75      911      805      377
+2007 Sep 26 23:34:38      0        1        3        4        2       10
+2007 Sep 26 23:34:39      0        1        3        3        2       10
+2007 Sep 26 23:34:40      0        0        1        7        8        3
+2007 Sep 26 23:34:41      0        0        0        0        0        0
+2007 Sep 26 23:34:42      0        0        0        0        0        0
+^C
+
+ At 2007 Sep 26 23:34:37 we can see that there was one Tcl program executed
+(this number may include those programs without Tcl provider support), two
+procedures called, 75 new commands created, 911 objects created,  805 objects
+freed, and 377 bytecode operations.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_syscalls_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_syscalls_example.txt
new file mode 100644
index 0000000..5553b1c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_syscalls_example.txt
@@ -0,0 +1,66 @@
+The following are examples of sh_syscalls.d.
+
+This is a simple script to count Tcl commands, procedures and system calls.
+
+Here we trace an example program - Code/Tcl/func_abc.tcl.
+
+# tcl_syscalls.d -c './tclsh func_abc.tcl '
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+    PID TYPE     NAME                                                    COUNT
+  16580 cmd      concat                                                      1
+  16580 cmd      exit                                                        1
+  16580 cmd      func_a                                                      1
+  16580 cmd      func_b                                                      1
+  16580 cmd      func_c                                                      1
+  16580 cmd      list                                                        1
+  16580 cmd      rename                                                      1
+  16580 cmd      source                                                      1
+  16580 cmd      tclInit                                                     1
+  16580 cmd      unset                                                       1
+  16580 cmd      uplevel                                                     1
+  16580 cmd      variable                                                    1
+  16580 proc     func_a                                                      1
+  16580 proc     func_b                                                      1
+  16580 proc     func_c                                                      1
+  16580 proc     tclInit                                                     1
+  16580 syscall  getpid                                                      1
+  16580 syscall  getrlimit                                                   1
+  16580 syscall  mmap                                                        1
+  16580 syscall  munmap                                                      1
+  16580 syscall  rexit                                                       1
+  16580 syscall  sigaction                                                   1
+  16580 syscall  sigpending                                                  1
+  16580 syscall  sysi86                                                      1
+  16580 syscall  uname                                                       1
+  16580 cmd      foreach                                                     2
+  16580 cmd      global                                                      2
+  16580 cmd      interp                                                      2
+  16580 cmd      package                                                     2
+  16580 cmd      set                                                         2
+  16580 syscall  setcontext                                                  2
+  16580 syscall  stat64                                                      2
+  16580 syscall  sysconfig                                                   2
+  16580 cmd      after                                                       3
+  16580 cmd      namespace                                                   3
+  16580 cmd      puts                                                        3
+  16580 syscall  pollsys                                                     3
+  16580 syscall  write                                                       3
+  16580 cmd      lappend                                                     4
+  16580 cmd      lsearch                                                     4
+  16580 syscall  close                                                       5
+  16580 syscall  llseek                                                      6
+  16580 cmd      if                                                          8
+  16580 cmd      info                                                       11
+  16580 syscall  read                                                       11
+  16580 cmd      file                                                       12
+  16580 cmd      proc                                                       12
+  16580 syscall  fcntl                                                      12
+  16580 syscall  ioctl                                                      12
+  16580 syscall  open64                                                     14
+  16580 syscall  resolvepath                                                25
+  16580 syscall  brk                                                        27
+  16580 syscall  access                                                     54
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_syscolors_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_syscolors_example.txt
new file mode 100644
index 0000000..b592986
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_syscolors_example.txt
@@ -0,0 +1,563 @@
+The following are examples of tcl_syscolors.d.
+
+This is a simple script to trace the flow of Tcl processes, Tcl commands and
+system calls made, and renders the output in color ("colour") using terminal 
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Tcl/func_abc.tcl.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# tcl_syscolors.d -c './tclsh func_abc.tcl
+Function A
+  C    PID DELTA(us) TYPE     -- NAME
+[2;32m  0  16624         2 syscall  -> munmap[0m
+[2;32m  0  16624        31 syscall  <- munmap[0m
+[2;32m  0  16624        52 syscall  -> mmap[0m
+[2;32m  0  16624        21 syscall  <- mmap[0m
+[2;32m  0  16624        38 syscall  -> setcontext[0m
+[2;32m  0  16624         8 syscall  <- setcontext[0m
+[2;32m  0  16624         8 syscall  -> getrlimit[0m
+[2;32m  0  16624         9 syscall  <- getrlimit[0m
+[2;32m  0  16624         8 syscall  -> getpid[0m
+[2;32m  0  16624         7 syscall  <- getpid[0m
+[2;32m  0  16624        68 syscall  -> setcontext[0m
+[2;32m  0  16624         7 syscall  <- setcontext[0m
+[2;32m  0  16624       177 syscall  -> sigpending[0m
+[2;32m  0  16624         8 syscall  <- sigpending[0m
+[2;32m  0  16624        88 syscall  -> sysconfig[0m
+[2;32m  0  16624         7 syscall  <- sysconfig[0m
+[2;32m  0  16624       107 syscall  -> open64[0m
+[2;32m  0  16624       115 syscall  <- open64[0m
+[2;32m  0  16624        13 syscall  -> ioctl[0m
+[2;32m  0  16624        64 syscall  <- ioctl[0m
+[2;32m  0  16624        16 syscall  -> close[0m
+[2;32m  0  16624        17 syscall  <- close[0m
+[2;32m  0  16624      1208 syscall  -> sysi86[0m
+[2;32m  0  16624         9 syscall  <- sysi86[0m
+[2;32m  0  16624       146 syscall  -> llseek[0m
+[2;32m  0  16624        10 syscall  <- llseek[0m
+[2;32m  0  16624         7 syscall  -> llseek[0m
+[2;32m  0  16624         7 syscall  <- llseek[0m
+[2;32m  0  16624         7 syscall  -> llseek[0m
+[2;32m  0  16624         6 syscall  <- llseek[0m
+[2;32m  0  16624        24 syscall  -> sigaction[0m
+[2;32m  0  16624         8 syscall  <- sigaction[0m
+[2;32m  0  16624        63 syscall  -> brk[0m
+[2;32m  0  16624         9 syscall  <- brk[0m
+[2;32m  0  16624         7 syscall  -> brk[0m
+[2;32m  0  16624        14 syscall  <- brk[0m
+[2;32m  0  16624        76 syscall  -> brk[0m
+[2;32m  0  16624         7 syscall  <- brk[0m
+[2;32m  0  16624         7 syscall  -> brk[0m
+[2;32m  0  16624        12 syscall  <- brk[0m
+[2;32m  0  16624       328 syscall  -> resolvepath[0m
+[2;32m  0  16624        35 syscall  <- resolvepath[0m
+[2;32m  0  16624        24 syscall  -> access[0m
+[2;32m  0  16624        10 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        10 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        11 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        13 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        14 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        16 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> resolvepath[0m
+[2;32m  0  16624        17 syscall  <- resolvepath[0m
+[2;32m  0  16624        32 syscall  -> open64[0m
+[2;32m  0  16624        22 syscall  <- open64[0m
+[2;32m  0  16624        32 syscall  -> resolvepath[0m
+[2;32m  0  16624        18 syscall  <- resolvepath[0m
+[2;32m  0  16624         8 syscall  -> access[0m
+[2;32m  0  16624         8 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624         9 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        11 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        12 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        14 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> resolvepath[0m
+[2;32m  0  16624        15 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        16 syscall  <- open64[0m
+[2;32m  0  16624        30 syscall  -> resolvepath[0m
+[2;32m  0  16624        23 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        21 syscall  <- open64[0m
+[2;32m  0  16624        29 syscall  -> resolvepath[0m
+[2;32m  0  16624        17 syscall  <- resolvepath[0m
+[2;32m  0  16624         8 syscall  -> access[0m
+[2;32m  0  16624         8 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624         9 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        11 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        12 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        14 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> resolvepath[0m
+[2;32m  0  16624        15 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        15 syscall  <- open64[0m
+[2;32m  0  16624        30 syscall  -> resolvepath[0m
+[2;32m  0  16624        20 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        20 syscall  <- open64[0m
+[2;32m  0  16624        29 syscall  -> resolvepath[0m
+[2;32m  0  16624        16 syscall  <- resolvepath[0m
+[2;32m  0  16624         8 syscall  -> access[0m
+[2;32m  0  16624         8 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        10 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        11 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        12 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> resolvepath[0m
+[2;32m  0  16624        14 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        14 syscall  <- open64[0m
+[2;32m  0  16624        28 syscall  -> resolvepath[0m
+[2;32m  0  16624        20 syscall  <- resolvepath[0m
+[2;32m  0  16624         8 syscall  -> access[0m
+[2;32m  0  16624         8 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624         9 syscall  <- access[0m
+[2;32m  0  16624        43 syscall  -> access[0m
+[2;32m  0  16624        12 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        13 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> resolvepath[0m
+[2;32m  0  16624        13 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        14 syscall  <- open64[0m
+[2;32m  0  16624        10 syscall  -> sysconfig[0m
+[2;32m  0  16624         7 syscall  <- sysconfig[0m
+[2;32m  0  16624        33 syscall  -> resolvepath[0m
+[2;32m  0  16624        19 syscall  <- resolvepath[0m
+[2;32m  0  16624         8 syscall  -> access[0m
+[2;32m  0  16624         8 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624         9 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        11 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        13 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        14 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        15 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> resolvepath[0m
+[2;32m  0  16624        17 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        18 syscall  <- open64[0m
+[2;32m  0  16624        30 syscall  -> resolvepath[0m
+[2;32m  0  16624        17 syscall  <- resolvepath[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624         8 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624         9 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        11 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        12 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        14 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> resolvepath[0m
+[2;32m  0  16624        15 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        16 syscall  <- open64[0m
+[2;32m  0  16624        30 syscall  -> resolvepath[0m
+[2;32m  0  16624        21 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        25 syscall  <- open64[0m
+[2;32m  0  16624        15 syscall  -> fcntl[0m
+[2;32m  0  16624         7 syscall  <- fcntl[0m
+[2;32m  0  16624        31 syscall  -> ioctl[0m
+[2;32m  0  16624         8 syscall  <- ioctl[0m
+[2;32m  0  16624        49 syscall  -> brk[0m
+[2;32m  0  16624         8 syscall  <- brk[0m
+[2;32m  0  16624         7 syscall  -> brk[0m
+[2;32m  0  16624        11 syscall  <- brk[0m
+[2;32m  0  16624        30 syscall  -> read[0m
+[2;32m  0  16624        35 syscall  <- read[0m
+[2;32m  0  16624        54 syscall  -> read[0m
+[2;32m  0  16624         8 syscall  <- read[0m
+[2;32m  0  16624        21 syscall  -> close[0m
+[2;32m  0  16624        10 syscall  <- close[0m
+[2;32m  0  16624        51 syscall  -> brk[0m
+[2;32m  0  16624         7 syscall  <- brk[0m
+[2;32m  0  16624         7 syscall  -> brk[0m
+[2;32m  0  16624         9 syscall  <- brk[0m
+[2;32m  0  16624       111 syscall  -> brk[0m
+[2;32m  0  16624         7 syscall  <- brk[0m
+[2;32m  0  16624         7 syscall  -> brk[0m
+[2;32m  0  16624         8 syscall  <- brk[0m
+[2;32m  0  16624        94 syscall  -> uname[0m
+[2;32m  0  16624         8 syscall  <- uname[0m
+[2;32m  0  16624        47 syscall  -> ioctl[0m
+[2;32m  0  16624        35 syscall  <- ioctl[0m
+[2;35m  0  16624        73 cmd      -> if[0m
+[2;35m  0  16624        89 cmd        -> info[0m
+[2;35m  0  16624        25 cmd        <- info[0m
+[2;35m  0  16624        46 cmd        -> proc[0m
+[2;32m  0  16624        11 syscall      -> brk[0m
+[2;32m  0  16624         7 syscall      <- brk[0m
+[2;32m  0  16624         7 syscall      -> brk[0m
+[2;32m  0  16624         9 syscall      <- brk[0m
+[2;35m  0  16624        23 cmd        <- proc[0m
+[2;35m  0  16624         9 cmd      <- if[0m
+[2;35m  0  16624        18 cmd      -> tclInit[0m
+[2;35m  0  16624       223 proc       -> tclInit[0m
+[2;35m  0  16624        12 cmd          -> global[0m
+[2;35m  0  16624        12 cmd          <- global[0m
+[2;35m  0  16624         9 cmd          -> global[0m
+[2;35m  0  16624         9 cmd          <- global[0m
+[2;35m  0  16624         8 cmd          -> rename[0m
+[2;35m  0  16624        24 cmd          <- rename[0m
+[2;35m  0  16624        13 cmd          -> info[0m
+[2;35m  0  16624        12 cmd          <- info[0m
+[2;35m  0  16624        13 cmd          -> info[0m
+[2;35m  0  16624        19 cmd          <- info[0m
+[2;35m  0  16624        11 cmd          -> unset[0m
+[2;35m  0  16624        13 cmd          <- unset[0m
+[2;35m  0  16624         9 cmd          -> concat[0m
+[2;35m  0  16624        15 cmd          <- concat[0m
+[2;35m  0  16624        18 cmd          -> file[0m
+[2;35m  0  16624        20 cmd          <- file[0m
+[2;35m  0  16624         8 cmd          -> file[0m
+[2;32m  0  16624        25 syscall        -> resolvepath[0m
+[2;32m  0  16624        24 syscall        <- resolvepath[0m
+[2;32m  0  16624         9 syscall        -> access[0m
+[2;32m  0  16624         8 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624         9 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        11 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        12 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> resolvepath[0m
+[2;32m  0  16624        14 syscall        <- resolvepath[0m
+[2;32m  0  16624        12 syscall        -> access[0m
+[2;32m  0  16624        13 syscall        <- access[0m
+[2;35m  0  16624         9 cmd          <- file[0m
+[2;35m  0  16624        10 cmd          -> file[0m
+[2;35m  0  16624        12 cmd          <- file[0m
+[2;35m  0  16624         9 cmd          -> file[0m
+[2;32m  0  16624        24 syscall        -> resolvepath[0m
+[2;32m  0  16624        23 syscall        <- resolvepath[0m
+[2;32m  0  16624         8 syscall        -> access[0m
+[2;32m  0  16624         8 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624         9 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        11 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        13 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        14 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        16 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> resolvepath[0m
+[2;32m  0  16624        17 syscall        <- resolvepath[0m
+[2;32m  0  16624        12 syscall        -> access[0m
+[2;32m  0  16624        16 syscall        <- access[0m
+[2;35m  0  16624        29 cmd          <- file[0m
+[2;35m  0  16624        10 cmd          -> file[0m
+[2;35m  0  16624        12 cmd          <- file[0m
+[2;35m  0  16624         9 cmd          -> file[0m
+[2;32m  0  16624        23 syscall        -> resolvepath[0m
+[2;32m  0  16624        20 syscall        <- resolvepath[0m
+[2;32m  0  16624         8 syscall        -> access[0m
+[2;32m  0  16624         9 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        10 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        11 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        13 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        14 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> resolvepath[0m
+[2;32m  0  16624        15 syscall        <- resolvepath[0m
+[2;32m  0  16624        11 syscall        -> access[0m
+[2;32m  0  16624        14 syscall        <- access[0m
+[2;35m  0  16624         7 cmd          <- file[0m
+[2;35m  0  16624         9 cmd          -> file[0m
+[2;35m  0  16624        12 cmd          <- file[0m
+[2;35m  0  16624         9 cmd          -> file[0m
+[2;32m  0  16624        23 syscall        -> resolvepath[0m
+[2;32m  0  16624        20 syscall        <- resolvepath[0m
+[2;32m  0  16624        11 syscall        -> access[0m
+[2;32m  0  16624        19 syscall        <- access[0m
+[2;35m  0  16624         7 cmd          <- file[0m
+[2;35m  0  16624        10 cmd          -> uplevel[0m
+[2;35m  0  16624        13 cmd            -> source[0m
+[2;32m  0  16624        14 syscall          -> stat64[0m
+[2;32m  0  16624        23 syscall          <- stat64[0m
+[2;32m  0  16624        10 syscall          -> open64[0m
+[2;32m  0  16624        23 syscall          <- open64[0m
+[2;32m  0  16624         8 syscall          -> fcntl[0m
+[2;32m  0  16624         7 syscall          <- fcntl[0m
+[2;32m  0  16624         8 syscall          -> ioctl[0m
+[2;32m  0  16624         7 syscall          <- ioctl[0m
+[2;32m  0  16624        26 syscall          -> read[0m
+[2;32m  0  16624        29 syscall          <- read[0m
+[2;32m  0  16624         8 syscall          -> brk[0m
+[2;32m  0  16624         7 syscall          <- brk[0m
+[2;32m  0  16624         7 syscall          -> brk[0m
+[2;32m  0  16624         9 syscall          <- brk[0m
+[2;32m  0  16624        57 syscall          -> read[0m
+[2;32m  0  16624        15 syscall          <- read[0m
+[2;32m  0  16624        55 syscall          -> read[0m
+[2;32m  0  16624        14 syscall          <- read[0m
+[2;32m  0  16624         8 syscall          -> brk[0m
+[2;32m  0  16624         6 syscall          <- brk[0m
+[2;32m  0  16624         7 syscall          -> brk[0m
+[2;32m  0  16624         6 syscall          <- brk[0m
+[2;32m  0  16624         7 syscall          -> brk[0m
+[2;32m  0  16624         8 syscall          <- brk[0m
+[2;32m  0  16624        63 syscall          -> read[0m
+[2;32m  0  16624        14 syscall          <- read[0m
+[2;32m  0  16624        45 syscall          -> read[0m
+[2;32m  0  16624        13 syscall          <- read[0m
+[2;32m  0  16624         8 syscall          -> brk[0m
+[2;32m  0  16624         6 syscall          <- brk[0m
+[2;32m  0  16624         7 syscall          -> brk[0m
+[2;32m  0  16624         6 syscall          <- brk[0m
+[2;32m  0  16624         7 syscall          -> brk[0m
+[2;32m  0  16624         8 syscall          <- brk[0m
+[2;32m  0  16624        63 syscall          -> read[0m
+[2;32m  0  16624        14 syscall          <- read[0m
+[2;32m  0  16624        29 syscall          -> read[0m
+[2;32m  0  16624         7 syscall          <- read[0m
+[2;32m  0  16624        10 syscall          -> close[0m
+[2;32m  0  16624        10 syscall          <- close[0m
+[2;35m  0  16624        18 cmd              -> if[0m
+[2;35m  0  16624        19 cmd                -> info[0m
+[2;35m  0  16624        10 cmd                <- info[0m
+[2;35m  0  16624        12 cmd              <- if[0m
+[2;35m  0  16624        14 cmd              -> package[0m
+[2;35m  0  16624        12 cmd              <- package[0m
+[2;35m  0  16624        15 cmd              -> if[0m
+[2;35m  0  16624        12 cmd                -> info[0m
+[2;35m  0  16624         9 cmd                <- info[0m
+[2;35m  0  16624        26 cmd                -> info[0m
+[2;35m  0  16624        16 cmd                <- info[0m
+[2;35m  0  16624        10 cmd              <- if[0m
+[2;35m  0  16624        21 cmd              -> namespace[0m
+[2;35m  0  16624        87 cmd                -> variable[0m
+[2;35m  0  16624        10 cmd                <- variable[0m
+[2;35m  0  16624         9 cmd                -> info[0m
+[2;35m  0  16624        13 cmd                <- info[0m
+[2;35m  0  16624         9 cmd                -> info[0m
+[2;35m  0  16624         8 cmd                <- info[0m
+[2;35m  0  16624         8 cmd                -> info[0m
+[2;35m  0  16624         8 cmd                <- info[0m
+[2;35m  0  16624         9 cmd                -> file[0m
+[2;35m  0  16624        21 cmd                <- file[0m
+[2;35m  0  16624         9 cmd                -> list[0m
+[2;35m  0  16624        17 cmd                <- list[0m
+[2;35m  0  16624         8 cmd                -> foreach[0m
+[2;35m  0  16624        27 cmd                  -> lsearch[0m
+[2;35m  0  16624        10 cmd                  <- lsearch[0m
+[2;35m  0  16624        10 cmd                  -> lappend[0m
+[2;35m  0  16624         9 cmd                  <- lappend[0m
+[2;35m  0  16624        11 cmd                  -> lsearch[0m
+[2;35m  0  16624         8 cmd                  <- lsearch[0m
+[2;35m  0  16624         8 cmd                  -> lappend[0m
+[2;35m  0  16624         8 cmd                  <- lappend[0m
+[2;35m  0  16624         8 cmd                <- foreach[0m
+[2;35m  0  16624         8 cmd                -> info[0m
+[2;35m  0  16624        10 cmd                <- info[0m
+[2;35m  0  16624         8 cmd                -> file[0m
+[2;32m  0  16624        15 syscall              -> brk[0m
+[2;32m  0  16624         7 syscall              <- brk[0m
+[2;32m  0  16624         7 syscall              -> brk[0m
+[2;32m  0  16624         9 syscall              <- brk[0m
+[2;35m  0  16624        24 cmd                <- file[0m
+[2;35m  0  16624         9 cmd                -> file[0m
+[2;35m  0  16624        19 cmd                <- file[0m
+[2;35m  0  16624         9 cmd                -> file[0m
+[2;35m  0  16624        11 cmd                <- file[0m
+[2;35m  0  16624        10 cmd                -> lsearch[0m
+[2;35m  0  16624         8 cmd                <- lsearch[0m
+[2;35m  0  16624         9 cmd                -> lappend[0m
+[2;35m  0  16624         8 cmd                <- lappend[0m
+[2;35m  0  16624         8 cmd                -> info[0m
+[2;35m  0  16624         8 cmd                <- info[0m
+[2;35m  0  16624         9 cmd                -> foreach[0m
+[2;35m  0  16624        12 cmd                  -> lsearch[0m
+[2;35m  0  16624         8 cmd                  <- lsearch[0m
+[2;35m  0  16624         8 cmd                  -> lappend[0m
+[2;35m  0  16624         8 cmd                  <- lappend[0m
+[2;35m  0  16624         8 cmd                <- foreach[0m
+[2;35m  0  16624         8 cmd              <- namespace[0m
+[2;35m  0  16624        30 cmd              -> if[0m
+[2;35m  0  16624        22 cmd                -> interp[0m
+[2;35m  0  16624        17 cmd                <- interp[0m
+[2;35m  0  16624        11 cmd              <- if[0m
+[2;35m  0  16624        15 cmd              -> package[0m
+[2;35m  0  16624         8 cmd              <- package[0m
+[2;35m  0  16624        13 cmd              -> if[0m
+[2;35m  0  16624        12 cmd                -> interp[0m
+[2;35m  0  16624         8 cmd                <- interp[0m
+[2;35m  0  16624        44 cmd              <- if[0m
+[2;35m  0  16624        21 cmd              -> if[0m
+[2;35m  0  16624        15 cmd                -> namespace[0m
+[2;35m  0  16624        10 cmd                <- namespace[0m
+[2;35m  0  16624         9 cmd              <- if[0m
+[2;35m  0  16624        13 cmd              -> set[0m
+[2;35m  0  16624         9 cmd              <- set[0m
+[2;35m  0  16624        10 cmd              -> set[0m
+[2;35m  0  16624         8 cmd              <- set[0m
+[2;35m  0  16624        12 cmd              -> if[0m
+[2;35m  0  16624        14 cmd                -> namespace[0m
+[2;35m  0  16624         8 cmd                <- namespace[0m
+[2;35m  0  16624        13 cmd                -> proc[0m
+[2;35m  0  16624        12 cmd                <- proc[0m
+[2;35m  0  16624         8 cmd              <- if[0m
+[2;35m  0  16624        69 cmd              -> proc[0m
+[2;35m  0  16624        11 cmd              <- proc[0m
+[2;35m  0  16624        20 cmd              -> proc[0m
+[2;35m  0  16624        12 cmd              <- proc[0m
+[2;32m  0  16624        22 syscall          -> brk[0m
+[2;32m  0  16624         7 syscall          <- brk[0m
+[2;32m  0  16624         7 syscall          -> brk[0m
+[2;32m  0  16624         6 syscall          <- brk[0m
+[2;32m  0  16624         7 syscall          -> brk[0m
+[2;32m  0  16624         9 syscall          <- brk[0m
+[2;35m  0  16624        18 cmd              -> proc[0m
+[2;35m  0  16624        10 cmd              <- proc[0m
+[2;35m  0  16624        21 cmd              -> proc[0m
+[2;35m  0  16624        11 cmd              <- proc[0m
+[2;35m  0  16624        16 cmd              -> proc[0m
+[2;35m  0  16624        10 cmd              <- proc[0m
+[2;35m  0  16624        42 cmd              -> if[0m
+[2;35m  0  16624        25 cmd                -> proc[0m
+[2;32m  0  16624         9 syscall              -> brk[0m
+[2;32m  0  16624         6 syscall              <- brk[0m
+[2;32m  0  16624         7 syscall              -> brk[0m
+[2;32m  0  16624         9 syscall              <- brk[0m
+[2;35m  0  16624        21 cmd                <- proc[0m
+[2;35m  0  16624         9 cmd              <- if[0m
+[2;35m  0  16624        41 cmd              -> proc[0m
+[2;35m  0  16624        13 cmd              <- proc[0m
+[2;35m  0  16624         9 cmd            <- source[0m
+[2;35m  0  16624         8 cmd          <- uplevel[0m
+[2;35m  0  16624        10 proc       <- tclInit[0m
+[2;35m  0  16624        17 cmd      <- tclInit[0m
+[2;32m  0  16624        35 syscall  -> resolvepath[0m
+[2;32m  0  16624        31 syscall  <- resolvepath[0m
+[2;32m  0  16624        13 syscall  -> stat64[0m
+[2;32m  0  16624        24 syscall  <- stat64[0m
+[2;32m  0  16624         9 syscall  -> open64[0m
+[2;32m  0  16624        23 syscall  <- open64[0m
+[2;32m  0  16624         8 syscall  -> fcntl[0m
+[2;32m  0  16624         7 syscall  <- fcntl[0m
+[2;32m  0  16624         9 syscall  -> ioctl[0m
+[2;32m  0  16624         7 syscall  <- ioctl[0m
+[2;32m  0  16624        12 syscall  -> read[0m
+[2;32m  0  16624        21 syscall  <- read[0m
+[2;32m  0  16624        10 syscall  -> read[0m
+[2;32m  0  16624         7 syscall  <- read[0m
+[2;32m  0  16624         9 syscall  -> close[0m
+[2;32m  0  16624         8 syscall  <- close[0m
+[2;35m  0  16624        12 cmd      -> proc[0m
+[2;35m  0  16624        11 cmd      <- proc[0m
+[2;35m  0  16624        11 cmd      -> proc[0m
+[2;35m  0  16624         9 cmd      <- proc[0m
+[2;35m  0  16624        11 cmd      -> proc[0m
+[2;35m  0  16624         9 cmd      <- proc[0m
+[2;35m  0  16624         9 cmd      -> func_a[0m
+[2;35m  0  16624        17 proc       -> func_a[0m
+[2;35m  0  16624        10 cmd          -> puts[0m
+[2;32m  0  16624        25 syscall        -> llseek[0m
+[2;32m  0  16624         9 syscall        <- llseek[0m
+[2;32m  0  16624         9 syscall        -> ioctl[0m
+[2;32m  0  16624         6 syscall        <- ioctl[0m
+[2;32m  0  16624        13 syscall        -> getsockname[0m
+[2;32m  0  16624         8 syscall        <- getsockname[0m
+[2;32m  0  16624        18 syscall        -> llseek[0m
+[2;32m  0  16624         8 syscall        <- llseek[0m
+[2;32m  0  16624         7 syscall        -> ioctl[0m
+[2;32m  0  16624        86 syscall        <- ioctl[0m
+[2;32m  0  16624       184 syscall        -> ioctl[0m
+[2;32m  0  16624        17 syscall        <- ioctl[0m
+[2;32m  0  16624        14 syscall        -> llseek[0m
+[2;32m  0  16624         7 syscall        <- llseek[0m
+[2;32m  0  16624         7 syscall        -> ioctl[0m
+[2;32m  0  16624        13 syscall        <- ioctl[0m
+[2;32m  0  16624         8 syscall        -> ioctl[0m
+[2;32m  0  16624        12 syscall        <- ioctl[0m
+[2;32m  0  16624        24 syscall        -> write[0m
+[2;32m  0  16624       108 syscall        <- write[0m
+[2;35m  0  16624        10 cmd          <- puts[0m
+[2;35m  0  16624        11 cmd          -> after[0m
+[2;32m  0  16624        23 syscall        -> pollsys[0m
+Function B
+[2;32m  0  16624   1009593 syscall        <- pollsys[0m
+[2;35m  0  16624        24 cmd          <- after[0m
+[2;35m  0  16624        23 cmd          -> func_b[0m
+[2;35m  0  16624        37 proc           -> func_b[0m
+[2;35m  0  16624        12 cmd              -> puts[0m
+[2;32m  0  16624        17 syscall            -> write[0m
+[2;32m  0  16624        74 syscall            <- write[0m
+[2;35m  0  16624         8 cmd              <- puts[0m
+[2;35m  0  16624         9 cmd              -> after[0m
+[2;32m  0  16624        10 syscall            -> pollsys[0m
+Function C
+[2;32m  0  16624   1009748 syscall            <- pollsys[0m
+[2;35m  0  16624        24 cmd              <- after[0m
+[2;35m  0  16624        23 cmd              -> func_c[0m
+[2;35m  0  16624        35 proc               -> func_c[0m
+[2;35m  0  16624        12 cmd                  -> puts[0m
+[2;32m  0  16624        17 syscall                -> write[0m
+[2;32m  0  16624        75 syscall                <- write[0m
+[2;35m  0  16624         8 cmd                  <- puts[0m
+[2;35m  0  16624         9 cmd                  -> after[0m
+[2;32m  0  16624        10 syscall                -> pollsys[0m
+[2;32m  0  16624   1009831 syscall                <- pollsys[0m
+[2;35m  0  16624        24 cmd                  <- after[0m
+[2;35m  0  16624        23 proc               <- func_c[0m
+[2;35m  0  16624        13 cmd              <- func_c[0m
+[2;35m  0  16624         9 proc           <- func_b[0m
+[2;35m  0  16624         8 cmd          <- func_b[0m
+[2;35m  0  16624         8 proc       <- func_a[0m
+[2;35m  0  16624         8 cmd      <- func_a[0m
+[2;35m  0  16624        30 cmd      -> exit[0m
+[2;32m  0  16624        41 syscall    -> fcntl[0m
+[2;32m  0  16624        11 syscall    <- fcntl[0m
+[2;32m  0  16624         7 syscall    -> fcntl[0m
+[2;32m  0  16624         7 syscall    <- fcntl[0m
+[2;32m  0  16624         7 syscall    -> fcntl[0m
+[2;32m  0  16624         6 syscall    <- fcntl[0m
+[2;32m  0  16624        11 syscall    -> fcntl[0m
+[2;32m  0  16624         6 syscall    <- fcntl[0m
+[2;32m  0  16624         7 syscall    -> fcntl[0m
+[2;32m  0  16624         6 syscall    <- fcntl[0m
+[2;32m  0  16624         7 syscall    -> fcntl[0m
+[2;32m  0  16624         6 syscall    <- fcntl[0m
+[2;32m  0  16624         9 syscall    -> fcntl[0m
+[2;32m  0  16624         7 syscall    <- fcntl[0m
+[2;32m  0  16624         7 syscall    -> fcntl[0m
+[2;32m  0  16624         6 syscall    <- fcntl[0m
+[2;32m  0  16624         7 syscall    -> fcntl[0m
+[2;32m  0  16624         6 syscall    <- fcntl[0m
+[2;32m  0  16624        81 syscall    -> open64[0m
+[2;32m  0  16624       119 syscall    <- open64[0m
+[2;32m  0  16624         8 syscall    -> ioctl[0m
+[2;32m  0  16624         8 syscall    <- ioctl[0m
+[2;32m  0  16624        10 syscall    -> close[0m
+[2;32m  0  16624        16 syscall    <- close[0m
+[2;32m  0  16624        68 syscall    -> rexit[0m
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_who_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_who_example.txt
new file mode 100644
index 0000000..d1eefa3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcl_who_example.txt
@@ -0,0 +1,17 @@
+The following is an example of running tcl_who.d.
+
+The output produces four fields of interest in tracing tcl calls by process.
+
+Here we see it running while Code/Tcl/func_slow.tcl and Code/Tcl/func_abc.tcl
+are executed.  
+# tcl_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+      PID    UID  CALLS ARGS                                                   
+    16063    100     83 ./tclsh scripts/func_slow.tcl                          
+    16061    100     86 ./tclsh scripts/func_abc.tcl  
+
+CALLS is a measure of activity, and is a count of the procedures and commands
+that Tcl called.  The ARGS column shows the process name and arguments given
+for a particular PID in order to identify the particular Tcl code involved.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpsnoop_d_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpsnoop_d_example.txt
new file mode 100644
index 0000000..a0a8cc8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpsnoop_d_example.txt
@@ -0,0 +1,41 @@
+The following is a demonstration of the tcpsnoop script.
+
+
+
+Here we run tcpsnoop and wait for new TCP connections to be established,
+
+   # tcpsnoop.d
+     UID    PID LADDR           LPORT DR RADDR           RPORT  SIZE CMD
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    66 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    56 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79   606 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 -> 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    78 inetd
+       0    242 192.168.1.5        23 -> 192.168.1.1     54224    54 inetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    57 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    78 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    57 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    63 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    72 in.telnetd
+   [...]
+
+As new connections are made, each of the TCP packets are traced along with
+the UID, PID and command name.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpsnoop_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpsnoop_example.txt
new file mode 100644
index 0000000..1124175
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpsnoop_example.txt
@@ -0,0 +1,61 @@
+The following is a demonstration of the tcpsnoop program.
+
+
+
+Here we run tcpsnoop and wait for new TCP connections to be established,
+
+   # tcpsnoop
+     UID    PID LADDR           LPORT DR RADDR           RPORT  SIZE CMD
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    66 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    56 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79   606 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 -> 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    78 inetd
+       0    242 192.168.1.5        23 -> 192.168.1.1     54224    54 inetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    57 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    78 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    57 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    63 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    72 in.telnetd
+   [...]
+
+As new connections are made, each of the TCP packets are traced along with
+the UID, PID and command name.
+
+
+
+tcpsnoop has many options, for example here we use "-v" to print times,
+
+   # tcpsnoop -v
+   STRTIME                UID    PID LADDR           LPORT DR RADDR           RPORT  SIZE CMD
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 <- 192.168.1.1     49001    54 inetd
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 -> 192.168.1.1     49001    54 inetd
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 <- 192.168.1.1     49001    54 inetd
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 <- 192.168.1.1     49001    56 inetd
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 -> 192.168.1.1     49001    54 inetd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 -> 192.168.1.1     49001   444 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 -> 192.168.1.1     49001    54 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 <- 192.168.1.1     49001    54 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 <- 192.168.1.1     49001    54 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 <- 192.168.1.1     49001    54 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 -> 192.168.1.1     49001    54 in.fingerd
+   [...]
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpsnoop_snv_d_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpsnoop_snv_d_example.txt
new file mode 100644
index 0000000..a0a8cc8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpsnoop_snv_d_example.txt
@@ -0,0 +1,41 @@
+The following is a demonstration of the tcpsnoop script.
+
+
+
+Here we run tcpsnoop and wait for new TCP connections to be established,
+
+   # tcpsnoop.d
+     UID    PID LADDR           LPORT DR RADDR           RPORT  SIZE CMD
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    66 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    56 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79   606 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 -> 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    78 inetd
+       0    242 192.168.1.5        23 -> 192.168.1.1     54224    54 inetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    57 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    78 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    57 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    63 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    72 in.telnetd
+   [...]
+
+As new connections are made, each of the TCP packets are traced along with
+the UID, PID and command name.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpsnoop_snv_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpsnoop_snv_example.txt
new file mode 100644
index 0000000..1124175
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpsnoop_snv_example.txt
@@ -0,0 +1,61 @@
+The following is a demonstration of the tcpsnoop program.
+
+
+
+Here we run tcpsnoop and wait for new TCP connections to be established,
+
+   # tcpsnoop
+     UID    PID LADDR           LPORT DR RADDR           RPORT  SIZE CMD
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    66 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    56 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79   606 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 -> 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    78 inetd
+       0    242 192.168.1.5        23 -> 192.168.1.1     54224    54 inetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    57 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    78 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    57 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    63 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    72 in.telnetd
+   [...]
+
+As new connections are made, each of the TCP packets are traced along with
+the UID, PID and command name.
+
+
+
+tcpsnoop has many options, for example here we use "-v" to print times,
+
+   # tcpsnoop -v
+   STRTIME                UID    PID LADDR           LPORT DR RADDR           RPORT  SIZE CMD
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 <- 192.168.1.1     49001    54 inetd
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 -> 192.168.1.1     49001    54 inetd
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 <- 192.168.1.1     49001    54 inetd
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 <- 192.168.1.1     49001    56 inetd
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 -> 192.168.1.1     49001    54 inetd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 -> 192.168.1.1     49001   444 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 -> 192.168.1.1     49001    54 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 <- 192.168.1.1     49001    54 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 <- 192.168.1.1     49001    54 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 <- 192.168.1.1     49001    54 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 -> 192.168.1.1     49001    54 in.fingerd
+   [...]
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpstat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpstat_example.txt
new file mode 100644
index 0000000..d7d8cb3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpstat_example.txt
@@ -0,0 +1,22 @@
+The following is a demonstration of the tcpstat.d script,
+
+
+Here we run tcpstat.d as a large file is downloaded,
+
+   # tcpstat.d 
+       TCP_out   TCP_outRe      TCP_in   TCP_inDup    TCP_inUn
+             0           0           0           0           0
+            20           0        1540           0           0
+           632           0         576           0           0
+           560           0      115552           0           0
+          1872           0     2900480           0           0
+          1968           0     3032320           0           0
+          1776           0     2752160           0           0
+           752           0      999824           0           0
+             0           0           0           0           0
+             0           0           0           0           0
+             0           0           0           0           0
+   ^C
+
+We can see the TCP_in value rise to around 3 Mb/sec as the download occurs. 
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcptop_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcptop_example.txt
new file mode 100644
index 0000000..c90fc75
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcptop_example.txt
@@ -0,0 +1,28 @@
+The following is a demonstration of the tcptop command,
+
+
+tcptop will display info on newly established TCP connections,
+
+   # tcptop -C 10
+   Tracing... Please wait.
+   2005 Jul  5 04:55:25,  load: 1.11,  TCPin:      2 KB,  TCPout:    110 KB
+   
+    UID    PID LADDR           LPORT FADDR           FPORT      SIZE NAME
+    100  20876 192.168.1.5     36396 192.168.1.1        79      1160 finger
+    100  20875 192.168.1.5     36395 192.168.1.1        79      1160 finger
+    100  20878 192.168.1.5     36397 192.168.1.1        23      1303 telnet
+    100  20877 192.168.1.5       859 192.168.1.1       514    115712 rcp
+   
+   2005 Jul  5 04:55:35,  load: 1.10,  TCPin:      0 KB,  TCPout:      0 KB
+   
+    UID    PID LADDR           LPORT FADDR           FPORT      SIZE NAME
+      0    242 192.168.1.5        79 192.168.1.1     54220       272 inetd
+      0  20879 192.168.1.5        79 192.168.1.1     54220       714 in.fingerd
+   
+   [...]
+
+
+In the above output, we run it with a 10 second interval and with -C so
+that the screen does not clear. Some traffic was captured, around 110 Kbytes
+by the rcp process (PID 20877), etc.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcptop_snv_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcptop_snv_example.txt
new file mode 100644
index 0000000..c90fc75
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcptop_snv_example.txt
@@ -0,0 +1,28 @@
+The following is a demonstration of the tcptop command,
+
+
+tcptop will display info on newly established TCP connections,
+
+   # tcptop -C 10
+   Tracing... Please wait.
+   2005 Jul  5 04:55:25,  load: 1.11,  TCPin:      2 KB,  TCPout:    110 KB
+   
+    UID    PID LADDR           LPORT FADDR           FPORT      SIZE NAME
+    100  20876 192.168.1.5     36396 192.168.1.1        79      1160 finger
+    100  20875 192.168.1.5     36395 192.168.1.1        79      1160 finger
+    100  20878 192.168.1.5     36397 192.168.1.1        23      1303 telnet
+    100  20877 192.168.1.5       859 192.168.1.1       514    115712 rcp
+   
+   2005 Jul  5 04:55:35,  load: 1.10,  TCPin:      0 KB,  TCPout:      0 KB
+   
+    UID    PID LADDR           LPORT FADDR           FPORT      SIZE NAME
+      0    242 192.168.1.5        79 192.168.1.1     54220       272 inetd
+      0  20879 192.168.1.5        79 192.168.1.1     54220       714 in.fingerd
+   
+   [...]
+
+
+In the above output, we run it with a 10 second interval and with -C so
+that the screen does not clear. Some traffic was captured, around 110 Kbytes
+by the rcp process (PID 20877), etc.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpwdist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpwdist_example.txt
new file mode 100644
index 0000000..02a392c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/tcpwdist_example.txt
@@ -0,0 +1,70 @@
+The following is a demonstration of the tcpwdist.d script.
+
+
+Here the tcpwdist.d script is run for a few seconds then Ctrl-C is hit,
+
+   # tcpwdist.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    PID: 15300  CMD: finger @mars\0
+   
+              value  ------------- Distribution ------------- count
+                 -1 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@                     1
+                  1 |                                         0
+                  2 |@@@@@@@@@@@@@@@@@@@@                     1
+                  4 |                                         0
+   
+    PID: 4967   CMD: /usr/lib/ssh/sshd\0
+   
+              value  ------------- Distribution ------------- count
+                 16 |                                         0
+                 32 |@@@@@@@@@@@@@@@@@@@@                     1
+                 64 |@@@@@@@@@@@@@@@@@@@@                     1
+                128 |                                         0
+   
+    PID: 9172   CMD: /usr/lib/ssh/sshd\0
+   
+              value  ------------- Distribution ------------- count
+                 16 |                                         0
+                 32 |@@@@@@@@                                 4
+                 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@            14
+                128 |                                         0
+                256 |                                         0
+                512 |@@                                       1
+               1024 |                                         0
+   
+    PID: 15301  CMD: rcp 1Mb.gz mars:/tmp\0
+   
+              value  ------------- Distribution ------------- count
+                  0 |                                         0
+                  1 |@                                        2
+                  2 |@                                        1
+                  4 |                                         0
+                  8 |@                                        2
+                 16 |@                                        2
+                 32 |                                         0
+                 64 |                                         0
+                128 |                                         0
+                256 |                                         0
+                512 |                                         0
+               1024 |                                         0
+               2048 |                                         0
+               4096 |                                         0
+               8192 |                                         0
+              16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     64
+              32768 |                                         0
+
+In the above output we can see the "rcp" command dominates, sending 
+large writes (16 to 31 Kb) 64 times. The "sshd" ssh daemons each sent
+several smaller writes, from 32 to 127 bytes - which corresponds to 
+command line activity (eg, screen width of 80 bytes). The finger command
+sent 2 bytes once, and zero data bytes once.
+
+These values are the TCP write payload sizes.
+
+The writes from the "rcp" command seem unusual at over 16 Kb each, when
+this is an Ethernet network with an MTU of 1500 bytes. The reason is that
+at this point the data has not yet been broken down into MTU sized packets,
+so we are looking at the applications behaviour as it writes to TCP.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/threaded_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/threaded_example.txt
new file mode 100644
index 0000000..1e41a0e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/threaded_example.txt
@@ -0,0 +1,108 @@
+The following is a demonstration of the threaded.d script,
+
+
+Here we run a test program called "cputhread" that creates 4 busy threads
+that run at the same time. Here we run it on a server with only 1 CPU,
+
+   # threaded.d
+   
+   2005 Jul 26 02:56:37,
+   
+     PID: 8516     CMD: cputhread
+   
+              value  ------------- Distribution ------------- count
+                  1 |                                         0
+                  2 |@@@@@@@                                  17
+                  3 |@@@@@@@@@@@                              28
+                  4 |@@@@@@@@@@@                              27
+                  5 |@@@@@@@@@@@                              28
+                  6 |                                         0
+   [...]
+
+In the above output, we can see that cputhread has four busy threads with 
+thread IDs 2, 3, 4 and 5. We are sampling at 100 Hertz, and have caught 
+each of these threads on the CPU between 17 and 28 times.
+
+Since the above counts add to 100, this is either a sign of a single CPU
+server (which it is), or a sign that a multithreaded application may be
+running "serialised" - only 1 thread at a time. Compare the above output
+to a multi CPU server,
+
+
+
+Here we run the same test program on a server with 4 CPUs,
+
+   # threaded.d
+   
+   2005 Jul 26 02:48:44,
+   
+     PID: 5218     CMD: cputhread
+   
+              value  ------------- Distribution ------------- count
+                  1 |                                         0
+                  2 |@@@@@@@@@@@                              80
+                  3 |@@@@@@@@@@                               72
+                  4 |@@@@@@@@@                                64
+                  5 |@@@@@@@@@@@                              78
+                  6 |                                         0
+   [...]
+
+This time the counts add to equal 294, so this program is definitely
+running on multiple CPUs at the same time, otherwise this total would
+not be beyond our sample rate of 100. The distribution of threads on CPU
+is fairly even, and the above serves as an example of a multithreaded
+application performing well.
+
+
+
+Now we run a test program called "cpuserial", which also create 4 busy
+threads, however due to a coding problem (poor use of mutex locks) they 
+only run one at a time,
+
+   # threaded.d
+
+   2005 Jul 26 03:07:21,
+   
+     PID: 5238     CMD: cpuserial
+   
+              value  ------------- Distribution ------------- count
+                  2 |                                         0
+                  3 |@@@@@@@@@@@@                             30
+                  4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@             70
+                  5 |                                         0
+   [...]
+
+The above looks like we are back on a single CPU server with 100 samples
+in total, however we are still on our 4 CPU server. Only two threads have
+run, and the above distribution is a good indication that they have
+run serialised.
+
+
+
+Now more of a fringe case. This version of cpuserial again creates 4 threads
+that are all busy and hungry for the CPU, and again we run it on a 4 CPU
+server,
+
+   # threaded.d
+   
+   2005 Jul 26 03:25:45,
+   
+     PID: 5280     CMD: cpuserial
+
+              value  ------------- Distribution ------------- count
+                  1 |                                         0
+                  2 |@@@@@@@@@@@@@@@                          42
+                  3 |@@@@@@@@@@@@@@@@@@                       50
+                  4 |@@@@@@                                   15
+                  5 |@                                        2
+                  6 |                                         0
+   [...]
+
+So all threads are running, good. And with a total of 109, at some point
+more than one thread was running at the same time (otherwise this would
+not have exceeded 100, bearing in mind a sample rate of 100 Hertz). However,
+what is not so good is that with 4 CPUs we have only scored 109 samples - 
+since all threads are CPU hungry we'd hope that more often they could
+run across the CPUs simultaneously; however this wasn't the case. Again,
+this fault was created by poor use of mutex locks.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/topsyscall_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/topsyscall_example.txt
new file mode 100644
index 0000000..dda1aa0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/topsyscall_example.txt
@@ -0,0 +1,65 @@
+The following is a demonstration of the topsyscall command,
+
+
+Here topsyscall is run with no arguments,
+
+   # topsyscall
+   2005 Jun 13 22:13:21, load average: 1.24, 1.24, 1.22   syscalls: 1287
+   
+      SYSCALL                          COUNT
+      getgid                               4
+      getuid                               5
+      waitsys                              5
+      xstat                                7
+      munmap                               7
+      sysconfig                            8
+      brk                                  8
+      setcontext                           8
+      open                                 8
+      getpid                               9
+      close                                9
+      resolvepath                         10
+      lwp_sigmask                         22
+      mmap                                26
+      lwp_park                            43
+      read                                59
+      write                               72
+      sigaction                          113
+      pollsys                            294
+      ioctl                              520
+
+The screen updates every second, and continues until Ctrl-C is hit to 
+end the program.
+
+In the above output we can see that the ioctl() system call occured 520 times,
+pollsys() 294 times and sigaction() 113 times.
+
+
+
+Here the command is run with a 10 second interval,
+
+   # topsyscall 10
+   2005 Jun 13 22:15:35, load average: 1.21, 1.22, 1.22   syscalls: 10189
+   
+      SYSCALL                          COUNT
+      writev                               6
+      close                                7
+      lseek                                7
+      open                                 7
+      brk                                  8
+      nanosleep                            9
+      portfs                              10
+      llseek                              14
+      lwp_cond_wait                       21
+      p_online                            21
+      gtime                               27
+      rusagesys                           71
+      setcontext                          92
+      lwp_sigmask                         98
+      setitimer                          183
+      lwp_park                           375
+      write                              438
+      read                               551
+      pollsys                           3071
+      ioctl                             5144
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/topsysproc_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/topsysproc_example.txt
new file mode 100644
index 0000000..368ea31
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/topsysproc_example.txt
@@ -0,0 +1,56 @@
+The following is a demonstration of the topsysproc program,
+
+
+Here we run topsysproc with no arguments,
+
+   # topsysproc
+   2005 Jun 13 22:25:16, load average: 1.24, 1.23, 1.21   syscalls: 1347
+   
+      PROCESS                          COUNT
+      svc.startd                           1
+      nscd                                 1
+      setiathome                           7
+      poold                               18
+      sshd                                21
+      java_vm                             35
+      tput                                49
+      dtrace                              56
+      Xorg                               108
+      sh                                 110
+      clear                              122
+      mozilla-bin                        819
+
+The screen refreshes every 1 second, which can be changed by specifying
+a different interval at the command line.
+
+In the above output we can see that processes with the name "mozilla-bin"
+made 819 system calls, while processes with the name "clear" made 122.
+
+
+
+Now topsysproc is run with a 15 second interval,
+
+   # topsysproc 15
+   2005 Jun 13 22:29:43, load average: 1.19, 1.20, 1.20   syscalls: 15909
+   
+      PROCESS                          COUNT
+      fmd                                  1
+      inetd                                2
+      svc.configd                          2
+      gconfd-2                             3
+      miniserv.pl                          3
+      sac                                  6
+      snmpd                                6
+      sshd                                 8
+      automountd                           8
+      ttymon                               9
+      svc.startd                          17
+      nscd                                21
+      in.routed                           37
+      sendmail                            41
+      setiathome                         205
+      poold                              293
+      dtrace                             413
+      java_vm                            529
+      Xorg                              1234
+      mozilla-bin                      13071
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/udpstat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/udpstat_example.txt
new file mode 100644
index 0000000..4ffa3ba
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/udpstat_example.txt
@@ -0,0 +1,39 @@
+The following is an example of the udpstat.d script,
+
+
+
+Here we run udpstat for a few seconds. Firstly, we run a "spray" command
+outbound, followed by a spray inbound. Both can be identified in the 
+output below,
+
+   # udpstat.d
+       UDP_out  UDP_outErr      UDP_in   UDP_inErr  UDP_noPort
+             0           0           0           0           1
+             0           0           0           0           2
+             0           0           0           0           0
+          1165           0           2           0           0
+             0           0           0           0           0
+             0           0           0           0           2
+             3           0        1166           0           1
+             0           0           0           0           0
+             0           0           0           0           0
+             0           0           0           0           0
+   ^C
+
+
+
+Here we run udpstat.d while an outbound DNS lookup is performed using
+"nslookup",
+
+   # udpstat.d
+       UDP_out  UDP_outErr      UDP_in   UDP_inErr  UDP_noPort
+             0           0           0           0           1
+             0           0           0           0           1
+             1           0           1           0           0
+             0           0           0           0           0
+             0           0           0           0           3
+   ^C
+
+Little output is observed as this tracks datagrams not bytes. There is 
+one outbound and one inbound datagram.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/uname-a_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/uname-a_example.txt
new file mode 100644
index 0000000..281033d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/uname-a_example.txt
@@ -0,0 +1,15 @@
+The following is a demonstration of the uname.d script,
+
+
+Here we run the usual "uname -a" command and compare the output to that
+given by the uname.d script,
+
+   # uname -a
+   SunOS jupiter 5.10 Generic i86pc i386 i86pc
+   
+   # ./uname-a.d
+   SunOS jupiter 5.10 Generic i86pc i386 i86pc
+
+The output is the same. uname-a.d is intended as a demonstration script,
+and as a starting point for other scripts.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/vmbypid_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/vmbypid_example.txt
new file mode 100644
index 0000000..9e09b83
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/vmbypid_example.txt
@@ -0,0 +1,32 @@
+The following is a demonstration of the vmbypid.d command,
+
+   # vmbypid.d 
+   Tracing... Hit Ctrl-C to end.
+   ^C
+               EXEC      PID                     VM    VALUE
+               find    19216             prot_fault        1
+               bash    19216                   zfod        1
+             dtrace    19215                 pgfrec        3
+             dtrace    19215                  pgrec        3
+               bash    19216                 pgfrec        5
+               bash    19216                  pgrec        5
+               find    19216              cow_fault        6
+               find    19216                 pgfrec        6
+               find    19216                  pgrec        6
+               bash    19216             prot_fault       10
+               bash    19216              cow_fault       15
+               bash    19155             prot_fault       30
+             dtrace    19215                   zfod       52
+               find    19216                   zfod       54
+             dtrace    19215               as_fault       56
+               bash    19216               as_fault       74
+               find    19216               as_fault       91
+               find    19216                 fspgin      315
+               find    19216                   pgin      315
+               find    19216                 pgpgin      315
+               find    19216              maj_fault      315
+
+In the above output, the find command at PID 19211 triggered 315 maj_faults -
+major faults, that would require disk activity to satisfy (as confirmed by the
+pgpgin value for pages paged in).
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/vmstat-p_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/vmstat-p_example.txt
new file mode 100644
index 0000000..1a0fe14
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/vmstat-p_example.txt
@@ -0,0 +1,51 @@
+The following is a demonstration of the vmstat-p.d script,
+
+
+We run both vmstat-p.d and the original vmstat(1M) command at the same time
+to compare outputs,
+
+ $ vmstat -p 1
+      memory           page          executable      anonymous      filesystem
+    swap  free  re  mf  fr  de  sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+  1144488 142456 2   8   1   0   0    0    0    0    0    0    0    2    1    1
+  1063812 84472 18  92   0   0   0    0    0    0    0    0    0    0    0    0
+  1050404 75108  0   0   0   0   0    0    0    0    0    0    0    0    0    0
+  1050404 75108  0   0   0   0   0    0    0    0    0    0    0    0    0    0
+  1050404 75108 476 150  0   0   0    0    0    0    0    0    0    0    0    0
+  1050184 74772 73   0   0   0   0    0    0    0    0    0    0  788    0    0
+  1050400 74988 2371 173 0   0   0    0    0    0    0    0    0    0    0    0
+  1050400 75100 1057 0   0   0   0    0    0    0    0    0    0    0    0    0
+  1050400 75100  2   0   0   0   0    0    0    0    0    0    0    4    0    0
+  1050400 75100  0   0   0   0   0    0    0    0    0    0    0    0    0    0
+  1050400 75100 4529 172 0   0   0    0    0    0    0    0    0  192    0    0
+  1050400 75104  0   0   0   0   0    0    0    0    0    0    0  467    0    0
+  1050400 75104  0   0   0   0   0    0    0    0    0    0    0    0    0    0
+
+ # ./vmstat-p.d
+         memory          page       executable      anonymous    filesystem
+      swap    free    re   mf  sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+   1050404   75108     8   80   0    0    0    0    0    0    0    0    0    0
+   1050404   75108     0    0   0    0    0    0    0    0    0    0    0    0
+   1050404   75108     0    0   0    0    0    0    0    0    0    0    0    0
+   1050180   74768  2216  608   0    0    0    0    0    0    0  568    0    0
+   1050400   74988     4    0   0    0    0    0    0    0    0  228    0    0
+   1050400   75100 13852  700   0    0    0    0    0    0    0    0    0    0
+   1050400   75100     8    0   0    0    0    0    0    0    0    4    0    0
+   1050400   75100     0    0   0    0    0    0    0    0    0    0    0    0
+   1050400   75100     0    0   0    0    0    0    0    0    0    0    0    0
+   1050400   75104 18480  700   0    0    0    0    0    0    0  668    0    0
+   1050400   75104     0    0   0    0    0    0    0    0    0    0    0    0
+
+Above we can see the columns are corresponding well. "re" and "mf" in the
+DTrace output appear four times as large as they should be, because in the
+DTrace output we are printing Kbs not page counts (for consistancy).
+
+The DTrace output lacks the "summary since boot" line, as it is not using
+Kstat to fetch this data.
+
+
+The vmstat-p.d script is not intended itself as a useful program, rather it
+is intended as a starting point for other DTrace scripts; a starting point
+of familiar statistics to provide the programmer with a "common ground"
+of knowledge.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/vmstat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/vmstat_example.txt
new file mode 100644
index 0000000..7d953fd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/vmstat_example.txt
@@ -0,0 +1,45 @@
+The following is an example of the vmstat.d script,
+
+
+We run both vmstat.d and the original vmstat(1M) command at the same time
+to compare outputs,
+
+ $ vmstat 1
+  kthr      memory            page            disk          faults      cpu
+  r b w   swap  free  re  mf pi po fr de sr cd s0 -- --   in   sy   cs us sy id
+  0 0 0 1147468 144324 2   8  2  1  1  0  0  1  0  0  0  294  990  355 18  2 80
+  1 0 0 1065480 92276 13  73  0  0  0  0  0  0  0  0  0  359 1055  376 85 15  0
+  0 0 0 1052088 82940  0   0  0  0  0  0  0  0  0  0  0  409  999  402 97  3  0
+  0 0 0 1052088 82940  0   0  0  0  0  0  0  0  0  0  0  406  975  407 97  3  0
+  0 0 0 1052088 82940  0   0  0  0  0  0  0  0  0  0  0  406 1037  429 97  3  0
+  0 0 0 1052088 82940 247 1763 0 0  0  0  0  2  0  0  0  427 4828  680 81 19  0
+  0 0 0 1051264 82300  0   0  0  0  0  0  0  0  0  0  0  414 1164  441 97  3  0
+  0 0 0 1051264 82300 11 134  0  0  0  0  0  0  0  0  0  423 1218  461 95  5  0
+  0 0 0 1051264 82300  0   0  0  0  0  0  0  0  0  0  0  416 1054  435 98  2  0
+ [...]
+
+ # ./vmstat.d
+  w       swap     free   re    mf   pi   po   fr   sr    in    sy   cs
+  0    1052088    82940    8    80    0    0    0    0   117   958  379
+  0    1052088    82940    0     0    0    0    0    0   123   955  402
+  0    1052088    82940    0     0    0    0    0    0   121  1025  420
+  0    1052088    82940    0     0    0    0    0    0   121  1065  433
+  0    1051264    82300 1008  7192    0    0    0    0   219  4886  684
+  0    1051264    82300    0     0    0    0    0    0   193  1188  461
+  0    1051264    82300   44   540    0    0    0    0   165  1226  450
+  0    1051264    82300    0     0    0    0    0    0   123  1012  421
+ [...]
+
+Above we can see the columns are corresponding well. "re" and "mf" in the
+DTrace output appear four times as large as they should be, because in the
+DTrace output we are printing Kbs not page counts (for consistancy).
+
+The DTrace output lacks the "summary since boot" line, as it is not using
+Kstat to fetch this data.
+
+
+The vmstat.d script is not intended itself as a useful program, rather it 
+is intended as a starting point for other DTrace scripts; a starting point
+of familiar statistics to provide the programmer with a "common ground"
+of knowledge.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/vopstat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/vopstat_example.txt
new file mode 100644
index 0000000..646419e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/vopstat_example.txt
@@ -0,0 +1,89 @@
+The following are demonstrations of the vopstat script.
+
+
+By default, vopstat traces activity at the vnode interface and prints
+summaries every five seconds. It will either trace all filesystems or
+just the mountpoint specified.
+
+Here it was run on /extra1, while a tar command archived /extra1,
+
+   # ./vopstat /extra1
+   VOP Physical IO                                                   Count
+   fop_getpage                                                          66
+   
+   VOP Count                                                         Count
+   fop_readdir                                                           1
+   fop_read                                                              2
+   fop_cmp                                                               2
+   fop_seek                                                              3
+   fop_close                                                             7
+   fop_open                                                             10
+   fop_getattr                                                          12
+   fop_access                                                           13
+   fop_lookup                                                           16
+   fop_rwunlock                                                       3802
+   fop_rwlock                                                         3802
+   fop_putpage                                                        4701
+   fop_getpage                                                        6648
+   fop_dispose                                                       19109
+   
+   VOP Wall Time                                                  mSeconds
+   fop_readdir                                                           0
+   fop_cmp                                                               0
+   fop_read                                                              0
+   fop_seek                                                              0
+   fop_close                                                             0
+   fop_open                                                              0
+   fop_access                                                            0
+   fop_getattr                                                           0
+   fop_lookup                                                            0
+   fop_rwunlock                                                         64
+   fop_putpage                                                          86
+   fop_rwlock                                                           93
+   fop_dispose                                                         346
+   fop_getpage                                                         402
+   ^C
+
+There were 66 calls for physical I/O operations, fop_getpage, as files
+were read from disk. The VOP Count show that there were many calls to
+fop_putpage and fop_getpage, as tar works its way through files; and 
+many more to fop_dispose. The total elaspsed time for these calls
+are listed at the bottom, in milleseconds.
+
+This rate of events will put some pressure on the DTrace buffer,
+you may see dynamic variable drops.
+
+
+
+vopstat also has a -t option to trace activity. Here it is run on /extra1 
+while an "ls" command listed files from that directory,
+
+# ./vopstat -t /extra1
+   Event           Device                                                    Path RW     Size   Offset
+-> fop_getattr     -                                                      /extra1  -        0        0
+<- fop_getattr     -                                                      /extra1  -        0        0
+-> fop_access      -                                                      /extra1  -        0        0
+<- fop_access      -                                                      /extra1  -        0        0
+-> fop_open        -                                                      /extra1  -        0        0
+<- fop_open        -                                                      /extra1  -        0        0
+-> fop_getattr     -                                                      /extra1  -        0        0
+<- fop_getattr     -                                                      /extra1  -        0        0
+-> fop_rwlock      -                                                      /extra1  -        0        0
+<- fop_rwlock      -                                                      /extra1  -        0        0
+-> fop_readdir     -                                                      /extra1  -        0        0
+-> fop_getpage     -                                                      /extra1  -        0        0
+<- fop_getpage     -                                                      /extra1  -        0        0
+-> fop_rwunlock    -                                                      /extra1  -        0        0
+<- fop_rwunlock    -                                                      /extra1  -        0        0
+-> fop_rwlock      -                                                      /extra1  -        0        0
+<- fop_rwlock      -                                                      /extra1  -        0        0
+-> fop_readdir     -                                                      /extra1  -        0        0
+<- fop_readdir     -                                                      /extra1  -        0        0
+-> fop_rwunlock    -                                                      /extra1  -        0        0
+<- fop_rwunlock    -                                                      /extra1  -        0        0
+-> fop_close       -                                                      /extra1  -        0      512
+<- fop_close       -                                                      /extra1  -        0      512
+^C
+
+Each call can be seen as it happened, including the entry and return of
+these calls.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/weblatency_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/weblatency_example.txt
new file mode 100644
index 0000000..995b545
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/weblatency_example.txt
@@ -0,0 +1,127 @@
+The following is a demonstration of the weblatency.d script.
+
+Here we run weblatency.d while a mozilla browser loads the 
+http://www.planetsolaris.org website. After the website was loaded, Ctrl-C
+was hit to print the following report,
+
+   # weblatency.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   HOST                                     NUM
+   static.flickr.com                          1
+   images.pegasosppc.com                      1
+   www.planetsolaris.org                      5
+   blogs.sun.com                              7
+   
+   HOST                             AVGTIME(ms)
+   static.flickr.com                         65
+   blogs.sun.com                            285
+   images.pegasosppc.com                    491
+   www.planetsolaris.org                    757
+   
+   HOST                             MAXTIME(ms)
+   static.flickr.com                         65
+   images.pegasosppc.com                    491
+   blogs.sun.com                            962
+   www.planetsolaris.org                   3689
+
+This gives us an understanding on which hosts were responsible for the 
+time endured while loading the website. It turns out that requests to
+www.planetsolaris.org were the slowest, with a maximum time of 3.7 seconds
+(probably the first request, which incurred a DNS lookup).
+
+
+
+The following shows the same google lookup performed on a number of sites,
+
+   # weblatency.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   HOST                                     NUM
+   www.google.com.au                          3
+   www.google.co.uk                           3
+   www.google.com                             3
+   www.google.co.nz                           3
+   
+   HOST                             AVGTIME(ms)
+   www.google.co.nz                         450
+   www.google.com.au                        502
+   www.google.com                           567
+   www.google.co.uk                         595
+   
+   HOST                             MAXTIME(ms)
+   www.google.co.nz                         544
+   www.google.com.au                        559
+   www.google.com                           744
+   www.google.co.uk                         763
+
+From the average time you would guess that I was running this from 
+New Zealand (the fastest), with times to the other hosts following suit
+(Australia, USA, UK). I was actually running this from Australia - it's
+interesting that the New Zealand server responded slightly faster.
+
+
+
+
+Now several websites are loaded as a larger demonstration,
+
+   # weblatency.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   HOST                                     NUM
+   shop.abc.net.au                            1
+   static.technorati.com                      1
+   sunopensolaris.112.2o7.net                 1
+   www.theage.com.au                          1
+   ffxcam.smh.com.au                          1
+   sunglobal.112.2o7.net                      2
+   embed.technorati.com                       2
+   technorati.com                             2
+   fdimages.fairfax.com.au                    4
+   blogs.sun.com                              5
+   bugs.opensolaris.org                       7
+   www.abc.net.au                            34
+   www.smh.com.au                            51
+   
+   HOST                             AVGTIME(ms)
+   ffxcam.smh.com.au                          0
+   sunglobal.112.2o7.net                      0
+   www.abc.net.au                            56
+   www.theage.com.au                         64
+   shop.abc.net.au                           65
+   www.smh.com.au                            73
+   fdimages.fairfax.com.au                   88
+   blogs.sun.com                            130
+   bugs.opensolaris.org                     162
+   static.technorati.com                    350
+   technorati.com                           352
+   embed.technorati.com                     632
+   sunopensolaris.112.2o7.net               900
+   
+   HOST                             MAXTIME(ms)
+   ffxcam.smh.com.au                          0
+   sunglobal.112.2o7.net                      0
+   www.theage.com.au                         64
+   shop.abc.net.au                           65
+   fdimages.fairfax.com.au                  243
+   www.smh.com.au                           244
+   blogs.sun.com                            293
+   www.abc.net.au                           315
+   static.technorati.com                    350
+   technorati.com                           356
+   bugs.opensolaris.org                     560
+   sunopensolaris.112.2o7.net               900
+   embed.technorati.com                     973
+
+It's interesting that the most common host (www.smh.com.au, NUM == 51),
+responded with a fast AVGTIME (73 ms). The reason for this may be due to
+cacheing by my proxy server. Less common hosts such as embed.technorati.com
+were quite slow.
+
+
+
+The results from weblatency.d are interesting, but they don't point the
+finger at one single cause for website latency. The value here is the response
+time experienced by the client - which is a combination of many response 
+times (link speeds, proxy server, DNS server, web server).
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/whatexec_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/whatexec_example.txt
new file mode 100644
index 0000000..519909e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/whatexec_example.txt
@@ -0,0 +1,18 @@
+The following are demonstrations of the whatexec.d script.
+
+
+Here we run it while a few commands are also executed,
+
+   # ./whatexec.d
+   PEXEC            EXEC                                   OK TYPE
+   bash             /usr/bin/clear                          Y #!/u\0
+   bash             /sbin/sh                                Y \177ELF\0
+   clear            /usr/bin/tput                           Y \177ELF\0
+   bash             /export/home/brendan/DOOM.EXE           N MZ\644\0
+   ^C
+
+whatexec.d has first found that "clear" was run, which has a type that
+begins with "#!" - a script. clear runs "sh" and "tput", both ELF files.
+
+We finish by attempting to run a MZ file, "DOOM.EXE", which is rejected
+(OK is "N").
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/woof_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/woof_example.txt
new file mode 100644
index 0000000..dc81527
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/woof_example.txt
@@ -0,0 +1,28 @@
+The following explains how to demonstrate the woof.d DTrace script.
+
+This script is only useful if you have an audio device, /dev/audio. To test
+audio, you can run:
+
+	$ audioplay /usr/share/audio/samples/au/sample.au
+
+The volume can be adjusted from a few tools, including,
+
+	$ /usr/dt/bin/sdtaudiocontrol
+
+...
+
+woof.d will bark whenever a new process is created. In order to demonstrate
+it, first run the following:
+
+	# ./woof.d &
+
+You have now installed the dog (if the dog becomes a nusience, you are
+allowed to kill it). Now compare the difference between these recursive
+grep commands:
+
+	$ find /etc -type f -exec grep localhost {} \;
+
+	$ find /etc -type f -exec grep localhost {} +
+
+The first find command is the "bad way", the second is the "good way". You
+will hear for yourself why this is the case.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/wpm_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/wpm_example.txt
new file mode 100644
index 0000000..bfc74a9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/wpm_example.txt
@@ -0,0 +1,57 @@
+The following is an example of the wpm.d script.
+
+
+This script takes the name of a program to trace, and assumes that reads
+on file descriptor zero (STDIN) are keystrokes.
+
+When run, a 5 second count down begins before keystrokes are measured,
+
+   # wpm.d vim
+   Measuring will start in :  5 seconds
+
+While running, I retyped the first three sentences of this file a few times
+which clocked the following result,
+
+   # wpm.d vim
+   Measuring will start in :  0 seconds
+   Measuring will stop in  :  0 seconds
+   
+   Characters typed : 509
+   Words per minute : 84
+   
+   Minimum keystroke latency : 12 ms
+   Average keystroke latency : 118 ms
+   Maximum keystroke latency : 493 ms
+   
+   Word size distribution (letters),
+   
+              value  ------------- Distribution ------------- count
+                  0 |                                         0
+                  1 |@@@                                      6
+                  2 |@@@@@                                    11
+                  3 |@@@@@                                    11
+                  4 |@@@@@@                                   13
+                  5 |@@@@                                     8
+                  6 |@@@@@@                                   12
+                  7 |@@@@@                                    11
+                  8 |                                         0
+                  9 |@@                                       4
+                 10 |@                                        3
+                 11 |@                                        2
+                 12 |                                         0
+                 13 |                                         0
+                 14 |                                         1
+                 15 |                                         0
+   
+   Keystroke latency distribution (ms),
+   
+              value  ------------- Distribution ------------- count
+                  4 |                                         0
+                  8 |                                         1
+                 16 |                                         5
+                 32 |@@@@@                                    66
+                 64 |@@@@@@@@@@@@@@@@@@@@                     247
+                128 |@@@@@@@@@@@@@                            167
+                256 |@                                        16
+                512 |                                         0
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/writebytes_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/writebytes_example.txt
new file mode 100644
index 0000000..baa83fc
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/writebytes_example.txt
@@ -0,0 +1,26 @@
+The following is a demonstration of the writebytes.d script,
+
+
+Here the writebytes.d script is run for a few seconds, then Ctrl-C is hit,
+
+   # writebytes.d
+   dtrace: description 'sysinfo:::writech ' matched 4 probes
+   ^C
+     dtrace                                                            1
+     gnome-settings-d                                                  8
+     xscreensaver                                                      8
+     gnome-panel                                                       8
+     nautilus                                                          8
+     date                                                             29
+     wnck-applet                                                     120
+     bash                                                            210
+     mozilla-bin                                                    1497
+     ls                                                             1947
+     metacity                                                       3172
+     Xorg                                                           7424
+     gnome-terminal                                                51955
+
+
+In this interval the gnome-terminal command has successfully written 51.9 Kb, 
+while Xorg has written 7424 bytes.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/writedist_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/writedist_example.txt
new file mode 100644
index 0000000..f334843
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/writedist_example.txt
@@ -0,0 +1,38 @@
+The following is an example of the writedist.d script,
+
+
+Here the writedist.d script is run for a few seconds, then Ctrl-C is hit,
+
+   # writedist.d
+   dtrace: description 'sysinfo:::writech ' matched 4 probes
+   ^C
+   [...]
+     Xorg
+              value  ------------- Distribution ------------- count
+                 16 |                                         0
+                 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       169
+                 64 |@@@                                      16
+                128 |@@                                       10
+                256 |                                         0
+   
+     gnome-terminal
+              value  ------------- Distribution ------------- count
+                  0 |                                         0
+                  1 |@@                                       6
+                  2 |                                         0
+                  4 |                                         0
+                  8 |                                         1
+                 16 |@                                        2
+                 32 |@@@                                      7
+                 64 |                                         0
+                128 |@@@@@@@@@@@@@@@@@@@@@@@                  63
+                256 |@@@@                                     10
+                512 |                                         1
+               1024 |@@@@@                                    13
+               2048 |@                                        2
+               4096 |@@@                                      7
+
+This allows us to understand the write behaviour of each process. The
+gnome-terminal command has executed 6 writes that returned 0 bytes, through
+to 7 writes that were at least 4096 bytes (up to 8192). 
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/xcallsbypid_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/xcallsbypid_example.txt
new file mode 100644
index 0000000..1593b62
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/xcallsbypid_example.txt
@@ -0,0 +1,17 @@
+The following is a demonstration of the xcallsbypid.d script,
+
+   # xcallsbypid.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD                        XCALLS
+      215 utmpd                           3
+     6350 bash                            3
+     6351 bash                            3
+     6350 ls                             24
+        0 sched                          48
+     6349 dtrace                         93
+     6351 find                         5718
+
+In the above output, we can see the find command with PID 6351 has caused
+5718 cross calls.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/xvmstat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/xvmstat_example.txt
new file mode 100644
index 0000000..544bd98
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/xvmstat_example.txt
@@ -0,0 +1,44 @@
+The following is a demonstration of the xvmstat program.
+
+
+Here we run it with no arguments. It will default to 1 second samples, and
+will run forever,
+
+  # xvmstat
+  w   swap  free   re maj   mf cow pro  sr epi epo epf api apo apf fpi fpo fpf
+  0   1025    73    2   0   21   0   0   0   0   0   0   0   0   0   0   0   0
+  0   1025    73    0   0    0   0   1   0   0   0   0   0   0   0   0   0   0
+  0   1025    73    0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  0   1025    73    0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  0   1025    73    0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  0   1025    73  199  42  166  21  41   0   0   0   0   0   0   0  42   0   0
+  0   1025    73    0   0    0   0   2   0   0   0   0   0   0   0   0   0   0
+  0   1025    73 4404  47  175  26  30   0   0   0   0   0   0   0  48   0   0
+  0   1025    73  433   0    0   0  14   0   0   0   0   0   0   0   0   0   0
+  0   1025    73    0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  0   1025    73    0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  0   1025    73    0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  ^C
+
+Both "swap" and "free" are in units of megabytes, the rest are in units of
+pages. "maj" is major faults - a useful addition to the output.
+
+There is no summary since boot line, as this program in not using the
+Kstat data.
+
+
+
+The following runs xvmstat with a 5 second interval,
+
+  # xvmstat 5
+  w   swap  free    re maj   mf cow pro  sr epi epo epf api apo apf fpi fpo fpf
+  0   1025    72  1531   2   40   5   9   0   0   0   0   0   0   0   2   0   0
+  0   1025    72  1534   0   36   5   9   0   0   0   0   0   0   0   0   0   0
+  0   1025    72     0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  0   1025    72     0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  0   1025    72     5   1   82  16  25   0   0   0   0   0   0   0   1   0   0
+  0   1025    72     0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  ^C
+
+The values from "re" to "fpf" are per second values.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Examples/zvmstat_example.txt b/external/cddl/dtracetoolkit/dist/Docs/Examples/zvmstat_example.txt
new file mode 100644
index 0000000..cb070c5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Examples/zvmstat_example.txt
@@ -0,0 +1,34 @@
+The following is a demonstration of the zvmstat command, which provides 
+vmstat style info per zone using DTrace.
+
+Here we run zvmstat with an interval of 5 seconds. This is a server that
+only has two zones, "global" and "workzone1",
+
+ # zvmstat 5
+      ZONE   re    mf   fr    sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+     global   62   340    0     0    0    0    0    0    0    0    0    0    0
+  workzone1    4     2    0     0    0    0    0    0    0    0    0    0    0
+       ZONE   re    mf   fr    sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+     global 1132   484    0     0    2    0    0    0    0    0  832    0    0
+  workzone1    0     0    0     0    0    0    0    0    0    0    0    0    0
+       ZONE   re    mf   fr    sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+     global   50   319    2     0    2    0    0    0    0    0  579    2    2
+  workzone1    0     0    0     0    0    0    0    0    0    0    0    0    0
+       ZONE   re    mf   fr    sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+     global   54   317    0     0    0    0    0    0    0    0    0    0    0
+  workzone1    0     0    0     0    0    0    0    0    0    0    0    0    0
+       ZONE   re    mf   fr    sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+     global   54   316    1     0    0    0    0    0    0    0    0    1    1
+  workzone1    0     0    0     0    0    0    0    0    0    0    0    0    0
+       ZONE   re    mf   fr    sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+     global  157   659    1     0   10    0    0    0    0    0    3    2    1
+  workzone1  770  1085    0     0   48    0    0    0    0    0  928    0    0
+       ZONE   re    mf   fr    sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+     global   56   317    0     0    6    0    0    0    0    0    2    0    0
+  workzone1 1478    21    0     0    0    0    0    0    0    0 1635    0    0
+
+During the first few samples, some filesystem activity can be observed in 
+the global zone, created by a "find /" in the global. In the last few samples,
+filesystem activity can be seen in the non-global zone "workzone1" - this 
+time created by running a "find /" within the non-global zone,
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Faq b/external/cddl/dtracetoolkit/dist/Docs/Faq
new file mode 100644
index 0000000..4919cac
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Faq
@@ -0,0 +1,126 @@
+Faq - Frequently Asked Questions
+
+   The following may serve as a guide to the DTraceToolkit.
+
+16-May-2005, ver 0.30	(first version of the FAQ)
+
+The DTraceToolkit is new, and as such there hasn't been many questions asked.
+This may be better called a "possibly asked questions" :)
+
+
+Questions 
+
+1. Intro
+1.1. What is the DTraceToolkit?
+1.2. Who wrote the DTraceToolkit?
+1.3. Where do I get support?
+1.4. Am I now a performance tuning expert?
+1.5. Will this solve all my performance problems?
+1.6. So the DTraceToolkit *is* DTrace?
+
+2. Toolkit
+2.1. What is in it?
+2.2. What performance effect can the DTraceToolkit cause?
+
+3. Contributing
+3.1. Where do I send bugs?
+
+
+Answers
+
+1. Intro
+
+1.1. What is the DTraceToolkit?
+
+   The DTraceToolkit is a collection of tools written using DTrace for
+   the Solaris 10[tm] OS by Sun Microsystems[tm]. Many of these scripts
+   will also work on OpenSolaris.
+
+1.2. Who wrote the DTraceToolkit?
+
+   Volunteers of the DTrace and OpenSolaris community. Check the scripts
+   themselves, Docs/Contrib, Docs/Who and Docs/History.
+
+1.3. Where do I get support?
+
+   As the DTraceToolkit is a freeware product, there is no official company 
+   offering support for this. Sun Microsystems does not support this. If you 
+   post messages to the DTrace forums found in the Docs/Links file, a 
+   volunteer may help you out.
+
+1.4. Am I now a performance tuning expert?
+
+   The DTraceToolkit does not turn people into performance tuning experts in 
+   the same way that owning a set of golf clubs won't make you a professional
+   golfer. Experience and understanding are necessary. The toolkit certainly
+   helps by fetching the data in an easy way, and also by providing some
+   documentation. So it is valuable, but not magical. 
+
+1.5. Will this solve all my performance problems?
+
+   This is similar to the previous point; the DTraceToolkit is valuable
+   for it's scripts and documentation, but it's no magical product. 
+   Understanding and experience are necessary.
+
+1.6. So the DTraceToolkit *is* DTrace?
+
+   The DTraceToolkit is one use of DTrace, but there is far more to DTrace
+   than just the toolkit. DTrace allows people to write their own customised
+   scripts to solve a wide number of problems. 
+
+   Think of the DTraceToolkit as a starting point. Maybe your problem has
+   a solution in the kit. Maybe changing one of the toolkit programs slightly
+   is what you want. Finally you may need to write your script from scratch.
+
+
+2. Toolkit
+
+2.1. What is in it?
+
+   Read the Guide file for a table of contents, and Docs/Contents for a
+   list of commands.
+
+2.2. What performance effect can the DTraceToolkit cause?
+
+   Enabling DTrace to monitor events has little effect on the system, 
+   especially when compared to the disruptive behaviour of truss (See
+   http://www.brendangregg.com/DTrace/dtracevstruss.html for a comparison).
+
+   It really boils down to how often the events occur that you are monitoring.
+   The following numbers have been provided as an approximation:
+
+   1. Fixed rate scripts. For example, dispqlen.d samples at 1000 hz.
+      The impact will be negligible, close to 0% CPU. (in testing, 0.1% CPU).
+
+   2. Demand rated scripts. For example, iosnoop probes disk I/O events.
+      The impact depends on the rate of events, for many servers the disk
+      events would be slow enough for this to be less than 0.2% CPU. 
+      Scripts such as execsnoop would expect even fewer events, their impact
+      would be close to 0.0% CPU. However scripts that monitor potentially
+      very rapid events will have a greater impact, for example running
+      dapptrace on Xorg (over 6000 lines of output per second) was consuming
+      around 10% of a CPU to do so.
+
+   3. Heavy voodoo scripts. A few scripts in the toolkit must probe either
+      a ton of different events, or very rapid events, or both. They are
+      going to hurt and there is no way around it. Scripts such as cputimes
+      and cpudists trace very frequent events, and can chew around 5% of
+      the CPUs; scripts such as dapptrace and dappprof trace extreamly
+      frequent events, and can chew over 20%.
+
+   There is an emphasis in the DTraceToolkit to write demand rated scripts
+   that measure the fewest events, such that their impact is close to 0.0%
+   CPU usage. Some scripts are fixed rate, which are safer as their impact
+   has a known upper bound, and are most suitable to run in production.
+
+   There are additional notes in Notes/ALLoverhead_notes.txt about the
+   overheads for running DTrace.
+
+
+3. Contributing
+
+3.1. Where do I send bugs?
+
+   The DTraceToolkit maintainer. See the Docs/Maintainer file.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/History b/external/cddl/dtracetoolkit/dist/Docs/History
new file mode 100644
index 0000000..d92bf11
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/History
@@ -0,0 +1,249 @@
+History - History of the DTraceToolkit
+
+------------------------------------------------------------------------------
+20-Apr-2005	Brendan Gregg	Idea
+	For a while I had thought that a DTrace toolkit would be a nice 
+	idea, but on this day it became clear. I was explaining DTrace to 
+	an SSE from Sun (Canberra, Australia), who had a need for using 
+	DTrace but didn't have the time to sit down and write all the
+	tools he was after. It simply made sense to have a DTrace toolkit
+	that people could download or carry around a copy to use. Some
+	people would write DTrace tools, others would use the toolkit.
+------------------------------------------------------------------------------
+15-May-2005	Brendan Gregg	Version 0.30
+	I had discussed the idea of a DTrace toolkit with the Sun PAE guys in 
+	Adelaide, Australia. It was making more sense now. It would be much
+	like the SE Toolkit, not just due to the large number of sample 
+	scripts provided, but also due to the role it would play: few people
+	wrote SE Toolkit programs, more people used it as a toolkit. While
+	we would like a majority of Solaris users to write DTrace scripts, 
+	the reality is that many would want to use a prewritten toolkit.
+	Today I created the toolkit as version 0.30, with 11 main directories,
+	a dozen scripts, man pages and a structure for documentation.
+------------------------------------------------------------------------------
+16-May-2005	Brendan Gregg	OneLiners
+	I've been using the toolkit for a day now (wow!), and have noticed
+	a few problems I've been fixing. One of them was the dtrace oneliners.
+	I have them in two files, Docs/oneliners.txt and the examples in
+	Docs/Examples/oneliners_examples.txt. The problem is that when I'm
+	looking for a script, I'm looking in Docs/Commands - a list of the
+	seperate script files, or I'm doing an ls or find. Ok, so I've now
+	made each one liner a seperate script. This seems at first pretty
+	silly since they are oneliners and shouldn't deserve an entire script
+	each, but I've found having them as seperate scripts makes them far 
+	easier to find and use. The scripts and man page for each script do 
+	point out the fact that it's a one liner. 
+------------------------------------------------------------------------------
+17-May-2005	Brendan Gregg	Version 0.33
+	Version 0.33 with 33 scripts. Maybe I should make the version number
+	equal the script count. :) I just finished dtruss, dapptrace and
+	dappprof.
+------------------------------------------------------------------------------
+08-Jun-2005	Brendan Gregg	Name changes.
+	I've renamed Docs/Commands to Docs/Contents. I found myself typing
+	"more Docs/Contents" by mistake a lot. ok, maybe it made more sense
+	to call it Contents after all. I've also made a symlink to it called
+	Index.
+------------------------------------------------------------------------------
+08-Jun-2005	Brendan Gregg	Version 0.35
+	Version 0.35 with 35 scripts. Also touched up procsystime and some
+	man pages. Added the CDDL version 1.0.
+------------------------------------------------------------------------------
+09-Jun-2005	Brendan Gregg	Version 0.42
+	Added 7 more scripts.
+------------------------------------------------------------------------------
+14-Jun-2005	Brendan Gregg	Version 0.57
+	Added heaps of new scripts. Now at 57 scripts.
+------------------------------------------------------------------------------
+17-Jun-2005	Brendan Gregg	Version 0.61
+	Restyled many commands.
+------------------------------------------------------------------------------
+28-Jun-2005	Brendan Gregg	Version 0.70
+	Added several commands including dexplorer. Developed a few useful
+	variants of classic scripts while writing dexplorer, and have added
+	them to the toolkit (I kept wanting to run them individually but 
+	not have to run an entire dexplorer).
+------------------------------------------------------------------------------
+25-Jul-2005	Brendan Gregg	Version 0.77
+	Added tcpsnoop.d, tcpsnoop, tcptop.  Because of their addition I have
+	dropped tcpwbytes.d and tcpwlist.  These are complex scripts, but they
+	track TCP in an accurate manner. However! also because they are 
+	complex scripts, I expect they will require maintainence for newer
+	versions of [Open]Solaris, as various probes may change. They will
+	become much more stable once a network provider has been added to
+	DTrace (which may be some time away).
+	Also added iotop, and updated a bunch of scripts. A lot of work went
+	into this version, although the version change doesn't reflect that
+	(I'm still keeping the version number == to number of scripts).
+	Also added rwsnoop, rwtop, and more.
+------------------------------------------------------------------------------
+26-Jul-2005	Brendan Gregg	Version 0.82
+	Many new scripts added, many updates. This is a major release.
+------------------------------------------------------------------------------
+17-Sep-2005	Brendan Gregg	Version 0.83
+	A few scripts have been updated so that they work better.
+	execsnoop, iosnoop, opensnoop and rwsnoop will be more responsive
+	(increased switchrate).
+------------------------------------------------------------------------------
+22-Sep-2005	Brendan Gregg	Version 0.84
+	Some updates, fixed some bugs (cputimes, cpudists). Added cpuwalk.d.
+------------------------------------------------------------------------------
+15-Nov-2005	Brendan Gregg	Sys Admin Magazine
+	Ryan Matteson wrote an article on the DTraceToolkit which has been
+	printed in Sys Admin Magazine, December 2005. It's quite good,
+	and made it as the feature article - which means it will be available
+	online for some time. Thanks Matty, and Sys Admin Magazine!
+	"Observing I/O Behavior with the DTraceToolkit"
+	http://www.samag.com/documents/sam0512a/
+------------------------------------------------------------------------------
+01-Dec-2005	Brendan Gregg	Version 0.88
+	Many scripts were updated. Added the Apps category. I had planned
+	to add some key scripts, but they haven't made it out of testing yet.
+------------------------------------------------------------------------------
+03-Dec-2005	Brendan Gregg	Version 0.89
+	Added nfswisard.d, fixed a minor bug with tcp* tools (see 
+	dtrace-discuss mailing list).
+------------------------------------------------------------------------------
+12-Jan-2006	Brendan Gregg	Version 0.92
+	Added a few scripts including rwbytype.d. Fixed several issues.
+------------------------------------------------------------------------------
+09-Apr-2006	Brendan Gregg	Solaris Internals 2nd Edition
+	In the past few months I have been contributing to Solaris Internals
+	2nd Edition. This book (now two volumes) is really amazing. The 2nd
+	volume does use the DTraceToolkit where appropriate, and covers loads
+	of useful topics. While writing and reviewing material for Solaris
+	Internals, I've had numerous new ideas for DTrace scripts. Not only
+	that, but a few people have managed to send me well styled, carefully
+	tested, well considered DTrace scripts for inclusion in the toolkit.
+------------------------------------------------------------------------------
+20-Apr-2006	Brendan Gregg	TCP bug fixed
+	Stefan Parvu sent me a bug for the tcp* scripts: on build 31+ they
+	error'd on the symbol SS_TCP_FAST_ACCEPT. This symbol was 
+	renamed to SS_DIRECT (I checked the code, they are used in the 
+	same way). Ironically, when I first wrote the scripts I had hardcoded
+	the value 0x00200000, then rewrote it "properly" by importing
+	the header files and using the symbol name. Had I been lazy and left
+	it hardcoded, the bug would never have eventuated. Not to worry,
+	it has returned to being hardcoded, so that it works on all builds
+	(until something else changes).
+------------------------------------------------------------------------------
+21-Apr-2006	Brendan Gregg	Restyled - again!
+	I've been writing the "DTraceToolkit Style Guide", to document
+	the style that these scripts obey. It is quite strict, and sets
+	the bar fairly high. I've been warned that it may cause very few
+	people to ever contribute scripts, which is fine. At some point
+	I'll carefully explain the mentality behind this, but in a nutshell:
+	Users on critical production servers expect the tools to be 
+	accurate, carefully tested, and cause no undocumented harm. 
+------------------------------------------------------------------------------
+22-Apr-2006	Brendan Gregg	Docs changes
+	The "Contrib" file was merged into the "Who" file. In hindsight
+	it is better to keep this data together than to split it up.
+------------------------------------------------------------------------------
+24-Apr-2006	Brendan Gregg	Version 0.96
+	The toolkit now contains 104 scripts, however I'll keep the version
+	number < 1.00 until the dust has settled on these new scripts.
+	There is some special significance with version 1.00, it would 
+	imply that every script had been tested for some time - not that
+	I've just added a few. 
+	There is a new main directory, FS for file system related scripts.
+	There are some interesting scripts in there, from or based on
+	Solaris Internals 2nd ed, vol 2.
+------------------------------------------------------------------------------
+30-Sep-2007	Brendan Gregg	Version 0.99
+	It's been a year and a half since the last release, and a lot has
+	happneed. Firstly, the DTraceToolkit has featured in the Prentice Hall
+	book,
+		Solaris Performance and Tools
+		   DTrace and mdb techniques for Solaris 10 and OpenSolaris
+
+	written by Richard McDougall, Jim Mauro and myself. It is a companion
+	book to "Solaris Internals 2nd edition" by Richard McDougall and
+	Jim Mauro. If you are serious about becomming a DTrace guru,
+	especially on Solaris, then please study both books. (Yes, I realize
+	that many people are using the DTraceToolkit because they don't have
+	the time or don't want to become DTrace gurus; well, so long as
+	you are using DTrace anyway :). The performance book was a great relief
+	to write - since we were able to put to print much performance wisdom
+	and knowledge that was begging to be documented.
+
+	Then, in late 2006 I joined an advanced products engineering team
+	at Sun in San Francisco, a team which includes the three members of
+	team DTrace. It's been a great opportunity to learn from such
+	engineers, and to contribute more directly to DTrace. So far my work
+	has included writing a JavaScript provider, integrated inet_ntoa()
+	style functions into DTrace, and prototying DTrace IP, TCP and UDP
+	providers.
+
+	Working on the network providers is good news for the DTraceToolkit,
+	as it will indirectly help the tcp* scripts become more stable. Yes,
+	those scripts have broken a few more times during the last 18 months,
+	sorry about that, and it will keep happening until we have stable
+	network providers. This is why I only ever wrote three tcp* scripts,
+	and not at least a dozen, which I'd really like to do.
+
+	I did leave my pile of old SPARC and x86 development servers behind
+	in Australia, and brought over a couple of laptops. That has made me
+	more dependant on Stefan for testing the toolkit - especially on SPARC.
+
+	So, it's been about 18 months since the last release, which is 
+	mostly due to having less spare time due to moving countries and
+	learning a new job.
+
+	Michelle from Sun docs has been asking for a newer version of the
+	DTraceToolkit for the OpenSolaris starter kit, which is why I'm
+	releasing this version now and not waiting a few more weeks as	
+	I complete bug fixes.
+
+	So the good and the bad news for this release, starting with the bad,
+
+	Bad: tcpsnoop/tcptop still don't work on some Solaris 10 releases.
+	I've added versions that should work on Solaris Nevada and OpenSolaris
+	for releases from around late 2007. They are likely to break again.
+	The real answer, as always, is for stable nework providers to be
+	integrated into Solaris.
+
+	Many of the exciting new language provider scripts in this release
+	currently require downloading, patching and compling of the language
+	interpreter to get working. See the Readme file in each directory
+	for pointers.
+
+	Good: many more scripts to cover the new DTrace language providers
+	that are available (the DTraceToolkit is now 227 scripts). Many
+	updates to the Notes directory. Bug fixes. Some new categories
+	other than for scripts: Code - for simple programs to DTrace (and
+	for the example files), and Snippits - for useful lumps of DTrace
+	code to copy-n-paste from. The man pages are also making room
+	for documenting both stability and supported operating systems for
+	each script - now that DTrace exists for MacOS X Leopard, the
+	DTraceToolkit will begin supporting multiple operating systems.
+
+	This can be thought of as a developer's release of the DTraceToolkit -
+	to help people start using DTrace with Perl, Python, Ruby, Php, Java,
+	JavaScript, Shell and Tcl. I've written about 15 scripts for each
+	language, to cover the basics and to show the way for deeper analysis.
+	The scripts are also similar from one language to another, having
+	devoleped a tried-and-tested group of scripts for analyzing real world
+	issues - it made sense to repeat these scripts for every language
+	possible. To see what I mean, try reading,
+
+	   Examples/j_cputime_example.txt     Examples/py_cputime_example.txt
+	   Examples/js_cputime_example.txt    Examples/rb_cputime_example.txt
+	   Examples/php_cputime_example.txt   Examples/sh_cputime_example.txt
+	   Examples/pl_cputime_example.txt    Examples/tcl_cputime_example.txt
+
+	You might notice that the example files are more clearly and carefully
+	explained. Claire (my wife), wrote close to one hundred of them for
+	this release while I focused on writing and testing the scripts.
+	Claire has worked as a SysAdmin and as an IT instructor, and is well
+	skilled at explaining relavent technical details. And she can spell
+	much better than I can. :)
+
+	The future: I still have many new scripts and some bug fixes in mind,
+	as well as generally improving the Notes and Examples provided.
+	Hopefully it won't be too many months before you see another
+	release. Check here for the lastest installment,
+
+	http://www.opensolaris.org/os/community/dtrace/dtracetoolkit
+------------------------------------------------------------------------------
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Index b/external/cddl/dtracetoolkit/dist/Docs/Index
new file mode 100644
index 0000000..525fd05
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Index
@@ -0,0 +1,152 @@
+Contents - Command Summary
+
+   The following is a list of commands found in the DTraceToolkit, along
+   with their directory location.
+
+Generally commands that end in a ".d" are DTrace scripts, and commands
+that don't are DTrace scripts wrapped in another language (eg, shell
+or Perl). See the Docs/Readme for instructions for finding their docs.
+
+DTraceToolkit/
+   dexplorer		run a series of scripts and archive output
+   dtruss		process syscall info. DTrace truss
+   dvmstat		vmstat by PID/name/command
+   errinfo		report syscall failures with details
+   execsnoop		snoop process execution as it occurs
+   iosnoop		snoop I/O events as they occur
+   iopattern		print disk I/O pattern
+   iotop		display top disk I/O events by process
+   opensnoop		snoop file opens as they occur
+   procsystime		analyse process system call times
+   rwsnoop		snoop read/write events
+   rwtop		display top read/write bytes by process
+   statsnoop		snoop file stats as they occur
+   Apps/
+	httpdstat.d	realtime httpd statistics
+	nfswizard.d	NFS client activity wizard
+	shellsnoop	snoop live shell activity
+	weblatency.d	website latency statistics
+   Cpu/
+	cputypes.d	list CPU types
+	cpuwalk.d	measure which CPUs a process runs on
+	dispqlen.d	dispatcher queue length by CPU
+	intbycpu.d	interrupts by CPU
+	intoncpu.d	interrput on-cpu usage
+	inttimes.d	interrput on-cpu time total
+	loads.d		print load averages
+	runocc.d	run queue occupancy by CPU
+	xcallsbypid.d	CPU cross calls by PID
+   Disk/
+	bitesize.d	print disk event size report
+	diskhits	disk access by file offset
+	hotspot.d	print disk event by location
+	iofile.d	I/O wait time by filename and process
+	iofileb.d	I/O bytes by filename and process
+	iopending	plot number of pending disk events
+	pathopens.d	pathnames successfully opened count
+	seeksize.d	print disk seek size report
+   Docs/
+	oneliners.txt	DTrace oneliners
+   FS/
+	fsrw.d		file system read/write event tracing
+	fspaging.d	file system read/write and paging tracing
+	rfsio.d		read FS I/O stats, with cache miss rate
+	rfileio.d	read file I/O stats, with cache miss rate
+	vopstat		vnode interface statistics
+   Java/
+	j_*.d		18 scripts for tracing Java using the hotspot provider
+   JavaScript/
+	js_*.d		14 scripts for JavaScript with the Mozilla provider
+   Kernel/
+	cputimes	print time by Kernel/Idle/Process
+	cpudists	time distribution by Kernel/Idle/Process
+	cswstat.d	context switch time statistics
+	dnlcps.d	DNLC stats by process
+	dnlcsnoop.d	snoop DNLC activity
+	dnlcstat	DNLC statistics
+	kstat_types.d	trace kstat reads with type info
+	modcalls.d	kernel function calls by module name
+	priclass.d	priority distribution by scheduling class
+	pridist.d	process priority distribution
+	putnexts.d	trace who is putting to which streams module
+	whatexec.d	examine the type of files executed
+   Locks/
+	lockbyproc.d	lock time by process name
+	lockbydist.d	lock time distribution by process name
+   Mem/
+	anonpgpid.d	anonymous memory paging info by PID on CPU
+	minfbypid.d	minor faults by PID
+	minfbyproc.d	minor faults by process name
+	pgpginbypid.d	pages paged in by PID
+	pgpginbyproc.d	pages paged in by process name
+	swapinfo.d	print virtual memory info
+	vmbypid.d	virtual memory stats by PID
+	vmstat.d	vmstat demo using DTrace
+	vmstat-p.d	vmstat -p demo using DTrace
+	xvmstat		extended vmstat demo using DTrace
+   Misc/
+	guess.d		guessing game
+	wpm.d		words per minute tracing
+	woof.d		audio alert for new processes
+   Net/
+	connections	print inbound TCP connections by process
+	icmpstat.d	print ICMP statistics
+	tcpsnoop	snoop TCP network packets by process, Solaris 10 3/05
+	tcpsnoop_snv	snoop TCP network packets by process, Solaris Nevada
+	tcpsnoop.d	snoop TCP network packets by process, Solaris 10 3/05
+	tcpsnoop_snv.d	snoop TCP network packets by process, Solaris Nevada
+	tcpstat.d	print TCP statistics
+	tcptop		display top TCP network packets by PID, Solaris 10 3/05
+	tcptop_snv	display top TCP network packets by PID, Solaris Nevada
+	tcpwdist.d	simple TCP write distribution by process
+	udpstat.d	print UDP statistics
+   Perl/
+	pl_*.d		12 scripts for tracing Perl
+   Php/
+	php_*.d		12 scripts for tracing Php
+   Proc/
+	crash.d		crashed application report
+	creatbyproc.d	snoop file creat() by process name
+	dappprof	profile user and lib function usage
+	dapptrace	trace user and lib function usage
+	fddist		file descriptor usage distribution
+	fileproc.d	snoop files opened by process
+	kill.d		snoop process signals
+	lastwords	print syscalls before exit
+	mmapfiles.d	mmap'd files by process
+	newproc.d	snoop new processes
+	pfilestat	show I/O latency break down by FD
+	pidpersec.d	print new PIDs per sec
+	readbytes.d	read bytes by process name
+	readdist.d	read distribution by process name
+	rwbbypid.d	read/write bytes by PID
+	rwbypid.d	read/write calls by PID
+	rwbytype.d	read/write bytes by vnode type
+	sampleproc	sample processes on the CPUs
+	shortlived.d	check short lived process time
+	sigdist.d	signal distribution by process name
+	stacksize.d	measure stack size for running threads
+	sysbypid.d	system stats by PID
+	syscallbyproc.d	system calls by process name
+	syscallbypid.d	system calls by process ID
+	threaded.d	sample multi-threaded CPU usage
+	topsysproc	display top syscalls by process name
+	writebytes.d	write bytes by process name
+	writedist.d	write distribution by process name
+   Python/
+	py_*.d		14 scripts for tracing Python
+   Shell/
+	sh_*.d		15 scripts for tracing the Bourne shell
+   System/
+	sar-c.d		sar -c demo using DTrace
+	syscallbysysc.d	system calls by system call
+	topsyscall	display top system call type
+	uname-a.d	uname -a demo using DTrace
+   Tcl/
+	tcl_*.d		15 scripts for tracing Tcl
+   User/
+	setuids.d	snoop setuid calls
+   Zones/
+	zvmstat		vmstat info by zone
+
+Total: 230 scripts
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Links b/external/cddl/dtracetoolkit/dist/Docs/Links
new file mode 100644
index 0000000..182bb54
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Links
@@ -0,0 +1,30 @@
+Links - DTrace links
+
+   http://www.opensolaris.org/os/community/dtrace/dtracetoolkit
+	DTraceToolkit Home
+
+   http://www.opensolaris.org/os/community/dtrace
+	OpenSolaris DTrace site
+
+   http://www.brendangregg.com/dtrace.html
+	DTraceToolkit
+	DTrace Tools
+
+   http://www.sun.com/bigadmin/content/dtrace
+	DTrace site on BigAdmin
+
+   http://docs.sun.com/db/doc/817-6223
+	DTrace Guide (answerbook)
+
+   http://blogs.sun.com/roller/page/bmc
+	Bryan Cantrill's Blog (DTrace Team)
+
+   http://blogs.sun.com/roller/page/ahl
+	Adam Leventhal's Blog (DTrace Team)
+
+   http://blogs.sun.com/mws
+	Mike Shapiro's Blog (DTrace Team)
+
+   http://www.solarisinternals.com/si/dtrace/index.php
+	DTrace scripts by Richard McDougall
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Maintainer b/external/cddl/dtracetoolkit/dist/Docs/Maintainer
new file mode 100644
index 0000000..3a8bb42
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Maintainer
@@ -0,0 +1,6 @@
+Maintainer - The DTraceToolkit Author and Maintainer,
+
+	Brendan Gregg 
+	brendan@sun.com		(or see website below for emailaddr)
+	http://www.brendangregg.com
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLcolors_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLcolors_notes.txt
new file mode 100644
index 0000000..6b27a2a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLcolors_notes.txt
@@ -0,0 +1,127 @@
+**************************************************************************
+* The following are additional notes on all programs that print a colorized
+* ("colourised") output, *color*.d.
+*
+* $Id: ALLcolors_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+* The colors aren't working, I see rubbish characters
+
+Try using a terminal that supports colors, such as gnome-terminal or dtterm.
+
+The following text should test the spectrum of colors for your terminal.
+Read this using "more" or "cat" (not "less" or "vim") to check if your
+terminal will print colors, and what they will look like:
+
+	Color		Test String		Dark Background
+	---------------------------------------------------------
+	black		[30mcolor test[0m		[30;40mcolor test[0m
+	red		[31mcolor test[0m		[31;40mcolor test[0m
+	green		[32mcolor test[0m		[32;40mcolor test[0m
+	yellow		[33mcolor test[0m		[33;40mcolor test[0m
+	blue		[34mcolor test[0m		[34;40mcolor test[0m
+	magenta		[35mcolor test[0m		[35;40mcolor test[0m
+	cyan		[36mcolor test[0m		[36;40mcolor test[0m
+	white		[37mcolor test[0m		[37;40mcolor test[0m
+
+and now for a test of attributes:
+
+	Color		Bold			Faint
+	---------------------------------------------------------
+	black		[1;30mcolor test[0m		[2;30mcolor test[0m
+	red		[1;31mcolor test[0m		[2;31mcolor test[0m
+	green		[1;32mcolor test[0m		[2;32mcolor test[0m
+	yellow		[1;33mcolor test[0m		[2;33mcolor test[0m
+	blue		[1;34mcolor test[0m		[2;34mcolor test[0m
+	magenta		[1;35mcolor test[0m		[2;35mcolor test[0m
+	cyan		[1;36mcolor test[0m		[2;36mcolor test[0m
+	white		[1;37mcolor test[0m		[2;37mcolor test[0m
+
+
+* Why so much green and violet in the toolkit scripts?
+
+As DTrace can examine the entire software stack, it is conceivable that
+your script could print events from many different layers each with their
+own color. Color scripts in the DTraceToolkit generally start by tracing
+two layers, with extra layers added by the end user as needed (you). The
+general plan is:
+
+	Software Layer		Example	Provider	Color
+	-------------------------------------------------------
+	Dynamic Language	perl			violet
+	User Library		pid:libperl		blue
+	OS Library		pid:libc		cyan
+	System Calls		syscall			green
+	Kernel and Drivers	fbt			red
+
+How these colors will look will depend on your terminal software. Useful
+variations can be made, for example using red/bold for kernel abstraction
+providers (io, vminfo, ...); and red/faint for raw kernel tracing (fbt).
+
+The color examples in this toolkit usually trace the syscall and dynamic
+language layers, hense the green and violet.
+
+
+* I don't like the choosen terminal colors / your colors suck
+
+It should be easy to customize them by tweaking the script. I've tried
+to use the following convention for declaring colors in D scripts:
+
+   dtrace:::BEGIN
+   {
+           color_shell = "\033[2;35m";             /* violet, faint */
+           color_line = "\033[1;35m";              /* violet, bold */
+           color_syscall = "\033[2;32m";           /* green, faint */
+           color_off = "\033[0m";                  /* default */
+   }
+
+That way, printf() statements can print these string variables to turn
+on and off colors, as needed. These strings contain an escape sequence to
+inform your terminal software to change the output color. Customizations
+can be made by tweaking the variables; refer to documentation for your
+terminal software to see what numbers will print what colors.
+
+For my terminal (dtterm), the numbers are (from dtterm(5)):
+
+	Attributes
+
+		1	bold
+		2	faint
+
+	Forground colors
+
+		30	black
+		31	red
+		32	green
+		33	yellow
+		34	blue
+		35	magenta
+		36	cyan
+		37	white
+
+	Background colors
+
+		40	black
+		41	red
+		...	etc, as above
+
+
+* I'd like to use this colored output on a website.
+
+The easiest way would be to change the script to output HTML rather than
+escape sequences. eg:
+
+   dtrace:::BEGIN
+   {
+           color_shell = "<font color=\"#FFAAFF\">";     /* violet, faint */
+           color_line = "<font color=\"#FF44FF\">";      /* violet, bold */
+           color_syscall = "<font color=\"#44CC44\">";   /* green, faint */
+           color_off = "</font>";                        /* default */
+   }
+
+Other tweaks can be made to either print the output in a <pre> tagged block;
+or as seperate lines ending in <br> along with changing the font to be
+fixed width.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLelapsed_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLelapsed_notes.txt
new file mode 100644
index 0000000..35101f6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLelapsed_notes.txt
@@ -0,0 +1,46 @@
+**************************************************************************
+* The following are notes for all scripts that measure elapsed time.
+*
+* $Id: ALLelapsed_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What is "elapsed" time?
+
+Elapsed time is the absolute time from one point to another. This time
+includes everything that happened between these points, including 
+off-CPU time due to other system events such as I/O, scheduling,
+interrupts, etc. It also includes the small overheads of DTrace itself.
+
+Elapsed times are useful for identifying where latencies are, since
+regardless of their nature (CPU, I/O, ...), they will be visible in
+elapsed time.
+
+Since elapsed times don't filter out anything, they are suseptible to
+"noise" - random system events that are unrelated to the analysis target.
+For that reason, it may be best to take several measurements of elapsed
+time and take the average (or run your workload several times and let
+DTrace take the average).
+
+See Notes/ALLoncpu_notes.txt for a description of a different time
+measurement, "on-CPU" time.
+
+
+* How is "elapsed" time measured?
+
+In DTrace, the following template provides elapsed time as "this->elapsed",
+
+   <start-probe>
+   {
+	   self->start = timestamp;
+   }
+   
+   <end-probe>
+   {
+	   this->elapsed = timestamp - self->start;
+	   self->start = 0;
+	   ...
+   }
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLexclusive_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLexclusive_notes.txt
new file mode 100644
index 0000000..14f0c67
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLexclusive_notes.txt
@@ -0,0 +1,78 @@
+**************************************************************************
+* Notes for all scripts that print exclusive function times (or method,
+* or subroutine).
+*
+* $Id: ALLexclusive_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What is "exclusive" function time?
+
+This is the time of function execution, from when the function begins to
+when it completes, excluding the time spent executing any child function.
+
+Exclusive function time can be calculated like this,
+
+   exclusive function time = time(function end) - time(function start) - 
+                             time(total child exclusive time)
+
+To do this, the DTrace script needs to keep trace of child function execution
+time, so that it can be subtracted from the parent execution time.
+
+Consider this Bourne shell program,
+     1  #!./sh
+     2  
+     3  func_c()
+     4  {
+     5          echo "Function C"
+     6          sleep 1
+     7  }
+     8  
+     9  func_b()
+    10  {
+    11          echo "Function B"
+    12          sleep 1
+    13          func_c
+    14  }
+    15  
+    16  func_a()
+    17  {
+    18          echo "Function A"
+    19          sleep 1
+    20          func_b
+    21  }
+    22  
+    23  func_a
+
+func_a() calls func_b() which calls func_c(). Tracing the flow using
+sh_flowtime.d shows,
+
+# ./sh_flowtime.d | cat -n
+     1    C TIME(us)         FILE             DELTA(us) -- NAME
+     2    0 3052991099265    func_abc.sh              2 -> func_a
+     3    0 3052991099324    func_abc.sh             59   > echo
+     4    0 3052992111638    func_abc.sh        1012314   | sleep
+     5    0 3052992111678    func_abc.sh             39   -> func_b
+     6    0 3052992111729    func_abc.sh             51     > echo
+     7    0 3052993121633    func_abc.sh        1009903     | sleep
+     8    0 3052993121693    func_abc.sh             60     -> func_c
+     9    0 3052993121745    func_abc.sh             52       > echo
+    10    0 3052994131634    func_abc.sh        1009888       | sleep
+    11    0 3052994131685    func_abc.sh             50     <- func_c
+    12    0 3052994131699    func_abc.sh             14   <- func_b
+    13    0 3052994131707    func_abc.sh              7 <- func_a
+
+the output of DTrace was piped through "cat -n" to enumerate the lines.
+
+Exclusive function time for func_a() in the above output would be the
+time from line 2 to line 13 minus the time from line 5 to 12 to subtract
+the time spent in both func_b() and func_c(). Or, you could say that
+exclusive time for func_a() is the time from lines 2 to 4.
+
+Looking back at the code, exclusive time for func_a() is the time spent
+in code lines 18 and 19 (and not line 20).
+
+See Notes/ALLinclusive_notes.txt for details on "inclusive" function time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLfbt_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLfbt_notes.txt
new file mode 100644
index 0000000..cb019d1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLfbt_notes.txt
@@ -0,0 +1,77 @@
+**************************************************************************
+* The following are notes for any script that uses the "fbt" provider.
+* To identify these scripts, check the "STABILITY" section of the script's
+* man page, or try grepping for "fbt" on the script.
+*
+* $Id: ALLfbt_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+What is the "fbt" provider?...
+
+* A DTrace library of probes that instruments raw kernel function calls.
+* An "unstable" provider; meaning, scripts written using "fbt" are not
+  guarenteed to work on future versions of the OS - including after
+  patching the kernel.
+
+In a perfect world...
+
+* None of the DTraceToolkit scripts would use the "fbt" provider; instead
+  they would all use stable providers such as "proc", "sched", "io", etc.
+* All the DTraceToolkit scripts would run on any system that supports DTrace.
+
+In the real world...
+
+* Not all stable providers exist yet. Many are in development, such as
+  stable networking providers.
+* In the meantime, useful tools such as "tcpsnoop" and "tcptop" can
+  only be written using the unstable "fbt" provider (and these scripts have
+  broken several times due to kernel changes since they were first written).
+* "fbt" provider based scripts,
+	- only run on a particular OS (eg, Solaris)
+	- may only run on a particular version of an OS (eg, Solaris 10 3/05)
+	- are likely to break for future OS releases (eg, Solaris 10 6/06)
+* "fbt" provider based scripts also make the impossible possible, albiet
+  in a very unstable way, as a temporary solution while stable providers
+  are still in development.
+* Once stable providers exist, "fbt" scripts can be rewritten to use them;
+  however these new scripts will only run on newer OS builds that support
+  the stable providers. (in other words, this won't help you if you remain
+  on Solaris 10 6/06; you'll need to upgrade, or survive with "fbt").
+* Only some of the DTraceToolkit scripts use "fbt", and only a portion of
+  those have encountered stability issues - so this issue is limited.
+
+The "fbt" provider exports raw kernel implementation, which isn't guarenteed
+to be stable nor should it ever be (to do so would freeze kernel development
+and bug fixes). The only practical solution is the development and
+integration of stable providers (although that doesn't help people who keep
+running older versions of the OS).
+
+More harm than good?...
+
+Is the inclusion of these "fbt" scripts more harm than good? Consider,
+
+* the good,
+	- shows what is possible with DTrace
+	- should help a number of people solve specific performance issues,
+	  on systems where they run
+	- a customer who really wants these scripts but on an OS version
+	  where they don't work, have at least the source as a starting
+	  point (and in some cases, the fix was trivial)
+
+* the bad,
+	- teases and frustrates people who find these scripts don't work
+	  on their OS
+
+To minimise this issue, only a small number of "fbt" scripts have been
+included, and they have been documented (see their man page) as unstable.
+
+Can I help?...
+
+If you really like an "fbt" based script and would like to keep using it
+in a stable way, it may help to raise that with your vendor (Sun for Solaris,
+Apple for MacOS). Sun has OpenSolaris forums, such as dtrace-discuss, which
+are read by their engineers and the public.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLflow_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLflow_notes.txt
new file mode 100644
index 0000000..5a9c093
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLflow_notes.txt
@@ -0,0 +1,64 @@
+**************************************************************************
+* Notes for all scripts that print a function or method flow.
+*
+* $Id: ALLflow_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What is a flow?
+
+Output that has some meaningful indent, such as function flow indented by
+stack depth. eg,
+
+   # ./pl_flow.d 
+     C TIME(us)          FILE             -- SUB
+     0 2963130861619     func_abc.pl      -> func_a
+     0 2963131870998     func_abc.pl        -> func_b
+     0 2963132871121     func_abc.pl          -> func_c
+     0 2963133881150     func_abc.pl          <- func_c
+     0 2963133881166     func_abc.pl        <- func_b
+     0 2963133881174     func_abc.pl      <- func_a
+   ^C
+
+
+* The output looks shuffled?
+
+Eg,
+
+   # ./pl_flow.d 
+     C TIME(us)          FILE             -- SUB
+     0 2963130861619     func_abc.pl      -> func_a
+     0 2963131870998     func_abc.pl        -> func_b
+     0 2963132871121     func_abc.pl          -> func_c
+     0 2963133881166     func_abc.pl        <- func_b
+     0 2963133881174     func_abc.pl      <- func_a
+     1 2963133881150     func_abc.pl          <- func_c
+   ^C
+
+Yes, this is shuffled. DTrace has been designed with a number of important
+goals in mind - including minimising the enabled performance overhead. To do
+this, per-CPU kernel buffers have been used to collect output, which are
+(currently) dumped in sequence by /usr/sbin/dtrace whenever it wakes
+up ("switchrate" tunable). So, on multi-CPU servers, there is always the
+possibility that any DTrace script can print out-of-order data.
+
+To deal with this behaviour, the flow scripts may,
+
+- print a "C" CPU column. If this changes from one line to the next then
+  the output is probably shuffled around that point. This is why the "C"
+  column appears in these flow scripts.
+- print a "TIME(us)" column. You can eyeball this for shuffles, or just
+  post sort the dtrace output.
+
+Now have a closer look at the pl_flow.d output above. The change in C 
+indicates that a shuffle may have happened, and the out-of-order TIME(us)
+shows that it did happen.
+
+It is possible that DTrace will be enhanced to always sort output before
+printing, and this behaviour is no longer an issue.
+
+See "The output seems shuffled?" in Notes/ALLsnoop_notes.txt for more
+notes on this behaviour.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLinclusive_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLinclusive_notes.txt
new file mode 100644
index 0000000..1d7a919
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLinclusive_notes.txt
@@ -0,0 +1,74 @@
+**************************************************************************
+* Notes for all scripts that print inclusive function times (or method,
+* or subroutine).
+*
+* $Id: ALLinclusive_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What is "inclusive" function time?
+
+This is the time of function execution, from when the function begins to
+when it completes. This includes the times from all child functions called.
+
+Inclusive function time is calculated in a very simple way,
+
+   inclusive function time = time(function end) - time(function start)
+
+Consider this Bourne shell program,
+
+     1  #!./sh
+     2  
+     3  func_c()
+     4  {
+     5          echo "Function C"
+     6          sleep 1
+     7  }
+     8  
+     9  func_b()
+    10  {
+    11          echo "Function B"
+    12          sleep 1
+    13          func_c
+    14  }
+    15  
+    16  func_a()
+    17  {
+    18          echo "Function A"
+    19          sleep 1
+    20          func_b
+    21  }
+    22  
+    23  func_a
+
+func_a() calls func_b() which calls func_c(). Tracing the flow using
+sh_flowtime.d shows,
+
+# ./sh_flowtime.d | cat -n
+     1    C TIME(us)         FILE             DELTA(us) -- NAME
+     2    0 3052991099265    func_abc.sh              2 -> func_a
+     3    0 3052991099324    func_abc.sh             59   > echo
+     4    0 3052992111638    func_abc.sh        1012314   | sleep
+     5    0 3052992111678    func_abc.sh             39   -> func_b
+     6    0 3052992111729    func_abc.sh             51     > echo
+     7    0 3052993121633    func_abc.sh        1009903     | sleep
+     8    0 3052993121693    func_abc.sh             60     -> func_c
+     9    0 3052993121745    func_abc.sh             52       > echo
+    10    0 3052994131634    func_abc.sh        1009888       | sleep
+    11    0 3052994131685    func_abc.sh             50     <- func_c
+    12    0 3052994131699    func_abc.sh             14   <- func_b
+    13    0 3052994131707    func_abc.sh              7 <- func_a
+
+the output of DTrace was piped through "cat -n" to enumerate the lines.
+
+Inclusive function time for func_a() in the above output would be the
+time from line 2 to line 13. This inclusive time includes the time
+for both func_b() and func_c().
+
+Looking back at the code, inclusive time for func_a() is the time spent
+in code lines 18, 19 and 20.
+
+See Notes/ALLexclusive_notes.txt for details on "exclusive" function time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLjava_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLjava_notes.txt
new file mode 100644
index 0000000..c0027a5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLjava_notes.txt
@@ -0,0 +1,35 @@
+**************************************************************************
+* Notes for all scripts that trace Java using the hotspot provider.
+*
+* $Id: ALLjava_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+* I see "drops"
+
+If you see the following output,
+   
+   dtrace: 2547 drops on CPU 0
+
+This means that JVM events (usually methods) were executed too quickly for
+DTrace to keep up, and as a safety measure DTrace has let events slip by.
+This means, at least, that the output is missing lines. At worst, the
+output may contain corrupted values (time deltas between events that were
+dropped).
+
+If you see drops, you should first ask yourself whether you need to be
+tracing such frequent events at all - is there another way to get the same
+data?  For example, see the j_profile.d script, which uses a different
+technique (sampling) than most of the other Java scripts (tracing).
+
+You can try tweaking DTrace tunables to prevent DTrace from dropping events.
+A key tunable is "bufsize", and can be set in scripts like so,
+
+   #pragma D option bufsize=32m
+
+That line means that 32 Mbytes will be allocated to the DTrace primary
+buffer per-CPU (how depends on bufpolicy). If you have many CPUs, say 8,
+then the above line means that 256 Mbytes (32 * 8) will be allocated as a
+buffer while your D script is running. 
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLoncpu_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLoncpu_notes.txt
new file mode 100644
index 0000000..27c33a6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLoncpu_notes.txt
@@ -0,0 +1,42 @@
+**************************************************************************
+* The following are notes for all scripts that measure on-CPU times.
+*
+* $Id: ALLoncpu_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What is "on-CPU" time?
+
+This is the time that a thread spent running on a CPU. It does not include
+time spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy,
+since they measure how much CPU time has been consumed by that thread.
+
+On-CPU times are also less susceptible to system "noise" than elapsed times,
+since much of the noise will be filtered out. DTrace itself also tries
+to subtract the small overheads of DTrace from the on-CPU time, to improve
+the accuracy of this time.
+
+See Notes/ALLelapsed_notes.txt for a description of a different time
+measurement, "elapsed" time.
+
+
+* How is "on-CPU" time measured?
+
+In DTrace, the following template provides on-CPU time as "this->oncpu",
+
+   <start-probe>
+   {
+	   self->vstart = vtimestamp;
+   }
+   
+   <end-probe>
+   {
+	   this->oncpu = vtimestamp - self->vstart;
+	   self->vstart = 0;
+	   ...
+   }
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLoverhead.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLoverhead.txt
new file mode 100644
index 0000000..76f068e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLoverhead.txt
@@ -0,0 +1,96 @@
+**************************************************************************
+* The following are notes regarding the overheads of running DTrace.
+*
+* $Id: ALLoverhead.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+The following are notes regarding the overheads of running DTrace.
+
+* What are the overheads of running DTrace?
+
+Often negligible.
+
+It depends what the DTrace script does, in particular, the frequency of
+events that it is tracing.
+
+The following tips should explain what the overheads probably are,
+
+- if your script traces less than 1000 events per second, then the overhead
+  is probably negligible. ie, less than 0.1% CPU.
+- if your script traces more than 100,000 events per second, then the
+  overhead will start to be significant. If you are tracing kernel events,
+  then perhaps this could be 10% per CPU. If you are tracing user land
+  application events, then the overhead can be greater than 30% per CPU.
+- if your script produes pages of output, then the CPU cost of drawing
+  this output to the screen and rendering the fonts is usually far greater
+  than DTrace itself. Redirect the output of DTrace to a file in /tmp
+  ("-o" or ">").
+- a ballpark figure for the overhead of a DTrace probe would be 500 ns.
+  This can be much less (kernel only), or much more (many user to kerel
+  copyin()s); I've provided it to give you a very rough idea. Of course,
+  as CPUs become faster, this overhead will become smaller.
+
+If overheads are a concern - then perform tests to measure their magnitude
+for both your workload and the scripts applied, such as benchmarks with
+and without DTrace running. Also read the scripts you are using, and
+consider how frequent the probes will fire, and if you can customise the
+script to reduce the frequency of probes.
+
+For example, scripts that trace,
+
+	pid$target:::entry,
+	pid$target:::return
+
+would usually cause significant performance overhead, since they fire two
+probes for every function called (and can easily reach 100,000 per second).
+You could reduce this by modifying the script to only trace the libraries
+you are interested in. For example, if you were only interested in
+libsocket and libnsl, then change the above lines wherever they appeared to,
+
+	pid$target:libsocket::entry,
+	pid$target:libsocket::return,
+	pid$target:libnsl::entry,
+	pid$target:libnsl::return
+
+and you may notice the overheads are significantly reduced (especially anytime
+you drop libc and libdl). To go further, only list functions of interest,
+
+	pid$target:libsocket:connect:entry,
+	pid$target:libsocket:connect:return,
+	pid$target:libsocket:listen:entry,
+	pid$target:libsocket:listen:return,
+	[...]
+
+There are additional notes in Docs/Faq about the DTraceToolkit's scripts
+and performance overhead.
+
+
+* When are the overheads a problem?
+
+When they are significant (due to frequent events), and you are tracing
+in a production environment that is sensitive to additional CPU load.
+
+Overheads should be considered if you are measuring times (delta, elapsed,
+on-CPU, etc) for performance analysis. In practise, overheads aren't
+that much of a problem -- the script will either identify your issues
+correctly (great), or not (keep looking). Any it is usually easy to quickly
+confirm what DTrace does find by using other tools, or by hacking quick
+code changes. You might be using DTrace output that you know has a
+significant margin of error - but that becomes moot after you prove that
+the performance fix works through benchmarking a quick fix.
+
+At the end of the day, if DTrace helps find real measurable performance wins
+(and it should), then it has been successful.
+
+
+* When are overheads not a problem?
+
+When the script is not tracing extreamly frequent events.
+
+Also, when you are in development and tracing events for troubleshooting
+purposes (args to functions, for example), DTrace overheads are usually 
+not an issue at all.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLperl_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLperl_notes.txt
new file mode 100644
index 0000000..11bc880
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLperl_notes.txt
@@ -0,0 +1,44 @@
+**************************************************************************
+* The following are notes for all the Perl tracing scripts,
+*
+* $Id: ALLperl_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* Where did those "BEGIN" subroutine calls come from?
+
+The following counts subroutines from the example program, Code/Perl/hello.pl,
+
+   # pl_subcalls.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    FILE                             SUB                                 CALLS
+
+no subroutines were called, so there is no data to output.
+
+Now a similar program is traced, Code/Perl/hello_strict.pl, which uses
+the "strict" pragma,
+
+   # pl_subcalls.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    FILE                             SUB                                 CALLS
+    hello_strict.pl                  BEGIN                                   1
+    strict.pm                        bits                                    1
+    strict.pm                        import                                  1
+
+not only were functions from "strict.pm" traced, but a "BEGIN" function
+ran from the "hello_strict.pl" program - which doesn't appear to use "BEGIN",
+
+   # cat -n ../Code/Perl/hello_strict.pl
+        1  #!./perl -w
+        2  
+        3  use strict;
+        4  
+        5  print "Hello World!\n";
+
+Perl appears to add a BEGIN block to process the "use" keyword. This makes
+some degree of sense.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLsnoop_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLsnoop_notes.txt
new file mode 100644
index 0000000..06e07bf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/ALLsnoop_notes.txt
@@ -0,0 +1,94 @@
+**************************************************************************
+* The following are additional notes on ALL of the *snoop programs (such as
+* execsnoop, iosnoop, ..., and dapptrace, dtruss).
+*
+* $Id: ALLsnoop_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* The output seems shuffled?
+
+Beware - due to the (current) way DTrace works, on multi-CPU systems there
+is no guarentee that if you print traced events the output is in the same
+order that the events occured.
+
+This is because events details are placed in kernel per-CPU buffers, and then
+dumped in sequence by the DTrace consumer (/usr/sbin/dtrace) whenever it
+wakes up ("switchrate" tunable). The DTrace consumer reads and prints the
+buffers one by one, it doesn't combine them and sort them. 
+
+To demonstrate this,
+
+   # dtrace -n 'profile:::profile-3hz { trace(timestamp); }'
+   dtrace: description 'profile-3hz ' matched 1 probe
+   CPU     ID                    FUNCTION:NAME
+     0  41241                     :profile-3hz  1898015274778547
+     0  41241                     :profile-3hz  1898015608118262
+     0  41241                     :profile-3hz  1898015941430060
+     1  41241                     :profile-3hz  1898015275499014
+     1  41241                     :profile-3hz  1898015609173485
+     1  41241                     :profile-3hz  1898015942505828
+     2  41241                     :profile-3hz  1898015275351257
+     2  41241                     :profile-3hz  1898015609180861
+     2  41241                     :profile-3hz  1898015942512708
+     3  41241                     :profile-3hz  1898015274803528
+     3  41241                     :profile-3hz  1898015608120522
+     3  41241                     :profile-3hz  1898015941449884
+   ^C
+
+If you read the timestamps carefully, you'll see that they aren't quite
+in chronological order. If you look at the CPU column while reading the
+timestamps, the way DTrace works should become clear.
+
+Most of the snoop tools have a switchrate of 10hz, so events may be shuffled
+within a tenth of a second - not hugely noticable.
+
+This isn't really a problem anyway. If you must have the output in the correct
+order, find the switch that prints timestamps and then sort the output.
+As an example,
+
+   # iosnoop -t > out.iosnoop
+   ^C
+   # sort -n out.iosnoop
+   
+   TIME             UID   PID D    BLOCK   SIZE       COMM PATHNAME
+   183710958520       0  3058 W 10507848   4096       sync /var/log/pool/poold
+   183710990358       0  3058 W  6584858   1024       sync /etc/motd
+   183711013469       0  3058 W    60655   9216       sync <none>
+   183711020149       0  3058 W    60673   1024       sync <none>
+
+All shell-wrapped scripts should have some way to print timestamps, and
+many DTrace-only scripts print timestamps by default. If you find a script
+that doesn't print timestamps, it should be trivial for you to add an
+extra column.
+
+To add a microsecond-since-boot time column to a script, try adding this
+before every printf() you find,
+
+	printf("%-16d ", timestamp / 1000);
+
+except for the header line, where you can add this,
+
+	printf("%-16s ", "TIME(us)");
+
+Now you will be able to post sort the script output on the TIME(us) column.
+
+In practise, I find post sorting the output a little annoying at times,
+and use a couple of other ways to prevent shuffling from happening in the
+first place:
+
+- offline all CPUs but one when running flow scripts. Naturally, you
+  probably don't want to do this on production servers, this is a trick
+  that may be handy for when developing on workstations or laptops. Bear
+  in mind that if you are trying to DTrace certain issues, such as
+  multi-thread locking contention, then offlining most CPUs may eliminate
+  the issue you are trying to observe.
+- pbind the target process of interest to a single CPU. Most OSes provide
+  a way to glue a process to a single CPU; Solaris has both pbind and psrset.
+
+Another way to solve this problem would be to enhance DTrace to always print
+in-order output. Maybe this will be done one day; maybe by the time you
+are reading this it has already been done?
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/Readme b/external/cddl/dtracetoolkit/dist/Docs/Notes/Readme
new file mode 100644
index 0000000..99a1807
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/Readme
@@ -0,0 +1,21 @@
+Notes - Discussion about tools and their output
+
+   This directory contains files that provide deeper discussions about
+   tools and their output.
+
+   Files are either named,
+
+	ALL*_notes.txt	- notes that cover a collection of tools
+	*_notes.txt	- notes that cover a specific tool
+
+   These files are exist as an informal place to dump "stuff". This might
+   range from caveats to bear in mind when interpreting tool output, to
+   general or bizzare knowledge. Tool documentation is placed in,
+
+	/Man		- formal man pages
+	/Examples	- demos and how to read the output
+	*.d		- implementation notes within the code itself
+	/Notes		- everything else
+
+   Many of the scripts and man pages refer to files in this directory.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/cputimes_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/cputimes_notes.txt
new file mode 100644
index 0000000..210417c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/cputimes_notes.txt
@@ -0,0 +1,138 @@
+**************************************************************************
+* The following are additional notes on the cputimes command.
+*
+* $Id: cputimes_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* How cputimes works
+
+cputimes measures time consumed by the kernel, idle therads and processes,
+by tracking the activity of the schedular. In particular we track on-cpu
+and off-cpu events for kernel therads, measuring the timestamps at each event.
+
+
+* Why cputimes?
+
+If you are interested in how much time processes are consuming, the data 
+given by "prstat" or "prstat -m" is fine. However there is no easy way to 
+see kernel consumed time, which is the idea behind cputimes.
+
+
+* What does it mean?
+
+The output shows categories of threads by the sum of time, in nanoseconds.
+
+A nanosecond is 10^-9, or 0.000000001 of a second. This program uses
+nanoseconds as units, but does not have nanosecond accuracy. It would be 
+reasonable to assume that this has microsecond accuracy (10^-6), so in 
+practise ignore the last three digits of the times.
+
+The sections reported are,
+
+PROCESSES - the sum of all the process time on the CPU. 
+KERNEL - the sum of the time spent in the kernel.
+IDLE - the time the kernel spent in the idle thread, waiting for some work.
+
+If your system isn't doing much, then the idle time will be quite large. If
+your system is running many applications, then there may be no idle time
+at all - instead most of the time appearing under processes.
+
+
+* When is there a problem?
+
+Expect to see most of the time in processes or idle, depending on how busy 
+your server is. Seeing a considerable amout of time in kernel would 
+definately be interesting.
+
+The kernel generally doesn't use much CPU time, usually less than 5%. 
+If it were using more, that may indicate heavy activity from an interrupt 
+thread, or activity caused by DTrace. 
+
+For example,
+
+   # cputimes 1
+   2005 Apr 27 23:49:32,
+            THREADS        TIME (ns)
+               IDLE         28351679
+             KERNEL        436022725
+            PROCESS        451304688
+
+In this sample the kernel is using a massive amount of the CPUs, around 47%.
+This sample was taken during heavy network utilisation, the time consumed 
+by the TCP/IP and network driver threads (and DTrace). The "intrstat" command
+could be used for further analysis of the interrupt threads responsible
+for servicing the network interface.
+
+
+* Problems with cputimes
+
+The way cputimes measures schedular activity turns out to be a lot of work. 
+There are many scheduling events per second where one thread steps onto a 
+CPU and another leaves. It turns out that cputimes itself causes some degree 
+of kernel load.
+
+Here we run 1 cputimes,
+
+   # cputimes 1
+   2005 May 15 12:00:41,
+            THREADS        TIME (ns)
+             KERNEL         12621985
+            PROCESS        982751579
+   2005 May 15 12:00:42,
+            THREADS        TIME (ns)
+             KERNEL         12267577
+            PROCESS        983513765
+   [...]
+
+Now a second cputimes is run at the same time,
+
+   # cputimes 1
+   2005 May 15 12:02:06,
+            THREADS        TIME (ns)
+             KERNEL         17366426
+            PROCESS        978804165
+   2005 May 15 12:02:07,
+            THREADS        TIME (ns)
+             KERNEL         17614829
+            PROCESS        978671601
+   [...]
+
+And now a third,
+
+   # cputimes 1
+   2005 May 15 12:03:09,
+            THREADS        TIME (ns)
+             KERNEL         21303089
+            PROCESS        974925124
+   2005 May 15 12:03:10,
+            THREADS        TIME (ns)
+             KERNEL         21222992
+            PROCESS        975152727
+   [...]
+
+Each extra cputimes is consuming an extra 4 to 5 ms of the CPU as kernel time.
+Around 0.5%. This can be used as an estimate of the kernel load caused by 
+running cputimes, and a similar strategy could be used to measure the kernel 
+load of other DTrace scripts.
+
+However the following CPU characteristics must be taken into consideration,
+
+   # psrinfo -v
+   Status of virtual processor 0 as of: 05/15/2005 12:06:05
+     on-line since 04/30/2005 13:32:32.
+     The i386 processor operates at 867 MHz,
+           and has an i387 compatible floating point processor.
+
+as well as the type of activity that was also running on the system, which
+cputimes was monitoring (frequency of scheduling events).
+
+A system with a slower CPU will use a larger proportion of kernel time to
+perform the same tasks. Also, a system that is context switching more 
+(switching between different processes) is likely to consume more kernel time
+as well.
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/dappprof_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/dappprof_notes.txt
new file mode 100644
index 0000000..59e8083
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/dappprof_notes.txt
@@ -0,0 +1,14 @@
+**************************************************************************
+* The following are extra notes on the dappprof command.
+*
+* $Id: dappprof_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* Can I trust the elapsed and on-cpu times?
+
+See the documentation for this point in the dtruss_notes.txt file.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/dapptrace_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/dapptrace_notes.txt
new file mode 100644
index 0000000..440b7ec
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/dapptrace_notes.txt
@@ -0,0 +1,19 @@
+**************************************************************************
+* The following are extra notes on the dapptrace command.
+*
+* $Id: dapptrace_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* Can I trust the elapsed and on-cpu times?
+
+See the documentation for this point in the dtruss_notes.txt file.
+
+
+
+* The output appears shuffled?
+
+Read the answer to this in ALLsnoop_notes.txt.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/dtruss_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/dtruss_notes.txt
new file mode 100644
index 0000000..39888ce
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/dtruss_notes.txt
@@ -0,0 +1,97 @@
+**************************************************************************
+* The following are additional notes on the dtruss program.
+*
+* $Id: dtruss_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* Can I trust the elapsed and on-cpu times?
+
+Firstly, lets see dtruss do something cool,
+
+   # dtruss -eo -n bash
+   PID/LWP    ELAPSD    CPU SYSCALL(args)           = return
+    6215/1:       57     37 write(0x2, "h\0", 0x1)          = 1 0
+    6215/1:   357210     45 read(0x0, "e\0", 0x1)           = 1 0
+    6215/1:       53     37 write(0x2, "e\0", 0x1)          = 1 0
+    6215/1:   359510     46 read(0x0, "l\0", 0x1)           = 1 0
+    6215/1:       57     42 write(0x2, "l\0", 0x1)          = 1 0
+    6215/1:   166495     47 read(0x0, "l\0", 0x1)           = 1 0
+    6215/1:       56     40 write(0x2, "l\0", 0x1)          = 1 0
+    6215/1:   346076     44 read(0x0, "o\0", 0x1)           = 1 0
+    6215/1:       54     38 write(0x2, "o\0", 0x1)          = 1 0
+    6215/1:   349852     45 read(0x0, " \0", 0x1)           = 1 0
+    6215/1:       54     39 write(0x2, " \0", 0x1)          = 1 0
+
+In the above, the slow elapsed times for reads are due to the process context
+switching off the CPU while we wait for the next keystroke. For example,
+the second line shows an on-CPU time of 45 us and an elapsed time of 357210 us.
+In fact, the elapsed times are equal to the inter-keystroke delays.
+
+
+What about the writes? Their elapsed times are longer than the on-CPU times 
+also. Did we context switch off for them too? ... Lets run a different demo,
+
+   # dtruss -eo date
+    ELAPSD    CPU SYSCALL(args)             = return
+   Mon Jul 25 21:41:40 EST 2005
+        44     23 resolvepath("/usr/bin/date\0", 0x80476CC, 0x3FF)          = 13 0
+        10      1 sysconfig(0x6, 0xB25A1, 0xFEC1D444)               = 4096 0
+        36     28 resolvepath("/usr/lib/ld.so.1\0", 0x80476CC, 0x3FF)              = 12 0
+        18      9 xstat(0x2, 0x8047FEB, 0x8047AF8)          = 0 0
+        25     16 open("/var/ld/ld.config\0", 0x0, 0x0)             = -1 Err#2
+        27     18 xstat(0x2, 0xD27FBF38, 0x80473B0)                 = 0 0
+        17      9 resolvepath("/lib/libc.so.1\0", 0x8047438, 0x3FF)                = 14 0
+        21     13 open("/lib/libc.so.1\0", 0x0, 0x0)                = 3 0
+        30     22 mmap(0x10000, 0x1000, 0x5)                = -763559936 0
+        15      6 mmap(0x10000, 0xCE000, 0x0)               = -764411904 0
+        24     16 mmap(0xD2700000, 0xB5A45, 0x5)            = -764411904 0
+        21     12 mmap(0xD27C6000, 0x5EB3, 0x3)             = -763600896 0
+        18      9 mmap(0xD27CC000, 0x15C0, 0x3)             = -763576320 0
+        14      5 munmap(0xD27B6000, 0x10000)               = 0 0
+       186    176 memcntl(0xD2700000, 0x1B8D8, 0x4)                 = 0 0
+        17      7 close(0x3)                = 0 0
+   [...]
+
+For every syscall, the elapsed time is around 10 us (microseconds) slower
+than the on-cpu time. These aren't micro context switches, this is due to
+DTrace slowing down the program! The more closely we measure something the
+more we effect it. (See Heisenberg's uncertainty principle).
+
+Ok, so for the above output we can tell that each elapsed time is around 10 us
+longer than it should be. That's fine, since it's fairly consistant and not
+a huge difference. This is an x86 server with a 867 MHz CPU. 
+
+
+Now lets try the same on an Ultra 5 with a 360 MHz CPU,
+
+   # dtruss -eo date
+    ELAPSD    CPU SYSCALL(args)             = return
+       216    142 resolvepath("/usr/bin/date\0", 0xFFBFF338, 0x3FF)                = 13 0
+       234    187 resolvepath("/usr/lib/ld.so.1\0", 0xFFBFF338, 0x3FF)             = 12 0
+       113     67 stat("/usr/bin/date\0", 0xFFBFF818, 0xFFBFFFEB)           = 0 0
+       136     90 open("/var/ld/ld.config\0", 0x0, 0x0)             = -1 Err#2
+       107     61 stat("/opt/onbld/lib/libc.so.1\0", 0xFFBFF330, 0xFFBFF55C)       = -1 Err#2
+        98     54 stat("/opt/SUNWspro/lib/libc.so.1\0", 0xFFBFF330, 0xFFBFF55C)    = -1 Err#2
+        96     53 stat("/opt/SUNWmlib/lib/libc.so.1\0", 0xFFBFF330, 0xFFBFF55C)    = -1 Err#2
+        97     54 stat("/usr/sfw/lib/libc.so.1\0", 0xFFBFF330, 0xFFBFF55C)         = -1 Err#2
+        96     53 stat("/lib/libc.so.1\0", 0xFFBFF330, 0xFFBFF55C)          = 0 0
+       134     92 resolvepath("/lib/libc.so.1\0", 0xFFBFEF30, 0x3FF)               = 14 0
+       109     69 open("/lib/libc.so.1\0", 0x0, 0x0)                = 3 0
+       177    132 mmap(0x10000, 0x2000, 0x5)                = -12976128 0
+   [...]
+
+Now the time difference is around 40 us, and fairly consistant.
+
+
+This difference is find so long as we bear it in mind. Or, run DTrace
+on faster servers where the difference is much less.
+
+
+
+* The output appears shuffled?
+
+Read the answer to this in ALLsnoop_notes.txt.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/iosnoop_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/iosnoop_notes.txt
new file mode 100644
index 0000000..4cc3053
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/iosnoop_notes.txt
@@ -0,0 +1,99 @@
+**************************************************************************
+* The following are additional notes on the iosnoop program.
+*
+* $Id: iosnoop_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What does the output represent?
+
+The output is disk events - I/O operations that cause the disk to physically
+read or write data. The output is not application I/O events which may be
+absorbed by memory caches - many of which will be. The output really is
+physical disk events.
+
+iosnoop uses probes from the "io" provider - which traces the block device
+driver before disk events happen. disk events. The stack goes like this,
+
+       application
+         |
+         V
+       syscall
+         |
+         V
+       vfs
+         |
+         V
+       ufs/zfs/...
+         |
+         V
+       block device driver
+         |
+         V
+       physical device driver
+         |
+         V
+       disk
+
+Due to caching (after vfs) few events will make it to the disk for iosnoop
+to see. If you want to trace all I/O activity, try using syscall provider
+based scripts first.
+
+
+* What do the elapsed and delta times mean?
+
+Glad you asked!
+
+The times may *not* be as useful as they appear. I should also add that 
+this quickly becomes a very complex topic,
+
+There are two different delta times reported. -D prints the
+elapsed time from the disk request (strategy) to the disk completion
+iodone); -o prints the time for the disk to complete that event
+since it's last event (time between iodones, or since idle->strategy).
+
+The elapsed time is equivalent to the response time from the application
+request to the application completion. The delta time resembles the
+service time for this request (resembles means it will be generally 
+correct, but not 100% accurate). The service time is the the time for the
+disk to complete the request, after it has travelled through any bus or
+queue.
+
+buuuttt.... you need to think carefully about what these times mean before 
+jumping to conclusions. For example,
+
+   You troubleshoot an application by running iosnoop and filtering 
+   on your application's PID. You notice large times for the disk events
+   (responce, service, for this example it doesn't matter). 
+   Does this mean there is a problem with that application?
+   What could be happening is that a different application is also using
+   the disks at the same time, and is causing the disk heads to seek to
+   elsewhere on the disk surface - increasing both service and response time.
+
+hmmm! so you can't just look at one application, one set of numbers, and
+understand fully what is going on. 
+
+But it gets worse. Disks implement "tagged queueing", where events in the
+queue are reshuffeled to promote "elevator seeking" of the disk heads (this
+reduces head seeking). So the time for a disk event can be effected not
+just by the previous event (and previous location the heads had seeked to), 
+but the surrounding events that enter the queue.
+
+So the good and the bad. The good news is that iosnoop makes it easy to
+fetch disk event data on a live system, the bad news is that understanding
+all the data is not really easy.
+
+For further information on disk measurements see,
+
+   "How do disks really work?" - Adrian Cockcroft, SunWorld Online, June 1996
+   "Sun Performance and Tuning" - Adrian Cockcroft, Richard Pettit
+   "Solaris Internals" - Richard McDougall, Jim Mauro
+
+
+
+* The output appears shuffled?
+
+Read the answer to this in ALLsnoop_notes.txt.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/iotop_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/iotop_notes.txt
new file mode 100644
index 0000000..f0fcc37
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/iotop_notes.txt
@@ -0,0 +1,48 @@
+**************************************************************************
+* The following are additional notes on the iotop program.
+*
+* $Id: iotop_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* When using -P, how can a process exceed 100% I/O?
+
+These percentages are based on disk time. They are in terms of a single disk.
+
+200% could mean 2 disks @ 100%, or 4 @ 50%, or some such combination.
+
+I could have capped it at 100% by dividing by disk count. I didn't. Disk
+utilisation is an asymmetric resource (unlike CPUs, which are (mostly)
+symmetric), so it's unfair to divide by all the disks capacity as an
+application cannot use every disks capacity (eg, writing to a /opt disk only).
+
+Would it be wise to report utilisation as 10% of overall capacity, if it
+could mean that 1 disk was SATURATED out of ten? A value of 10% could
+understate the problem.
+
+Instead I add the utilisations and don't divide. 1 disk saturated out of 10
+would be reported as 100% utilisation. This has the danger of overstating
+the problem (consider all ten disks at 10% utilisation, this would also be
+reported as 100%). 
+
+Nothing is perfect when you are summarising to a single value!
+
+
+
+* Beware of overcounting metadevices, such as SVM and Veritas.
+
+The current version of iotop reports on anything the kernel believes to be
+a block disk device. A problem happens when a metadevice contains physical
+disk devices, and iotop reports on activity to both the metadevice and
+the physical devices, which overcounts activity.
+
+Consider a metadevice that contains two physical disks which are both
+running at 100% utilised. iotop -P may report 300% utilisation, which is
+200% for the disks + 100% for the metadevice. We'd probably want to see
+a value of 200%, not 300%. Eliminating the counting of metadevices in DTrace
+isn't easy (without inelegant "hardwiring" of device types), however I do
+intend to find a way to fix this in future versions.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Notes/procsystime_notes.txt b/external/cddl/dtracetoolkit/dist/Docs/Notes/procsystime_notes.txt
new file mode 100644
index 0000000..ad099b1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Notes/procsystime_notes.txt
@@ -0,0 +1,14 @@
+**************************************************************************
+* The following are extra notes on the procsystime command.
+*
+* $Id: procsystime_notes.txt,v 1.1.1.1 2015/09/30 22:01:08 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* Can I trust the elapsed and on-cpu times?
+
+See the documentation for this point in the dtruss_notes.txt file.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Readme b/external/cddl/dtracetoolkit/dist/Docs/Readme
new file mode 100644
index 0000000..1f98f38
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Readme
@@ -0,0 +1,21 @@
+Docs - DTraceToolkit Documentation
+
+   Docs/Contents	summary of toolkit commands
+   Examples		examples of command usage
+   Notes		notes on commands
+
+The following may be followed to learn about a DTraceToolkit command,
+
+	1. read "Contents" for a command name and toolkit location.
+	2. run the command with "-h" to check it's usage.
+	3. read the manpage from Man/man1m.
+	4. read the examples from Examples.
+	5. read the notes from Notes.
+	6. read the script itself
+
+Try the following to discover all docs related to a command, eg iosnoop,
+
+	find . | grep iosnoop
+
+best run from the DTraceToolkit root directory.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/ToDo b/external/cddl/dtracetoolkit/dist/Docs/ToDo
new file mode 100644
index 0000000..5561ea4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/ToDo
@@ -0,0 +1,7 @@
+ToDo - To Do List
+
+   The following is a list of todo reminders for the DTraceToolkit.
+
+* Run PHP examples on mediawiki.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/Who b/external/cddl/dtracetoolkit/dist/Docs/Who
new file mode 100644
index 0000000..f1019a9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/Who
@@ -0,0 +1,74 @@
+Who - Who the Contributers are
+
+   This is a record of contributors to the DTraceToolkit whose name isn't 
+   already mentioned (such as in the source of a script). 
+
+
+In alphabetical first-name order,
+
+Adam Leventhal
+	Location: CA, USA
+	Blog:     http://blogs.sun.com/ahl
+	wrote DTrace itself
+
+Ben Rockwood
+	Location: CA, USA
+	Website:  http://www.cuddletech.com
+	first encouraged the idea of DTrace oneliners
+
+Brendan Gregg
+	Location: Sydney, Australia
+	Website:  http://www.brendangregg.com
+	Email:    brendan.gregg@tpg.com.au (maybe, check the website above)
+	Blog:     http://bdgregg.blogspot.com
+	Notes:    Also see http://www.brendangregg.com/dtrace.html
+	created toolkit, tools, manpages, example docs, notes docs, testing
+
+Bryan Cantrill
+	Location: CA, USA
+	Blog:     http://blogs.sun.com/bmc
+	wrote DTrace itself
+
+David Rubio
+	technical advice
+
+James Dickens
+	Location: WI, USA
+	Blog:     http://uadmin.blogspot.com
+	tool ideas and testing
+
+Jonathan Adams
+	Blog:     http://blogs.sun.com/jwadams
+	wrote stacksize.d
+	
+Mike Shapiro
+	Location: CA, USA
+	Blog:     http://blogs.sun.com/mws
+	wrote DTrace itself
+
+Nathan Kroenert
+	Location: Sydney, Australia
+	thoughts on how to present tools
+
+Richard McDougall
+	Location: CA, USA
+	Website:  http://www.solarisinternals.com
+	Blog:     http://blogs.sun.com/rmc
+	wrote pfilestat, vopstat
+
+Ryan Matteson
+	Location: USA
+	Blog:     http://blogomatty.blogspot.com
+	tool ideas and testing
+
+Stefan Parvu
+	Blog:     http://stefanparvu.blogspot.com
+	suggestions, bug fixes, extensive testing
+
+unknown Sun people
+	wrote /usr/demo/dtrace tools, which some of the toolkit tools are
+	based on. See "BASED ON" in source or man page, or try the following,
+		cd Bin
+		grep 'BASED ON' *
+	for a list.
+
diff --git a/external/cddl/dtracetoolkit/dist/Docs/cddl1.txt b/external/cddl/dtracetoolkit/dist/Docs/cddl1.txt
new file mode 100644
index 0000000..b3487ad
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/cddl1.txt
@@ -0,0 +1,385 @@
+
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+
+
+      1. Definitions.
+
+            1.1. ÒContributorÓ means each individual or entity that
+            creates or contributes to the creation of Modifications.
+
+            1.2. ÒContributor VersionÓ means the combination of the
+            Original Software, prior Modifications used by a
+            Contributor (if any), and the Modifications made by that
+            particular Contributor.
+
+            1.3. ÒCovered SoftwareÓ means (a) the Original Software, or
+            (b) Modifications, or (c) the combination of files
+            containing Original Software with files containing
+            Modifications, in each case including portions thereof.
+
+            1.4. ÒExecutableÓ means the Covered Software in any form
+            other than Source Code. 
+
+            1.5. ÒInitial DeveloperÓ means the individual or entity
+            that first makes Original Software available under this
+            License. 
+            
+            1.6. ÒLarger WorkÓ means a work which combines Covered
+            Software or portions thereof with code not governed by the
+            terms of this License.
+
+            1.7. ÒLicenseÓ means this document.
+
+            1.8. ÒLicensableÓ means having the right to grant, to the
+            maximum extent possible, whether at the time of the initial
+            grant or subsequently acquired, any and all of the rights
+            conveyed herein.
+            
+            1.9. ÒModificationsÓ means the Source Code and Executable
+            form of any of the following: 
+
+                  A. Any file that results from an addition to,
+                  deletion from or modification of the contents of a
+                  file containing Original Software or previous
+                  Modifications; 
+
+                  B. Any new file that contains any part of the
+                  Original Software or previous Modification; or 
+
+                  C. Any new file that is contributed or otherwise made
+                  available under the terms of this License.
+
+            1.10. ÒOriginal SoftwareÓ means the Source Code and
+            Executable form of computer software code that is
+            originally released under this License. 
+
+            1.11. ÒPatent ClaimsÓ means any patent claim(s), now owned
+            or hereafter acquired, including without limitation,
+            method, process, and apparatus claims, in any patent
+            Licensable by grantor. 
+
+            1.12. ÒSource CodeÓ means (a) the common form of computer
+            software code in which modifications are made and (b)
+            associated documentation included in or with such code.
+
+            1.13. ÒYouÓ (or ÒYourÓ) means an individual or a legal
+            entity exercising rights under, and complying with all of
+            the terms of, this License. For legal entities, ÒYouÓ
+            includes any entity which controls, is controlled by, or is
+            under common control with You. For purposes of this
+            definition, ÒcontrolÓ means (a) the power, direct or
+            indirect, to cause the direction or management of such
+            entity, whether by contract or otherwise, or (b) ownership
+            of more than fifty percent (50%) of the outstanding shares
+            or beneficial ownership of such entity.
+
+      2. License Grants. 
+
+            2.1. The Initial Developer Grant.
+
+            Conditioned upon Your compliance with Section 3.1 below and
+            subject to third party intellectual property claims, the
+            Initial Developer hereby grants You a world-wide,
+            royalty-free, non-exclusive license: 
+
+                  (a) under intellectual property rights (other than
+                  patent or trademark) Licensable by Initial Developer,
+                  to use, reproduce, modify, display, perform,
+                  sublicense and distribute the Original Software (or
+                  portions thereof), with or without Modifications,
+                  and/or as part of a Larger Work; and 
+
+                  (b) under Patent Claims infringed by the making,
+                  using or selling of Original Software, to make, have
+                  made, use, practice, sell, and offer for sale, and/or
+                  otherwise dispose of the Original Software (or
+                  portions thereof). 
+
+                  (c) The licenses granted in Sections 2.1(a) and (b)
+                  are effective on the date Initial Developer first
+                  distributes or otherwise makes the Original Software
+                  available to a third party under the terms of this
+                  License. 
+
+                  (d) Notwithstanding Section 2.1(b) above, no patent
+                  license is granted: (1) for code that You delete from
+                  the Original Software, or (2) for infringements
+                  caused by: (i) the modification of the Original
+                  Software, or (ii) the combination of the Original
+                  Software with other software or devices. 
+
+            2.2. Contributor Grant.
+
+            Conditioned upon Your compliance with Section 3.1 below and
+            subject to third party intellectual property claims, each
+            Contributor hereby grants You a world-wide, royalty-free,
+            non-exclusive license:
+
+                  (a) under intellectual property rights (other than
+                  patent or trademark) Licensable by Contributor to
+                  use, reproduce, modify, display, perform, sublicense
+                  and distribute the Modifications created by such
+                  Contributor (or portions thereof), either on an
+                  unmodified basis, with other Modifications, as
+                  Covered Software and/or as part of a Larger Work; and
+                  
+
+                  (b) under Patent Claims infringed by the making,
+                  using, or selling of Modifications made by that
+                  Contributor either alone and/or in combination with
+                  its Contributor Version (or portions of such
+                  combination), to make, use, sell, offer for sale,
+                  have made, and/or otherwise dispose of: (1)
+                  Modifications made by that Contributor (or portions
+                  thereof); and (2) the combination of Modifications
+                  made by that Contributor with its Contributor Version
+                  (or portions of such combination). 
+
+                  (c) The licenses granted in Sections 2.2(a) and
+                  2.2(b) are effective on the date Contributor first
+                  distributes or otherwise makes the Modifications
+                  available to a third party. 
+
+                  (d) Notwithstanding Section 2.2(b) above, no patent
+                  license is granted: (1) for any code that Contributor
+                  has deleted from the Contributor Version; (2) for
+                  infringements caused by: (i) third party
+                  modifications of Contributor Version, or (ii) the
+                  combination of Modifications made by that Contributor
+                  with other software (except as part of the
+                  Contributor Version) or other devices; or (3) under
+                  Patent Claims infringed by Covered Software in the
+                  absence of Modifications made by that Contributor. 
+
+      3. Distribution Obligations.
+
+            3.1. Availability of Source Code.
+
+            Any Covered Software that You distribute or otherwise make
+            available in Executable form must also be made available in
+            Source Code form and that Source Code form must be
+            distributed only under the terms of this License. You must
+            include a copy of this License with every copy of the
+            Source Code form of the Covered Software You distribute or
+            otherwise make available. You must inform recipients of any
+            such Covered Software in Executable form as to how they can
+            obtain such Covered Software in Source Code form in a
+            reasonable manner on or through a medium customarily used
+            for software exchange.
+
+            3.2. Modifications.
+
+            The Modifications that You create or to which You
+            contribute are governed by the terms of this License. You
+            represent that You believe Your Modifications are Your
+            original creation(s) and/or You have sufficient rights to
+            grant the rights conveyed by this License.
+
+            3.3. Required Notices.
+
+            You must include a notice in each of Your Modifications
+            that identifies You as the Contributor of the Modification.
+            You may not remove or alter any copyright, patent or
+            trademark notices contained within the Covered Software, or
+            any notices of licensing or any descriptive text giving
+            attribution to any Contributor or the Initial Developer.
+
+            3.4. Application of Additional Terms.
+
+            You may not offer or impose any terms on any Covered
+            Software in Source Code form that alters or restricts the
+            applicable version of this License or the recipientsÕ
+            rights hereunder. You may choose to offer, and to charge a
+            fee for, warranty, support, indemnity or liability
+            obligations to one or more recipients of Covered Software.
+            However, you may do so only on Your own behalf, and not on
+            behalf of the Initial Developer or any Contributor. You
+            must make it absolutely clear that any such warranty,
+            support, indemnity or liability obligation is offered by
+            You alone, and You hereby agree to indemnify the Initial
+            Developer and every Contributor for any liability incurred
+            by the Initial Developer or such Contributor as a result of
+            warranty, support, indemnity or liability terms You offer.
+          
+
+            3.5. Distribution of Executable Versions.
+
+            You may distribute the Executable form of the Covered
+            Software under the terms of this License or under the terms
+            of a license of Your choice, which may contain terms
+            different from this License, provided that You are in
+            compliance with the terms of this License and that the
+            license for the Executable form does not attempt to limit
+            or alter the recipientÕs rights in the Source Code form
+            from the rights set forth in this License. If You
+            distribute the Covered Software in Executable form under a
+            different license, You must make it absolutely clear that
+            any terms which differ from this License are offered by You
+            alone, not by the Initial Developer or Contributor. You
+            hereby agree to indemnify the Initial Developer and every
+            Contributor for any liability incurred by the Initial
+            Developer or such Contributor as a result of any such terms
+            You offer.
+
+            3.6. Larger Works.
+
+            You may create a Larger Work by combining Covered Software
+            with other code not governed by the terms of this License
+            and distribute the Larger Work as a single product. In such
+            a case, You must make sure the requirements of this License
+            are fulfilled for the Covered Software. 
+            
+      4. Versions of the License. 
+
+            4.1. New Versions.
+
+            Sun Microsystems, Inc. is the initial license steward and
+            may publish revised and/or new versions of this License
+            from time to time. Each version will be given a
+            distinguishing version number. Except as provided in
+            Section 4.3, no one other than the license steward has the
+            right to modify this License. 
+
+            4.2. Effect of New Versions.
+
+            You may always continue to use, distribute or otherwise
+            make the Covered Software available under the terms of the
+            version of the License under which You originally received
+            the Covered Software. If the Initial Developer includes a
+            notice in the Original Software prohibiting it from being
+            distributed or otherwise made available under any
+            subsequent version of the License, You must distribute and
+            make the Covered Software available under the terms of the
+            version of the License under which You originally received
+            the Covered Software. Otherwise, You may also choose to
+            use, distribute or otherwise make the Covered Software
+            available under the terms of any subsequent version of the
+            License published by the license steward. 
+
+            4.3. Modified Versions.
+
+            When You are an Initial Developer and You want to create a
+            new license for Your Original Software, You may create and
+            use a modified version of this License if You: (a) rename
+            the license and remove any references to the name of the
+            license steward (except to note that the license differs
+            from this License); and (b) otherwise make it clear that
+            the license contains terms which differ from this License.
+            
+
+      5. DISCLAIMER OF WARRANTY.
+
+      COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN ÒAS ISÓ
+      BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+      INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
+      SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
+      PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
+      PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY
+      COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
+      INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF
+      ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
+      WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+      ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
+      DISCLAIMER. 
+
+      6. TERMINATION. 
+
+            6.1. This License and the rights granted hereunder will
+            terminate automatically if You fail to comply with terms
+            herein and fail to cure such breach within 30 days of
+            becoming aware of the breach. Provisions which, by their
+            nature, must remain in effect beyond the termination of
+            this License shall survive.
+
+            6.2. If You assert a patent infringement claim (excluding
+            declaratory judgment actions) against Initial Developer or
+            a Contributor (the Initial Developer or Contributor against
+            whom You assert such claim is referred to as ÒParticipantÓ)
+            alleging that the Participant Software (meaning the
+            Contributor Version where the Participant is a Contributor
+            or the Original Software where the Participant is the
+            Initial Developer) directly or indirectly infringes any
+            patent, then any and all rights granted directly or
+            indirectly to You by such Participant, the Initial
+            Developer (if the Initial Developer is not the Participant)
+            and all Contributors under Sections 2.1 and/or 2.2 of this
+            License shall, upon 60 days notice from Participant
+            terminate prospectively and automatically at the expiration
+            of such 60 day notice period, unless if within such 60 day
+            period You withdraw Your claim with respect to the
+            Participant Software against such Participant either
+            unilaterally or pursuant to a written agreement with
+            Participant.
+
+            6.3. In the event of termination under Sections 6.1 or 6.2
+            above, all end user licenses that have been validly granted
+            by You or any distributor hereunder prior to termination
+            (excluding licenses granted to You by any distributor)
+            shall survive termination.
+
+      7. LIMITATION OF LIABILITY.
+
+      UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+      (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
+      INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
+      COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
+      LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
+      CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+      LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
+      STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+      COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+      INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+      LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
+      INJURY RESULTING FROM SUCH PARTYÕS NEGLIGENCE TO THE EXTENT
+      APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
+      NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
+      CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
+      APPLY TO YOU.
+
+      8. U.S. GOVERNMENT END USERS.
+
+      The Covered Software is a Òcommercial item,Ó as that term is
+      defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of Òcommercial
+      computer softwareÓ (as that term is defined at 48 C.F.R. ¤
+      252.227-7014(a)(1)) and Òcommercial computer software
+      documentationÓ as such terms are used in 48 C.F.R. 12.212 (Sept.
+      1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
+      through 227.7202-4 (June 1995), all U.S. Government End Users
+      acquire Covered Software with only those rights set forth herein.
+      This U.S. Government Rights clause is in lieu of, and supersedes,
+      any other FAR, DFAR, or other clause or provision that addresses
+      Government rights in computer software under this License.
+
+      9. MISCELLANEOUS.
+
+      This License represents the complete agreement concerning subject
+      matter hereof. If any provision of this License is held to be
+      unenforceable, such provision shall be reformed only to the
+      extent necessary to make it enforceable. This License shall be
+      governed by the law of the jurisdiction specified in a notice
+      contained within the Original Software (except to the extent
+      applicable law, if any, provides otherwise), excluding such
+      jurisdictionÕs conflict-of-law provisions. Any litigation
+      relating to this License shall be subject to the jurisdiction of
+      the courts located in the jurisdiction and venue specified in a
+      notice contained within the Original Software, with the losing
+      party responsible for costs, including, without limitation, court
+      costs and reasonable attorneysÕ fees and expenses. The
+      application of the United Nations Convention on Contracts for the
+      International Sale of Goods is expressly excluded. Any law or
+      regulation which provides that the language of a contract shall
+      be construed against the drafter shall not apply to this License.
+      You agree that You alone are responsible for compliance with the
+      United States export administration regulations (and the export
+      control laws and regulation of any other countries) when You use,
+      distribute or otherwise make available any Covered Software.
+
+      10. RESPONSIBILITY FOR CLAIMS.
+
+      As between Initial Developer and the Contributors, each party is
+      responsible for claims and damages arising, directly or
+      indirectly, out of its utilization of rights under this License
+      and You agree to work with Initial Developer and Contributors to
+      distribute such responsibility on an equitable basis. Nothing
+      herein is intended or shall be deemed to constitute any admission
+      of liability.
diff --git a/external/cddl/dtracetoolkit/dist/Docs/oneliners.txt b/external/cddl/dtracetoolkit/dist/Docs/oneliners.txt
new file mode 100644
index 0000000..fca2aa3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Docs/oneliners.txt
@@ -0,0 +1,81 @@
+#
+#   DTrace OneLiners
+#
+
+DTrace One Liners,
+
+# New processes with arguments,
+dtrace -n 'proc:::exec-success { trace(curpsinfo->pr_psargs); }'
+ 
+# Files opened by process name,
+dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }'
+
+# Files created using creat() by process name,
+dtrace -n 'syscall::creat*:entry { printf("%s %s",execname,copyinstr(arg0)); }'
+ 
+# Syscall count by process name,
+dtrace -n 'syscall:::entry { @num[execname] = count(); }'
+ 
+# Syscall count by syscall,
+dtrace -n 'syscall:::entry { @num[probefunc] = count(); }'
+ 
+# Syscall count by process ID,
+dtrace -n 'syscall:::entry { @num[pid,execname] = count(); }'
+
+# Read bytes by process name,
+dtrace -n 'sysinfo:::readch { @bytes[execname] = sum(arg0); }'
+ 
+# Write bytes by process name,
+dtrace -n 'sysinfo:::writech { @bytes[execname] = sum(arg0); }'
+ 
+# Read size distribution by process name,
+dtrace -n 'sysinfo:::readch { @dist[execname] = quantize(arg0); }'
+ 
+# Write size distribution by process name,
+dtrace -n 'sysinfo:::writech { @dist[execname] = quantize(arg0); }'
+ 
+# Disk size by process ID,
+dtrace -n 'io:::start { printf("%d %s %d",pid,execname,args[0]->b_bcount); }'
+
+# Disk size aggregation
+dtrace -n 'io:::start { @size[execname] = quantize(args[0]->b_bcount); }'
+
+# Pages paged in by process name,
+dtrace -n 'vminfo:::pgpgin { @pg[execname] = sum(arg0); }'
+ 
+# Minor faults by process name,
+dtrace -n 'vminfo:::as_fault { @mem[execname] = sum(arg0); }'
+ 
+# Interrupts by CPU,
+dtrace -n 'sdt:::interrupt-start { @num[cpu] = count(); }'
+
+# CPU cross calls by process name,
+dtrace -n 'sysinfo:::xcalls { @num[execname] = count(); }'
+ 
+# Lock time by process name,
+dtrace -n 'lockstat:::adaptive-block { @time[execname] = sum(arg1); }'
+ 
+# Lock distribution by process name,
+dtrace -n 'lockstat:::adaptive-block { @time[execname] = quantize(arg1); }'
+
+# Kernel funtion calls by module
+dtrace -n 'fbt:::entry { @calls[probemod] = count(); }'
+
+# Stack size for processes
+dtrace -n 'sched:::on-cpu { @[execname] = max(curthread->t_procp->p_stksize);}'
+
+# Kill all top processes when they are invoked,
+dtrace -wn 'syscall::exece:return /execname == "top"/ { raise(9); }'
+
+
+
+DTrace Longer One Liners,
+
+# New processes with arguments and time,
+dtrace -qn 'syscall::exec*:return { printf("%Y %s\n",walltimestamp,curpsinfo->pr_psargs); }'
+ 
+# Successful signal details,
+dtrace -n 'proc:::signal-send /pid/ { printf("%s -%d %d",execname,args[2],args[1]->pr_pid); }'
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/Copyright b/external/cddl/dtracetoolkit/dist/Examples/Copyright
new file mode 100644
index 0000000..d802fe9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/Copyright
@@ -0,0 +1 @@
+The examples in this directory are copyright to their author.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/Readme b/external/cddl/dtracetoolkit/dist/Examples/Readme
new file mode 100644
index 0000000..762a331
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/Readme
@@ -0,0 +1,21 @@
+Examples - Script demos, screenshots, and how to read the output
+
+   This directory contains an example file per script in the DTraceToolkit.
+
+   When I hear of a new performance tool or what not, the first thing I want
+   to see are screenshots. They illustrate,
+
+   	- generally what the tool is for
+	- many details and features, since the output is (supposed to be)
+	  as intuitive as possible
+	- how to use the tool (command line usage)
+
+   It is a rapid way to get a handle on what a tool generally is, and how
+   to start using it. The files in this directory serve that purpose.
+
+   These are especially important now that the DTraceToolkit has over 200
+   scripts. Flicking through these files and seeing the screenshots may
+   be the quickest way to find what you are after.
+
+   Of course, don't forget to read the man pages and notes files too :)
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/anonpgpid_example.txt b/external/cddl/dtracetoolkit/dist/Examples/anonpgpid_example.txt
new file mode 100644
index 0000000..b505f3d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/anonpgpid_example.txt
@@ -0,0 +1,73 @@
+The following is a demonstration of the anonpgpid.d script,
+
+
+Here we run it on a system that is implementing memory caps using the
+resource capping daemon, "rcapd",
+
+   # anonpgpid.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD              D BYTES
+     6215 bash             R 8192
+     6215 bash             W 126976
+     5809 rcapd            R 245760
+     6222 memleak.pl       R 974848
+     6222 memleak.pl       W 3055616
+
+The "memleak.pl" process consumes memory, and we can see above that it has
+encountered both reads and writes to the physical swap device - it is being
+paged out. A bash shell was also effected (which was in the same project that
+rcapd was monitoring). 
+
+
+
+The following is an ordinary system that is very low on memory,
+
+   # anonpgpid.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD              D BYTES
+    18885 sendmail         R 4096
+    18600 automountd       R 4096
+        1 init             R 4096
+     2456 inetd            R 8192
+    18546 nscd             R 8192
+     2400 bash             R 12288
+      217 utmpd            R 28672
+      221 ttymon           R 32768
+      210 sac              R 36864
+    18777 snmpd            R 49152
+    18440 init             R 49152
+       89 nscd             R 61440
+      318 syslogd          R 73728
+      487 snmpd            R 81920
+     2453 inetd            R 102400
+      165 in.routed        R 131072
+      294 automountd       R 135168
+      215 inetd            R 135168
+      187 rpcbind          R 204800
+       86 kcfd             R 290816
+        7 svc.startd       R 1015808
+        9 svc.configd      R 1478656
+        2 pageout          W 23453696
+
+The "pageout" process is responsible for writing all the anonymous memory
+pages to the physical swap device, and we can see from the above that it 
+has written 23 Mb. When processes access anonymous memory that has been
+swapped out, a major fault occurs and the memory is paged back in; in this
+case we can trace the process that was effected, and from the above we can
+see that several processes have been effected by the memory pressure.
+The most is "svc.configd", which needed to page back in 1.4 Mb of anonymous
+memory. 
+
+
+
+Sometimes anonpgpid.d doesn't help too much. Here we only have pageouts
+to the physical swap device and no pageins,
+
+   # anonpgpid.d
+   ^C
+      PID CMD              D BYTES
+        2 pageout          W 61083648
+
+Only pageout is identified. 
diff --git a/external/cddl/dtracetoolkit/dist/Examples/bitesize_example.txt b/external/cddl/dtracetoolkit/dist/Examples/bitesize_example.txt
new file mode 100644
index 0000000..dcc697d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/bitesize_example.txt
@@ -0,0 +1,74 @@
+In this example, bitesize.d was run for several seconds then Ctrl-C was hit.
+As bitesize.d runs it records how processes on the system are accessing the
+disks - in particular the size of the I/O operation. It is usually desirable
+for processes to be requesting large I/O operations rather than taking many
+small "bites".
+
+The final report highlights how processes performed. The find command mostly
+read 1K blocks while the tar command was reading large blocks - both as
+expected.
+
+   # bitesize.d 
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+        PID  CMD
+       7110  -bash\0
+   
+              value  ------------- Distribution ------------- count    
+                512 |                                         0        
+               1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@               2        
+               2048 |                                         0        
+               4096 |@@@@@@@@@@@@@                            1        
+               8192 |                                         0        
+   
+       7110  sync\0
+   
+              value  ------------- Distribution ------------- count    
+                512 |                                         0        
+               1024 |@@@@@                                    1        
+               2048 |@@@@@@@@@@                               2        
+               4096 |                                         0        
+               8192 |@@@@@@@@@@@@@@@@@@@@@@@@@                5        
+              16384 |                                         0        
+   
+          0  sched\0
+   
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@                                      1        
+               4096 |                                         0        
+               8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     10       
+              16384 |                                         0        
+   
+       7109  find /\0
+   
+              value  ------------- Distribution ------------- count    
+                512 |                                         0        
+               1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       1452     
+               2048 |@@                                       91       
+               4096 |                                         33       
+               8192 |@@                                       97       
+              16384 |                                         0        
+   
+          3  fsflush\0
+   
+              value  ------------- Distribution ------------- count    
+               4096 |                                         0        
+               8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 449      
+              16384 |                                         0        
+   
+       7108  tar cf /dev/null /\0
+   
+              value  ------------- Distribution ------------- count    
+                256 |                                         0        
+                512 |                                         70       
+               1024 |@@@@@@@@@@                               1306     
+               2048 |@@@@                                     569      
+               4096 |@@@@@@@@@                                1286     
+               8192 |@@@@@@@@@@                               1403     
+              16384 |@                                        190      
+              32768 |@@@                                      396      
+              65536 |                                         0        
+   
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/connections_example.txt b/external/cddl/dtracetoolkit/dist/Examples/connections_example.txt
new file mode 100644
index 0000000..e39d063
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/connections_example.txt
@@ -0,0 +1,23 @@
+The following is an example of connections. As inbound TCP connections are 
+established their details are printed out. This includes the UID, PID and
+CMD of the server process that is listening on that port,
+
+   # connections
+     UID   PID CMD          TYPE  PORT IP_SOURCE
+       0   242 inetd         tcp    79 192.168.1.1
+       0   359 sshd          tcp    22 192.168.1.1
+     100  1532 Xorg          tcp  6000 192.168.1.1
+   ^C
+
+
+In another window snoop was running for comparison,
+
+   # snoop 'tcp[13:1] = 0x02'
+   Using device /dev/rtls0 (promiscuous mode)
+           mars -> jupiter      FINGER C port=56760
+           mars -> jupiter      TCP D=22 S=56761 Syn Seq=3264782212 Len=0 ...
+           mars -> jupiter      XWIN C port=56763
+
+snoop can already tell me that these connections are happening - but does not
+print out details of the server that accepted the connection.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/cpudists_example.txt b/external/cddl/dtracetoolkit/dist/Examples/cpudists_example.txt
new file mode 100644
index 0000000..aa8256b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/cpudists_example.txt
@@ -0,0 +1,276 @@
+The following demonstrates the cpudists program. It prints distributions
+of CPU time consumed by the Kernel, Idle thread, or Processes.
+
+Here we run cpudists for 5 seconds once,
+
+# ./cpudists 5 1
+2005 Apr 28 00:08:42,
+          KERNEL
+           value  ------------- Distribution ------------- count
+            4096 |                                         0
+            8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@             1134
+           16384 |@@@@@@@@@                                344
+           32768 |@@@                                      104
+           65536 |                                         3
+          131072 |                                         0
+          262144 |                                         1
+          524288 |                                         0
+         1048576 |                                         11
+         2097152 |                                         0
+
+         PROCESS
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@                                170
+           32768 |@@@@@@@@@@@@@@@@@@                       331
+           65536 |@@@@@@@@                                 152
+          131072 |@                                        17
+          262144 |@                                        25
+          524288 |@                                        13
+         1048576 |                                         4
+         2097152 |                                         9
+         4194304 |                                         0
+
+            IDLE
+           value  ------------- Distribution ------------- count
+         2097152 |                                         0
+         4194304 |@                                        9
+         8388608 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    418
+        16777216 |@@@                                      31
+        33554432 |                                         0
+
+The value indicates the time in nanoseconds, the count the number of
+runs for this length.
+
+From the above, we can see the kernel has run many times - but for short
+intervals each time. Processes have taken fom 10 to 60 microseconds;
+and when the idle thread runs it runs for some time - around 8 milliseconds
+for each.
+
+
+
+
+cpudists has a "-a" option for all processes,
+
+# ./cpudists -a 5 1
+2005 Apr 28 00:17:34,
+  mapping-daemon
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2
+           32768 |@@@@@@@@@@@@@                            1
+           65536 |                                         0
+
+        sendmail
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2
+           32768 |                                         0
+           65536 |@@@@@@@@@@@@@                            1
+          131072 |                                         0
+
+        nautilus
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2
+           32768 |                                         0
+           65536 |@@@@@@@@@@@@@                            1
+          131072 |                                         0
+
+             fmd
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2
+           32768 |                                         0
+           65536 |@@@@@@@@@@@@@                            1
+          131072 |                                         0
+
+       in.routed
+           value  ------------- Distribution ------------- count
+           65536 |                                         0
+          131072 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+          262144 |                                         0
+
+     miniserv.pl
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2
+           32768 |                                         0
+           65536 |                                         0
+          131072 |@@@@@@@@@@@@@                            1
+          262144 |                                         0
+
+    xscreensaver
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@                     2
+           32768 |                                         0
+           65536 |@@@@@@@@@@@@@@@@@@@@                     2
+          131072 |                                         0
+
+gnome-vfs-daemon
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@                 3
+           32768 |                                         0
+           65536 |@@@@@@@@@@@@@@@@                         2
+          131072 |                                         0
+
+     gnome-panel
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@                                 1
+           32768 |@@@@@@@@@@@@@@@@                         2
+           65536 |                                         0
+          131072 |@@@@@@@@@@@@@@@@                         2
+          262144 |                                         0
+
+      svc.startd
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              10
+           32768 |@@@@@@@@@@@                              4
+           65536 |@@@                                      1
+          131072 |                                         0
+
+            nscd
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    25
+           32768 |@                                        1
+           65536 |                                         0
+          131072 |@                                        1
+          262144 |                                         0
+
+gnome-netstatus-
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2
+           32768 |                                         0
+           65536 |                                         0
+          131072 |                                         0
+          262144 |                                         0
+          524288 |                                         0
+         1048576 |@@@@@@@@@@@@@                            1
+         2097152 |                                         0
+
+   mixer_applet2
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@                                10
+           32768 |@@@@@@@@@@@@@@@@@                        19
+           65536 |@@@@@@@@@@@@@@                           16
+          131072 |                                         0
+
+     soffice.bin
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@                                7
+           32768 |@@@@@@@@@@@@@@@@@@@                      14
+           65536 |@@@@@@@@                                 6
+          131072 |                                         0
+          262144 |@@@                                      2
+          524288 |                                         0
+         1048576 |                                         0
+         2097152 |@                                        1
+         4194304 |                                         0
+
+          dtrace
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@                8
+           32768 |                                         0
+           65536 |                                         0
+          131072 |                                         0
+          262144 |@@@                                      1
+          524288 |@@@@@@@@@                                3
+         1048576 |                                         0
+         2097152 |@@@                                      1
+         4194304 |                                         0
+
+            Xorg
+           value  ------------- Distribution ------------- count
+           32768 |                                         0
+           65536 |@@@@@@@@@@@@@@@@@@@@                     15
+          131072 |@@@@@@@@                                 6
+          262144 |@@@@@@@@@@@@                             9
+          524288 |                                         0
+
+         java_vm
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@@@@@@@@@@@@@                     101
+           32768 |@@@@@@@@@@@@@@@@                         84
+           65536 |@@@@                                     20
+          131072 |                                         0
+
+  gnome-terminal
+           value  ------------- Distribution ------------- count
+           16384 |                                         0
+           32768 |@@@@@@@@@@@@@@@@                         12
+           65536 |@@@@@@@@@@@                              8
+          131072 |@                                        1
+          262144 |                                         0
+          524288 |@@@@@@@@@@@@                             9
+         1048576 |                                         0
+
+        acroread
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |                                         1
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          188
+           65536 |@@@@@@@@                                 47
+          131072 |@@                                       10
+          262144 |                                         0
+
+     mozilla-bin
+           value  ------------- Distribution ------------- count
+            8192 |                                         0
+           16384 |@@@@@@@@                                 21
+           32768 |@@@@@                                    13
+           65536 |@@@@@@@@@@@@@                            36
+          131072 |@@@@@@@                                  19
+          262144 |@@@                                      9
+          524288 |@@                                       5
+         1048576 |@                                        2
+         2097152 |@@                                       5
+         4194304 |                                         0
+
+          KERNEL
+           value  ------------- Distribution ------------- count
+            4096 |                                         0
+            8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@               1085
+           16384 |@@@@@@@@@@@                              443
+           32768 |@@                                       98
+           65536 |                                         5
+          131072 |                                         1
+          262144 |                                         1
+          524288 |                                         0
+         1048576 |                                         11
+         2097152 |                                         0
+
+         fsflush
+           value  ------------- Distribution ------------- count
+          131072 |                                         0
+          262144 |@@@@@@@                                  1
+          524288 |                                         0
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4
+         2097152 |                                         0
+         4194304 |                                         0
+         8388608 |                                         0
+        16777216 |                                         0
+        33554432 |@@@@@@@                                  1
+        67108864 |                                         0
+
+            IDLE
+           value  ------------- Distribution ------------- count
+          524288 |                                         0
+         1048576 |                                         1
+         2097152 |                                         0
+         4194304 |@                                        13
+         8388608 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     411
+        16777216 |@@@                                      31
+        33554432 |                                         0
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/cputimes_example.txt b/external/cddl/dtracetoolkit/dist/Examples/cputimes_example.txt
new file mode 100644
index 0000000..253a7a3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/cputimes_example.txt
@@ -0,0 +1,210 @@
+The following demonstrates running the cputimes program on an idle system.
+We use an interval of 1 second and a count of 3,
+
+   # ./cputimes 1 3
+   2005 Apr 27 23:37:58,
+            THREADS        TIME (ns)
+             KERNEL         10795499
+            PROCESS         20941091
+               IDLE        970707443
+   2005 Apr 27 23:37:59,
+            THREADS        TIME (ns)
+             KERNEL          8919418
+            PROCESS         77446789
+               IDLE        910555040
+   2005 Apr 27 23:38:00,
+            THREADS        TIME (ns)
+             KERNEL          8615123
+            PROCESS         78314246
+               IDLE        810100417
+
+In the above output, we can see a breakdown of CPU time into the catagories
+KERNEL, PROCESS and IDLE. The time is measured in nanoseconds. Most of the
+time is in the IDLE category, as the system is idle. Very little time
+was spent serving the kernel.
+
+
+
+
+In the following example, several programs are run to hog the CPUs,
+
+   # ./cputimes 1 3
+   2005 Apr 27 23:40:58,
+            THREADS        TIME (ns)
+             KERNEL         11398807
+            PROCESS        992254664
+   2005 Apr 27 23:40:59,
+            THREADS        TIME (ns)
+             KERNEL          9205260
+            PROCESS        987561182
+   2005 Apr 27 23:41:00,
+            THREADS        TIME (ns)
+             KERNEL          9196669
+            PROCESS        877850474
+
+Now there is no IDLE category, as the system is 100% utilised. 
+The programs were the following,
+
+	while :; do :; done &
+
+which keeps the CPU busy.
+
+
+
+
+In the following example a different style of program is run to hog the CPUs,
+
+	while :; do date; done 
+
+This causes many processes to be created and destroyed in a hurry, and can 
+be difficult to troubleshoot (tools like prstat cannot sample quick enough
+to easily identify what is going on). The following is the cputimes output,
+
+   # ./cputimes 1 3
+   2005 Apr 27 23:45:30,
+            THREADS        TIME (ns)
+             KERNEL        192647392
+            PROCESS        835397568
+   2005 Apr 27 23:45:31,
+            THREADS        TIME (ns)
+             KERNEL        168773713
+            PROCESS        810825730
+   2005 Apr 27 23:45:32,
+            THREADS        TIME (ns)
+             KERNEL        151676122
+            PROCESS        728477272
+
+Now the kernel is doing a substantial amount of work to create and destroy
+these processes.
+
+
+
+
+In the following example, a large amount of network activity occurs while
+cputimes is running,
+
+   # ./cputimes 1 6
+   2005 Apr 27 23:49:29,
+            THREADS        TIME (ns)
+             KERNEL         10596399
+            PROCESS         21793920
+               IDLE        974395713
+   2005 Apr 27 23:49:30,
+            THREADS        TIME (ns)
+             KERNEL        251465759
+               IDLE        357436576
+            PROCESS        508986422
+   2005 Apr 27 23:49:31,
+            THREADS        TIME (ns)
+               IDLE          9758227
+             KERNEL        367645318
+            PROCESS        385427847
+   2005 Apr 27 23:49:32,
+            THREADS        TIME (ns)
+               IDLE         28351679
+             KERNEL        436022725
+            PROCESS        451304688
+   2005 Apr 27 23:49:33,
+            THREADS        TIME (ns)
+             KERNEL        262586158
+            PROCESS        325238896
+               IDLE        358243503
+   2005 Apr 27 23:49:34,
+            THREADS        TIME (ns)
+             KERNEL         10075578
+            PROCESS        238170506
+               IDLE        647956998
+
+Initially the system is idle. A command is run to cause heavy network
+activity, which peaks during the fourth sample - during which the kernel
+is using around 40% of the CPU. The Solaris 10 command "intrstat" can
+help to analyse this activity further.
+
+
+
+
+Longer samples are possible. The following is a 60 second sample,
+
+   # ./cputimes 60 1
+   2005 Apr 27 23:53:02,
+            THREADS        TIME (ns)
+             KERNEL        689808449
+            PROCESS       8529562214
+               IDLE      50406951876
+   #
+
+
+
+
+cputimes has a "-a" option to print all processes. The following is a 
+single 1 second sample with -a,
+
+   # ./cputimes -a 1 1
+   2005 Apr 28 00:00:32,
+            THREADS        TIME (ns)
+         svc.startd            51042
+           nautilus           130645
+          in.routed           131823
+                fmd           152822
+               nscd           307042
+               dsdm           415799
+      mixer_applet2           551066
+      gnome-smproxy           587234
+       xscreensaver           672270
+            fsflush          1060196
+            java_vm          1552988
+        wnck-applet          2060870
+             dtrace          2398658
+           acroread          2614687
+        soffice.bin          2825117
+        mozilla-bin          5497488
+             KERNEL         13541120
+           metacity         28924204
+     gnome-terminal         74304348
+               Xorg        289631407
+               IDLE        465054209
+
+The times are in nanoseconds, and multiple processes with the same name
+have their times aggregated. The above output is at an amazing resolution - 
+svc.startd ran for 51 microseconds, and soffice.bin ran for 28 milliseconds.
+
+
+
+
+The following is a 10 second sample on an idle desktop,
+
+   # ./cputimes -a 10 1
+   2005 Apr 28 00:03:57,
+            THREADS        TIME (ns)
+              snmpd           127859
+                fmd           171897
+              inetd           177134
+        svc.configd           185006
+     mapping-daemon           197674
+        miniserv.pl           305603
+           gconfd-2           330511
+       xscreensaver           443207
+           sendmail           473434
+           nautilus           506799
+   gnome-vfs-daemon           549037
+        gnome-panel           770631
+               nscd           885353
+         svc.startd          1181286
+   gnome-netstatus-          4329671
+      mixer_applet2          4833519
+             dtrace          6244366
+          in.routed          6556075
+            fsflush          9553155
+        soffice.bin         13954327
+            java_vm         16285243
+           acroread         32126193
+     gnome-terminal         34891991
+               Xorg         35553412
+        mozilla-bin         67855629
+             KERNEL         94834997
+               IDLE       9540941846
+
+Wow, maybe not as idle as I thought!
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/cputypes_example.txt b/external/cddl/dtracetoolkit/dist/Examples/cputypes_example.txt
new file mode 100644
index 0000000..158a43f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/cputypes_example.txt
@@ -0,0 +1,40 @@
+The following are demonstrations of the cputypes.d script,
+
+
+This is running cputypes.d on a desktop,
+
+   # cputypes.d
+    CPU CHIP PSET LGRP  CLOCK  TYPE             FPU
+      0    0    0    0    867  i386             i387 compatible
+
+fairly boring.
+
+
+
+The following is a multi CPU x86 server,
+
+   # cputypes.d
+    CPU CHIP PSET LGRP  CLOCK  TYPE             FPU
+      0    0    0    0   2791  i386             i387 compatible
+      1    3    1    0   2791  i386             i387 compatible
+      2    0    0    0   2791  i386             i387 compatible
+      3    3    0    0   2791  i386             i387 compatible
+
+Much more interesting! We can see from the CHIP field that there is actually
+two CPUs, each with two cores. There is also two processor sets (0, 1).
+
+The CPUs were printed in CPU id order by mere chance.
+
+
+
+Here is a multi CPU SPARC server,
+
+   # cputypes.d
+    CPU CHIP PSET LGRP  CLOCK  TYPE             FPU
+      0    0    0    0    400  sparcv9          sparcv9
+      1    1    0    0    400  sparcv9          sparcv9
+      4    4    0    0    400  sparcv9          sparcv9
+      5    5    0    0    400  sparcv9          sparcv9
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/cpuwalk_example.txt b/external/cddl/dtracetoolkit/dist/Examples/cpuwalk_example.txt
new file mode 100644
index 0000000..34afa95
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/cpuwalk_example.txt
@@ -0,0 +1,85 @@
+The following is a demonstration of the cpuwalk.d script,
+
+
+cpuwalk.d is not that useful on a single CPU server,
+
+   # cpuwalk.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+   
+        PID: 18843    CMD: bash
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 30
+                  1 |                                         0
+   
+        PID: 8079     CMD: mozilla-bin
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+                  1 |                                         0
+
+The output above shows that PID 18843, "bash", was sampled on CPU 0 a total
+of 30 times (we sample at 1000 hz).
+
+
+
+The following is a demonstration of running cpuwalk.d with a 5 second
+duration. This is on a 4 CPU server running a multithreaded CPU bound
+application called "cputhread",
+
+   # cpuwalk.d 5
+   Sampling...
+   
+        PID: 3        CMD: fsflush
+   
+              value  ------------- Distribution ------------- count
+                  1 |                                         0
+                  2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 30
+                  3 |                                         0
+   
+        PID: 12186    CMD: cputhread
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@                               4900
+                  1 |@@@@@@@@@@                               4900
+                  2 |@@@@@@@@@@                               4860
+                  3 |@@@@@@@@@@                               4890
+                  4 |                                         0
+
+As we are sampling at 1000 hz, the application cputhread is indeed running
+concurrently across all available CPUs. We measured the applicaiton on
+CPU 0 a total of 4900 times, on CPU 1 a total of 4900 times, etc. As there
+are around 5000 samples per CPU available in this 5 second 1000 hz sample,
+the application is using almost all the CPU capacity in this server well.
+
+
+
+The following is a similar demonstration, this time running a multithreaded
+CPU bound application called "cpuserial" that has a poor use of locking
+such that the threads "serialise",
+
+
+   # cpuwalk.d 5
+   Sampling...
+   
+        PID: 12194    CMD: cpuserial
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@                                      470
+                  1 |@@@@@@                                   920
+                  2 |@@@@@@@@@@@@@@@@@@@@@@@@@                3840
+                  3 |@@@@@@                                   850
+                  4 |                                         0
+
+In the above, we can see that this CPU bound application is not making
+efficient use of the CPU resources available, only reaching 3840 samples
+on CPU 2 out of a potential 5000. This problem was caused by a poor use
+of locks.
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/crash_example.txt b/external/cddl/dtracetoolkit/dist/Examples/crash_example.txt
new file mode 100644
index 0000000..f0034d3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/crash_example.txt
@@ -0,0 +1,68 @@
+The following is an example of the crashed application script, crash.d
+This demonstration is for version 0.80 of crash.d, newer versions may 
+produce enhanced output.
+
+Here is the report generated as crash.d catches a crashing procmail process,
+
+# ./crash.d
+Waiting for crashing applications...
+
+-----------------------------------------------------
+CRASH DETECTED at 2005 May 30 19:41:34
+-----------------------------------------------------
+Type:    SIGSEGV
+Program: procmail
+Args:    procmail -m\0
+PID:     2877
+TID:     1
+LWPs:    1
+PPID:    1778
+UID:     100
+GID:     1
+TaskID:  76
+ProjID:  3
+PoolID:  0
+ZoneID:  0
+zone:    global
+CWD:     /usr/include/sys
+errno:   0
+
+User Stack Backtrace,
+              procmail`sendcomsat+0x24
+              procmail`Terminate+0x76
+              procmail`0x805a2b0
+              procmail`0x805a40f
+              libc.so.1`__sighndlr+0xf
+              libc.so.1`call_user_handler+0x22b
+              libc.so.1`sigacthandler+0xbb
+              0xffffffff
+              procmail`rread+0x1d
+              procmail`0x805bcb4
+              procmail`read2blk+0x6b
+              procmail`readdyn+0x1f
+              procmail`readmail+0x181
+              procmail`main+0x532
+              procmail`_start+0x5d
+
+Kernel Stack Backtrace,
+              genunix`sigaddqa+0x3f
+              genunix`trapsig+0xdb
+              unix`trap+0xc2b
+              unix`_cmntrap+0x83
+
+Ansestors,
+    2877 procmail -m\0
+      1778 bash\0
+        1777 xterm -bg black -fg grey70 -sl 500 -vb\0
+          1 /sbin/init\0
+            0 sched\0
+
+Times,
+    User:    0 ticks
+    Sys:     1 ticks
+    Elapsed: 3307 ms
+
+Sizes,
+    Heap:   16388 bytes
+    Stack:  8192 bytes
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/creatbyproc_example.txt b/external/cddl/dtracetoolkit/dist/Examples/creatbyproc_example.txt
new file mode 100644
index 0000000..295e07f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/creatbyproc_example.txt
@@ -0,0 +1,23 @@
+The following is an example of the creatbyproc.d script,
+
+
+Here we run creatbyproc.d for several seconds,
+
+   # ./creatbyproc.d
+   dtrace: script './creatbyproc.d' matched 2 probes
+   CPU     ID                    FUNCTION:NAME
+     0   5438                    creat64:entry touch /tmp/newfile
+     0   5438                    creat64:entry sh /tmp/mpLaaOik
+     0   5438                    creat64:entry sh /dev/null
+   ^C
+
+In another window, the following commands were run,
+
+	touch /tmp/newfile
+	man ls
+
+The file creation activity caused by these commands can be seen in the
+output by creatbyproc.d
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/cswstat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/cswstat_example.txt
new file mode 100644
index 0000000..d45347c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/cswstat_example.txt
@@ -0,0 +1,25 @@
+The following is an example of the cswstat.d script,
+
+   # cswstat.d 
+   TIME                       NUM      CSWTIME      AVGTIME
+   2005 May 17 01:57:21       276         2407            8
+   2005 May 17 01:57:22       283         2251            7
+   2005 May 17 01:57:23       259         2098            8
+   2005 May 17 01:57:24       268         2169            8
+   2005 May 17 01:57:25      1248        10864            8
+   2005 May 17 01:57:26      2421        21263            8
+   2005 May 17 01:57:27      2183        19804            9
+   2005 May 17 01:57:28      1980        18640            9
+   2005 May 17 01:57:29       794         7422            9
+   2005 May 17 01:57:30       275         2233            8
+   2005 May 17 01:57:31       288         2338            8
+   2005 May 17 01:57:32       545         4154            7
+   2005 May 17 01:57:33       264         2149            8
+   ^C
+
+In the above output, the average context switch time is 8 microseconds.
+During the sample there was a burst of activity, increasing the number
+of context switches per second from around 270 to over 2000. The time
+consumed by all of these context switches in total is printed, peaking
+at 21 ms.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/dappprof_example.txt b/external/cddl/dtracetoolkit/dist/Examples/dappprof_example.txt
new file mode 100644
index 0000000..a2c3935
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/dappprof_example.txt
@@ -0,0 +1,71 @@
+The following is a demonstration of the dappprof command,
+
+This is the usage for version 0.60,
+
+   # dappprof -h
+   USAGE: dappprof [-cehoTU] [-u lib] { -p PID | command }
+   
+             -p PID          # examine this PID
+             -a              # print all details
+             -c              # print syscall counts
+             -e              # print elapsed times (us)
+             -o              # print on cpu times
+             -T              # print totals
+             -u lib          # trace this library instead
+             -U              # trace all libraries + user funcs
+             -b bufsize      # dynamic variable buf size
+      eg,
+          dappprof df -h       # run and examine "df -h"
+          dappprof -p 1871     # examine PID 1871
+          dappprof -ap 1871    # print all data
+
+
+
+The following shows running dappprof with the "banner hello" command.
+Elapsed and on-cpu times are printed (-eo), as well as counts (-c) and 
+totals (-T),
+
+   # dappprof -eocT banner hello
+   
+    #    #  ######  #       #        ####
+    #    #  #       #       #       #    #
+    ######  #####   #       #       #    #
+    #    #  #       #       #       #    #
+    #    #  #       #       #       #    #
+    #    #  ######  ######  ######   ####
+   
+   
+   CALL                                                         COUNT
+   __fsr                                                            1
+   main                                                             1
+   banprt                                                           1
+   banner                                                           1
+   banset                                                           1
+   convert                                                          5
+   banfil                                                           5
+   TOTAL:                                                          15
+   
+   CALL                                                       ELAPSED
+   banset                                                       37363
+   banfil                                                      147407
+   convert                                                     149606
+   banprt                                                      423507
+   banner                                                      891088
+   __fsr                                                      1694349
+   TOTAL:                                                     3343320
+   
+   CALL                                                           CPU
+   banset                                                        7532
+   convert                                                       8805
+   banfil                                                       11092
+   __fsr                                                        15708
+   banner                                                       48696
+   banprt                                                      388853
+   TOTAL:                                                      480686
+
+The above output has analysed user functions (the default). It makes it
+easy to identify which function is being called the most (COUNT), which
+is taking the most time (ELAPSED), and which is consuming the most CPU (CPU).
+These times are totals for all the functions called.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/dapptrace_example.txt b/external/cddl/dtracetoolkit/dist/Examples/dapptrace_example.txt
new file mode 100644
index 0000000..f19606c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/dapptrace_example.txt
@@ -0,0 +1,215 @@
+The following is a demonstration of the dapptrace command,
+
+This is the usage for version 0.60,
+
+   # dapptrace -h
+   USAGE: dapptrace [-acdeholFLU] [-u lib] { -p PID | command }
+   
+             -p PID          # examine this PID
+             -a              # print all details
+             -c              # print syscall counts
+             -d              # print relative times (us)
+             -e              # print elapsed times (us)
+             -F              # print flow indentation
+             -l              # print pid/lwpid
+             -o              # print CPU on cpu times
+             -u lib          # trace this library instead
+             -U              # trace all libraries + user funcs
+             -b bufsize      # dynamic variable buf size
+      eg,
+          dapptrace df -h       # run and examine "df -h"
+          dapptrace -p 1871     # examine PID 1871
+          dapptrace -Fp 1871    # print using flow indents
+          dapptrace -eop 1871   # print elapsed and CPU times
+
+
+
+The following is an example of the default output. We run dapptrace with
+the "banner hello" command,
+
+   # dapptrace banner hi
+
+    #    #     #
+    #    #     #
+    ######     #
+    #    #     #
+    #    #     #
+    #    #     #
+   
+   CALL(args) 		 = return
+   -> __fsr(0x2, 0x8047D7C, 0x8047D88)		
+   <- __fsr = 122
+   -> main(0x2, 0x8047D7C, 0x8047D88)		
+   -> banner(0x8047E3B, 0x80614C2, 0x8047D38)		
+   -> banset(0x20, 0x80614C2, 0x8047DCC)		
+   <- banset = 36
+   -> convert(0x68, 0x8047DCC, 0x2)		
+   <- convert = 319
+   -> banfil(0x8061412, 0x80614C2, 0x8047DCC)		
+   <- banfil = 57
+   -> convert(0x69, 0x8047DCC, 0x2)		
+   <- convert = 319
+   -> banfil(0x8061419, 0x80614CA, 0x8047DCC)		
+   <- banfil = 57
+   <- banner = 118
+   -> banprt(0x80614C2, 0x8047D38, 0xD27FB824)		
+   <- banprt = 74
+
+The default output shows user function calls. An entry is prefixed
+with a "->", and the return has a "<-".
+
+
+
+Here we run dapptrace with the -F for flow indent option,
+
+   # dapptrace -F banner hi
+   
+    #    #     #
+    #    #     #
+    ######     #
+    #    #     #
+    #    #     #
+    #    #     #
+   
+   CALL(args) 		 = return
+     -> __fsr(0x2, 0x8047D7C, 0x8047D88)		
+     <- __fsr = 122
+     -> main(0x2, 0x8047D7C, 0x8047D88)		
+       -> banner(0x8047E3B, 0x80614C2, 0x8047D38)		
+         -> banset(0x20, 0x80614C2, 0x8047DCC)		
+         <- banset = 36
+         -> convert(0x68, 0x8047DCC, 0x2)		
+         <- convert = 319
+         -> banfil(0x8061412, 0x80614C2, 0x8047DCC)		
+         <- banfil = 57
+         -> convert(0x69, 0x8047DCC, 0x2)		
+         <- convert = 319
+         -> banfil(0x8061419, 0x80614CA, 0x8047DCC)		
+         <- banfil = 57
+       <- banner = 118
+       -> banprt(0x80614C2, 0x8047D38, 0xD27FB824)		
+       <- banprt = 74
+
+The above output illustrates the flow of the program, which functions
+call which other functions.
+
+
+
+Now the same command is run with -d to display relative timestamps,
+
+   # dapptrace -dF banner hi
+   
+    #    #     #
+    #    #     #
+    ######     #
+    #    #     #
+    #    #     #
+    #    #     #
+   
+   RELATIVE CALL(args) 		 = return
+       2512   -> __fsr(0x2, 0x8047D7C, 0x8047D88)		
+       2516   <- __fsr = 122
+       2518   -> main(0x2, 0x8047D7C, 0x8047D88)		
+       2863     -> banner(0x8047E3B, 0x80614C2, 0x8047D38)		
+       2865       -> banset(0x20, 0x80614C2, 0x8047DCC)		
+       2872       <- banset = 36
+       2874       -> convert(0x68, 0x8047DCC, 0x2)		
+       2877       <- convert = 319
+       2879       -> banfil(0x8061412, 0x80614C2, 0x8047DCC)		
+       2882       <- banfil = 57
+       2883       -> convert(0x69, 0x8047DCC, 0x2)		
+       2885       <- convert = 319
+       2886       -> banfil(0x8061419, 0x80614CA, 0x8047DCC)		
+       2888       <- banfil = 57
+       2890     <- banner = 118
+       2892     -> banprt(0x80614C2, 0x8047D38, 0xD27FB824)		
+       3214     <- banprt = 74
+
+The relative times are in microseconds since the program's invocation. Great!
+
+
+
+Even better is if we use the -eo options, to print elapsed times and on-cpu
+times,
+
+   # dapptrace -eoF banner hi
+   
+    #    #     #
+    #    #     #
+    ######     #
+    #    #     #
+    #    #     #
+    #    #     #
+   
+    ELAPSD    CPU CALL(args) 		 = return
+         .      .   -> __fsr(0x2, 0x8047D7C, 0x8047D88)		
+        41      4   <- __fsr = 122
+         .      .   -> main(0x2, 0x8047D7C, 0x8047D88)		
+         .      .     -> banner(0x8047E3B, 0x80614C2, 0x8047D38)		
+         .      .       -> banset(0x20, 0x80614C2, 0x8047DCC)		
+        29      6       <- banset = 36
+         .      .       -> convert(0x68, 0x8047DCC, 0x2)		
+        26      3       <- convert = 319
+         .      .       -> banfil(0x8061412, 0x80614C2, 0x8047DCC)		
+        25      2       <- banfil = 57
+         .      .       -> convert(0x69, 0x8047DCC, 0x2)		
+        23      1       <- convert = 319
+         .      .       -> banfil(0x8061419, 0x80614CA, 0x8047DCC)		
+        23      1       <- banfil = 57
+       309     28     <- banner = 118
+         .      .     -> banprt(0x80614C2, 0x8047D38, 0xD27FB824)		
+       349    322     <- banprt = 74
+
+Now it is easy to see which functions take the longest (elapsed), and 
+which consume the most CPU cycles.
+
+
+
+The following demonstrates the -U option, to trace all libraries,
+
+   # dapptrace -U banner hi
+   
+    #    #     #
+    #    #     #
+    ######     #
+    #    #     #
+    #    #     #
+    #    #     #
+   
+   CALL(args) 		 = return
+   -> ld.so.1:_rt_boot(0x8047E34, 0x8047E3B, 0x0)		
+   -> ld.so.1:_setup(0x8047D38, 0x20AE4, 0x3)		
+   -> ld.so.1:setup(0x8047D88, 0x8047DCC, 0x0)		
+   -> ld.so.1:fmap_setup(0x0, 0xD27FB2E4, 0xD27FB824)		
+   <- ld.so.1:fmap_setup = 125
+   -> ld.so.1:addfree(0xD27FD3C0, 0xC40, 0x0)		
+   <- ld.so.1:addfree = 65
+   -> ld.so.1:security(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF)		
+   <- ld.so.1:security = 142
+   -> ld.so.1:readenv_user(0x8047D88, 0xD27FB204, 0xD27FB220)		
+   -> ld.so.1:ld_str_env(0x8047E3E, 0xD27FB204, 0xD27FB220)		
+   <- ld.so.1:ld_str_env = 389
+   -> ld.so.1:ld_str_env(0x8047E45, 0xD27FB204, 0xD27FB220)		
+   <- ld.so.1:ld_str_env = 389
+   -> ld.so.1:ld_str_env(0x8047E49, 0xD27FB204, 0xD27FB220)		
+   <- ld.so.1:ld_str_env = 389
+   -> ld.so.1:ld_str_env(0x8047E50, 0xD27FB204, 0xD27FB220)		
+   -> ld.so.1:strncmp(0x8047E53, 0xD27F7BEB, 0x4)		
+   <- ld.so.1:strncmp = 113
+   -> ld.so.1:rd_event(0xD27FB1F8, 0x3, 0x0)		
+   [...4486 lines deleted...]
+   -> ld.so.1:_lwp_mutex_unlock(0xD27FD380, 0xD27FB824, 0x8047C04)		
+   <- ld.so.1:_lwp_mutex_unlock = 47
+   <- ld.so.1:rt_mutex_unlock = 34
+   -> ld.so.1:rt_bind_clear(0x1, 0xD279ECC0, 0xD27FDB2C)		
+   <- ld.so.1:rt_bind_clear = 34
+   <- ld.so.1:leave = 210
+   <- ld.so.1:elf_bndr = 803
+   <- ld.so.1:elf_rtbndr = 35
+
+The output was huge, around 4500 lines long. Function names are prefixed 
+with their library name, eg "ld.so.1".
+
+This full output should be used with caution, as it enables so many probes
+it could well be a burden on the system.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/dexplorer_example.txt b/external/cddl/dtracetoolkit/dist/Examples/dexplorer_example.txt
new file mode 100644
index 0000000..cba6171
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/dexplorer_example.txt
@@ -0,0 +1,95 @@
+The following is a demonstration of the dexplorer program.
+
+
+Here we run dexplorer with no arguments. By default it will sample various
+system activities using DTrace at 5 seconds per sample. It creates an
+output tar.gz file containing all the DTrace output,
+
+   # dexplorer
+   Output dir will be the current dir (/export/home/root/DTrace/Dexplorer).
+   Hit enter for yes, or type path:
+   Starting dexplorer ver 0.70.
+   Sample interval is 5 seconds. Total run is > 100 seconds.
+     0% Interrupts by CPU...
+     5% Interrupt counts...
+    10% Dispatcher queue length by CPU...
+    15% Sdt counts...
+    20% Pages paged in by process name...
+    25% Files opened count...
+    30% Disk I/O size distribution by process name...
+    35% Minor faults by process name...
+    40% Vminfo data by process name...
+    45% Mib data by mib statistic...
+    50% TCP write bytes by process...
+    55% Sample process @ 1000 Hz...
+    60% Syscall count by process name...
+    65% Syscall count by syscall...
+    70% Read bytes by process name...
+    75% Write bytes by process name...
+    80% Sysinfo counts by process name...
+    85% New process counts with arguments...
+    90% Signal counts...
+    95% Syscall error counts...
+   100% Done.
+   File is de_jupiter_200506271803.tar.gz
+
+As each sample is taken, a line of output is printed above. The above example
+is for version 0.70, newer versions of dexplorer are likely to print more
+lines as they take more samples.
+
+The final line states which file all the output is now in.
+
+
+
+
+The following displays the contents of a dexplorer file,
+
+   # gunzip de_jupiter_200506271803.tar.gz
+   # tar xf de_jupiter_200506271803.tar
+   de_jupiter_200506271803
+   de_jupiter_200506271803/Cpu
+   de_jupiter_200506271803/Cpu/interrupt_by_cpu
+   de_jupiter_200506271803/Cpu/interrupt_time
+   de_jupiter_200506271803/Cpu/dispqlen_by_cpu
+   de_jupiter_200506271803/Cpu/sdt_count
+   de_jupiter_200506271803/Disk
+   de_jupiter_200506271803/Disk/pgpgin_by_processname
+   de_jupiter_200506271803/Disk/fileopen_count
+   de_jupiter_200506271803/Disk/sizedist_by_processname
+   de_jupiter_200506271803/Mem
+   de_jupiter_200506271803/Mem/minf_by_processname
+   de_jupiter_200506271803/Mem/vminfo_by_processname
+   de_jupiter_200506271803/Net
+   de_jupiter_200506271803/Net/mib_data
+   de_jupiter_200506271803/Net/tcpw_by_process
+   de_jupiter_200506271803/Proc
+   de_jupiter_200506271803/Proc/sample_process
+   de_jupiter_200506271803/Proc/syscall_by_processname
+   de_jupiter_200506271803/Proc/syscall_count
+   de_jupiter_200506271803/Proc/readb_by_processname
+   de_jupiter_200506271803/Proc/writeb_by_processname
+   de_jupiter_200506271803/Proc/sysinfo_by_processname
+   de_jupiter_200506271803/Proc/newprocess_count
+   de_jupiter_200506271803/Proc/signal_count
+   de_jupiter_200506271803/Proc/syscall_errors
+   de_jupiter_200506271803/Info
+   de_jupiter_200506271803/Info/uname-a
+   de_jupiter_200506271803/Info/psrinfo-v
+   de_jupiter_200506271803/Info/prtconf
+   de_jupiter_200506271803/Info/df-k
+   de_jupiter_200506271803/Info/ifconfig-a
+   de_jupiter_200506271803/Info/ps-o
+   de_jupiter_200506271803/Info/uptime
+   de_jupiter_200506271803/log
+
+
+
+The following demonstrates running dexplorer in full quiet mode,
+
+   # dexplorer -qy -d /var/tmp
+   #
+
+No text is written to the screen (-qy). The output file will have been 
+put in /var/tmp (-d).
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/diskhits_example.txt b/external/cddl/dtracetoolkit/dist/Examples/diskhits_example.txt
new file mode 100644
index 0000000..6fe3a85
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/diskhits_example.txt
@@ -0,0 +1,107 @@
+The following is a demonstration of the diskhits command.
+
+
+Here we run diskhits on a large file, /extra1/contents with is 46 Mb, and
+currently hasn't been accessed (so isn't in any cache).
+
+While diskhits is running, the file is grep'd in another window. This causes
+the entire file to be read,
+
+   # ./diskhits /extra1/contents
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   Location (KB),
+   
+              value  ------------- Distribution ------------- count    
+                < 0 |                                         0        
+                  0 |@@                                       47       
+               2303 |@@                                       41       
+               4606 |@@                                       41       
+               6909 |@@                                       42       
+               9212 |@@                                       41       
+              11515 |@@                                       41       
+              13818 |@@                                       42       
+              16121 |@@                                       43       
+              18424 |@@                                       42       
+              20727 |@@                                       41       
+              23030 |@@                                       41       
+              25333 |@@                                       41       
+              27636 |@@                                       41       
+              29939 |@@                                       42       
+              32242 |@@                                       44       
+              34545 |@@                                       41       
+              36848 |@@                                       41       
+              39151 |@@                                       41       
+              41454 |@@                                       41       
+              43757 |@@                                       40       
+           >= 46060 |                                         0        
+   
+   Size (KB),
+   
+              value  ------------- Distribution ------------- count    
+               4 |                                         0        
+                  8 |                                         6        
+                 16 |                                         10       
+                 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  818      
+                 64 |                                         0        
+   
+   Total RW: 46064 KB
+
+Ok, so the file was read evently with each access around 32 to 63 Kb in size,
+and a total of 46 Mb read. This all makes sense, as it is reading the file
+for the first time.
+
+
+
+Now the same file is grep'd with diskhits running, this time we can see what
+effect caching the file has made,
+
+   # ./diskhits /extra1/contents
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   Location (KB),
+   
+              value  ------------- Distribution ------------- count    
+               2303 |                                         0        
+               4606 |                                         5        
+               6909 |@                                        67       
+               9212 |@@@@                                     170      
+              11515 |@@@@@                                    216      
+              13818 |@@@@@                                    224      
+              16121 |@@@@@@                                   287      
+              18424 |@@@@@                                    227      
+              20727 |@@@                                      144      
+              23030 |@@                                       75       
+              25333 |@                                        59       
+              27636 |@                                        42       
+              29939 |@                                        41       
+              32242 |@                                        44       
+              34545 |@                                        41       
+              36848 |@                                        41       
+              39151 |@                                        41       
+              41454 |@                                        41       
+              43757 |@                                        39       
+           >= 46060 |                                         0        
+   
+   Size (KB),
+   
+              value  ------------- Distribution ------------- count    
+                  2 |                                         0        
+                  4 |@@@@@@@@@@@@@@@@@@@@@@@@@                1137     
+                  8 |@@@@@                                    211      
+                 16 |@@                                       111      
+                 32 |@@@@@@@@                                 345      
+                 64 |                                         0        
+   
+   Total RW: 29392 KB
+
+The difference is dramatic. This time only 29 Mb is read, leaving around 
+17 Mb that was read from the cache. The way the file is read differs - 
+in the later half of the file it looks the same, but in the first half there
+are many more events; oddly enough, this is because the early part of the 
+file is cached more, the extra events are likely to be much smaller in size -
+as indicated in the difference in the size distribution.
+
+It appears that everything less that 4606 Kb has remained in the cache, with 
+zero hits for that range.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/dispqlen_example.txt b/external/cddl/dtracetoolkit/dist/Examples/dispqlen_example.txt
new file mode 100644
index 0000000..f3542c0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/dispqlen_example.txt
@@ -0,0 +1,62 @@
+This is a demonstration of the dispqlen.d script,
+
+
+Here we run it on a single CPU desktop,
+
+   # dispqlen.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+    CPU 0
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    1790
+                  1 |@@@                                      160
+                  2 |                                         10
+                  3 |                                         0
+
+The output shows the length of the dispatcher queue is mostly 0. This is
+evidence that the CPU is not very saturated. It does not indicate that the
+CPU is idle - as we are measuring the length of the queue, not what is
+on the CPU.
+
+
+
+Here it is run on a multi CPU server,
+
+   # dispqlen.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+    CPU 1
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          1573
+                  1 |@@@@@@@@@                                436
+                  2 |                                         4
+                  3 |                                         0
+   
+    CPU 4
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@                   1100
+                  1 |@@@@@@@@@@@@@@@@@@                       912
+                  2 |                                         1
+                  3 |                                         0
+   
+    CPU 0
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@                        846
+                  1 |@@@@@@@@@@@@@@@@@@@@@@@                  1167
+                  2 |                                         0
+   
+    CPU 5
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@                                 397
+                  1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          1537
+                  2 |@@                                       79
+                  3 |                                         0
+
+The above output shows that threads are queueing up on CPU 5 much more than
+CPU 0. 
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/dnlcps_example.txt b/external/cddl/dtracetoolkit/dist/Examples/dnlcps_example.txt
new file mode 100644
index 0000000..eed35b4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/dnlcps_example.txt
@@ -0,0 +1,47 @@
+The following is a demonstration of the dnlcps.d script.
+
+
+Here we run dnlcps.d for o few seconds, then hit Ctrl-C,
+
+   # dnlcps.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    CMD: bash             PID: 12508
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@                         2
+               >= 1 |@@@@@@@@@@@@@@@@@@@@@@@@                 3
+   
+    CMD: nscd             PID: 109
+   
+              value  ------------- Distribution ------------- count
+                  0 |                                         0
+               >= 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+   
+    CMD: in.routed        PID: 143
+   
+              value  ------------- Distribution ------------- count
+                  0 |                                         0
+               >= 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 12
+   
+    CMD: ls               PID: 12508
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@                                      2
+               >= 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    22
+   
+    CMD: find             PID: 12507
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@                           5768
+               >= 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@               11263
+
+A "find" command was running at the time, which had 11,263 hits on the DNLC
+and 5768 misses. An "ls" command scored 22 hits.
+
+The above distribution output can help us identify if procesess
+are both using the DNLC a lot, and what hit rate they are scoring.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/dnlcsnoop_example.txt b/external/cddl/dtracetoolkit/dist/Examples/dnlcsnoop_example.txt
new file mode 100644
index 0000000..45915f1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/dnlcsnoop_example.txt
@@ -0,0 +1,88 @@
+The following is a demonstration of the dnlcsnoop.d script.
+
+
+Here we run dnlcsnoop.d, while in another window a "find /etc/default"
+command is executed,
+
+   # dnlcsnoop.d
+      PID CMD         TIME HIT PATH
+     9185 bash           9   Y /etc
+     9185 bash           3   Y /etc
+    12293 bash           9   Y /usr
+    12293 bash           3   Y /usr/bin
+    12293 bash           4   Y /usr/bin/find
+    12293 bash           7   Y /lib
+    12293 bash           3   Y /lib/ld.so.1
+    12293 find           6   Y /usr
+    12293 find           3   Y /usr/bin
+    12293 find           3   Y /usr/bin/find
+    12293 find           3   Y /usr
+    12293 find           3   Y /usr/lib
+    12293 find           3   Y /usr/lib/ld.so.1
+    12293 find           3   Y /usr/lib/..
+    12293 find           3   Y /usr/..
+    12293 find           3   Y /lib
+    12293 find           3   Y /lib/ld.so.1
+    12293 find           3   Y /usr
+    12293 find           3   Y /usr/bin
+    12293 find           2   Y /usr/bin/find
+    12293 find           4   Y /var
+    12293 find           3   Y /var/ld
+    12293 find           3   Y /var/ld/ld.config
+    12293 find           3   Y /lib
+    12293 find           3   Y /lib/libc.so.1
+    12293 find           3   Y /lib
+    12293 find           3   Y /lib/libc.so.1
+    12293 find           3   Y /lib
+    12293 find           3   Y /lib/libc.so.1
+    12293 find           8   Y /export
+    12293 find           4   Y /export/home
+    12293 find           3   Y /export/home/root
+    12293 find           4   Y /export/home/root/CacheKit-0.93
+    12293 find           3   Y /export
+    12293 find           3   Y /export/home
+    12293 find           3   Y /export/home/root
+    12293 find           3   Y /export/home/root/CacheKit-0.93
+    12293 find           3   Y /etc
+    12293 find           3   Y /etc/default
+    12293 find           3   Y /etc
+    12293 find           3   Y /etc/default
+    12293 find           5   N /etc/default/cron
+    12293 find           3   N /etc/default/devfsadm
+    12293 find           4   N /etc/default/fs
+    12293 find           4   N /etc/default/kbd
+    12293 find           3   N /etc/default/keyserv
+    12293 find           4   N /etc/default/nss
+    12293 find           3   N /etc/default/syslogd
+    12293 find           3   N /etc/default/tar
+    12293 find           4   N /etc/default/utmpd
+    12293 find           5   N /etc/default/init
+    12293 find           4   Y /etc/default/login
+    12293 find           4   Y /etc/default/su
+    12293 find           3   N /etc/default/passwd
+    12293 find           3   N /etc/default/dhcpagent
+    12293 find           4   N /etc/default/inetinit
+    12293 find           3   N /etc/default/ipsec
+    12293 find           3   N /etc/default/mpathd
+    12293 find           3   N /etc/default/telnetd
+    12293 find           3   Y /etc/default/nfs
+    12293 find           3   N /etc/default/autofs
+    12293 find           9   Y /etc/default/ftp
+    12293 find           5   N /etc/default/rpc.nisd
+    12293 find           5   N /etc/default/nfslogd
+    12293 find           4   N /etc/default/lu
+    12293 find           6   N /etc/default/power
+    12293 find           5   N /etc/default/sys-suspend
+    12293 find           6   N /etc/default/metassist.xml
+    12293 find           5   N /etc/default/yppasswdd
+    12293 find           4   N /etc/default/webconsole
+    12293 find           5   Y /export
+    12293 find           4   Y /export/home
+    12293 find           4   Y /export/home/root
+    12293 find           4   Y /export/home/root/CacheKit-0.93
+
+The DNLC is the Directory Name Lookup Cache. Here we can see name lookups,
+and whether the cache returned a hit. "/export/home/root/CacheKit-0.93" was
+looked up a few times - this was the current directory that the find
+command was executed from.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/dnlcstat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/dnlcstat_example.txt
new file mode 100644
index 0000000..a6ce1d6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/dnlcstat_example.txt
@@ -0,0 +1,40 @@
+The following is a demonstration of the dnlcstat command.
+
+
+Here we run dnlcstat with no options. It prints a line every second,
+
+   # dnlcstat
+   dnlc  %hit      hit     miss
+            0        0        0
+            0        0        0
+           93       95        7
+           89     1920      231
+           89     2130      243
+           91     2358      232
+           92     1476      124
+           92     1953      159
+           94     2416      134
+           94     1962      114
+           95     2113      101
+           97     1969       54
+           98     1489       26
+           41      564      786
+           40      622      913
+           35      520      952
+           27      937     2503
+           22     1696     5806
+           22      955     3281
+           21     1377     5059
+           31     2043     4516
+           22     1423     4968
+           13      550     3438
+            2       95     3810
+            0       58     6410
+            4      223     4433
+            4      198     4491
+            7      339     4383
+
+In another window, a "find /" was run. We can see the DNLC activity above,
+initially there are high hit rates in the DNLC - over 90%. Eventually
+the find command exhausts the DNLC, and the hit rate drops to below 10%. 
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/dtruss_example.txt b/external/cddl/dtracetoolkit/dist/Examples/dtruss_example.txt
new file mode 100644
index 0000000..107fc19
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/dtruss_example.txt
@@ -0,0 +1,120 @@
+The following demonstrates the dtruss command - a DTrace version of truss.
+This version is designed to be less intrusive and safer than running truss.
+
+dtruss has many options. Here is the help for version 0.70,
+ 
+   USAGE: dtruss [-acdefholL] [-t syscall] { -p PID | -n name | command }
+
+             -p PID          # examine this PID
+             -n name         # examine this process name
+             -t syscall      # examine this syscall only
+             -a              # print all details
+             -c              # print syscall counts
+             -d              # print relative times (us)
+             -e              # print elapsed times (us)
+             -f              # follow children
+             -l              # force printing pid/lwpid
+             -o              # print on cpu times
+             -L              # don't print pid/lwpid
+             -b bufsize      # dynamic variable buf size
+      eg,
+          dtruss df -h       # run and examine "df -h"
+          dtruss -p 1871     # examine PID 1871
+          dtruss -n tar      # examine all processes called "tar"
+          dtruss -f test.sh  # run test.sh and follow children
+
+
+
+For example, here we dtruss any process with the name "ksh" - the Korn shell,
+ 
+ # dtruss -n ksh
+ PID/LWP   SYSCALL(args)                  = return
+ 27547/1:  llseek(0x3F, 0xE4E, 0x0)               = 3662 0
+ 27547/1:  read(0x3F, "\0", 0x400)                = 0 0
+ 27547/1:  llseek(0x3F, 0x0, 0x0)                 = 3662 0
+ 27547/1:  write(0x3F, "ls -l\n\0", 0x8)          = 8 0
+ 27547/1:  fdsync(0x3F, 0x10, 0xFEC1D444)                 = 0 0
+ 27547/1:  lwp_sigmask(0x3, 0x20000, 0x0)                 = 0xFFBFFEFF 0
+ 27547/1:  stat64("/usr/bin/ls\0", 0x8047A00, 0xFEC1D444)                 = 0 0
+ 27547/1:  lwp_sigmask(0x3, 0x0, 0x0)             = 0xFFBFFEFF 0
+ [...]
+
+The output for each system call does not yet evaluate as much as truss does.
+
+
+
+In the following example, syscall elapsed and overhead times are measured.
+Elapsed times represent the time from syscall start to finish; overhead
+times measure the time spent on the CPU,
+
+ # dtruss -eon bash
+ PID/LWP    ELAPSD    CPU SYSCALL(args)           = return
+  3911/1:       41     26 write(0x2, "l\0", 0x1)          = 1 0
+  3911/1:  1001579     43 read(0x0, "s\0", 0x1)           = 1 0
+  3911/1:       38     26 write(0x2, "s\0", 0x1)          = 1 0
+  3911/1:  1019129     43 read(0x0, " \001\0", 0x1)               = 1 0
+  3911/1:       38     26 write(0x2, " \0", 0x1)          = 1 0
+  3911/1:   998533     43 read(0x0, "-\0", 0x1)           = 1 0
+  3911/1:       38     26 write(0x2, "-\001\0", 0x1)              = 1 0
+  3911/1:  1094323     42 read(0x0, "l\0", 0x1)           = 1 0
+  3911/1:       39     27 write(0x2, "l\001\0", 0x1)              = 1 0
+  3911/1:  1210496     44 read(0x0, "\r\0", 0x1)          = 1 0
+  3911/1:       40     28 write(0x2, "\n\001\0", 0x1)             = 1 0
+  3911/1:        9      1 lwp_sigmask(0x3, 0x2, 0x0)              = 0xFFBFFEFF 0
+  3911/1:       70     63 ioctl(0x0, 0x540F, 0x80F6D00)           = 0 0
+
+A bash command was in another window, where the "ls -l" command was being
+typed. The keystrokes can be seen above, along with the long elapsed times
+(keystroke delays), and short overhead times (as the bash process blocks
+on the read and leaves the CPU). 
+
+
+
+Now dtruss is put to the test. Here we truss a test program that runs several
+hundred smaller programs, which in turn generate thousands of system calls.
+
+First, as a "control" we run the program without a truss or dtruss running,
+
+ # time ./test
+ real    0m38.508s
+ user    0m5.299s
+ sys     0m25.668s
+
+Now we try truss,
+
+ # time truss ./test 2> /dev/null
+ real    0m41.281s
+ user    0m0.558s
+ sys     0m1.351s
+
+Now we try dtruss,
+
+ # time dtruss ./test 2> /dev/null
+ real    0m46.226s
+ user    0m6.771s
+ sys     0m31.703s
+
+In the above test, truss slowed the program from 38 seconds to 41. dtruss
+slowed the program from 38 seconds to 46, slightly slower that truss...
+
+Now we try follow mode "-f". The test program does run several hundred
+smaller programs, so now there are plenty more system calls to track,
+
+ # time truss -f ./test 2> /dev/null
+ real    2m28.317s
+ user    0m0.893s
+ sys     0m3.527s
+
+Now we try dtruss,
+
+ # time dtruss -f ./test 2> /dev/null
+ real    0m56.179s
+ user    0m10.040s
+ sys     0m38.185s
+
+Wow, the difference is huge! truss slows the program from 38 to 148 seconds; 
+but dtruss has only slowed the program from 38 to 56 seconds.
+
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/dvmstat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/dvmstat_example.txt
new file mode 100644
index 0000000..1fb7fbb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/dvmstat_example.txt
@@ -0,0 +1,91 @@
+The following is a demonstration of the dvmstat program,
+
+
+Here we run dvmstat to monitor all processes called "find". In another 
+window, a "find /" command is run,
+
+   # dvmstat -n find
+       re   maj    mf   fr  epi  epo  api  apo  fpi  fpo     sy
+        0     0     0    0    0    0    0    0    0    0      0
+        0     0     0    0    0    0    0    0    0    0      0
+     6336     0   372    0    0    0    0    0    0    0  22255
+     1624     0     0    0    0    0    0    0    0    0   5497
+     2292     0     0    0    0    0    0    0    0    0   7715
+    13064     0     0    0    0    0    0    0    0    0  43998
+     7972   168     0    0    0    0    0    0  168    0  38361
+      468   636     0    0    0    0    0    0  636    0  13774
+      376   588     0    0    0    0    0    0  588    0  10723
+       80   636     0    0    0    0    0    0  656    0  11078
+       48   772     0    0    0    0    0    0  812    0   9841
+       16  1028     0    0    0    0    0    0 1056    0  10752
+        0  1712     0    0    0    0    0    0 1740    0  12176
+        4  1224     0    0    0    0    0    0 1236    0   9024
+
+The output above is spectacular! When the find command is first run, 
+it begins be reading data from the file cache, as indicated by the "re"
+reclaims, and a lack of "fpi" filesystem page ins.
+
+Eventually the find command travels to places which are not cached, we can
+see the "re" value drops, and both the "maj" major faults and "fpi" values
+increase. This transition from cache hits to file system activity is 
+very clear from the above output.
+
+
+
+Here we run a dvmstat to examine the PID 3778,
+
+   # dvmstat -p 3778
+       re   maj    mf   fr  epi  epo  api  apo  fpi  fpo     sy
+        0     0     0    0    0    0    0    0    0    0      0
+        0     0     0    0    0    0    0    0    0    0      0
+       24    28     0    0    0    0    0    0   28    0    109
+        4   148    16    0    0    0    0    0  148    0   1883
+       16   412   384    0    0    0    0    0  412    0  21019
+        0     0     0    0    0    0    0    0    0    0      3
+        0     0     0    0    0    0    0    0    0    0    221
+        0     0     0    0    0    0    0    0    0    0      0
+        0     0     0    0    0    0    0    0    0    0     84
+        0     0     0    0    0    0    0    0    0    0      0
+
+Here we can see the statistics for that process only.
+
+
+
+The following runs the date command through dvmstat,
+
+   # dvmstat date
+   Sun Jun 12 17:44:24 EST 2005
+       re   maj    mf   fr  epi  epo  api  apo  fpi  fpo     sy
+       16     0   208    0    0    0    0    0    0    0     38
+
+The values above are for the date command only.
+
+
+
+Now we run dvmstat on a tar command. Here we tar around 50Mb of files,
+so the command takes around 20 seconds to complete,
+
+   # dvmstat tar cf backup.tar DTrace
+       re   maj    mf   fr  epi  epo  api  apo  fpi  fpo     sy
+       20   256   304    0    8    0    0    0  352    0    621
+     4540    56   896    0    0    0    0    0 4636    0   1005
+     4432    12   644    0    0    0    0    0 4384    0    906
+      680   180   136    0    8    0    0    0 1056    0    502
+     2328    60   468    0    0    0    0    0 2296    0    592
+     1300   380   272    0    0    0    0    0 1704    0   1095
+     2816    72   560    0    0    0    0    0 2940    0    709
+     4084    40   416    0    0    0    0    0 4220    0    894
+     2764     4   276    0    0    0    0    0 2700    0    566
+     1824    96   328    0    0    0    0    0 2072    0    556
+     3408    80   392    0   20    0    0    0 3496    0    857
+     2804    92   552    0    4    0    0    0 2924    0    741
+     1344    16   272    0    0    0    0    0 1376    0    289
+     3284    52   520    0   12    0    0    0 3260    0    743
+     4832   200   812    0    0    0    0    0 5292    0   1276
+    11052    56  2200    0    0    0    0    0 8676    0   2326
+     5256   328  1020    0    8    0    0    0 4404    0   1725
+       re   maj    mf   fr  epi  epo  api  apo  fpi  fpo     sy
+      404   340    72    0   64    0    0    0  536    0   1135
+
+Great! Activity from the tar command such as "fpi"s can be clearly seen.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/errinfo_example.txt b/external/cddl/dtracetoolkit/dist/Examples/errinfo_example.txt
new file mode 100644
index 0000000..1dcb28d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/errinfo_example.txt
@@ -0,0 +1,90 @@
+This is an example of the errinfo program, which prints details on syscall
+failures.
+
+By default it "snoops" syscall failures and prints their details,
+
+   # ./errinfo
+               EXEC          SYSCALL  ERR  DESC
+        wnck-applet             read   11  Resource temporarily unavailable
+               Xorg             read   11  Resource temporarily unavailable
+           nautilus             read   11  Resource temporarily unavailable
+               Xorg             read   11  Resource temporarily unavailable
+               dsdm             read   11  Resource temporarily unavailable
+               Xorg             read   11  Resource temporarily unavailable
+               Xorg          pollsys    4  interrupted system call
+        mozilla-bin         lwp_park   62  timer expired
+   gnome-netstatus-            ioctl   12  Not enough core
+        mozilla-bin         lwp_park   62  timer expired
+               Xorg             read   11  Resource temporarily unavailable
+        mozilla-bin         lwp_park   62  timer expired
+   [...]
+
+which is useful to see these events live, but can scroll off the screen
+somewhat rapidly.. so,
+
+
+
+The "-c" option will count the number of errors. Hit Ctrl-C to stop the 
+sample. For example,
+
+# ./errinfo -c
+Tracing... Hit Ctrl-C to end.
+^C
+            EXEC          SYSCALL  ERR  COUNT  DESC
+            nscd            fcntl   22      1  Invalid argument
+    xscreensaver             read   11      1  Resource temporarily unavailable
+           inetd         lwp_park   62      1  timer expired
+      svc.startd         lwp_park   62      1  timer expired
+     svc.configd         lwp_park   62      1  timer expired
+          ttymon            ioctl   25      1  Inappropriate ioctl for device
+gnome-netstatus-            ioctl   12      2  Not enough core
+     mozilla-bin         lwp_kill    3      2  No such process
+     mozilla-bin          connect  150      5  operation now in progress
+      svc.startd           portfs   62      8  timer expired
+         java_vm    lwp_cond_wait   62      8  timer expired
+     soffice.bin             read   11      9  Resource temporarily unavailable
+  gnome-terminal             read   11     23  Resource temporarily unavailable
+     mozilla-bin             recv   11     26  Resource temporarily unavailable
+        nautilus             read   11     26  Resource temporarily unavailable
+gnome-settings-d             read   11     26  Resource temporarily unavailable
+   gnome-smproxy             read   11     34  Resource temporarily unavailable
+     gnome-panel             read   11     42  Resource temporarily unavailable
+            dsdm             read   11    112  Resource temporarily unavailable
+        metacity             read   11    128  Resource temporarily unavailable
+     mozilla-bin         lwp_park   62    133  timer expired
+            Xorg          pollsys    4    147  interrupted system call
+     wnck-applet             read   11    179  Resource temporarily unavailable
+     mozilla-bin             read   11    258  Resource temporarily unavailable
+            Xorg             read   11   1707  Resource temporarily unavailable
+
+Ok, so Xorg has received 1707 of the same type of error for the syscall read().
+
+
+
+The "-n" option lets us match on one type of process only. In the following
+we match processes that have the name "mozilla-bin",
+
+# ./errinfo -c -n mozilla-bin
+Tracing... Hit Ctrl-C to end.
+^C
+            EXEC          SYSCALL  ERR  COUNT  DESC
+     mozilla-bin      getpeername  134      1  Socket is not connected
+     mozilla-bin             recv   11      2  Resource temporarily unavailable
+     mozilla-bin         lwp_kill    3      2  No such process
+     mozilla-bin          connect  150      5  operation now in progress
+     mozilla-bin         lwp_park   62    207  timer expired
+     mozilla-bin             read   11    396  Resource temporarily unavailable
+
+
+
+The "-p" option lets us examine one PID only. The following example examines
+PID 1119,
+
+# ./errinfo -c -p 1119
+Tracing... Hit Ctrl-C to end.
+^C
+            EXEC          SYSCALL  ERR  COUNT  DESC
+            Xorg          pollsys    4     47  interrupted system call
+            Xorg             read   11    669  Resource temporarily unavailable
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/execsnoop_example.txt b/external/cddl/dtracetoolkit/dist/Examples/execsnoop_example.txt
new file mode 100644
index 0000000..e55682a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/execsnoop_example.txt
@@ -0,0 +1,78 @@
+The following is an example of execsnoop. As processes are executed their
+details are printed out. Another user was logged in running a few commands
+which can be viewed below,
+
+  # ./execsnoop
+    UID   PID  PPID ARGS
+    100  3008  2656 ls
+    100  3009  2656 ls -l
+    100  3010  2656 cat /etc/passwd
+    100  3011  2656 vi /etc/hosts
+    100  3012  2656 date
+    100  3013  2656 ls -l
+    100  3014  2656 ls
+    100  3015  2656 finger
+  [...]
+
+
+
+In this example the command "man gzip" was executed. The output lets us
+see what the man command is actually doing,
+
+  # ./execsnoop
+    UID   PID  PPID ARGS
+    100  3064  2656 man gzip
+    100  3065  3064 sh -c cd /usr/share/man; tbl /usr/share/man/man1/gzip.1 |nroff -u0 -Tlp -man - 
+    100  3067  3066 tbl /usr/share/man/man1/gzip.1
+    100  3068  3066 nroff -u0 -Tlp -man -
+    100  3066  3065 col -x
+    100  3069  3064 sh -c trap '' 1 15; /usr/bin/mv -f /tmp/mpoMaa_f /usr/share/man/cat1/gzip.1 2> 
+    100  3070  3069 /usr/bin/mv -f /tmp/mpoMaa_f /usr/share/man/cat1/gzip.1
+    100  3071  3064 sh -c more -s /tmp/mpoMaa_f
+    100  3072  3071 more -s /tmp/mpoMaa_f
+  ^C
+  
+
+
+Execsnoop has other options,
+
+  # ./execsnoop -h
+  USAGE: execsnoop [-a|-A|-sv] [-c command]
+         execsnoop                # default output
+                  -a              # print all data
+                  -A              # dump all data, space delimited
+                  -s              # include start time, us
+                  -v              # include start time, string
+                  -c command      # command name to snoop
+
+
+
+In particular the verbose option for human readable timestamps is 
+very useful,
+
+  # ./execsnoop -v
+  STRTIME                UID   PID  PPID ARGS
+  2005 Jan 22 00:07:22     0 23053 20933 date
+  2005 Jan 22 00:07:24     0 23054 20933 uname -a
+  2005 Jan 22 00:07:25     0 23055 20933 ls -latr
+  2005 Jan 22 00:07:27     0 23056 20933 df -k
+  2005 Jan 22 00:07:29     0 23057 20933 ps -ef
+  2005 Jan 22 00:07:29     0 23057 20933 ps -ef
+  2005 Jan 22 00:07:34     0 23058 20933 uptime
+  2005 Jan 22 00:07:34     0 23058 20933 uptime
+  [...]
+
+
+
+It is also possible to match particular commands. Here we watch
+anyone using the vi command only,
+
+  # ./execsnoop -vc vi 
+  STRTIME                UID   PID  PPID ARGS
+  2005 Jan 22 00:10:33     0 23063 20933 vi /etc/passwd
+  2005 Jan 22 00:10:40     0 23064 20933 vi /etc/shadow
+  2005 Jan 22 00:10:51     0 23065 20933 vi /etc/group
+  2005 Jan 22 00:10:57     0 23066 20933 vi /.rhosts
+  [...]
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/fddist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/fddist_example.txt
new file mode 100644
index 0000000..3d943b9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/fddist_example.txt
@@ -0,0 +1,38 @@
+The following is a demonstration of the fddist command,
+
+
+Here fddist is run for a few seconds on an idle workstation,
+
+   Tracing reads and writes... Hit Ctrl-C to end.
+   ^C
+   EXEC: dtrace           PID: 3288
+   
+              value  ------------- Distribution ------------- count
+                  0 |                                         0
+                  1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+                  2 |                                         0
+   
+   EXEC: mozilla-bin      PID: 1659
+   
+              value  ------------- Distribution ------------- count
+                  3 |                                         0
+                  4 |@@@@@@@@@@                               28
+                  5 |                                         0
+                  6 |@@@@@@@@@@@@@@@                          40
+                  7 |@@@@@@@@@@@@@@@                          40
+                  8 |                                         0
+   
+   EXEC: Xorg             PID: 1532
+   
+              value  ------------- Distribution ------------- count
+                 22 |                                         0
+                 23 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 57
+                 24 |                                         0
+
+The above displays the usage pattern for process file descriptors.
+We can see the Xorg process (PID 1532) has made 57 reads or writes to
+it's file descriptor 23. 
+
+The pfiles(1) command can be used to help determine what file 
+descriptor 23 actually is.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/filebyproc_example.txt b/external/cddl/dtracetoolkit/dist/Examples/filebyproc_example.txt
new file mode 100644
index 0000000..8267da2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/filebyproc_example.txt
@@ -0,0 +1,27 @@
+The following is an example of the filebyproc.d script,
+
+   # filebyproc.d
+   dtrace: description 'syscall::open*:entry ' matched 2 probes
+   CPU     ID                    FUNCTION:NAME
+     0     14                       open:entry gnome-netstatus- /dev/kstat
+     0     14                       open:entry man /var/ld/ld.config
+     0     14                       open:entry man /lib/libc.so.1
+     0     14                       open:entry man /usr/share/man/man.cf
+     0     14                       open:entry man /usr/share/man/windex
+     0     14                       open:entry man /usr/share/man/man1/ls.1
+     0     14                       open:entry man /usr/share/man/man1/ls.1
+     0     14                       open:entry man /tmp/mpqea4RF
+     0     14                       open:entry sh /var/ld/ld.config
+     0     14                       open:entry sh /lib/libc.so.1
+     0     14                       open:entry neqn /var/ld/ld.config
+     0     14                       open:entry neqn /lib/libc.so.1
+     0     14                       open:entry neqn /usr/share/lib/pub/eqnchar
+     0     14                       open:entry tbl /var/ld/ld.config
+     0     14                       open:entry tbl /lib/libc.so.1
+     0     14                       open:entry tbl /usr/share/man/man1/ls.1
+     0     14                       open:entry nroff /var/ld/ld.config
+   [...]
+
+In the above example, the command "man ls" was run. Each file that was 
+attempted to be opened can be seen, along with the program name responsible.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/fspaging_example.txt b/external/cddl/dtracetoolkit/dist/Examples/fspaging_example.txt
new file mode 100644
index 0000000..c29cb08
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/fspaging_example.txt
@@ -0,0 +1,32 @@
+The following is a short sample of output from the fspaging.d script.
+
+
+fspaging.d traces syscall read and writes, vnode interface reads, writes,
+getpage and putpage, and disk io.
+
+   # ./fspaging.d
+   Event             Device RW     Size Offset Path
+       disk_io         dad1  R     1024      0 /extra1
+       disk_io         dad1  R     8192      0 <none>
+       disk_io         dad1  R     2048      0 <none>
+   sc-write               .  W    51200      0 /extra1/outfile
+     fop_write            .  W    51200      0 /extra1/outfile
+     fop_getpage          .  R     8192      0 /extra1/50k
+       disk_io         dad1  R     8192      0 /extra1/50k
+       disk_ra         dad1  R     8192      8 /extra1/50k
+     fop_getpage          .  R     8192      8 /extra1/50k
+       disk_ra         dad1  R    34816     16 /extra1/50k
+     fop_getpage          .  R     8192     16 /extra1/50k
+     fop_getpage          .  R     8192     24 /extra1/50k
+     fop_getpage          .  R     8192     32 /extra1/50k
+     fop_getpage          .  R     8192     40 /extra1/50k
+     fop_getpage          .  R     8192     48 /extra1/50k
+     fop_putpage          .  W     8192      0 /extra1/outfile
+     fop_putpage          .  W     8192      8 /extra1/outfile
+     fop_putpage          .  W     8192     16 /extra1/outfile
+     fop_putpage          .  W     8192     24 /extra1/outfile
+     fop_putpage          .  W     8192     32 /extra1/outfile
+     fop_putpage          .  W     8192     40 /extra1/outfile
+       disk_io         dad1  W    51200      0 /extra1/outfile
+
+For a full discussion of this example, see fsrw_example.txt.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/fsrw_example.txt b/external/cddl/dtracetoolkit/dist/Examples/fsrw_example.txt
new file mode 100644
index 0000000..b153303
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/fsrw_example.txt
@@ -0,0 +1,129 @@
+The following are demonstrations of the fsrw.d script.
+
+
+Here the fsrw.d script was running while a 50 Kbyte file was read,
+
+   # ./fsrw.d
+   Event            Device RW     Size Offset Path
+   sc-read               .  R     8192      0 /extra1/50k
+     fop_read            .  R     8192      0 /extra1/50k
+       disk_io       cmdk0  R     8192      0 /extra1/50k
+       disk_ra       cmdk0  R     8192      8 /extra1/50k
+   sc-read               .  R     8192      8 /extra1/50k
+     fop_read            .  R     8192      8 /extra1/50k
+       disk_ra       cmdk0  R    34816     16 /extra1/50k
+   sc-read               .  R     8192     16 /extra1/50k
+     fop_read            .  R     8192     16 /extra1/50k
+   sc-read               .  R     8192     24 /extra1/50k
+     fop_read            .  R     8192     24 /extra1/50k
+   sc-read               .  R     8192     32 /extra1/50k
+     fop_read            .  R     8192     32 /extra1/50k
+   sc-read               .  R     8192     40 /extra1/50k
+     fop_read            .  R     8192     40 /extra1/50k
+   sc-read               .  R     8192     48 /extra1/50k
+     fop_read            .  R     8192     48 /extra1/50k
+   sc-read               .  R     8192     50 /extra1/50k
+     fop_read            .  R     8192     50 /extra1/50k
+   ^C
+
+By looking closely at the Offset (Kbytes) and Size of each transaction, we
+can see how the read() system calls (sc-read) were satisfied by the file
+system. There were 8 read() system calls, and 3 disk events - 2 of which were
+UFS read-ahead (disk_ra). The final read-ahead was for 34 Kbytes and began
+with an offset of 16 Kbytes, which read the remaining file data (34 + 16 = 50
+Kbytes). The subsequent read() system calls and corresponding fop_read() calls
+returned from the page cache.
+
+
+
+The following demonstrates how a logical I/O is broken up into multiple 
+physical I/O events. Here a dd command was used to read 1 Mbytes from the
+/var/sadm/install/contents file while fsrw.d was tracing.
+
+   # ./fsrw.d
+   Event            Device RW     Size Offset Path
+   sc-read               .  R  1048576      0 /var/sadm/install/contents
+     fop_read            .  R  1048576      0 /var/sadm/install/contents
+       disk_ra       cmdk0  R     4096     72 /var/sadm/install/contents
+       disk_ra       cmdk0  R     8192     96 <none>
+       disk_ra       cmdk0  R    57344     96 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    152 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    208 /var/sadm/install/contents
+       disk_ra       cmdk0  R    49152    264 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    312 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    368 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    424 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    480 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    536 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    592 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    648 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    704 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    760 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    816 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    872 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    928 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344    984 /var/sadm/install/contents
+       disk_ra       cmdk0  R    57344   1040 /var/sadm/install/contents
+   ^C
+
+Both the read() syscall (sc-read) and the fop_read() call asked the file system
+for 1048576 bytes, which was then broken into numerous disk I/O events of up to
+56 Kbytes in size. The 8192 byte read with a path of "<none>" is likely to be
+the file system reading the indirect block pointers for the 
+/var/sadm/install/contents file (something DTrace could confirm in detail).
+
+
+
+
+The following traces activity as a cp command copies a 50 Kbyte file.
+
+   # ./fsrw.d
+   Event            Device RW     Size Offset Path
+       disk_io        dad1  R     1024      0 /extra1
+       disk_io        dad1  R     8192      0 <none>
+       disk_io        dad1  R     8192      0 <none>
+       disk_io        dad1  R     2048      0 <none>
+       disk_io        dad1  R     2048      0 <none>
+   sc-write              .  W    51200      0 /extra1/outfile
+     fop_write           .  W    51200      0 /extra1/outfile
+       disk_io        dad1  R     8192      0 /extra1/50k
+       disk_ra        dad1  R     8192      8 /extra1/50k
+       disk_ra        dad1  R    34816     16 /extra1/50k
+       disk_io        dad1  R     2048      0 <none>
+       disk_io        dad1  W    49152      0 /extra1/outfile
+   ^C
+
+Reads including UFS read-ahead can be seen as the file is read.
+The output finishes with disk writes as the new file is flushed to disk.
+The syscall write() and fop_write() can be seen to the /extra1/outfile,
+however there is no syscall read() or fop_read() to /extra1/50k - which
+we may have expected to occur before the writes. This is due to the way
+the cp command now works, it uses mmap() to map files in for reading.
+This activity can be seen if we also trace fop_getpage() and fop_putpage(),
+as the fspaging.d dtrace script does.
+
+   # ./fspaging.d
+   Event             Device RW     Size Offset Path
+       disk_io         dad1  R     1024      0 /extra1
+       disk_io         dad1  R     8192      0 <none>
+       disk_io         dad1  R     2048      0 <none>
+   sc-write               .  W    51200      0 /extra1/outfile
+     fop_write            .  W    51200      0 /extra1/outfile
+     fop_getpage          .  R     8192      0 /extra1/50k
+       disk_io         dad1  R     8192      0 /extra1/50k
+       disk_ra         dad1  R     8192      8 /extra1/50k
+     fop_getpage          .  R     8192      8 /extra1/50k
+       disk_ra         dad1  R    34816     16 /extra1/50k
+     fop_getpage          .  R     8192     16 /extra1/50k
+     fop_getpage          .  R     8192     24 /extra1/50k
+     fop_getpage          .  R     8192     32 /extra1/50k
+     fop_getpage          .  R     8192     40 /extra1/50k
+     fop_getpage          .  R     8192     48 /extra1/50k
+     fop_putpage          .  W     8192      0 /extra1/outfile
+     fop_putpage          .  W     8192      8 /extra1/outfile
+     fop_putpage          .  W     8192     16 /extra1/outfile
+     fop_putpage          .  W     8192     24 /extra1/outfile
+     fop_putpage          .  W     8192     32 /extra1/outfile
+     fop_putpage          .  W     8192     40 /extra1/outfile
+       disk_io         dad1  W    51200      0 /extra1/outfile
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/guess_example.txt b/external/cddl/dtracetoolkit/dist/Examples/guess_example.txt
new file mode 100644
index 0000000..74be8b3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/guess_example.txt
@@ -0,0 +1,39 @@
+The following is a demonstration of the guess.d script,
+
+
+guess.d is a guessing game written in DTrace. It goes like this,
+
+   # ./guess.d
+   guess.d - Guess a number between 1 and 100
+   
+   Enter guess 1: 50
+   Lower...
+   Enter guess 2: 25
+   Higher...
+   Enter guess 3: 37
+   Higher...
+   Enter guess 4: 44
+   Higher...
+   Enter guess 5: 48
+   Lower...
+   Enter guess 6: 46
+   Lower...
+   Enter guess 7: 45
+   Correct! That took 7 guesses.
+   
+   Please enter your name: Brendan Gregg
+   
+   Previous high scores,
+   Fred Nurk 7
+   Brendan Gregg 7
+
+It was written as a demonstration of the same code written in dozens of
+languages. It makes a good demonstration, as it covers integer and string
+variables, conditional statements, loops, keyboard input, screen output,
+and file input and output. 
+
+Written in DTrace however, is not such a good demonstration! DTrace doesn't
+have loops (it doesn't really need them either) which made the code a 
+little odd. DTrace also doesn't have keyboard input... So this script is
+somewhat amusing as an example, but not terribly useful.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/hotkernel_example.txt b/external/cddl/dtracetoolkit/dist/Examples/hotkernel_example.txt
new file mode 100644
index 0000000..d8a5aec
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/hotkernel_example.txt
@@ -0,0 +1,153 @@
+The following are demonstrations of the hotkernel DTrace program.
+
+
+Here hotkernel is run for a couple of seconds then Ctrl-C is hit,
+
+   # ./hotkernel
+   Sampling... Hit Ctrl-C to end.
+   ^C
+   FUNCTION                                                COUNT   PCNT
+   unix`swtch                                                  1   0.1%
+   pcplusmp`apic_redistribute_compute                          1   0.1%
+   genunix`strrput                                             1   0.1%
+   unix`sys_call                                               1   0.1%
+   genunix`fsflush_do_pages                                    1   0.1%
+   TS`ts_wakeup                                                1   0.1%
+   genunix`callout_schedule_1                                  1   0.1%
+   unix`page_create_putback                                    1   0.1%
+   unix`mutex_enter                                            4   0.3%
+   unix`cpu_halt                                            1575  99.2%
+
+The output summarises which kernel-level function was sampled on the
+CPU the most. This report shows that unix`cpu_halt was sampled 1575 
+times, which was 99.2% of the kernel-level samples.
+
+As it turns out, unix`cpu_halt is called on this x86 server as part of the
+kernel idle thread - explaining why it is so often found on the CPU,
+
+   # dtrace -n 'fbt::cpu_halt:entry { @[stack()] = count(); }'
+   dtrace: description 'fbt::cpu_halt:entry ' matched 1 probe
+   ^C
+   
+                 unix`idle+0x3b
+                 unix`thread_start+0x3
+                 956
+
+This kernel stack trace indicates that cpu_halt() is called by idle().
+
+The following is a SPARC example,
+
+   # ./hotkernel 
+   Sampling... Hit Ctrl-C to end.
+   ^C
+   FUNCTION                                                COUNT   PCNT
+   genunix`fop_ioctl                                           1   0.1%
+   genunix`allocb_cred                                         1   0.1%
+   genunix`poll_common                                         1   0.1%
+   genunix`cv_block                                            1   0.1%
+   genunix`strioctl                                            1   0.1%
+   genunix`disp_lock_exit                                      1   0.1%
+   genunix`crfree                                              1   0.1%
+   ufs`ufs_getpage                                             1   0.1%
+   SUNW,UltraSPARC-IIi`copyin                                  1   0.1%
+   genunix`strmakedata                                         1   0.1%
+   genunix`cv_waituntil_sig                                    1   0.1%
+   SUNW,UltraSPARC-IIi`prefetch_page_r                         1   0.1%
+   unix`set_freemem                                            1   0.1%
+   unix`page_trylock                                           1   0.1%
+   genunix`anon_get_ptr                                        1   0.1%
+   unix`page_hashin                                            1   0.1%
+   genunix`bt_getlowbit                                        1   0.1%
+   unix`pp_load_tlb                                            1   0.1%
+   unix`_resume_from_idle                                      1   0.1%
+   unix`hat_pageunload                                         1   0.1%
+   genunix`strrput                                             1   0.1%
+   genunix`strpoll                                             1   0.1%
+   unix`page_do_hashin                                         1   0.1%
+   unix`cpu_vm_stats_ks_update                                 1   0.1%
+   genunix`sleepq_wakeone_chan                                 1   0.1%
+   unix`lock_set_spl                                           1   0.1%
+   tl`tl_wput                                                  1   0.1%
+   genunix`kstrgetmsg                                          1   0.1%
+   genunix`qbackenable                                         1   0.1%
+   genunix`releasef                                            1   0.1%
+   genunix`callout_execute                                     1   0.1%
+   uata`ata_hba_start                                          1   0.1%
+   genunix`pcacheset_cmp                                       1   0.1%
+   genunix`sleepq_insert                                       1   0.1%
+   genunix`syscall_mstate                                      1   0.1%
+   sockfs`sotpi_recvmsg                                        1   0.1%
+   genunix`strput                                              1   0.1%
+   genunix`timespectohz                                        1   0.1%
+   unix`lock_clear_splx                                        1   0.1%
+   genunix`read                                                1   0.1%
+   genunix`as_segcompar                                        1   0.1%
+   unix`atomic_cas_64                                          1   0.1%
+   unix`mutex_exit                                             1   0.1%
+   genunix`cv_unsleep                                          1   0.1%
+   unix`putnext                                                1   0.1%
+   unix`intr_thread                                            1   0.1%
+   genunix`hrt2tv                                              1   0.1%
+   sockfs`socktpi_poll                                         1   0.1%
+   unix`sfmmu_mlspl_enter                                      1   0.1%
+   SUNW,UltraSPARC-IIi`get_ecache_tag                          1   0.1%
+   SUNW,UltraSPARC-IIi`gethrestime                             1   0.1%
+   genunix`cv_timedwait_sig                                    1   0.1%
+   genunix`getq_noenab                                         1   0.1%
+   SUNW,UltraSPARC-IIi`flushecacheline                         1   0.1%
+   unix`utl0                                                   1   0.1%
+   genunix`anon_alloc                                          1   0.1%
+   unix`page_downgrade                                         1   0.1%
+   unix`setfrontdq                                             1   0.1%
+   genunix`timeout_common                                      1   0.1%
+   unix`bzero                                                  1   0.1%
+   unix`ktl0                                                   2   0.1%
+   genunix`canputnext                                          2   0.1%
+   genunix`clear_active_fd                                     2   0.1%
+   unix`sfmmu_tlb_demap                                        2   0.1%
+   unix`page_vpadd                                             2   0.1%
+   SUNW,UltraSPARC-IIi`check_ecache_line                       2   0.1%
+   genunix`cyclic_softint                                      2   0.1%
+   genunix`restore_mstate                                      2   0.1%
+   genunix`anon_map_getpages                                   2   0.1%
+   genunix`putq                                                2   0.1%
+   unix`page_lookup_create                                     2   0.1%
+   dtrace`dtrace_dynvar_clean                                  2   0.1%
+   unix`sfmmu_pageunload                                       2   0.1%
+   genunix`cpu_decay                                           2   0.1%
+   genunix`kmem_cache_alloc                                    3   0.2%
+   unix`rw_exit                                                3   0.2%
+   tl`tl_wput_data_ser                                         3   0.2%
+   unix`page_get_replacement_page                              3   0.2%
+   unix`page_sub                                               3   0.2%
+   genunix`clock                                               3   0.2%
+   SUNW,UltraSPARC-IIi`copyout                                 3   0.2%
+   unix`mutex_enter                                            4   0.2%
+   genunix`pcache_poll                                         5   0.3%
+   SUNW,UltraSPARC-IIi`scrub_ecache_line                       5   0.3%
+   SUNW,UltraSPARC-IIi`hwblkpagecopy                          22   1.2%
+   SUNW,UltraSPARC-IIi`hwblkclr                               39   2.1%
+   unix`generic_idle_cpu                                     506  26.8%
+   unix`idle                                                1199  63.5%
+
+Which shows the most common function is unix`idle.
+
+
+
+
+Now the hotkernel tool is demonstrated with the -m option, to only print
+out samples by module,
+
+   # ./hotkernel -m
+   Sampling... Hit Ctrl-C to end.
+   ^C
+   MODULE                                                  COUNT   PCNT
+   usbms                                                       1   0.0%
+   specfs                                                      1   0.0%
+   uhci                                                        1   0.0%
+   sockfs                                                      2   0.0%
+   genunix                                                    28   0.6%
+   unix                                                     4539  99.3%
+
+Here, genunix and unix (the two core parts of the kernel) were the most
+common module to be executing on-CPU.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/hotspot_example.txt b/external/cddl/dtracetoolkit/dist/Examples/hotspot_example.txt
new file mode 100644
index 0000000..179ba8d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/hotspot_example.txt
@@ -0,0 +1,34 @@
+The following is a demonstration of the hotspot.d script. 
+
+Here the script is run while a large file is copied from one filesystem
+(cmdk0 102,0) to another (cmdk0 102,3). We can see the file mostly resided
+around the 9000 to 10999 Mb range on the source disk (102,0), and was 
+copied to the 0 to 999 Mb range on the target disk (102,3).
+
+   # ./hotspot.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   Disk: cmdk0   Major,Minor: 102,3
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 418
+               1000 |                                         0
+   
+   Disk: cmdk0   Major,Minor: 102,0
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |                                         1
+               1000 |                                         5
+               2000 |                                         0
+               3000 |                                         0
+               4000 |                                         0
+               5000 |                                         0
+               6000 |                                         0
+               7000 |                                         0
+               8000 |                                         0
+               9000 |@@@@@                                    171
+              10000 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@      1157
+              11000 |                                         0
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/hotuser_example.txt b/external/cddl/dtracetoolkit/dist/Examples/hotuser_example.txt
new file mode 100644
index 0000000..c038acd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/hotuser_example.txt
@@ -0,0 +1,107 @@
+The following are demonstrations of the hotuser DTrace program.
+
+
+Here, hotuser is run on a test program called "dofuncs", which is hard coded
+to spend half its time in delta(), a third in beta() and a sixth in alpha().
+
+   # ./hotuser -c ./dofuncs
+   Sampling... Hit Ctrl-C to end.
+   ^C
+   FUNCTION                                                COUNT   PCNT
+   dofuncs`alpha                                             511  16.5%
+   dofuncs`beta                                             1029  33.3%
+   dofuncs`delta                                            1552  50.2%
+
+hotuser has accurately sampled which user-level functions are on the CPU,
+producing a report of the expected breakdown. The hottest user-level function
+is delta(), which was sampled 1552 times - 50.2% of the total samples.
+
+
+
+Now hotuser is run on gunzip, to find which functions are most often
+on the CPU,
+
+   # ./hotuser -c 'gunzip contents.gz'
+   Sampling... Hit Ctrl-C to end.
+   
+   FUNCTION                                                COUNT   PCNT
+   libc.so.1`_free_unlocked                                    1   0.1%
+   gunzip`unzip                                                1   0.1%
+   ld.so.1`strcmp                                              1   0.1%
+   gunzip`inflate_dynamic                                      1   0.1%
+   libc.so.1`_write                                            1   0.1%
+   gunzip`write_buf                                            1   0.1%
+   gunzip`0x2d990                                              2   0.3%
+   libc.so.1`write                                             2   0.3%
+   gunzip`0x2d994                                              2   0.3%
+   ld.so.1`rtld_db_preinit                                     3   0.4%
+   gunzip`0x2d98c                                              7   0.9%
+   gunzip`huft_build                                           9   1.2%
+   libc_psr.so.1`memcpy                                      138  18.5%
+   gunzip`inflate_codes                                      233  31.2%
+   gunzip`updcrc                                             344  46.1%
+
+This shows that updcrc() was sampled 344 times, and 46.1% of the total
+samples.
+
+
+
+A -l option will provide a breakdown on libraries only. hotuser
+is run on gzip to show library usage only,
+   
+   # ./hotuser -lc 'gzip contents'
+   Sampling... Hit Ctrl-C to end.
+
+   LIBRARY                                                 COUNT   PCNT
+   libc.so.1                                                   2   0.0%
+   libc_psr.so.1                                              37   0.9%
+   gzip                                                     4113  99.1%
+
+This shows that code in the gzip binary itself was on the CPU 99.1% of
+the sample times, with libc_psr.so.1 code on the CPU 0.9% of the time.
+
+
+
+The following shows library usage of mozilla. The pgrep command is used to
+match the most recent PID of mozilla-bin.
+
+   # ./hotuser -lp `pgrep -n mozilla-bin`
+   Sampling... Hit Ctrl-C to end.
+   ^C
+   LIBRARY                                                 COUNT   PCNT
+   libplds4.so                                                 1   0.1%
+   libappcomps.so                                              1   0.1%
+   libi18n.so                                                  1   0.1%
+   libuconv.so                                                 1   0.1%
+   libpref.so                                                  1   0.1%
+   libblueprint.so                                             1   0.1%
+   libz.so.1                                                   2   0.2%
+   libcaps.so                                                  2   0.2%
+   libXrender.so.1                                             2   0.2%
+   libimglib2.so                                               2   0.2%
+   libXft.so.2                                                 3   0.3%
+   libCrun.so.1                                                3   0.3%
+   libdocshell.so                                              3   0.3%
+   libplc4.so                                                  4   0.4%
+   libgtk-x11-2.0.so.0.400.9                                   5   0.5%
+   libjsd.so                                                   5   0.5%
+   libX11.so.4                                                 5   0.5%
+   libnecko.so                                                 8   0.9%
+   libwidget_gtk2.so                                           9   1.0%
+   libgkgfx.so                                                13   1.4%
+   libglib-2.0.so.0.400.1                                     14   1.5%
+   libgfx_gtk.so                                              18   2.0%
+   libnspr4.so                                                20   2.2%
+   libxpconnect.so                                            22   2.4%
+   libgdk-x11-2.0.so.0.400.9                                  23   2.5%
+   libgobject-2.0.so.0.400.1                                  25   2.7%
+   libhtmlpars.so                                             27   3.0%
+   libfontconfig.so.1                                         41   4.5%
+   libxpcom.so                                                49   5.4%
+   mozilla-bin                                                55   6.0%
+   libmozjs.so                                                80   8.8%
+   libc.so.1                                                 115  12.6%
+   libgklayout.so                                            352  38.6%
+
+This shows that 352 samples found code from libgklayout.so running, which
+was 38.6% of the samples.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/httpdstat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/httpdstat_example.txt
new file mode 100644
index 0000000..b9f59e8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/httpdstat_example.txt
@@ -0,0 +1,36 @@
+The following is an example of using the httpdstat.d script.
+
+
+This Solaris 10 server is running Apache as a webserver. The script matches
+on the process name "httpd". Here it shows many GET connections,
+
+   # httpdstat.d
+   TIME                    NUM    GET  POST  HEAD TRACE
+   2005 Nov 29 18:46:46     38     38     0     0     0
+   2005 Nov 29 18:46:47    109    109     0     0     0
+   2005 Nov 29 18:46:48    112    112     0     0     0
+   2005 Nov 29 18:46:49    113    113     0     0     0
+   2005 Nov 29 18:46:50    107    107     0     0     0
+   2005 Nov 29 18:46:51     56     56     0     0     0
+   2005 Nov 29 18:46:52      0      0     0     0     0
+   2005 Nov 29 18:46:53      0      0     0     0     0
+   2005 Nov 29 18:46:54     20     20     0     0     0
+   2005 Nov 29 18:46:55     48     48     0     0     0
+   ^C
+
+For a few seconds we had around 100 GETs per second.
+
+
+
+httpdstat.d accepts an argument as the sample interval, here we print a
+line every 30 seconds,
+
+   # httpdstat.d 30
+   TIME                    NUM    GET  POST  HEAD TRACE
+   2005 Nov 29 18:50:49    462    458     3     1     0
+   2005 Nov 29 18:51:19    421    413     5     2     1
+   2005 Nov 29 18:51:49   1361   1358     3     0     0
+   ^C
+
+The values are for the entire interval.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/icmpstat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/icmpstat_example.txt
new file mode 100644
index 0000000..e8b8cfe
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/icmpstat_example.txt
@@ -0,0 +1,29 @@
+The following is a demonstration of the icmpstat.d script,
+
+
+Here we run it and catch an inbound ping,
+
+   # icmpstat.d
+   2005 Jul 25 23:05:39,
+   
+                          STATISTIC    VALUE
+   
+   2005 Jul 25 23:05:40,
+   
+                          STATISTIC    VALUE
+                        icmpOutMsgs        1
+                    icmpOutEchoReps        1
+                        icmpInEchos        1
+                         icmpInMsgs        1
+   
+   2005 Jul 25 23:05:41,
+   
+                          STATISTIC    VALUE
+   
+   ^C
+
+Files such as /usr/include/inet/mib2.h may explain each of the statistics.
+
+The icmpstat.d is a simple demonstration of tracing ICMP activity. It may 
+serve as the starting point for other scripts.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/intbycpu_example.txt b/external/cddl/dtracetoolkit/dist/Examples/intbycpu_example.txt
new file mode 100644
index 0000000..5ed213c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/intbycpu_example.txt
@@ -0,0 +1,11 @@
+The following is a demonstration of the intbycpu.d script,
+
+   # intbycpu.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   CPU                    INTERRUPTS
+   0                             374
+   1                             412
+
+In the above output, CPU 1 had 412 interrupts, and CPU 0 had 374.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/intoncpu_example.txt b/external/cddl/dtracetoolkit/dist/Examples/intoncpu_example.txt
new file mode 100644
index 0000000..ed408eb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/intoncpu_example.txt
@@ -0,0 +1,93 @@
+The following is an example of the intoncpu.d script.
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+   # ./intoncpu.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   uhci1
+   
+              value  ------------- Distribution ------------- count
+               2048 |                                         0
+               4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+               8192 |                                         0
+   uhci0
+   
+              value  ------------- Distribution ------------- count
+                512 |                                         0
+               1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@         16
+               2048 |@@@@                                     2
+               4096 |@@                                       1
+               8192 |@@                                       1
+              16384 |                                         0
+   rtls0
+   
+              value  ------------- Distribution ------------- count
+                512 |                                         0
+               1024 |@@@@@@@@@@@@@@@@                         8
+               2048 |@@@@@@@@@@                               5
+               4096 |@@@@@@                                   3
+               8192 |                                         0
+              16384 |@@                                       1
+              32768 |@@                                       1
+              65536 |@@@@                                     2
+             131072 |                                         0
+
+The rtls0 driver (the network interface) has encourtered the most interrupts,
+with the time taken to process each interrupt visible as a distribution.
+These times ranged from around 1000 ns (1 us), to at least 65536 ns (65 us).
+
+To determine which devices the instance names represent (eg, "uhci1"), the
+/etc/path_to_inst file could be examied.
+
+
+
+The following is a longer example of running intoncpu.d,
+
+   # ./intoncpu.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   uhci1
+   
+              value  ------------- Distribution ------------- count
+               2048 |                                         0
+               4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+               8192 |                                         0
+   ata1
+   
+              value  ------------- Distribution ------------- count
+               8192 |                                         0
+              16384 |@@@@@@@@@@@@@@@@@@@@                     2
+              32768 |@@@@@@@@@@@@@@@@@@@@                     2
+              65536 |                                         0
+   ata0
+   
+              value  ------------- Distribution ------------- count
+               2048 |                                         0
+               4096 |@@@@@@@@@@@@@                            55
+               8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@               113
+              16384 |@                                        5
+              32768 |                                         0
+   uhci0
+   
+              value  ------------- Distribution ------------- count
+                512 |                                         0
+               1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   1288
+               2048 |@@                                       53
+               4096 |                                         6
+               8192 |                                         0
+   rtls0
+   
+              value  ------------- Distribution ------------- count
+                512 |                                         0
+               1024 |@@@@@@@@@@@@@@@@@@@@                     665
+               2048 |@@@@@@@@@                                307
+               4096 |@                                        35
+               8192 |                                         0
+              16384 |@@@@@@@                                  229
+              32768 |@@@                                      91
+              65536 |@                                        19
+             131072 |                                         1
+             262144 |                                         0
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/inttimes_example.txt b/external/cddl/dtracetoolkit/dist/Examples/inttimes_example.txt
new file mode 100644
index 0000000..384d700
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/inttimes_example.txt
@@ -0,0 +1,18 @@
+The following is a demonstration of the inttimes.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+   # inttimes.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+        DEVICE           TIME (ns)
+          ata0              22324
+         uhci1              45893
+          ata1             138559
+         uhci0             229226
+        i80420            1305617
+         rtls0            2540175
+
+In the above output, we can see that the rtls0 driver spent 2540 us on the
+CPU servicing interrupts, while ata0 spent only 22 us.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/iofile_example.txt b/external/cddl/dtracetoolkit/dist/Examples/iofile_example.txt
new file mode 100644
index 0000000..f4fc476
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/iofile_example.txt
@@ -0,0 +1,35 @@
+The following is a demonstration of the iofile.d script,
+
+
+Here we run it while a tar command is backing up /var/adm,
+
+   # iofile.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD              TIME FILE
+     5206 tar               109 /var/adm/acct/nite
+     5206 tar               110 /var/adm/acct/sum
+     5206 tar               114 /var/adm/acct/fiscal
+     5206 tar               117 /var/adm/messages.3
+     5206 tar               172 /var/adm/sa
+     5206 tar              3605 /var/adm/messages.2
+     5206 tar              4548 /var/adm/spellhist
+     5206 tar              5769 /var/adm/exacct/brendan1task
+     5206 tar              6416 /var/adm/acct
+     5206 tar              7587 /var/adm/messages.1
+     5206 tar              8246 /var/adm/exacct/task
+     5206 tar              8320 /var/adm/pool
+     5206 tar              8973 /var/adm/pool/history
+     5206 tar              9183 /var/adm/exacct
+        3 fsflush         10882 <none>
+     5206 tar             11861 /var/adm/exacct/flow
+     5206 tar             12042 /var/adm/messages.0
+     5206 tar             12408 /var/adm/sm.bin
+     5206 tar             13021 /var/adm/sulog
+     5206 tar             19007 /var/adm/streams
+     5206 tar             21811 <none>
+     5206 tar             24918 /var/adm/exacct/proc
+
+In the above output, we can see that the tar command spent 24918 us (25 ms)
+waiting for disk I/O on the /var/adm/exacct/proc file. 
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/iofileb_example.txt b/external/cddl/dtracetoolkit/dist/Examples/iofileb_example.txt
new file mode 100644
index 0000000..21597f7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/iofileb_example.txt
@@ -0,0 +1,23 @@
+The following is a demonstration of the iofileb.d script,
+
+
+Here we run it while a tar command is backing up /var/adm,
+
+   # ./iofileb.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD              KB FILE
+    29529 tar              56 /var/adm/sa/sa31
+    29529 tar              56 /var/adm/sa/sa03
+    29529 tar              56 /var/adm/sa/sa02
+    29529 tar              56 /var/adm/sa/sa01
+    29529 tar              56 /var/adm/sa/sa04
+    29529 tar              56 /var/adm/sa/sa27
+    29529 tar              56 /var/adm/sa/sa28
+    29529 tar             324 /var/adm/exacct/task
+    29529 tar             736 /var/adm/wtmpx
+
+In the above output, we can see that the tar command has caused 736 Kbytes
+of the /var/adm/wtmpx file to be read from disk. All af the Kbyte values
+measured are for disk activity.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/iopattern_example.txt b/external/cddl/dtracetoolkit/dist/Examples/iopattern_example.txt
new file mode 100644
index 0000000..818a4a2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/iopattern_example.txt
@@ -0,0 +1,57 @@
+The following is a demonstration of the iopattern program,
+
+
+Here we run iopattern for a few seconds then hit Ctrl-C. There is a "dd"
+command running on this system to intentionally create heavy sequential
+disk activity,
+
+   # iopattern
+   %RAN %SEQ  COUNT    MIN    MAX    AVG     KR     KW
+      1   99    465   4096  57344  52992  23916    148
+      0  100    556  57344  57344  57344  31136      0
+      0  100    634  57344  57344  57344  35504      0
+      6   94    554    512  57344  54034  29184     49
+      0  100    489  57344  57344  57344  27384      0
+     21   79    568   4096  57344  46188  25576     44
+      4   96    431   4096  57344  56118  23620      0
+   ^C
+
+In the above output we can see that the disk activity is mostly sequential.
+The disks are also pulling around 30 Mb during each sample, with a large
+average event size.
+
+
+
+The following demonstrates iopattern while running a "find" command to
+cause random disk activity,
+
+   # iopattern
+   %RAN %SEQ  COUNT    MIN    MAX    AVG     KR     KW
+     86   14    400   1024   8192   1543    603      0
+     81   19    455   1024   8192   1606    714      0
+     89   11    469    512   8192   1854    550    299
+     83   17    463   1024   8192   1782    806      0
+     87   13    394   1024   8192   1551    597      0
+     85   15    348    512  57344   2835    808    155
+     91    9    513    512  47616   2812    570    839
+     76   24    317    512  35840   3755    562    600
+   ^C
+
+In the above output, we can see from the percentages that the disk events
+were mostly random. We can also see that the average event size is small - 
+which makes sense if we are reading through many directory files.
+
+
+
+iopattern has options. Here we print timestamps "-v" and measure every 10
+seconds,
+
+   # iopattern -v 10
+   TIME                 %RAN %SEQ  COUNT    MIN    MAX    AVG     KR     KW
+   2005 Jul 25 20:40:55   97    3     33    512   8192   1163      8     29
+   2005 Jul 25 20:41:05    0    0      0      0      0      0      0      0
+   2005 Jul 25 20:41:15   84   16      6    512  11776   5973     22     13
+   2005 Jul 25 20:41:25  100    0     26    512   8192   1496      8     30
+   2005 Jul 25 20:41:35    0    0      0      0      0      0      0      0
+   ^C
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/iopending_example.txt b/external/cddl/dtracetoolkit/dist/Examples/iopending_example.txt
new file mode 100644
index 0000000..f4bc822
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/iopending_example.txt
@@ -0,0 +1,126 @@
+The following is a demonstration of the iopending tool,
+
+Here we run it with a sample interval of 1 second,
+
+   # iopending 1
+   Tracing... Please wait.
+   2006 Jan  6 20:21:59,  load: 0.02,  disk_r:      0 KB,  disk_w:      0 KB
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1010
+                  1 |                                         0
+   
+   2006 Jan  6 20:22:00,  load: 0.03,  disk_r:      0 KB,  disk_w:      0 KB
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1000
+                  1 |                                         0
+   
+   2006 Jan  6 20:22:01,  load: 0.03,  disk_r:      0 KB,  disk_w:      0 KB
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1000
+                  1 |                                         0
+   
+   ^C
+
+The iopending tool samples at 1000 Hz, and prints a distribution of how many
+disk events were "pending" completion. In the above example the disks are
+quiet - for all the samples there are zero disk events pending.
+
+
+
+Now iopending is run with no arguments. It will default to an interval of 5
+seconds,
+
+   # iopending
+   Tracing... Please wait.
+   2006 Jan  6 19:15:41,  load: 0.03,  disk_r:   3599 KB,  disk_w:      0 KB
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     4450
+                  1 |@@@                                      390
+                  2 |@                                        80
+                  3 |                                         40
+                  4 |                                         20
+                  5 |                                         30
+                  6 |                                         0
+   
+   ^C
+
+In the above output there was a little disk activity. For 390 samples there
+was 1 I/O event pending; for 80 samples there was 2, and so on. 
+
+
+
+
+In the following example iopending is run during heavy disk activity. We
+print output every 10 seconds,
+
+   # iopending 10
+   Tracing... Please wait.
+   2006 Jan  6 20:58:07,  load: 0.03,  disk_r:  25172 KB,  disk_w:  33321 KB
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@                                2160
+                  1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              6720
+                  2 |@@@@                                     1000
+                  3 |                                         50
+                  4 |                                         30
+                  5 |                                         20
+                  6 |                                         10
+                  7 |                                         10
+                  8 |                                         10
+                  9 |                                         0
+   
+   2006 Jan  6 20:58:17,  load: 0.05,  disk_r:   8409 KB,  disk_w:  12449 KB
+   
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@            7260
+                  1 |@@@@@@@                                  1700
+                  2 |@                                        300
+                  3 |                                         0
+                  4 |                                         10
+                  5 |                                         10
+                  6 |                                         10
+                  7 |                                         20
+                  8 |                                         0
+                  9 |                                         0
+                 10 |                                         0
+                 11 |                                         0
+                 12 |                                         0
+                 13 |                                         0
+                 14 |                                         0
+                 15 |                                         0
+                 16 |                                         0
+                 17 |                                         10
+                 18 |                                         20
+                 19 |                                         0
+                 20 |                                         0
+                 21 |                                         0
+                 22 |                                         0
+                 23 |                                         0
+                 24 |                                         0
+                 25 |                                         0
+                 26 |                                         0
+                 27 |                                         0
+                 28 |                                         0
+                 29 |                                         0
+                 30 |                                         0
+                 31 |                                         10
+              >= 32 |@@@                                      650
+   
+   ^C
+
+In the first output, most of the time (67%) there was 1 event pending, 
+and for a short time there were 8 events pending. In the second output we
+see many samples were off the scale - 650 samples at 32 or more pending
+events. For this sample I had typed "sync" in another window, which 
+queued many disk events immediately which were eventually completed.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/iosnoop_example.txt b/external/cddl/dtracetoolkit/dist/Examples/iosnoop_example.txt
new file mode 100644
index 0000000..addb7dc
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/iosnoop_example.txt
@@ -0,0 +1,39 @@
+The following demonstrates iosnoop. It was run on a system that was
+fairly quiet until a tar command was run,
+
+# ./iosnoop 
+  UID   PID D    BLOCK   SIZE       COMM PATHNAME
+    0     0 W     1067    512      sched <none>
+    0     0 W  6496304   1024      sched <none>
+    0     3 W  6498797    512    fsflush <none>
+    0     0 W     1067    512      sched <none>
+    0     0 W  6496304   1024      sched <none>
+  100   443 R   892288   4096       Xsun /usr/openwin/bin/Xsun
+  100   443 R   891456   4096       Xsun /usr/openwin/bin/Xsun
+  100 15795 R     3808   8192        tar /usr/bin/eject
+  100 15795 R    35904   6144        tar /usr/bin/eject
+  100 15795 R    39828   6144        tar /usr/bin/env
+  100 15795 R     3872   8192        tar /usr/bin/expr
+  100 15795 R    21120   7168        tar /usr/bin/expr
+  100 15795 R    43680   6144        tar /usr/bin/false
+  100 15795 R    44176   6144        tar /usr/bin/fdetach
+  100 15795 R     3920   8192        tar /usr/bin/fdformat
+  100 15795 R     3936   8192        tar /usr/bin/fdformat
+  100 15795 R     4080   8192        tar /usr/bin/fdformat
+  100 15795 R     9680   3072        tar /usr/bin/fdformat
+  100 15795 R     4096   8192        tar /usr/bin/fgrep
+  100 15795 R    46896   6144        tar /usr/bin/fgrep
+  100 15795 R     4112   8192        tar /usr/bin/file
+  100 15795 R     4128   8192        tar /usr/bin/file
+  100 15795 R     4144   8192        tar /usr/bin/file
+  100 15795 R    21552   7168        tar /usr/bin/file
+  100 15795 R     4192   8192        tar /usr/bin/fmli
+  100 15795 R     4208   8192        tar /usr/bin/fmli
+  100 15795 R     4224  57344        tar /usr/bin/fmli
+  100 15795 R     4336  24576        tar /usr/bin/fmli
+  100 15795 R   695792   8192        tar <none>
+  100 15795 R   696432  57344        tar /usr/bin/fmli
+[...]
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/iotop_example.txt b/external/cddl/dtracetoolkit/dist/Examples/iotop_example.txt
new file mode 100644
index 0000000..8cf55c1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/iotop_example.txt
@@ -0,0 +1,142 @@
+The following are demonstrations of the iotop program,
+
+
+Here we run iotop with the -C option to not clear the screen, but instead
+provide a scrolling output,
+
+   # iotop -C
+   Tracing... Please wait.
+   2005 Jul 16 00:34:40,  load: 1.21,  disk_r:  12891 KB,  disk_w:   1087 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D            BYTES
+       0      3      0 fsflush          cmdk0   102   4 W              512
+       0      3      0 fsflush          cmdk0   102   0 W            11776
+       0  27751  20320 tar              cmdk0   102  16 W            23040
+       0      3      0 fsflush          cmdk0   102   0 R            73728
+       0      0      0 sched            cmdk0   102   0 R           548864
+       0      0      0 sched            cmdk0   102   0 W          1078272
+       0  27751  20320 tar              cmdk0   102  16 R          1514496
+       0  27751  20320 tar              cmdk0   102   3 R         11767808
+   
+   2005 Jul 16 00:34:45,  load: 1.23,  disk_r:  83849 KB,  disk_w:    488 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D            BYTES
+       0      0      0 sched            cmdk0   102   4 W             1536
+       0      0      0 sched            cmdk0   102   0 R           131072
+       0  27752  20320 find             cmdk0   102   0 R           262144
+       0      0      0 sched            cmdk0   102   0 W           498176
+       0  27751  20320 tar              cmdk0   102   3 R         11780096
+       0  27751  20320 tar              cmdk0   102   5 R         29745152
+       0  27751  20320 tar              cmdk0   102   4 R         47203328
+   
+   2005 Jul 16 00:34:50,  load: 1.25,  disk_r:  22394 KB,  disk_w:      2 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D            BYTES
+       0  27752  20320 find             cmdk0   102   0 W             2048
+       0      0      0 sched            cmdk0   102   0 R            16384
+       0    321      1 automountd       cmdk0   102   0 R            22528
+       0  27752  20320 find             cmdk0   102   0 R          1462272
+       0  27751  20320 tar              cmdk0   102   5 R         17465344
+
+In the above output, we can see a tar command is reading from the cmdk0 
+disk, from several different slices (different minor numbers), on the last
+report focusing on 102,5 (an "ls -lL" in /dev/dsk can explain the number to
+slice mappings).
+
+The disk_r and disk_w values give a summary of the overall activity in 
+bytes.
+
+
+
+Bytes can be used as a yardstick to determine which process is keeping the
+disks busy, however either of the delta times available from iotop would 
+be more accurate (as they take into account whether the activity is random 
+or sequential).  
+
+   # iotop -Co
+   Tracing... Please wait.
+   2005 Jul 16 00:39:03,  load: 1.10,  disk_r:   5302 KB,  disk_w:     20 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D         DISKTIME
+       0      0      0 sched            cmdk0   102   0 W              532
+       0      0      0 sched            cmdk0   102   0 R           245398
+       0  27758  20320 find             cmdk0   102   0 R          3094794
+   
+   2005 Jul 16 00:39:08,  load: 1.14,  disk_r:   5268 KB,  disk_w:    273 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D         DISKTIME
+       0      3      0 fsflush          cmdk0   102   0 W             2834
+       0      0      0 sched            cmdk0   102   0 W           263527
+       0      0      0 sched            cmdk0   102   0 R           285015
+       0      3      0 fsflush          cmdk0   102   0 R           519187
+       0  27758  20320 find             cmdk0   102   0 R          2429232
+   
+   2005 Jul 16 00:39:13,  load: 1.16,  disk_r:    602 KB,  disk_w:   1238 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D         DISKTIME
+       0      3      0 fsflush          cmdk0   102   4 W              200
+       0      3      0 fsflush          cmdk0   102   6 W              260
+       0      3      0 fsflush          cmdk0   102   0 W              883
+       0  27758  20320 find             cmdk0   102   0 R            55686
+       0      3      0 fsflush          cmdk0   102   0 R           317508
+       0      0      0 sched            cmdk0   102   0 R           320195
+       0      0      0 sched            cmdk0   102   0 W           571084
+   [...]
+
+The disk time is in microseconds. In the first sample, we can see the find
+command caused a total of 3.094 seconds of disk time - the duration of the
+samples here is 5 seconds (the default), so it would be fair to say that
+the find command is keeping the disk 60% busy.
+
+
+
+A new option for iotop is to print percents "-P" which are based on disk
+I/O times, and hense are a fair measurementt of what is keeping the disks
+busy.
+
+   # iotop -PC 1
+   Tracing... Please wait.
+   2005 Nov 18 15:26:14,  load: 0.24,  disk_r:  13176 KB,  disk_w:      0 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D   %I/O
+       0   2215   1663 bart             cmdk0   102   0 R     85
+   
+   2005 Nov 18 15:26:15,  load: 0.25,  disk_r:   5263 KB,  disk_w:      0 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D   %I/O
+       0   2214   1663 find             cmdk0   102   0 R     15
+       0   2215   1663 bart             cmdk0   102   0 R     67
+   
+   2005 Nov 18 15:26:16,  load: 0.25,  disk_r:   8724 KB,  disk_w:      0 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D   %I/O
+       0   2214   1663 find             cmdk0   102   0 R     10
+       0   2215   1663 bart             cmdk0   102   0 R     71
+   
+   2005 Nov 18 15:26:17,  load: 0.25,  disk_r:   7528 KB,  disk_w:      0 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D   %I/O
+       0   2214   1663 find             cmdk0   102   0 R      0
+       0   2215   1663 bart             cmdk0   102   0 R     85
+   
+   2005 Nov 18 15:26:18,  load: 0.26,  disk_r:  11389 KB,  disk_w:      0 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D   %I/O
+       0   2214   1663 find             cmdk0   102   0 R      2
+       0   2215   1663 bart             cmdk0   102   0 R     80
+   
+   2005 Nov 18 15:26:19,  load: 0.26,  disk_r:  22109 KB,  disk_w:      0 KB
+   
+     UID    PID   PPID CMD              DEVICE  MAJ MIN D   %I/O
+       0   2215   1663 bart             cmdk0   102   0 R     76
+   
+   ^C
+
+In the above output, bart and find jostle for disk access as they create
+a database of file checksums. The command was,
+
+	find / | bart create -I > /dev/null
+
+Note that the %I/O is in terms of 1 disk. A %I/O of say 200 is allowed - it
+would mean that effectively 2 disks were at 100%, or 4 disks at 50%, etc.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_calldist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_calldist_example.txt
new file mode 100644
index 0000000..b659c0a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_calldist_example.txt
@@ -0,0 +1,247 @@
+This is an example of j_calldist.d showing the elapsed times for different
+types of Java operations.
+
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0), and produces the output in graphical format, showing
+a histogram of the amount of time taken by each call. Method calls are only 
+visible when using the flag "+ExtendedDTraceProbes". eg, 
+java -XX:+ExtendedDTraceProbes classfile
+
+Because of the extensive results returned otherwise, this script will show you
+a configurable number of results in each section.  The default (as in this
+example) is ten.
+
+Here we see it tracing the activity of Code/Java/Func_abc.
+
+# j_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 elapsed times (us),
+
+Top 10 exclusive method elapsed times (us),
+   PID=311342, method, sun/net/www/ParseUtil.decode 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@                            3        
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@                   5        
+            2048 |@@@@                                     1        
+            4096 |                                         0        
+
+   PID=311342, method, java/net/URLClassLoader.<clinit> 
+           value  ------------- Distribution ------------- count    
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           16384 |                                         0        
+
+   PID=311342, method, java/util/jar/JarFile.hasClassPathAttribute 
+           value  ------------- Distribution ------------- count    
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           16384 |                                         0        
+
+   PID=311342, method, java/util/zip/ZipFile.read 
+           value  ------------- Distribution ------------- count    
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           16384 |                                         0        
+
+   PID=311342, method, sun/nio/cs/US_ASCII.newEncoder 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@@@@@@@@                     1        
+           16384 |                                         0        
+
+   PID=311342, method, java/util/zip/ZipFile.getInputStream 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     1        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@@@@@@@@                     1        
+           16384 |                                         0        
+
+   PID=311342, method, sun/nio/cs/US_ASCII.newDecoder 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@                               1        
+              16 |@@@@@@@@@@@@@@@@@@@@                     2        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |@@@@@@@@@@                               1        
+           16384 |                                         0        
+
+   PID=311342, method, java/util/HashMap.<init> 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@                           8        
+              16 |@@@@@@@@@@@@@@@@                         9        
+              32 |@@@@@@@@@                                5        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |@@                                       1        
+           16384 |                                         0        
+
+   PID=311342, method, java/io/UnixFileSystem.normalize 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@                                        1        
+              16 |                                         0        
+              32 |                                         0        
+              64 |@@@@@@@@@                                8        
+             128 |@@@@@@@@@@@@@                            11       
+             256 |@@@@@@                                   5        
+             512 |@@@@@@@@@                                8        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |@                                        1        
+            8192 |                                         0        
+
+   PID=311342, method, java/lang/Thread.sleep 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+         1048576 |                                         0        
+
+
+Top 10 inclusive method elapsed times (us),
+   PID=311342, method, java/net/URLClassLoader$1.run 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@                     1        
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@                     1        
+          131072 |                                         0        
+
+   PID=311342, method, java/net/URLClassLoader.findClass 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@                     1        
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@                     1        
+          131072 |                                         0        
+
+   PID=311342, method, sun/misc/URLClassPath.getLoader 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@                                      1        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@                                   2        
+            4096 |@@@@@@@@@@@@@@@@@@@@@@@@@                8        
+            8192 |                                         0        
+           16384 |@@@                                      1        
+           32768 |                                         0        
+           65536 |@@@                                      1        
+          131072 |                                         0        
+
+   PID=311342, method, java/lang/ClassLoader.loadClass 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@                                6        
+             256 |@@@@@@@@@@@@@@@@@@@@@@                   15       
+             512 |@@@@                                     3        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |                                         0        
+           32768 |                                         0        
+           65536 |@@@@                                     3        
+          131072 |                                         0        
+
+   PID=311342, method, java/security/AccessController.doPrivileged 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@                                       2        
+              32 |@                                        1        
+              64 |@@@@                                     4        
+             128 |@@@@@@@@@@@@@@@@                         17       
+             256 |@                                        1        
+             512 |@@@@                                     4        
+            1024 |@@                                       2        
+            2048 |@                                        1        
+            4096 |@@@@@@                                   6        
+            8192 |@                                        1        
+           16384 |@@                                       2        
+           32768 |                                         0        
+           65536 |@@                                       2        
+          131072 |                                         0        
+
+   PID=311342, method, Func_abc.func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   PID=311342, method, Func_abc.func_b 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   PID=311342, method, java/lang/Thread.sleep 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+         1048576 |                                         0        
+
+   PID=311342, method, Func_abc.func_a 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+   PID=311342, method, Func_abc.main 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+The elapsed times section is empty.  It would show us anything that is not a 
+Java method - garbage collection for example.  However there was nothing of
+the kind in this example. 
+
+The exclusive method elapsed times show us the time spent in the top ten most
+time consuming methods, not including time spent in subroutines called by 
+those methods.
+
+The inclusive method elapsed times show us the time spent in the top ten most 
+time consuming methods including time spent in subroutines called by those 
+methods.
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_calls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_calls_example.txt
new file mode 100644
index 0000000..3aacb2c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_calls_example.txt
@@ -0,0 +1,137 @@
+The following are examples of running the j_calls.d script.
+
+This traces activity from all Java processes on the system with hotspot 
+provider support (1.6.0). Method calls and object allocation are only visible 
+when using the flag "+ExtendedDTraceProbes". eg, 
+java -XX:+ExtendedDTraceProbes classfile
+
+Here we see it running on Code/Java/Func_abc
+
+# j_calls.d 
+Tracing... Hit Ctrl-C to end.
+^C
+
+    PID TYPE     NAME                                                    COUNT
+ 311334 cload    Func_abc                                                    1
+ 311334 cload    java/io/BufferedInputStream                                 1
+ 311334 cload    java/io/BufferedOutputStream                                1
+ 311334 cload    java/io/BufferedReader                                      1
+ 311334 cload    java/io/BufferedWriter                                      1
+ 311334 cload    java/io/Closeable                                           1
+ 311334 cload    java/io/Console                                             1
+ 311334 cload    java/io/Console$1                                           1
+ 311334 cload    java/io/Console$1$1                                         1
+ 311334 cload    java/io/DataInput                                           1
+ 311334 cload    java/io/DataInputStream                                     1
+ 311334 cload    java/io/DeleteOnExitHook                                    1
+ 311334 cload    java/io/ExpiringCache                                       1
+ 311334 cload    java/io/ExpiringCache$1                                     1
+ 311334 cload    java/io/ExpiringCache$Entry                                 1
+ 311334 cload    java/io/File                                                1
+ 311334 cload    java/io/File$1                                              1
+ 311334 cload    java/io/FileDescriptor                                      1
+ 311334 cload    java/io/FileInputStream                                     1
+ 311334 cload    java/io/FileOutputStream                                    1
+ 311334 cload    java/io/FilePermission                                      1
+ 311334 cload    java/io/FilePermission$1                                    1
+ 311334 cload    java/io/FilePermissionCollection                            1
+ 311334 cload    java/io/FileReader                                          1
+ 311334 cload    java/io/FileSystem                                          1
+ 311334 cload    java/io/FilterInputStream                                   1
+ 311334 cload    java/io/FilterOutputStream                                  1
+ 311334 cload    java/io/Flushable                                           1
+ 311334 cload    java/io/InputStream                                         1
+ 311334 cload    java/io/InputStreamReader                                   1
+ 311334 cload    java/io/ObjectStreamClass                                   1
+ 311334 cload    java/io/ObjectStreamField                                   1
+ 311334 cload    java/io/OutputStream                                        1
+ 311334 cload    java/io/OutputStreamWriter                                  1
+ 311334 cload    java/io/PrintStream                                         1
+ 311334 cload    java/io/Reader                                              1
+ 311334 cload    java/io/Serializable                                        1
+ 311334 cload    java/io/UnixFileSystem                                      1
+ 311334 cload    java/io/Writer                                              1
+ 311334 cload    java/lang/AbstractStringBuilder                             1
+ 311334 cload    java/lang/Appendable                                        1
+ 311334 cload    java/lang/ApplicationShutdownHooks                          1
+ 311334 cload    java/lang/ArithmeticException                               1
+ 311334 cload    java/lang/ArrayStoreException                               1
+ 311334 cload    java/lang/Boolean                                           1
+ 311334 cload    java/lang/Byte                                              1
+ 311334 cload    java/lang/CharSequence                                      1
+ 311334 cload    java/lang/Character                                         1
+ 311334 cload    java/lang/CharacterDataLatin1                               1
+ 311334 cload    java/lang/Class                                             1
+[... 1400 lines truncated ...]
+ 311334 method   java/lang/Class.getClassLoader0                            34
+ 311334 method   java/lang/String.toLowerCase                               34
+ 311334 method   sun/security/action/GetPropertyAction.run                  34
+ 311334 method   java/nio/CharBuffer.arrayOffset                            36
+ 311334 method   java/util/HashMap.getEntry                                 36
+ 311334 method   java/io/File.<init>                                        37
+ 311334 method   java/io/UnixFileSystem.prefixLength                        37
+ 311334 oalloc   java/io/File                                               37
+ 311334 oalloc   java/lang/reflect/Field                                    37
+ 311334 method   java/io/BufferedReader.readLine                            38
+ 311334 method   java/util/concurrent/locks/AbstractOwnableSynchronizer.setExclusiveOwnerThread       38
+ 311334 method   java/lang/CharacterDataLatin1.toLowerCase                  41
+ 311334 method   java/lang/CharacterDataLatin1.getProperties                43
+ 311334 method   java/security/AccessController.doPrivileged                43
+ 311334 method   java/util/Vector.size                                      43
+ 311334 method   java/nio/Buffer.position                                   44
+ 311334 method   java/nio/ByteBuffer.arrayOffset                            44
+ 311334 method   java/lang/System.getProperty                               48
+ 311334 method   java/util/Properties.getProperty                           50
+ 311334 method   java/util/BitSet.expandTo                                  51
+ 311334 method   java/util/BitSet.set                                       51
+ 311334 method   java/lang/System.checkKey                                  56
+ 311334 method   java/lang/Thread.currentThread                             57
+ 311334 method   java/util/Hashtable$Entry.<init>                           57
+ 311334 oalloc   [Ljava/lang/String;                                        57
+ 311334 oalloc   java/util/Hashtable$Entry                                  57
+ 311334 method   java/util/Hashtable.get                                    59
+ 311334 method   java/util/Hashtable.put                                    63
+ 311334 method   java/util/BitSet.checkInvariants                           71
+ 311334 method   java/util/BitSet.wordIndex                                 72
+ 311334 method   java/lang/StringBuilder.<init>                             73
+ 311334 method   java/lang/StringBuilder.toString                           73
+ 311334 oalloc   java/lang/StringBuilder                                    73
+ 311334 method   java/lang/AbstractStringBuilder.expandCapacity             81
+ 311334 method   java/util/HashMap.hash                                     81
+ 311334 method   java/util/HashMap.indexFor                                 81
+ 311334 method   java/lang/AbstractStringBuilder.<init>                     82
+ 311334 method   java/lang/Character.toLowerCase                            82
+ 311334 method   java/lang/String.startsWith                                83
+ 311334 method   java/util/Arrays.copyOf                                    87
+ 311334 method   java/lang/String.lastIndexOf                               90
+ 311334 method   java/lang/String.substring                                 94
+ 311334 method   java/util/Arrays.copyOfRange                              107
+ 311334 method   java/lang/String.getChars                                 156
+ 311334 method   java/lang/System.getSecurityManager                       174
+ 311334 method   java/lang/String.<init>                                   175
+ 311334 method   java/lang/String.equals                                   202
+ 311334 method   java/lang/Math.min                                        208
+ 311334 method   java/lang/String.hashCode                                 213
+ 311334 method   java/lang/String.indexOf                                  302
+ 311334 oalloc   [Ljava/lang/Object;                                       326
+ 311334 method   java/lang/System.arraycopy                                360
+ 311334 oalloc   [I                                                        374
+ 311334 oalloc   java/lang/Class                                           395
+ 311334 oalloc   [B                                                        406
+ 311334 oalloc   [S                                                        486
+ 311334 method   java/lang/StringBuilder.append                            533
+ 311334 oalloc   [[I                                                       541
+ 311334 method   java/lang/AbstractStringBuilder.append                    549
+ 311334 method   java/lang/Object.<init>                                   823
+ 311334 oalloc   java/lang/String                                          931
+ 311334 oalloc   [C                                                       1076
+ 311334 method   java/lang/String.charAt                                  1960
+
+This shows us each of the events associated with the PID 311334, and the
+number of times each event happened.  These events can be of type cload (class
+load), method (method call), mcompile (method compile), mload (compiled method
+load), oalloc (object alloc) or thread (thread start).  
+
+In this case you can see 1960 calls to java/lang/String.charAt, and 1076
+object allocations of type [C.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_calltime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_calltime_example.txt
new file mode 100644
index 0000000..937e06f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_calltime_example.txt
@@ -0,0 +1,67 @@
+The following are examples of j_calltime.d.
+
+This script traces the elapsed time of Java methods and prints a report of the
+top ten in each category.   This number is configurable with simple edit of
+the DTrace script
+
+Here it traces the example program, Code/Java/Func_abc
+
+# j_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 counts,
+      PID TYPE       NAME                                                COUNT
+   311358 method     java/lang/String.equals                               202
+   311358 method     java/lang/Math.min                                    208
+   311358 method     java/lang/String.hashCode                             213
+   311358 method     java/lang/String.indexOf                              302
+   311358 method     java/lang/System.arraycopy                            360
+   311358 method     java/lang/StringBuilder.append                        533
+   311358 method     java/lang/AbstractStringBuilder.append                549
+   311358 method     java/lang/Object.<init>                               823
+   311358 method     java/lang/String.charAt                              1960
+        0 total      -                                                   12020
+
+Top 10 elapsed times (us),
+      PID TYPE       NAME                                                TOTAL
+
+Top 10 exclusive method elapsed times (us),
+      PID TYPE       NAME                                                TOTAL
+   311358 method     java/nio/ByteBuffer.<init>                           5430
+   311358 method     java/lang/String.charAt                              6079
+   311358 method     java/lang/String.<init>                              7306
+   311358 method     java/lang/StringBuilder.append                      10240
+   311358 method     java/util/StringTokenizer.scanToken                 11075
+   311358 method     java/net/URL.<clinit>                               12519
+   311358 method     java/io/UnixFileSystem.normalize                    13218
+   311358 method     sun/net/www/ParseUtil.decode                        14208
+   311358 method     java/lang/Thread.sleep                            3016374
+        0 total      -                                                 3344993
+
+Top 10 inclusive method elapsed times (us),
+      PID TYPE       NAME                                                TOTAL
+   311358 method     sun/misc/Launcher.<clinit>                         129120
+   311358 method     java/lang/ClassLoader.initSystemClassLoader        129851
+   311358 method     java/lang/ClassLoader.getSystemClassLoader         129897
+   311358 method     java/lang/ClassLoader.loadClass                    267404
+   311358 method     java/security/AccessController.doPrivileged        278364
+   311358 method     Func_abc.func_c                                   1009971
+   311358 method     Func_abc.func_b                                   2019995
+   311358 method     java/lang/Thread.sleep                            3016374
+   311358 method     Func_abc.func_a                                   3027043
+   311358 method     Func_abc.main                                     3027068
+
+Counts shows us how many times each different method was called, and how
+many methods were called in total.
+
+The exclusive method elapsed times show the time that each method spent
+processing code - while not in other method.
+
+The inclusive method elapsed times show the time that each method spent
+processing code, including the time spent in other calls.
+
+These elapsed times are the absolute time from when the method began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_classflow_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_classflow_example.txt
new file mode 100644
index 0000000..b8a9b75
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_classflow_example.txt
@@ -0,0 +1,89 @@
+Following are examples of j_classflow.d.  
+
+This watches Java method entries and returns from all Java processes on the 
+system with hotspot provider support (1.6.0) and the flag
+"+ExtendedDTraceProbes".  eg, java -XX:+ExtendedDTraceProbes classfile
+
+Here we can see it run on Code/Java/Func_abc. 
+
+# j_classflow.d Func_abc
+  C    PID TIME(us)         -- CLASS.METHOD
+  0 311425 4789778117827    -> Func_abc.main
+  0 311425 4789778117844      -> Func_abc.func_a
+  0 311425 4789779120071        -> Func_abc.func_b
+  0 311425 4789780130070          -> Func_abc.func_c
+  0 311425 4789781140067          <- Func_abc.func_c
+  0 311425 4789781140079        <- Func_abc.func_b
+  0 311425 4789781140087      <- Func_abc.func_a
+  0 311425 4789781140095    <- Func_abc.main
+^C
+
+The first column, C gives us the CPU ID.
+
+The second column, TIME(us), gives us the time since boot in microseconds.
+
+The third column, PID gives us the Process ID.
+
+The fourth column, CLASS.METHOD gives us the Java class and method name.
+
+We can see that Func_abc.main called Func.abc.func_a, which in turn
+called Func_abc.funcb etc.
+
+Here we can see an example of running it on java/io/BufferedOutputStream
+
+# j_classflow.d java/io/BufferedOutputStream
+  C    PID TIME(us)         -- CLASS.METHOD
+  0 311461 4790094765413    -> java/io/BufferedOutputStream.<init>
+  0 311461 4790094765459    <- java/io/BufferedOutputStream.<init>
+  0 311461 4790094779559    -> java/io/BufferedOutputStream.<init>
+  0 311461 4790094779595    <- java/io/BufferedOutputStream.<init>
+  0 311461 4790094965883    -> java/io/BufferedOutputStream.write
+  0 311461 4790094965913    <- java/io/BufferedOutputStream.write
+  0 311461 4790094965926    -> java/io/BufferedOutputStream.flush
+  0 311461 4790094965936      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790094966279      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790094966293    <- java/io/BufferedOutputStream.flush
+  0 311461 4790094966588    -> java/io/BufferedOutputStream.write
+  0 311461 4790094966602    <- java/io/BufferedOutputStream.write
+  0 311461 4790094966610    -> java/io/BufferedOutputStream.flush
+  0 311461 4790094966618      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790094966778      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790094966787    <- java/io/BufferedOutputStream.flush
+  0 311461 4790094966811    -> java/io/BufferedOutputStream.flush
+  0 311461 4790094966819      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790094966828      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790094966836    <- java/io/BufferedOutputStream.flush
+  0 311461 4790095970345    -> java/io/BufferedOutputStream.write
+  0 311461 4790095970372    <- java/io/BufferedOutputStream.write
+  0 311461 4790095970382    -> java/io/BufferedOutputStream.flush
+  0 311461 4790095970390      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790095970453      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790095970462    <- java/io/BufferedOutputStream.flush
+  0 311461 4790095970737    -> java/io/BufferedOutputStream.write
+  0 311461 4790095970751    <- java/io/BufferedOutputStream.write
+  0 311461 4790095970759    -> java/io/BufferedOutputStream.flush
+  0 311461 4790095970766      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790095970795      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790095970804    <- java/io/BufferedOutputStream.flush
+  0 311461 4790095970828    -> java/io/BufferedOutputStream.flush
+  0 311461 4790095970836      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790095970844      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790095970853    <- java/io/BufferedOutputStream.flush
+  0 311461 4790096980348    -> java/io/BufferedOutputStream.write
+  0 311461 4790096980373    <- java/io/BufferedOutputStream.write
+  0 311461 4790096980383    -> java/io/BufferedOutputStream.flush
+  0 311461 4790096980391      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790096980452      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790096980460    <- java/io/BufferedOutputStream.flush
+  0 311461 4790096980735    -> java/io/BufferedOutputStream.write
+  0 311461 4790096980749    <- java/io/BufferedOutputStream.write
+  0 311461 4790096980757    -> java/io/BufferedOutputStream.flush
+  0 311461 4790096980765      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790096980794      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790096980803    <- java/io/BufferedOutputStream.flush
+  0 311461 4790096980826    -> java/io/BufferedOutputStream.flush
+  0 311461 4790096980834      -> java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790096980843      <- java/io/BufferedOutputStream.flushBuffer
+  0 311461 4790096980851    <- java/io/BufferedOutputStream.flush
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_cpudist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_cpudist_example.txt
new file mode 100644
index 0000000..15abac6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_cpudist_example.txt
@@ -0,0 +1,252 @@
+This is an example of j_cpudist.d showing the elapsed times for different
+types of Java operations.
+
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0), and produces the output in graphical format, showing
+a histogram of the amount of time taken by each call. Method calls are only
+visible when using the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+
+Because of the extensive results returned otherwise, this script will show you
+a configurable number of results in each section.  The default (as in this
+example) is ten.
+
+Here we see it tracing the activity of Code/Java/Func_abc.
+
+# j_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 on-CPU times (us),
+
+Top 10 exclusive method on-CPU times (us),
+   PID=311364, method, java/lang/AbstractStringBuilder.append 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@             382      
+               2 |@@@@@@@@@@@                              151      
+               4 |@                                        13       
+               8 |                                         1        
+              16 |                                         1        
+              32 |                                         1        
+              64 |                                         0        
+
+   PID=311364, method, java/util/Arrays.copyOf 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          68       
+               4 |@@@@@@@                                  15       
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         1        
+              64 |                                         1        
+             128 |                                         0        
+             256 |@                                        2        
+             512 |                                         0        
+
+   PID=311364, method, java/io/UnixFileSystem.normalize 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@                                        1        
+               4 |                                         0        
+               8 |@@@@@@@@@@@                              9        
+              16 |@@@@@@@@@@@@@@                           12       
+              32 |@@@@@@                                   5        
+              64 |@@@@@@@                                  6        
+             128 |@                                        1        
+             256 |                                         0        
+
+   PID=311364, method, java/io/File.<clinit> 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   PID=311364, method, sun/misc/URLClassPath$JarLoader.getJarFile 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   PID=311364, method, java/io/FilePermission$1.run 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     2        
+               4 |@@@@@@@@@@                               1        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |@@@@@@@@@@                               1        
+            2048 |                                         0        
+
+   PID=311364, method, java/lang/StringBuilder.append 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  526      
+               4 |                                         2        
+               8 |                                         0        
+              16 |                                         4        
+              32 |                                         1        
+              64 |                                         0        
+
+   PID=311364, method, java/lang/String.<init> 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    162      
+               4 |@@                                       10       
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         1        
+             128 |                                         0        
+             256 |                                         1        
+             512 |                                         0        
+            1024 |                                         1        
+            2048 |                                         0        
+
+   PID=311364, method, java/lang/String.charAt 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1953     
+               2 |                                         3        
+               4 |                                         1        
+               8 |                                         1        
+              16 |                                         2        
+              32 |                                         0        
+
+   PID=311364, method, java/lang/System.initializeSystemClass 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+
+Top 10 inclusive method on-CPU times (us),
+   PID=311364, method, sun/misc/Launcher$ExtClassLoader.<init> 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           32768 |                                         0        
+
+   PID=311364, method, sun/misc/Launcher$ExtClassLoader.getExtClassLoader 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           32768 |                                         0        
+
+   PID=311364, method, sun/misc/Launcher$ExtClassLoader.getExtURLs 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           32768 |                                         0        
+
+   PID=311364, method, sun/misc/Launcher.<clinit> 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           32768 |                                         0        
+
+   PID=311364, method, sun/misc/Launcher.<init> 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           32768 |                                         0        
+
+   PID=311364, method, java/lang/ClassLoader.loadClassInternal 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              6        
+             128 |@@@@@@@@@                                2        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |@@@@                                     1        
+           32768 |                                         0        
+
+   PID=311364, method, sun/misc/Launcher$AppClassLoader.loadClass 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              6        
+             128 |@@@@@@@@@                                2        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |@@@@                                     1        
+           32768 |                                         0        
+
+   PID=311364, method, sun/misc/URLClassPath.getLoader 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@                                      1        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@                                      1        
+             512 |@@@@@@@@@@@@@@@@@@@@@@                   7        
+            1024 |@@@@@@                                   2        
+            2048 |                                         0        
+            4096 |@@@                                      1        
+            8192 |@@@                                      1        
+           16384 |                                         0        
+
+   PID=311364, method, java/lang/ClassLoader.loadClass 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@                                6        
+              64 |@@@@@@@@@@@@@@@@@@@@@                    14       
+             128 |@@@@@@                                   4        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |@                                        1        
+           16384 |@@@                                      2        
+           32768 |                                         0        
+
+   PID=311364, method, java/security/AccessController.doPrivileged 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@                                        1        
+               8 |@@@@                                     4        
+              16 |@@@@@@@@@@                               11       
+              32 |@@@@@@@@@@                               11       
+              64 |                                         0        
+             128 |@@@                                      3        
+             256 |@                                        1        
+             512 |@@@@@                                    5        
+            1024 |@@                                       2        
+            2048 |@                                        1        
+            4096 |@                                        1        
+            8192 |@@                                       2        
+           16384 |@                                        1        
+           32768 |                                         0        
+
+The elapsed times section is empty.  It would show us anything that is not a
+Java method - garbage collection for example.  However there was nothing of
+the kind in this example.
+
+The exclusive method elapsed times show us the time spent on-CPU by the most
+time consuming methods, not including time spent in subroutines called by
+those methods.
+
+The inclusive method elapsed times show us the time spent on-CPU by the top
+ten most time consuming methods including time spent in subroutines called by
+those methods.
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_cputime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_cputime_example.txt
new file mode 100644
index 0000000..0947cc0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_cputime_example.txt
@@ -0,0 +1,75 @@
+The following are examples of j_cputime.d.
+
+This script traces the on-CPU time of Java methods and prints a report. Here 
+it traces the example program, Code/Java/Func_abc
+
+# j_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 counts,
+      PID TYPE       NAME                                                COUNT
+   311374 method     java/lang/String.equals                               202
+   311374 method     java/lang/Math.min                                    208
+   311374 method     java/lang/String.hashCode                             213
+   311374 method     java/lang/String.indexOf                              302
+   311374 method     java/lang/System.arraycopy                            360
+   311374 method     java/lang/StringBuilder.append                        533
+   311374 method     java/lang/AbstractStringBuilder.append                549
+   311374 method     java/lang/Object.<init>                               823
+   311374 method     java/lang/String.charAt                              1960
+        0 total      -                                                   12020
+
+Top 10 on-CPU times (us),
+      PID TYPE       NAME                                                TOTAL
+
+Top 10 exclusive method on-CPU times (us),
+      PID TYPE       NAME                                                TOTAL
+   311374 method     java/io/FilePermission$1.run                         1055
+   311374 method     java/util/Arrays.copyOf                              1110
+   311374 method     sun/net/www/ParseUtil.decode                         1161
+   311374 method     java/io/File.<clinit>                                1212
+   311374 method     java/lang/StringBuilder.append                       1228
+   311374 method     java/io/UnixFileSystem.normalize                     1402
+   311374 method     java/lang/String.<init>                              2251
+   311374 method     java/lang/String.charAt                              2262
+   311374 method     java/lang/System.initializeSystemClass               2751
+        0 total      -                                                   99868
+
+Top 10 inclusive method on-CPU times (us),
+      PID TYPE       NAME                                                TOTAL
+   311374 method     java/lang/ClassLoader.loadClassInternal             25826
+   311374 method     sun/misc/Launcher$ExtClassLoader.getExtClassLoader    25914
+   311374 method     java/net/URL.<init>                                 27677
+   311374 method     sun/misc/Launcher.<init>                            28566
+   311374 method     sun/misc/Launcher.<clinit>                          28744
+   311374 method     java/lang/ClassLoader.initSystemClassLoader         29241
+   311374 method     java/lang/ClassLoader.getSystemClassLoader          29249
+   311374 method     java/lang/System.initializeSystemClass              33814
+   311374 method     java/lang/ClassLoader.loadClass                     66564
+   311374 method     java/security/AccessController.doPrivileged         67499
+
+You can see that it prints the top ten results in each of four categories.
+
+The first section reports how many times each subroutine was called, and it's
+type.
+
+The second section reports on the on-CPU time of anything that was not of type
+"method", in this case - none. 
+
+The exclusive method on-CPU times shows, amongst other results, that
+java/lang/String.charAt spent around 2,200 microseconds on-CPU.  This times 
+excludes time spent in other subroutines.
+
+The inclusive method on-CPU times show the times that various methods
+spent on-CPU.  This includes the time spent in other subroutines called.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_events_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_events_example.txt
new file mode 100644
index 0000000..2c48700
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_events_example.txt
@@ -0,0 +1,134 @@
+The following are examples of j_events.d.
+
+This counts events from all Java processes on the system with hotspot
+provider support (1.6.0). Some events such as method calls are only visible
+when using the flag "+ExtendedDTraceProbes". eg, 
+java -XX:+ExtendedDTraceProbes classfile
+
+Here you can see it running while the program Code/Java/Func_abc
+
+# j_events.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+    PID  EVENT                                   COUNT
+ 311379  AttachCurrentThread-entry                   1
+ 311379  AttachCurrentThread-return                  1
+ 311379  CallIntMethod-entry                         1
+ 311379  CallIntMethod-return                        1
+ 311379  CallStaticBooleanMethod-entry               1
+ 311379  CallStaticBooleanMethod-return              1
+ 311379  CallStaticObjectMethod-entry                1
+ 311379  CallStaticObjectMethod-return               1
+ 311379  CallStaticObjectMethodV-entry               1
+ 311379  CallStaticObjectMethodV-return              1
+ 311379  CallStaticVoidMethod-entry                  1
+ 311379  CallStaticVoidMethod-return                 1
+ 311379  CreateJavaVM-entry                          1
+ 311379  CreateJavaVM-return                         1
+ 311379  DestroyJavaVM-entry                         1
+ 311379  DestroyJavaVM-return                        1
+ 311379  DetachCurrentThread-entry                   1
+ 311379  DetachCurrentThread-return                  1
+ 311379  ExceptionCheck-entry                        1
+ 311379  ExceptionCheck-return                       1
+ 311379  ExceptionClear-entry                        1
+ 311379  ExceptionClear-return                       1
+ 311379  GetDefaultJavaVMInitArgs-entry              1
+ 311379  GetDefaultJavaVMInitArgs-return             1
+ 311379  GetJavaVM-entry                             1
+ 311379  GetJavaVM-return                            1
+ 311379  GetStringRegion-entry                       1
+ 311379  GetStringRegion-return                      1
+ 311379  NewByteArray-entry                          1
+ 311379  NewByteArray-return                         1
+ 311379  NewObject-entry                             1
+ 311379  NewObject-return                            1
+ 311379  NewObjectV-entry                            1
+ 311379  NewObjectV-return                           1
+ 311379  SetBooleanField-entry                       1
+ 311379  SetBooleanField-return                      1
+ 311379  ToReflectedMethod-entry                     1
+ 311379  ToReflectedMethod-return                    1
+ 311379  vm-init-begin                               1
+ 311379  vm-init-end                                 1
+ 311379  vm-shutdown                                 1
+ 311379  NewGlobalRef-entry                          2
+ 311379  NewGlobalRef-return                         2
+ 311379  monitor-wait                                2
+ 311379  GetStaticFieldID-entry                      3
+ 311379  GetStaticFieldID-return                     3
+ 311379  NewObjectArray-entry                        3
+ 311379  NewObjectArray-return                       3
+ 311379  SetStaticObjectField-entry                  3
+ 311379  SetStaticObjectField-return                 3
+ 311379  GetStaticMethodID-entry                     4
+ 311379  GetStaticMethodID-return                    4
+ 311379  EnsureLocalCapacity-entry                   5
+ 311379  EnsureLocalCapacity-return                  5
+ 311379  SetByteArrayRegion-entry                    5
+ 311379  SetByteArrayRegion-return                   5
+ 311379  SetLongField-entry                          5
+ 311379  SetLongField-return                         5
+ 311379  GetMethodID-entry                           6
+ 311379  GetMethodID-return                          6
+ 311379  GetObjectArrayElement-entry                 6
+ 311379  GetObjectArrayElement-return                6
+ 311379  GetSuperclass-entry                         6
+ 311379  GetSuperclass-return                        6
+ 311379  thread-start                                6
+ 311379  SetIntField-entry                           8
+ 311379  SetIntField-return                          8
+ 311379  GetArrayLength-entry                        9
+ 311379  GetArrayLength-return                       9
+ 311379  GetByteArrayRegion-entry                    9
+ 311379  GetByteArrayRegion-return                   9
+ 311379  RegisterNatives-entry                       9
+ 311379  RegisterNatives-return                      9
+ 311379  GetObjectClass-entry                       10
+ 311379  GetObjectClass-return                      10
+ 311379  FindClass-entry                            11
+ 311379  FindClass-return                           11
+ 311379  SetObjectArrayElement-entry                12
+ 311379  SetObjectArrayElement-return               12
+ 311379  GetStringUTFLength-entry                   18
+ 311379  GetStringUTFLength-return                  18
+ 311379  GetStringUTFRegion-entry                   18
+ 311379  GetStringUTFRegion-return                  18
+ 311379  GetFieldID-entry                           21
+ 311379  GetFieldID-return                          21
+ 309790  CallStaticVoidMethod-entry                 24
+ 309790  CallStaticVoidMethod-return                24
+ 194441  CallStaticVoidMethod-entry                 26
+ 194441  CallStaticVoidMethod-return                26
+ 311379  GetStringUTFChars-entry                    29
+ 311379  GetStringUTFChars-return                   29
+ 311379  ReleaseStringUTFChars-entry                29
+ 311379  ReleaseStringUTFChars-return               29
+ 311379  CallObjectMethod-entry                     30
+ 311379  CallObjectMethod-return                    30
+ 311379  GetStringCritical-entry                    35
+ 311379  GetStringCritical-return                   35
+ 311379  ReleaseStringCritical-entry                35
+ 311379  ReleaseStringCritical-return               35
+ 311379  ExceptionOccurred-entry                    46
+ 311379  ExceptionOccurred-return                   46
+ 311379  GetStringLength-entry                      54
+ 311379  GetStringLength-return                     54
+ 311379  NewStringUTF-entry                         54
+ 311379  NewStringUTF-return                        54
+ 311379  NewString-entry                            55
+ 311379  NewString-return                           55
+ 311379  GetObjectField-entry                       60
+ 311379  GetObjectField-return                      60
+ 311379  DeleteLocalRef-entry                      108
+ 311379  DeleteLocalRef-return                     108
+ 311379  class-loaded                              327
+ 311379  object-alloc                             5389
+ 311379  method-return                           12024
+ 311379  method-entry                            12031
+
+You can see that nearly all of the events recorded are from PID 311379, which
+we can assume in this case is the program in question.  Not all of the lines
+correspond to this, however, which is something to be aware of while analysing
+the results.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_flow_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_flow_example.txt
new file mode 100644
index 0000000..433bef3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_flow_example.txt
@@ -0,0 +1,1292 @@
+The following are examples of j_flow.d.
+
+This is a simple script to trace the not-so-simple flow of Java methods and
+classes.  Here it traces the example program, Code/Java/func_abc
+
+# j_flow.d
+  C    PID TIME(us)         -- CLASS.METHOD
+  0 311403 4789112583163    -> java/lang/Object.<clinit>
+  0 311403 4789112583207      -> java/lang/Object.registerNatives
+  0 311403 4789112583323      <- java/lang/Object.registerNatives
+  0 311403 4789112583333    <- java/lang/Object.<clinit>
+  0 311403 4789112583343    -> java/lang/String.<clinit>
+  0 311403 4789112583732      -> java/lang/String$CaseInsensitiveComparator.<init>
+  0 311403 4789112583743        -> java/lang/String$CaseInsensitiveComparator.<init>
+  0 311403 4789112583752          -> java/lang/Object.<init>
+  0 311403 4789112583760          <- java/lang/Object.<init>
+  0 311403 4789112583767        <- java/lang/String$CaseInsensitiveComparator.<init>
+  0 311403 4789112583774      <- java/lang/String$CaseInsensitiveComparator.<init>
+  0 311403 4789112583783    <- java/lang/String.<clinit>
+  0 311403 4789112583849    -> java/lang/System.<clinit>
+  0 311403 4789112583859      -> java/lang/System.registerNatives
+  0 311403 4789112583878      <- java/lang/System.registerNatives
+  0 311403 4789112583887      -> java/lang/System.nullInputStream
+  0 311403 4789112583895        -> java/lang/System.currentTimeMillis
+  0 311403 4789112583905        <- java/lang/System.currentTimeMillis
+  0 311403 4789112583913      <- java/lang/System.nullInputStream
+  0 311403 4789112583923      -> java/lang/System.nullPrintStream
+  0 311403 4789112583929        -> java/lang/System.currentTimeMillis
+  0 311403 4789112583937        <- java/lang/System.currentTimeMillis
+  0 311403 4789112583944      <- java/lang/System.nullPrintStream
+  0 311403 4789112583951      -> java/lang/System.nullPrintStream
+  0 311403 4789112583958        -> java/lang/System.currentTimeMillis
+  0 311403 4789112583965        <- java/lang/System.currentTimeMillis
+  0 311403 4789112583972      <- java/lang/System.nullPrintStream
+  0 311403 4789112583982    <- java/lang/System.<clinit>
+  0 311403 4789112584058    -> java/lang/ThreadGroup.<init>
+  0 311403 4789112584068      -> java/lang/Object.<init>
+  0 311403 4789112584075      <- java/lang/Object.<init>
+  0 311403 4789112584100    <- java/lang/ThreadGroup.<init>
+  0 311403 4789112584109    -> java/lang/ThreadGroup.<init>
+  0 311403 4789112584116      -> java/lang/Object.<init>
+  0 311403 4789112584123      <- java/lang/Object.<init>
+  0 311403 4789112584139      -> java/lang/ThreadGroup.checkAccess
+  0 311403 4789112584148        -> java/lang/System.getSecurityManager
+  0 311403 4789112584157        <- java/lang/System.getSecurityManager
+  0 311403 4789112584164      <- java/lang/ThreadGroup.checkAccess
+  0 311403 4789112584175      -> java/lang/ThreadGroup.add
+  0 311403 4789112584196      <- java/lang/ThreadGroup.add
+  0 311403 4789112584202    <- java/lang/ThreadGroup.<init>
+  0 311403 4789112584385    -> java/lang/Thread.<clinit>
+  0 311403 4789112584396      -> java/lang/Thread.registerNatives
+  0 311403 4789112584421      <- java/lang/Thread.registerNatives
+  0 311403 4789112584779      -> java/lang/RuntimePermission.<init>
+  0 311403 4789112584789        -> java/security/BasicPermission.<init>
+  0 311403 4789112584798          -> java/security/Permission.<init>
+  0 311403 4789112584806            -> java/lang/Object.<init>
+  0 311403 4789112584814            <- java/lang/Object.<init>
+  0 311403 4789112584823          <- java/security/Permission.<init>
+  0 311403 4789112584831          -> java/security/BasicPermission.init
+  0 311403 4789112584842            -> java/lang/String.length
+  0 311403 4789112584850            <- java/lang/String.length
+  0 311403 4789112584860            -> java/lang/String.charAt
+  0 311403 4789112584869            <- java/lang/String.charAt
+  0 311403 4789112584880            -> java/lang/String.equals
+  0 311403 4789112584888            <- java/lang/String.equals
+  0 311403 4789112584896          <- java/security/BasicPermission.init
+  0 311403 4789112584903        <- java/security/BasicPermission.<init>
+  0 311403 4789112584910      <- java/lang/RuntimePermission.<init>
+  0 311403 4789112585319      -> sun/misc/SoftCache.<init>
+  0 311403 4789112585329        -> java/util/AbstractMap.<init>
+  0 311403 4789112585337          -> java/lang/Object.<init>
+  0 311403 4789112585345          <- java/lang/Object.<init>
+  0 311403 4789112585355        <- java/util/AbstractMap.<init>
+  0 311403 4789112585485        -> java/lang/ref/ReferenceQueue.<clinit>
+  0 311403 4789112585554          -> java/lang/ref/ReferenceQueue$Null.<init>
+  0 311403 4789112585564            -> java/lang/ref/ReferenceQueue$Null.<init>
+  0 311403 4789112585572              -> java/lang/ref/ReferenceQueue.<init>
+  0 311403 4789112585581                -> java/lang/Object.<init>
+  0 311403 4789112585589                <- java/lang/Object.<init>
+  0 311403 4789112585646                -> java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311403 4789112585656                  -> java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311403 4789112585664                    -> java/lang/Object.<init>
+  0 311403 4789112585671                    <- java/lang/Object.<init>
+  0 311403 4789112585678                  <- java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311403 4789112585685                <- java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311403 4789112585696              <- java/lang/ref/ReferenceQueue.<init>
+  0 311403 4789112585702            <- java/lang/ref/ReferenceQueue$Null.<init>
+  0 311403 4789112585709          <- java/lang/ref/ReferenceQueue$Null.<init>
+  0 311403 4789112585717          -> java/lang/ref/ReferenceQueue$Null.<init>
+  0 311403 4789112585723            -> java/lang/ref/ReferenceQueue$Null.<init>
+  0 311403 4789112585729              -> java/lang/ref/ReferenceQueue.<init>
+  0 311403 4789112585736                -> java/lang/Object.<init>
+  0 311403 4789112585743                <- java/lang/Object.<init>
+  0 311403 4789112585748                -> java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311403 4789112585755                  -> java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311403 4789112585761                    -> java/lang/Object.<init>
+  0 311403 4789112585768                    <- java/lang/Object.<init>
+  0 311403 4789112585796                  <- java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311403 4789112585803                <- java/lang/ref/ReferenceQueue$Lock.<init>
+[... 22800 lines truncated ...]
+  0 311403 4789112982170    <- java/lang/reflect/Method.getModifiers
+  0 311403 4789112982182    -> Func_abc.main
+  0 311403 4789112982193      -> Func_abc.func_a
+  0 311403 4789112982201        -> java/lang/ClassLoader.checkPackageAccess
+  0 311403 4789112982208          -> java/lang/System.getSecurityManager
+  0 311403 4789112982215          <- java/lang/System.getSecurityManager
+  0 311403 4789112982221          -> java/util/HashSet.add
+  0 311403 4789112982228            -> java/util/HashMap.put
+  0 311403 4789112982234              -> java/lang/Object.hashCode
+  0 311403 4789112982241              <- java/lang/Object.hashCode
+  0 311403 4789112982247              -> java/util/HashMap.hash
+  0 311403 4789112982254              <- java/util/HashMap.hash
+  0 311403 4789112982260              -> java/util/HashMap.indexFor
+  0 311403 4789112982267              <- java/util/HashMap.indexFor
+  0 311403 4789112982274            <- java/util/HashMap.put
+  0 311403 4789112982280          <- java/util/HashSet.add
+  0 311403 4789112982287        <- java/lang/ClassLoader.checkPackageAccess
+  0 311403 4789112982349        -> java/lang/ClassLoader.loadClassInternal
+  0 311403 4789112982356          -> java/lang/ClassLoader.loadClass
+  0 311403 4789112982363            -> sun/misc/Launcher$AppClassLoader.loadClass
+  0 311403 4789112982369              -> java/lang/String.lastIndexOf
+  0 311403 4789112982376                -> java/lang/String.lastIndexOf
+  0 311403 4789112982384                <- java/lang/String.lastIndexOf
+  0 311403 4789112982391              <- java/lang/String.lastIndexOf
+  0 311403 4789112982396              -> java/lang/System.getSecurityManager
+  0 311403 4789112982404              <- java/lang/System.getSecurityManager
+  0 311403 4789112982410              -> java/lang/ClassLoader.loadClass
+  0 311403 4789112982416                -> java/lang/ClassLoader.findLoadedClass
+  0 311403 4789112982422                  -> java/lang/ClassLoader.check
+  0 311403 4789112982429                  <- java/lang/ClassLoader.check
+  0 311403 4789112982435                  -> java/lang/ClassLoader.checkName
+  0 311403 4789112982442                    -> java/lang/String.indexOf
+  0 311403 4789112982448                      -> java/lang/String.indexOf
+  0 311403 4789112982456                      <- java/lang/String.indexOf
+  0 311403 4789112982462                    <- java/lang/String.indexOf
+  0 311403 4789112982468                    -> sun/misc/VM.allowArraySyntax
+  0 311403 4789112982475                    <- sun/misc/VM.allowArraySyntax
+  0 311403 4789112982481                    -> java/lang/String.charAt
+  0 311403 4789112982488                    <- java/lang/String.charAt
+  0 311403 4789112982495                  <- java/lang/ClassLoader.checkName
+  0 311403 4789112982501                  -> java/lang/ClassLoader.findLoadedClass0
+  0 311403 4789112982510                  <- java/lang/ClassLoader.findLoadedClass0
+  0 311403 4789112982517                <- java/lang/ClassLoader.findLoadedClass
+  0 311403 4789112982524                -> java/lang/ClassLoader.loadClass
+  0 311403 4789112982530                  -> java/lang/ClassLoader.findLoadedClass
+  0 311403 4789112982536                    -> java/lang/ClassLoader.check
+  0 311403 4789112982543                    <- java/lang/ClassLoader.check
+  0 311403 4789112982549                    -> java/lang/ClassLoader.checkName
+  0 311403 4789112982555                      -> java/lang/String.indexOf
+  0 311403 4789112982561                        -> java/lang/String.indexOf
+  0 311403 4789112982569                        <- java/lang/String.indexOf
+  0 311403 4789112982576                      <- java/lang/String.indexOf
+  0 311403 4789112982582                      -> sun/misc/VM.allowArraySyntax
+  0 311403 4789112982589                      <- sun/misc/VM.allowArraySyntax
+  0 311403 4789112982594                      -> java/lang/String.charAt
+  0 311403 4789112982602                      <- java/lang/String.charAt
+  0 311403 4789112982608                    <- java/lang/ClassLoader.checkName
+  0 311403 4789112982614                    -> java/lang/ClassLoader.findLoadedClass0
+  0 311403 4789112982623                    <- java/lang/ClassLoader.findLoadedClass0
+  0 311403 4789112982630                  <- java/lang/ClassLoader.findLoadedClass
+  0 311403 4789112982636                  -> java/lang/ClassLoader.findBootstrapClass0
+  0 311403 4789112982642                    -> java/lang/ClassLoader.check
+  0 311403 4789112982650                    <- java/lang/ClassLoader.check
+  0 311403 4789112982655                    -> java/lang/ClassLoader.checkName
+  0 311403 4789112982662                      -> java/lang/String.indexOf
+  0 311403 4789112982668                        -> java/lang/String.indexOf
+  0 311403 4789112982676                        <- java/lang/String.indexOf
+  0 311403 4789112982682                      <- java/lang/String.indexOf
+  0 311403 4789112982688                      -> sun/misc/VM.allowArraySyntax
+  0 311403 4789112982695                      <- sun/misc/VM.allowArraySyntax
+  0 311403 4789112982701                      -> java/lang/String.charAt
+  0 311403 4789112982708                      <- java/lang/String.charAt
+  0 311403 4789112982715                    <- java/lang/ClassLoader.checkName
+  0 311403 4789112982720                    -> java/lang/ClassLoader.findBootstrapClass
+  0 311403 4789112982730                    <- java/lang/ClassLoader.findBootstrapClass
+  0 311403 4789112982737                  <- java/lang/ClassLoader.findBootstrapClass0
+  0 311403 4789112982744                <- java/lang/ClassLoader.loadClass
+  0 311403 4789112982751              <- java/lang/ClassLoader.loadClass
+  0 311403 4789112982757            <- sun/misc/Launcher$AppClassLoader.loadClass
+  0 311403 4789112982764          <- java/lang/ClassLoader.loadClass
+  0 311403 4789112982771        <- java/lang/ClassLoader.loadClassInternal
+  0 311403 4789112982780        -> java/lang/ClassLoader.checkPackageAccess
+  0 311403 4789112982787          -> java/lang/System.getSecurityManager
+  0 311403 4789112982794          <- java/lang/System.getSecurityManager
+  0 311403 4789112982800          -> java/util/HashSet.add
+  0 311403 4789112982806            -> java/util/HashMap.put
+  0 311403 4789112982813              -> java/lang/Object.hashCode
+  0 311403 4789112982820              <- java/lang/Object.hashCode
+  0 311403 4789112982826              -> java/util/HashMap.hash
+  0 311403 4789112982833              <- java/util/HashMap.hash
+  0 311403 4789112982839              -> java/util/HashMap.indexFor
+  0 311403 4789112982846              <- java/util/HashMap.indexFor
+  0 311403 4789112982853            <- java/util/HashMap.put
+  0 311403 4789112982859          <- java/util/HashSet.add
+  0 311403 4789112982866        <- java/lang/ClassLoader.checkPackageAccess
+  0 311403 4789112982879        -> java/io/PrintStream.println
+  0 311403 4789112982889          -> java/io/PrintStream.print
+  0 311403 4789112982897            -> java/io/PrintStream.write
+  0 311403 4789112982906              -> java/io/PrintStream.ensureOpen
+  0 311403 4789112982916              <- java/io/PrintStream.ensureOpen
+  0 311403 4789112982927              -> java/io/Writer.write
+  0 311403 4789112982939                -> java/io/BufferedWriter.write
+  0 311403 4789112982948                  -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789112982956                  <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789112982964                  -> java/io/BufferedWriter.min
+  0 311403 4789112982971                  <- java/io/BufferedWriter.min
+  0 311403 4789112982980                  -> java/lang/String.getChars
+  0 311403 4789112982987                    -> java/lang/System.arraycopy
+  0 311403 4789112982995                    <- java/lang/System.arraycopy
+  0 311403 4789112983002                  <- java/lang/String.getChars
+  0 311403 4789112983009                <- java/io/BufferedWriter.write
+  0 311403 4789112983016              <- java/io/Writer.write
+  0 311403 4789112983024              -> java/io/BufferedWriter.flushBuffer
+  0 311403 4789112983031                -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789112983038                <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789112983046                -> java/io/OutputStreamWriter.write
+  0 311403 4789112983056                  -> sun/nio/cs/StreamEncoder.write
+  0 311403 4789112983066                    -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789112983073                    <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789112983082                    -> sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789112983093                      -> java/nio/CharBuffer.wrap
+  0 311403 4789112983099                        -> java/nio/HeapCharBuffer.<init>
+  0 311403 4789112983106                          -> java/nio/CharBuffer.<init>
+  0 311403 4789112983113                            -> java/nio/Buffer.<init>
+  0 311403 4789112983119                              -> java/lang/Object.<init>
+  0 311403 4789112983126                              <- java/lang/Object.<init>
+  0 311403 4789112983133                              -> java/nio/Buffer.limit
+  0 311403 4789112983140                              <- java/nio/Buffer.limit
+  0 311403 4789112983146                              -> java/nio/Buffer.position
+  0 311403 4789112983153                              <- java/nio/Buffer.position
+  0 311403 4789112983160                            <- java/nio/Buffer.<init>
+  0 311403 4789112983166                          <- java/nio/CharBuffer.<init>
+  0 311403 4789112983173                        <- java/nio/HeapCharBuffer.<init>
+  0 311403 4789112983180                      <- java/nio/CharBuffer.wrap
+  0 311403 4789112983188                      -> java/nio/Buffer.hasRemaining
+  0 311403 4789112983196                      <- java/nio/Buffer.hasRemaining
+  0 311403 4789112983206                      -> java/nio/charset/CharsetEncoder.encode
+  0 311403 4789112983216                        -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789112983226                          -> java/nio/CharBuffer.hasArray
+  0 311403 4789112983233                          <- java/nio/CharBuffer.hasArray
+  0 311403 4789112983243                          -> java/nio/ByteBuffer.hasArray
+  0 311403 4789112983250                          <- java/nio/ByteBuffer.hasArray
+  0 311403 4789112983259                          -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789112983267                            -> java/nio/CharBuffer.array
+  0 311403 4789112983274                            <- java/nio/CharBuffer.array
+  0 311403 4789112983282                            -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789112983289                            <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789112983297                            -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789112983305                            <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789112983316                            -> java/nio/ByteBuffer.array
+  0 311403 4789112983323                            <- java/nio/ByteBuffer.array
+  0 311403 4789112983331                            -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112983338                            <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112983346                            -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112983354                            <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112983366                            -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789112983374                            <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789112983382                            -> java/nio/Buffer.position
+  0 311403 4789112983389                            <- java/nio/Buffer.position
+  0 311403 4789112983395                            -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112983402                            <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112983410                            -> java/nio/Buffer.position
+  0 311403 4789112983417                            <- java/nio/Buffer.position
+  0 311403 4789112983424                          <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789112983431                        <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789112983439                        -> java/nio/charset/CoderResult.isOverflow
+  0 311403 4789112983447                        <- java/nio/charset/CoderResult.isOverflow
+  0 311403 4789112983454                        -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789112983462                        <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789112983469                      <- java/nio/charset/CharsetEncoder.encode
+  0 311403 4789112983477                      -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789112983485                      <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789112983494                      -> java/nio/Buffer.remaining
+  0 311403 4789112983501                      <- java/nio/Buffer.remaining
+  0 311403 4789112983508                    <- sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789112983515                  <- sun/nio/cs/StreamEncoder.write
+  0 311403 4789112983522                <- java/io/OutputStreamWriter.write
+  0 311403 4789112983528              <- java/io/BufferedWriter.flushBuffer
+  0 311403 4789112983537              -> java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789112983546                -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789112983555                  -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789112983565                    -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789112983574                      -> java/nio/Buffer.flip
+  0 311403 4789112983581                      <- java/nio/Buffer.flip
+  0 311403 4789112983591                      -> java/nio/ByteBuffer.array
+  0 311403 4789112983598                      <- java/nio/ByteBuffer.array
+  0 311403 4789112983606                      -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112983613                      <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112983623                      -> java/io/PrintStream.write
+  0 311403 4789112983629                        -> java/io/PrintStream.ensureOpen
+  0 311403 4789112983636                        <- java/io/PrintStream.ensureOpen
+  0 311403 4789112983645                        -> java/io/BufferedOutputStream.write
+  0 311403 4789112983657                          -> java/lang/System.arraycopy
+  0 311403 4789112983664                          <- java/lang/System.arraycopy
+  0 311403 4789112983671                        <- java/io/BufferedOutputStream.write
+  0 311403 4789112983679                        -> java/io/BufferedOutputStream.flush
+  0 311403 4789112983688                          -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789112983698                            -> java/io/FileOutputStream.write
+  0 311403 4789112983707                              -> java/io/FileOutputStream.writeBytes
+  0 311403 4789112983860                              <- java/io/FileOutputStream.writeBytes
+  0 311403 4789112983868                            <- java/io/FileOutputStream.write
+  0 311403 4789112983874                          <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789112983885                        <- java/io/BufferedOutputStream.flush
+  0 311403 4789112983892                      <- java/io/PrintStream.write
+  0 311403 4789112983901                      -> java/nio/Buffer.clear
+  0 311403 4789112983909                      <- java/nio/Buffer.clear
+  0 311403 4789112983915                    <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789112983922                  <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789112983929                <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789112983936              <- java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789112983946              -> java/lang/String.indexOf
+  0 311403 4789112983952                -> java/lang/String.indexOf
+  0 311403 4789112983961                <- java/lang/String.indexOf
+  0 311403 4789112983967              <- java/lang/String.indexOf
+  0 311403 4789112983974            <- java/io/PrintStream.write
+  0 311403 4789112983981          <- java/io/PrintStream.print
+  0 311403 4789112983989          -> java/io/PrintStream.newLine
+  0 311403 4789112983995            -> java/io/PrintStream.ensureOpen
+  0 311403 4789112984002            <- java/io/PrintStream.ensureOpen
+  0 311403 4789112984010            -> java/io/BufferedWriter.newLine
+  0 311403 4789112984019              -> java/io/Writer.write
+  0 311403 4789112984025                -> java/io/BufferedWriter.write
+  0 311403 4789112984031                  -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789112984039                  <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789112984045                  -> java/io/BufferedWriter.min
+  0 311403 4789112984052                  <- java/io/BufferedWriter.min
+  0 311403 4789112984058                  -> java/lang/String.getChars
+  0 311403 4789112984064                    -> java/lang/System.arraycopy
+  0 311403 4789112984072                    <- java/lang/System.arraycopy
+  0 311403 4789112984078                  <- java/lang/String.getChars
+  0 311403 4789112984085                <- java/io/BufferedWriter.write
+  0 311403 4789112984092              <- java/io/Writer.write
+  0 311403 4789112984099            <- java/io/BufferedWriter.newLine
+  0 311403 4789112984104            -> java/io/BufferedWriter.flushBuffer
+  0 311403 4789112984111              -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789112984118              <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789112984124              -> java/io/OutputStreamWriter.write
+  0 311403 4789112984130                -> sun/nio/cs/StreamEncoder.write
+  0 311403 4789112984137                  -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789112984144                  <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789112984150                  -> sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789112984156                    -> java/nio/CharBuffer.wrap
+  0 311403 4789112984163                      -> java/nio/HeapCharBuffer.<init>
+  0 311403 4789112984169                        -> java/nio/CharBuffer.<init>
+  0 311403 4789112984175                          -> java/nio/Buffer.<init>
+  0 311403 4789112984181                            -> java/lang/Object.<init>
+  0 311403 4789112984189                            <- java/lang/Object.<init>
+  0 311403 4789112984194                            -> java/nio/Buffer.limit
+  0 311403 4789112984202                            <- java/nio/Buffer.limit
+  0 311403 4789112984207                            -> java/nio/Buffer.position
+  0 311403 4789112984214                            <- java/nio/Buffer.position
+  0 311403 4789112984221                          <- java/nio/Buffer.<init>
+  0 311403 4789112984228                        <- java/nio/CharBuffer.<init>
+  0 311403 4789112984234                      <- java/nio/HeapCharBuffer.<init>
+  0 311403 4789112984241                    <- java/nio/CharBuffer.wrap
+  0 311403 4789112984247                    -> java/nio/Buffer.hasRemaining
+  0 311403 4789112984254                    <- java/nio/Buffer.hasRemaining
+  0 311403 4789112984260                    -> java/nio/charset/CharsetEncoder.encode
+  0 311403 4789112984266                      -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789112984273                        -> java/nio/CharBuffer.hasArray
+  0 311403 4789112984280                        <- java/nio/CharBuffer.hasArray
+  0 311403 4789112984286                        -> java/nio/ByteBuffer.hasArray
+  0 311403 4789112984293                        <- java/nio/ByteBuffer.hasArray
+  0 311403 4789112984299                        -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789112984305                          -> java/nio/CharBuffer.array
+  0 311403 4789112984312                          <- java/nio/CharBuffer.array
+  0 311403 4789112984318                          -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789112984325                          <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789112984331                          -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789112984338                          <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789112984344                          -> java/nio/ByteBuffer.array
+  0 311403 4789112984352                          <- java/nio/ByteBuffer.array
+  0 311403 4789112984358                          -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112984365                          <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112984371                          -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112984378                          <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112984384                          -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789112984391                          <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789112984397                          -> java/nio/Buffer.position
+  0 311403 4789112984404                          <- java/nio/Buffer.position
+  0 311403 4789112984410                          -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112984417                          <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112984423                          -> java/nio/Buffer.position
+  0 311403 4789112984430                          <- java/nio/Buffer.position
+  0 311403 4789112984437                        <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789112984444                      <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789112984450                      -> java/nio/charset/CoderResult.isOverflow
+  0 311403 4789112984457                      <- java/nio/charset/CoderResult.isOverflow
+  0 311403 4789112984463                      -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789112984470                      <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789112984477                    <- java/nio/charset/CharsetEncoder.encode
+  0 311403 4789112984483                    -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789112984491                    <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789112984497                    -> java/nio/Buffer.remaining
+  0 311403 4789112984504                    <- java/nio/Buffer.remaining
+  0 311403 4789112984510                  <- sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789112984517                <- sun/nio/cs/StreamEncoder.write
+  0 311403 4789112984524              <- java/io/OutputStreamWriter.write
+  0 311403 4789112984531            <- java/io/BufferedWriter.flushBuffer
+  0 311403 4789112984536            -> java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789112984543              -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789112984549                -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789112984556                  -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789112984562                    -> java/nio/Buffer.flip
+  0 311403 4789112984569                    <- java/nio/Buffer.flip
+  0 311403 4789112984575                    -> java/nio/ByteBuffer.array
+  0 311403 4789112984582                    <- java/nio/ByteBuffer.array
+  0 311403 4789112984588                    -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112984595                    <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789112984601                    -> java/io/PrintStream.write
+  0 311403 4789112984607                      -> java/io/PrintStream.ensureOpen
+  0 311403 4789112984615                      <- java/io/PrintStream.ensureOpen
+  0 311403 4789112984621                      -> java/io/BufferedOutputStream.write
+  0 311403 4789112984627                        -> java/lang/System.arraycopy
+  0 311403 4789112984635                        <- java/lang/System.arraycopy
+  0 311403 4789112984641                      <- java/io/BufferedOutputStream.write
+  0 311403 4789112984647                      -> java/io/BufferedOutputStream.flush
+  0 311403 4789112984654                        -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789112984660                          -> java/io/FileOutputStream.write
+  0 311403 4789112984666                            -> java/io/FileOutputStream.writeBytes
+  0 311403 4789112984712                            <- java/io/FileOutputStream.writeBytes
+  0 311403 4789112984719                          <- java/io/FileOutputStream.write
+  0 311403 4789112984726                        <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789112984733                      <- java/io/BufferedOutputStream.flush
+  0 311403 4789112984740                    <- java/io/PrintStream.write
+  0 311403 4789112984746                    -> java/nio/Buffer.clear
+  0 311403 4789112984753                    <- java/nio/Buffer.clear
+  0 311403 4789112984760                  <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789112984766                <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789112984773              <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789112984780            <- java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789112984786            -> java/io/BufferedOutputStream.flush
+  0 311403 4789112984792              -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789112984800              <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789112984807            <- java/io/BufferedOutputStream.flush
+  0 311403 4789112984813          <- java/io/PrintStream.newLine
+  0 311403 4789112984820        <- java/io/PrintStream.println
+  0 311403 4789112984835        -> java/lang/ClassLoader.loadClassInternal
+  0 311403 4789112984842          -> java/lang/ClassLoader.loadClass
+  0 311403 4789112984849            -> sun/misc/Launcher$AppClassLoader.loadClass
+  0 311403 4789112984855              -> java/lang/String.lastIndexOf
+  0 311403 4789112984862                -> java/lang/String.lastIndexOf
+  0 311403 4789112984870                <- java/lang/String.lastIndexOf
+  0 311403 4789112984877              <- java/lang/String.lastIndexOf
+  0 311403 4789112984882              -> java/lang/System.getSecurityManager
+  0 311403 4789112984890              <- java/lang/System.getSecurityManager
+  0 311403 4789112984896              -> java/lang/ClassLoader.loadClass
+  0 311403 4789112984902                -> java/lang/ClassLoader.findLoadedClass
+  0 311403 4789112984908                  -> java/lang/ClassLoader.check
+  0 311403 4789112984915                  <- java/lang/ClassLoader.check
+  0 311403 4789112984921                  -> java/lang/ClassLoader.checkName
+  0 311403 4789112984927                    -> java/lang/String.indexOf
+  0 311403 4789112984934                      -> java/lang/String.indexOf
+  0 311403 4789112984942                      <- java/lang/String.indexOf
+  0 311403 4789112984948                    <- java/lang/String.indexOf
+  0 311403 4789112984954                    -> sun/misc/VM.allowArraySyntax
+  0 311403 4789112984961                    <- sun/misc/VM.allowArraySyntax
+  0 311403 4789112984967                    -> java/lang/String.charAt
+  0 311403 4789112984974                    <- java/lang/String.charAt
+  0 311403 4789112984981                  <- java/lang/ClassLoader.checkName
+  0 311403 4789112984987                  -> java/lang/ClassLoader.findLoadedClass0
+  0 311403 4789112984998                  <- java/lang/ClassLoader.findLoadedClass0
+  0 311403 4789112985005                <- java/lang/ClassLoader.findLoadedClass
+  0 311403 4789112985011                -> java/lang/ClassLoader.loadClass
+  0 311403 4789112985018                  -> java/lang/ClassLoader.findLoadedClass
+  0 311403 4789112985024                    -> java/lang/ClassLoader.check
+  0 311403 4789112985031                    <- java/lang/ClassLoader.check
+  0 311403 4789112985037                    -> java/lang/ClassLoader.checkName
+  0 311403 4789112985043                      -> java/lang/String.indexOf
+  0 311403 4789112985049                        -> java/lang/String.indexOf
+  0 311403 4789112985057                        <- java/lang/String.indexOf
+  0 311403 4789112985064                      <- java/lang/String.indexOf
+  0 311403 4789112985070                      -> sun/misc/VM.allowArraySyntax
+  0 311403 4789112985077                      <- sun/misc/VM.allowArraySyntax
+  0 311403 4789112985083                      -> java/lang/String.charAt
+  0 311403 4789112985090                      <- java/lang/String.charAt
+  0 311403 4789112985096                    <- java/lang/ClassLoader.checkName
+  0 311403 4789112985102                    -> java/lang/ClassLoader.findLoadedClass0
+  0 311403 4789112985111                    <- java/lang/ClassLoader.findLoadedClass0
+  0 311403 4789112985118                  <- java/lang/ClassLoader.findLoadedClass
+  0 311403 4789112985124                  -> java/lang/ClassLoader.findBootstrapClass0
+  0 311403 4789112985130                    -> java/lang/ClassLoader.check
+  0 311403 4789112985138                    <- java/lang/ClassLoader.check
+  0 311403 4789112985143                    -> java/lang/ClassLoader.checkName
+  0 311403 4789112985150                      -> java/lang/String.indexOf
+  0 311403 4789112985156                        -> java/lang/String.indexOf
+  0 311403 4789112985164                        <- java/lang/String.indexOf
+  0 311403 4789112985170                      <- java/lang/String.indexOf
+  0 311403 4789112985176                      -> sun/misc/VM.allowArraySyntax
+  0 311403 4789112985183                      <- sun/misc/VM.allowArraySyntax
+  0 311403 4789112985189                      -> java/lang/String.charAt
+  0 311403 4789112985196                      <- java/lang/String.charAt
+  0 311403 4789112985203                    <- java/lang/ClassLoader.checkName
+  0 311403 4789112985208                    -> java/lang/ClassLoader.findBootstrapClass
+  0 311403 4789112985219                    <- java/lang/ClassLoader.findBootstrapClass
+  0 311403 4789112985226                  <- java/lang/ClassLoader.findBootstrapClass0
+  0 311403 4789112985233                <- java/lang/ClassLoader.loadClass
+  0 311403 4789112985240              <- java/lang/ClassLoader.loadClass
+  0 311403 4789112985247            <- sun/misc/Launcher$AppClassLoader.loadClass
+  0 311403 4789112985253          <- java/lang/ClassLoader.loadClass
+  0 311403 4789112985260        <- java/lang/ClassLoader.loadClassInternal
+  0 311403 4789112985270        -> java/lang/ClassLoader.checkPackageAccess
+  0 311403 4789112985277          -> java/lang/System.getSecurityManager
+  0 311403 4789112985285          <- java/lang/System.getSecurityManager
+  0 311403 4789112985291          -> java/util/HashSet.add
+  0 311403 4789112985297            -> java/util/HashMap.put
+  0 311403 4789112985304              -> java/lang/Object.hashCode
+  0 311403 4789112985311              <- java/lang/Object.hashCode
+  0 311403 4789112985317              -> java/util/HashMap.hash
+  0 311403 4789112985324              <- java/util/HashMap.hash
+  0 311403 4789112985330              -> java/util/HashMap.indexFor
+  0 311403 4789112985337              <- java/util/HashMap.indexFor
+  0 311403 4789112985344            <- java/util/HashMap.put
+  0 311403 4789112985351          <- java/util/HashSet.add
+  0 311403 4789112985358        <- java/lang/ClassLoader.checkPackageAccess
+  0 311403 4789112985371        -> java/lang/Thread.currentThread
+  0 311403 4789112985379        <- java/lang/Thread.currentThread
+  0 311403 4789112985387        -> java/lang/Thread.sleep
+  0 311403 4789113990048        <- java/lang/Thread.sleep
+  0 311403 4789113990080        -> Func_abc.func_b
+  0 311403 4789113990104          -> java/io/PrintStream.println
+  0 311403 4789113990112            -> java/io/PrintStream.print
+  0 311403 4789113990118              -> java/io/PrintStream.write
+  0 311403 4789113990125                -> java/io/PrintStream.ensureOpen
+  0 311403 4789113990133                <- java/io/PrintStream.ensureOpen
+  0 311403 4789113990139                -> java/io/Writer.write
+  0 311403 4789113990147                  -> java/io/BufferedWriter.write
+  0 311403 4789113990154                    -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789113990161                    <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789113990168                    -> java/io/BufferedWriter.min
+  0 311403 4789113990176                    <- java/io/BufferedWriter.min
+  0 311403 4789113990182                    -> java/lang/String.getChars
+  0 311403 4789113990189                      -> java/lang/System.arraycopy
+  0 311403 4789113990198                      <- java/lang/System.arraycopy
+  0 311403 4789113990205                    <- java/lang/String.getChars
+  0 311403 4789113990212                  <- java/io/BufferedWriter.write
+  0 311403 4789113990219                <- java/io/Writer.write
+  0 311403 4789113990225                -> java/io/BufferedWriter.flushBuffer
+  0 311403 4789113990231                  -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789113990238                  <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789113990245                  -> java/io/OutputStreamWriter.write
+  0 311403 4789113990252                    -> sun/nio/cs/StreamEncoder.write
+  0 311403 4789113990258                      -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789113990265                      <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789113990272                      -> sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789113990279                        -> java/nio/CharBuffer.wrap
+  0 311403 4789113990286                          -> java/nio/HeapCharBuffer.<init>
+  0 311403 4789113990293                            -> java/nio/CharBuffer.<init>
+  0 311403 4789113990299                              -> java/nio/Buffer.<init>
+  0 311403 4789113990306                                -> java/lang/Object.<init>
+  0 311403 4789113990313                                <- java/lang/Object.<init>
+  0 311403 4789113990320                                -> java/nio/Buffer.limit
+  0 311403 4789113990327                                <- java/nio/Buffer.limit
+  0 311403 4789113990333                                -> java/nio/Buffer.position
+  0 311403 4789113990340                                <- java/nio/Buffer.position
+  0 311403 4789113990347                              <- java/nio/Buffer.<init>
+  0 311403 4789113990354                            <- java/nio/CharBuffer.<init>
+  0 311403 4789113990360                          <- java/nio/HeapCharBuffer.<init>
+  0 311403 4789113990367                        <- java/nio/CharBuffer.wrap
+  0 311403 4789113990373                        -> java/nio/Buffer.hasRemaining
+  0 311403 4789113990381                        <- java/nio/Buffer.hasRemaining
+  0 311403 4789113990387                        -> java/nio/charset/CharsetEncoder.encode
+  0 311403 4789113990394                          -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789113990401                            -> java/nio/CharBuffer.hasArray
+  0 311403 4789113990409                            <- java/nio/CharBuffer.hasArray
+  0 311403 4789113990415                            -> java/nio/ByteBuffer.hasArray
+  0 311403 4789113990422                            <- java/nio/ByteBuffer.hasArray
+  0 311403 4789113990428                            -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789113990435                              -> java/nio/CharBuffer.array
+  0 311403 4789113990442                              <- java/nio/CharBuffer.array
+  0 311403 4789113990448                              -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789113990455                              <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789113990461                              -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789113990468                              <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789113990475                              -> java/nio/ByteBuffer.array
+  0 311403 4789113990482                              <- java/nio/ByteBuffer.array
+  0 311403 4789113990488                              -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113990495                              <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113990501                              -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113990508                              <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113990517                              -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789113990524                              <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789113990529                              -> java/nio/Buffer.position
+  0 311403 4789113990537                              <- java/nio/Buffer.position
+  0 311403 4789113990542                              -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113990550                              <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113990555                              -> java/nio/Buffer.position
+  0 311403 4789113990563                              <- java/nio/Buffer.position
+  0 311403 4789113990569                            <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789113990576                          <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789113990583                          -> java/nio/charset/CoderResult.isOverflow
+  0 311403 4789113990590                          <- java/nio/charset/CoderResult.isOverflow
+  0 311403 4789113990596                          -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789113990603                          <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789113990610                        <- java/nio/charset/CharsetEncoder.encode
+  0 311403 4789113990616                        -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789113990624                        <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789113990630                        -> java/nio/Buffer.remaining
+  0 311403 4789113990637                        <- java/nio/Buffer.remaining
+  0 311403 4789113990643                      <- sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789113990650                    <- sun/nio/cs/StreamEncoder.write
+  0 311403 4789113990657                  <- java/io/OutputStreamWriter.write
+  0 311403 4789113990664                <- java/io/BufferedWriter.flushBuffer
+  0 311403 4789113990670                -> java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789113990677                  -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789113990683                    -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789113990690                      -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789113990697                        -> java/nio/Buffer.flip
+  0 311403 4789113990704                        <- java/nio/Buffer.flip
+  0 311403 4789113990710                        -> java/nio/ByteBuffer.array
+  0 311403 4789113990717                        <- java/nio/ByteBuffer.array
+  0 311403 4789113990723                        -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113990730                        <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113990736                        -> java/io/PrintStream.write
+  0 311403 4789113990742                          -> java/io/PrintStream.ensureOpen
+  0 311403 4789113990749                          <- java/io/PrintStream.ensureOpen
+  0 311403 4789113990756                          -> java/io/BufferedOutputStream.write
+  0 311403 4789113990763                            -> java/lang/System.arraycopy
+  0 311403 4789113990770                            <- java/lang/System.arraycopy
+  0 311403 4789113990777                          <- java/io/BufferedOutputStream.write
+  0 311403 4789113990783                          -> java/io/BufferedOutputStream.flush
+  0 311403 4789113990790                            -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789113990797                              -> java/io/FileOutputStream.write
+  0 311403 4789113990803                                -> java/io/FileOutputStream.writeBytes
+  0 311403 4789113990841                                <- java/io/FileOutputStream.writeBytes
+  0 311403 4789113990848                              <- java/io/FileOutputStream.write
+  0 311403 4789113990855                            <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789113990862                          <- java/io/BufferedOutputStream.flush
+  0 311403 4789113990869                        <- java/io/PrintStream.write
+  0 311403 4789113990875                        -> java/nio/Buffer.clear
+  0 311403 4789113990882                        <- java/nio/Buffer.clear
+  0 311403 4789113990888                      <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789113990895                    <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789113990902                  <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789113990909                <- java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789113990915                -> java/lang/String.indexOf
+  0 311403 4789113990922                  -> java/lang/String.indexOf
+  0 311403 4789113990930                  <- java/lang/String.indexOf
+  0 311403 4789113990936                <- java/lang/String.indexOf
+  0 311403 4789113990943              <- java/io/PrintStream.write
+  0 311403 4789113990950            <- java/io/PrintStream.print
+  0 311403 4789113990956            -> java/io/PrintStream.newLine
+  0 311403 4789113990962              -> java/io/PrintStream.ensureOpen
+  0 311403 4789113990969              <- java/io/PrintStream.ensureOpen
+  0 311403 4789113990975              -> java/io/BufferedWriter.newLine
+  0 311403 4789113990981                -> java/io/Writer.write
+  0 311403 4789113990988                  -> java/io/BufferedWriter.write
+  0 311403 4789113990994                    -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789113991001                    <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789113991007                    -> java/io/BufferedWriter.min
+  0 311403 4789113991014                    <- java/io/BufferedWriter.min
+  0 311403 4789113991020                    -> java/lang/String.getChars
+  0 311403 4789113991026                      -> java/lang/System.arraycopy
+  0 311403 4789113991034                      <- java/lang/System.arraycopy
+  0 311403 4789113991040                    <- java/lang/String.getChars
+  0 311403 4789113991047                  <- java/io/BufferedWriter.write
+  0 311403 4789113991054                <- java/io/Writer.write
+  0 311403 4789113991060              <- java/io/BufferedWriter.newLine
+  0 311403 4789113991066              -> java/io/BufferedWriter.flushBuffer
+  0 311403 4789113991072                -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789113991080                <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789113991086                -> java/io/OutputStreamWriter.write
+  0 311403 4789113991092                  -> sun/nio/cs/StreamEncoder.write
+  0 311403 4789113991098                    -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789113991106                    <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789113991112                    -> sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789113991118                      -> java/nio/CharBuffer.wrap
+  0 311403 4789113991124                        -> java/nio/HeapCharBuffer.<init>
+  0 311403 4789113991131                          -> java/nio/CharBuffer.<init>
+  0 311403 4789113991137                            -> java/nio/Buffer.<init>
+  0 311403 4789113991143                              -> java/lang/Object.<init>
+  0 311403 4789113991150                              <- java/lang/Object.<init>
+  0 311403 4789113991156                              -> java/nio/Buffer.limit
+  0 311403 4789113991163                              <- java/nio/Buffer.limit
+  0 311403 4789113991169                              -> java/nio/Buffer.position
+  0 311403 4789113991176                              <- java/nio/Buffer.position
+  0 311403 4789113991182                            <- java/nio/Buffer.<init>
+  0 311403 4789113991189                          <- java/nio/CharBuffer.<init>
+  0 311403 4789113991196                        <- java/nio/HeapCharBuffer.<init>
+  0 311403 4789113991202                      <- java/nio/CharBuffer.wrap
+  0 311403 4789113991208                      -> java/nio/Buffer.hasRemaining
+  0 311403 4789113991215                      <- java/nio/Buffer.hasRemaining
+  0 311403 4789113991221                      -> java/nio/charset/CharsetEncoder.encode
+  0 311403 4789113991281                        -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789113991287                          -> java/nio/CharBuffer.hasArray
+  0 311403 4789113991295                          <- java/nio/CharBuffer.hasArray
+  0 311403 4789113991301                          -> java/nio/ByteBuffer.hasArray
+  0 311403 4789113991308                          <- java/nio/ByteBuffer.hasArray
+  0 311403 4789113991314                          -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789113991320                            -> java/nio/CharBuffer.array
+  0 311403 4789113991328                            <- java/nio/CharBuffer.array
+  0 311403 4789113991333                            -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789113991341                            <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789113991347                            -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789113991354                            <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789113991360                            -> java/nio/ByteBuffer.array
+  0 311403 4789113991367                            <- java/nio/ByteBuffer.array
+  0 311403 4789113991373                            -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113991380                            <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113991386                            -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113991393                            <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113991400                            -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789113991407                            <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789113991413                            -> java/nio/Buffer.position
+  0 311403 4789113991420                            <- java/nio/Buffer.position
+  0 311403 4789113991426                            -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113991433                            <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113991439                            -> java/nio/Buffer.position
+  0 311403 4789113991446                            <- java/nio/Buffer.position
+  0 311403 4789113991453                          <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789113991459                        <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789113991465                        -> java/nio/charset/CoderResult.isOverflow
+  0 311403 4789113991473                        <- java/nio/charset/CoderResult.isOverflow
+  0 311403 4789113991479                        -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789113991486                        <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789113991493                      <- java/nio/charset/CharsetEncoder.encode
+  0 311403 4789113991499                      -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789113991506                      <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789113991512                      -> java/nio/Buffer.remaining
+  0 311403 4789113991519                      <- java/nio/Buffer.remaining
+  0 311403 4789113991526                    <- sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789113991533                  <- sun/nio/cs/StreamEncoder.write
+  0 311403 4789113991539                <- java/io/OutputStreamWriter.write
+  0 311403 4789113991546              <- java/io/BufferedWriter.flushBuffer
+  0 311403 4789113991552              -> java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789113991559                -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789113991565                  -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789113991572                    -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789113991578                      -> java/nio/Buffer.flip
+  0 311403 4789113991585                      <- java/nio/Buffer.flip
+  0 311403 4789113991591                      -> java/nio/ByteBuffer.array
+  0 311403 4789113991598                      <- java/nio/ByteBuffer.array
+  0 311403 4789113991604                      -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113991611                      <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789113991617                      -> java/io/PrintStream.write
+  0 311403 4789113991623                        -> java/io/PrintStream.ensureOpen
+  0 311403 4789113991630                        <- java/io/PrintStream.ensureOpen
+  0 311403 4789113991636                        -> java/io/BufferedOutputStream.write
+  0 311403 4789113991643                          -> java/lang/System.arraycopy
+  0 311403 4789113991651                          <- java/lang/System.arraycopy
+  0 311403 4789113991657                        <- java/io/BufferedOutputStream.write
+  0 311403 4789113991663                        -> java/io/BufferedOutputStream.flush
+  0 311403 4789113991670                          -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789113991676                            -> java/io/FileOutputStream.write
+  0 311403 4789113991682                              -> java/io/FileOutputStream.writeBytes
+  0 311403 4789113991701                              <- java/io/FileOutputStream.writeBytes
+  0 311403 4789113991708                            <- java/io/FileOutputStream.write
+  0 311403 4789113991720                          <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789113991728                        <- java/io/BufferedOutputStream.flush
+  0 311403 4789113991734                      <- java/io/PrintStream.write
+  0 311403 4789113991740                      -> java/nio/Buffer.clear
+  0 311403 4789113991747                      <- java/nio/Buffer.clear
+  0 311403 4789113991754                    <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789113991761                  <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789113991768                <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789113991774              <- java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789113991780              -> java/io/BufferedOutputStream.flush
+  0 311403 4789113991787                -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789113991794                <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789113991801              <- java/io/BufferedOutputStream.flush
+  0 311403 4789113991808            <- java/io/PrintStream.newLine
+  0 311403 4789113991815          <- java/io/PrintStream.println
+  0 311403 4789113991821          -> java/lang/Thread.currentThread
+  0 311403 4789113991828          <- java/lang/Thread.currentThread
+  0 311403 4789113991834          -> java/lang/Thread.sleep
+  0 311403 4789115000050          <- java/lang/Thread.sleep
+  0 311403 4789115000081          -> Func_abc.func_c
+  0 311403 4789115000105            -> java/io/PrintStream.println
+  0 311403 4789115000113              -> java/io/PrintStream.print
+  0 311403 4789115000120                -> java/io/PrintStream.write
+  0 311403 4789115000126                  -> java/io/PrintStream.ensureOpen
+  0 311403 4789115000134                  <- java/io/PrintStream.ensureOpen
+  0 311403 4789115000141                  -> java/io/Writer.write
+  0 311403 4789115000148                    -> java/io/BufferedWriter.write
+  0 311403 4789115000155                      -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789115000162                      <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789115000170                      -> java/io/BufferedWriter.min
+  0 311403 4789115000177                      <- java/io/BufferedWriter.min
+  0 311403 4789115000183                      -> java/lang/String.getChars
+  0 311403 4789115000191                        -> java/lang/System.arraycopy
+  0 311403 4789115000199                        <- java/lang/System.arraycopy
+  0 311403 4789115000206                      <- java/lang/String.getChars
+  0 311403 4789115000213                    <- java/io/BufferedWriter.write
+  0 311403 4789115000220                  <- java/io/Writer.write
+  0 311403 4789115000226                  -> java/io/BufferedWriter.flushBuffer
+  0 311403 4789115000233                    -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789115000240                    <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789115000246                    -> java/io/OutputStreamWriter.write
+  0 311403 4789115000253                      -> sun/nio/cs/StreamEncoder.write
+  0 311403 4789115000260                        -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789115000267                        <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789115000274                        -> sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789115000281                          -> java/nio/CharBuffer.wrap
+  0 311403 4789115000288                            -> java/nio/HeapCharBuffer.<init>
+  0 311403 4789115000294                              -> java/nio/CharBuffer.<init>
+  0 311403 4789115000301                                -> java/nio/Buffer.<init>
+  0 311403 4789115000307                                  -> java/lang/Object.<init>
+  0 311403 4789115000315                                  <- java/lang/Object.<init>
+  0 311403 4789115000321                                  -> java/nio/Buffer.limit
+  0 311403 4789115000328                                  <- java/nio/Buffer.limit
+  0 311403 4789115000334                                  -> java/nio/Buffer.position
+  0 311403 4789115000342                                  <- java/nio/Buffer.position
+  0 311403 4789115000348                                <- java/nio/Buffer.<init>
+  0 311403 4789115000355                              <- java/nio/CharBuffer.<init>
+  0 311403 4789115000362                            <- java/nio/HeapCharBuffer.<init>
+  0 311403 4789115000368                          <- java/nio/CharBuffer.wrap
+  0 311403 4789115000374                          -> java/nio/Buffer.hasRemaining
+  0 311403 4789115000382                          <- java/nio/Buffer.hasRemaining
+  0 311403 4789115000388                          -> java/nio/charset/CharsetEncoder.encode
+  0 311403 4789115000396                            -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789115000402                              -> java/nio/CharBuffer.hasArray
+  0 311403 4789115000410                              <- java/nio/CharBuffer.hasArray
+  0 311403 4789115000416                              -> java/nio/ByteBuffer.hasArray
+  0 311403 4789115000424                              <- java/nio/ByteBuffer.hasArray
+  0 311403 4789115000430                              -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789115000436                                -> java/nio/CharBuffer.array
+  0 311403 4789115000444                                <- java/nio/CharBuffer.array
+  0 311403 4789115000450                                -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789115000457                                <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789115000463                                -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789115000470                                <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789115000476                                -> java/nio/ByteBuffer.array
+  0 311403 4789115000483                                <- java/nio/ByteBuffer.array
+  0 311403 4789115000489                                -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115000496                                <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115000502                                -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115000509                                <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115000518                                -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789115000525                                <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789115000531                                -> java/nio/Buffer.position
+  0 311403 4789115000538                                <- java/nio/Buffer.position
+  0 311403 4789115000544                                -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115000551                                <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115000557                                -> java/nio/Buffer.position
+  0 311403 4789115000564                                <- java/nio/Buffer.position
+  0 311403 4789115000570                              <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789115000577                            <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789115000584                            -> java/nio/charset/CoderResult.isOverflow
+  0 311403 4789115000591                            <- java/nio/charset/CoderResult.isOverflow
+  0 311403 4789115000597                            -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789115000605                            <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789115000611                          <- java/nio/charset/CharsetEncoder.encode
+  0 311403 4789115000617                          -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789115000625                          <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789115000631                          -> java/nio/Buffer.remaining
+  0 311403 4789115000638                          <- java/nio/Buffer.remaining
+  0 311403 4789115000645                        <- sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789115000652                      <- sun/nio/cs/StreamEncoder.write
+  0 311403 4789115000658                    <- java/io/OutputStreamWriter.write
+  0 311403 4789115000665                  <- java/io/BufferedWriter.flushBuffer
+  0 311403 4789115000671                  -> java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789115000678                    -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789115000685                      -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789115000692                        -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789115000698                          -> java/nio/Buffer.flip
+  0 311403 4789115000705                          <- java/nio/Buffer.flip
+  0 311403 4789115000711                          -> java/nio/ByteBuffer.array
+  0 311403 4789115000718                          <- java/nio/ByteBuffer.array
+  0 311403 4789115000724                          -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115000731                          <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115000738                          -> java/io/PrintStream.write
+  0 311403 4789115000744                            -> java/io/PrintStream.ensureOpen
+  0 311403 4789115000751                            <- java/io/PrintStream.ensureOpen
+  0 311403 4789115000758                            -> java/io/BufferedOutputStream.write
+  0 311403 4789115000764                              -> java/lang/System.arraycopy
+  0 311403 4789115000772                              <- java/lang/System.arraycopy
+  0 311403 4789115000778                            <- java/io/BufferedOutputStream.write
+  0 311403 4789115000785                            -> java/io/BufferedOutputStream.flush
+  0 311403 4789115000791                              -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789115000798                                -> java/io/FileOutputStream.write
+  0 311403 4789115000805                                  -> java/io/FileOutputStream.writeBytes
+  0 311403 4789115000843                                  <- java/io/FileOutputStream.writeBytes
+  0 311403 4789115000850                                <- java/io/FileOutputStream.write
+  0 311403 4789115000857                              <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789115000864                            <- java/io/BufferedOutputStream.flush
+  0 311403 4789115000871                          <- java/io/PrintStream.write
+  0 311403 4789115000877                          -> java/nio/Buffer.clear
+  0 311403 4789115000884                          <- java/nio/Buffer.clear
+  0 311403 4789115000891                        <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789115000897                      <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789115000904                    <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789115000911                  <- java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789115000917                  -> java/lang/String.indexOf
+  0 311403 4789115000924                    -> java/lang/String.indexOf
+  0 311403 4789115000932                    <- java/lang/String.indexOf
+  0 311403 4789115000939                  <- java/lang/String.indexOf
+  0 311403 4789115000945                <- java/io/PrintStream.write
+  0 311403 4789115000952              <- java/io/PrintStream.print
+  0 311403 4789115000958              -> java/io/PrintStream.newLine
+  0 311403 4789115000964                -> java/io/PrintStream.ensureOpen
+  0 311403 4789115000971                <- java/io/PrintStream.ensureOpen
+  0 311403 4789115000977                -> java/io/BufferedWriter.newLine
+  0 311403 4789115000983                  -> java/io/Writer.write
+  0 311403 4789115000990                    -> java/io/BufferedWriter.write
+  0 311403 4789115000996                      -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789115001003                      <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789115001009                      -> java/io/BufferedWriter.min
+  0 311403 4789115001016                      <- java/io/BufferedWriter.min
+  0 311403 4789115001022                      -> java/lang/String.getChars
+  0 311403 4789115001029                        -> java/lang/System.arraycopy
+  0 311403 4789115001036                        <- java/lang/System.arraycopy
+  0 311403 4789115001042                      <- java/lang/String.getChars
+  0 311403 4789115001049                    <- java/io/BufferedWriter.write
+  0 311403 4789115001056                  <- java/io/Writer.write
+  0 311403 4789115001062                <- java/io/BufferedWriter.newLine
+  0 311403 4789115001068                -> java/io/BufferedWriter.flushBuffer
+  0 311403 4789115001075                  -> java/io/BufferedWriter.ensureOpen
+  0 311403 4789115001082                  <- java/io/BufferedWriter.ensureOpen
+  0 311403 4789115001088                  -> java/io/OutputStreamWriter.write
+  0 311403 4789115001094                    -> sun/nio/cs/StreamEncoder.write
+  0 311403 4789115001101                      -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789115001108                      <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311403 4789115001114                      -> sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789115001120                        -> java/nio/CharBuffer.wrap
+  0 311403 4789115001127                          -> java/nio/HeapCharBuffer.<init>
+  0 311403 4789115001133                            -> java/nio/CharBuffer.<init>
+  0 311403 4789115001139                              -> java/nio/Buffer.<init>
+  0 311403 4789115001145                                -> java/lang/Object.<init>
+  0 311403 4789115001152                                <- java/lang/Object.<init>
+  0 311403 4789115001158                                -> java/nio/Buffer.limit
+  0 311403 4789115001165                                <- java/nio/Buffer.limit
+  0 311403 4789115001171                                -> java/nio/Buffer.position
+  0 311403 4789115001178                                <- java/nio/Buffer.position
+  0 311403 4789115001185                              <- java/nio/Buffer.<init>
+  0 311403 4789115001191                            <- java/nio/CharBuffer.<init>
+  0 311403 4789115001198                          <- java/nio/HeapCharBuffer.<init>
+  0 311403 4789115001204                        <- java/nio/CharBuffer.wrap
+  0 311403 4789115001210                        -> java/nio/Buffer.hasRemaining
+  0 311403 4789115001217                        <- java/nio/Buffer.hasRemaining
+  0 311403 4789115001223                        -> java/nio/charset/CharsetEncoder.encode
+  0 311403 4789115001230                          -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789115001236                            -> java/nio/CharBuffer.hasArray
+  0 311403 4789115001243                            <- java/nio/CharBuffer.hasArray
+  0 311403 4789115001249                            -> java/nio/ByteBuffer.hasArray
+  0 311403 4789115001256                            <- java/nio/ByteBuffer.hasArray
+  0 311403 4789115001262                            -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789115001269                              -> java/nio/CharBuffer.array
+  0 311403 4789115001276                              <- java/nio/CharBuffer.array
+  0 311403 4789115001281                              -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789115001288                              <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789115001294                              -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789115001302                              <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789115001308                              -> java/nio/ByteBuffer.array
+  0 311403 4789115001315                              <- java/nio/ByteBuffer.array
+  0 311403 4789115001320                              -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115001328                              <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115001334                              -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115001341                              <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115001347                              -> java/nio/CharBuffer.arrayOffset
+  0 311403 4789115001354                              <- java/nio/CharBuffer.arrayOffset
+  0 311403 4789115001360                              -> java/nio/Buffer.position
+  0 311403 4789115001367                              <- java/nio/Buffer.position
+  0 311403 4789115001373                              -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115001380                              <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115001386                              -> java/nio/Buffer.position
+  0 311403 4789115001393                              <- java/nio/Buffer.position
+  0 311403 4789115001400                            <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311403 4789115001407                          <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311403 4789115001413                          -> java/nio/charset/CoderResult.isOverflow
+  0 311403 4789115001420                          <- java/nio/charset/CoderResult.isOverflow
+  0 311403 4789115001426                          -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789115001433                          <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789115001440                        <- java/nio/charset/CharsetEncoder.encode
+  0 311403 4789115001446                        -> java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789115001453                        <- java/nio/charset/CoderResult.isUnderflow
+  0 311403 4789115001459                        -> java/nio/Buffer.remaining
+  0 311403 4789115001466                        <- java/nio/Buffer.remaining
+  0 311403 4789115001473                      <- sun/nio/cs/StreamEncoder.implWrite
+  0 311403 4789115001480                    <- sun/nio/cs/StreamEncoder.write
+  0 311403 4789115001487                  <- java/io/OutputStreamWriter.write
+  0 311403 4789115001493                <- java/io/BufferedWriter.flushBuffer
+  0 311403 4789115001499                -> java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789115001506                  -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789115001512                    -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789115001519                      -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789115001525                        -> java/nio/Buffer.flip
+  0 311403 4789115001532                        <- java/nio/Buffer.flip
+  0 311403 4789115001538                        -> java/nio/ByteBuffer.array
+  0 311403 4789115001545                        <- java/nio/ByteBuffer.array
+  0 311403 4789115001551                        -> java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115001558                        <- java/nio/ByteBuffer.arrayOffset
+  0 311403 4789115001564                        -> java/io/PrintStream.write
+  0 311403 4789115001570                          -> java/io/PrintStream.ensureOpen
+  0 311403 4789115001577                          <- java/io/PrintStream.ensureOpen
+  0 311403 4789115001583                          -> java/io/BufferedOutputStream.write
+  0 311403 4789115001590                            -> java/lang/System.arraycopy
+  0 311403 4789115001597                            <- java/lang/System.arraycopy
+  0 311403 4789115001604                          <- java/io/BufferedOutputStream.write
+  0 311403 4789115001610                          -> java/io/BufferedOutputStream.flush
+  0 311403 4789115001621                            -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789115001628                              -> java/io/FileOutputStream.write
+  0 311403 4789115001634                                -> java/io/FileOutputStream.writeBytes
+  0 311403 4789115001652                                <- java/io/FileOutputStream.writeBytes
+  0 311403 4789115001706                              <- java/io/FileOutputStream.write
+  0 311403 4789115001713                            <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789115001720                          <- java/io/BufferedOutputStream.flush
+  0 311403 4789115001727                        <- java/io/PrintStream.write
+  0 311403 4789115001733                        -> java/nio/Buffer.clear
+  0 311403 4789115001740                        <- java/nio/Buffer.clear
+  0 311403 4789115001747                      <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311403 4789115001753                    <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311403 4789115001760                  <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311403 4789115001767                <- java/io/OutputStreamWriter.flushBuffer
+  0 311403 4789115001773                -> java/io/BufferedOutputStream.flush
+  0 311403 4789115001779                  -> java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789115001787                  <- java/io/BufferedOutputStream.flushBuffer
+  0 311403 4789115001794                <- java/io/BufferedOutputStream.flush
+  0 311403 4789115001801              <- java/io/PrintStream.newLine
+  0 311403 4789115001807            <- java/io/PrintStream.println
+  0 311403 4789115001813            -> java/lang/Thread.currentThread
+  0 311403 4789115001821            <- java/lang/Thread.currentThread
+  0 311403 4789115001827            -> java/lang/Thread.sleep
+  0 311403 4789116010060            <- java/lang/Thread.sleep
+  0 311403 4789116010073          <- Func_abc.func_c
+  0 311403 4789116010080        <- Func_abc.func_b
+  0 311403 4789116010086      <- Func_abc.func_a
+  0 311403 4789116010093    <- Func_abc.main
+  0 311403 4789116010118    -> java/lang/Thread.exit
+  0 311403 4789116010145      -> java/lang/ThreadGroup.remove
+  0 311403 4789116010160        -> java/lang/System.arraycopy
+  0 311403 4789116010169        <- java/lang/System.arraycopy
+  0 311403 4789116010178        -> java/lang/Object.notifyAll
+  0 311403 4789116010192        <- java/lang/Object.notifyAll
+  0 311403 4789116010199      <- java/lang/ThreadGroup.remove
+  0 311403 4789116010212    <- java/lang/Thread.exit
+  0 311403 4789116010380        -> java/lang/Thread.<init>
+  0 311403 4789116010388          -> java/lang/Object.<init>
+  0 311403 4789116010395          <- java/lang/Object.<init>
+  0 311403 4789116010402          -> java/lang/Object.<init>
+  0 311403 4789116010409          <- java/lang/Object.<init>
+  0 311403 4789116010415          -> java/lang/Thread.init
+  0 311403 4789116010422            -> java/lang/Thread.currentThread
+  0 311403 4789116010430            <- java/lang/Thread.currentThread
+  0 311403 4789116010436            -> java/lang/System.getSecurityManager
+  0 311403 4789116010444            <- java/lang/System.getSecurityManager
+  0 311403 4789116010450            -> java/lang/ThreadGroup.checkAccess
+  0 311403 4789116010457              -> java/lang/System.getSecurityManager
+  0 311403 4789116010464              <- java/lang/System.getSecurityManager
+  0 311403 4789116010471            <- java/lang/ThreadGroup.checkAccess
+  0 311403 4789116010477            -> java/lang/ThreadGroup.addUnstarted
+  0 311403 4789116010484            <- java/lang/ThreadGroup.addUnstarted
+  0 311403 4789116010491            -> java/lang/String.toCharArray
+  0 311403 4789116010499              -> java/lang/String.getChars
+  0 311403 4789116010506                -> java/lang/System.arraycopy
+  0 311403 4789116010514                <- java/lang/System.arraycopy
+  0 311403 4789116010521              <- java/lang/String.getChars
+  0 311403 4789116010527            <- java/lang/String.toCharArray
+  0 311403 4789116010534            -> java/lang/Thread.getContextClassLoader
+  0 311403 4789116010541            <- java/lang/Thread.getContextClassLoader
+  0 311403 4789116010548            -> java/security/AccessController.getContext
+  0 311403 4789116010554              -> java/security/AccessController.getStackAccessControlContext
+  0 311403 4789116010569              <- java/security/AccessController.getStackAccessControlContext
+  0 311403 4789116010576              -> java/security/AccessControlContext.optimize
+  0 311403 4789116010583                -> java/security/AccessController.getInheritedAccessControlContext
+  0 311403 4789116010591                <- java/security/AccessController.getInheritedAccessControlContext
+  0 311403 4789116010599              <- java/security/AccessControlContext.optimize
+  0 311403 4789116010606            <- java/security/AccessController.getContext
+  0 311403 4789116010612            -> java/lang/Thread.setPriority
+  0 311403 4789116010618              -> java/lang/Thread.checkAccess
+  0 311403 4789116010625                -> java/lang/System.getSecurityManager
+  0 311403 4789116010632                <- java/lang/System.getSecurityManager
+  0 311403 4789116010639              <- java/lang/Thread.checkAccess
+  0 311403 4789116010645              -> java/lang/Thread.setPriority0
+  0 311403 4789116010664              <- java/lang/Thread.setPriority0
+  0 311403 4789116010671            <- java/lang/Thread.setPriority
+  0 311403 4789116010678            -> java/lang/Thread.nextThreadID
+  0 311403 4789116010686            <- java/lang/Thread.nextThreadID
+  0 311403 4789116010693    <- java/lang/Thread.init
+  0 311403 4789116010700    <- java/lang/Thread.<init>
+  0 311403 4789116010707    -> java/lang/ThreadGroup.add
+  0 311403 4789116010716    <- java/lang/ThreadGroup.add
+  0 311403 4789116010729    -> java/lang/Shutdown.shutdown
+  0 311403 4789116010740      -> java/lang/Shutdown.sequence
+  0 311403 4789116010748        -> java/lang/Shutdown.runHooks
+  0 311403 4789116010758          -> java/util/AbstractList.iterator
+  0 311403 4789116011022            -> java/util/AbstractList$Itr.<init>
+  0 311403 4789116011032              -> java/util/AbstractList$Itr.<init>
+  0 311403 4789116011042                -> java/lang/Object.<init>
+  0 311403 4789116011050                <- java/lang/Object.<init>
+  0 311403 4789116011062              <- java/util/AbstractList$Itr.<init>
+  0 311403 4789116011069            <- java/util/AbstractList$Itr.<init>
+  0 311403 4789116011076          <- java/util/AbstractList.iterator
+  0 311403 4789116011087          -> java/util/AbstractList$Itr.hasNext
+  0 311403 4789116011099          <- java/util/AbstractList$Itr.hasNext
+  0 311403 4789116011107          -> java/util/AbstractList$Itr.next
+  0 311403 4789116011115            -> java/util/AbstractList$Itr.checkForComodification
+  0 311403 4789116011123            <- java/util/AbstractList$Itr.checkForComodification
+  0 311403 4789116011131            -> java/util/ArrayList.get
+  0 311403 4789116011138              -> java/util/ArrayList.RangeCheck
+  0 311403 4789116011145              <- java/util/ArrayList.RangeCheck
+  0 311403 4789116011152            <- java/util/ArrayList.get
+  0 311403 4789116011159          <- java/util/AbstractList$Itr.next
+  0 311403 4789116011170          -> java/io/Console$1$1.run
+  0 311403 4789116011180            -> java/io/Console.access$600
+  0 311403 4789116011189            <- java/io/Console.access$600
+  0 311403 4789116011196          <- java/io/Console$1$1.run
+  0 311403 4789116011202          -> java/util/AbstractList$Itr.hasNext
+  0 311403 4789116011209          <- java/util/AbstractList$Itr.hasNext
+  0 311403 4789116011215          -> java/util/AbstractList$Itr.next
+  0 311403 4789116011221            -> java/util/AbstractList$Itr.checkForComodification
+  0 311403 4789116011229            <- java/util/AbstractList$Itr.checkForComodification
+  0 311403 4789116011235            -> java/util/ArrayList.get
+  0 311403 4789116011241              -> java/util/ArrayList.RangeCheck
+  0 311403 4789116011248              <- java/util/ArrayList.RangeCheck
+  0 311403 4789116011255            <- java/util/ArrayList.get
+  0 311403 4789116011262          <- java/util/AbstractList$Itr.next
+  0 311403 4789116011268          -> java/lang/ApplicationShutdownHooks.run
+  0 311403 4789116011280            -> java/util/IdentityHashMap.keySet
+  0 311403 4789116011442              -> java/util/IdentityHashMap$KeySet.<init>
+  0 311403 4789116011452                -> java/util/IdentityHashMap$KeySet.<init>
+  0 311403 4789116011462                  -> java/util/AbstractSet.<init>
+  0 311403 4789116011469                    -> java/util/AbstractCollection.<init>
+  0 311403 4789116011475                      -> java/lang/Object.<init>
+  0 311403 4789116011483                      <- java/lang/Object.<init>
+  0 311403 4789116011490                    <- java/util/AbstractCollection.<init>
+  0 311403 4789116011497                  <- java/util/AbstractSet.<init>
+  0 311403 4789116011503                <- java/util/IdentityHashMap$KeySet.<init>
+  0 311403 4789116011510              <- java/util/IdentityHashMap$KeySet.<init>
+  0 311403 4789116011528            <- java/util/IdentityHashMap.keySet
+  0 311403 4789116011538            -> java/util/IdentityHashMap$KeySet.iterator
+  0 311403 4789116011727              -> java/util/IdentityHashMap$KeyIterator.<init>
+  0 311403 4789116011737                -> java/util/IdentityHashMap$KeyIterator.<init>
+  0 311403 4789116011748                  -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311403 4789116011757                    -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311403 4789116011766                      -> java/lang/Object.<init>
+  0 311403 4789116011774                      <- java/lang/Object.<init>
+  0 311403 4789116011784                      -> java/util/IdentityHashMap.access$000
+  0 311403 4789116011793                      <- java/util/IdentityHashMap.access$000
+  0 311403 4789116011803                      -> java/util/IdentityHashMap.access$200
+  0 311403 4789116011811                      <- java/util/IdentityHashMap.access$200
+  0 311403 4789116011821                    <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311403 4789116011828                  <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311403 4789116011835                <- java/util/IdentityHashMap$KeyIterator.<init>
+  0 311403 4789116011842              <- java/util/IdentityHashMap$KeyIterator.<init>
+  0 311403 4789116011849            <- java/util/IdentityHashMap$KeySet.iterator
+  0 311403 4789116011858            -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+  0 311403 4789116011866            <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+  0 311403 4789116011873            -> java/util/IdentityHashMap$KeySet.iterator
+  0 311403 4789116011879              -> java/util/IdentityHashMap$KeyIterator.<init>
+  0 311403 4789116011886                -> java/util/IdentityHashMap$KeyIterator.<init>
+  0 311403 4789116011892                  -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311403 4789116011899                    -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311403 4789116011905                      -> java/lang/Object.<init>
+  0 311403 4789116011912                      <- java/lang/Object.<init>
+  0 311403 4789116011919                    <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311403 4789116011926                  <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311403 4789116011934                <- java/util/IdentityHashMap$KeyIterator.<init>
+  0 311403 4789116011940              <- java/util/IdentityHashMap$KeyIterator.<init>
+  0 311403 4789116011947            <- java/util/IdentityHashMap$KeySet.iterator
+  0 311403 4789116011953            -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+  0 311403 4789116011961            <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+  0 311403 4789116011968          <- java/lang/ApplicationShutdownHooks.run
+  0 311403 4789116011974          -> java/util/AbstractList$Itr.hasNext
+  0 311403 4789116011982          <- java/util/AbstractList$Itr.hasNext
+  0 311403 4789116011988          -> java/util/AbstractList$Itr.next
+  0 311403 4789116011994            -> java/util/AbstractList$Itr.checkForComodification
+  0 311403 4789116012002            <- java/util/AbstractList$Itr.checkForComodification
+  0 311403 4789116012008            -> java/util/ArrayList.get
+  0 311403 4789116012014              -> java/util/ArrayList.RangeCheck
+  0 311403 4789116012021              <- java/util/ArrayList.RangeCheck
+  0 311403 4789116012028            <- java/util/ArrayList.get
+  0 311403 4789116012035          <- java/util/AbstractList$Itr.next
+  0 311403 4789116012041          -> java/io/File$1.run
+  0 311403 4789116012187            -> java/io/DeleteOnExitHook.<clinit>
+  0 311403 4789116012333              -> java/util/LinkedHashSet.<init>
+  0 311403 4789116012343                -> java/util/HashSet.<init>
+  0 311403 4789116012350                  -> java/util/AbstractSet.<init>
+  0 311403 4789116012356                    -> java/util/AbstractCollection.<init>
+  0 311403 4789116012362                      -> java/lang/Object.<init>
+  0 311403 4789116012370                      <- java/lang/Object.<init>
+  0 311403 4789116012377                    <- java/util/AbstractCollection.<init>
+  0 311403 4789116012384                  <- java/util/AbstractSet.<init>
+  0 311403 4789116012394                  -> java/util/LinkedHashMap.<init>
+  0 311403 4789116012404                    -> java/util/HashMap.<init>
+  0 311403 4789116012410                      -> java/util/AbstractMap.<init>
+  0 311403 4789116012417                        -> java/lang/Object.<init>
+  0 311403 4789116012424                        <- java/lang/Object.<init>
+  0 311403 4789116012431                      <- java/util/AbstractMap.<init>
+  0 311403 4789116012438                      -> java/lang/Float.isNaN
+  0 311403 4789116012445                      <- java/lang/Float.isNaN
+  0 311403 4789116012456                      -> java/util/LinkedHashMap.init
+  0 311403 4789116012463                        -> java/util/LinkedHashMap$Entry.<init>
+  0 311403 4789116012469                          -> java/util/HashMap$Entry.<init>
+  0 311403 4789116012476                            -> java/lang/Object.<init>
+  0 311403 4789116012482                            <- java/lang/Object.<init>
+  0 311403 4789116012489                          <- java/util/HashMap$Entry.<init>
+  0 311403 4789116012496                        <- java/util/LinkedHashMap$Entry.<init>
+  0 311403 4789116012503                      <- java/util/LinkedHashMap.init
+  0 311403 4789116012510                    <- java/util/HashMap.<init>
+  0 311403 4789116012516                  <- java/util/LinkedHashMap.<init>
+  0 311403 4789116012523                <- java/util/HashSet.<init>
+  0 311403 4789116012529              <- java/util/LinkedHashSet.<init>
+  0 311403 4789116012538            <- java/io/DeleteOnExitHook.<clinit>
+  0 311403 4789116012547            -> java/io/DeleteOnExitHook.hook
+  0 311403 4789116012556              -> java/io/DeleteOnExitHook.<init>
+  0 311403 4789116012565                -> java/lang/Object.<init>
+  0 311403 4789116012572                <- java/lang/Object.<init>
+  0 311403 4789116012579              <- java/io/DeleteOnExitHook.<init>
+  0 311403 4789116012586            <- java/io/DeleteOnExitHook.hook
+  0 311403 4789116012594            -> java/io/DeleteOnExitHook.run
+  0 311403 4789116012605              -> java/util/ArrayList.<init>
+  0 311403 4789116012612                -> java/util/AbstractList.<init>
+  0 311403 4789116012618                  -> java/util/AbstractCollection.<init>
+  0 311403 4789116012624                    -> java/lang/Object.<init>
+  0 311403 4789116012631                    <- java/lang/Object.<init>
+  0 311403 4789116012638                  <- java/util/AbstractCollection.<init>
+  0 311403 4789116012645                <- java/util/AbstractList.<init>
+  0 311403 4789116012654                -> java/util/AbstractCollection.toArray
+  0 311403 4789116012664                  -> java/util/HashSet.size
+  0 311403 4789116012674                  <- java/util/HashSet.size
+  0 311403 4789116012682                  -> java/util/HashSet.iterator
+  0 311403 4789116012691                    -> java/util/HashMap.keySet
+  0 311403 4789116012782                      -> java/util/HashMap$KeySet.<init>
+  0 311403 4789116012791                        -> java/util/HashMap$KeySet.<init>
+  0 311403 4789116012801                          -> java/util/AbstractSet.<init>
+  0 311403 4789116012807                            -> java/util/AbstractCollection.<init>
+  0 311403 4789116012814                              -> java/lang/Object.<init>
+  0 311403 4789116012821                              <- java/lang/Object.<init>
+  0 311403 4789116012828                            <- java/util/AbstractCollection.<init>
+  0 311403 4789116012835                          <- java/util/AbstractSet.<init>
+  0 311403 4789116012841                        <- java/util/HashMap$KeySet.<init>
+  0 311403 4789116012848                      <- java/util/HashMap$KeySet.<init>
+  0 311403 4789116012855                    <- java/util/HashMap.keySet
+  0 311403 4789116012864                    -> java/util/HashMap$KeySet.iterator
+  0 311403 4789116012874                      -> java/util/LinkedHashMap.newKeyIterator
+  0 311403 4789116013056                        -> java/util/LinkedHashMap$KeyIterator.<init>
+  0 311403 4789116013066                          -> java/util/LinkedHashMap$KeyIterator.<init>
+  0 311403 4789116013076                            -> java/util/LinkedHashMap$LinkedHashIterator.<init>
+  0 311403 4789116013085                              -> java/util/LinkedHashMap$LinkedHashIterator.<init>
+  0 311403 4789116013095                                -> java/lang/Object.<init>
+  0 311403 4789116013102                                <- java/lang/Object.<init>
+  0 311403 4789116013117                              <- java/util/LinkedHashMap$LinkedHashIterator.<init>
+  0 311403 4789116013125                            <- java/util/LinkedHashMap$LinkedHashIterator.<init>
+  0 311403 4789116013132                          <- java/util/LinkedHashMap$KeyIterator.<init>
+  0 311403 4789116013138                        <- java/util/LinkedHashMap$KeyIterator.<init>
+  0 311403 4789116013145                      <- java/util/LinkedHashMap.newKeyIterator
+  0 311403 4789116013152                    <- java/util/HashMap$KeySet.iterator
+  0 311403 4789116013159                  <- java/util/HashSet.iterator
+  0 311403 4789116013168                  -> java/util/LinkedHashMap$LinkedHashIterator.hasNext
+  0 311403 4789116013176                  <- java/util/LinkedHashMap$LinkedHashIterator.hasNext
+  0 311403 4789116013183                <- java/util/AbstractCollection.toArray
+  0 311403 4789116013190                -> java/lang/Object.getClass
+  0 311403 4789116013198                <- java/lang/Object.getClass
+  0 311403 4789116013206              <- java/util/ArrayList.<init>
+  0 311403 4789116013216              -> java/util/Collections.reverse
+  0 311403 4789116013228              <- java/util/Collections.reverse
+  0 311403 4789116013236              -> java/util/AbstractList.iterator
+  0 311403 4789116013243                -> java/util/AbstractList$Itr.<init>
+  0 311403 4789116013250                  -> java/util/AbstractList$Itr.<init>
+  0 311403 4789116013256                    -> java/lang/Object.<init>
+  0 311403 4789116013263                    <- java/lang/Object.<init>
+  0 311403 4789116013270                  <- java/util/AbstractList$Itr.<init>
+  0 311403 4789116013276                <- java/util/AbstractList$Itr.<init>
+  0 311403 4789116013283              <- java/util/AbstractList.iterator
+  0 311403 4789116013292              -> java/util/AbstractList$Itr.hasNext
+  0 311403 4789116013299              <- java/util/AbstractList$Itr.hasNext
+  0 311403 4789116013306            <- java/io/DeleteOnExitHook.run
+  0 311403 4789116013313          <- java/io/File$1.run
+  0 311403 4789116013319          -> java/util/AbstractList$Itr.hasNext
+  0 311403 4789116013326          <- java/util/AbstractList$Itr.hasNext
+  0 311403 4789116013333        <- java/lang/Shutdown.runHooks
+  0 311403 4789116013342      <- java/lang/Shutdown.sequence
+  0 311403 4789116013349    <- java/lang/Shutdown.shutdown
+
+The fourth column is indented by 2 spaces to show when a new method begins.
+This shows what is calling what.
+
+The TIME(us) column shows time from boot in microseconds.
+
+If the output looks strange, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+I truncated the above output by 22800 lines so that it would fit. To make
+sense of the output, try searching for "Func_abc" or using grep. The
+lines were,
+
+  0 311403 4789112982182    -> Func_abc.main
+  0 311403 4789112982193      -> Func_abc.func_a
+  0 311403 4789113990080        -> Func_abc.func_b
+  0 311403 4789115000081          -> Func_abc.func_c
+  0 311403 4789116010073          <- Func_abc.func_c
+  0 311403 4789116010080        <- Func_abc.func_b
+  0 311403 4789116010086      <- Func_abc.func_a
+  0 311403 4789116010093    <- Func_abc.main
+
+You can also use the j_classflow.d script to only trace one class.
+
+If you see "drops" warnings, see the Notes/ALLjava_notes.txt file for details.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_flowtime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_flowtime_example.txt
new file mode 100644
index 0000000..22c6a61
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_flowtime_example.txt
@@ -0,0 +1,1287 @@
+The following are examples of j_flowtime.d.
+
+This is a simple script to trace the timing and the not-so-simple flow of 
+Java methods and classes.  Here it traces the example program, 
+Code/Java/func_abc
+
+# j_flowtime.d
+  C    PID/TID   TIME(us)         DELTA(us) -- CLASS.METHOD
+  0 311481/2     4790256870903            2 -> java/lang/Object.<clinit>
+  0 311481/2     4790256870950           46   -> java/lang/Object.registerNatives
+  0 311481/2     4790256871090          140   <- java/lang/Object.registerNatives
+  0 311481/2     4790256871109           18 <- java/lang/Object.<clinit>
+  0 311481/2     4790256871121           12 -> java/lang/String.<clinit>
+  0 311481/2     4790256871518          397   -> java/lang/String$CaseInsensitiveComparator.<init>
+  0 311481/2     4790256871531           12     -> java/lang/String$CaseInsensitiveComparator.<init>
+  0 311481/2     4790256871541           10       -> java/lang/Object.<init>
+  0 311481/2     4790256871549            7       <- java/lang/Object.<init>
+  0 311481/2     4790256871558            8     <- java/lang/String$CaseInsensitiveComparator.<init>
+  0 311481/2     4790256871566            7   <- java/lang/String$CaseInsensitiveComparator.<init>
+  0 311481/2     4790256871575            9 <- java/lang/String.<clinit>
+  0 311481/2     4790256871644           68 -> java/lang/System.<clinit>
+  0 311481/2     4790256871656           11   -> java/lang/System.registerNatives
+  0 311481/2     4790256871675           18   <- java/lang/System.registerNatives
+  0 311481/2     4790256871686           10   -> java/lang/System.nullInputStream
+  0 311481/2     4790256871695            9     -> java/lang/System.currentTimeMillis
+  0 311481/2     4790256871705           10     <- java/lang/System.currentTimeMillis
+  0 311481/2     4790256871714            8   <- java/lang/System.nullInputStream
+  0 311481/2     4790256871726           11   -> java/lang/System.nullPrintStream
+  0 311481/2     4790256871734            7     -> java/lang/System.currentTimeMillis
+  0 311481/2     4790256871741            7     <- java/lang/System.currentTimeMillis
+  0 311481/2     4790256871749            7   <- java/lang/System.nullPrintStream
+  0 311481/2     4790256871758            9   -> java/lang/System.nullPrintStream
+  0 311481/2     4790256871766            7     -> java/lang/System.currentTimeMillis
+  0 311481/2     4790256871773            7     <- java/lang/System.currentTimeMillis
+  0 311481/2     4790256871781            7   <- java/lang/System.nullPrintStream
+  0 311481/2     4790256871792           10 <- java/lang/System.<clinit>
+  0 311481/2     4790256871870           78 -> java/lang/ThreadGroup.<init>
+  0 311481/2     4790256871881           10   -> java/lang/Object.<init>
+  0 311481/2     4790256871889            7   <- java/lang/Object.<init>
+  0 311481/2     4790256871906           17 <- java/lang/ThreadGroup.<init>
+  0 311481/2     4790256871918           11 -> java/lang/ThreadGroup.<init>
+  0 311481/2     4790256871926            7   -> java/lang/Object.<init>
+  0 311481/2     4790256871933            7   <- java/lang/Object.<init>
+  0 311481/2     4790256871945           12   -> java/lang/ThreadGroup.checkAccess
+  0 311481/2     4790256871955           10     -> java/lang/System.getSecurityManager
+  0 311481/2     4790256871964            8     <- java/lang/System.getSecurityManager
+  0 311481/2     4790256871972            8   <- java/lang/ThreadGroup.checkAccess
+  0 311481/2     4790256871984           12   -> java/lang/ThreadGroup.add
+  0 311481/2     4790256872006           21   <- java/lang/ThreadGroup.add
+  0 311481/2     4790256872014            8 <- java/lang/ThreadGroup.<init>
+  0 311481/2     4790256872201          187 -> java/lang/Thread.<clinit>
+  0 311481/2     4790256872213           12   -> java/lang/Thread.registerNatives
+  0 311481/2     4790256872239           25   <- java/lang/Thread.registerNatives
+  0 311481/2     4790256872606          367   -> java/lang/RuntimePermission.<init>
+  0 311481/2     4790256872618           11     -> java/security/BasicPermission.<init>
+  0 311481/2     4790256872628            9       -> java/security/Permission.<init>
+  0 311481/2     4790256872637            9         -> java/lang/Object.<init>
+  0 311481/2     4790256872645            7         <- java/lang/Object.<init>
+  0 311481/2     4790256872656           10       <- java/security/Permission.<init>
+  0 311481/2     4790256872666           10       -> java/security/BasicPermission.init
+  0 311481/2     4790256872677           11         -> java/lang/String.length
+  0 311481/2     4790256872686            8         <- java/lang/String.length
+  0 311481/2     4790256872697           11         -> java/lang/String.charAt
+  0 311481/2     4790256872707           10         <- java/lang/String.charAt
+  0 311481/2     4790256872720           12         -> java/lang/String.equals
+  0 311481/2     4790256872728            8         <- java/lang/String.equals
+  0 311481/2     4790256872737            9       <- java/security/BasicPermission.init
+  0 311481/2     4790256872745            7     <- java/security/BasicPermission.<init>
+  0 311481/2     4790256872753            7   <- java/lang/RuntimePermission.<init>
+  0 311481/2     4790256873195          442   -> sun/misc/SoftCache.<init>
+  0 311481/2     4790256873208           12     -> java/util/AbstractMap.<init>
+  0 311481/2     4790256873218            9       -> java/lang/Object.<init>
+  0 311481/2     4790256873226            7       <- java/lang/Object.<init>
+  0 311481/2     4790256873238           11     <- java/util/AbstractMap.<init>
+  0 311481/2     4790256873371          133     -> java/lang/ref/ReferenceQueue.<clinit>
+  0 311481/2     4790256873443           72       -> java/lang/ref/ReferenceQueue$Null.<init>
+  0 311481/2     4790256873454           10         -> java/lang/ref/ReferenceQueue$Null.<init>
+  0 311481/2     4790256873464            9           -> java/lang/ref/ReferenceQueue.<init>
+  0 311481/2     4790256873474            9             -> java/lang/Object.<init>
+  0 311481/2     4790256873481            7             <- java/lang/Object.<init>
+  0 311481/2     4790256873542           60             -> java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311481/2     4790256873553           10               -> java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311481/2     4790256873562            9                 -> java/lang/Object.<init>
+  0 311481/2     4790256873570            7                 <- java/lang/Object.<init>
+  0 311481/2     4790256873578            7               <- java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311481/2     4790256873585            7             <- java/lang/ref/ReferenceQueue$Lock.<init>
+  0 311481/2     4790256873597           11           <- java/lang/ref/ReferenceQueue.<init>
+  0 311481/2     4790256873604            7         <- java/lang/ref/ReferenceQueue$Null.<init>
+  0 311481/2     4790256873612            7       <- java/lang/ref/ReferenceQueue$Null.<init>
+  0 311481/2     4790256873622            9       -> java/lang/ref/ReferenceQueue$Null.<init>
+  0 311481/2     4790256873629            7         -> java/lang/ref/ReferenceQueue$Null.<init>
+  0 311481/2     4790256873636            7           -> java/lang/ref/ReferenceQueue.<init>
+  0 311481/2     4790256873644            7             -> java/lang/Object.<init>
+  0 311481/2     4790256873651            6             <- java/lang/Object.<init>
+  0 311481/2     4790256873659            7             -> java/lang/ref/ReferenceQueue$Lock.<init>
+[... 22800 lines truncated ...]
+  0 311481/2     4790257387424            7       <- java/util/HashMap.indexFor
+  0 311481/2     4790257387432            8     <- java/util/HashMap.put
+  0 311481/2     4790257387440            7   <- java/util/HashSet.add
+  0 311481/2     4790257387447            7 <- java/lang/ClassLoader.checkPackageAccess
+  0 311481/2     4790257387473           26 -> java/lang/reflect/Method.getModifiers
+  0 311481/2     4790257387486           12 <- java/lang/reflect/Method.getModifiers
+  0 311481/2     4790257387500           14 -> Func_abc.main
+  0 311481/2     4790257387512           11   -> Func_abc.func_a
+  0 311481/2     4790257387522            9     -> java/lang/ClassLoader.checkPackageAccess
+  0 311481/2     4790257387530            7       -> java/lang/System.getSecurityManager
+  0 311481/2     4790257387537            7       <- java/lang/System.getSecurityManager
+  0 311481/2     4790257387545            8       -> java/util/HashSet.add
+  0 311481/2     4790257387552            7         -> java/util/HashMap.put
+  0 311481/2     4790257387559            7           -> java/lang/Object.hashCode
+  0 311481/2     4790257387567            7           <- java/lang/Object.hashCode
+  0 311481/2     4790257387574            7           -> java/util/HashMap.hash
+  0 311481/2     4790257387581            7           <- java/util/HashMap.hash
+  0 311481/2     4790257387589            7           -> java/util/HashMap.indexFor
+  0 311481/2     4790257387596            7           <- java/util/HashMap.indexFor
+  0 311481/2     4790257387604            8         <- java/util/HashMap.put
+  0 311481/2     4790257387611            7       <- java/util/HashSet.add
+  0 311481/2     4790257387619            7     <- java/lang/ClassLoader.checkPackageAccess
+  0 311481/2     4790257387683           64     -> java/lang/ClassLoader.loadClassInternal
+  0 311481/2     4790257387691            8       -> java/lang/ClassLoader.loadClass
+  0 311481/2     4790257387699            7         -> sun/misc/Launcher$AppClassLoader.loadClass
+  0 311481/2     4790257387706            7           -> java/lang/String.lastIndexOf
+  0 311481/2     4790257387713            7             -> java/lang/String.lastIndexOf
+  0 311481/2     4790257387722            8             <- java/lang/String.lastIndexOf
+  0 311481/2     4790257387729            7           <- java/lang/String.lastIndexOf
+  0 311481/2     4790257387737            7           -> java/lang/System.getSecurityManager
+  0 311481/2     4790257387760           22           <- java/lang/System.getSecurityManager
+  0 311481/2     4790257387768            7           -> java/lang/ClassLoader.loadClass
+  0 311481/2     4790257387775            7             -> java/lang/ClassLoader.findLoadedClass
+  0 311481/2     4790257387782            7               -> java/lang/ClassLoader.check
+  0 311481/2     4790257387789            7               <- java/lang/ClassLoader.check
+  0 311481/2     4790257387797            7               -> java/lang/ClassLoader.checkName
+  0 311481/2     4790257387805            7                 -> java/lang/String.indexOf
+  0 311481/2     4790257387812            7                   -> java/lang/String.indexOf
+  0 311481/2     4790257387820            8                   <- java/lang/String.indexOf
+  0 311481/2     4790257387828            7                 <- java/lang/String.indexOf
+  0 311481/2     4790257387835            7                 -> sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257387843            7                 <- sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257387850            7                 -> java/lang/String.charAt
+  0 311481/2     4790257387857            7                 <- java/lang/String.charAt
+  0 311481/2     4790257387865            7               <- java/lang/ClassLoader.checkName
+  0 311481/2     4790257387873            7               -> java/lang/ClassLoader.findLoadedClass0
+  0 311481/2     4790257387883            9               <- java/lang/ClassLoader.findLoadedClass0
+  0 311481/2     4790257387890            7             <- java/lang/ClassLoader.findLoadedClass
+  0 311481/2     4790257387899            8             -> java/lang/ClassLoader.loadClass
+  0 311481/2     4790257387906            7               -> java/lang/ClassLoader.findLoadedClass
+  0 311481/2     4790257387913            7                 -> java/lang/ClassLoader.check
+  0 311481/2     4790257387920            7                 <- java/lang/ClassLoader.check
+  0 311481/2     4790257387928            7                 -> java/lang/ClassLoader.checkName
+  0 311481/2     4790257387935            7                   -> java/lang/String.indexOf
+  0 311481/2     4790257387942            7                     -> java/lang/String.indexOf
+  0 311481/2     4790257387951            8                     <- java/lang/String.indexOf
+  0 311481/2     4790257387958            7                   <- java/lang/String.indexOf
+  0 311481/2     4790257387966            7                   -> sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257387973            7                   <- sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257387981            7                   -> java/lang/String.charAt
+  0 311481/2     4790257387988            7                   <- java/lang/String.charAt
+  0 311481/2     4790257387995            7                 <- java/lang/ClassLoader.checkName
+  0 311481/2     4790257388003            7                 -> java/lang/ClassLoader.findLoadedClass0
+  0 311481/2     4790257388012            8                 <- java/lang/ClassLoader.findLoadedClass0
+  0 311481/2     4790257388020            7               <- java/lang/ClassLoader.findLoadedClass
+  0 311481/2     4790257388028            7               -> java/lang/ClassLoader.findBootstrapClass0
+  0 311481/2     4790257388035            7                 -> java/lang/ClassLoader.check
+  0 311481/2     4790257388042            7                 <- java/lang/ClassLoader.check
+  0 311481/2     4790257388050            7                 -> java/lang/ClassLoader.checkName
+  0 311481/2     4790257388057            7                   -> java/lang/String.indexOf
+  0 311481/2     4790257388064            7                     -> java/lang/String.indexOf
+  0 311481/2     4790257388072            8                     <- java/lang/String.indexOf
+  0 311481/2     4790257388080            7                   <- java/lang/String.indexOf
+  0 311481/2     4790257388087            7                   -> sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257388094            7                   <- sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257388102            7                   -> java/lang/String.charAt
+  0 311481/2     4790257388109            7                   <- java/lang/String.charAt
+  0 311481/2     4790257388117            7                 <- java/lang/ClassLoader.checkName
+  0 311481/2     4790257388124            7                 -> java/lang/ClassLoader.findBootstrapClass
+  0 311481/2     4790257388134            9                 <- java/lang/ClassLoader.findBootstrapClass
+  0 311481/2     4790257388142            8               <- java/lang/ClassLoader.findBootstrapClass0
+  0 311481/2     4790257388150            8             <- java/lang/ClassLoader.loadClass
+  0 311481/2     4790257388158            7           <- java/lang/ClassLoader.loadClass
+  0 311481/2     4790257388166            7         <- sun/misc/Launcher$AppClassLoader.loadClass
+  0 311481/2     4790257388173            7       <- java/lang/ClassLoader.loadClass
+  0 311481/2     4790257388181            7     <- java/lang/ClassLoader.loadClassInternal
+  0 311481/2     4790257388193           11     -> java/lang/ClassLoader.checkPackageAccess
+  0 311481/2     4790257388200            7       -> java/lang/System.getSecurityManager
+  0 311481/2     4790257388207            7       <- java/lang/System.getSecurityManager
+  0 311481/2     4790257388215            7       -> java/util/HashSet.add
+  0 311481/2     4790257388223            7         -> java/util/HashMap.put
+  0 311481/2     4790257388230            7           -> java/lang/Object.hashCode
+  0 311481/2     4790257388237            7           <- java/lang/Object.hashCode
+  0 311481/2     4790257388245            7           -> java/util/HashMap.hash
+  0 311481/2     4790257388252            7           <- java/util/HashMap.hash
+  0 311481/2     4790257388260            7           -> java/util/HashMap.indexFor
+  0 311481/2     4790257388267            7           <- java/util/HashMap.indexFor
+  0 311481/2     4790257388275            7         <- java/util/HashMap.put
+  0 311481/2     4790257388282            7       <- java/util/HashSet.add
+  0 311481/2     4790257388290            7     <- java/lang/ClassLoader.checkPackageAccess
+  0 311481/2     4790257388305           15     -> java/io/PrintStream.println
+  0 311481/2     4790257388316           11       -> java/io/PrintStream.print
+  0 311481/2     4790257388326            9         -> java/io/PrintStream.write
+  0 311481/2     4790257388335            9           -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790257388345           10           <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790257388358           12           -> java/io/Writer.write
+  0 311481/2     4790257388371           13             -> java/io/BufferedWriter.write
+  0 311481/2     4790257388382           10               -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790257388389            7               <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790257388399           10               -> java/io/BufferedWriter.min
+  0 311481/2     4790257388407            7               <- java/io/BufferedWriter.min
+  0 311481/2     4790257388417           10               -> java/lang/String.getChars
+  0 311481/2     4790257388425            8                 -> java/lang/System.arraycopy
+  0 311481/2     4790257388434            8                 <- java/lang/System.arraycopy
+  0 311481/2     4790257388442            7               <- java/lang/String.getChars
+  0 311481/2     4790257388450            8             <- java/io/BufferedWriter.write
+  0 311481/2     4790257388457            7           <- java/io/Writer.write
+  0 311481/2     4790257388467           10           -> java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790257388475            7             -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790257388482            7             <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790257388493           10             -> java/io/OutputStreamWriter.write
+  0 311481/2     4790257388504           11               -> sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790257388515           10                 -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790257388522            7                 <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790257388533           10                 -> sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790257388544           11                   -> java/nio/CharBuffer.wrap
+  0 311481/2     4790257388552            8                     -> java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790257388560            7                       -> java/nio/CharBuffer.<init>
+  0 311481/2     4790257388567            7                         -> java/nio/Buffer.<init>
+  0 311481/2     4790257388574            7                           -> java/lang/Object.<init>
+  0 311481/2     4790257388582            7                           <- java/lang/Object.<init>
+  0 311481/2     4790257388590            8                           -> java/nio/Buffer.limit
+  0 311481/2     4790257388598            7                           <- java/nio/Buffer.limit
+  0 311481/2     4790257388605            7                           -> java/nio/Buffer.position
+  0 311481/2     4790257388612            7                           <- java/nio/Buffer.position
+  0 311481/2     4790257388620            7                         <- java/nio/Buffer.<init>
+  0 311481/2     4790257388628            7                       <- java/nio/CharBuffer.<init>
+  0 311481/2     4790257388635            7                     <- java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790257388643            7                   <- java/nio/CharBuffer.wrap
+  0 311481/2     4790257388654           10                   -> java/nio/Buffer.hasRemaining
+  0 311481/2     4790257388661            7                   <- java/nio/Buffer.hasRemaining
+  0 311481/2     4790257388673           11                   -> java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790257388684           10                     -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790257388695           10                       -> java/nio/CharBuffer.hasArray
+  0 311481/2     4790257388702            7                       <- java/nio/CharBuffer.hasArray
+  0 311481/2     4790257388714           11                       -> java/nio/ByteBuffer.hasArray
+  0 311481/2     4790257388722            7                       <- java/nio/ByteBuffer.hasArray
+  0 311481/2     4790257388732           10                       -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790257388742            9                         -> java/nio/CharBuffer.array
+  0 311481/2     4790257388749            7                         <- java/nio/CharBuffer.array
+  0 311481/2     4790257388759            9                         -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257388766            7                         <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257388776            9                         -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257388784            7                         <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257388797           13                         -> java/nio/ByteBuffer.array
+  0 311481/2     4790257388804            7                         <- java/nio/ByteBuffer.array
+  0 311481/2     4790257388814            9                         -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257388821            7                         <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257388831            9                         -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257388838            7                         <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257388853           14                         -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257388861            7                         <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257388871            9                         -> java/nio/Buffer.position
+  0 311481/2     4790257388878            7                         <- java/nio/Buffer.position
+  0 311481/2     4790257388886            7                         -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257388893            7                         <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257388903            9                         -> java/nio/Buffer.position
+  0 311481/2     4790257388910            7                         <- java/nio/Buffer.position
+  0 311481/2     4790257388918            7                       <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790257388925            7                     <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790257388936           10                     -> java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790257388943            7                     <- java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790257388953            9                     -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790257388961            7                     <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790257388969            7                   <- java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790257388979           10                   -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790257388987            7                   <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790257388998           11                   -> java/nio/Buffer.remaining
+  0 311481/2     4790257389005            7                   <- java/nio/Buffer.remaining
+  0 311481/2     4790257389013            7                 <- sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790257389020            7               <- sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790257389028            7             <- java/io/OutputStreamWriter.write
+  0 311481/2     4790257389113           85           <- java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790257389125           11           -> java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790257389135            9             -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790257389146           11               -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790257389158           11                 -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790257389167            9                   -> java/nio/Buffer.flip
+  0 311481/2     4790257389174            7                   <- java/nio/Buffer.flip
+  0 311481/2     4790257389186           11                   -> java/nio/ByteBuffer.array
+  0 311481/2     4790257389193            7                   <- java/nio/ByteBuffer.array
+  0 311481/2     4790257389203            9                   -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257389210            7                   <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257389222           11                   -> java/io/PrintStream.write
+  0 311481/2     4790257389230            7                     -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790257389237            7                     <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790257389248           11                     -> java/io/BufferedOutputStream.write
+  0 311481/2     4790257389261           12                       -> java/lang/System.arraycopy
+  0 311481/2     4790257389268            7                       <- java/lang/System.arraycopy
+  0 311481/2     4790257389276            7                     <- java/io/BufferedOutputStream.write
+  0 311481/2     4790257389286            9                     -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790257389295            9                       -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790257389307           11                         -> java/io/FileOutputStream.write
+  0 311481/2     4790257389317           10                           -> java/io/FileOutputStream.writeBytes
+  0 311481/2     4790257389479          162                           <- java/io/FileOutputStream.writeBytes
+  0 311481/2     4790257389489            9                         <- java/io/FileOutputStream.write
+  0 311481/2     4790257389497            7                       <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790257389509           12                     <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790257389517            8                   <- java/io/PrintStream.write
+  0 311481/2     4790257389527           10                   -> java/nio/Buffer.clear
+  0 311481/2     4790257389536            8                   <- java/nio/Buffer.clear
+  0 311481/2     4790257389543            7                 <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790257389551            7               <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790257389559            7             <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790257389566            7           <- java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790257389579           12           -> java/lang/String.indexOf
+  0 311481/2     4790257389586            7             -> java/lang/String.indexOf
+  0 311481/2     4790257389595            8             <- java/lang/String.indexOf
+  0 311481/2     4790257389602            7           <- java/lang/String.indexOf
+  0 311481/2     4790257389610            7         <- java/io/PrintStream.write
+  0 311481/2     4790257389617            7       <- java/io/PrintStream.print
+  0 311481/2     4790257389627            9       -> java/io/PrintStream.newLine
+  0 311481/2     4790257389635            7         -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790257389642            7         <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790257389651            9         -> java/io/BufferedWriter.newLine
+  0 311481/2     4790257389661            9           -> java/io/Writer.write
+  0 311481/2     4790257389668            7             -> java/io/BufferedWriter.write
+  0 311481/2     4790257389713           44               -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790257389721            7               <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790257389729            8               -> java/io/BufferedWriter.min
+  0 311481/2     4790257389737            7               <- java/io/BufferedWriter.min
+  0 311481/2     4790257389744            7               -> java/lang/String.getChars
+  0 311481/2     4790257389752            7                 -> java/lang/System.arraycopy
+  0 311481/2     4790257389760            7                 <- java/lang/System.arraycopy
+  0 311481/2     4790257389767            7               <- java/lang/String.getChars
+  0 311481/2     4790257389775            7             <- java/io/BufferedWriter.write
+  0 311481/2     4790257389783            7           <- java/io/Writer.write
+  0 311481/2     4790257389790            7         <- java/io/BufferedWriter.newLine
+  0 311481/2     4790257389798            7         -> java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790257389805            7           -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790257389812            7           <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790257389820            7           -> java/io/OutputStreamWriter.write
+  0 311481/2     4790257389828            7             -> sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790257389835            7               -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790257389842            7               <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790257389850            7               -> sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790257389857            7                 -> java/nio/CharBuffer.wrap
+  0 311481/2     4790257389865            7                   -> java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790257389872            7                     -> java/nio/CharBuffer.<init>
+  0 311481/2     4790257389879            7                       -> java/nio/Buffer.<init>
+  0 311481/2     4790257389886            6                         -> java/lang/Object.<init>
+  0 311481/2     4790257389893            7                         <- java/lang/Object.<init>
+  0 311481/2     4790257389901            7                         -> java/nio/Buffer.limit
+  0 311481/2     4790257389908            7                         <- java/nio/Buffer.limit
+  0 311481/2     4790257389916            7                         -> java/nio/Buffer.position
+  0 311481/2     4790257389923            7                         <- java/nio/Buffer.position
+  0 311481/2     4790257389930            7                       <- java/nio/Buffer.<init>
+  0 311481/2     4790257389938            7                     <- java/nio/CharBuffer.<init>
+  0 311481/2     4790257389946            7                   <- java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790257389953            7                 <- java/nio/CharBuffer.wrap
+  0 311481/2     4790257389961            7                 -> java/nio/Buffer.hasRemaining
+  0 311481/2     4790257389968            7                 <- java/nio/Buffer.hasRemaining
+  0 311481/2     4790257389976            7                 -> java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790257389984            7                   -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790257389991            7                     -> java/nio/CharBuffer.hasArray
+  0 311481/2     4790257389998            7                     <- java/nio/CharBuffer.hasArray
+  0 311481/2     4790257390760          761                     -> java/nio/ByteBuffer.hasArray
+  0 311481/2     4790257390772           11                     <- java/nio/ByteBuffer.hasArray
+  0 311481/2     4790257390782           10                     -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790257390790            7                       -> java/nio/CharBuffer.array
+  0 311481/2     4790257390797            7                       <- java/nio/CharBuffer.array
+  0 311481/2     4790257390805            7                       -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257390812            7                       <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257390820            8                       -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257390828            7                       <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257390836            8                       -> java/nio/ByteBuffer.array
+  0 311481/2     4790257390844            7                       <- java/nio/ByteBuffer.array
+  0 311481/2     4790257390851            7                       -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257390859            7                       <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257390866            7                       -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257390874            7                       <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257390883            8                       -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257390890            7                       <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790257390898            8                       -> java/nio/Buffer.position
+  0 311481/2     4790257390906            7                       <- java/nio/Buffer.position
+  0 311481/2     4790257390913            7                       -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257390921            7                       <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257390928            7                       -> java/nio/Buffer.position
+  0 311481/2     4790257390936            7                       <- java/nio/Buffer.position
+  0 311481/2     4790257390943            7                     <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790257390951            7                   <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790257390959            8                   -> java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790257390967            7                   <- java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790257390974            7                   -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790257390982            7                   <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790257390990            7                 <- java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790257390998            7                 -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790257391005            7                 <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790257391013            8                 -> java/nio/Buffer.remaining
+  0 311481/2     4790257391020            7                 <- java/nio/Buffer.remaining
+  0 311481/2     4790257391028            7               <- sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790257391036            7             <- sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790257391044            7           <- java/io/OutputStreamWriter.write
+  0 311481/2     4790257391052            8         <- java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790257391060            7         -> java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790257391067            7           -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790257391075            7             -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790257391082            7               -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790257391090            7                 -> java/nio/Buffer.flip
+  0 311481/2     4790257391097            7                 <- java/nio/Buffer.flip
+  0 311481/2     4790257391105            8                 -> java/nio/ByteBuffer.array
+  0 311481/2     4790257391112            7                 <- java/nio/ByteBuffer.array
+  0 311481/2     4790257391120            7                 -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257391127            7                 <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790257391135            8                 -> java/io/PrintStream.write
+  0 311481/2     4790257391142            7                   -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790257391150            7                   <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790257391158            8                   -> java/io/BufferedOutputStream.write
+  0 311481/2     4790257391166            7                     -> java/lang/System.arraycopy
+  0 311481/2     4790257391174            8                     <- java/lang/System.arraycopy
+  0 311481/2     4790257391182            7                   <- java/io/BufferedOutputStream.write
+  0 311481/2     4790257391190            7                   -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790257391197            7                     -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790257391205            7                       -> java/io/FileOutputStream.write
+  0 311481/2     4790257391212            7                         -> java/io/FileOutputStream.writeBytes
+  0 311481/2     4790257391280           67                         <- java/io/FileOutputStream.writeBytes
+  0 311481/2     4790257391289            9                       <- java/io/FileOutputStream.write
+  0 311481/2     4790257391297            7                     <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790257391305            7                   <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790257391313            7                 <- java/io/PrintStream.write
+  0 311481/2     4790257391321            7                 -> java/nio/Buffer.clear
+  0 311481/2     4790257391329            7                 <- java/nio/Buffer.clear
+  0 311481/2     4790257391336            7               <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790257391344            7             <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790257391352            7           <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790257391359            7         <- java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790257391368            8         -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790257391375            7           -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790257391383            7           <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790257391391            8         <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790257391398            7       <- java/io/PrintStream.newLine
+  0 311481/2     4790257391406            7     <- java/io/PrintStream.println
+  0 311481/2     4790257391439           32     -> java/lang/ClassLoader.loadClassInternal
+  0 311481/2     4790257391447            8       -> java/lang/ClassLoader.loadClass
+  0 311481/2     4790257391455            7         -> sun/misc/Launcher$AppClassLoader.loadClass
+  0 311481/2     4790257391463            7           -> java/lang/String.lastIndexOf
+  0 311481/2     4790257391471            7             -> java/lang/String.lastIndexOf
+  0 311481/2     4790257391479            8             <- java/lang/String.lastIndexOf
+  0 311481/2     4790257391487            7           <- java/lang/String.lastIndexOf
+  0 311481/2     4790257391495            8           -> java/lang/System.getSecurityManager
+  0 311481/2     4790257391503            7           <- java/lang/System.getSecurityManager
+  0 311481/2     4790257391511            8           -> java/lang/ClassLoader.loadClass
+  0 311481/2     4790257391518            7             -> java/lang/ClassLoader.findLoadedClass
+  0 311481/2     4790257391526            7               -> java/lang/ClassLoader.check
+  0 311481/2     4790257391533            7               <- java/lang/ClassLoader.check
+  0 311481/2     4790257391541            7               -> java/lang/ClassLoader.checkName
+  0 311481/2     4790257391549            7                 -> java/lang/String.indexOf
+  0 311481/2     4790257391556            7                   -> java/lang/String.indexOf
+  0 311481/2     4790257391564            8                   <- java/lang/String.indexOf
+  0 311481/2     4790257391572            7                 <- java/lang/String.indexOf
+  0 311481/2     4790257391580            8                 -> sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257391587            7                 <- sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257391595            7                 -> java/lang/String.charAt
+  0 311481/2     4790257391603            7                 <- java/lang/String.charAt
+  0 311481/2     4790257391610            7               <- java/lang/ClassLoader.checkName
+  0 311481/2     4790257391618            7               -> java/lang/ClassLoader.findLoadedClass0
+  0 311481/2     4790257391633           14               <- java/lang/ClassLoader.findLoadedClass0
+  0 311481/2     4790257391641            8             <- java/lang/ClassLoader.findLoadedClass
+  0 311481/2     4790257391651            9             -> java/lang/ClassLoader.loadClass
+  0 311481/2     4790257391658            7               -> java/lang/ClassLoader.findLoadedClass
+  0 311481/2     4790257391665            7                 -> java/lang/ClassLoader.check
+  0 311481/2     4790257391672            7                 <- java/lang/ClassLoader.check
+  0 311481/2     4790257391680            7                 -> java/lang/ClassLoader.checkName
+  0 311481/2     4790257391688            7                   -> java/lang/String.indexOf
+  0 311481/2     4790257391695            7                     -> java/lang/String.indexOf
+  0 311481/2     4790257391703            8                     <- java/lang/String.indexOf
+  0 311481/2     4790257391711            7                   <- java/lang/String.indexOf
+  0 311481/2     4790257391718            7                   -> sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257391725            7                   <- sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257391733            7                   -> java/lang/String.charAt
+  0 311481/2     4790257391740            7                   <- java/lang/String.charAt
+  0 311481/2     4790257391748            7                 <- java/lang/ClassLoader.checkName
+  0 311481/2     4790257391755            7                 -> java/lang/ClassLoader.findLoadedClass0
+  0 311481/2     4790257391765            9                 <- java/lang/ClassLoader.findLoadedClass0
+  0 311481/2     4790257391773            8               <- java/lang/ClassLoader.findLoadedClass
+  0 311481/2     4790257391781            8               -> java/lang/ClassLoader.findBootstrapClass0
+  0 311481/2     4790257391788            7                 -> java/lang/ClassLoader.check
+  0 311481/2     4790257391795            7                 <- java/lang/ClassLoader.check
+  0 311481/2     4790257391803            7                 -> java/lang/ClassLoader.checkName
+  0 311481/2     4790257391810            7                   -> java/lang/String.indexOf
+  0 311481/2     4790257391817            7                     -> java/lang/String.indexOf
+  0 311481/2     4790257391825            7                     <- java/lang/String.indexOf
+  0 311481/2     4790257391833            7                   <- java/lang/String.indexOf
+  0 311481/2     4790257391840            7                   -> sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257391848            7                   <- sun/misc/VM.allowArraySyntax
+  0 311481/2     4790257391855            7                   -> java/lang/String.charAt
+  0 311481/2     4790257391862            7                   <- java/lang/String.charAt
+  0 311481/2     4790257391870            7                 <- java/lang/ClassLoader.checkName
+  0 311481/2     4790257391877            7                 -> java/lang/ClassLoader.findBootstrapClass
+  0 311481/2     4790257391891           13                 <- java/lang/ClassLoader.findBootstrapClass
+  0 311481/2     4790257391899            7               <- java/lang/ClassLoader.findBootstrapClass0
+  0 311481/2     4790257391907            8             <- java/lang/ClassLoader.loadClass
+  0 311481/2     4790257391915            7           <- java/lang/ClassLoader.loadClass
+  0 311481/2     4790257391922            7         <- sun/misc/Launcher$AppClassLoader.loadClass
+  0 311481/2     4790257391930            7       <- java/lang/ClassLoader.loadClass
+  0 311481/2     4790257391938            7     <- java/lang/ClassLoader.loadClassInternal
+  0 311481/2     4790257391954           16     -> java/lang/ClassLoader.checkPackageAccess
+  0 311481/2     4790257391962            7       -> java/lang/System.getSecurityManager
+  0 311481/2     4790257391969            7       <- java/lang/System.getSecurityManager
+  0 311481/2     4790257391978            8       -> java/util/HashSet.add
+  0 311481/2     4790257391986            8         -> java/util/HashMap.put
+  0 311481/2     4790257391994            7           -> java/lang/Object.hashCode
+  0 311481/2     4790257392001            7           <- java/lang/Object.hashCode
+  0 311481/2     4790257392009            8           -> java/util/HashMap.hash
+  0 311481/2     4790257392017            7           <- java/util/HashMap.hash
+  0 311481/2     4790257392025            7           -> java/util/HashMap.indexFor
+  0 311481/2     4790257392032            7           <- java/util/HashMap.indexFor
+  0 311481/2     4790257392040            8         <- java/util/HashMap.put
+  0 311481/2     4790257392048            7       <- java/util/HashSet.add
+  0 311481/2     4790257392055            7     <- java/lang/ClassLoader.checkPackageAccess
+  0 311481/2     4790257392076           20     -> java/lang/Thread.currentThread
+  0 311481/2     4790257392084            8     <- java/lang/Thread.currentThread
+  0 311481/2     4790257392094           10     -> java/lang/Thread.sleep
+  0 311481/2     4790258400253      1008158     <- java/lang/Thread.sleep
+  0 311481/2     4790258400299           45     -> Func_abc.func_b
+  0 311481/2     4790258400329           30       -> java/io/PrintStream.println
+  0 311481/2     4790258400338            8         -> java/io/PrintStream.print
+  0 311481/2     4790258400345            7           -> java/io/PrintStream.write
+  0 311481/2     4790258400353            7             -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790258400361            7             <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790258400369            8             -> java/io/Writer.write
+  0 311481/2     4790258400378            8               -> java/io/BufferedWriter.write
+  0 311481/2     4790258400386            7                 -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790258400393            7                 <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790258400402            9                 -> java/io/BufferedWriter.min
+  0 311481/2     4790258400410            7                 <- java/io/BufferedWriter.min
+  0 311481/2     4790258400418            8                 -> java/lang/String.getChars
+  0 311481/2     4790258400426            8                   -> java/lang/System.arraycopy
+  0 311481/2     4790258400435            8                   <- java/lang/System.arraycopy
+  0 311481/2     4790258400442            7                 <- java/lang/String.getChars
+  0 311481/2     4790258400451            8               <- java/io/BufferedWriter.write
+  0 311481/2     4790258400458            7             <- java/io/Writer.write
+  0 311481/2     4790258400466            7             -> java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790258400474            7               -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790258400481            7               <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790258400489            8               -> java/io/OutputStreamWriter.write
+  0 311481/2     4790258400497            7                 -> sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790258400504            7                   -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790258400511            7                   <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790258400520            8                   -> sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790258400528            7                     -> java/nio/CharBuffer.wrap
+  0 311481/2     4790258400536            7                       -> java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790258400544            7                         -> java/nio/CharBuffer.<init>
+  0 311481/2     4790258400551            7                           -> java/nio/Buffer.<init>
+  0 311481/2     4790258400559            7                             -> java/lang/Object.<init>
+  0 311481/2     4790258400566            7                             <- java/lang/Object.<init>
+  0 311481/2     4790258400574            8                             -> java/nio/Buffer.limit
+  0 311481/2     4790258400582            7                             <- java/nio/Buffer.limit
+  0 311481/2     4790258400590            7                             -> java/nio/Buffer.position
+  0 311481/2     4790258400597            7                             <- java/nio/Buffer.position
+  0 311481/2     4790258400604            7                           <- java/nio/Buffer.<init>
+  0 311481/2     4790258400612            7                         <- java/nio/CharBuffer.<init>
+  0 311481/2     4790258400620            7                       <- java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790258400627            7                     <- java/nio/CharBuffer.wrap
+  0 311481/2     4790258400635            8                     -> java/nio/Buffer.hasRemaining
+  0 311481/2     4790258400643            7                     <- java/nio/Buffer.hasRemaining
+  0 311481/2     4790258400651            8                     -> java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790258400659            8                       -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790258400667            7                         -> java/nio/CharBuffer.hasArray
+  0 311481/2     4790258400675            7                         <- java/nio/CharBuffer.hasArray
+  0 311481/2     4790258400683            8                         -> java/nio/ByteBuffer.hasArray
+  0 311481/2     4790258400690            7                         <- java/nio/ByteBuffer.hasArray
+  0 311481/2     4790258400698            7                         -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790258400706            7                           -> java/nio/CharBuffer.array
+  0 311481/2     4790258400713            7                           <- java/nio/CharBuffer.array
+  0 311481/2     4790258400721            7                           -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258400728            7                           <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258400736            7                           -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258400743            7                           <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258400752            8                           -> java/nio/ByteBuffer.array
+  0 311481/2     4790258400759            7                           <- java/nio/ByteBuffer.array
+  0 311481/2     4790258400766            7                           -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258400774            7                           <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258400781            7                           -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258400789            7                           <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258400799            9                           -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258400806            7                           <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258400813            7                           -> java/nio/Buffer.position
+  0 311481/2     4790258400821            7                           <- java/nio/Buffer.position
+  0 311481/2     4790258400828            7                           -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258400836            7                           <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258400843            7                           -> java/nio/Buffer.position
+  0 311481/2     4790258400850            7                           <- java/nio/Buffer.position
+  0 311481/2     4790258400858            7                         <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790258400866            7                       <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790258400874            8                       -> java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790258400881            7                       <- java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790258400889            7                       -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790258400896            7                       <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790258400904            7                     <- java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790258400912            7                     -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790258400919            7                     <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790258400927            8                     -> java/nio/Buffer.remaining
+  0 311481/2     4790258400934            7                     <- java/nio/Buffer.remaining
+  0 311481/2     4790258400942            7                   <- sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790258400950            7                 <- sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790258400957            7               <- java/io/OutputStreamWriter.write
+  0 311481/2     4790258400965            7             <- java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790258400973            8             -> java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790258400981            7               -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790258400988            7                 -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790258400996            7                   -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790258401004            7                     -> java/nio/Buffer.flip
+  0 311481/2     4790258401011            6                     <- java/nio/Buffer.flip
+  0 311481/2     4790258401019            8                     -> java/nio/ByteBuffer.array
+  0 311481/2     4790258401026            7                     <- java/nio/ByteBuffer.array
+  0 311481/2     4790258401033            7                     -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401041            7                     <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401049            7                     -> java/io/PrintStream.write
+  0 311481/2     4790258401056            7                       -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790258401063            7                       <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790258401071            8                       -> java/io/BufferedOutputStream.write
+  0 311481/2     4790258401079            7                         -> java/lang/System.arraycopy
+  0 311481/2     4790258401087            7                         <- java/lang/System.arraycopy
+  0 311481/2     4790258401094            7                       <- java/io/BufferedOutputStream.write
+  0 311481/2     4790258401103            8                       -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790258401110            7                         -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790258401118            7                           -> java/io/FileOutputStream.write
+  0 311481/2     4790258401125            7                             -> java/io/FileOutputStream.writeBytes
+  0 311481/2     4790258401164           39                             <- java/io/FileOutputStream.writeBytes
+  0 311481/2     4790258401173            8                           <- java/io/FileOutputStream.write
+  0 311481/2     4790258401181            7                         <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790258401189            7                       <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790258401196            7                     <- java/io/PrintStream.write
+  0 311481/2     4790258401204            7                     -> java/nio/Buffer.clear
+  0 311481/2     4790258401212            7                     <- java/nio/Buffer.clear
+  0 311481/2     4790258401219            7                   <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790258401227            7                 <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790258401235            7               <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790258401242            7             <- java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790258401251            8             -> java/lang/String.indexOf
+  0 311481/2     4790258401258            7               -> java/lang/String.indexOf
+  0 311481/2     4790258401266            8               <- java/lang/String.indexOf
+  0 311481/2     4790258401274            7             <- java/lang/String.indexOf
+  0 311481/2     4790258401281            7           <- java/io/PrintStream.write
+  0 311481/2     4790258401289            7         <- java/io/PrintStream.print
+  0 311481/2     4790258401297            7         -> java/io/PrintStream.newLine
+  0 311481/2     4790258401304            7           -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790258401311            7           <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790258401319            7           -> java/io/BufferedWriter.newLine
+  0 311481/2     4790258401326            7             -> java/io/Writer.write
+  0 311481/2     4790258401334            7               -> java/io/BufferedWriter.write
+  0 311481/2     4790258401341            7                 -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790258401348            7                 <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790258401356            7                 -> java/io/BufferedWriter.min
+  0 311481/2     4790258401363            7                 <- java/io/BufferedWriter.min
+  0 311481/2     4790258401371            7                 -> java/lang/String.getChars
+  0 311481/2     4790258401378            7                   -> java/lang/System.arraycopy
+  0 311481/2     4790258401385            7                   <- java/lang/System.arraycopy
+  0 311481/2     4790258401393            7                 <- java/lang/String.getChars
+  0 311481/2     4790258401401            7               <- java/io/BufferedWriter.write
+  0 311481/2     4790258401408            7             <- java/io/Writer.write
+  0 311481/2     4790258401416            7           <- java/io/BufferedWriter.newLine
+  0 311481/2     4790258401423            7           -> java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790258401430            7             -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790258401438            7             <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790258401446            7             -> java/io/OutputStreamWriter.write
+  0 311481/2     4790258401453            7               -> sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790258401460            7                 -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790258401467            7                 <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790258401475            7                 -> sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790258401482            7                   -> java/nio/CharBuffer.wrap
+  0 311481/2     4790258401490            7                     -> java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790258401497            7                       -> java/nio/CharBuffer.<init>
+  0 311481/2     4790258401504            7                         -> java/nio/Buffer.<init>
+  0 311481/2     4790258401511            7                           -> java/lang/Object.<init>
+  0 311481/2     4790258401518            7                           <- java/lang/Object.<init>
+  0 311481/2     4790258401526            7                           -> java/nio/Buffer.limit
+  0 311481/2     4790258401533            7                           <- java/nio/Buffer.limit
+  0 311481/2     4790258401541            7                           -> java/nio/Buffer.position
+  0 311481/2     4790258401548            7                           <- java/nio/Buffer.position
+  0 311481/2     4790258401556            7                         <- java/nio/Buffer.<init>
+  0 311481/2     4790258401563            7                       <- java/nio/CharBuffer.<init>
+  0 311481/2     4790258401570            7                     <- java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790258401578            7                   <- java/nio/CharBuffer.wrap
+  0 311481/2     4790258401586            7                   -> java/nio/Buffer.hasRemaining
+  0 311481/2     4790258401593            7                   <- java/nio/Buffer.hasRemaining
+  0 311481/2     4790258401601            7                   -> java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790258401608            7                     -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790258401615            7                       -> java/nio/CharBuffer.hasArray
+  0 311481/2     4790258401623            7                       <- java/nio/CharBuffer.hasArray
+  0 311481/2     4790258401630            7                       -> java/nio/ByteBuffer.hasArray
+  0 311481/2     4790258401638            7                       <- java/nio/ByteBuffer.hasArray
+  0 311481/2     4790258401645            7                       -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790258401653            7                         -> java/nio/CharBuffer.array
+  0 311481/2     4790258401660            7                         <- java/nio/CharBuffer.array
+  0 311481/2     4790258401667            7                         -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258401675            7                         <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258401682            7                         -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258401690            7                         <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258401697            7                         -> java/nio/ByteBuffer.array
+  0 311481/2     4790258401705            7                         <- java/nio/ByteBuffer.array
+  0 311481/2     4790258401712            7                         -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401719            7                         <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401727            7                         -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401734            7                         <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401743            8                         -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258401750            7                         <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790258401757            7                         -> java/nio/Buffer.position
+  0 311481/2     4790258401765            7                         <- java/nio/Buffer.position
+  0 311481/2     4790258401772            7                         -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401780            7                         <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401787            7                         -> java/nio/Buffer.position
+  0 311481/2     4790258401794            7                         <- java/nio/Buffer.position
+  0 311481/2     4790258401802            7                       <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790258401809            7                     <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790258401817            7                     -> java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790258401825            7                     <- java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790258401832            7                     -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790258401840            7                     <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790258401848            7                   <- java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790258401855            7                   -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790258401863            7                   <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790258401871            7                   -> java/nio/Buffer.remaining
+  0 311481/2     4790258401878            7                   <- java/nio/Buffer.remaining
+  0 311481/2     4790258401885            7                 <- sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790258401893            7               <- sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790258401901            7             <- java/io/OutputStreamWriter.write
+  0 311481/2     4790258401908            7           <- java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790258401916            7           -> java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790258401923            7             -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790258401931            7               -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790258401938            7                 -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790258401945            7                   -> java/nio/Buffer.flip
+  0 311481/2     4790258401952            7                   <- java/nio/Buffer.flip
+  0 311481/2     4790258401960            7                   -> java/nio/ByteBuffer.array
+  0 311481/2     4790258401967            7                   <- java/nio/ByteBuffer.array
+  0 311481/2     4790258401975            7                   -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401982            7                   <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790258401990            7                   -> java/io/PrintStream.write
+  0 311481/2     4790258401997            7                     -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790258402004            7                     <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790258402012            7                     -> java/io/BufferedOutputStream.write
+  0 311481/2     4790258402020            7                       -> java/lang/System.arraycopy
+  0 311481/2     4790258402027            7                       <- java/lang/System.arraycopy
+  0 311481/2     4790258402035            7                     <- java/io/BufferedOutputStream.write
+  0 311481/2     4790258402042            7                     -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790258402050            7                       -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790258402057            7                         -> java/io/FileOutputStream.write
+  0 311481/2     4790258402064            7                           -> java/io/FileOutputStream.writeBytes
+  0 311481/2     4790258402082           17                           <- java/io/FileOutputStream.writeBytes
+  0 311481/2     4790258402090            8                         <- java/io/FileOutputStream.write
+  0 311481/2     4790258402098            7                       <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790258402106            7                     <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790258402113            7                   <- java/io/PrintStream.write
+  0 311481/2     4790258402121            7                   -> java/nio/Buffer.clear
+  0 311481/2     4790258402128            7                   <- java/nio/Buffer.clear
+  0 311481/2     4790258402136            7                 <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790258402143            7               <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790258402151            7             <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790258402159            7           <- java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790258402166            7           -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790258402174            7             -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790258402181            7             <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790258402189            7           <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790258402196            7         <- java/io/PrintStream.newLine
+  0 311481/2     4790258402204            7       <- java/io/PrintStream.println
+  0 311481/2     4790258402212            7       -> java/lang/Thread.currentThread
+  0 311481/2     4790258402220            7       <- java/lang/Thread.currentThread
+  0 311481/2     4790258402228            7       -> java/lang/Thread.sleep
+  0 311481/2     4790259410328      1008099       <- java/lang/Thread.sleep
+  0 311481/2     4790259410374           46       -> Func_abc.func_c
+  0 311481/2     4790259410404           29         -> java/io/PrintStream.println
+  0 311481/2     4790259410412            8           -> java/io/PrintStream.print
+  0 311481/2     4790259410420            7             -> java/io/PrintStream.write
+  0 311481/2     4790259410428            7               -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790259410435            7               <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790259410444            8               -> java/io/Writer.write
+  0 311481/2     4790259410453            8                 -> java/io/BufferedWriter.write
+  0 311481/2     4790259410460            7                   -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790259410467            7                   <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790259410477            9                   -> java/io/BufferedWriter.min
+  0 311481/2     4790259410484            7                   <- java/io/BufferedWriter.min
+  0 311481/2     4790259410492            8                   -> java/lang/String.getChars
+  0 311481/2     4790259410501            8                     -> java/lang/System.arraycopy
+  0 311481/2     4790259410509            8                     <- java/lang/System.arraycopy
+  0 311481/2     4790259410517            7                   <- java/lang/String.getChars
+  0 311481/2     4790259410525            8                 <- java/io/BufferedWriter.write
+  0 311481/2     4790259410533            7               <- java/io/Writer.write
+  0 311481/2     4790259410541            7               -> java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790259410548            7                 -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790259410555            7                 <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790259410563            8                 -> java/io/OutputStreamWriter.write
+  0 311481/2     4790259410571            7                   -> sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790259410579            7                     -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790259410586            7                     <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790259410595            8                     -> sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790259410602            7                       -> java/nio/CharBuffer.wrap
+  0 311481/2     4790259410610            7                         -> java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790259410618            7                           -> java/nio/CharBuffer.<init>
+  0 311481/2     4790259410625            7                             -> java/nio/Buffer.<init>
+  0 311481/2     4790259410633            7                               -> java/lang/Object.<init>
+  0 311481/2     4790259410640            7                               <- java/lang/Object.<init>
+  0 311481/2     4790259410648            8                               -> java/nio/Buffer.limit
+  0 311481/2     4790259410656            7                               <- java/nio/Buffer.limit
+  0 311481/2     4790259410664            7                               -> java/nio/Buffer.position
+  0 311481/2     4790259410671            7                               <- java/nio/Buffer.position
+  0 311481/2     4790259410678            7                             <- java/nio/Buffer.<init>
+  0 311481/2     4790259410686            7                           <- java/nio/CharBuffer.<init>
+  0 311481/2     4790259410694            7                         <- java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790259410701            7                       <- java/nio/CharBuffer.wrap
+  0 311481/2     4790259410710            8                       -> java/nio/Buffer.hasRemaining
+  0 311481/2     4790259410717            7                       <- java/nio/Buffer.hasRemaining
+  0 311481/2     4790259410725            8                       -> java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790259410733            8                         -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790259410741            7                           -> java/nio/CharBuffer.hasArray
+  0 311481/2     4790259410749            7                           <- java/nio/CharBuffer.hasArray
+  0 311481/2     4790259410757            8                           -> java/nio/ByteBuffer.hasArray
+  0 311481/2     4790259410764            7                           <- java/nio/ByteBuffer.hasArray
+  0 311481/2     4790259410772            7                           -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790259410780            7                             -> java/nio/CharBuffer.array
+  0 311481/2     4790259410787            7                             <- java/nio/CharBuffer.array
+  0 311481/2     4790259410795            7                             -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259410802            7                             <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259410810            7                             -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259410817            7                             <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259410826            8                             -> java/nio/ByteBuffer.array
+  0 311481/2     4790259410833            7                             <- java/nio/ByteBuffer.array
+  0 311481/2     4790259410841            7                             -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259410848            7                             <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259410855            7                             -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259410863            7                             <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259410873            9                             -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259410880            7                             <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259410888            7                             -> java/nio/Buffer.position
+  0 311481/2     4790259410895            7                             <- java/nio/Buffer.position
+  0 311481/2     4790259410902            7                             -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259410910            7                             <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259410917            7                             -> java/nio/Buffer.position
+  0 311481/2     4790259410924            7                             <- java/nio/Buffer.position
+  0 311481/2     4790259410932            7                           <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790259410940            7                         <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790259410948            8                         -> java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790259410955            7                         <- java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790259410963            7                         -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790259410970            7                         <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790259410978            7                       <- java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790259410986            7                       -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790259410993            7                       <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790259411001            8                       -> java/nio/Buffer.remaining
+  0 311481/2     4790259411008            7                       <- java/nio/Buffer.remaining
+  0 311481/2     4790259411016            7                     <- sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790259411024            7                   <- sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790259411031            7                 <- java/io/OutputStreamWriter.write
+  0 311481/2     4790259411039            7               <- java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790259411047            8               -> java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790259411055            7                 -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790259411062            7                   -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790259411070            7                     -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790259411077            7                       -> java/nio/Buffer.flip
+  0 311481/2     4790259411084            6                       <- java/nio/Buffer.flip
+  0 311481/2     4790259411092            8                       -> java/nio/ByteBuffer.array
+  0 311481/2     4790259411100            7                       <- java/nio/ByteBuffer.array
+  0 311481/2     4790259411107            7                       -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259411114            7                       <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259411122            7                       -> java/io/PrintStream.write
+  0 311481/2     4790259411130            7                         -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790259411137            7                         <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790259411145            8                         -> java/io/BufferedOutputStream.write
+  0 311481/2     4790259411153            7                           -> java/lang/System.arraycopy
+  0 311481/2     4790259411160            7                           <- java/lang/System.arraycopy
+  0 311481/2     4790259411168            7                         <- java/io/BufferedOutputStream.write
+  0 311481/2     4790259411176            8                         -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790259411184            7                           -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790259411192            7                             -> java/io/FileOutputStream.write
+  0 311481/2     4790259411199            7                               -> java/io/FileOutputStream.writeBytes
+  0 311481/2     4790259411241           41                               <- java/io/FileOutputStream.writeBytes
+  0 311481/2     4790259411249            8                             <- java/io/FileOutputStream.write
+  0 311481/2     4790259411257            7                           <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790259411265            7                         <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790259411272            7                       <- java/io/PrintStream.write
+  0 311481/2     4790259411280            7                       -> java/nio/Buffer.clear
+  0 311481/2     4790259411288            7                       <- java/nio/Buffer.clear
+  0 311481/2     4790259411295            7                     <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790259411303            7                   <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790259411310            7                 <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790259411318            7               <- java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790259411326            8               -> java/lang/String.indexOf
+  0 311481/2     4790259411334            7                 -> java/lang/String.indexOf
+  0 311481/2     4790259411342            8                 <- java/lang/String.indexOf
+  0 311481/2     4790259411349            7               <- java/lang/String.indexOf
+  0 311481/2     4790259411357            7             <- java/io/PrintStream.write
+  0 311481/2     4790259411365            7           <- java/io/PrintStream.print
+  0 311481/2     4790259411372            7           -> java/io/PrintStream.newLine
+  0 311481/2     4790259411380            7             -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790259411387            7             <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790259411395            7             -> java/io/BufferedWriter.newLine
+  0 311481/2     4790259411402            7               -> java/io/Writer.write
+  0 311481/2     4790259411409            7                 -> java/io/BufferedWriter.write
+  0 311481/2     4790259411416            7                   -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790259411423            7                   <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790259411431            7                   -> java/io/BufferedWriter.min
+  0 311481/2     4790259411439            7                   <- java/io/BufferedWriter.min
+  0 311481/2     4790259411446            7                   -> java/lang/String.getChars
+  0 311481/2     4790259411454            7                     -> java/lang/System.arraycopy
+  0 311481/2     4790259411461            7                     <- java/lang/System.arraycopy
+  0 311481/2     4790259411468            7                   <- java/lang/String.getChars
+  0 311481/2     4790259411476            7                 <- java/io/BufferedWriter.write
+  0 311481/2     4790259411484            7               <- java/io/Writer.write
+  0 311481/2     4790259411491            7             <- java/io/BufferedWriter.newLine
+  0 311481/2     4790259411499            7             -> java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790259411506            7               -> java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790259411513            7               <- java/io/BufferedWriter.ensureOpen
+  0 311481/2     4790259411521            7               -> java/io/OutputStreamWriter.write
+  0 311481/2     4790259411528            7                 -> sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790259411535            7                   -> sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790259411543            7                   <- sun/nio/cs/StreamEncoder.ensureOpen
+  0 311481/2     4790259411550            7                   -> sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790259411558            7                     -> java/nio/CharBuffer.wrap
+  0 311481/2     4790259411565            7                       -> java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790259411572            7                         -> java/nio/CharBuffer.<init>
+  0 311481/2     4790259411579            7                           -> java/nio/Buffer.<init>
+  0 311481/2     4790259411586            6                             -> java/lang/Object.<init>
+  0 311481/2     4790259411594            7                             <- java/lang/Object.<init>
+  0 311481/2     4790259411601            7                             -> java/nio/Buffer.limit
+  0 311481/2     4790259411608            7                             <- java/nio/Buffer.limit
+  0 311481/2     4790259411616            7                             -> java/nio/Buffer.position
+  0 311481/2     4790259411623            7                             <- java/nio/Buffer.position
+  0 311481/2     4790259411631            7                           <- java/nio/Buffer.<init>
+  0 311481/2     4790259411638            7                         <- java/nio/CharBuffer.<init>
+  0 311481/2     4790259411646            7                       <- java/nio/HeapCharBuffer.<init>
+  0 311481/2     4790259411653            7                     <- java/nio/CharBuffer.wrap
+  0 311481/2     4790259411661            7                     -> java/nio/Buffer.hasRemaining
+  0 311481/2     4790259411668            7                     <- java/nio/Buffer.hasRemaining
+  0 311481/2     4790259411676            7                     -> java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790259411684            7                       -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790259411691            7                         -> java/nio/CharBuffer.hasArray
+  0 311481/2     4790259411698            7                         <- java/nio/CharBuffer.hasArray
+  0 311481/2     4790259411706            7                         -> java/nio/ByteBuffer.hasArray
+  0 311481/2     4790259411713            7                         <- java/nio/ByteBuffer.hasArray
+  0 311481/2     4790259411721            7                         -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790259411728            7                           -> java/nio/CharBuffer.array
+  0 311481/2     4790259411735            7                           <- java/nio/CharBuffer.array
+  0 311481/2     4790259411743            7                           -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259411750            7                           <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259411758            7                           -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259411765            7                           <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259411773            7                           -> java/nio/ByteBuffer.array
+  0 311481/2     4790259411780            7                           <- java/nio/ByteBuffer.array
+  0 311481/2     4790259411787            7                           -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259411795            7                           <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259411802            7                           -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259411809            7                           <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259411818            8                           -> java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259411825            7                           <- java/nio/CharBuffer.arrayOffset
+  0 311481/2     4790259411833            7                           -> java/nio/Buffer.position
+  0 311481/2     4790259411840            7                           <- java/nio/Buffer.position
+  0 311481/2     4790259411847            7                           -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259411855            7                           <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259411862            7                           -> java/nio/Buffer.position
+  0 311481/2     4790259411869            7                           <- java/nio/Buffer.position
+  0 311481/2     4790259411877            7                         <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+  0 311481/2     4790259411885            7                       <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+  0 311481/2     4790259411893            8                       -> java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790259411900            7                       <- java/nio/charset/CoderResult.isOverflow
+  0 311481/2     4790259411908            7                       -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790259411915            7                       <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790259411923            7                     <- java/nio/charset/CharsetEncoder.encode
+  0 311481/2     4790259411931            7                     -> java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790259411938            7                     <- java/nio/charset/CoderResult.isUnderflow
+  0 311481/2     4790259411946            7                     -> java/nio/Buffer.remaining
+  0 311481/2     4790259411953            7                     <- java/nio/Buffer.remaining
+  0 311481/2     4790259411960            7                   <- sun/nio/cs/StreamEncoder.implWrite
+  0 311481/2     4790259411968            7                 <- sun/nio/cs/StreamEncoder.write
+  0 311481/2     4790259411976            7               <- java/io/OutputStreamWriter.write
+  0 311481/2     4790259411983            7             <- java/io/BufferedWriter.flushBuffer
+  0 311481/2     4790259411991            7             -> java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790259411999            7               -> sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790259412006            7                 -> sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790259412013            7                   -> sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790259412021            7                     -> java/nio/Buffer.flip
+  0 311481/2     4790259412028            6                     <- java/nio/Buffer.flip
+  0 311481/2     4790259412035            7                     -> java/nio/ByteBuffer.array
+  0 311481/2     4790259412043            7                     <- java/nio/ByteBuffer.array
+  0 311481/2     4790259412050            7                     -> java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259412057            7                     <- java/nio/ByteBuffer.arrayOffset
+  0 311481/2     4790259412065            7                     -> java/io/PrintStream.write
+  0 311481/2     4790259412072            7                       -> java/io/PrintStream.ensureOpen
+  0 311481/2     4790259412080            7                       <- java/io/PrintStream.ensureOpen
+  0 311481/2     4790259412087            7                       -> java/io/BufferedOutputStream.write
+  0 311481/2     4790259412095            7                         -> java/lang/System.arraycopy
+  0 311481/2     4790259412102            7                         <- java/lang/System.arraycopy
+  0 311481/2     4790259412110            7                       <- java/io/BufferedOutputStream.write
+  0 311481/2     4790259412118            7                       -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790259412125            7                         -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790259412132            7                           -> java/io/FileOutputStream.write
+  0 311481/2     4790259412140            7                             -> java/io/FileOutputStream.writeBytes
+  0 311481/2     4790259412157           17                             <- java/io/FileOutputStream.writeBytes
+  0 311481/2     4790259412165            8                           <- java/io/FileOutputStream.write
+  0 311481/2     4790259412172            7                         <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790259412180            7                       <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790259412188            7                     <- java/io/PrintStream.write
+  0 311481/2     4790259412195            7                     -> java/nio/Buffer.clear
+  0 311481/2     4790259412203            7                     <- java/nio/Buffer.clear
+  0 311481/2     4790259412210            7                   <- sun/nio/cs/StreamEncoder.writeBytes
+  0 311481/2     4790259412218            7                 <- sun/nio/cs/StreamEncoder.implFlushBuffer
+  0 311481/2     4790259412226            7               <- sun/nio/cs/StreamEncoder.flushBuffer
+  0 311481/2     4790259412233            7             <- java/io/OutputStreamWriter.flushBuffer
+  0 311481/2     4790259412241            7             -> java/io/BufferedOutputStream.flush
+  0 311481/2     4790259412248            7               -> java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790259412256            7               <- java/io/BufferedOutputStream.flushBuffer
+  0 311481/2     4790259412263            7             <- java/io/BufferedOutputStream.flush
+  0 311481/2     4790259412271            7           <- java/io/PrintStream.newLine
+  0 311481/2     4790259412279            7         <- java/io/PrintStream.println
+  0 311481/2     4790259412287            8         -> java/lang/Thread.currentThread
+  0 311481/2     4790259412294            7         <- java/lang/Thread.currentThread
+  0 311481/2     4790259412302            7         -> java/lang/Thread.sleep
+  0 311481/2     4790260420044      1007741         <- java/lang/Thread.sleep
+  0 311481/2     4790260420073           29       <- Func_abc.func_c
+  0 311481/2     4790260420081            7     <- Func_abc.func_b
+  0 311481/2     4790260420088            7   <- Func_abc.func_a
+  0 311481/2     4790260420096            7 <- Func_abc.main
+  0 311481/2     4790260420121           24 -> java/lang/Thread.exit
+  0 311481/2     4790260420153           32   -> java/lang/ThreadGroup.remove
+  0 311481/2     4790260420169           15     -> java/lang/System.arraycopy
+  0 311481/2     4790260420178            8     <- java/lang/System.arraycopy
+  0 311481/2     4790260420190           11     -> java/lang/Object.notifyAll
+  0 311481/2     4790260420203           13     <- java/lang/Object.notifyAll
+  0 311481/2     4790260420211            8   <- java/lang/ThreadGroup.remove
+  0 311481/2     4790260420225           13 <- java/lang/Thread.exit
+  0 311481/2     4790260420438          212     -> java/lang/Thread.<init>
+  0 311481/2     4790260420447            8       -> java/lang/Object.<init>
+  0 311481/2     4790260420454            7       <- java/lang/Object.<init>
+  0 311481/2     4790260420464            9       -> java/lang/Object.<init>
+  0 311481/2     4790260420471            7       <- java/lang/Object.<init>
+  0 311481/2     4790260420479            8       -> java/lang/Thread.init
+  0 311481/2     4790260420486            7         -> java/lang/Thread.currentThread
+  0 311481/2     4790260420494            7         <- java/lang/Thread.currentThread
+  0 311481/2     4790260420503            8         -> java/lang/System.getSecurityManager
+  0 311481/2     4790260420511            7         <- java/lang/System.getSecurityManager
+  0 311481/2     4790260420519            8         -> java/lang/ThreadGroup.checkAccess
+  0 311481/2     4790260420526            7           -> java/lang/System.getSecurityManager
+  0 311481/2     4790260420534            7           <- java/lang/System.getSecurityManager
+  0 311481/2     4790260420542            8         <- java/lang/ThreadGroup.checkAccess
+  0 311481/2     4790260420550            8         -> java/lang/ThreadGroup.addUnstarted
+  0 311481/2     4790260420558            7         <- java/lang/ThreadGroup.addUnstarted
+  0 311481/2     4790260420567            9         -> java/lang/String.toCharArray
+  0 311481/2     4790260420575            8           -> java/lang/String.getChars
+  0 311481/2     4790260420584            8             -> java/lang/System.arraycopy
+  0 311481/2     4790260420592            8             <- java/lang/System.arraycopy
+  0 311481/2     4790260420599            7           <- java/lang/String.getChars
+  0 311481/2     4790260420607            7         <- java/lang/String.toCharArray
+  0 311481/2     4790260420615            7         -> java/lang/Thread.getContextClassLoader
+  0 311481/2     4790260420622            7         <- java/lang/Thread.getContextClassLoader
+  0 311481/2     4790260420631            8         -> java/security/AccessController.getContext
+  0 311481/2     4790260420638            7           -> java/security/AccessController.getStackAccessControlContext
+  0 311481/2     4790260420653           14           <- java/security/AccessController.getStackAccessControlContext
+  0 311481/2     4790260420662            8           -> java/security/AccessControlContext.optimize
+  0 311481/2     4790260420670            8             -> java/security/AccessController.getInheritedAccessControlContext
+  0 311481/2     4790260420678            8             <- java/security/AccessController.getInheritedAccessControlContext
+  0 311481/2     4790260420687            8           <- java/security/AccessControlContext.optimize
+  0 311481/2     4790260420695            7         <- java/security/AccessController.getContext
+  0 311481/2     4790260420703            8         -> java/lang/Thread.setPriority
+  0 311481/2     4790260420710            7           -> java/lang/Thread.checkAccess
+  0 311481/2     4790260420718            7             -> java/lang/System.getSecurityManager
+  0 311481/2     4790260420725            7             <- java/lang/System.getSecurityManager
+  0 311481/2     4790260420732            7           <- java/lang/Thread.checkAccess
+  0 311481/2     4790260420741            8           -> java/lang/Thread.setPriority0
+  0 311481/2     4790260420760           19           <- java/lang/Thread.setPriority0
+  0 311481/2     4790260420768            8         <- java/lang/Thread.setPriority
+  0 311481/2     4790260420777            8         -> java/lang/Thread.nextThreadID
+  0 311481/2     4790260420785            8         <- java/lang/Thread.nextThreadID
+  0 311481/2     4790260420793            7 <- java/lang/Thread.init
+  0 311481/2     4790260420801            7 <- java/lang/Thread.<init>
+  0 311481/2     4790260420810            9 -> java/lang/ThreadGroup.add
+  0 311481/2     4790260420819            8 <- java/lang/ThreadGroup.add
+  0 311481/2     4790260420834           15 -> java/lang/Shutdown.shutdown
+  0 311481/2     4790260420846           12   -> java/lang/Shutdown.sequence
+  0 311481/2     4790260420855            9     -> java/lang/Shutdown.runHooks
+  0 311481/2     4790260420867           11       -> java/util/AbstractList.iterator
+  0 311481/2     4790260421144          277         -> java/util/AbstractList$Itr.<init>
+  0 311481/2     4790260421156           12           -> java/util/AbstractList$Itr.<init>
+  0 311481/2     4790260421168           11             -> java/lang/Object.<init>
+  0 311481/2     4790260421175            7             <- java/lang/Object.<init>
+  0 311481/2     4790260421189           13           <- java/util/AbstractList$Itr.<init>
+  0 311481/2     4790260421197            7         <- java/util/AbstractList$Itr.<init>
+  0 311481/2     4790260421205            7       <- java/util/AbstractList.iterator
+  0 311481/2     4790260421218           13       -> java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260421229           11       <- java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260421240           10       -> java/util/AbstractList$Itr.next
+  0 311481/2     4790260421249            9         -> java/util/AbstractList$Itr.checkForComodification
+  0 311481/2     4790260421256            7         <- java/util/AbstractList$Itr.checkForComodification
+  0 311481/2     4790260421267           10         -> java/util/ArrayList.get
+  0 311481/2     4790260421274            7           -> java/util/ArrayList.RangeCheck
+  0 311481/2     4790260421282            7           <- java/util/ArrayList.RangeCheck
+  0 311481/2     4790260421290            7         <- java/util/ArrayList.get
+  0 311481/2     4790260421297            7       <- java/util/AbstractList$Itr.next
+  0 311481/2     4790260421310           12       -> java/io/Console$1$1.run
+  0 311481/2     4790260421321           10         -> java/io/Console.access$600
+  0 311481/2     4790260421330            9         <- java/io/Console.access$600
+  0 311481/2     4790260421338            7       <- java/io/Console$1$1.run
+  0 311481/2     4790260421346            7       -> java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260421353            7       <- java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260421361            7       -> java/util/AbstractList$Itr.next
+  0 311481/2     4790260421368            7         -> java/util/AbstractList$Itr.checkForComodification
+  0 311481/2     4790260421376            7         <- java/util/AbstractList$Itr.checkForComodification
+  0 311481/2     4790260421384            8         -> java/util/ArrayList.get
+  0 311481/2     4790260421391            7           -> java/util/ArrayList.RangeCheck
+  0 311481/2     4790260421398            7           <- java/util/ArrayList.RangeCheck
+  0 311481/2     4790260421406            7         <- java/util/ArrayList.get
+  0 311481/2     4790260421414            7       <- java/util/AbstractList$Itr.next
+  0 311481/2     4790260421422            8       -> java/lang/ApplicationShutdownHooks.run
+  0 311481/2     4790260421435           13         -> java/util/IdentityHashMap.keySet
+  0 311481/2     4790260421598          163           -> java/util/IdentityHashMap$KeySet.<init>
+  0 311481/2     4790260421610           11             -> java/util/IdentityHashMap$KeySet.<init>
+  0 311481/2     4790260421622           11               -> java/util/AbstractSet.<init>
+  0 311481/2     4790260421629            7                 -> java/util/AbstractCollection.<init>
+  0 311481/2     4790260421637            7                   -> java/lang/Object.<init>
+  0 311481/2     4790260421644            7                   <- java/lang/Object.<init>
+  0 311481/2     4790260421652            8                 <- java/util/AbstractCollection.<init>
+  0 311481/2     4790260421660            7               <- java/util/AbstractSet.<init>
+  0 311481/2     4790260421668            7             <- java/util/IdentityHashMap$KeySet.<init>
+  0 311481/2     4790260421675            7           <- java/util/IdentityHashMap$KeySet.<init>
+  0 311481/2     4790260421683            7         <- java/util/IdentityHashMap.keySet
+  0 311481/2     4790260421695           11         -> java/util/IdentityHashMap$KeySet.iterator
+  0 311481/2     4790260421882          187           -> java/util/IdentityHashMap$KeyIterator.<init>
+  0 311481/2     4790260421894           11             -> java/util/IdentityHashMap$KeyIterator.<init>
+  0 311481/2     4790260421905           11               -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311481/2     4790260421915           10                 -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311481/2     4790260421926           10                   -> java/lang/Object.<init>
+  0 311481/2     4790260421934            7                   <- java/lang/Object.<init>
+  0 311481/2     4790260421945           11                   -> java/util/IdentityHashMap.access$000
+  0 311481/2     4790260421954            8                   <- java/util/IdentityHashMap.access$000
+  0 311481/2     4790260421967           12                   -> java/util/IdentityHashMap.access$200
+  0 311481/2     4790260421975            8                   <- java/util/IdentityHashMap.access$200
+  0 311481/2     4790260421986           10                 <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311481/2     4790260421994            8               <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311481/2     4790260422002            7             <- java/util/IdentityHashMap$KeyIterator.<init>
+  0 311481/2     4790260422010            7           <- java/util/IdentityHashMap$KeyIterator.<init>
+  0 311481/2     4790260422018            7         <- java/util/IdentityHashMap$KeySet.iterator
+  0 311481/2     4790260422029           11         -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+  0 311481/2     4790260422037            8         <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+  0 311481/2     4790260422045            8         -> java/util/IdentityHashMap$KeySet.iterator
+  0 311481/2     4790260422053            7           -> java/util/IdentityHashMap$KeyIterator.<init>
+  0 311481/2     4790260422060            7             -> java/util/IdentityHashMap$KeyIterator.<init>
+  0 311481/2     4790260422068            7               -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311481/2     4790260422075            7                 -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311481/2     4790260422083            7                   -> java/lang/Object.<init>
+  0 311481/2     4790260422090            7                   <- java/lang/Object.<init>
+  0 311481/2     4790260422098            8                 <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311481/2     4790260422106            8               <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+  0 311481/2     4790260422114            7             <- java/util/IdentityHashMap$KeyIterator.<init>
+  0 311481/2     4790260422121            7           <- java/util/IdentityHashMap$KeyIterator.<init>
+  0 311481/2     4790260422129            7         <- java/util/IdentityHashMap$KeySet.iterator
+  0 311481/2     4790260422137            7         -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+  0 311481/2     4790260422145            7         <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+  0 311481/2     4790260422153            8       <- java/lang/ApplicationShutdownHooks.run
+  0 311481/2     4790260422161            7       -> java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260422168            7       <- java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260422176            7       -> java/util/AbstractList$Itr.next
+  0 311481/2     4790260422183            7         -> java/util/AbstractList$Itr.checkForComodification
+  0 311481/2     4790260422191            7         <- java/util/AbstractList$Itr.checkForComodification
+  0 311481/2     4790260422199            8         -> java/util/ArrayList.get
+  0 311481/2     4790260422206            7           -> java/util/ArrayList.RangeCheck
+  0 311481/2     4790260422213            7           <- java/util/ArrayList.RangeCheck
+  0 311481/2     4790260422221            7         <- java/util/ArrayList.get
+  0 311481/2     4790260422229            7       <- java/util/AbstractList$Itr.next
+  0 311481/2     4790260422237            8       -> java/io/File$1.run
+  0 311481/2     4790260422318           81         -> java/io/DeleteOnExitHook.<clinit>
+  0 311481/2     4790260422461          143           -> java/util/LinkedHashSet.<init>
+  0 311481/2     4790260422473           12             -> java/util/HashSet.<init>
+  0 311481/2     4790260422481            7               -> java/util/AbstractSet.<init>
+  0 311481/2     4790260422488            7                 -> java/util/AbstractCollection.<init>
+  0 311481/2     4790260422495            7                   -> java/lang/Object.<init>
+  0 311481/2     4790260422502            7                   <- java/lang/Object.<init>
+  0 311481/2     4790260422511            8                 <- java/util/AbstractCollection.<init>
+  0 311481/2     4790260422519            7               <- java/util/AbstractSet.<init>
+  0 311481/2     4790260422531           12               -> java/util/LinkedHashMap.<init>
+  0 311481/2     4790260422541           10                 -> java/util/HashMap.<init>
+  0 311481/2     4790260422549            7                   -> java/util/AbstractMap.<init>
+  0 311481/2     4790260422556            7                     -> java/lang/Object.<init>
+  0 311481/2     4790260422563            7                     <- java/lang/Object.<init>
+  0 311481/2     4790260422571            7                   <- java/util/AbstractMap.<init>
+  0 311481/2     4790260422580            9                   -> java/lang/Float.isNaN
+  0 311481/2     4790260422588            7                   <- java/lang/Float.isNaN
+  0 311481/2     4790260422600           12                   -> java/util/LinkedHashMap.init
+  0 311481/2     4790260422608            8                     -> java/util/LinkedHashMap$Entry.<init>
+  0 311481/2     4790260422615            7                       -> java/util/HashMap$Entry.<init>
+  0 311481/2     4790260422623            7                         -> java/lang/Object.<init>
+  0 311481/2     4790260422630            6                         <- java/lang/Object.<init>
+  0 311481/2     4790260422638            7                       <- java/util/HashMap$Entry.<init>
+  0 311481/2     4790260422645            7                     <- java/util/LinkedHashMap$Entry.<init>
+  0 311481/2     4790260422653            7                   <- java/util/LinkedHashMap.init
+  0 311481/2     4790260422660            7                 <- java/util/HashMap.<init>
+  0 311481/2     4790260422668            7               <- java/util/LinkedHashMap.<init>
+  0 311481/2     4790260422676            7             <- java/util/HashSet.<init>
+  0 311481/2     4790260422683            7           <- java/util/LinkedHashSet.<init>
+  0 311481/2     4790260422692            9         <- java/io/DeleteOnExitHook.<clinit>
+  0 311481/2     4790260422703           10         -> java/io/DeleteOnExitHook.hook
+  0 311481/2     4790260422713           10           -> java/io/DeleteOnExitHook.<init>
+  0 311481/2     4790260422723            9             -> java/lang/Object.<init>
+  0 311481/2     4790260422730            7             <- java/lang/Object.<init>
+  0 311481/2     4790260422738            7           <- java/io/DeleteOnExitHook.<init>
+  0 311481/2     4790260422746            7         <- java/io/DeleteOnExitHook.hook
+  0 311481/2     4790260422756           10         -> java/io/DeleteOnExitHook.run
+  0 311481/2     4790260422768           12           -> java/util/ArrayList.<init>
+  0 311481/2     4790260422775            7             -> java/util/AbstractList.<init>
+  0 311481/2     4790260422783            7               -> java/util/AbstractCollection.<init>
+  0 311481/2     4790260422790            7                 -> java/lang/Object.<init>
+  0 311481/2     4790260422797            7                 <- java/lang/Object.<init>
+  0 311481/2     4790260422805            7               <- java/util/AbstractCollection.<init>
+  0 311481/2     4790260422813            7             <- java/util/AbstractList.<init>
+  0 311481/2     4790260422824           11             -> java/util/AbstractCollection.toArray
+  0 311481/2     4790260422835           10               -> java/util/HashSet.size
+  0 311481/2     4790260422844            9               <- java/util/HashSet.size
+  0 311481/2     4790260422855           10               -> java/util/HashSet.iterator
+  0 311481/2     4790260422865            9                 -> java/util/HashMap.keySet
+  0 311481/2     4790260422956           91                   -> java/util/HashMap$KeySet.<init>
+  0 311481/2     4790260422967           10                     -> java/util/HashMap$KeySet.<init>
+  0 311481/2     4790260422978           10                       -> java/util/AbstractSet.<init>
+  0 311481/2     4790260422985            7                         -> java/util/AbstractCollection.<init>
+  0 311481/2     4790260422993            7                           -> java/lang/Object.<init>
+  0 311481/2     4790260423000            7                           <- java/lang/Object.<init>
+  0 311481/2     4790260423008            7                         <- java/util/AbstractCollection.<init>
+  0 311481/2     4790260423015            7                       <- java/util/AbstractSet.<init>
+  0 311481/2     4790260423023            7                     <- java/util/HashMap$KeySet.<init>
+  0 311481/2     4790260423031            7                   <- java/util/HashMap$KeySet.<init>
+  0 311481/2     4790260423038            7                 <- java/util/HashMap.keySet
+  0 311481/2     4790260423049           10                 -> java/util/HashMap$KeySet.iterator
+  0 311481/2     4790260423060           11                   -> java/util/LinkedHashMap.newKeyIterator
+  0 311481/2     4790260423243          182                     -> java/util/LinkedHashMap$KeyIterator.<init>
+  0 311481/2     4790260423254           11                       -> java/util/LinkedHashMap$KeyIterator.<init>
+  0 311481/2     4790260423266           11                         -> java/util/LinkedHashMap$LinkedHashIterator.<init>
+  0 311481/2     4790260423276            9                           -> java/util/LinkedHashMap$LinkedHashIterator.<init>
+  0 311481/2     4790260423286           10                             -> java/lang/Object.<init>
+  0 311481/2     4790260423294            7                             <- java/lang/Object.<init>
+  0 311481/2     4790260423311           16                           <- java/util/LinkedHashMap$LinkedHashIterator.<init>
+  0 311481/2     4790260423319            8                         <- java/util/LinkedHashMap$LinkedHashIterator.<init>
+  0 311481/2     4790260423327            7                       <- java/util/LinkedHashMap$KeyIterator.<init>
+  0 311481/2     4790260423334            7                     <- java/util/LinkedHashMap$KeyIterator.<init>
+  0 311481/2     4790260423342            7                   <- java/util/LinkedHashMap.newKeyIterator
+  0 311481/2     4790260423350            7                 <- java/util/HashMap$KeySet.iterator
+  0 311481/2     4790260423357            7               <- java/util/HashSet.iterator
+  0 311481/2     4790260423369           11               -> java/util/LinkedHashMap$LinkedHashIterator.hasNext
+  0 311481/2     4790260423377            8               <- java/util/LinkedHashMap$LinkedHashIterator.hasNext
+  0 311481/2     4790260423385            8             <- java/util/AbstractCollection.toArray
+  0 311481/2     4790260423393            8             -> java/lang/Object.getClass
+  0 311481/2     4790260423402            8             <- java/lang/Object.getClass
+  0 311481/2     4790260423410            8           <- java/util/ArrayList.<init>
+  0 311481/2     4790260423422           11           -> java/util/Collections.reverse
+  0 311481/2     4790260423435           13           <- java/util/Collections.reverse
+  0 311481/2     4790260423445           10           -> java/util/AbstractList.iterator
+  0 311481/2     4790260423453            8             -> java/util/AbstractList$Itr.<init>
+  0 311481/2     4790260423460            7               -> java/util/AbstractList$Itr.<init>
+  0 311481/2     4790260423468            7                 -> java/lang/Object.<init>
+  0 311481/2     4790260423475            7                 <- java/lang/Object.<init>
+  0 311481/2     4790260423483            7               <- java/util/AbstractList$Itr.<init>
+  0 311481/2     4790260423490            7             <- java/util/AbstractList$Itr.<init>
+  0 311481/2     4790260423498            7           <- java/util/AbstractList.iterator
+  0 311481/2     4790260423508           10           -> java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260423516            7           <- java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260423524            8         <- java/io/DeleteOnExitHook.run
+  0 311481/2     4790260423532            7       <- java/io/File$1.run
+  0 311481/2     4790260423539            7       -> java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260423547            7       <- java/util/AbstractList$Itr.hasNext
+  0 311481/2     4790260423554            7     <- java/lang/Shutdown.runHooks
+  0 311481/2     4790260423564            9   <- java/lang/Shutdown.sequence
+  0 311481/2     4790260423572            7 <- java/lang/Shutdown.shutdown
+
+I truncated 22800 lines from the above output to make it fit here.
+
+The fifth column is indented by 2 spaces to show when a new method begins.
+This shows which method is calling which.
+
+The TIME(us) column shows time since boot.
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read.
+
+The FILE column shows file that was being executed.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+Try skimming down the "DELTA(us)" column to find the largest delta time,
+and see what lines it corresponds with.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+If you see "drops" warnings, see the Notes/ALLjava_notes.txt file for details.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_methodcalls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_methodcalls_example.txt
new file mode 100644
index 0000000..22a2b4d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_methodcalls_example.txt
@@ -0,0 +1,999 @@
+The following are examples of running the j_methodcalls.d script.
+
+This traces calls to methods from all Java processes on the system with hotspot
+provider support (1.6.0). Method calls are only visible when using the flag 
+"+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile
+
+Here we see it running on Code/Java/Func_abc
+
+# j_methodcalls_example.txt
+Tracing... Hit Ctrl-C to end.
+
+    PID    COUNT CLASS.METHOD
+ 311492        1 Func_abc.func_a
+ 311492        1 Func_abc.func_b
+ 311492        1 Func_abc.func_c
+ 311492        1 Func_abc.main
+ 311492        1 java/io/BufferedInputStream.<clinit>
+ 311492        1 java/io/BufferedReader.<clinit>
+ 311492        1 java/io/BufferedReader.close
+ 311492        1 java/io/BufferedWriter.<clinit>
+ 311492        1 java/io/Console$1$1.<init>
+ 311492        1 java/io/Console$1$1.run
+ 311492        1 java/io/Console$1.<init>
+ 311492        1 java/io/Console$1.consoleRestoreHook
+ 311492        1 java/io/Console.<clinit>
+ 311492        1 java/io/Console.access$600
+ 311492        1 java/io/DataInputStream.<init>
+ 311492        1 java/io/DataInputStream.readFully
+ 311492        1 java/io/DeleteOnExitHook.<clinit>
+ 311492        1 java/io/DeleteOnExitHook.<init>
+ 311492        1 java/io/DeleteOnExitHook.hook
+ 311492        1 java/io/DeleteOnExitHook.run
+ 311492        1 java/io/File$1.<init>
+ 311492        1 java/io/File$1.run
+ 311492        1 java/io/File.<clinit>
+ 311492        1 java/io/File.lastModified
+ 311492        1 java/io/File.length
+ 311492        1 java/io/FileDescriptor.<clinit>
+ 311492        1 java/io/FileDescriptor.initIDs
+ 311492        1 java/io/FileInputStream.<clinit>
+ 311492        1 java/io/FileInputStream.available
+ 311492        1 java/io/FileInputStream.initIDs
+ 311492        1 java/io/FileOutputStream.<clinit>
+ 311492        1 java/io/FileOutputStream.initIDs
+ 311492        1 java/io/FilePermission.newPermissionCollection
+ 311492        1 java/io/FilePermissionCollection.<clinit>
+ 311492        1 java/io/FilePermissionCollection.<init>
+ 311492        1 java/io/FilePermissionCollection.add
+ 311492        1 java/io/FileReader.<init>
+ 311492        1 java/io/FileSystem.<clinit>
+ 311492        1 java/io/FileSystem.<init>
+ 311492        1 java/io/FileSystem.getFileSystem
+ 311492        1 java/io/FilterInputStream.close
+ 311492        1 java/io/InputStreamReader.<init>
+ 311492        1 java/io/InputStreamReader.close
+ 311492        1 java/io/ObjectStreamClass.<clinit>
+ 311492        1 java/io/ObjectStreamClass.initNative
+ 311492        1 java/io/UnixFileSystem.<clinit>
+ 311492        1 java/io/UnixFileSystem.<init>
+ 311492        1 java/io/UnixFileSystem.getLastModifiedTime
+ 311492        1 java/io/UnixFileSystem.getLength
+ 311492        1 java/io/UnixFileSystem.initIDs
+ 311492        1 java/lang/AbstractStringBuilder.<clinit>
+ 311492        1 java/lang/ApplicationShutdownHooks.<clinit>
+ 311492        1 java/lang/ApplicationShutdownHooks.<init>
+ 311492        1 java/lang/ApplicationShutdownHooks.hook
+ 311492        1 java/lang/ApplicationShutdownHooks.run
+ 311492        1 java/lang/Boolean.<clinit>
+ 311492        1 java/lang/Byte.<clinit>
+ 311492        1 java/lang/Character.<clinit>
+ 311492        1 java/lang/CharacterDataLatin1.<clinit>
+ 311492        1 java/lang/Class.<clinit>
+ 311492        1 java/lang/Class.access$302
+ 311492        1 java/lang/Class.registerNatives
+ 311492        1 java/lang/ClassLoader$3.<init>
+ 311492        1 java/lang/ClassLoader$3.run
+ 311492        1 java/lang/ClassLoader$NativeLibrary.<init>
+ 311492        1 java/lang/ClassLoader$NativeLibrary.getFromClass
+ 311492        1 java/lang/ClassLoader$NativeLibrary.load
+ 311492        1 java/lang/ClassLoader.<clinit>
+ 311492        1 java/lang/ClassLoader.access$100
+ 311492        1 java/lang/ClassLoader.addClass
+ 311492        1 java/lang/ClassLoader.checkCerts
+ 311492        1 java/lang/ClassLoader.defineClass
+ 311492        1 java/lang/ClassLoader.defineClass1
+ 311492        1 java/lang/ClassLoader.defineClassSourceLocation
+ 311492        1 java/lang/ClassLoader.getSystemClassLoader
+ 311492        1 java/lang/ClassLoader.initSystemClassLoader
+ 311492        1 java/lang/ClassLoader.loadLibrary
+ 311492        1 java/lang/ClassLoader.loadLibrary0
+ 311492        1 java/lang/ClassLoader.postDefineClass
+ 311492        1 java/lang/ClassLoader.preDefineClass
+ 311492        1 java/lang/ClassLoader.registerNatives
+ 311492        1 java/lang/Compiler$1.<init>
+ 311492        1 java/lang/Compiler$1.run
+ 311492        1 java/lang/Compiler.<clinit>
+ 311492        1 java/lang/Compiler.registerNatives
+ 311492        1 java/lang/Double.<clinit>
+ 311492        1 java/lang/Double.doubleToLongBits
+ 311492        1 java/lang/Double.doubleToRawLongBits
+ 311492        1 java/lang/Error.<init>
+ 311492        1 java/lang/Float.<clinit>
+ 311492        1 java/lang/Float.floatToIntBits
+ 311492        1 java/lang/Float.floatToRawIntBits
+ 311492        1 java/lang/IncompatibleClassChangeError.<init>
+ 311492        1 java/lang/Integer.<clinit>
+ 311492        1 java/lang/LinkageError.<init>
+ 311492        1 java/lang/Long.<clinit>
+ 311492        1 java/lang/Math.<clinit>
+ 311492        1 java/lang/NoSuchMethodError.<init>
+ 311492        1 java/lang/Object.<clinit>
+ 311492        1 java/lang/Object.notifyAll
+ 311492        1 java/lang/Object.registerNatives
+ 311492        1 java/lang/Runtime.<clinit>
+ 311492        1 java/lang/Runtime.<init>
+ 311492        1 java/lang/Runtime.loadLibrary0
+ 311492        1 java/lang/Runtime.maxMemory
+ 311492        1 java/lang/Short.<clinit>
+ 311492        1 java/lang/Shutdown.<clinit>
+ 311492        1 java/lang/Shutdown.runHooks
+ 311492        1 java/lang/Shutdown.sequence
+ 311492        1 java/lang/Shutdown.shutdown
+ 311492        1 java/lang/String.<clinit>
+ 311492        1 java/lang/String.checkBounds
+ 311492        1 java/lang/String.length
+ 311492        1 java/lang/String.trim
+ 311492        1 java/lang/StringBuffer.<clinit>
+ 311492        1 java/lang/StringCoding$StringDecoder.decode
+ 311492        1 java/lang/StringCoding.<clinit>
+ 311492        1 java/lang/StringCoding.access$000
+ 311492        1 java/lang/StringCoding.access$100
+ 311492        1 java/lang/StringCoding.decode
+ 311492        1 java/lang/StringCoding.deref
+ 311492        1 java/lang/StringCoding.lookupCharset
+ 311492        1 java/lang/StringCoding.safeTrim
+ 311492        1 java/lang/StringCoding.scale
+ 311492        1 java/lang/StringCoding.set
+ 311492        1 java/lang/System$2.<init>
+ 311492        1 java/lang/System.<clinit>
+ 311492        1 java/lang/System.getCallerClass
+ 311492        1 java/lang/System.initProperties
+ 311492        1 java/lang/System.initializeSystemClass
+ 311492        1 java/lang/System.loadLibrary
+ 311492        1 java/lang/System.mapLibraryName
+ 311492        1 java/lang/System.nullInputStream
+ 311492        1 java/lang/System.registerNatives
+ 311492        1 java/lang/System.setErr0
+ 311492        1 java/lang/System.setIn0
+ 311492        1 java/lang/System.setOut0
+ 311492        1 java/lang/SystemClassLoaderAction.<init>
+ 311492        1 java/lang/SystemClassLoaderAction.run
+ 311492        1 java/lang/Terminator$1.<init>
+ 311492        1 java/lang/Terminator.<clinit>
+ 311492        1 java/lang/Terminator.setup
+ 311492        1 java/lang/Thread.<clinit>
+ 311492        1 java/lang/Thread.exit
+ 311492        1 java/lang/Thread.getPriority
+ 311492        1 java/lang/Thread.interrupted
+ 311492        1 java/lang/Thread.isInterrupted
+ 311492        1 java/lang/Thread.registerNatives
+ 311492        1 java/lang/Thread.setContextClassLoader
+ 311492        1 java/lang/ThreadGroup.remove
+ 311492        1 java/lang/ThreadLocal$ThreadLocalMap$Entry.<init>
+ 311492        1 java/lang/ThreadLocal$ThreadLocalMap.<init>
+ 311492        1 java/lang/ThreadLocal$ThreadLocalMap.access$100
+ 311492        1 java/lang/ThreadLocal$ThreadLocalMap.set
+ 311492        1 java/lang/ThreadLocal$ThreadLocalMap.setThreshold
+ 311492        1 java/lang/ThreadLocal.<clinit>
+ 311492        1 java/lang/ThreadLocal.createMap
+ 311492        1 java/lang/ThreadLocal.get
+ 311492        1 java/lang/ThreadLocal.initialValue
+ 311492        1 java/lang/ThreadLocal.set
+ 311492        1 java/lang/ThreadLocal.setInitialValue
+ 311492        1 java/lang/ref/Finalizer$FinalizerThread.<init>
+ 311492        1 java/lang/ref/Finalizer$FinalizerThread.run
+ 311492        1 java/lang/ref/Finalizer.<clinit>
+ 311492        1 java/lang/ref/Finalizer.access$000
+ 311492        1 java/lang/ref/Reference$ReferenceHandler.<init>
+ 311492        1 java/lang/ref/Reference$ReferenceHandler.run
+ 311492        1 java/lang/ref/Reference.<clinit>
+ 311492        1 java/lang/ref/Reference.access$200
+ 311492        1 java/lang/ref/ReferenceQueue.<clinit>
+ 311492        1 java/lang/ref/ReferenceQueue.reallyPoll
+ 311492        1 java/lang/reflect/AccessibleObject.<clinit>
+ 311492        1 java/lang/reflect/Constructor.<clinit>
+ 311492        1 java/lang/reflect/Field.<clinit>
+ 311492        1 java/lang/reflect/Field.getName
+ 311492        1 java/lang/reflect/Method.<clinit>
+ 311492        1 java/lang/reflect/Method.getModifiers
+ 311492        1 java/lang/reflect/Modifier.<clinit>
+ 311492        1 java/lang/reflect/Modifier.isVolatile
+ 311492        1 java/lang/reflect/ReflectAccess.<init>
+ 311492        1 java/lang/reflect/ReflectPermission.<init>
+ 311492        1 java/net/ContentHandler.<init>
+ 311492        1 java/net/Parts.getQuery
+ 311492        1 java/net/URL.<clinit>
+ 311492        1 java/net/URL.openConnection
+ 311492        1 java/net/URLClassLoader$7.<init>
+ 311492        1 java/net/URLClassLoader.<clinit>
+ 311492        1 java/net/URLClassLoader.access$000
+ 311492        1 java/net/URLClassLoader.defineClass
+ 311492        1 java/net/URLClassLoader.getPermissions
+ 311492        1 java/net/URLConnection.<clinit>
+ 311492        1 java/net/URLConnection.<init>
+ 311492        1 java/net/UnknownContentHandler.<init>
+ 311492        1 java/nio/Bits.<clinit>
+ 311492        1 java/nio/ByteOrder.<clinit>
+ 311492        1 java/nio/charset/Charset.<clinit>
+ 311492        1 java/nio/charset/Charset.<init>
+ 311492        1 java/nio/charset/CharsetDecoder.<clinit>
+ 311492        1 java/nio/charset/CharsetDecoder.flush
+ 311492        1 java/nio/charset/CharsetDecoder.implFlush
+ 311492        1 java/nio/charset/CharsetEncoder.<clinit>
+ 311492        1 java/nio/charset/CoderResult$1.<init>
+ 311492        1 java/nio/charset/CoderResult$2.<init>
+ 311492        1 java/nio/charset/CoderResult.<clinit>
+ 311492        1 java/nio/charset/CodingErrorAction.<clinit>
+ 311492        1 java/nio/charset/spi/CharsetProvider.<init>
+ 311492        1 java/security/AccessControlContext.<clinit>
+ 311492        1 java/security/BasicPermission.newPermissionCollection
+ 311492        1 java/security/BasicPermissionCollection.<clinit>
+ 311492        1 java/security/BasicPermissionCollection.<init>
+ 311492        1 java/security/BasicPermissionCollection.add
+ 311492        1 java/security/CodeSource.<init>
+ 311492        1 java/security/Permissions.<clinit>
+ 311492        1 java/security/Policy$UnsupportedEmptyCollection.<init>
+ 311492        1 java/security/Policy.<clinit>
+ 311492        1 java/security/PrivilegedActionException.<init>
+ 311492        1 java/security/ProtectionDomain.<clinit>
+ 311492        1 java/security/ProtectionDomain.<init>
+ 311492        1 java/security/SecureClassLoader.<clinit>
+ 311492        1 java/security/SecureClassLoader.check
+ 311492        1 java/security/SecureClassLoader.defineClass
+ 311492        1 java/security/SecureClassLoader.getPermissions
+ 311492        1 java/security/SecureClassLoader.getProtectionDomain
+ 311492        1 java/util/AbstractCollection.toArray
+ 311492        1 java/util/BitSet.<clinit>
+ 311492        1 java/util/BitSet.<init>
+ 311492        1 java/util/BitSet.initWords
+ 311492        1 java/util/Collections$SynchronizedMap.<init>
+ 311492        1 java/util/Collections.<clinit>
+ 311492        1 java/util/Collections.reverse
+ 311492        1 java/util/Collections.synchronizedMap
+ 311492        1 java/util/HashMap$KeySet.iterator
+ 311492        1 java/util/HashMap.keySet
+ 311492        1 java/util/HashMap.size
+ 311492        1 java/util/HashSet.<clinit>
+ 311492        1 java/util/HashSet.iterator
+ 311492        1 java/util/HashSet.size
+ 311492        1 java/util/Hashtable$EmptyEnumerator.<init>
+ 311492        1 java/util/Hashtable$EmptyIterator.<init>
+ 311492        1 java/util/Hashtable.<clinit>
+ 311492        1 java/util/IdentityHashMap.<clinit>
+ 311492        1 java/util/IdentityHashMap.<init>
+ 311492        1 java/util/IdentityHashMap.access$000
+ 311492        1 java/util/IdentityHashMap.access$200
+ 311492        1 java/util/IdentityHashMap.init
+ 311492        1 java/util/IdentityHashMap.keySet
+ 311492        1 java/util/LinkedHashMap$LinkedHashIterator.hasNext
+ 311492        1 java/util/LinkedHashMap.newKeyIterator
+ 311492        1 java/util/LinkedHashSet.<init>
+ 311492        1 java/util/Locale.<clinit>
+ 311492        1 java/util/Locale.getInstance
+ 311492        1 java/util/Properties.<clinit>
+ 311492        1 java/util/StringTokenizer.countTokens
+ 311492        1 java/util/StringTokenizer.hasMoreTokens
+ 311492        1 java/util/Vector.contains
+ 311492        1 java/util/Vector.copyInto
+ 311492        1 java/util/Vector.indexOf
+ 311492        1 java/util/concurrent/ConcurrentHashMap$Segment.get
+ 311492        1 java/util/concurrent/ConcurrentHashMap$Segment.getFirst
+ 311492        1 java/util/concurrent/ConcurrentHashMap$Segment.newArray
+ 311492        1 java/util/concurrent/ConcurrentHashMap.get
+ 311492        1 java/util/concurrent/atomic/AtomicInteger.<clinit>
+ 311492        1 java/util/concurrent/atomic/AtomicInteger.<init>
+ 311492        1 java/util/concurrent/atomic/AtomicInteger.get
+ 311492        1 java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.<clinit>
+ 311492        1 java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.<init>
+ 311492        1 java/util/concurrent/atomic/AtomicReferenceFieldUpdater.<init>
+ 311492        1 java/util/concurrent/atomic/AtomicReferenceFieldUpdater.newUpdater
+ 311492        1 java/util/concurrent/locks/AbstractQueuedSynchronizer.<clinit>
+ 311492        1 java/util/concurrent/locks/AbstractQueuedSynchronizer.getState
+ 311492        1 java/util/jar/JarEntry.<init>
+ 311492        1 java/util/jar/JarFile$JarFileEntry.<init>
+ 311492        1 java/util/jar/JarFile.<clinit>
+ 311492        1 java/util/jar/JarFile.getManEntry
+ 311492        1 java/util/jar/JarFile.hasClassPathAttribute
+ 311492        1 java/util/jar/JarFile.isKnownToNotHaveClassPathAttribute
+ 311492        1 java/util/jar/JavaUtilJarAccessImpl.<init>
+ 311492        1 java/util/jar/JavaUtilJarAccessImpl.jarFileHasClassPathAttribute
+ 311492        1 java/util/zip/Inflater.<clinit>
+ 311492        1 java/util/zip/Inflater.<init>
+ 311492        1 java/util/zip/Inflater.finished
+ 311492        1 java/util/zip/Inflater.init
+ 311492        1 java/util/zip/Inflater.initIDs
+ 311492        1 java/util/zip/Inflater.needsDictionary
+ 311492        1 java/util/zip/Inflater.needsInput
+ 311492        1 java/util/zip/Inflater.setInput
+ 311492        1 java/util/zip/InflaterInputStream.<init>
+ 311492        1 java/util/zip/InflaterInputStream.ensureOpen
+ 311492        1 java/util/zip/InflaterInputStream.read
+ 311492        1 java/util/zip/ZipEntry.<clinit>
+ 311492        1 java/util/zip/ZipEntry.getSize
+ 311492        1 java/util/zip/ZipEntry.initFields
+ 311492        1 java/util/zip/ZipEntry.initIDs
+ 311492        1 java/util/zip/ZipFile$1.<init>
+ 311492        1 java/util/zip/ZipFile$1.close
+ 311492        1 java/util/zip/ZipFile$1.fill
+ 311492        1 java/util/zip/ZipFile$ZipFileInputStream.<init>
+ 311492        1 java/util/zip/ZipFile$ZipFileInputStream.read
+ 311492        1 java/util/zip/ZipFile.<clinit>
+ 311492        1 java/util/zip/ZipFile.<init>
+ 311492        1 java/util/zip/ZipFile.access$000
+ 311492        1 java/util/zip/ZipFile.access$1000
+ 311492        1 java/util/zip/ZipFile.access$1100
+ 311492        1 java/util/zip/ZipFile.access$1200
+ 311492        1 java/util/zip/ZipFile.access$800
+ 311492        1 java/util/zip/ZipFile.access$900
+ 311492        1 java/util/zip/ZipFile.ensureOpenOrZipException
+ 311492        1 java/util/zip/ZipFile.getCSize
+ 311492        1 java/util/zip/ZipFile.getInflater
+ 311492        1 java/util/zip/ZipFile.getMethod
+ 311492        1 java/util/zip/ZipFile.getTotal
+ 311492        1 java/util/zip/ZipFile.initIDs
+ 311492        1 java/util/zip/ZipFile.open
+ 311492        1 java/util/zip/ZipFile.read
+ 311492        1 java/util/zip/ZipFile.releaseInflater
+ 311492        1 sun/misc/ExtensionDependency.checkExtensionsDependencies
+ 311492        1 sun/misc/FileURLMapper.<init>
+ 311492        1 sun/misc/FileURLMapper.exists
+ 311492        1 sun/misc/JarIndex.getJarIndex
+ 311492        1 sun/misc/Launcher$AppClassLoader$1.<init>
+ 311492        1 sun/misc/Launcher$AppClassLoader$1.run
+ 311492        1 sun/misc/Launcher$AppClassLoader.<clinit>
+ 311492        1 sun/misc/Launcher$AppClassLoader.<init>
+ 311492        1 sun/misc/Launcher$AppClassLoader.getAppClassLoader
+ 311492        1 sun/misc/Launcher$AppClassLoader.getPermissions
+ 311492        1 sun/misc/Launcher$ExtClassLoader$1.<init>
+ 311492        1 sun/misc/Launcher$ExtClassLoader$1.run
+ 311492        1 sun/misc/Launcher$ExtClassLoader.<init>
+ 311492        1 sun/misc/Launcher$ExtClassLoader.getExtClassLoader
+ 311492        1 sun/misc/Launcher$ExtClassLoader.getExtDirs
+ 311492        1 sun/misc/Launcher$ExtClassLoader.getExtURLs
+ 311492        1 sun/misc/Launcher$Factory.<clinit>
+ 311492        1 sun/misc/Launcher.<clinit>
+ 311492        1 sun/misc/Launcher.<init>
+ 311492        1 sun/misc/Launcher.access$200
+ 311492        1 sun/misc/Launcher.access$300
+ 311492        1 sun/misc/Launcher.getClassPath
+ 311492        1 sun/misc/Launcher.getLauncher
+ 311492        1 sun/misc/Launcher.pathToURLs
+ 311492        1 sun/misc/MetaIndex.<clinit>
+ 311492        1 sun/misc/Resource.<init>
+ 311492        1 sun/misc/Resource.getByteBuffer
+ 311492        1 sun/misc/Resource.getBytes
+ 311492        1 sun/misc/Resource.getCodeSigners
+ 311492        1 sun/misc/SharedSecrets.<clinit>
+ 311492        1 sun/misc/SharedSecrets.getJavaIOAccess
+ 311492        1 sun/misc/SharedSecrets.getJavaIODeleteOnExitAccess
+ 311492        1 sun/misc/SharedSecrets.javaUtilJarAccess
+ 311492        1 sun/misc/SharedSecrets.setJavaIOAccess
+ 311492        1 sun/misc/SharedSecrets.setJavaIODeleteOnExitAccess
+ 311492        1 sun/misc/SharedSecrets.setJavaLangAccess
+ 311492        1 sun/misc/SharedSecrets.setJavaNetAccess
+ 311492        1 sun/misc/SharedSecrets.setJavaUtilJarAccess
+ 311492        1 sun/misc/Signal.<clinit>
+ 311492        1 sun/misc/SignalHandler.<clinit>
+ 311492        1 sun/misc/SoftCache.<init>
+ 311492        1 sun/misc/URLClassPath$FileLoader$1.<init>
+ 311492        1 sun/misc/URLClassPath$FileLoader$1.getCodeSourceURL
+ 311492        1 sun/misc/URLClassPath$FileLoader$1.getContentLength
+ 311492        1 sun/misc/URLClassPath$FileLoader$1.getInputStream
+ 311492        1 sun/misc/URLClassPath$FileLoader.<init>
+ 311492        1 sun/misc/URLClassPath$FileLoader.getResource
+ 311492        1 sun/misc/URLClassPath$JarLoader$1.<init>
+ 311492        1 sun/misc/URLClassPath$JarLoader$1.run
+ 311492        1 sun/misc/URLClassPath$JarLoader.access$502
+ 311492        1 sun/misc/URLClassPath$JarLoader.access$600
+ 311492        1 sun/misc/URLClassPath$JarLoader.access$702
+ 311492        1 sun/misc/URLClassPath$JarLoader.getJarFile
+ 311492        1 sun/misc/URLClassPath$JarLoader.parseExtensionsDependencies
+ 311492        1 sun/misc/URLClassPath$Loader.getClassPath
+ 311492        1 sun/misc/URLClassPath.<clinit>
+ 311492        1 sun/misc/URLClassPath.access$300
+ 311492        1 sun/misc/Unsafe.<clinit>
+ 311492        1 sun/misc/Unsafe.<init>
+ 311492        1 sun/misc/Unsafe.allocateMemory
+ 311492        1 sun/misc/Unsafe.ensureClassInitialized
+ 311492        1 sun/misc/Unsafe.freeMemory
+ 311492        1 sun/misc/Unsafe.getByte
+ 311492        1 sun/misc/Unsafe.putLong
+ 311492        1 sun/misc/Unsafe.registerNatives
+ 311492        1 sun/misc/VM.<clinit>
+ 311492        1 sun/misc/VM.booted
+ 311492        1 sun/misc/VM.initialize
+ 311492        1 sun/misc/VM.initializeOSEnvironment
+ 311492        1 sun/misc/Version.<clinit>
+ 311492        1 sun/net/www/MessageHeader.<init>
+ 311492        1 sun/net/www/MessageHeader.grow
+ 311492        1 sun/net/www/ParseUtil.<clinit>
+ 311492        1 sun/net/www/URLConnection.<init>
+ 311492        1 sun/net/www/protocol/file/FileURLConnection.<clinit>
+ 311492        1 sun/net/www/protocol/file/FileURLConnection.<init>
+ 311492        1 sun/net/www/protocol/file/FileURLConnection.getPermission
+ 311492        1 sun/net/www/protocol/file/Handler.<init>
+ 311492        1 sun/net/www/protocol/file/Handler.createFileURLConnection
+ 311492        1 sun/nio/cs/FastCharsetProvider.<init>
+ 311492        1 sun/nio/cs/StandardCharsets$Aliases.init
+ 311492        1 sun/nio/cs/StandardCharsets$Cache.init
+ 311492        1 sun/nio/cs/StandardCharsets$Classes.init
+ 311492        1 sun/nio/cs/StandardCharsets.<clinit>
+ 311492        1 sun/nio/cs/StandardCharsets.<init>
+ 311492        1 sun/nio/cs/StreamDecoder.<clinit>
+ 311492        1 sun/nio/cs/StreamDecoder.close
+ 311492        1 sun/nio/cs/StreamDecoder.forInputStreamReader
+ 311492        1 sun/nio/cs/StreamDecoder.implClose
+ 311492        1 sun/nio/cs/StreamDecoder.inReady
+ 311492        1 sun/nio/cs/StreamEncoder.<clinit>
+ 311492        1 sun/nio/cs/Surrogate$Parser.<clinit>
+ 311492        1 sun/nio/cs/US_ASCII$Decoder.<clinit>
+ 311492        1 sun/nio/cs/US_ASCII$Encoder.<clinit>
+ 311492        1 sun/nio/cs/US_ASCII.<init>
+ 311492        1 sun/reflect/Reflection.<clinit>
+ 311492        1 sun/reflect/ReflectionFactory$1.<init>
+ 311492        1 sun/reflect/ReflectionFactory$1.run
+ 311492        1 sun/reflect/ReflectionFactory.<clinit>
+ 311492        1 sun/reflect/ReflectionFactory.<init>
+ 311492        1 sun/reflect/ReflectionFactory.access$202
+ 311492        1 sun/reflect/ReflectionFactory.setLangReflectAccess
+ 311492        1 sun/reflect/misc/ReflectUtil.ensureMemberAccess
+ 311492        1 sun/security/provider/PolicyFile.<clinit>
+ 311492        1 sun/security/util/Debug.<clinit>
+ 311492        2 java/io/BufferedInputStream.<init>
+ 311492        2 java/io/BufferedOutputStream.<init>
+ 311492        2 java/io/BufferedReader.<init>
+ 311492        2 java/io/BufferedReader.fill
+ 311492        2 java/io/ExpiringCache$1.<init>
+ 311492        2 java/io/File.list
+ 311492        2 java/io/FileInputStream.close
+ 311492        2 java/io/FileInputStream.close0
+ 311492        2 java/io/FileInputStream.open
+ 311492        2 java/io/FileOutputStream.<init>
+ 311492        2 java/io/FilePermission$1.<init>
+ 311492        2 java/io/FilePermission.<init>
+ 311492        2 java/io/FilePermission.getMask
+ 311492        2 java/io/FilePermission.init
+ 311492        2 java/io/FileSystem.getBooleanProperty
+ 311492        2 java/io/InputStreamReader.read
+ 311492        2 java/io/OutputStreamWriter.<init>
+ 311492        2 java/io/PrintStream.init
+ 311492        2 java/io/UnixFileSystem.list
+ 311492        2 java/lang/Character.charCount
+ 311492        2 java/lang/CharacterDataLatin1.toUpperCase
+ 311492        2 java/lang/Class$1.<init>
+ 311492        2 java/lang/Class$1.run
+ 311492        2 java/lang/Class.arrayContentsEq
+ 311492        2 java/lang/Class.getConstructor0
+ 311492        2 java/lang/Class.getDeclaredConstructors0
+ 311492        2 java/lang/Class.isInterface
+ 311492        2 java/lang/Class.privateGetDeclaredConstructors
+ 311492        2 java/lang/ClassLoader.<init>
+ 311492        2 java/lang/ClassLoader.initializePath
+ 311492        2 java/lang/ClassNotFoundException.<init>
+ 311492        2 java/lang/Object.clone
+ 311492        2 java/lang/Runtime.getRuntime
+ 311492        2 java/lang/String$CaseInsensitiveComparator.<init>
+ 311492        2 java/lang/String.concat
+ 311492        2 java/lang/String.regionMatches
+ 311492        2 java/lang/StringCoding$StringDecoder.<init>
+ 311492        2 java/lang/System.getProperties
+ 311492        2 java/lang/System.nullPrintStream
+ 311492        2 java/lang/System.setProperties
+ 311492        2 java/lang/Thread.isAlive
+ 311492        2 java/lang/Thread.setDaemon
+ 311492        2 java/lang/Thread.start
+ 311492        2 java/lang/Thread.start0
+ 311492        2 java/lang/ThreadGroup.<init>
+ 311492        2 java/lang/ref/Reference$Lock.<init>
+ 311492        2 java/lang/ref/Reference.access$100
+ 311492        2 java/lang/ref/ReferenceQueue.remove
+ 311492        2 java/lang/ref/SoftReference.get
+ 311492        2 java/lang/reflect/AccessibleObject.setAccessible
+ 311492        2 java/lang/reflect/AccessibleObject.setAccessible0
+ 311492        2 java/lang/reflect/Constructor.<init>
+ 311492        2 java/lang/reflect/Constructor.acquireConstructorAccessor
+ 311492        2 java/lang/reflect/Constructor.copy
+ 311492        2 java/lang/reflect/Constructor.getParameterTypes
+ 311492        2 java/lang/reflect/Modifier.isAbstract
+ 311492        2 java/lang/reflect/Modifier.isProtected
+ 311492        2 java/lang/reflect/ReflectAccess.copyConstructor
+ 311492        2 java/net/URL.set
+ 311492        2 java/net/URLClassLoader$1.<init>
+ 311492        2 java/net/URLClassLoader$1.run
+ 311492        2 java/net/URLClassLoader.<init>
+ 311492        2 java/net/URLClassLoader.findClass
+ 311492        2 java/net/URLStreamHandler.parseURL
+ 311492        2 java/net/URLStreamHandler.setURL
+ 311492        2 java/nio/ByteOrder.<init>
+ 311492        2 java/nio/CharBuffer.allocate
+ 311492        2 java/nio/HeapByteBuffer.compact
+ 311492        2 java/nio/charset/Charset.cache
+ 311492        2 java/nio/charset/CharsetDecoder.reset
+ 311492        2 java/nio/charset/CharsetEncoder.isLegalReplacement
+ 311492        2 java/nio/charset/CharsetEncoder.onMalformedInput
+ 311492        2 java/nio/charset/CharsetEncoder.onUnmappableCharacter
+ 311492        2 java/nio/charset/CharsetEncoder.replaceWith
+ 311492        2 java/nio/charset/CoderResult.<init>
+ 311492        2 java/nio/charset/CoderResult.isError
+ 311492        2 java/security/AccessControlContext.<init>
+ 311492        2 java/security/BasicPermission.getCanonicalName
+ 311492        2 java/security/CodeSource.getCertificates
+ 311492        2 java/security/CodeSource.hashCode
+ 311492        2 java/security/PermissionCollection.setReadOnly
+ 311492        2 java/security/Permissions.<init>
+ 311492        2 java/security/Permissions.add
+ 311492        2 java/security/Permissions.getPermissionCollection
+ 311492        2 java/security/SecureClassLoader.<init>
+ 311492        2 java/util/AbstractList.iterator
+ 311492        2 java/util/BitSet.ensureCapacity
+ 311492        2 java/util/Collections$EmptyList.<init>
+ 311492        2 java/util/Collections$EmptyMap.<init>
+ 311492        2 java/util/Collections$EmptySet.<init>
+ 311492        2 java/util/Collections$ReverseComparator.<init>
+ 311492        2 java/util/HashMap$KeySet.<init>
+ 311492        2 java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+ 311492        2 java/util/IdentityHashMap$KeySet.<init>
+ 311492        2 java/util/IdentityHashMap$KeySet.iterator
+ 311492        2 java/util/LinkedHashMap$KeyIterator.<init>
+ 311492        2 java/util/LinkedHashMap$LinkedHashIterator.<init>
+ 311492        2 java/util/Properties.<init>
+ 311492        2 java/util/StringTokenizer.setMaxDelimCodePoint
+ 311492        2 java/util/concurrent/ConcurrentHashMap.<init>
+ 311492        2 java/util/jar/JarFile.<init>
+ 311492        2 java/util/zip/Inflater.inflate
+ 311492        2 java/util/zip/Inflater.inflateBytes
+ 311492        2 java/util/zip/ZipEntry.<init>
+ 311492        2 java/util/zip/ZipFile$ZipFileInputStream.close
+ 311492        2 java/util/zip/ZipFile.freeEntry
+ 311492        2 java/util/zip/ZipFile.getInputStream
+ 311492        2 java/util/zip/ZipFile.getSize
+ 311492        2 sun/misc/FileURLMapper.getPath
+ 311492        2 sun/misc/Launcher$Factory.<init>
+ 311492        2 sun/misc/Launcher$Factory.createURLStreamHandler
+ 311492        2 sun/misc/Launcher.access$100
+ 311492        2 sun/misc/MetaIndex.registerDirectory
+ 311492        2 sun/misc/NativeSignalHandler.<init>
+ 311492        2 sun/misc/Resource.cachedInputStream
+ 311492        2 sun/misc/URLClassPath.<init>
+ 311492        2 sun/misc/URLClassPath.getResource
+ 311492        2 sun/misc/URLClassPath.push
+ 311492        2 sun/misc/VM.maxDirectMemory
+ 311492        2 sun/misc/Version.init
+ 311492        2 sun/net/www/protocol/file/Handler.openConnection
+ 311492        2 sun/net/www/protocol/file/Handler.parseURL
+ 311492        2 sun/net/www/protocol/jar/Handler.<init>
+ 311492        2 sun/nio/cs/FastCharsetProvider.charsetForName
+ 311492        2 sun/nio/cs/FastCharsetProvider.lookup
+ 311492        2 sun/nio/cs/FastCharsetProvider.toLower
+ 311492        2 sun/nio/cs/StandardCharsets$Aliases.<init>
+ 311492        2 sun/nio/cs/StandardCharsets$Cache.<init>
+ 311492        2 sun/nio/cs/StandardCharsets$Classes.<init>
+ 311492        2 sun/nio/cs/StreamDecoder.<init>
+ 311492        2 sun/nio/cs/StreamDecoder.ensureOpen
+ 311492        2 sun/nio/cs/StreamDecoder.implRead
+ 311492        2 sun/nio/cs/StreamDecoder.read
+ 311492        2 sun/nio/cs/StreamDecoder.readBytes
+ 311492        2 sun/nio/cs/StreamEncoder.forOutputStreamWriter
+ 311492        2 sun/nio/cs/Surrogate$Parser.<init>
+ 311492        2 sun/nio/cs/US_ASCII.newEncoder
+ 311492        2 sun/reflect/DelegatingConstructorAccessorImpl.<init>
+ 311492        2 sun/reflect/DelegatingConstructorAccessorImpl.setDelegate
+ 311492        2 sun/reflect/NativeConstructorAccessorImpl.<init>
+ 311492        2 sun/reflect/NativeConstructorAccessorImpl.setParent
+ 311492        2 sun/reflect/Reflection.ensureMemberAccess
+ 311492        2 sun/reflect/Reflection.isSubclassOf
+ 311492        2 sun/reflect/Reflection.verifyMemberAccess
+ 311492        2 sun/reflect/ReflectionFactory.checkInitted
+ 311492        2 sun/reflect/ReflectionFactory.copyConstructor
+ 311492        2 sun/reflect/ReflectionFactory.newConstructorAccessor
+ 311492        2 sun/reflect/misc/ReflectUtil.checkPackageAccess
+ 311492        2 sun/security/provider/PolicyFile.canonPath
+ 311492        2 sun/util/PreHashedMap.put
+ 311492        3 java/io/BufferedWriter.newLine
+ 311492        3 java/io/FileInputStream.<init>
+ 311492        3 java/io/FileInputStream.read
+ 311492        3 java/io/FileInputStream.readBytes
+ 311492        3 java/io/FilterInputStream.<init>
+ 311492        3 java/io/PrintStream.newLine
+ 311492        3 java/io/PrintStream.print
+ 311492        3 java/io/PrintStream.println
+ 311492        3 java/io/Reader.<init>
+ 311492        3 java/lang/Boolean.<init>
+ 311492        3 java/lang/Class$3.<init>
+ 311492        3 java/lang/Class$3.run
+ 311492        3 java/lang/Class.forName
+ 311492        3 java/lang/Class.forName0
+ 311492        3 java/lang/Class.newInstance
+ 311492        3 java/lang/Class.newInstance0
+ 311492        3 java/lang/Exception.<init>
+ 311492        3 java/lang/Integer.<init>
+ 311492        3 java/lang/Object.wait
+ 311492        3 java/lang/RuntimePermission.<init>
+ 311492        3 java/lang/Shutdown.add
+ 311492        3 java/lang/Thread.sleep
+ 311492        3 java/lang/ThreadLocal.<init>
+ 311492        3 java/lang/ThreadLocal.getMap
+ 311492        3 java/lang/ThreadLocal.nextHashCode
+ 311492        3 java/lang/ref/WeakReference.<init>
+ 311492        3 java/lang/reflect/Constructor.newInstance
+ 311492        3 java/net/URLStreamHandler.<init>
+ 311492        3 java/nio/ByteBuffer.allocate
+ 311492        3 java/nio/charset/Charset.defaultCharset
+ 311492        3 java/nio/charset/Charset.lookup2
+ 311492        3 java/nio/charset/CharsetDecoder.maxCharsPerByte
+ 311492        3 java/nio/charset/CodingErrorAction.<init>
+ 311492        3 java/util/AbstractList$Itr.checkForComodification
+ 311492        3 java/util/AbstractList$Itr.next
+ 311492        3 java/util/ArrayList.clear
+ 311492        3 java/util/HashSet.<init>
+ 311492        3 java/util/Hashtable.rehash
+ 311492        3 java/util/LinkedHashMap.<init>
+ 311492        3 java/util/LinkedHashMap.init
+ 311492        3 java/util/Stack.<init>
+ 311492        3 java/util/StringTokenizer.nextToken
+ 311492        3 java/util/concurrent/atomic/AtomicInteger.compareAndSet
+ 311492        3 java/util/concurrent/atomic/AtomicInteger.getAndAdd
+ 311492        3 java/util/jar/JarFile.getEntry
+ 311492        3 java/util/jar/JarFile.getJarEntry
+ 311492        3 java/util/zip/ZipFile.access$300
+ 311492        3 sun/misc/Signal.<init>
+ 311492        3 sun/misc/Signal.findSignal
+ 311492        3 sun/misc/Signal.handle
+ 311492        3 sun/misc/Signal.handle0
+ 311492        3 sun/misc/URLClassPath$JarLoader.ensureOpen
+ 311492        3 sun/reflect/DelegatingConstructorAccessorImpl.newInstance
+ 311492        3 sun/reflect/NativeConstructorAccessorImpl.newInstance
+ 311492        3 sun/reflect/NativeConstructorAccessorImpl.newInstance0
+ 311492        3 sun/reflect/Reflection.getClassAccessFlags
+ 311492        3 sun/reflect/Reflection.quickCheckMemberAccess
+ 311492        3 sun/reflect/ReflectionFactory.inflationThreshold
+ 311492        3 sun/util/PreHashedMap.<init>
+ 311492        4 java/io/BufferedWriter.<init>
+ 311492        4 java/io/ExpiringCache$Entry.timestamp
+ 311492        4 java/io/ExpiringCache.<init>
+ 311492        4 java/io/File.compareTo
+ 311492        4 java/io/File.equals
+ 311492        4 java/io/FilePermission$1.run
+ 311492        4 java/io/FilterOutputStream.<init>
+ 311492        4 java/io/PrintStream.<init>
+ 311492        4 java/io/UnixFileSystem.compare
+ 311492        4 java/lang/Character.toUpperCase
+ 311492        4 java/lang/Class.getDeclaredFields0
+ 311492        4 java/lang/Number.<init>
+ 311492        4 java/lang/Shutdown$Lock.<init>
+ 311492        4 java/lang/String.compareTo
+ 311492        4 java/lang/ThreadGroup.getParent
+ 311492        4 java/lang/Throwable.<init>
+ 311492        4 java/lang/Throwable.fillInStackTrace
+ 311492        4 java/lang/ref/ReferenceQueue$Null.<init>
+ 311492        4 java/lang/ref/ReferenceQueue.<init>
+ 311492        4 java/lang/reflect/Array.newArray
+ 311492        4 java/lang/reflect/Array.newInstance
+ 311492        4 java/lang/reflect/Constructor.setConstructorAccessor
+ 311492        4 java/lang/reflect/Modifier.isPublic
+ 311492        4 java/nio/HeapByteBuffer.ix
+ 311492        4 java/nio/charset/Charset.forName
+ 311492        4 java/nio/charset/CharsetDecoder.onMalformedInput
+ 311492        4 java/nio/charset/CharsetDecoder.onUnmappableCharacter
+ 311492        4 java/nio/charset/CharsetDecoder.replaceWith
+ 311492        4 java/nio/charset/CharsetEncoder.<init>
+ 311492        4 java/nio/charset/CoderResult$Cache.<init>
+ 311492        4 java/security/BasicPermission.<init>
+ 311492        4 java/security/BasicPermission.init
+ 311492        4 java/util/AbstractList$Itr.<init>
+ 311492        4 java/util/ArrayList.toArray
+ 311492        4 java/util/Collections$SynchronizedMap.get
+ 311492        4 java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 311492        4 java/util/IdentityHashMap$KeyIterator.<init>
+ 311492        4 java/util/LinkedHashMap$Entry.recordAccess
+ 311492        4 java/util/StringTokenizer.<init>
+ 311492        4 java/util/zip/ZipFile.ensureOpen
+ 311492        4 sun/misc/MetaIndex.<init>
+ 311492        4 sun/misc/MetaIndex.mayContain
+ 311492        4 sun/nio/cs/FastCharsetProvider.canonicalize
+ 311492        4 sun/nio/cs/StreamEncoder.<init>
+ 311492        4 sun/nio/cs/US_ASCII$Encoder.<init>
+ 311492        4 sun/nio/cs/US_ASCII.newDecoder
+ 311492        4 sun/reflect/ConstructorAccessorImpl.<init>
+ 311492        4 sun/reflect/MagicAccessorImpl.<init>
+ 311492        4 sun/reflect/Reflection.filterFields
+ 311492        4 sun/reflect/ReflectionFactory$GetReflectionFactoryAction.<init>
+ 311492        4 sun/reflect/ReflectionFactory$GetReflectionFactoryAction.run
+ 311492        4 sun/reflect/ReflectionFactory.getReflectionFactory
+ 311492        4 sun/security/util/Debug.isOn
+ 311492        5 java/io/FileDescriptor.<init>
+ 311492        5 java/lang/Class.getModifiers
+ 311492        5 java/lang/Class.getName0
+ 311492        5 java/lang/String.valueOf
+ 311492        5 java/nio/ByteBuffer.wrap
+ 311492        5 java/nio/charset/Charset.isSupported
+ 311492        5 java/security/PermissionCollection.<init>
+ 311492        5 java/util/AbstractList$Itr.hasNext
+ 311492        5 java/util/Hashtable.remove
+ 311492        5 java/util/StringTokenizer.scanToken
+ 311492        5 java/util/StringTokenizer.skipDelimiters
+ 311492        5 sun/misc/MetaIndex.forJar
+ 311492        5 sun/misc/URLClassPath$JarLoader.<init>
+ 311492        5 sun/misc/URLClassPath$JarLoader.getClassPath
+ 311492        5 sun/misc/URLClassPath$JarLoader.getResource
+ 311492        5 sun/misc/Unsafe.getUnsafe
+ 311492        5 sun/util/PreHashedMap.toV
+ 311492        6 java/io/BufferedOutputStream.write
+ 311492        6 java/io/BufferedWriter.flushBuffer
+ 311492        6 java/io/BufferedWriter.min
+ 311492        6 java/io/BufferedWriter.write
+ 311492        6 java/io/File.getAbsolutePath
+ 311492        6 java/io/FileOutputStream.write
+ 311492        6 java/io/FileOutputStream.writeBytes
+ 311492        6 java/io/OutputStream.<init>
+ 311492        6 java/io/OutputStreamWriter.flushBuffer
+ 311492        6 java/io/OutputStreamWriter.write
+ 311492        6 java/io/UnixFileSystem.canonicalize0
+ 311492        6 java/io/Writer.<init>
+ 311492        6 java/io/Writer.write
+ 311492        6 java/lang/Class.checkMemberAccess
+ 311492        6 java/lang/Class.getComponentType
+ 311492        6 java/lang/Class.getDeclaredField
+ 311492        6 java/lang/Class.getName
+ 311492        6 java/lang/Class.getSuperclass
+ 311492        6 java/lang/Class.privateGetDeclaredFields
+ 311492        6 java/lang/Class.searchFields
+ 311492        6 java/lang/ThreadGroup.add
+ 311492        6 java/lang/reflect/Field.<init>
+ 311492        6 java/lang/reflect/Field.copy
+ 311492        6 java/lang/reflect/ReflectAccess.copyField
+ 311492        6 java/net/URL.getURLStreamHandler
+ 311492        6 java/net/URL.toExternalForm
+ 311492        6 java/net/URL.toString
+ 311492        6 java/net/URLStreamHandler.getDefaultPort
+ 311492        6 java/net/URLStreamHandler.getHostAddress
+ 311492        6 java/net/URLStreamHandler.hashCode
+ 311492        6 java/net/URLStreamHandler.toExternalForm
+ 311492        6 java/nio/Bits.byteOrder
+ 311492        6 java/nio/Buffer.clear
+ 311492        6 java/nio/ByteBuffer.<init>
+ 311492        6 java/nio/HeapByteBuffer.<init>
+ 311492        6 java/nio/charset/CharsetDecoder.decode
+ 311492        6 java/nio/charset/CharsetEncoder.encode
+ 311492        6 java/security/Permission.<init>
+ 311492        6 java/util/AbstractSet.<init>
+ 311492        6 java/util/HashMap.containsKey
+ 311492        6 java/util/Vector.add
+ 311492        6 java/util/concurrent/ConcurrentHashMap$Segment.rehash
+ 311492        6 sun/misc/Launcher.getFileURL
+ 311492        6 sun/misc/MetaIndex.getJarMap
+ 311492        6 sun/misc/URLClassPath$3.<init>
+ 311492        6 sun/misc/URLClassPath$3.run
+ 311492        6 sun/misc/URLClassPath$JarLoader.isOptimizable
+ 311492        6 sun/misc/URLClassPath$Loader.<init>
+ 311492        6 sun/misc/Unsafe.objectFieldOffset
+ 311492        6 sun/net/www/ParseUtil.fileToEncodedURL
+ 311492        6 sun/nio/cs/StreamEncoder.ensureOpen
+ 311492        6 sun/nio/cs/StreamEncoder.flushBuffer
+ 311492        6 sun/nio/cs/StreamEncoder.implFlushBuffer
+ 311492        6 sun/nio/cs/StreamEncoder.implWrite
+ 311492        6 sun/nio/cs/StreamEncoder.write
+ 311492        6 sun/nio/cs/StreamEncoder.writeBytes
+ 311492        6 sun/nio/cs/US_ASCII$Decoder.decodeArrayLoop
+ 311492        6 sun/nio/cs/US_ASCII$Decoder.decodeLoop
+ 311492        6 sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 311492        6 sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 311492        6 sun/reflect/ReflectionFactory.copyField
+ 311492        7 java/io/File.getCanonicalFile
+ 311492        7 java/io/InputStream.<init>
+ 311492        7 java/lang/ClassLoader.checkPackageAccess
+ 311492        7 java/lang/ref/SoftReference.<init>
+ 311492        7 java/util/Dictionary.<init>
+ 311492        7 java/util/HashSet.add
+ 311492        7 java/util/Stack.empty
+ 311492        7 java/util/Stack.pop
+ 311492        7 java/util/Stack.push
+ 311492        7 java/util/Vector.removeElementAt
+ 311492        7 java/util/zip/ZipFile.getEntry
+ 311492        7 sun/util/PreHashedMap.get
+ 311492        8 java/lang/Class.checkInitted
+ 311492        8 java/lang/Class.clearCachesOnClassRedefinition
+ 311492        8 java/lang/Class.getPrimitiveClass
+ 311492        8 java/lang/Class.getReflectionFactory
+ 311492        8 java/lang/Object.getClass
+ 311492        8 java/lang/System.setProperty
+ 311492        8 java/lang/Thread.<init>
+ 311492        8 java/lang/Thread.getContextClassLoader
+ 311492        8 java/lang/Thread.init
+ 311492        8 java/lang/Thread.nextThreadID
+ 311492        8 java/lang/ThreadGroup.addUnstarted
+ 311492        8 java/lang/ref/FinalReference.<init>
+ 311492        8 java/lang/ref/Finalizer.<init>
+ 311492        8 java/lang/ref/Finalizer.add
+ 311492        8 java/lang/ref/Finalizer.register
+ 311492        8 java/lang/ref/ReferenceQueue$Lock.<init>
+ 311492        8 java/lang/reflect/AccessibleObject.<init>
+ 311492        8 java/nio/charset/CharsetDecoder.<init>
+ 311492        8 java/security/AccessControlContext.optimize
+ 311492        8 java/security/AccessController.getInheritedAccessControlContext
+ 311492        8 java/util/Properties.setProperty
+ 311492        8 java/util/Stack.peek
+ 311492        8 sun/nio/cs/US_ASCII$Decoder.<init>
+ 311492        8 sun/reflect/ReflectionFactory.langReflectAccess
+ 311492        8 sun/security/util/Debug.getInstance
+ 311492        9 java/io/BufferedOutputStream.flush
+ 311492        9 java/io/BufferedOutputStream.flushBuffer
+ 311492        9 java/io/File.hashCode
+ 311492        9 java/io/File.isDirectory
+ 311492        9 java/io/PrintStream.write
+ 311492        9 java/io/UnixFileSystem.hashCode
+ 311492        9 java/lang/ClassLoader.findBootstrapClass
+ 311492        9 java/lang/ClassLoader.findBootstrapClass0
+ 311492        9 java/lang/ClassLoader.getCallerClassLoader
+ 311492        9 java/lang/ClassLoader.loadClassInternal
+ 311492        9 java/lang/StringBuffer.<init>
+ 311492        9 java/lang/StringBuffer.toString
+ 311492        9 java/nio/Buffer.flip
+ 311492        9 java/util/ArrayList.RangeCheck
+ 311492        9 java/util/ArrayList.get
+ 311492        9 sun/misc/Launcher$AppClassLoader.loadClass
+ 311492        9 sun/net/www/ParseUtil.decode
+ 311492        9 sun/net/www/ParseUtil.lowMask
+ 311492       10 java/io/File.getCanonicalPath
+ 311492       10 java/io/ObjectStreamClass.getClassSignature
+ 311492       10 java/io/UnixFileSystem.canonicalize
+ 311492       10 java/lang/Class.isPrimitive
+ 311492       10 java/lang/Thread.setPriority
+ 311492       10 java/lang/Thread.setPriority0
+ 311492       10 java/nio/CharBuffer.wrap
+ 311492       10 java/nio/charset/Charset.lookup
+ 311492       10 java/security/AccessController.getContext
+ 311492       10 java/security/AccessController.getStackAccessControlContext
+ 311492       10 java/util/Vector.addElement
+ 311492       11 java/lang/String.replace
+ 311492       11 java/lang/ThreadGroup.checkAccess
+ 311492       11 java/net/Parts.<init>
+ 311492       11 java/nio/CharBuffer.<init>
+ 311492       11 java/nio/HeapCharBuffer.<init>
+ 311492       12 java/io/BufferedWriter.ensureOpen
+ 311492       12 java/io/ExpiringCache$1.removeEldestEntry
+ 311492       12 java/io/ExpiringCache$Entry.<init>
+ 311492       12 java/io/ExpiringCache.put
+ 311492       12 java/io/File.exists
+ 311492       12 java/io/PrintStream.ensureOpen
+ 311492       12 java/lang/Class.isArray
+ 311492       12 java/lang/Thread.checkAccess
+ 311492       12 java/nio/ByteBuffer.hasArray
+ 311492       12 java/nio/CharBuffer.array
+ 311492       12 java/nio/CharBuffer.hasArray
+ 311492       12 java/nio/charset/CoderResult.isOverflow
+ 311492       12 java/util/HashMap.get
+ 311492       12 java/util/LinkedHashMap$Entry.access$600
+ 311492       12 java/util/LinkedHashMap$Entry.addBefore
+ 311492       12 java/util/LinkedHashMap.addEntry
+ 311492       12 java/util/LinkedHashMap.createEntry
+ 311492       12 sun/net/www/ParseUtil.highMask
+ 311492       13 java/io/UnixFileSystem.parentOrNull
+ 311492       13 java/nio/Buffer.hasRemaining
+ 311492       13 java/nio/Buffer.remaining
+ 311492       13 sun/misc/URLClassPath.getLoader
+ 311492       13 sun/net/www/ParseUtil.encodePath
+ 311492       14 java/lang/Float.isNaN
+ 311492       14 java/net/URL.hashCode
+ 311492       14 java/util/Hashtable.<init>
+ 311492       15 java/lang/Object.hashCode
+ 311492       15 java/nio/charset/Charset.checkName
+ 311492       15 java/util/ArrayList.<init>
+ 311492       15 java/util/HashMap.addEntry
+ 311492       15 java/util/LinkedHashMap$Entry.<init>
+ 311492       16 java/io/UnixFileSystem.isAbsolute
+ 311492       16 java/lang/ClassLoader$NativeLibrary.find
+ 311492       16 java/lang/String.intern
+ 311492       16 java/util/Vector.ensureCapacityHelper
+ 311492       16 java/util/concurrent/ConcurrentHashMap$Segment.<init>
+ 311492       16 java/util/concurrent/ConcurrentHashMap$Segment.setTable
+ 311492       16 java/util/concurrent/locks/AbstractOwnableSynchronizer.<init>
+ 311492       16 java/util/concurrent/locks/AbstractQueuedSynchronizer.<init>
+ 311492       16 java/util/concurrent/locks/ReentrantLock$NonfairSync.<init>
+ 311492       16 java/util/concurrent/locks/ReentrantLock$Sync.<init>
+ 311492       16 java/util/concurrent/locks/ReentrantLock.<init>
+ 311492       16 sun/reflect/Reflection.getCallerClass
+ 311492       17 java/lang/ClassLoader.findNative
+ 311492       17 java/lang/Math.max
+ 311492       17 java/lang/String.toCharArray
+ 311492       17 java/nio/Buffer.<init>
+ 311492       17 java/util/Locale.getDefault
+ 311492       17 sun/security/action/GetPropertyAction.<init>
+ 311492       18 java/io/ExpiringCache.get
+ 311492       18 java/lang/Class.desiredAssertionStatus
+ 311492       18 java/lang/Class.desiredAssertionStatus0
+ 311492       18 java/lang/ClassLoader.findLoadedClass
+ 311492       18 java/lang/ClassLoader.findLoadedClass0
+ 311492       19 java/io/BufferedReader.ensureOpen
+ 311492       19 java/lang/System.currentTimeMillis
+ 311492       19 java/nio/Buffer.limit
+ 311492       19 java/util/Locale.<init>
+ 311492       19 java/util/Locale.createSingleton
+ 311492       19 java/util/concurrent/ConcurrentHashMap$Segment.put
+ 311492       19 java/util/concurrent/ConcurrentHashMap.put
+ 311492       19 java/util/concurrent/locks/AbstractQueuedSynchronizer.compareAndSetState
+ 311492       19 java/util/concurrent/locks/AbstractQueuedSynchronizer.release
+ 311492       19 java/util/concurrent/locks/AbstractQueuedSynchronizer.setState
+ 311492       19 java/util/concurrent/locks/ReentrantLock$NonfairSync.lock
+ 311492       19 java/util/concurrent/locks/ReentrantLock$Sync.tryRelease
+ 311492       19 java/util/concurrent/locks/ReentrantLock.lock
+ 311492       19 java/util/concurrent/locks/ReentrantLock.unlock
+ 311492       20 java/io/ObjectStreamField.<init>
+ 311492       20 java/nio/ByteBuffer.array
+ 311492       20 java/util/AbstractList.<init>
+ 311492       20 java/util/BitSet.get
+ 311492       20 java/util/concurrent/ConcurrentHashMap.hash
+ 311492       20 java/util/concurrent/ConcurrentHashMap.segmentFor
+ 311492       20 sun/misc/VM.isBooted
+ 311492       21 java/io/File.getName
+ 311492       21 java/io/UnixFileSystem.getBooleanAttributes
+ 311492       21 java/io/UnixFileSystem.getBooleanAttributes0
+ 311492       21 java/lang/StringBuffer.append
+ 311492       21 java/nio/charset/Charset.atBugLevel
+ 311492       22 java/util/concurrent/ConcurrentHashMap$HashEntry.newArray
+ 311492       22 sun/misc/Unsafe.compareAndSwapInt
+ 311492       23 java/util/HashMap.<init>
+ 311492       23 java/util/concurrent/ConcurrentHashMap$HashEntry.<init>
+ 311492       24 java/nio/charset/CoderResult.isUnderflow
+ 311492       24 java/util/AbstractMap.<init>
+ 311492       24 java/util/Vector.elementAt
+ 311492       25 java/lang/Class.getClassLoader
+ 311492       26 java/util/AbstractCollection.<init>
+ 311492       26 java/util/ArrayList.add
+ 311492       26 java/util/ArrayList.ensureCapacity
+ 311492       27 java/lang/ClassLoader.loadClass
+ 311492       27 java/net/URL.<init>
+ 311492       28 java/lang/ClassLoader.check
+ 311492       28 java/lang/ClassLoader.checkName
+ 311492       28 java/lang/ref/Reference.<init>
+ 311492       29 java/lang/String.endsWith
+ 311492       29 sun/misc/VM.allowArraySyntax
+ 311492       30 java/io/ExpiringCache.entryFor
+ 311492       30 java/io/UnixFileSystem.resolve
+ 311492       30 java/util/HashMap$Entry.<init>
+ 311492       30 java/util/LinkedHashMap.get
+ 311492       33 java/util/HashMap.put
+ 311492       33 java/util/Vector.<init>
+ 311492       34 java/io/UnixFileSystem.normalize
+ 311492       34 java/lang/Class.getClassLoader0
+ 311492       34 java/lang/String.toLowerCase
+ 311492       34 sun/security/action/GetPropertyAction.run
+ 311492       36 java/nio/CharBuffer.arrayOffset
+ 311492       36 java/util/HashMap.getEntry
+ 311492       37 java/io/File.<init>
+ 311492       37 java/io/UnixFileSystem.prefixLength
+ 311492       38 java/io/BufferedReader.readLine
+ 311492       38 java/util/concurrent/locks/AbstractOwnableSynchronizer.setExclusiveOwnerThread
+ 311492       41 java/lang/CharacterDataLatin1.toLowerCase
+ 311492       43 java/lang/CharacterDataLatin1.getProperties
+ 311492       43 java/security/AccessController.doPrivileged
+ 311492       43 java/util/Vector.size
+ 311492       44 java/nio/Buffer.position
+ 311492       44 java/nio/ByteBuffer.arrayOffset
+ 311492       48 java/lang/System.getProperty
+ 311492       50 java/util/Properties.getProperty
+ 311492       51 java/util/BitSet.expandTo
+ 311492       51 java/util/BitSet.set
+ 311492       56 java/lang/System.checkKey
+ 311492       57 java/lang/Thread.currentThread
+ 311492       57 java/util/Hashtable$Entry.<init>
+ 311492       59 java/util/Hashtable.get
+ 311492       63 java/util/Hashtable.put
+ 311492       71 java/util/BitSet.checkInvariants
+ 311492       72 java/util/BitSet.wordIndex
+ 311492       73 java/lang/StringBuilder.<init>
+ 311492       73 java/lang/StringBuilder.toString
+ 311492       81 java/lang/AbstractStringBuilder.expandCapacity
+ 311492       81 java/util/HashMap.hash
+ 311492       81 java/util/HashMap.indexFor
+ 311492       82 java/lang/AbstractStringBuilder.<init>
+ 311492       82 java/lang/Character.toLowerCase
+ 311492       83 java/lang/String.startsWith
+ 311492       87 java/util/Arrays.copyOf
+ 311492       90 java/lang/String.lastIndexOf
+ 311492       94 java/lang/String.substring
+ 311492      107 java/util/Arrays.copyOfRange
+ 311492      156 java/lang/String.getChars
+ 311492      174 java/lang/System.getSecurityManager
+ 311492      175 java/lang/String.<init>
+ 311492      202 java/lang/String.equals
+ 311492      208 java/lang/Math.min
+ 311492      213 java/lang/String.hashCode
+ 311492      302 java/lang/String.indexOf
+ 311492      360 java/lang/System.arraycopy
+ 311492      533 java/lang/StringBuilder.append
+ 311492      549 java/lang/AbstractStringBuilder.append
+ 311492      823 java/lang/Object.<init>
+ 311492     1960 java/lang/String.charAt
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_objnew_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_objnew_example.txt
new file mode 100644
index 0000000..433c38f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_objnew_example.txt
@@ -0,0 +1,1460 @@
+The following are examples of j_objnew.d.
+
+This traces activity of object allocation by Java.  It will print a histogram
+of the byte size of allocation of different type, followed by a count of each
+type of allocation.  
+
+Here you can see it running on Code/Java/Func_abc
+
+# j_objnew.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Java object allocation byte distributions by pid and class,
+
+   311496  java/io/Console$1                                 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/io/DeleteOnExitHook                          
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/io/File$1                                    
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/lang/ApplicationShutdownHooks                
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/lang/Compiler$1                              
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/lang/Runtime                                 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/lang/String$CaseInsensitiveComparator        
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/lang/System$2                                
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/lang/Terminator$1                            
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/lang/ref/Reference$Lock                      
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/lang/reflect/ReflectAccess                   
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/net/URLClassLoader$7                         
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/net/UnknownContentHandler                    
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/util/Collections$EmptySet                    
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/util/Collections$ReverseComparator           
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/util/Hashtable$EmptyEnumerator               
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/util/Hashtable$EmptyIterator                 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  java/util/jar/JavaUtilJarAccessImpl               
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  sun/misc/Launcher$Factory                         
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  sun/misc/Unsafe                                   
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  sun/net/www/protocol/file/Handler                 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  sun/reflect/ReflectionFactory                     
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  sun/reflect/ReflectionFactory$1                   
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   311496  [Ljava/lang/StackTraceElement;                    
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  [Ljava/security/Principal;                        
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  [Ljava/security/cert/Certificate;                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/io/Console$1$1                               
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/io/FilePermissionCollection                  
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/io/FileReader                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/io/UnixFileSystem                            
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/ArithmeticException                     
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/ClassLoader$3                           
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/NoSuchMethodError                       
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/NullPointerException                    
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/Shutdown$Lock                           
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              16 |                                         0        
+
+   311496  java/lang/StringCoding$StringDecoder              
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/SystemClassLoaderAction                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/ThreadLocal$ThreadLocalMap              
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/VirtualMachineError                     
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/reflect/ReflectPermission               
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/nio/charset/CoderResult$1                    
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/nio/charset/CoderResult$2                    
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/security/BasicPermissionCollection           
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/security/Policy$UnsupportedEmptyCollection   
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/util/BitSet                                  
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/util/Collections$EmptyList                   
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/util/Collections$EmptyMap                    
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/util/HashMap$KeySet                          
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/util/IdentityHashMap$KeySet                  
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/util/LinkedHashSet                           
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/util/concurrent/atomic/AtomicInteger         
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/misc/FileURLMapper                            
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/misc/Launcher                                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/misc/Launcher$AppClassLoader$1                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/misc/Launcher$ExtClassLoader$1                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/misc/URLClassPath$FileLoader                  
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/misc/URLClassPath$JarLoader$1                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/net/www/MessageHeader                         
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/net/www/protocol/jar/Handler                  
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              16 |                                         0        
+
+   311496  sun/nio/cs/StandardCharsets                       
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  sun/nio/cs/US_ASCII                               
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   311496  java/lang/Class$3                                 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              16 |                                         0        
+
+   311496  [J                                                
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  [Ljava/io/File;                                   
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  [Ljava/lang/OutOfMemoryError;                     
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  [Ljava/lang/ThreadGroup;                          
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  [Ljava/lang/reflect/Constructor;                  
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/io/BufferedInputStream                       
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/io/BufferedOutputStream                      
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/io/BufferedReader                            
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/io/DataInputStream                           
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/io/FileOutputStream                          
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/io/FilePermission$1                          
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/io/OutputStreamWriter                        
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/lang/Class$1                                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/lang/ClassLoader$NativeLibrary               
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/lang/ThreadLocal$ThreadLocalMap$Entry        
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/lang/ref/ReferenceQueue                      
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/lang/ref/ReferenceQueue$Lock                 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+              16 |                                         0        
+
+   311496  java/lang/ref/ReferenceQueue$Null                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/lang/ref/WeakReference                       
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/net/URLClassLoader$1                         
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/nio/ByteOrder                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/nio/charset/CoderResult                      
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/security/CodeSource                          
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/security/Permissions                         
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/security/PrivilegedActionException           
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/security/ProtectionDomain                    
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/AbstractList$Itr                        
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/util/Collections$SynchronizedMap             
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/HashSet                                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  java/util/IdentityHashMap                         
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/LinkedHashMap                           
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/LinkedHashMap$KeyIterator               
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/Properties                              
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/concurrent/ConcurrentHashMap            
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/jar/JarFile                             
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/zip/Inflater                            
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/zip/ZipFile$1                           
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  java/util/zip/ZipFile$ZipFileInputStream          
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  sun/misc/NativeSignalHandler                      
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  sun/misc/SoftCache                                
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  sun/misc/URLClassPath$FileLoader$1                
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  sun/nio/cs/StandardCharsets$Aliases               
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  sun/nio/cs/StandardCharsets$Cache                 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  sun/nio/cs/StandardCharsets$Classes               
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  sun/nio/cs/StreamDecoder                          
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   311496  sun/nio/cs/Surrogate$Parser                       
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  sun/reflect/DelegatingConstructorAccessorImpl     
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  sun/reflect/NativeConstructorAccessorImpl         
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   311496  sun/reflect/ReflectionFactory$GetReflectionFactoryAction
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+              16 |                                         0        
+
+   311496  [Ljava/net/URL;                                   
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     1        
+              32 |@@@@@@@@@@@@@@@@@@@@                     1        
+              64 |                                         0        
+
+   311496  java/io/FileInputStream                           
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   311496  java/lang/Boolean                                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   311496  java/lang/Integer                                 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   311496  java/lang/RuntimePermission                       
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   311496  java/lang/ThreadLocal                             
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   311496  java/nio/charset/CodingErrorAction                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   311496  java/util/Stack                                   
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   311496  sun/misc/Signal                                   
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   311496  [Ljava/lang/Thread;                               
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  [Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;     
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  [Ljava/lang/annotation/Annotation;                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+              32 |                                         0        
+
+   311496  [Ljava/util/concurrent/ConcurrentHashMap$Segment; 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  java/io/BufferedWriter                            
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/io/ExpiringCache                             
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/io/ExpiringCache$1                           
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/io/FilePermission                            
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/io/PrintStream                               
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/lang/ClassNotFoundException                  
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/lang/ThreadGroup                             
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/lang/ref/Finalizer$FinalizerThread           
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  java/lang/ref/Reference$ReferenceHandler          
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  java/lang/reflect/Method                          
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  java/util/IdentityHashMap$KeyIterator             
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/util/StringTokenizer                         
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/util/jar/JarFile$JarFileEntry                
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  java/util/zip/ZipEntry                            
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  sun/misc/Launcher$AppClassLoader                  
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  sun/misc/Launcher$ExtClassLoader                  
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  sun/misc/MetaIndex                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+              32 |                                         0        
+
+   311496  sun/misc/URLClassPath                             
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  sun/net/www/protocol/file/FileURLConnection       
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   311496  sun/nio/cs/StreamEncoder                          
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  sun/nio/cs/US_ASCII$Encoder                       
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   311496  java/io/FileDescriptor                            
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+              32 |                                         0        
+
+   311496  sun/misc/URLClassPath$3                           
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+              32 |                                         0        
+
+   311496  [Ljava/io/ObjectStreamField;                      
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8        
+              32 |                                         0        
+
+   311496  [Ljava/lang/reflect/Field;                        
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+              64 |                                         0        
+
+   311496  java/lang/Object                                  
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 16       
+              16 |                                         0        
+
+   311496  java/lang/OutOfMemoryError                        
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8        
+              32 |                                         0        
+
+   311496  java/util/ArrayList                               
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8        
+              32 |                                         0        
+
+   311496  java/util/Vector                                  
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8        
+              32 |                                         0        
+
+   311496  sun/nio/cs/US_ASCII$Decoder                       
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+              64 |                                         0        
+
+   311496  java/lang/StringBuffer                            
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9        
+              32 |                                         0        
+
+   311496  java/security/AccessControlContext                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10       
+              32 |                                         0        
+
+   311496  sun/misc/URLClassPath$JarLoader                   
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+              64 |                                         0        
+
+   311496  java/net/Parts                                    
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 11       
+              32 |                                         0        
+
+   311496  [Ljava/lang/Class;                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 12       
+              32 |                                         0        
+
+   311496  java/io/ExpiringCache$Entry                       
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 12       
+              32 |                                         0        
+
+   311496  java/nio/HeapByteBuffer                           
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+              64 |                                         0        
+
+   311496  java/util/Hashtable                               
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+              64 |                                         0        
+
+   311496  java/lang/ref/SoftReference                       
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7        
+              64 |                                         0        
+
+   311496  java/util/HashMap$Entry                           
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 15       
+              32 |                                         0        
+
+   311496  java/lang/ref/Finalizer                           
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8        
+              64 |                                         0        
+
+   311496  java/lang/reflect/Constructor                     
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+             128 |                                         0        
+
+   311496  java/util/concurrent/locks/ReentrantLock$NonfairSync
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 16       
+              32 |                                         0        
+
+   311496  sun/security/action/GetPropertyAction             
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 17       
+              32 |                                         0        
+
+   311496  java/io/ObjectStreamField                         
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10       
+              64 |                                         0        
+
+   311496  java/nio/HeapCharBuffer                           
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 11       
+              64 |                                         0        
+
+   311496  java/util/concurrent/ConcurrentHashMap$HashEntry  
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 23       
+              32 |                                         0        
+
+   311496  java/lang/Thread                                  
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+             128 |                                         0        
+
+   311496  java/net/URL                                      
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 13       
+              64 |                                         0        
+
+   311496  java/util/HashMap                                 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14       
+              64 |                                         0        
+
+   311496  java/util/LinkedHashMap$Entry                     
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 15       
+              64 |                                         0        
+
+   311496  [Ljava/util/concurrent/ConcurrentHashMap$HashEntry;
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@            16       
+              32 |@@@@@@@                                  4        
+              64 |@@@@                                     2        
+             128 |                                         0        
+
+   311496  java/util/concurrent/ConcurrentHashMap$Segment    
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 16       
+              64 |                                         0        
+
+   311496  java/io/File                                      
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 37       
+              32 |                                         0        
+
+   311496  java/util/Locale                                  
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 19       
+              64 |                                         0        
+
+   311496  [Ljava/util/Hashtable$Entry;                      
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@             7        
+              64 |@@@@                                     1        
+             128 |@@@@                                     1        
+             256 |@@@@                                     1        
+             512 |                                         0        
+
+   311496  java/util/Hashtable$Entry                         
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 57       
+              32 |                                         0        
+
+   311496  [Ljava/util/HashMap$Entry;                        
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 17       
+             128 |                                         0        
+
+   311496  java/lang/StringBuilder                           
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 73       
+              32 |                                         0        
+
+   311496  [Ljava/lang/String;                               
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@                       26       
+              32 |@@@@@@@@@@@@@@@                          22       
+              64 |@@@@@@                                   9        
+             128 |                                         0        
+
+   311496  java/lang/reflect/Field                           
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 37       
+             128 |                                         0        
+
+   311496  [Ljava/lang/Object;                               
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     296      
+              32 |@@                                       18       
+              64 |                                         0        
+             128 |@                                        10       
+             256 |                                         1        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         1        
+            8192 |                                         0        
+
+   311496  java/lang/String                                  
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 931      
+              32 |                                         0        
+
+   311496  [S                                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@                            161      
+              32 |@@@@@@@@@@@@@@@@                         189      
+              64 |@@@@@@@                                  82       
+             128 |@@@                                      38       
+             256 |@                                        12       
+             512 |                                         4        
+            1024 |                                         0        
+
+   311496  [[I                                               
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     270      
+              32 |@@@@@@@@@@                               129      
+              64 |@@@@@@                                   85       
+             128 |@@@                                      34       
+             256 |@@                                       22       
+             512 |                                         1        
+            1024 |                                         0        
+
+   311496  java/lang/Class                                   
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 395      
+             128 |                                         0        
+
+   311496  [I                                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |                                         3        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           276      
+              64 |@@@@@@@@@                                87       
+             128 |                                         3        
+             256 |                                         1        
+             512 |                                         1        
+            1024 |                                         1        
+            2048 |                                         0        
+            4096 |                                         1        
+            8192 |                                         0        
+           16384 |                                         1        
+           32768 |                                         0        
+
+   311496  [B                                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@                                87       
+              32 |@@@@@@@@@@                               100      
+              64 |@@@@@@@@                                 83       
+             128 |@@@@@@@                                  71       
+             256 |@@@@@                                    47       
+             512 |@                                        14       
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         4        
+           16384 |                                         0        
+
+   311496  [C                                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@                               271      
+              32 |@@@@@@@@@@@@@@@@@@@@@                    573      
+              64 |@@@@@@                                   150      
+             128 |@@@                                      68       
+             256 |                                         8        
+             512 |                                         1        
+            1024 |                                         2        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |                                         3        
+           32768 |                                         0        
+
+Java object allocation count by pid and class,
+
+    PID     OBJS CLASS
+ 311496        1 [J
+ 311496        1 [Ljava/lang/OutOfMemoryError;
+ 311496        1 [Ljava/lang/StackTraceElement;
+ 311496        1 [Ljava/lang/ThreadGroup;
+ 311496        1 [Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
+ 311496        1 [Ljava/security/Principal;
+ 311496        1 [Ljava/security/cert/Certificate;
+ 311496        1 [Ljava/util/concurrent/ConcurrentHashMap$Segment;
+ 311496        1 java/io/BufferedInputStream
+ 311496        1 java/io/BufferedReader
+ 311496        1 java/io/Console$1
+ 311496        1 java/io/Console$1$1
+ 311496        1 java/io/DataInputStream
+ 311496        1 java/io/DeleteOnExitHook
+ 311496        1 java/io/File$1
+ 311496        1 java/io/FilePermissionCollection
+ 311496        1 java/io/FileReader
+ 311496        1 java/io/UnixFileSystem
+ 311496        1 java/lang/ApplicationShutdownHooks
+ 311496        1 java/lang/ArithmeticException
+ 311496        1 java/lang/ClassLoader$3
+ 311496        1 java/lang/ClassLoader$NativeLibrary
+ 311496        1 java/lang/Compiler$1
+ 311496        1 java/lang/NoSuchMethodError
+ 311496        1 java/lang/NullPointerException
+ 311496        1 java/lang/Runtime
+ 311496        1 java/lang/String$CaseInsensitiveComparator
+ 311496        1 java/lang/StringCoding$StringDecoder
+ 311496        1 java/lang/System$2
+ 311496        1 java/lang/SystemClassLoaderAction
+ 311496        1 java/lang/Terminator$1
+ 311496        1 java/lang/ThreadLocal$ThreadLocalMap
+ 311496        1 java/lang/ThreadLocal$ThreadLocalMap$Entry
+ 311496        1 java/lang/VirtualMachineError
+ 311496        1 java/lang/ref/Finalizer$FinalizerThread
+ 311496        1 java/lang/ref/Reference$Lock
+ 311496        1 java/lang/ref/Reference$ReferenceHandler
+ 311496        1 java/lang/reflect/Method
+ 311496        1 java/lang/reflect/ReflectAccess
+ 311496        1 java/lang/reflect/ReflectPermission
+ 311496        1 java/net/URLClassLoader$7
+ 311496        1 java/net/UnknownContentHandler
+ 311496        1 java/nio/charset/CoderResult$1
+ 311496        1 java/nio/charset/CoderResult$2
+ 311496        1 java/security/BasicPermissionCollection
+ 311496        1 java/security/CodeSource
+ 311496        1 java/security/Policy$UnsupportedEmptyCollection
+ 311496        1 java/security/PrivilegedActionException
+ 311496        1 java/security/ProtectionDomain
+ 311496        1 java/util/BitSet
+ 311496        1 java/util/Collections$EmptyList
+ 311496        1 java/util/Collections$EmptyMap
+ 311496        1 java/util/Collections$EmptySet
+ 311496        1 java/util/Collections$ReverseComparator
+ 311496        1 java/util/Collections$SynchronizedMap
+ 311496        1 java/util/HashMap$KeySet
+ 311496        1 java/util/Hashtable$EmptyEnumerator
+ 311496        1 java/util/Hashtable$EmptyIterator
+ 311496        1 java/util/IdentityHashMap
+ 311496        1 java/util/IdentityHashMap$KeySet
+ 311496        1 java/util/LinkedHashMap
+ 311496        1 java/util/LinkedHashMap$KeyIterator
+ 311496        1 java/util/LinkedHashSet
+ 311496        1 java/util/Properties
+ 311496        1 java/util/concurrent/ConcurrentHashMap
+ 311496        1 java/util/concurrent/atomic/AtomicInteger
+ 311496        1 java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
+ 311496        1 java/util/jar/JarFile
+ 311496        1 java/util/jar/JarFile$JarFileEntry
+ 311496        1 java/util/jar/JavaUtilJarAccessImpl
+ 311496        1 java/util/zip/Inflater
+ 311496        1 java/util/zip/ZipEntry
+ 311496        1 java/util/zip/ZipFile$1
+ 311496        1 java/util/zip/ZipFile$ZipFileInputStream
+ 311496        1 sun/misc/FileURLMapper
+ 311496        1 sun/misc/Launcher
+ 311496        1 sun/misc/Launcher$AppClassLoader
+ 311496        1 sun/misc/Launcher$AppClassLoader$1
+ 311496        1 sun/misc/Launcher$ExtClassLoader
+ 311496        1 sun/misc/Launcher$ExtClassLoader$1
+ 311496        1 sun/misc/Launcher$Factory
+ 311496        1 sun/misc/SoftCache
+ 311496        1 sun/misc/URLClassPath$FileLoader
+ 311496        1 sun/misc/URLClassPath$FileLoader$1
+ 311496        1 sun/misc/URLClassPath$JarLoader$1
+ 311496        1 sun/misc/Unsafe
+ 311496        1 sun/net/www/MessageHeader
+ 311496        1 sun/net/www/protocol/file/FileURLConnection
+ 311496        1 sun/net/www/protocol/file/Handler
+ 311496        1 sun/nio/cs/StandardCharsets
+ 311496        1 sun/nio/cs/StandardCharsets$Aliases
+ 311496        1 sun/nio/cs/StandardCharsets$Cache
+ 311496        1 sun/nio/cs/StandardCharsets$Classes
+ 311496        1 sun/nio/cs/StreamDecoder
+ 311496        1 sun/nio/cs/US_ASCII
+ 311496        1 sun/reflect/ReflectionFactory
+ 311496        1 sun/reflect/ReflectionFactory$1
+ 311496        2 [Ljava/io/File;
+ 311496        2 [Ljava/lang/Thread;
+ 311496        2 [Ljava/lang/reflect/Constructor;
+ 311496        2 [Ljava/net/URL;
+ 311496        2 java/io/BufferedOutputStream
+ 311496        2 java/io/BufferedWriter
+ 311496        2 java/io/ExpiringCache
+ 311496        2 java/io/ExpiringCache$1
+ 311496        2 java/io/FileOutputStream
+ 311496        2 java/io/FilePermission
+ 311496        2 java/io/FilePermission$1
+ 311496        2 java/io/OutputStreamWriter
+ 311496        2 java/io/PrintStream
+ 311496        2 java/lang/Class$1
+ 311496        2 java/lang/ClassNotFoundException
+ 311496        2 java/lang/Shutdown$Lock
+ 311496        2 java/lang/ThreadGroup
+ 311496        2 java/lang/ref/ReferenceQueue
+ 311496        2 java/lang/ref/ReferenceQueue$Null
+ 311496        2 java/lang/ref/WeakReference
+ 311496        2 java/net/URLClassLoader$1
+ 311496        2 java/nio/ByteOrder
+ 311496        2 java/nio/charset/CoderResult
+ 311496        2 java/security/Permissions
+ 311496        2 java/util/AbstractList$Itr
+ 311496        2 java/util/HashSet
+ 311496        2 java/util/IdentityHashMap$KeyIterator
+ 311496        2 java/util/StringTokenizer
+ 311496        2 sun/misc/NativeSignalHandler
+ 311496        2 sun/misc/URLClassPath
+ 311496        2 sun/net/www/protocol/jar/Handler
+ 311496        2 sun/nio/cs/StreamEncoder
+ 311496        2 sun/nio/cs/Surrogate$Parser
+ 311496        2 sun/nio/cs/US_ASCII$Encoder
+ 311496        2 sun/reflect/DelegatingConstructorAccessorImpl
+ 311496        2 sun/reflect/NativeConstructorAccessorImpl
+ 311496        3 java/io/FileInputStream
+ 311496        3 java/lang/Boolean
+ 311496        3 java/lang/Class$3
+ 311496        3 java/lang/Integer
+ 311496        3 java/lang/RuntimePermission
+ 311496        3 java/lang/ThreadLocal
+ 311496        3 java/nio/charset/CodingErrorAction
+ 311496        3 java/util/Stack
+ 311496        3 sun/misc/Signal
+ 311496        4 [Ljava/lang/annotation/Annotation;
+ 311496        4 [Ljava/lang/reflect/Field;
+ 311496        4 java/lang/ref/ReferenceQueue$Lock
+ 311496        4 java/lang/reflect/Constructor
+ 311496        4 sun/misc/MetaIndex
+ 311496        4 sun/nio/cs/US_ASCII$Decoder
+ 311496        4 sun/reflect/ReflectionFactory$GetReflectionFactoryAction
+ 311496        5 java/io/FileDescriptor
+ 311496        5 sun/misc/URLClassPath$JarLoader
+ 311496        6 java/lang/Thread
+ 311496        6 java/nio/HeapByteBuffer
+ 311496        6 java/util/Hashtable
+ 311496        6 sun/misc/URLClassPath$3
+ 311496        7 java/lang/ref/SoftReference
+ 311496        8 [Ljava/io/ObjectStreamField;
+ 311496        8 java/lang/OutOfMemoryError
+ 311496        8 java/lang/ref/Finalizer
+ 311496        8 java/util/ArrayList
+ 311496        8 java/util/Vector
+ 311496        9 java/lang/StringBuffer
+ 311496       10 [Ljava/util/Hashtable$Entry;
+ 311496       10 java/io/ObjectStreamField
+ 311496       10 java/security/AccessControlContext
+ 311496       11 java/net/Parts
+ 311496       11 java/nio/HeapCharBuffer
+ 311496       12 [Ljava/lang/Class;
+ 311496       12 java/io/ExpiringCache$Entry
+ 311496       13 java/net/URL
+ 311496       14 java/util/HashMap
+ 311496       15 java/util/HashMap$Entry
+ 311496       15 java/util/LinkedHashMap$Entry
+ 311496       16 java/lang/Object
+ 311496       16 java/util/concurrent/ConcurrentHashMap$Segment
+ 311496       16 java/util/concurrent/locks/ReentrantLock$NonfairSync
+ 311496       17 [Ljava/util/HashMap$Entry;
+ 311496       17 sun/security/action/GetPropertyAction
+ 311496       19 java/util/Locale
+ 311496       22 [Ljava/util/concurrent/ConcurrentHashMap$HashEntry;
+ 311496       23 java/util/concurrent/ConcurrentHashMap$HashEntry
+ 311496       37 java/io/File
+ 311496       37 java/lang/reflect/Field
+ 311496       57 [Ljava/lang/String;
+ 311496       57 java/util/Hashtable$Entry
+ 311496       73 java/lang/StringBuilder
+ 311496      326 [Ljava/lang/Object;
+ 311496      374 [I
+ 311496      395 java/lang/Class
+ 311496      406 [B
+ 311496      486 [S
+ 311496      541 [[I
+ 311496      931 java/lang/String
+ 311496     1076 [C
+
+In the first section - Java object allocation byte distributions by PID and
+class, you can see in graphical form the range of sizes of each type of
+object.  For example: 
+
+   311496  [C                                                
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@                               271      
+              32 |@@@@@@@@@@@@@@@@@@@@@                    573      
+              64 |@@@@@@                                   150      
+             128 |@@@                                      68       
+             256 |                                         8        
+             512 |                                         1        
+            1024 |                                         2        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |                                         3        
+           32768 |                                         0        
+
+shows that there were 271 objects of type [C and size 16 bytes to 31 bytes
+created.  It is important to pay close attention to the third column, 
+"count" as this will indicate if there were any instances in a particular 
+size, even if the number is too small to show up on the histogram scale. 
+
+In the second section - Java object allocation count by pid and class, you can
+easily see that there were 395 objects of java/lang/Class created, and 931 
+objects of java/lang/String.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_package_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_package_example.txt
new file mode 100644
index 0000000..0d4da29
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_package_example.txt
@@ -0,0 +1,44 @@
+The following are examples of j_package.d.
+
+This script will show you the number of times a class is loaded from
+particular packages.  
+
+Here you can see it running when Code/Java/Func_abc runs.
+
+# j_package.d
+Tracing... Hit Ctrl-C to end.
+
+      PID    LOADS  PACKAGE
+   311500        1  .
+   311500        1  java/lang/annotation
+   311500        1  java/nio/charset/spi
+   311500        1  java/security/cert
+   311500        1  sun/net/www/protocol/jar
+   311500        1  sun/nio
+   311500        1  sun/reflect/misc
+   311500        1  sun/security/action
+   311500        1  sun/security/provider
+   311500        1  sun/security/util
+   311500        1  sun/util
+   311500        2  sun/net/www/protocol/file
+   311500        3  java/util/concurrent/atomic
+   311500        3  sun/net/www
+   311500        4  java/util/concurrent
+   311500        4  java/util/jar
+   311500        7  java/nio
+   311500        7  java/util/concurrent/locks
+   311500        7  java/util/zip
+   311500        8  java/nio/charset
+   311500       10  java/net
+   311500       12  java/lang/ref
+   311500       12  java/lang/reflect
+   311500       13  sun/nio/cs
+   311500       18  sun/reflect
+   311500       19  java/security
+   311500       34  sun/misc
+   311500       38  java/io
+   311500       46  java/util
+   311500       69  java/lang
+
+You can see that 69 classes from the java/lang package were loaded during the
+time this script was running.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_profile_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_profile_example.txt
new file mode 100644
index 0000000..bb45c4b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_profile_example.txt
@@ -0,0 +1,209 @@
+The following are examples of j_profile.d.
+
+This script samples on-CPU stack traces and prints them with Java
+translations.  With DTrace, as well as tracing events, you can also sample
+them.  Each approach has its own advantages and disadvantages and you are 
+encouraged to try both when investigating performance issues (especially 
+tracing).  Sampling is inaccurate and can miss events, yet is a quick and 
+easy way to discover a certain set of performance issues involving on-CPU 
+load.  
+  
+This script samples at 101 Hertz, printing out the 25 most frequently seen 
+stack traces down to 10 lines deep. All of these values can be tweaked in 
+the script.
+
+Here we run the script on Code/Java/Func_loop.  The argument fed to the script
+is the PID of the Java program we wish to investigate.  Here the raw output is
+show, then again after filtering using c++filt.
+
+# j_profile.d -p 1312
+Sampling 10-level stacks at 101 Hertz... Hit Ctrl-C to end.
+^C
+
+Top 25 most frequently sampled stacks,
+
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+              libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+              libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+              libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               30
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+              libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+              libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+              libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               31
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+              libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+              libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+              libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               32
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+              libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+              libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+              libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               33
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+              libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+              libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+              libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               41
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+              libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+              libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+              libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               72
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+              libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+              libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+              libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+              116
+
+
+The most frequent stacks had Func_loop.func_c() on CPU, with a stack trace
+showing func_b() and func_a() - as expected from the source to Func_loop.java.
+
+
+Now passing that output through c++filt to translate the compiled C++ symbols
+of the JVM.
+
+# j_profile.d -p 1312 -o out.j_profile
+# c++filt out.j_profile
+Sampling 10-level stacks at 101 Hertz... Hit Ctrl-C to end.
+
+Top 25 most frequently sampled stacks,
+
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+              libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+              libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+              libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               10
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+              libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+              libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+              libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               13
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+              libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+              libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+              libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               19
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+              libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+              libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+              libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               21
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+              libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+              libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+              libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               29
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+              libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+              libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+              libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               53
+
+              Func_loop.func_c()V
+              Func_loop.func_b()V
+              Func_loop.func_a()V
+              Func_loop.main([Ljava/lang/String;)V
+              StubRoutines (1)
+              libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+              libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+              libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+              libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+              libjvm.so`jni_CallStaticVoidMethod+0x15d
+               74
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_stat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_stat_example.txt
new file mode 100644
index 0000000..6c7e12e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_stat_example.txt
@@ -0,0 +1,33 @@
+The following are examples of running j_stat.d.
+
+j_stat.d shows you the number of events per second that have happened since
+the last line output.  The default interval is 1 second, but you can specify
+other intervals as arguments to the script.
+
+This shows the j_stat.d script reflecting the Code/Ruby/Func_abc script.  
+
+# j_stat.d
+TIME                 EXEC/s THREAD/s METHOD/s OBJNEW/s  CLOAD/s EXCP/s   GC/s
+2007 Sep 24 04:00:34      0        0        0        0        0      0      0
+2007 Sep 24 04:00:35      2        6    11660     5306      318     41      0
+2007 Sep 24 04:00:36      0        0      124        4        0      2      0
+2007 Sep 24 04:00:37      0        0      124        4        0      2      0
+2007 Sep 24 04:00:38      0        0      123       75        9      1      0
+2007 Sep 24 04:00:39      0        0        0        0        0      0      0
+2007 Sep 24 04:00:40      0        0        0        0        0      0      0
+^C
+
+Here we can see that at 2007 Sep 24 04:00:35 there were 2 Java programs
+executed, (this number will include those without Java provider support),
+there were 6 threads created, 11,660 methods called, 5306 new objects created,
+318 class loads, 41 exceptions raised and no garbage collects. 
+
+The numbers are per second counts for the interval specified. The default 
+interval is 1 second.
+
+If you see a count in "EXECS" but not in the other columns, then your Java 
+software is probably not running with the DTrace hotspot provider.
+
+If you see counts in "CLOAD" but not in "METHODS", then you Java software 
+probably isn't running with "+ExtendedDTraceProbes".
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_syscalls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_syscalls_example.txt
new file mode 100644
index 0000000..911d4b0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_syscalls_example.txt
@@ -0,0 +1,165 @@
+The following are examples of j_syscalls.d.
+
+This is a simple script to count executed Java methods and system calls.
+Here it traces an example program, Code/Java/Func_abc.
+
+# j_syscalls.d -c 'java -XX:+ExtendedDTraceProbes Func_abc'
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+    PID TYPE     NAME                                                    COUNT
+ 311536 method   Func_abc.func_a                                             1
+ 311536 method   Func_abc.func_b                                             1
+ 311536 method   Func_abc.func_c                                             1
+ 311536 method   Func_abc.main                                               1
+ 311536 method   java/io/BufferedInputStream.<clinit>                        1
+ 311536 method   java/io/BufferedReader.<clinit>                             1
+ 311536 method   java/io/BufferedReader.close                                1
+ 311536 method   java/io/BufferedWriter.<clinit>                             1
+ 311536 method   java/io/Console$1$1.<init>                                  1
+ 311536 method   java/io/Console$1$1.run                                     1
+ 311536 method   java/io/Console$1.<init>                                    1
+ 311536 method   java/io/Console$1.consoleRestoreHook                        1
+ 311536 method   java/io/Console.<clinit>                                    1
+ 311536 method   java/io/Console.access$600                                  1
+ 311536 method   java/io/DataInputStream.<init>                              1
+ 311536 method   java/io/DataInputStream.readFully                           1
+ 311536 method   java/io/DeleteOnExitHook.<clinit>                           1
+ 311536 method   java/io/DeleteOnExitHook.<init>                             1
+ 311536 method   java/io/DeleteOnExitHook.hook                               1
+ 311536 method   java/io/DeleteOnExitHook.run                                1
+[... 900 lines truncated ...]
+ 311536 method   java/io/ExpiringCache.get                                  18
+ 311536 method   java/lang/Class.desiredAssertionStatus                     18
+ 311536 method   java/lang/Class.desiredAssertionStatus0                    18
+ 311536 method   java/lang/ClassLoader.findLoadedClass                      18
+ 311536 method   java/lang/ClassLoader.findLoadedClass0                     18
+ 311536 method   java/io/BufferedReader.ensureOpen                          19
+ 311536 method   java/lang/System.currentTimeMillis                         19
+ 311536 method   java/nio/Buffer.limit                                      19
+ 311536 method   java/util/Locale.<init>                                    19
+ 311536 method   java/util/Locale.createSingleton                           19
+ 311536 method   java/util/concurrent/ConcurrentHashMap$Segment.put         19
+ 311536 method   java/util/concurrent/ConcurrentHashMap.put                 19
+ 311536 method   java/util/concurrent/locks/AbstractQueuedSynchronizer.compareAndSetState       19
+ 311536 method   java/util/concurrent/locks/AbstractQueuedSynchronizer.release       19
+ 311536 method   java/util/concurrent/locks/AbstractQueuedSynchronizer.setState       19
+ 311536 method   java/util/concurrent/locks/ReentrantLock$NonfairSync.lock       19
+ 311536 method   java/util/concurrent/locks/ReentrantLock$Sync.tryRelease       19
+ 311536 method   java/util/concurrent/locks/ReentrantLock.lock              19
+ 311536 method   java/util/concurrent/locks/ReentrantLock.unlock            19
+ 311536 method   java/io/ObjectStreamField.<init>                           20
+ 311536 method   java/nio/ByteBuffer.array                                  20
+ 311536 method   java/util/AbstractList.<init>                              20
+ 311536 method   java/util/BitSet.get                                       20
+ 311536 method   java/util/concurrent/ConcurrentHashMap.hash                20
+ 311536 method   java/util/concurrent/ConcurrentHashMap.segmentFor          20
+ 311536 method   sun/misc/VM.isBooted                                       20
+ 311536 syscall  memcntl                                                    20
+ 311536 method   java/io/File.getName                                       21
+ 311536 method   java/io/UnixFileSystem.getBooleanAttributes                21
+ 311536 method   java/io/UnixFileSystem.getBooleanAttributes0               21
+ 311536 method   java/lang/StringBuffer.append                              21
+ 311536 method   java/nio/charset/Charset.atBugLevel                        21
+ 311536 method   java/util/concurrent/ConcurrentHashMap$HashEntry.newArray       22
+ 311536 method   sun/misc/Unsafe.compareAndSwapInt                          22
+ 311536 method   java/util/HashMap.<init>                                   23
+ 311536 method   java/util/concurrent/ConcurrentHashMap$HashEntry.<init>       23
+ 311536 syscall  stat64                                                     23
+ 311536 method   java/nio/charset/CoderResult.isUnderflow                   24
+ 311536 method   java/util/AbstractMap.<init>                               24
+ 311536 method   java/util/Vector.elementAt                                 24
+ 311536 syscall  munmap                                                     24
+ 311536 method   java/lang/Class.getClassLoader                             25
+ 311536 syscall  lwp_sigmask                                                25
+ 311536 syscall  sigaction                                                  25
+ 311536 method   java/util/AbstractCollection.<init>                        26
+ 311536 method   java/util/ArrayList.add                                    26
+ 311536 method   java/util/ArrayList.ensureCapacity                         26
+ 311536 method   java/lang/ClassLoader.loadClass                            27
+ 311536 method   java/net/URL.<init>                                        27
+ 311536 method   java/lang/ClassLoader.check                                28
+ 311536 method   java/lang/ClassLoader.checkName                            28
+ 311536 method   java/lang/ref/Reference.<init>                             28
+ 311536 method   java/lang/String.endsWith                                  29
+ 311536 method   sun/misc/VM.allowArraySyntax                               29
+ 311536 method   java/io/ExpiringCache.entryFor                             30
+ 311536 method   java/io/UnixFileSystem.resolve                             30
+ 311536 method   java/util/HashMap$Entry.<init>                             30
+ 311536 method   java/util/LinkedHashMap.get                                30
+ 311536 syscall  priocntlsys                                                30
+ 311536 method   java/util/HashMap.put                                      33
+ 311536 method   java/util/Vector.<init>                                    33
+ 311536 method   java/io/UnixFileSystem.normalize                           34
+ 311536 method   java/lang/Class.getClassLoader0                            34
+ 311536 method   java/lang/String.toLowerCase                               34
+ 311536 method   sun/security/action/GetPropertyAction.run                  34
+ 311536 method   java/nio/CharBuffer.arrayOffset                            36
+ 311536 method   java/util/HashMap.getEntry                                 36
+ 311536 method   java/io/File.<init>                                        37
+ 311536 method   java/io/UnixFileSystem.prefixLength                        37
+ 311536 method   java/io/BufferedReader.readLine                            38
+ 311536 method   java/util/concurrent/locks/AbstractOwnableSynchronizer.setExclusiveOwnerThread       38
+ 311536 syscall  resolvepath                                                38
+ 311536 method   java/lang/CharacterDataLatin1.toLowerCase                  41
+ 311536 method   java/lang/CharacterDataLatin1.getProperties                43
+ 311536 method   java/security/AccessController.doPrivileged                43
+ 311536 method   java/util/Vector.size                                      43
+ 311536 method   java/nio/Buffer.position                                   44
+ 311536 method   java/nio/ByteBuffer.arrayOffset                            44
+ 311536 method   java/lang/System.getProperty                               48
+ 311536 method   java/util/Properties.getProperty                           50
+ 311536 method   java/util/BitSet.expandTo                                  51
+ 311536 method   java/util/BitSet.set                                       51
+ 311536 syscall  pollsys                                                    55
+ 311536 method   java/lang/System.checkKey                                  56
+ 311536 method   java/lang/Thread.currentThread                             57
+ 311536 method   java/util/Hashtable$Entry.<init>                           57
+ 311536 method   java/util/Hashtable.get                                    59
+ 311536 method   java/util/Hashtable.put                                    63
+ 311536 method   java/util/BitSet.checkInvariants                           71
+ 311536 method   java/util/BitSet.wordIndex                                 72
+ 311536 method   java/lang/StringBuilder.<init>                             73
+ 311536 method   java/lang/StringBuilder.toString                           73
+ 311536 method   java/lang/AbstractStringBuilder.expandCapacity             81
+ 311536 method   java/util/HashMap.hash                                     81
+ 311536 method   java/util/HashMap.indexFor                                 81
+ 311536 method   java/lang/AbstractStringBuilder.<init>                     82
+ 311536 method   java/lang/Character.toLowerCase                            82
+ 311536 method   java/lang/String.startsWith                                83
+ 311536 method   java/util/Arrays.copyOf                                    87
+ 311536 method   java/lang/String.lastIndexOf                               90
+ 311536 method   java/lang/String.substring                                 94
+ 311536 syscall  brk                                                       102
+ 311536 syscall  ioctl                                                     103
+ 311536 method   java/util/Arrays.copyOfRange                              107
+ 311536 syscall  mmap                                                      127
+ 311536 syscall  open                                                      129
+ 311536 syscall  close                                                     133
+ 311536 method   java/lang/String.getChars                                 156
+ 311536 method   java/lang/System.getSecurityManager                       174
+ 311536 method   java/lang/String.<init>                                   175
+ 311536 syscall  xstat                                                     188
+ 311536 method   java/lang/String.equals                                   202
+ 311536 method   java/lang/Math.min                                        208
+ 311536 method   java/lang/String.hashCode                                 213
+ 311536 syscall  lwp_exit                                                  291
+ 311536 method   java/lang/String.indexOf                                  302
+ 311536 method   java/lang/System.arraycopy                                360
+ 311536 method   java/lang/StringBuilder.append                            545
+ 311536 method   java/lang/AbstractStringBuilder.append                    561
+ 311536 syscall  llseek                                                    664
+ 311536 syscall  read                                                      668
+ 311536 method   java/lang/Object.<init>                                   823
+ 311536 method   java/lang/String.charAt                                  1987
+
+While tracing there were numerous system calls made, including 668 reads()'s,
+and 664 llseek()'s.  Many Java methods were also called, with 1987
+java/lang/String.charAt being the most of a particular kind.
+
+This script can provide an insight to how an application is interacting
+with the system, by providing both application method calls and
+system calls in the same output.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_syscolors_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_syscolors_example.txt
new file mode 100644
index 0000000..3b130ee8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_syscolors_example.txt
@@ -0,0 +1,1550 @@
+The following are examples of j_syscolors.d.
+
+This is a simple script to trace the method flow of Java methods within a
+program, and the system calls made.  It watches Java method entries and 
+returns, and indents child * method calls.  It renders the output in color 
+("colour") using terminal escape sequences (which you can tweak by modifying 
+the script).
+
+Here it traces the example program, Code/Java/Func_abc.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+The fields in the output are, in order;  CPU-id, Process ID/Thread ID, Elapsed
+time from previous line to current line, Type of call (func/syscall) and name
+of Java method or syscall.
+ 
+If the flow appears to jump, check the TID column - the JVM may have switched 
+to another thread.
+
+WARNING: Watch the first column carefully, it prints the CPU-id. If it changes,
+then it is very likely that the output has been shuffled.  Changes in TID will
+appear to shuffle output, as we change from one thread depth to the next. See 
+Docs/Notes/ALLjavaflow.txt for additional notes.
+
+# j_syscolors.d -c 'java -XX:+ExtendedDTraceProbes Func_abc'
+C    PID/TID   DELTA(us) TYPE     -- NAME
+[2;32m0 311542/1             2 syscall  -> munmap[0m
+[2;32m0 311542/1            33 syscall  <- munmap[0m
+[2;32m0 311542/1            52 syscall  -> mmap[0m
+[2;32m0 311542/1            16 syscall  <- mmap[0m
+[2;32m0 311542/1            34 syscall  -> setcontext[0m
+[2;32m0 311542/1             7 syscall  <- setcontext[0m
+[2;32m0 311542/1             7 syscall  -> getrlimit[0m
+[2;32m0 311542/1             7 syscall  <- getrlimit[0m
+[2;32m0 311542/1             7 syscall  -> getpid[0m
+[2;32m0 311542/1             6 syscall  <- getpid[0m
+[2;32m0 311542/1            58 syscall  -> setcontext[0m
+[2;32m0 311542/1             6 syscall  <- setcontext[0m
+[2;32m0 311542/1           975 syscall  -> sysi86[0m
+[2;32m0 311542/1             9 syscall  <- sysi86[0m
+[2;32m0 311542/1           134 syscall  -> brk[0m
+[2;32m0 311542/1             8 syscall  <- brk[0m
+[2;32m0 311542/1             7 syscall  -> brk[0m
+[2;32m0 311542/1            10 syscall  <- brk[0m
+[2;32m0 311542/1            47 syscall  -> sysconfig[0m
+[2;32m0 311542/1             6 syscall  <- sysconfig[0m
+[2;32m0 311542/1            36 syscall  -> resolvepath[0m
+[2;32m0 311542/1            31 syscall  <- resolvepath[0m
+[2;32m0 311542/1             9 syscall  -> resolvepath[0m
+[2;32m0 311542/1            18 syscall  <- resolvepath[0m
+[2;32m0 311542/1            85 syscall  -> access[0m
+[2;32m0 311542/1            20 syscall  <- access[0m
+[2;32m0 311542/1             8 syscall  -> access[0m
+[2;32m0 311542/1            24 syscall  <- access[0m
+[2;32m0 311542/1           115 syscall  -> open[0m
+[2;32m0 311542/1            27 syscall  <- open[0m
+[2;32m0 311542/1            14 syscall  -> fstat64[0m
+[2;32m0 311542/1             7 syscall  <- fstat64[0m
+[2;32m0 311542/1            11 syscall  -> fstat64[0m
+[2;32m0 311542/1             6 syscall  <- fstat64[0m
+[2;32m0 311542/1            22 syscall  -> ioctl[0m
+[2;32m0 311542/1             7 syscall  <- ioctl[0m
+[2;32m0 311542/1            11 syscall  -> read[0m
+[2;32m0 311542/1            43 syscall  <- read[0m
+[2;32m0 311542/1            39 syscall  -> read[0m
+[2;32m0 311542/1             7 syscall  <- read[0m
+[2;32m0 311542/1            10 syscall  -> llseek[0m
+[2;32m0 311542/1             7 syscall  <- llseek[0m
+[2;32m0 311542/1             8 syscall  -> close[0m
+[2;32m0 311542/1             9 syscall  <- close[0m
+[2;32m0 311542/1            12 syscall  -> sysconfig[0m
+[2;32m0 311542/1             6 syscall  <- sysconfig[0m
+[2;32m0 311542/1             7 syscall  -> sysconfig[0m
+[2;32m0 311542/1             6 syscall  <- sysconfig[0m
+[2;32m0 311542/1             6 syscall  -> sysconfig[0m
+[2;32m0 311542/1             6 syscall  <- sysconfig[0m
+[2;32m0 311542/1            11 syscall  -> xstat[0m
+[2;32m0 311542/1            27 syscall  <- xstat[0m
+[2;32m0 311542/1            19 syscall  -> exece[0m
+[2;32m0 311542/1           684 syscall  <- exece[0m
+[2;32m0 311542/1          3320 syscall  -> mmap[0m
+[2;32m0 311542/1            22 syscall  <- mmap[0m
+[2;32m0 311542/1            26 syscall  -> resolvepath[0m
+[2;32m0 311542/1            52 syscall  <- resolvepath[0m
+[2;32m0 311542/1             8 syscall  -> resolvepath[0m
+[2;32m0 311542/1            25 syscall  <- resolvepath[0m
+[2;32m0 311542/1             7 syscall  -> sysconfig[0m
+[2;32m0 311542/1             6 syscall  <- sysconfig[0m
+[2;32m0 311542/1             9 syscall  -> xstat[0m
+[2;32m0 311542/1            18 syscall  <- xstat[0m
+[2;32m0 311542/1             7 syscall  -> open[0m
+[2;32m0 311542/1            18 syscall  <- open[0m
+[2;32m0 311542/1             7 syscall  -> fxstat[0m
+[2;32m0 311542/1             7 syscall  <- fxstat[0m
+[2;32m0 311542/1             6 syscall  -> mmap[0m
+[2;32m0 311542/1            11 syscall  <- mmap[0m
+[2;32m0 311542/1             7 syscall  -> close[0m
+[2;32m0 311542/1            10 syscall  <- close[0m
+[2;32m0 311542/1            42 syscall  -> xstat[0m
+[2;32m0 311542/1            27 syscall  <- xstat[0m
+[2;32m0 311542/1             8 syscall  -> xstat[0m
+[2;32m0 311542/1            19 syscall  <- xstat[0m
+[2;32m0 311542/1             7 syscall  -> xstat[0m
+[2;32m0 311542/1            25 syscall  <- xstat[0m
+[... 31000 lines truncated ...]
+[2;35m0 311542/2            10 method     <- java/util/HashSet.add[0m
+[2;35m0 311542/2            10 method   <- java/lang/ClassLoader.checkPackageAccess[0m
+[2;35m0 311542/2            28 method   -> java/lang/reflect/Method.getModifiers[0m
+[2;35m0 311542/2            14 method   <- java/lang/reflect/Method.getModifiers[0m
+[2;35m0 311542/2            17 method   -> Func_abc.main[0m
+[2;35m0 311542/2            14 method     -> Func_abc.func_a[0m
+[2;35m0 311542/2            12 method       -> java/lang/ClassLoader.checkPackageAccess[0m
+[2;35m0 311542/2            10 method         -> java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method         <- java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            11 method         -> java/util/HashSet.add[0m
+[2;35m0 311542/2            10 method           -> java/util/HashMap.put[0m
+[2;35m0 311542/2             9 method             -> java/lang/Object.hashCode[0m
+[2;35m0 311542/2            10 method             <- java/lang/Object.hashCode[0m
+[2;35m0 311542/2            10 method             -> java/util/HashMap.hash[0m
+[2;35m0 311542/2            10 method             <- java/util/HashMap.hash[0m
+[2;35m0 311542/2            10 method             -> java/util/HashMap.indexFor[0m
+[2;35m0 311542/2            10 method             <- java/util/HashMap.indexFor[0m
+[2;35m0 311542/2            10 method           <- java/util/HashMap.put[0m
+[2;35m0 311542/2            10 method         <- java/util/HashSet.add[0m
+[2;35m0 311542/2            10 method       <- java/lang/ClassLoader.checkPackageAccess[0m
+[2;32m0 311542/2            20 syscall      -> brk[0m
+[2;32m0 311542/2            15 syscall      <- brk[0m
+[2;32m0 311542/2            13 syscall      -> brk[0m
+[2;32m0 311542/2            17 syscall      <- brk[0m
+[2;35m0 311542/2            47 method       -> java/lang/ClassLoader.loadClassInternal[0m
+[2;35m0 311542/2            12 method         -> java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method           -> sun/misc/Launcher$AppClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method             -> java/lang/String.lastIndexOf[0m
+[2;35m0 311542/2            10 method               -> java/lang/String.lastIndexOf[0m
+[2;35m0 311542/2            11 method               <- java/lang/String.lastIndexOf[0m
+[2;35m0 311542/2            10 method             <- java/lang/String.lastIndexOf[0m
+[2;35m0 311542/2            10 method             -> java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method             <- java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method             -> java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method               -> java/lang/ClassLoader.findLoadedClass[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.check[0m
+[2;35m0 311542/2             9 method                 <- java/lang/ClassLoader.check[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                   -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            11 method                     <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                   <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                   -> sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                   <- sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                   -> java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                   <- java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                 <- java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.findLoadedClass0[0m
+[2;35m0 311542/2            12 method                 <- java/lang/ClassLoader.findLoadedClass0[0m
+[2;35m0 311542/2            10 method               <- java/lang/ClassLoader.findLoadedClass[0m
+[2;35m0 311542/2            11 method               -> java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.findLoadedClass[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.check[0m
+[2;35m0 311542/2             9 method                   <- java/lang/ClassLoader.check[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                       -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                       <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     -> sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                     <- sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.charAt[0m
+[2;35m0 311542/2             9 method                     <- java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                   <- java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.findLoadedClass0[0m
+[2;35m0 311542/2            11 method                   <- java/lang/ClassLoader.findLoadedClass0[0m
+[2;35m0 311542/2            10 method                 <- java/lang/ClassLoader.findLoadedClass[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.findBootstrapClass0[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.check[0m
+[2;35m0 311542/2            10 method                   <- java/lang/ClassLoader.check[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                       -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                       <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     -> sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                     <- sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.charAt[0m
+[2;35m0 311542/2             9 method                     <- java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                   <- java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.findBootstrapClass[0m
+[2;35m0 311542/2            12 method                   <- java/lang/ClassLoader.findBootstrapClass[0m
+[2;35m0 311542/2            10 method                 <- java/lang/ClassLoader.findBootstrapClass0[0m
+[2;35m0 311542/2            11 method               <- java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method             <- java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method           <- sun/misc/Launcher$AppClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method         <- java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method       <- java/lang/ClassLoader.loadClassInternal[0m
+[2;35m0 311542/2            14 method       -> java/lang/ClassLoader.checkPackageAccess[0m
+[2;35m0 311542/2            10 method         -> java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method         <- java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method         -> java/util/HashSet.add[0m
+[2;35m0 311542/2            10 method           -> java/util/HashMap.put[0m
+[2;35m0 311542/2            10 method             -> java/lang/Object.hashCode[0m
+[2;35m0 311542/2             9 method             <- java/lang/Object.hashCode[0m
+[2;35m0 311542/2            10 method             -> java/util/HashMap.hash[0m
+[2;35m0 311542/2            10 method             <- java/util/HashMap.hash[0m
+[2;35m0 311542/2            10 method             -> java/util/HashMap.indexFor[0m
+[2;35m0 311542/2            10 method             <- java/util/HashMap.indexFor[0m
+[2;35m0 311542/2            11 method           <- java/util/HashMap.put[0m
+[2;35m0 311542/2            10 method         <- java/util/HashSet.add[0m
+[2;35m0 311542/2            10 method       <- java/lang/ClassLoader.checkPackageAccess[0m
+[2;35m0 311542/2            18 method       -> java/io/PrintStream.println[0m
+[2;35m0 311542/2            13 method         -> java/io/PrintStream.print[0m
+[2;35m0 311542/2            12 method           -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            12 method             -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            13 method             <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            15 method             -> java/io/Writer.write[0m
+[2;35m0 311542/2            16 method               -> java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            13 method                 -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            12 method                 -> java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            13 method                 -> java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method                   -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            11 method                   <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                 <- java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method               <- java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method             <- java/io/Writer.write[0m
+[2;35m0 311542/2            13 method             -> java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method               -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method               <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            13 method               -> java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            13 method                 -> sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            13 method                   -> sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            13 method                   -> sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            14 method                     -> java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            11 method                       -> java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                         -> java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                           -> java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                             -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                             <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method                             -> java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           <- java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                         <- java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            13 method                     -> java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                     <- java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            14 method                     -> java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            13 method                       -> sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            13 method                         -> java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                         <- java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            14 method                         -> java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                         <- java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            13 method                         -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            56 method                           -> java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            11 method                           <- java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            12 method                           -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            13 method                           -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            16 method                           -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            12 method                           -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            12 method                           -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            17 method                           -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            12 method                           -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            12 method                           -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                         <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                       <- sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            12 method                       -> java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                       <- java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            12 method                       -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                       <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                     <- java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            13 method                     -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                     <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            14 method                     -> java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                     <- java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method               <- java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method             <- java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            13 method             -> java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            12 method               -> sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            13 method                 -> sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            13 method                   -> sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            12 method                     -> java/nio/Buffer.flip[0m
+[2;35m0 311542/2            10 method                     <- java/nio/Buffer.flip[0m
+[2;35m0 311542/2            14 method                     -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                     <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            12 method                     -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                     <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            14 method                     -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                       -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method                       <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            13 method                       -> java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            15 method                         -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                         <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                       <- java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            12 method                       -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            12 method                         -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            15 method                           -> java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            12 method                             -> java/io/FileOutputStream.writeBytes[0m
+[2;32m0 311542/2            55 syscall                              -> write[0m
+[2;32m0 311542/2           160 syscall                              <- write[0m
+[2;35m0 311542/2            12 method                             <- java/io/FileOutputStream.writeBytes[0m
+[2;35m0 311542/2            12 method                           <- java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                         <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            13 method                       <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            11 method                     <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            13 method                     -> java/nio/Buffer.clear[0m
+[2;35m0 311542/2            11 method                     <- java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method               <- sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method             <- java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            15 method             -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method               -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method               <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method             <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method           <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method         <- java/io/PrintStream.print[0m
+[2;35m0 311542/2            12 method         -> java/io/PrintStream.newLine[0m
+[2;35m0 311542/2            10 method           -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method           <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            12 method           -> java/io/BufferedWriter.newLine[0m
+[2;35m0 311542/2            12 method             -> java/io/Writer.write[0m
+[2;35m0 311542/2            10 method               -> java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method                 -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            11 method                 -> java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            10 method                 -> java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method                   -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                   <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                 <- java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method               <- java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method             <- java/io/Writer.write[0m
+[2;35m0 311542/2            10 method           <- java/io/BufferedWriter.newLine[0m
+[2;35m0 311542/2            10 method           -> java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method             -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method             <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method             -> java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method               -> sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2             9 method                 -> sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                 -> sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                   -> java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            10 method                     -> java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                       -> java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                         -> java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                           -> java/lang/Object.<init>[0m
+[2;35m0 311542/2             9 method                           <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                           -> java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                           <- java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                           -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                         <- java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                   <- java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            10 method                   -> java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                   <- java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                   -> java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            10 method                     -> sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            10 method                       -> java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2             9 method                       <- java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                       -> java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2             9 method                       <- java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                       -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                         -> java/nio/CharBuffer.array[0m
+[2;35m0 311542/2             9 method                         <- java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            10 method                         -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                         <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                         -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2             9 method                         <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            11 method                         -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                         <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                         -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                         <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                       <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            10 method                     -> java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                     <- java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                     -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                     <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                   <- java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            10 method                   -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                   <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                   -> java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                   <- java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method               <- sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method             <- java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method           <- java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method           -> java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method             -> sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method               -> sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method                 -> sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                   -> java/nio/Buffer.flip[0m
+[2;35m0 311542/2             9 method                   <- java/nio/Buffer.flip[0m
+[2;35m0 311542/2            11 method                   -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2             9 method                   <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                   -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                   <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                   -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                     -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2             9 method                     <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method                     -> java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                       -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                       <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                     <- java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                     -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                       -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                         -> java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                           -> java/io/FileOutputStream.writeBytes[0m
+[2;32m0 311542/2            12 syscall                            -> write[0m
+[2;32m0 311542/2            63 syscall                            <- write[0m
+[2;35m0 311542/2             8 method                           <- java/io/FileOutputStream.writeBytes[0m
+[2;35m0 311542/2            11 method                         <- java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                       <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                     <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                   <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                   -> java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                   <- java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method               <- sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method             <- sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method           <- java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method           -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method             -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method             <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method           <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method         <- java/io/PrintStream.newLine[0m
+[2;35m0 311542/2            10 method       <- java/io/PrintStream.println[0m
+[2;35m0 311542/2            23 method       -> java/lang/ClassLoader.loadClassInternal[0m
+[2;35m0 311542/2            11 method         -> java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method           -> sun/misc/Launcher$AppClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method             -> java/lang/String.lastIndexOf[0m
+[2;35m0 311542/2            10 method               -> java/lang/String.lastIndexOf[0m
+[2;35m0 311542/2            10 method               <- java/lang/String.lastIndexOf[0m
+[2;35m0 311542/2            10 method             <- java/lang/String.lastIndexOf[0m
+[2;35m0 311542/2            10 method             -> java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method             <- java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method             -> java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method               -> java/lang/ClassLoader.findLoadedClass[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.check[0m
+[2;35m0 311542/2            10 method                 <- java/lang/ClassLoader.check[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                   -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                   <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                   -> sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2             9 method                   <- sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                   -> java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                   <- java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                 <- java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.findLoadedClass0[0m
+[2;35m0 311542/2            14 method                 <- java/lang/ClassLoader.findLoadedClass0[0m
+[2;35m0 311542/2            10 method               <- java/lang/ClassLoader.findLoadedClass[0m
+[2;35m0 311542/2            12 method               -> java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.findLoadedClass[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.check[0m
+[2;35m0 311542/2             9 method                   <- java/lang/ClassLoader.check[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.indexOf[0m
+[2;35m0 311542/2             9 method                       -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                       <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     -> sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                     <- sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.charAt[0m
+[2;35m0 311542/2             9 method                     <- java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                   <- java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.findLoadedClass0[0m
+[2;35m0 311542/2            12 method                   <- java/lang/ClassLoader.findLoadedClass0[0m
+[2;35m0 311542/2            10 method                 <- java/lang/ClassLoader.findLoadedClass[0m
+[2;35m0 311542/2            10 method                 -> java/lang/ClassLoader.findBootstrapClass0[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.check[0m
+[2;35m0 311542/2             9 method                   <- java/lang/ClassLoader.check[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.indexOf[0m
+[2;35m0 311542/2             9 method                       -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                       <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                     -> sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                     <- sun/misc/VM.allowArraySyntax[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                     <- java/lang/String.charAt[0m
+[2;35m0 311542/2            10 method                   <- java/lang/ClassLoader.checkName[0m
+[2;35m0 311542/2            10 method                   -> java/lang/ClassLoader.findBootstrapClass[0m
+[2;35m0 311542/2            15 method                   <- java/lang/ClassLoader.findBootstrapClass[0m
+[2;35m0 311542/2            10 method                 <- java/lang/ClassLoader.findBootstrapClass0[0m
+[2;35m0 311542/2            11 method               <- java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method             <- java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method           <- sun/misc/Launcher$AppClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method         <- java/lang/ClassLoader.loadClass[0m
+[2;35m0 311542/2            10 method       <- java/lang/ClassLoader.loadClassInternal[0m
+[2;35m0 311542/2            17 method       -> java/lang/ClassLoader.checkPackageAccess[0m
+[2;35m0 311542/2            10 method         -> java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method         <- java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            11 method         -> java/util/HashSet.add[0m
+[2;35m0 311542/2            10 method           -> java/util/HashMap.put[0m
+[2;35m0 311542/2            10 method             -> java/lang/Object.hashCode[0m
+[2;35m0 311542/2            10 method             <- java/lang/Object.hashCode[0m
+[2;35m0 311542/2            10 method             -> java/util/HashMap.hash[0m
+[2;35m0 311542/2            10 method             <- java/util/HashMap.hash[0m
+[2;35m0 311542/2            10 method             -> java/util/HashMap.indexFor[0m
+[2;35m0 311542/2            10 method             <- java/util/HashMap.indexFor[0m
+[2;35m0 311542/2            11 method           <- java/util/HashMap.put[0m
+[2;35m0 311542/2            10 method         <- java/util/HashSet.add[0m
+[2;35m0 311542/2            10 method       <- java/lang/ClassLoader.checkPackageAccess[0m
+[2;35m0 311542/2            20 method       -> java/lang/Thread.currentThread[0m
+[2;35m0 311542/2            11 method       <- java/lang/Thread.currentThread[0m
+[2;35m0 311542/2            13 method       -> java/lang/Thread.sleep[0m
+[2;32m0 311542/2            21 syscall        -> pollsys[0m
+[2;32m0 311542/10        59827 syscall  <- pollsys[0m
+[2;32m0 311542/10           31 syscall  -> pollsys[0m
+[2;32m0 311542/10        59842 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        60087 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59871 syscall  <- pollsys[0m
+[2;32m0 311542/10           26 syscall  -> pollsys[0m
+[2;32m0 311542/3       1008044 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/3            37 syscall  -> lwp_cond_wait[0m
+[2;32m0 311542/10        59402 syscall  <- pollsys[0m
+[2;32m0 311542/10           18 syscall  -> pollsys[0m
+[2;32m0 311542/10        59999 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59965 syscall  <- pollsys[0m
+[2;32m0 311542/10           25 syscall  -> pollsys[0m
+[2;32m0 311542/10        59979 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        51241 syscall  <- pollsys[0m
+[2;32m0 311542/10           31 syscall  -> pollsys[0m
+[2;32m0 311542/10        58679 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        50215 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59734 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59977 syscall  <- pollsys[0m
+[2;32m0 311542/10           26 syscall  -> pollsys[0m
+[2;32m0 311542/10        59970 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59966 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        60013 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59924 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+Function B
+[2;32m0 311542/2       1003741 syscall        <- pollsys[0m
+[2;35m0 311542/2            28 method       <- java/lang/Thread.sleep[0m
+[2;35m0 311542/2            45 method       -> Func_abc.func_b[0m
+[2;35m0 311542/2            36 method         -> java/io/PrintStream.println[0m
+[2;35m0 311542/2            11 method           -> java/io/PrintStream.print[0m
+[2;35m0 311542/2            10 method             -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method               -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method               <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            11 method               -> java/io/Writer.write[0m
+[2;35m0 311542/2            11 method                 -> java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method                   -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                   <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            12 method                   -> java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            10 method                   <- java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            11 method                   -> java/lang/String.getChars[0m
+[2;35m0 311542/2            11 method                     -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            11 method                     <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                   <- java/lang/String.getChars[0m
+[2;35m0 311542/2            11 method                 <- java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method               <- java/io/Writer.write[0m
+[2;35m0 311542/2            10 method               -> java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method                 -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            11 method                 -> java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method                   -> sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method                     -> sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            11 method                     -> sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                       -> java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            10 method                         -> java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                           -> java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                               -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                               <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method                               -> java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                               <- java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                               -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                               <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                         <- java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            11 method                       -> java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                       <- java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            11 method                       -> java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            11 method                         -> sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            10 method                           -> java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            11 method                           -> java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                           -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                             -> java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            10 method                             -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            11 method                             -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                             <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                             -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2             9 method                             <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            12 method                             -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                         <- sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            11 method                         -> java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                         <- java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                         -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                         <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                       <- java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            10 method                       -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                       <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                       -> java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                       <- java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method                 <- java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method               <- java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method               -> java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method                 -> sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method                   -> sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method                     -> sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                       -> java/nio/Buffer.flip[0m
+[2;35m0 311542/2             9 method                       <- java/nio/Buffer.flip[0m
+[2;35m0 311542/2            11 method                       -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2             9 method                       <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                       -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                       <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                       -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                         -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2             9 method                         <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            11 method                         -> java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                           -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                           <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                         <- java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                         -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                           -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                             -> java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                               -> java/io/FileOutputStream.writeBytes[0m
+[2;32m0 311542/2            17 syscall                                -> write[0m
+[2;32m0 311542/2           104 syscall                                <- write[0m
+[2;35m0 311542/2             9 method                               <- java/io/FileOutputStream.writeBytes[0m
+[2;35m0 311542/2            11 method                             <- java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                           <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                         <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                       <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                       -> java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                       <- java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method               <- java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            11 method               -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                 -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            11 method                 <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method               <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method             <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method           <- java/io/PrintStream.print[0m
+[2;35m0 311542/2            10 method           -> java/io/PrintStream.newLine[0m
+[2;35m0 311542/2            10 method             -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method             <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method             -> java/io/BufferedWriter.newLine[0m
+[2;35m0 311542/2            10 method               -> java/io/Writer.write[0m
+[2;35m0 311542/2            10 method                 -> java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method                   -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2             9 method                   <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                   -> java/io/BufferedWriter.min[0m
+[2;35m0 311542/2             9 method                   <- java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            10 method                   -> java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method                     -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                     <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                   <- java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method               <- java/io/Writer.write[0m
+[2;35m0 311542/2            10 method             <- java/io/BufferedWriter.newLine[0m
+[2;35m0 311542/2            10 method             -> java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method               -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2             9 method               <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method               -> java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method                 -> sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method                   -> sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                   -> sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                     -> java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            10 method                       -> java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                         -> java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                           -> java/nio/Buffer.<init>[0m
+[2;35m0 311542/2             9 method                             -> java/lang/Object.<init>[0m
+[2;35m0 311542/2             9 method                             <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           <- java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                         <- java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            10 method                     -> java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                     <- java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                     -> java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            10 method                       -> sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            10 method                         -> java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                         <- java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                         -> java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                         <- java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                         -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                           -> java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            10 method                           -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            11 method                           -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2             9 method                           <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                           -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            11 method                           -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           -> java/nio/Buffer.position[0m
+[2;35m0 311542/2             9 method                           <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                           -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                         <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                       <- sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            10 method                       -> java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                       <- java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                       -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                       <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                     <- java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            10 method                     -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                     <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                     -> java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                     <- java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method               <- java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method             <- java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method             -> java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method               -> sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method                 -> sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method                   -> sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                     -> java/nio/Buffer.flip[0m
+[2;35m0 311542/2            10 method                     <- java/nio/Buffer.flip[0m
+[2;35m0 311542/2            10 method                     -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2             9 method                     <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                     -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                     <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                     -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                       -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2             9 method                       <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method                       -> java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                         -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                         <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                       <- java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                       -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                         -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                           -> java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                             -> java/io/FileOutputStream.writeBytes[0m
+[2;32m0 311542/2            11 syscall                              -> write[0m
+[2;32m0 311542/2            64 syscall                              <- write[0m
+[2;35m0 311542/2             8 method                             <- java/io/FileOutputStream.writeBytes[0m
+[2;35m0 311542/2            11 method                           <- java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                         <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                       <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                     <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                     -> java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                     <- java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method               <- sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method             <- java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method             -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method               -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method               <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method             <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method           <- java/io/PrintStream.newLine[0m
+[2;35m0 311542/2            10 method         <- java/io/PrintStream.println[0m
+[2;35m0 311542/2            10 method         -> java/lang/Thread.currentThread[0m
+[2;35m0 311542/2            10 method         <- java/lang/Thread.currentThread[0m
+[2;35m0 311542/2            10 method         -> java/lang/Thread.sleep[0m
+[2;32m0 311542/2            14 syscall          -> pollsys[0m
+[2;32m0 311542/10        59985 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59968 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59981 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59960 syscall  <- pollsys[0m
+[2;32m0 311542/10           28 syscall  -> pollsys[0m
+[2;32m0 311542/10        59967 syscall  <- pollsys[0m
+[2;32m0 311542/10           22 syscall  -> pollsys[0m
+[2;32m0 311542/3       1050003 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/3            14 syscall  -> lwp_cond_wait[0m
+[2;32m0 311542/10        59985 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59969 syscall  <- pollsys[0m
+[2;32m0 311542/10           25 syscall  -> pollsys[0m
+[2;32m0 311542/10        59980 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        51269 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        58678 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        50207 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59714 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59967 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59965 syscall  <- pollsys[0m
+[2;32m0 311542/10           28 syscall  -> pollsys[0m
+[2;32m0 311542/10        59970 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59952 syscall  <- pollsys[0m
+[2;32m0 311542/10           31 syscall  -> pollsys[0m
+[2;32m0 311542/10        59969 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+Function C
+[2;32m0 311542/2       1006879 syscall          <- pollsys[0m
+[2;35m0 311542/2            29 method         <- java/lang/Thread.sleep[0m
+[2;35m0 311542/2            45 method         -> Func_abc.func_c[0m
+[2;35m0 311542/2            36 method           -> java/io/PrintStream.println[0m
+[2;35m0 311542/2            11 method             -> java/io/PrintStream.print[0m
+[2;35m0 311542/2            10 method               -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                 -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method                 <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            11 method                 -> java/io/Writer.write[0m
+[2;35m0 311542/2            11 method                   -> java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method                     -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                     <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            12 method                     -> java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            10 method                     <- java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            11 method                     -> java/lang/String.getChars[0m
+[2;35m0 311542/2            11 method                       -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            11 method                       <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                     <- java/lang/String.getChars[0m
+[2;35m0 311542/2            11 method                   <- java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method                 <- java/io/Writer.write[0m
+[2;35m0 311542/2            10 method                 -> java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method                   -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                   <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            11 method                   -> java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method                     -> sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method                       -> sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                       <- sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            11 method                       -> sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                         -> java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            11 method                           -> java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                             -> java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                               -> java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                                 -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                                 <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method                                 -> java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                                 <- java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                                 -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                                 <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                               <- java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                           <- java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                         <- java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            11 method                         -> java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                         <- java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            11 method                         -> java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            11 method                           -> sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            10 method                             -> java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            11 method                             -> java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                             <- java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                             -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                               -> java/nio/CharBuffer.array[0m
+[2;35m0 311542/2             9 method                               <- java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            10 method                               -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            11 method                               -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                               <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                               -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            12 method                               -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                               <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                               -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                               -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                               <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                           <- sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            11 method                           -> java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                           <- java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                           -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                           <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                         <- java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            10 method                         -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                         <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                         -> java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                         <- java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                       <- sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method                   <- java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method                 -> java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method                   -> sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method                     -> sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method                       -> sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                         -> java/nio/Buffer.flip[0m
+[2;35m0 311542/2             9 method                         <- java/nio/Buffer.flip[0m
+[2;35m0 311542/2            11 method                         -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2             9 method                         <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                         -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                         <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            11 method                         -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                           -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2             9 method                           <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            11 method                           -> java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                             -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                             <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                           <- java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            11 method                           -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                             -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                               -> java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                                 -> java/io/FileOutputStream.writeBytes[0m
+[2;32m0 311542/2            17 syscall                                  -> write[0m
+[2;32m0 311542/2           143 syscall                                  <- write[0m
+[2;35m0 311542/2             9 method                                 <- java/io/FileOutputStream.writeBytes[0m
+[2;35m0 311542/2            11 method                               <- java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                             <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                           <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                         <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                         -> java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                         <- java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                       <- sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method                 <- java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            11 method                 -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                   -> java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                   <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method                 <- java/lang/String.indexOf[0m
+[2;35m0 311542/2            10 method               <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method             <- java/io/PrintStream.print[0m
+[2;35m0 311542/2            10 method             -> java/io/PrintStream.newLine[0m
+[2;35m0 311542/2            10 method               -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method               <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method               -> java/io/BufferedWriter.newLine[0m
+[2;35m0 311542/2            10 method                 -> java/io/Writer.write[0m
+[2;35m0 311542/2            10 method                   -> java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method                     -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2             9 method                     <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                     -> java/io/BufferedWriter.min[0m
+[2;35m0 311542/2             9 method                     <- java/io/BufferedWriter.min[0m
+[2;35m0 311542/2            10 method                     -> java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method                       -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                       <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                     <- java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method                   <- java/io/BufferedWriter.write[0m
+[2;35m0 311542/2            10 method                 <- java/io/Writer.write[0m
+[2;35m0 311542/2            10 method               <- java/io/BufferedWriter.newLine[0m
+[2;35m0 311542/2            10 method               -> java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method                 -> java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedWriter.ensureOpen[0m
+[2;35m0 311542/2            10 method                 -> java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method                   -> sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method                     -> sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/StreamEncoder.ensureOpen[0m
+[2;35m0 311542/2            10 method                     -> sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                       -> java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            10 method                         -> java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                           -> java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.<init>[0m
+[2;35m0 311542/2             9 method                               -> java/lang/Object.<init>[0m
+[2;35m0 311542/2             9 method                               <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                               -> java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                               <- java/nio/Buffer.limit[0m
+[2;35m0 311542/2            10 method                               -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                               <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.<init>[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                         <- java/nio/HeapCharBuffer.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/nio/CharBuffer.wrap[0m
+[2;35m0 311542/2            10 method                       -> java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                       <- java/nio/Buffer.hasRemaining[0m
+[2;35m0 311542/2            10 method                       -> java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            10 method                         -> sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            10 method                           -> java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                           <- java/nio/CharBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                           -> java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                           <- java/nio/ByteBuffer.hasArray[0m
+[2;35m0 311542/2            10 method                           -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                             -> java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.array[0m
+[2;35m0 311542/2            10 method                             -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            11 method                             -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2             9 method                             <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                             -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            11 method                             -> java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/CharBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.position[0m
+[2;35m0 311542/2             9 method                             <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                             -> java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                             <- java/nio/Buffer.position[0m
+[2;35m0 311542/2            10 method                           <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop[0m
+[2;35m0 311542/2            10 method                         <- sun/nio/cs/US_ASCII$Encoder.encodeLoop[0m
+[2;35m0 311542/2            10 method                         -> java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                         <- java/nio/charset/CoderResult.isOverflow[0m
+[2;35m0 311542/2            10 method                         -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                         <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                       <- java/nio/charset/CharsetEncoder.encode[0m
+[2;35m0 311542/2            10 method                       -> java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                       <- java/nio/charset/CoderResult.isUnderflow[0m
+[2;35m0 311542/2            10 method                       -> java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                       <- java/nio/Buffer.remaining[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/StreamEncoder.implWrite[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.write[0m
+[2;35m0 311542/2            10 method                 <- java/io/OutputStreamWriter.write[0m
+[2;35m0 311542/2            10 method               <- java/io/BufferedWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method               -> java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method                 -> sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method                   -> sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method                     -> sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                       -> java/nio/Buffer.flip[0m
+[2;35m0 311542/2            10 method                       <- java/nio/Buffer.flip[0m
+[2;35m0 311542/2            10 method                       -> java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2             9 method                       <- java/nio/ByteBuffer.array[0m
+[2;35m0 311542/2            10 method                       -> java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2             9 method                       <- java/nio/ByteBuffer.arrayOffset[0m
+[2;35m0 311542/2            10 method                       -> java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                         -> java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2             9 method                         <- java/io/PrintStream.ensureOpen[0m
+[2;35m0 311542/2            10 method                         -> java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                           -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                           <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method                         <- java/io/BufferedOutputStream.write[0m
+[2;35m0 311542/2            10 method                         -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                           -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                             -> java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                               -> java/io/FileOutputStream.writeBytes[0m
+[2;32m0 311542/2            11 syscall                                -> write[0m
+[2;32m0 311542/2            63 syscall                                <- write[0m
+[2;35m0 311542/2             8 method                               <- java/io/FileOutputStream.writeBytes[0m
+[2;35m0 311542/2            11 method                             <- java/io/FileOutputStream.write[0m
+[2;35m0 311542/2            10 method                           <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                         <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                       <- java/io/PrintStream.write[0m
+[2;35m0 311542/2            10 method                       -> java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                       <- java/nio/Buffer.clear[0m
+[2;35m0 311542/2            10 method                     <- sun/nio/cs/StreamEncoder.writeBytes[0m
+[2;35m0 311542/2            10 method                   <- sun/nio/cs/StreamEncoder.implFlushBuffer[0m
+[2;35m0 311542/2            10 method                 <- sun/nio/cs/StreamEncoder.flushBuffer[0m
+[2;35m0 311542/2            10 method               <- java/io/OutputStreamWriter.flushBuffer[0m
+[2;35m0 311542/2            10 method               -> java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method                 -> java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method                 <- java/io/BufferedOutputStream.flushBuffer[0m
+[2;35m0 311542/2            10 method               <- java/io/BufferedOutputStream.flush[0m
+[2;35m0 311542/2            10 method             <- java/io/PrintStream.newLine[0m
+[2;35m0 311542/2            10 method           <- java/io/PrintStream.println[0m
+[2;35m0 311542/2            10 method           -> java/lang/Thread.currentThread[0m
+[2;35m0 311542/2            10 method           <- java/lang/Thread.currentThread[0m
+[2;35m0 311542/2            11 method           -> java/lang/Thread.sleep[0m
+[2;32m0 311542/2            14 syscall            -> pollsys[0m
+[2;32m0 311542/10        59975 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59963 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59976 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59961 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        59968 syscall  <- pollsys[0m
+[2;32m0 311542/10           22 syscall  -> pollsys[0m
+[2;32m0 311542/3       1009924 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/3            17 syscall  -> lwp_cond_wait[0m
+[2;32m0 311542/10        50021 syscall  <- pollsys[0m
+[2;32m0 311542/10           31 syscall  -> pollsys[0m
+[2;32m0 311542/10        59941 syscall  <- pollsys[0m
+[2;32m0 311542/10           27 syscall  -> pollsys[0m
+[2;32m0 311542/10        60034 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        61298 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        58590 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        50205 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59723 syscall  <- pollsys[0m
+[2;32m0 311542/10           29 syscall  -> pollsys[0m
+[2;32m0 311542/10        60208 syscall  <- pollsys[0m
+[2;32m0 311542/10           28 syscall  -> pollsys[0m
+[2;32m0 311542/10        59733 syscall  <- pollsys[0m
+[2;32m0 311542/10           28 syscall  -> pollsys[0m
+[2;32m0 311542/10        59986 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59938 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/10        59968 syscall  <- pollsys[0m
+[2;32m0 311542/10           30 syscall  -> pollsys[0m
+[2;32m0 311542/2       1007088 syscall            <- pollsys[0m
+[2;35m0 311542/2            30 method           <- java/lang/Thread.sleep[0m
+[2;35m0 311542/2            28 method         <- Func_abc.func_c[0m
+[2;35m0 311542/2            10 method       <- Func_abc.func_b[0m
+[2;35m0 311542/2            10 method     <- Func_abc.func_a[0m
+[2;35m0 311542/2            10 method   <- Func_abc.main[0m
+[2;35m0 311542/2            27 method   -> java/lang/Thread.exit[0m
+[2;35m0 311542/2            38 method     -> java/lang/ThreadGroup.remove[0m
+[2;35m0 311542/2            19 method       -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            11 method       <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            14 method       -> java/lang/Object.notifyAll[0m
+[2;35m0 311542/2            16 method       <- java/lang/Object.notifyAll[0m
+[2;35m0 311542/2            11 method     <- java/lang/ThreadGroup.remove[0m
+[2;35m0 311542/2            16 method   <- java/lang/Thread.exit[0m
+[2;32m0 311542/2            22 syscall  -> mprotect[0m
+[2;32m0 311542/2            19 syscall  <- mprotect[0m
+[2;32m0 311542/2            19 syscall  -> lwp_sigmask[0m
+[2;32m0 311542/2             7 syscall  <- lwp_sigmask[0m
+[2;32m0 311542/2            25 syscall  -> lwp_self[0m
+[2;32m0 311542/2             6 syscall  <- lwp_self[0m
+[2;32m0 311542/2             7 syscall  -> lwp_sigmask[0m
+[2;32m0 311542/2             5 syscall  <- lwp_sigmask[0m
+[2;32m0 311542/2             6 syscall  -> lwp_sigmask[0m
+[2;32m0 311542/2             6 syscall  <- lwp_sigmask[0m
+[2;35m0 311542/2           124 method       -> java/lang/Thread.<init>[0m
+[2;35m0 311542/2            12 method         -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method         <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method         -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method         <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method         -> java/lang/Thread.init[0m
+[2;35m0 311542/2            10 method           -> java/lang/Thread.currentThread[0m
+[2;35m0 311542/2            10 method           <- java/lang/Thread.currentThread[0m
+[2;35m0 311542/2            11 method           -> java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method           <- java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            11 method           -> java/lang/ThreadGroup.checkAccess[0m
+[2;35m0 311542/2            10 method             -> java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method             <- java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method           <- java/lang/ThreadGroup.checkAccess[0m
+[2;35m0 311542/2            10 method           -> java/lang/ThreadGroup.addUnstarted[0m
+[2;35m0 311542/2            10 method           <- java/lang/ThreadGroup.addUnstarted[0m
+[2;35m0 311542/2            11 method           -> java/lang/String.toCharArray[0m
+[2;35m0 311542/2            11 method             -> java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method               -> java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method               <- java/lang/System.arraycopy[0m
+[2;35m0 311542/2            10 method             <- java/lang/String.getChars[0m
+[2;35m0 311542/2            10 method           <- java/lang/String.toCharArray[0m
+[2;35m0 311542/2            10 method           -> java/lang/Thread.getContextClassLoader[0m
+[2;35m0 311542/2            10 method           <- java/lang/Thread.getContextClassLoader[0m
+[2;35m0 311542/2            11 method           -> java/security/AccessController.getContext[0m
+[2;35m0 311542/2            10 method             -> java/security/AccessController.getStackAccessControlContext[0m
+[2;35m0 311542/2            17 method             <- java/security/AccessController.getStackAccessControlContext[0m
+[2;35m0 311542/2            11 method             -> java/security/AccessControlContext.optimize[0m
+[2;35m0 311542/2            10 method               -> java/security/AccessController.getInheritedAccessControlContext[0m
+[2;35m0 311542/2            11 method               <- java/security/AccessController.getInheritedAccessControlContext[0m
+[2;35m0 311542/2            11 method             <- java/security/AccessControlContext.optimize[0m
+[2;35m0 311542/2            10 method           <- java/security/AccessController.getContext[0m
+[2;35m0 311542/2            10 method           -> java/lang/Thread.setPriority[0m
+[2;35m0 311542/2            10 method             -> java/lang/Thread.checkAccess[0m
+[2;35m0 311542/2             9 method               -> java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2             9 method               <- java/lang/System.getSecurityManager[0m
+[2;35m0 311542/2            10 method             <- java/lang/Thread.checkAccess[0m
+[2;35m0 311542/2            11 method             -> java/lang/Thread.setPriority0[0m
+[2;32m0 311542/2            15 syscall              -> priocntlsys[0m
+[2;32m0 311542/2             9 syscall              <- priocntlsys[0m
+[2;32m0 311542/2             7 syscall              -> priocntlsys[0m
+[2;32m0 311542/2             8 syscall              <- priocntlsys[0m
+[2;35m0 311542/2             7 method             <- java/lang/Thread.setPriority0[0m
+[2;35m0 311542/2            10 method           <- java/lang/Thread.setPriority[0m
+[2;35m0 311542/2            11 method           -> java/lang/Thread.nextThreadID[0m
+[2;35m0 311542/2            11 method           <- java/lang/Thread.nextThreadID[0m
+[2;35m0 311542/2            10 method   <- java/lang/Thread.init[0m
+[2;35m0 311542/2            10 method   <- java/lang/Thread.<init>[0m
+[2;35m0 311542/2            12 method   -> java/lang/ThreadGroup.add[0m
+[2;35m0 311542/2            11 method   <- java/lang/ThreadGroup.add[0m
+[2;32m0 311542/2            10 syscall  -> mprotect[0m
+[2;32m0 311542/2             7 syscall  <- mprotect[0m
+[2;35m0 311542/2            12 method   -> java/lang/Shutdown.shutdown[0m
+[2;35m0 311542/2            15 method     -> java/lang/Shutdown.sequence[0m
+[2;35m0 311542/2            12 method       -> java/lang/Shutdown.runHooks[0m
+[2;35m0 311542/2            14 method         -> java/util/AbstractList.iterator[0m
+[2;32m0 311542/2            30 syscall          -> llseek[0m
+[2;32m0 311542/2             9 syscall          <- llseek[0m
+[2;32m0 311542/2             8 syscall          -> read[0m
+[2;32m0 311542/2          1709 syscall          <- read[0m
+[2;32m0 311542/2            27 syscall          -> llseek[0m
+[2;32m0 311542/2            14 syscall          <- llseek[0m
+[2;32m0 311542/2             7 syscall          -> read[0m
+[2;32m0 311542/2            23 syscall          <- read[0m
+[2;35m0 311542/2           280 method           -> java/util/AbstractList$Itr.<init>[0m
+[2;35m0 311542/2            28 method             -> java/util/AbstractList$Itr.<init>[0m
+[2;35m0 311542/2            17 method               -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            12 method               <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            25 method             <- java/util/AbstractList$Itr.<init>[0m
+[2;35m0 311542/2            11 method           <- java/util/AbstractList$Itr.<init>[0m
+[2;35m0 311542/2            10 method         <- java/util/AbstractList.iterator[0m
+[2;35m0 311542/2            17 method         -> java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            16 method         <- java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            13 method         -> java/util/AbstractList$Itr.next[0m
+[2;35m0 311542/2            12 method           -> java/util/AbstractList$Itr.checkForComodification[0m
+[2;35m0 311542/2            10 method           <- java/util/AbstractList$Itr.checkForComodification[0m
+[2;35m0 311542/2            13 method           -> java/util/ArrayList.get[0m
+[2;35m0 311542/2            11 method             -> java/util/ArrayList.RangeCheck[0m
+[2;35m0 311542/2            10 method             <- java/util/ArrayList.RangeCheck[0m
+[2;35m0 311542/2            10 method           <- java/util/ArrayList.get[0m
+[2;35m0 311542/2            10 method         <- java/util/AbstractList$Itr.next[0m
+[2;35m0 311542/2            15 method         -> java/io/Console$1$1.run[0m
+[2;35m0 311542/2            14 method           -> java/io/Console.access$600[0m
+[2;35m0 311542/2            12 method           <- java/io/Console.access$600[0m
+[2;35m0 311542/2            10 method         <- java/io/Console$1$1.run[0m
+[2;35m0 311542/2            10 method         -> java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            10 method         <- java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            10 method         -> java/util/AbstractList$Itr.next[0m
+[2;35m0 311542/2            10 method           -> java/util/AbstractList$Itr.checkForComodification[0m
+[2;35m0 311542/2            10 method           <- java/util/AbstractList$Itr.checkForComodification[0m
+[2;35m0 311542/2            11 method           -> java/util/ArrayList.get[0m
+[2;35m0 311542/2            10 method             -> java/util/ArrayList.RangeCheck[0m
+[2;35m0 311542/2            10 method             <- java/util/ArrayList.RangeCheck[0m
+[2;35m0 311542/2            10 method           <- java/util/ArrayList.get[0m
+[2;35m0 311542/2            10 method         <- java/util/AbstractList$Itr.next[0m
+[2;35m0 311542/2            11 method         -> java/lang/ApplicationShutdownHooks.run[0m
+[2;35m0 311542/2            16 method           -> java/util/IdentityHashMap.keySet[0m
+[2;32m0 311542/2            27 syscall            -> llseek[0m
+[2;32m0 311542/2             7 syscall            <- llseek[0m
+[2;32m0 311542/2             8 syscall            -> read[0m
+[2;32m0 311542/2            18 syscall            <- read[0m
+[2;32m0 311542/2             7 syscall            -> llseek[0m
+[2;32m0 311542/2             6 syscall            <- llseek[0m
+[2;32m0 311542/2             6 syscall            -> read[0m
+[2;32m0 311542/2            17 syscall            <- read[0m
+[2;35m0 311542/2           139 method             -> java/util/IdentityHashMap$KeySet.<init>[0m
+[2;35m0 311542/2            14 method               -> java/util/IdentityHashMap$KeySet.<init>[0m
+[2;35m0 311542/2            14 method                 -> java/util/AbstractSet.<init>[0m
+[2;35m0 311542/2            10 method                   -> java/util/AbstractCollection.<init>[0m
+[2;35m0 311542/2            10 method                     -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method                   <- java/util/AbstractCollection.<init>[0m
+[2;35m0 311542/2            10 method                 <- java/util/AbstractSet.<init>[0m
+[2;35m0 311542/2            10 method               <- java/util/IdentityHashMap$KeySet.<init>[0m
+[2;35m0 311542/2            10 method             <- java/util/IdentityHashMap$KeySet.<init>[0m
+[2;35m0 311542/2            10 method           <- java/util/IdentityHashMap.keySet[0m
+[2;35m0 311542/2            14 method           -> java/util/IdentityHashMap$KeySet.iterator[0m
+[2;32m0 311542/2            17 syscall            -> llseek[0m
+[2;32m0 311542/2             7 syscall            <- llseek[0m
+[2;32m0 311542/2             7 syscall            -> read[0m
+[2;32m0 311542/2            15 syscall            <- read[0m
+[2;32m0 311542/2             7 syscall            -> llseek[0m
+[2;32m0 311542/2             6 syscall            <- llseek[0m
+[2;32m0 311542/2             6 syscall            -> read[0m
+[2;32m0 311542/2            12 syscall            <- read[0m
+[2;32m0 311542/2            30 syscall            -> llseek[0m
+[2;32m0 311542/2             6 syscall            <- llseek[0m
+[2;32m0 311542/2             7 syscall            -> read[0m
+[2;32m0 311542/2            14 syscall            <- read[0m
+[2;32m0 311542/2             7 syscall            -> llseek[0m
+[2;32m0 311542/2             6 syscall            <- llseek[0m
+[2;32m0 311542/2             6 syscall            -> read[0m
+[2;32m0 311542/2            17 syscall            <- read[0m
+[2;35m0 311542/2           125 method             -> java/util/IdentityHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            14 method               -> java/util/IdentityHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            14 method                 -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>[0m
+[2;35m0 311542/2            13 method                   -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>[0m
+[2;35m0 311542/2            57 method                     -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method                     <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            15 method                     -> java/util/IdentityHashMap.access$000[0m
+[2;35m0 311542/2            11 method                     <- java/util/IdentityHashMap.access$000[0m
+[2;35m0 311542/2            15 method                     -> java/util/IdentityHashMap.access$200[0m
+[2;35m0 311542/2            11 method                     <- java/util/IdentityHashMap.access$200[0m
+[2;35m0 311542/2            13 method                   <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>[0m
+[2;35m0 311542/2            10 method                 <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>[0m
+[2;35m0 311542/2            10 method               <- java/util/IdentityHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            10 method             <- java/util/IdentityHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            10 method           <- java/util/IdentityHashMap$KeySet.iterator[0m
+[2;35m0 311542/2            14 method           -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext[0m
+[2;35m0 311542/2            11 method           <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext[0m
+[2;35m0 311542/2            11 method           -> java/util/IdentityHashMap$KeySet.iterator[0m
+[2;35m0 311542/2            10 method             -> java/util/IdentityHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            10 method               -> java/util/IdentityHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            10 method                 -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>[0m
+[2;35m0 311542/2            10 method                   -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>[0m
+[2;35m0 311542/2            10 method                     -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                   <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>[0m
+[2;35m0 311542/2            10 method                 <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>[0m
+[2;35m0 311542/2            10 method               <- java/util/IdentityHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            10 method             <- java/util/IdentityHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            10 method           <- java/util/IdentityHashMap$KeySet.iterator[0m
+[2;35m0 311542/2            10 method           -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext[0m
+[2;35m0 311542/2            10 method           <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext[0m
+[2;35m0 311542/2            11 method         <- java/lang/ApplicationShutdownHooks.run[0m
+[2;35m0 311542/2            10 method         -> java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            10 method         <- java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            10 method         -> java/util/AbstractList$Itr.next[0m
+[2;35m0 311542/2            10 method           -> java/util/AbstractList$Itr.checkForComodification[0m
+[2;35m0 311542/2            10 method           <- java/util/AbstractList$Itr.checkForComodification[0m
+[2;35m0 311542/2            11 method           -> java/util/ArrayList.get[0m
+[2;35m0 311542/2            10 method             -> java/util/ArrayList.RangeCheck[0m
+[2;35m0 311542/2            10 method             <- java/util/ArrayList.RangeCheck[0m
+[2;35m0 311542/2            10 method           <- java/util/ArrayList.get[0m
+[2;35m0 311542/2            10 method         <- java/util/AbstractList$Itr.next[0m
+[2;35m0 311542/2            11 method         -> java/io/File$1.run[0m
+[2;32m0 311542/2            17 syscall          -> llseek[0m
+[2;32m0 311542/2             8 syscall          <- llseek[0m
+[2;32m0 311542/2             8 syscall          -> read[0m
+[2;32m0 311542/2            17 syscall          <- read[0m
+[2;32m0 311542/2             7 syscall          -> llseek[0m
+[2;32m0 311542/2             6 syscall          <- llseek[0m
+[2;32m0 311542/2             6 syscall          -> read[0m
+[2;32m0 311542/2            12 syscall          <- read[0m
+[2;35m0 311542/2            62 method           -> java/io/DeleteOnExitHook.<clinit>[0m
+[2;32m0 311542/2            19 syscall            -> llseek[0m
+[2;32m0 311542/2             6 syscall            <- llseek[0m
+[2;32m0 311542/2             7 syscall            -> read[0m
+[2;32m0 311542/2            14 syscall            <- read[0m
+[2;32m0 311542/2             7 syscall            -> llseek[0m
+[2;32m0 311542/2             6 syscall            <- llseek[0m
+[2;32m0 311542/2             6 syscall            -> read[0m
+[2;32m0 311542/2            12 syscall            <- read[0m
+[2;35m0 311542/2           130 method             -> java/util/LinkedHashSet.<init>[0m
+[2;35m0 311542/2            15 method               -> java/util/HashSet.<init>[0m
+[2;35m0 311542/2            10 method                 -> java/util/AbstractSet.<init>[0m
+[2;35m0 311542/2            10 method                   -> java/util/AbstractCollection.<init>[0m
+[2;35m0 311542/2            10 method                     -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method                   <- java/util/AbstractCollection.<init>[0m
+[2;35m0 311542/2            10 method                 <- java/util/AbstractSet.<init>[0m
+[2;35m0 311542/2            15 method                 -> java/util/LinkedHashMap.<init>[0m
+[2;35m0 311542/2            13 method                   -> java/util/HashMap.<init>[0m
+[2;35m0 311542/2            10 method                     -> java/util/AbstractMap.<init>[0m
+[2;35m0 311542/2            10 method                       -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/util/AbstractMap.<init>[0m
+[2;35m0 311542/2            12 method                     -> java/lang/Float.isNaN[0m
+[2;35m0 311542/2            10 method                     <- java/lang/Float.isNaN[0m
+[2;35m0 311542/2            15 method                     -> java/util/LinkedHashMap.init[0m
+[2;35m0 311542/2            10 method                       -> java/util/LinkedHashMap$Entry.<init>[0m
+[2;35m0 311542/2            10 method                         -> java/util/HashMap$Entry.<init>[0m
+[2;35m0 311542/2            10 method                           -> java/lang/Object.<init>[0m
+[2;35m0 311542/2             9 method                           <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                         <- java/util/HashMap$Entry.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/util/LinkedHashMap$Entry.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/util/LinkedHashMap.init[0m
+[2;35m0 311542/2            10 method                   <- java/util/HashMap.<init>[0m
+[2;35m0 311542/2            10 method                 <- java/util/LinkedHashMap.<init>[0m
+[2;35m0 311542/2            10 method               <- java/util/HashSet.<init>[0m
+[2;35m0 311542/2            10 method             <- java/util/LinkedHashSet.<init>[0m
+[2;35m0 311542/2            12 method           <- java/io/DeleteOnExitHook.<clinit>[0m
+[2;35m0 311542/2            13 method           -> java/io/DeleteOnExitHook.hook[0m
+[2;35m0 311542/2            13 method             -> java/io/DeleteOnExitHook.<init>[0m
+[2;35m0 311542/2            12 method               -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method               <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method             <- java/io/DeleteOnExitHook.<init>[0m
+[2;35m0 311542/2            10 method           <- java/io/DeleteOnExitHook.hook[0m
+[2;35m0 311542/2            13 method           -> java/io/DeleteOnExitHook.run[0m
+[2;35m0 311542/2            15 method             -> java/util/ArrayList.<init>[0m
+[2;35m0 311542/2            10 method               -> java/util/AbstractList.<init>[0m
+[2;35m0 311542/2            10 method                 -> java/util/AbstractCollection.<init>[0m
+[2;35m0 311542/2            10 method                   -> java/lang/Object.<init>[0m
+[2;35m0 311542/2             9 method                   <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                 <- java/util/AbstractCollection.<init>[0m
+[2;35m0 311542/2            10 method               <- java/util/AbstractList.<init>[0m
+[2;35m0 311542/2            15 method               -> java/util/AbstractCollection.toArray[0m
+[2;35m0 311542/2            13 method                 -> java/util/HashSet.size[0m
+[2;35m0 311542/2            12 method                 <- java/util/HashSet.size[0m
+[2;35m0 311542/2            13 method                 -> java/util/HashSet.iterator[0m
+[2;35m0 311542/2            12 method                   -> java/util/HashMap.keySet[0m
+[2;32m0 311542/2            19 syscall                    -> llseek[0m
+[2;32m0 311542/2             7 syscall                    <- llseek[0m
+[2;32m0 311542/2             8 syscall                    -> read[0m
+[2;32m0 311542/2            17 syscall                    <- read[0m
+[2;32m0 311542/2             7 syscall                    -> llseek[0m
+[2;32m0 311542/2             6 syscall                    <- llseek[0m
+[2;32m0 311542/2             6 syscall                    -> read[0m
+[2;32m0 311542/2            12 syscall                    <- read[0m
+[2;35m0 311542/2            68 method                     -> java/util/HashMap$KeySet.<init>[0m
+[2;35m0 311542/2            14 method                       -> java/util/HashMap$KeySet.<init>[0m
+[2;35m0 311542/2            14 method                         -> java/util/AbstractSet.<init>[0m
+[2;35m0 311542/2            10 method                           -> java/util/AbstractCollection.<init>[0m
+[2;35m0 311542/2            10 method                             -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                             <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            11 method                           <- java/util/AbstractCollection.<init>[0m
+[2;35m0 311542/2            10 method                         <- java/util/AbstractSet.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/util/HashMap$KeySet.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/util/HashMap$KeySet.<init>[0m
+[2;35m0 311542/2            10 method                   <- java/util/HashMap.keySet[0m
+[2;35m0 311542/2            13 method                   -> java/util/HashMap$KeySet.iterator[0m
+[2;35m0 311542/2            14 method                     -> java/util/LinkedHashMap.newKeyIterator[0m
+[2;32m0 311542/2            16 syscall                      -> llseek[0m
+[2;32m0 311542/2             6 syscall                      <- llseek[0m
+[2;32m0 311542/2             7 syscall                      -> read[0m
+[2;32m0 311542/2            14 syscall                      <- read[0m
+[2;32m0 311542/2             7 syscall                      -> llseek[0m
+[2;32m0 311542/2             6 syscall                      <- llseek[0m
+[2;32m0 311542/2             6 syscall                      -> read[0m
+[2;32m0 311542/2            16 syscall                      <- read[0m
+[2;32m0 311542/2            81 syscall                      -> llseek[0m
+[2;32m0 311542/2             7 syscall                      <- llseek[0m
+[2;32m0 311542/2             7 syscall                      -> read[0m
+[2;32m0 311542/2            14 syscall                      <- read[0m
+[2;32m0 311542/2             7 syscall                      -> llseek[0m
+[2;32m0 311542/2             6 syscall                      <- llseek[0m
+[2;32m0 311542/2             6 syscall                      -> read[0m
+[2;32m0 311542/2            12 syscall                      <- read[0m
+[2;35m0 311542/2            77 method                       -> java/util/LinkedHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            14 method                         -> java/util/LinkedHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            14 method                           -> java/util/LinkedHashMap$LinkedHashIterator.<init>[0m
+[2;35m0 311542/2            12 method                             -> java/util/LinkedHashMap$LinkedHashIterator.<init>[0m
+[2;35m0 311542/2            13 method                               -> java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                               <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            19 method                             <- java/util/LinkedHashMap$LinkedHashIterator.<init>[0m
+[2;35m0 311542/2            11 method                           <- java/util/LinkedHashMap$LinkedHashIterator.<init>[0m
+[2;35m0 311542/2            10 method                         <- java/util/LinkedHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            10 method                       <- java/util/LinkedHashMap$KeyIterator.<init>[0m
+[2;35m0 311542/2            10 method                     <- java/util/LinkedHashMap.newKeyIterator[0m
+[2;35m0 311542/2            10 method                   <- java/util/HashMap$KeySet.iterator[0m
+[2;35m0 311542/2            10 method                 <- java/util/HashSet.iterator[0m
+[2;35m0 311542/2            14 method                 -> java/util/LinkedHashMap$LinkedHashIterator.hasNext[0m
+[2;35m0 311542/2            11 method                 <- java/util/LinkedHashMap$LinkedHashIterator.hasNext[0m
+[2;35m0 311542/2            11 method               <- java/util/AbstractCollection.toArray[0m
+[2;35m0 311542/2            11 method               -> java/lang/Object.getClass[0m
+[2;35m0 311542/2            12 method               <- java/lang/Object.getClass[0m
+[2;35m0 311542/2            11 method             <- java/util/ArrayList.<init>[0m
+[2;35m0 311542/2            14 method             -> java/util/Collections.reverse[0m
+[2;35m0 311542/2            15 method             <- java/util/Collections.reverse[0m
+[2;35m0 311542/2            13 method             -> java/util/AbstractList.iterator[0m
+[2;35m0 311542/2            11 method               -> java/util/AbstractList$Itr.<init>[0m
+[2;35m0 311542/2            10 method                 -> java/util/AbstractList$Itr.<init>[0m
+[2;35m0 311542/2            10 method                   -> java/lang/Object.<init>[0m
+[2;35m0 311542/2             9 method                   <- java/lang/Object.<init>[0m
+[2;35m0 311542/2            10 method                 <- java/util/AbstractList$Itr.<init>[0m
+[2;35m0 311542/2            10 method               <- java/util/AbstractList$Itr.<init>[0m
+[2;35m0 311542/2            10 method             <- java/util/AbstractList.iterator[0m
+[2;35m0 311542/2            13 method             -> java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            10 method             <- java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            10 method           <- java/io/DeleteOnExitHook.run[0m
+[2;35m0 311542/2            10 method         <- java/io/File$1.run[0m
+[2;35m0 311542/2            10 method         -> java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            10 method         <- java/util/AbstractList$Itr.hasNext[0m
+[2;35m0 311542/2            10 method       <- java/lang/Shutdown.runHooks[0m
+[2;35m0 311542/2            12 method     <- java/lang/Shutdown.sequence[0m
+[2;35m0 311542/2            10 method   <- java/lang/Shutdown.shutdown[0m
+[2;32m0 311542/2            16 syscall  -> lwp_cond_wait[0m
+[2;32m0 311542/10        59973 syscall  <- pollsys[0m
+[2;32m0 311542/10           31 syscall  -> lwp_cond_signal[0m
+[2;32m0 311542/10           15 syscall  <- lwp_cond_signal[0m
+[2;32m0 311542/10           12 syscall  -> lwp_sigmask[0m
+[2;32m0 311542/10            7 syscall  <- lwp_sigmask[0m
+[2;32m0 311542/10           29 syscall  -> lwp_exit[0m
+[2;32m0 311542/2         13322 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/2            22 syscall  -> lwp_park[0m
+[2;32m0 311542/2             8 syscall  <- lwp_park[0m
+[2;32m0 311542/2            17 syscall  -> mprotect[0m
+[2;32m0 311542/2            16 syscall  <- mprotect[0m
+[2;32m0 311542/2            12 syscall  -> lwp_cond_signal[0m
+[2;32m0 311542/2             7 syscall  <- lwp_cond_signal[0m
+[2;32m0 311542/2             8 syscall  -> lwp_cond_wait[0m
+[2;32m0 311542/3        750221 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/3            36 syscall  -> mprotect[0m
+[2;32m0 311542/3             9 syscall  <- mprotect[0m
+[2;32m0 311542/3             7 syscall  -> mprotect[0m
+[2;32m0 311542/3             8 syscall  <- mprotect[0m
+[2;32m0 311542/3            14 syscall  -> mprotect[0m
+[2;32m0 311542/3             6 syscall  <- mprotect[0m
+[2;32m0 311542/3            40 syscall  -> lwp_cond_signal[0m
+[2;32m0 311542/3             7 syscall  <- lwp_cond_signal[0m
+[2;32m0 311542/3             7 syscall  -> lwp_sigmask[0m
+[2;32m0 311542/3             6 syscall  <- lwp_sigmask[0m
+[2;32m0 311542/3            11 syscall  -> lwp_exit[0m
+[2;32m0 311542/2           184 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/2            16 syscall  -> lwp_sigmask[0m
+[2;32m0 311542/2             6 syscall  <- lwp_sigmask[0m
+[2;32m0 311542/2           108 syscall  -> unlink[0m
+[2;32m0 311542/2            36 syscall  <- unlink[0m
+[2;32m0 311542/2             9 syscall  -> lwp_sigmask[0m
+[2;32m0 311542/2             6 syscall  <- lwp_sigmask[0m
+[2;32m0 311542/2            50 syscall  -> lwp_exit[0m
+[2;32m0 311542/1       6423404 syscall  <- lwp_wait[0m
+[2;32m0 311542/1            40 syscall  -> open64[0m
+[2;32m0 311542/1           101 syscall  <- open64[0m
+[2;32m0 311542/1             8 syscall  -> ioctl[0m
+[2;32m0 311542/1            14 syscall  <- ioctl[0m
+[2;32m0 311542/1            10 syscall  -> close[0m
+[2;32m0 311542/1            14 syscall  <- close[0m
+[2;32m0 311542/1             8 syscall  -> open64[0m
+[2;32m0 311542/1            31 syscall  <- open64[0m
+[2;32m0 311542/1             7 syscall  -> ioctl[0m
+[2;32m0 311542/1             7 syscall  <- ioctl[0m
+[2;32m0 311542/1             7 syscall  -> close[0m
+[2;32m0 311542/1             9 syscall  <- close[0m
+[2;32m0 311542/1            27 syscall  -> rexit[0m
+[2;32m0 311542/9       3298915 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/8       3375816 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/7       3376775 syscall  <- lwp_cond_wait[0m
+[2;32m0 311542/5       3738267 syscall          <- lwp_cond_wait[0m
+[2;32m0 311542/4       3760581 syscall        <- lwp_cond_wait[0m
+[2;32m0 311542/6       3376767 syscall  <- lwp_park[0m
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_thread_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_thread_example.txt
new file mode 100644
index 0000000..3c5e83c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_thread_example.txt
@@ -0,0 +1,20 @@
+Following we see examples of the results of running j_thread.d.  
+
+Here it is running while Code/Java/Func_abc is executing.
+
+# j_thread.d
+TIME                     PID/TID   -- THREAD
+2007 Sep 24 04:01:34  311512/5     => Finalizer
+2007 Sep 24 04:01:34  311512/4     => Reference Handler
+2007 Sep 24 04:01:34  311512/7     => CompilerThread0
+2007 Sep 24 04:01:34  311512/6     => Signal Dispatcher
+2007 Sep 24 04:01:34  311512/8     => CompilerThread1
+2007 Sep 24 04:01:34  311512/9     => Low Memory Detector
+^C
+
+The fields of the output are, in order, Event time, Process ID/Thread ID,
+entry (=>) or exit (<=) and Thread name.
+
+In this example we see six different threads starting, but we do not see 
+thread exit events as the JVM exited when the program stopped. 
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/j_who_example.txt b/external/cddl/dtracetoolkit/dist/Examples/j_who_example.txt
new file mode 100644
index 0000000..f765d48
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/j_who_example.txt
@@ -0,0 +1,17 @@
+In many cases, in order to get interesting or in-depth results the 
+ExtendedDTraceProbes flag needs to be set when DTracing Java programs.  In
+this case, because of the probes we have chosen to trace, running the program
+Code/Java/Func_abc, both with (PID 311517) and without (311526) this flag, 
+and we can see that it has made no difference, with each reporting 35 lines 
+executed.
+
+# j_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+      PID    UID  CALLS ARGS                                                   
+   194441    100     18 /usr/local/lib/opera/9.02-20060919.1/opera
+   309790    100     20 java_vm
+   311517    100     35 java -XX:+ExtendedDTraceProbes Func_abc
+   311526    100     35 java Func_abc
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/js_calldist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/js_calldist_example.txt
new file mode 100644
index 0000000..57058b7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/js_calldist_example.txt
@@ -0,0 +1,110 @@
+The following are examples of running js_calldist.d. 
+
+Here it is running while the code at Code/JavaScript/func_clock.html is
+being executed.
+
+# js_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Elapsed times (us),
+   func_clock.html, obj-new, Date 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+              16 |                                         0        
+
+
+Exclusive function elapsed times (us),
+   func_clock.html, func, setTimeout 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+             128 |                                         0        
+
+   func_clock.html, func, getElementById 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@                                       1        
+              16 |@@@@@@@@@@@@@@@@@@                       9        
+              32 |@@@@@@@@@@@@@@@@@@@@                     10       
+              64 |                                         0        
+
+   func_clock.html, func, start 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+            2048 |                                         0        
+
+   func_clock.html, func, func_a 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+           32768 |                                         0        
+
+   func_clock.html, func, func_b 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+           65536 |                                         0        
+
+   func_clock.html, func, func_c 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+           65536 |                                         0        
+
+
+Inclusive function elapsed times (us),
+   func_clock.html, func, setTimeout 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+             128 |                                         0        
+
+   func_clock.html, func, getElementById 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@                                       1        
+              16 |@@@@@@@@@@@@@@@@@@                       9        
+              32 |@@@@@@@@@@@@@@@@@@@@                     10       
+              64 |                                         0        
+
+   func_clock.html, func, func_c 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+           65536 |                                         0        
+
+   func_clock.html, func, func_a 
+           value  ------------- Distribution ------------- count    
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+          131072 |                                         0        
+
+   func_clock.html, func, func_b 
+           value  ------------- Distribution ------------- count    
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+          131072 |                                         0        
+
+   func_clock.html, func, start 
+           value  ------------- Distribution ------------- count    
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+          131072 |                                         0        
+
+The elapsed times show us that the script spent some small amount of time
+processing various events that were not functions.  In this case there was
+five new Date objects, and each event took between 8 microseconds and 15 
+microseconds.
+
+The exclusive function elapsed times show the time each of our functions
+takes, excluding the time spent in subroutines called by that function.  We
+can see in this example that func_a took between 16384 microseconds and 32767
+microseconds.
+
+The inclusive function elapsed times show that func_a took between 65536
+microseconds and 131071 microseconds, including the time spent in any
+subroutines it calls.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/js_calls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/js_calls_example.txt
new file mode 100644
index 0000000..848e436
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/js_calls_example.txt
@@ -0,0 +1,312 @@
+The following are examples of the results of running js_calls.d
+
+A JavaScript program that behaves like a clock is frequently used by these
+examples, since it can be left running in the background without browser
+input. Browser input, such as hitting the reload button or using menus,
+triggers many other JavaScript events since much of the browser uses
+JavaScript. 
+
+With Code/JavaScript/func_clock.html loaded, we trace one second of activity:
+
+# js_calls.d
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE                     TYPE       NAME                              CALLS
+ func_clock.html          exec       .                                     1
+ func_clock.html          func       func_a                                1
+ func_clock.html          func       func_b                                1
+ func_clock.html          func       func_c                                1
+ func_clock.html          func       setTimeout                            1
+ func_clock.html          func       start                                 1
+ func_clock.html          obj-new    Date                                  1
+ func_clock.html          func       getElementById                        4
+
+This shows the type of calls made, 1 exec, one obj-new, several func; a more
+descriptive name of each call; and a count of how many times a particular call
+was made. 
+
+
+The following demonstrates what happens when a different program -
+Code/JavaScript/func_slow.html is reloaded by hitting the reload button on the 
+browser.  Apart from the func_slow.html JavaScript events, all those events 
+from the browser caused by moving the mouse pointer over the screen etc. have 
+been traced as well.
+
+# js_calls.d
+Tracing... Hit Ctrl-C to end.
+
+ FILE                     TYPE       NAME                              CALLS
+ <null>                   obj-free   BarProp                               1
+ <null>                   obj-free   CSSStyleDeclaration                   1
+ <null>                   obj-free   Global Scope Polluter                 1
+ <null>                   obj-free   HTMLCollection                        1
+ <null>                   obj-free   HTMLDocument                          1
+ <null>                   obj-free   HTMLHtmlElement                       1
+ <null>                   obj-free   KeyboardEvent                         1
+ <null>                   obj-free   Location                              1
+ <null>                   obj-free   NodeList                              1
+ <null>                   obj-free   StyleSheetList                        1
+ <null>                   obj-free   TreeSelection                         1
+ <null>                   obj-free   Window                                1
+ <null>                   obj-free   XULCommandDispatcher                  1
+ <null>                   obj-free   chrome://global/content/bindings/scrollbar.xml#scrollbar 8c35ec2        1
+ <null>                   obj-free   nsXPCComponents_Classes               1
+ <null>                   obj-free   xpcTempGlobalClass                    1
+ <null>                   obj-new    BarProp                               1
+ <null>                   obj-new    CSSStyleDeclaration                   1
+ <null>                   obj-new    Global Scope Polluter                 1
+ <null>                   obj-new    HTMLCollection                        1
+ <null>                   obj-new    HTMLDocument                          1
+ <null>                   obj-new    HTMLHtmlElement                       1
+ <null>                   obj-new    KeyboardEvent                         1
+ <null>                   obj-new    NodeList                              1
+ <null>                   obj-new    StyleSheetList                        1
+ <null>                   obj-new    TreeSelection                         1
+ <null>                   obj-new    Window                                1
+ <null>                   obj-new    XULCommandDispatcher                  1
+ <null>                   obj-new    chrome://global/content/bindings/popup.xml#popup 8befc22        1
+ <null>                   obj-new    chrome://global/content/bindings/popup.xml#popup 8befcea        1
+ <null>                   obj-new    chrome://global/content/bindings/scrollbar.xml#scrollbar 8ce1c1a        1
+ <null>                   obj-new    nsXPCComponents_Classes               1
+ <null>                   obj-new    xpcTempGlobalClass                    1
+ autocomplete.xml         func       apply                                 1
+ autocomplete.xml         func       attachController                      1
+ autocomplete.xml         func       detachController                      1
+ autocomplete.xml         func       fireEvent                             1
+ autocomplete.xml         func       getPreventDefault                     1
+ autocomplete.xml         func       handleEnter                           1
+ autocomplete.xml         func       onKeyPress                            1
+ autocomplete.xml         obj-new    Object                                1
+ browser.js               func       BrowserLoadURL                        1
+ browser.js               func       SetPageProxyState                     1
+ browser.js               func       URLBarFocusHandler                    1
+ browser.js               func       UpdateBackForwardButtons              1
+ browser.js               func       addEventListener                      1
+ browser.js               func       addToUrlbarHistory                    1
+ browser.js               func       canonizeUrl                           1
+ browser.js               func       charsetLoadListener                   1
+ browser.js               func       checkForDirectoryListing              1
+ browser.js               func       contentAreaClick                      1
+ browser.js               func       createExposableURI                    1
+ browser.js               func       createFixupURI                        1
+ browser.js               func       getShortcutOrURI                      1
+ browser.js               func       getWebNavigation                      1
+ browser.js               func       handleURLBarCommand                   1
+ browser.js               func       isSuccessCode                         1
+ browser.js               func       markPageAsTyped                       1
+ browser.js               func       resolveKeyword                        1
+ browser.js               func       search                                1
+ browser.js               func       test                                  1
+ browser.js               func       updateLastVisitedDate                 1
+ browser.js               obj-new    Object                                1
+ browser.js               obj-new    XPC_WN_NoMods_Proto_JSClass           1
+ browser.js               obj-new    nsJSCID                               1
+ browser.xml              func       attachFormFill                        1
+ browser.xml              func       getAttribute                          1
+ browser.xml              func       getBoolPref                           1
+ consoleAPI.js            obj-new    Call                                  1
+ findBar.js               func       getElementById                        1
+ firebug.js               func       addEventListener                      1
+ firebug.js               obj-new    Constructor                           1
+ firebug.js               obj-new    Location                              1
+ firebug.js               obj-new    Object                                1
+ firebug.js               obj-new    XPC_WN_ModsAllowed_Proto_JSClass        1
+ func_slow.html           exec       .                                     1
+ func_slow.html           func       func_a                                1
+ func_slow.html           func       func_b                                1
+ func_slow.html           func       func_c                                1
+ func_slow.html           obj-new    Function                              1
+ preferences.js           obj-new    nsJSCID                               1
+ reporterOverlay.js       func       getElementById                        1
+ reporterOverlay.js       func       setAttribute                          1
+ tabbox.xml               func       getAttribute                          1
+ tabbrowser.xml           func       QueryInterface                        1
+ tabbrowser.xml           func       getAnonymousElementByAttribute        1
+ tabbrowser.xml           func       getBrowserIndexForDocument            1
+ tabbrowser.xml           func       indexOf                               1
+ tabbrowser.xml           func       push                                  1
+ tabbrowser.xml           func       setIcon                               1
+ tabbrowser.xml           func       setTabTitle                           1
+ tabbrowser.xml           func       shouldLoadFavIcon                     1
+ tabbrowser.xml           func       updateTitlebar                        1
+ tabbrowser.xml           func       useDefaultIcon                        1
+ tabbrowser.xml           obj-new    Array                                 1
+ tabbrowser.xml           obj-new    String                                1
+ textbox.xml              func       hasAttribute                          1
+ textbox.xml              func       setAttribute                          1
+ webdeveloper.js          func       getAttribute                          1
+ webdeveloper.js          func       hasAttribute                          1
+ webdeveloper.js          func       toLowerCase                           1
+ webdeveloper.js          func       webdeveloper_changeOptions            1
+ webdeveloper.js          func       webdeveloper_configureElement         1
+ webdeveloper.js          func       webdeveloper_openToolbarButton        1
+ webdeveloper.js          func       webdeveloper_updateMetaRedirects        1
+ webdeveloper.js          func       webdeveloper_updateRenderMode         1
+ webdeveloper.js          obj-new    Array                                 1
+ webdeveloper.js          obj-new    String                                1
+ <null>                   obj-free   BoxObject                             2
+ <null>                   obj-free   HTMLBodyElement                       2
+ <null>                   obj-free   JSOptions                             2
+ <null>                   obj-free   JavaArray                             2
+ <null>                   obj-free   JavaClass                             2
+ <null>                   obj-free   JavaMember                            2
+ <null>                   obj-free   JavaObject                            2
+ <null>                   obj-free   PageTransitionEvent                   2
+ <null>                   obj-free   nsJSCID                               2
+ <null>                   obj-new    BoxObject                             2
+ <null>                   obj-new    HTMLBodyElement                       2
+ <null>                   obj-new    JSOptions                             2
+ <null>                   obj-new    JavaArray                             2
+ <null>                   obj-new    JavaClass                             2
+ <null>                   obj-new    JavaMember                            2
+ <null>                   obj-new    JavaObject                            2
+ <null>                   obj-new    PageTransitionEvent                   2
+ autocomplete.xml         func       ensureRowIsVisible                    2
+ autocomplete.xml         func       initSearchNames                       2
+ autocomplete.xml         func       select                                2
+ autocomplete.xml         obj-new    Function                              2
+ browser.js               func       PageProxyClearIcon                    2
+ browser.js               func       PageProxySetIcon                      2
+ browser.js               func       URLBarClickHandler                    2
+ browser.js               func       URLBarMouseDownHandler                2
+ browser.js               func       XPCNativeWrapper function wrapper        2
+ browser.js               func       getService                            2
+ browser.js               func       loadURI                               2
+ browser.js               func       notifyObservers                       2
+ css.js                   func       <null>                                2
+ dom.js                   func       <null>                                2
+ events.js                func       <null>                                2
+ firebug.js               func       appendChild                           2
+ firebug.js               obj-new    XPC_WN_NoMods_Proto_JSClass           2
+ general.xml              func       getAttribute                          2
+ layout.js                func       <null>                                2
+ preferences.js           func       webdeveloper_getStringPreference        2
+ progressmeter.xml        func       createEvent                           2
+ progressmeter.xml        func       dispatchEvent                         2
+ progressmeter.xml        func       initEvent                             2
+ progressmeter.xml        func       setAttribute                          2
+ reporterOverlay.js       obj-new    Function                              2
+ scrollbar.xml            func       indexOf                               2
+ source.js                func       <null>                                2
+ style.js                 func       <null>                                2
+ tabbox.xml               func       setAttribute                          2
+ tabbrowser.xml           func       getBoolPref                           2
+ tabbrowser.xml           func       getBrowserAtIndex                     2
+ tabbrowser.xml           func       schemeIs                              2
+ tabbrowser.xml           func       setAttribute                          2
+ textbox.xml              func       setSelectionRange                     2
+ toolbar.xml              func       updateStatusText                      2
+ tree.xml                 obj-new    Function                              2
+ webdeveloper.js          func       getElementsByTagName                  2
+ webdeveloper.js          func       removeAttribute                       2
+ <null>                   obj-free   DOM Constructor.prototype             3
+ <null>                   obj-free   With                                  3
+ <null>                   obj-free   nsXPCComponents                       3
+ <null>                   obj-new    Array                                 3
+ <null>                   obj-new    DOM Constructor.prototype             3
+ <null>                   obj-new    With                                  3
+ <null>                   obj-new    XPC_WN_NoMods_Proto_JSClass           3
+ <null>                   obj-new    nsXPCComponents                       3
+ autocomplete.xml         func       getAttribute                          3
+ browser.js               func       QueryInterface                        3
+ func_slow.html           func       write                                 3
+ globalOverlay.js         obj-new    Function                              3
+ progressmeter.xml        func       getAttribute                          3
+ progressmeter.xml        func       round                                 3
+ scrollbar.xml            obj-new    String                                3
+ tabbrowser.xml           func       <null>                                3
+ tabbrowser.xml           func       hasAttribute                          3
+ tabbrowser.xml           func       updateIcon                            3
+ text.xml                 func       setAttribute                          3
+ textbox.xml              func       removeAttribute                       3
+ utils.js                 func       join                                  3
+ utils.js                 func       splice                                3
+ utils.js                 func       toLowerCase                           3
+ utils.js                 obj-new    Array                                 3
+ utils.js                 obj-new    String                                3
+ autocomplete.xml         func       closePopup                            4
+ browser.js               func       indexOf                               4
+ browser.js               obj-new    Call                                  4
+ browser.xml              func       getInterface                          4
+ preferences.js           func       webdeveloper_getBooleanPreference        4
+ tabbrowser.xml           func       getAttribute                          4
+ tabbrowser.xml           func       removeAttribute                       4
+ utilityOverlay.js        func       goUpdateGlobalEditMenuItems           4
+ utils.js                 func       isElement                             4
+ <null>                   obj-free   Call                                  5
+ view.js                  func       <null>                                5
+ <null>                   obj-free   XPCNativeWrapper                      6
+ <null>                   obj-free   XPC_WN_NoMods_Proto_JSClass           6
+ <null>                   obj-new    XPCNativeWrapper                      6
+ XStringBundle            func       GetStringFromName                     6
+ XStringBundle            func       getString                             6
+ autocomplete.xml         func       createEvent                           6
+ autocomplete.xml         func       dispatchEvent                         6
+ autocomplete.xml         func       initEvent                             6
+ browser.js               func       getBrowser                            6
+ browser.js               func       setTimeout                            6
+ browser.js               obj-new    String                                6
+ preferences.js           func       getBranch                             6
+ preferences.js           func       getService                            6
+ preferences.js           func       prefHasUserValue                      6
+ preferences.js           func       webdeveloper_isPreferenceSet          6
+ tabbrowser.xml           func       getBrowserForTab                      6
+ utils.js                 func       <null>                                6
+ webdeveloper.js          obj-new    Function                              6
+ <null>                   obj-new    Object                                7
+ firebug.js               func       removeAttribute                       7
+ tabbrowser.xml           obj-new    Function                              7
+ tree.xml                 func       QueryInterface                        7
+ <null>                   obj-free   Array                                 8
+ browser.js               func       hasAttribute                          8
+ globalOverlay.js         func       removeAttribute                       8
+ reporterOverlay.js       func       <null>                                8
+ browser.js               func       getElementById                        9
+ browser.js               func       setAttribute                          9
+ browser.xml              obj-new    Function                              9
+ webdeveloper.js          func       getElementById                        9
+ <null>                   obj-free   Constructor                          10
+ <null>                   obj-free   Object                               10
+ <null>                   obj-free   XPC_WN_ModsAllowed_Proto_JSClass       10
+ <null>                   obj-new    Constructor                          10
+ <null>                   obj-new    XPC_WN_ModsAllowed_Proto_JSClass       10
+ browser.js               func       removeAttribute                      10
+ firebug.js               obj-new    Function                             10
+ text.xml                 obj-new    String                               12
+ webdeveloper.js          func       item                                 14
+ firebug.js               func       getElementById                       15
+ <null>                   obj-free   XULElement                           16
+ button.xml               func       hasAttribute                         16
+ <null>                   obj-free   Event                                17
+ browser.js               func       <null>                               17
+ <null>                   obj-new    Event                                18
+ text.xml                 func       getAttribute                         19
+ firebug.js               func       getAttribute                         20
+ globalOverlay.js         func       setAttribute                         20
+ <null>                   obj-free   MouseEvent                           22
+ <null>                   obj-new    MouseEvent                           22
+ globalOverlay.js         func       isCommandEnabled                     22
+ webdeveloper.js          func       setAttribute                         22
+ <null>                   obj-free   String                               26
+ firebug.js               func       setAttribute                         26
+ <null>                   obj-free   RegExp                               28
+ <null>                   obj-new    RegExp                               28
+ globalOverlay.js         func       getControllerForCommand              28
+ globalOverlay.js         func       getElementById                       28
+ globalOverlay.js         func       goSetCommandEnabled                  28
+ globalOverlay.js         func       goUpdateCommand                      28
+ text.xml                 func       test                                 28
+ browser.js               obj-new    Function                             30
+ <null>                   obj-free   XPCWrappedNative_NoHelper            32
+ <null>                   obj-new    XPCWrappedNative_NoHelper            32
+ consoleAPI.js            obj-new    Function                             33
+ browser.xml              func       QueryInterface                       38
+ <null>                   obj-free   JavaPackage                          41
+ <null>                   obj-new    JavaPackage                          41
+ scrollbar.xml            obj-new    Function                             61
+ firebug.js               func       <null>                               62
+ text.xml                 exec       .                                    84
+ <null>                   obj-new    XULElement                           85
+ <null>                   obj-new    Function                            172
+ <null>                   obj-free   Function                            310
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/js_calltime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/js_calltime_example.txt
new file mode 100644
index 0000000..0b69b76
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/js_calltime_example.txt
@@ -0,0 +1,60 @@
+The following are examples of js_calltime.d.
+
+This script traces the elapsed time of JavaScript functions and
+prints a report. Here it traces the example program, 
+Code/JavaScript/func_clock.html
+
+# js_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   func_clock.html      func       func_a                                  3
+   func_clock.html      func       func_b                                  3
+   func_clock.html      func       func_c                                  3
+   func_clock.html      func       setTimeout                              3
+   func_clock.html      func       start                                   3
+   func_clock.html      obj-new    Date                                    3
+   func_clock.html      func       getElementById                         12
+   -                    total      -                                      30
+
+Elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   -                    total      -                                      29
+   func_clock.html      obj-new    Date                                   29
+
+Exclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_clock.html      func       setTimeout                            229
+   func_clock.html      func       getElementById                        378
+   func_clock.html      func       start                                4061
+   func_clock.html      func       func_a                              51080
+   func_clock.html      func       func_b                             102943
+   func_clock.html      func       func_c                             153330
+   -                    total      -                                  312024
+
+Inclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_clock.html      func       setTimeout                            229
+   func_clock.html      func       getElementById                        378
+   func_clock.html      func       func_c                             153454
+   func_clock.html      func       func_b                             256470
+   func_clock.html      func       func_a                             307601
+   func_clock.html      func       start                              312054
+
+Counts shows us how many times each different function was called, and how
+many functions were called in total.
+
+The elapsed time shows us the time spent not in a JavaScript function.
+
+The exclusive function elapsed times show the time that each function spent
+processing code - while not in other functions.
+
+The inclusive function elapsed times show the time that each function spent
+processing code, including the time spent in other calls.
+
+These elapsed times are the absolute time from when the function began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/js_cpudist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/js_cpudist_example.txt
new file mode 100644
index 0000000..c71a2ad
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/js_cpudist_example.txt
@@ -0,0 +1,112 @@
+The following are examples of js_cpudist.d.
+
+This script traces the on-CPU time of JavaScript functions and prints a report 
+in the form of a histogram.  Here it traces the example program,
+Code/JavaScript/func_clock.html 
+
+# js_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Elapsed times (us),
+   func_clock.html, obj-new, Date 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+               8 |                                         0        
+
+
+Exclusive function on-CPU times (us),
+   func_clock.html, func, setTimeout 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@                     2        
+              64 |@@@@@@@@@@@@@@@@@@@@                     2        
+             128 |                                         0        
+
+   func_clock.html, func, getElementById 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@                               4        
+              16 |@@@@@@@@@@                               4        
+              32 |@@@@@@@@@@@@@@@@@@@@                     8        
+              64 |                                         0        
+
+   func_clock.html, func, start 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+            1024 |                                         0        
+
+   func_clock.html, func, func_a 
+           value  ------------- Distribution ------------- count    
+            8192 |                                         0        
+           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+           32768 |                                         0        
+
+   func_clock.html, func, func_b 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+           65536 |                                         0        
+
+   func_clock.html, func, func_c 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+           65536 |                                         0        
+
+
+Inclusive function on-CPU times (us),
+   func_clock.html, func, setTimeout 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@                     2        
+              64 |@@@@@@@@@@@@@@@@@@@@                     2        
+             128 |                                         0        
+
+   func_clock.html, func, getElementById 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@                               4        
+              16 |@@@@@@@@@@                               4        
+              32 |@@@@@@@@@@@@@@@@@@@@                     8        
+              64 |                                         0        
+
+   func_clock.html, func, func_c 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+           65536 |                                         0        
+
+   func_clock.html, func, func_a 
+           value  ------------- Distribution ------------- count    
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+          131072 |                                         0        
+
+   func_clock.html, func, func_b 
+           value  ------------- Distribution ------------- count    
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+          131072 |                                         0        
+
+   func_clock.html, func, start 
+           value  ------------- Distribution ------------- count    
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+          131072 |                                         0        
+
+The first section, Exclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, not including time spent in subroutines.  You can
+see here that func_a had four instances of being on-CPU between 16384
+microseconds and 32767 microseconds.
+
+The second section, Inclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, including that time spent in subroutines called
+by those functions.  You can see that here func_a had four instances of being 
+on-CPU between 65536 microseconds and 131071 microseconds.
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/js_cputime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/js_cputime_example.txt
new file mode 100644
index 0000000..dff42fd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/js_cputime_example.txt
@@ -0,0 +1,69 @@
+The following are examples of js_cputime.d.
+
+This script traces the on-CPU time of JavaScript functions and prints a report. 
+Here it traces the example program, Code/JavaScript/func_clock.html
+
+# js_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   func_clock.html      func       func_a                                  5
+   func_clock.html      func       func_b                                  5
+   func_clock.html      func       func_c                                  5
+   func_clock.html      func       setTimeout                              5
+   func_clock.html      func       start                                   5
+   func_clock.html      obj-new    Date                                    5
+   func_clock.html      func       getElementById                         20
+   -                    total      -                                      50
+
+Elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   -                    total      -                                      37
+   func_clock.html      obj-new    Date                                   37
+
+Exclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_clock.html      func       setTimeout                            316
+   func_clock.html      func       getElementById                        588
+   func_clock.html      func       start                                4734
+   func_clock.html      func       func_a                              83465
+   func_clock.html      func       func_b                             166613
+   func_clock.html      func       func_c                             247683
+   -                    total      -                                  503402
+
+Inclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_clock.html      func       setTimeout                            316
+   func_clock.html      func       getElementById                        588
+   func_clock.html      func       func_c                             247872
+   func_clock.html      func       func_b                             414601
+   func_clock.html      func       func_a                             498142
+   func_clock.html      func       start                              503439
+
+You can see the results are printed in four sections.
+
+The first section reports how many times each subroutine was called, and it's
+type.
+
+The second section reports on the on-CPU time of anything that was not of type
+"func", in this case the only elements reported here are Date obj-new.
+
+The exclusive subroutine on-CPU times shows, amongst other results, that func_a 
+spent around 83,000 microseconds on-CPU.  This time excludes time spent in 
+other subroutines.
+
+The inclusive subroutine on-CPU times show that func_a spent around 0.5
+seconds on-CPU.  This includes the time spent in other subroutines
+called.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/js_execs_example.txt b/external/cddl/dtracetoolkit/dist/Examples/js_execs_example.txt
new file mode 100644
index 0000000..d555c1a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/js_execs_example.txt
@@ -0,0 +1,15 @@
+The following examples show the results of running the script js_execs.d.
+
+Here it runs on the program Code/JavaScript/func_clock.html.  The script will
+show you every time something is executed, including page reloads and
+timeouts.  
+
+# js_execs.d 
+TIME                                              FILE:LINENO
+2007 Sep 23 22:54:31                   func_clock.html:32
+2007 Sep 23 22:54:32                   func_clock.html:32
+2007 Sep 23 22:54:34                   func_clock.html:32
+2007 Sep 23 22:54:35                   func_clock.html:32
+2007 Sep 23 22:54:36                   func_clock.html:32
+^C
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/js_flow_example.txt b/external/cddl/dtracetoolkit/dist/Examples/js_flow_example.txt
new file mode 100644
index 0000000..7a9278d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/js_flow_example.txt
@@ -0,0 +1,41 @@
+The following are examples of js_flow.d.
+
+This is a simple script to trace the flow of JavaScript functions.
+Here it traces the example program, Code/JavaScript/func_clock.html
+
+# js_flow.d 
+  C TIME(us)         FILE                   -- FUNC
+  0 3650471830941    func_clock.html        -> start
+  0 3650471831005    func_clock.html          -> getElementById
+  0 3650471831058    func_clock.html          <- getElementById
+  0 3650471831890    func_clock.html          -> func_a
+  0 3650471831906    func_clock.html            -> getElementById
+  0 3650471831929    func_clock.html            <- getElementById
+  0 3650471850084    func_clock.html            -> func_b
+  0 3650471850111    func_clock.html              -> getElementById
+  0 3650471850146    func_clock.html              <- getElementById
+  0 3650471886534    func_clock.html              -> func_c
+  0 3650471886573    func_clock.html                -> getElementById
+  0 3650471886624    func_clock.html                <- getElementById
+  0 3650471942212    func_clock.html              <- func_c
+  0 3650471942231    func_clock.html            <- func_b
+  0 3650471942242    func_clock.html          <- func_a
+  0 3650471942300    func_clock.html          -> setTimeout
+  0 3650471942392    func_clock.html          <- setTimeout
+  0 3650471942404    func_clock.html        <- start
+^C
+
+The fourth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which - the output above shows that
+func_a called func_b, which in turn called func_c.
+
+The TIME(us) column shows time from boot in microseconds.
+
+The FILE column shows the file that was being executed.
+
+If the output looks strange, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/js_flowinfo_example.txt b/external/cddl/dtracetoolkit/dist/Examples/js_flowinfo_example.txt
new file mode 100644
index 0000000..45970c1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/js_flowinfo_example.txt
@@ -0,0 +1,42 @@
+Following are examples of js_flowinfo.d.
+
+This is a simple script to trace the flow of JavaScript functions.  Here it 
+traces the example program Code/JavaScript/func_clock.html
+
+# js_flowinfo.d
+  C    PID  DELTA(us)              FILE:LINE TYPE     -- FUNC
+  0  11651          2                 .:0    func     -> start
+  0  11651         75   func_clock.html:30   func       -> getElementById
+  0  11651         51   func_clock.html:-    func       <- getElementById
+  0  11651        479   func_clock.html:31   func       -> func_a
+  0  11651         25   func_clock.html:21   func         -> getElementById
+  0  11651         23   func_clock.html:-    func         <- getElementById
+  0  11651      30611   func_clock.html:25   func         -> func_b
+  0  11651         79   func_clock.html:13   func           -> getElementById
+  0  11651         51   func_clock.html:-    func           <- getElementById
+  0  11651      33922   func_clock.html:17   func           -> func_c
+  0  11651         75   func_clock.html:6    func             -> getElementById
+  0  11651         50   func_clock.html:-    func             <- getElementById
+  0  11651      50481   func_clock.html:-    func           <- func_c
+  0  11651         24   func_clock.html:-    func         <- func_b
+  0  11651         10   func_clock.html:-    func       <- func_a
+  0  11651         39   func_clock.html:32   func       -> setTimeout
+  0  11651        118   func_clock.html:-    func       <- setTimeout
+  0  11651         11   func_clock.html:-    func     <- start
+^C
+
+As each function is entered, the last column is indented by 2 spaces. This
+shows which function is calling which.
+
+The DELTA(us) column shows the change in time from the previous line to the
+current line.
+
+The FILE::LINE column shows which line in which file was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/js_flowtime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/js_flowtime_example.txt
new file mode 100644
index 0000000..46b2f2f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/js_flowtime_example.txt
@@ -0,0 +1,42 @@
+The following are examples of js_flowtime.d.
+
+This is a simple script to trace the flow of JavaScript functions.
+Here it traces the example program, Code/JavaScript/func_clock.html
+
+# js_flowtime.d 
+  C TIME(us)         FILE               DELTA(us) -- FUNC
+  0 3650523390654    func_clock.html            2 -> start
+  0 3650523390721    func_clock.html           67   -> getElementById
+  0 3650523390773    func_clock.html           51   <- getElementById
+  0 3650523391609    func_clock.html          835   -> func_a
+  0 3650523391627    func_clock.html           18     -> getElementById
+  0 3650523391651    func_clock.html           23     <- getElementById
+  0 3650523409735    func_clock.html        18084     -> func_b
+  0 3650523409763    func_clock.html           27       -> getElementById
+  0 3650523409795    func_clock.html           32       <- getElementById
+  0 3650523445921    func_clock.html        36125       -> func_c
+  0 3650523445959    func_clock.html           38         -> getElementById
+  0 3650523446004    func_clock.html           44         <- getElementById
+  0 3650523500557    func_clock.html        54552       <- func_c
+  0 3650523500581    func_clock.html           24     <- func_b
+  0 3650523500593    func_clock.html           11   <- func_a
+  0 3650523500648    func_clock.html           54   -> setTimeout
+  0 3650523500736    func_clock.html           88   <- setTimeout
+  0 3650523500749    func_clock.html           12 <- start
+^C
+
+The fifth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which. 
+
+The TIME(us) column shows time since boot.
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the second line of data output
+shows that a getElementById function happened 67 microseconds after start.
+
+The FILE column shows file that was being executed.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/js_objcpu_example.txt b/external/cddl/dtracetoolkit/dist/Examples/js_objcpu_example.txt
new file mode 100644
index 0000000..9e9a957
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/js_objcpu_example.txt
@@ -0,0 +1,317 @@
+The following are examples of running js_objcpu.d.  
+
+This script will show the time on-CPU of object creation events in graphical
+format.  
+
+Here we see it running on Code/JavaScript/func_clock.html 
+
+# js_objcpu.d 
+Tracing... Hit Ctrl-C to end.
+^C
+Total object creation on-CPU time (ms): 0
+
+Object creation on-CPU time distributions (us),
+
+  Date                                              
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              16 |                                         0   
+
+We can see that there were two object creation events, both of type 'Date'
+that spent between 8 microseconds and 15 microseconds on-CPU each.
+
+
+Here we see the results of having Code/JavaScript/func_slow.html in a browser
+window and hitting reload.  This includes events that happen due to mouse
+movement.
+
+# js_objcpu.d
+Tracing... Hit Ctrl-C to end.
+^C
+Total object creation on-CPU time (ms): 2
+
+Object creation on-CPU time distributions (us),
+
+  HTMLBodyElement                                   
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  HTMLCollection                                    
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  HTMLDocument                                      
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  HTMLHtmlElement                                   
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  Location                                          
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  NodeList                                          
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  StyleSheetList                                    
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  Window                                            
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  chrome://global/content/bindings/popup.xml#popup 8830492
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  chrome://global/content/bindings/scrollbar.xml#scrollbar 8beef52
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+  BarProp                                           
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+  BoxObject                                         
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+  CSSStyleDeclaration                               
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+  chrome://global/content/bindings/popup.xml#popup 8bef592
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+  nsXPCComponents_Classes                           
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+  nsJSCID                                           
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+
+  nsXPCComponents                                   
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4 |                                         0        
+
+  Global Scope Polluter                             
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+  JavaArray                                         
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |                                         0        
+
+  JavaClass                                         
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |                                         0        
+
+  JavaMember                                        
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |                                         0        
+
+  JavaObject                                        
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |                                         0        
+
+  KeyboardEvent                                     
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |                                         0        
+
+  XPC_WN_NoMods_Proto_JSClass                       
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           3        
+               4 |@@@@@@@@@@                               1        
+               8 |                                         0        
+
+  PageTransitionEvent                               
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |                                         0        
+
+  JSOptions                                         
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              16 |                                         0        
+
+  Call                                              
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+               8 |                                         0        
+
+  DOM Constructor.prototype                         
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |                                         0        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@                            1        
+              32 |                                         0        
+
+  With                                              
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@                            1        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              16 |                                         0        
+
+  Constructor                                       
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     9        
+               4 |@@@@                                     1        
+               8 |                                         0        
+
+  Object                                            
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@                          3        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@                5        
+               8 |                                         0        
+
+  XPCNativeWrapper                                  
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@                                  1        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+               8 |@@@@@@@                                  1        
+              16 |                                         0        
+
+  XULElement                                        
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@                   5        
+               4 |@@@@@@@@@@@@@@@@@@                       4        
+               8 |                                         0        
+
+  Array                                             
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@                               2        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           6        
+               8 |                                         0        
+
+  XPCWrappedNative_NoHelper                         
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@                          3        
+               4 |@@@@@@@@@@@@@@@@@@@@                     4        
+               8 |@@@@@                                    1        
+              16 |                                         0        
+
+  XPC_WN_ModsAllowed_Proto_JSClass                  
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@                 6        
+               4 |@@@@@@@@@@@@                             3        
+               8 |@@@@                                     1        
+              16 |                                         0        
+
+  MouseEvent                                        
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@                        3        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@                  4        
+              16 |                                         0        
+
+  String                                            
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 11       
+               8 |                                         0        
+
+  Event                                             
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@                                      1        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@            10       
+               8 |@@@@@@@@@                                3        
+              16 |                                         0        
+
+  JavaPackage                                       
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  40       
+               4 |                                         0        
+               8 |@                                        1        
+              16 |                                         0        
+
+  Function                                          
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          246      
+               4 |@@@@@@@                                  58       
+               8 |@                                        8        
+              16 |@                                        9        
+              32 |                                         0        
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/js_objgc_example.txt b/external/cddl/dtracetoolkit/dist/Examples/js_objgc_example.txt
new file mode 100644
index 0000000..711b223
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/js_objgc_example.txt
@@ -0,0 +1,230 @@
+Following are examples of running js_objgc.d.
+
+This script reports on the garbage collection of Java objects.  That is it
+will keep track of when resources are allocated to an object, and when
+resources are freed from an object.  It is useful for providing information on
+when garbage collection is not working correctly, as this can cause the
+browser to have a memory leak.
+
+We trace object creation (+1) and destruction (-1), and provide a summary
+each second of the running tally of the object class and originating filename. 
+
+Here we can see it running on Code/JavaScript/func_clock.html
+
+# js_objgc.d
+Tracing... Hit Ctrl-C to end.
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:24
+ func_clock.html                 1 Date
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:25
+ func_clock.html                 2 Date
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:26
+ func_clock.html                 3 Date
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:27
+ func_clock.html                 4 Date
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:28
+ func_clock.html                 5 Date
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:29
+ browser.js                      3 Function
+ <null>                          5 Function
+ func_clock.html                 6 Date
+ <null>                          7 MouseEvent
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:30
+ browser.js                      3 Function
+ <null>                          5 Function
+ func_clock.html                 7 Date
+ <null>                         10 MouseEvent
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:31
+ <null>                          1 Constructor
+ <null>                          1 HTMLBodyElement
+ <null>                          1 XPCNativeWrapper
+ <null>                          1 XPC_WN_ModsAllowed_Proto_JSClass
+ browser.js                      1 Array
+ browser.js                      1 XPCNativeWrapper
+ popup.xml                       1 Array
+ func_clock.html                 7 Date
+ <null>                         13 MouseEvent
+ <null>                         18 Function
+ browser.js                     20 Function
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 22:59:32
+ <null>                          1 BoxObject
+ <null>                          1 Constructor
+ <null>                          1 HTMLBodyElement
+ <null>                          1 NodeList
+ <null>                          1 UIEvent
+ <null>                          1 XPCNativeWrapper
+ <null>                          1 XPC_WN_ModsAllowed_Proto_JSClass
+ <null>                          1 chrome://global/content/bindings/menu.xml#menu-iconic 84ff45a
+ <null>                          1 chrome://global/content/bindings/menu.xml#menu-iconic 8befbba
+ bookmarksMenu.js                1 Function
+ browser.js                      1 Array
+ browser.js                      1 XPCNativeWrapper
+ popup.xml                       1 Function
+ scrollbox.xml                   1 Function
+ <null>                          2 Event
+ popup.xml                       2 Array
+ bookmarks.js                    3 With
+ firebug-service.js              3 Object
+ bookmarks.js                    6 Object
+ bookmarks.js                    6 XPCWrappedNative_NoHelper
+ func_clock.html                 8 Date
+ firebug-service.js             10 Function
+ <null>                         15 MouseEvent
+ bookmarks.js                   19 Error
+ browser.js                     20 Function
+ bookmarks.js                   22 Function
+ <null>                         39 XPCWrappedNative_NoHelper
+ <null>                         44 Function
+ <null>                         60 RegExp
+ <null>                        191 XULElement
+
+[... 39 seconds deleted ...]
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 23:00:10
+ <null>                          1 HTMLBodyElement
+ <null>                          1 HTMLCollection
+ <null>                          1 TreeColumns
+ <null>                          1 XPCNativeWrapper
+ <null>                          1 XPC_WN_NoMods_Proto_JSClass
+ <null>                          1 XULTreeBuilder
+ <null>                          1 chrome://global/content/bindings/menu.xml#menu-iconic 84ff45a
+ <null>                          1 chrome://global/content/bindings/menu.xml#menu-iconic 8befbba
+ <null>                          1 chrome://global/content/bindings/tree.xml#treebody 84caa3a
+ <null>                          1 chrome://global/content/bindings/tree.xml#treebody 84e3a72
+ <null>                          1 nsXPCComponents_Interfaces
+ <null>                          1 nsXPCComponents_Results
+ bookmarksMenu.js                1 Function
+ browser.js                      1 Array
+ browser.js                      1 XPCNativeWrapper
+ browser.js                      1 XPC_WN_NoMods_Proto_JSClass
+ nsUpdateService.js              1 XPC_WN_NoMods_Proto_JSClass
+ nsUpdateService.js              1 nsJSCID
+ popup.xml                       1 Function
+ scrollbar.xml                   1 String
+ scrollbox.xml                   1 Function
+ tree.xml                        1 Array
+ <null>                          2 Constructor
+ <null>                          2 UIEvent
+ <null>                          2 XPC_WN_ModsAllowed_Proto_JSClass
+ <null>                          2 nsXPCComponents_Classes
+ browser.js                      2 nsJSCID
+ browser.js                      2 nsJSIID
+ utilityOverlay.js               2 nsJSCID
+ utilityOverlay.js               2 nsJSIID
+ <null>                          3 Array
+ <null>                          3 NodeList
+ nsUpdateService.js              3 Array
+ nsUpdateService.js              3 Object
+ nsUpdateService.js              3 With
+ utilityOverlay.js               3 Call
+ tree.xml                        4 Function
+ utilityOverlay.js               4 Function
+ nsUpdateService.js              7 nsJSIID
+ nsUpdateService.js             15 Function
+ bookmarks.js                   22 Function
+ text.xml                       23 String
+ <null>                         36 BoxObject
+ func_clock.html                42 Date
+ bookmarks.js                   57 With
+ firebug-service.js             57 Object
+ bookmarks.js                   73 Error
+ browser.js                     78 Function
+ popup.xml                      82 Array
+ bookmarks.js                  114 Object
+ bookmarks.js                  114 XPCWrappedNative_NoHelper
+ <null>                        157 MouseEvent
+ firebug-service.js            172 Function
+ <null>                        307 XPCWrappedNative_NoHelper
+ <null>                        388 RegExp
+ <null>                        488 Event
+ <null>                        876 XULElement
+ <null>                       1221 Function
+
+ FILE                        TOTAL CLASS                   2007 Sep 23 23:00:11
+ <missed>                      -94 Date
+ <missed>                      -34 Function
+ <missed>                       -4 MouseEvent
+ <missed>                       -2 Array
+ <missed>                       -1 HTMLBodyElement
+ <missed>                       -1 HTMLCollection
+ <missed>                       -1 XPCNativeWrapper
+ <missed>                       -1 XPC_WN_ModsAllowed_Proto_JSClass
+ <null>                          0 Array
+ <null>                          0 HTMLBodyElement
+ <null>                          0 HTMLCollection
+ <null>                          0 RegExp
+ <null>                          0 TreeColumns
+ <null>                          0 UIEvent
+ <null>                          0 XPC_WN_NoMods_Proto_JSClass
+ <null>                          0 XULTreeBuilder
+ <null>                          0 nsXPCComponents_Classes
+ <null>                          0 nsXPCComponents_Interfaces
+ <null>                          0 nsXPCComponents_Results
+ browser.js                      0 Array
+ browser.js                      0 XPCNativeWrapper
+ browser.js                      0 XPC_WN_NoMods_Proto_JSClass
+ browser.js                      0 nsJSCID
+ nsUpdateService.js              0 Array
+ nsUpdateService.js              0 Function
+ nsUpdateService.js              0 Object
+ nsUpdateService.js              0 With
+ nsUpdateService.js              0 XPC_WN_NoMods_Proto_JSClass
+ nsUpdateService.js              0 nsJSCID
+ nsUpdateService.js              0 nsJSIID
+ scrollbar.xml                   0 String
+ text.xml                        0 String
+ tree.xml                        0 Array
+ utilityOverlay.js               0 Call
+ utilityOverlay.js               0 Function
+ utilityOverlay.js               0 nsJSCID
+ <null>                          1 NodeList
+ <null>                          1 XPCNativeWrapper
+ <null>                          1 chrome://global/content/bindings/menu.xml#menu-iconic 84ff45a
+ <null>                          1 chrome://global/content/bindings/menu.xml#menu-iconic 8befbba
+ <null>                          1 chrome://global/content/bindings/tree.xml#treebody 84caa3a
+ <null>                          1 chrome://global/content/bindings/tree.xml#treebody 84e3a72
+ bookmarksMenu.js                1 Function
+ browser.xul                     1 Function
+ func_clock.html                 1 Date
+ popup.xml                       1 Function
+ scrollbox.xml                   1 XULElement
+ scrollbox.xml                   1 nsJSIID
+ <null>                          2 Constructor
+ <null>                          2 XPC_WN_ModsAllowed_Proto_JSClass
+ browser.js                      2 nsJSIID
+ scrollbox.xml                   2 Function
+ tree.xml                        2 Function
+ utilityOverlay.js               2 nsJSIID
+ popup.xml                       3 Array
+ bookmarks.js                    5 With
+ firebug-service.js              5 Object
+ <null>                          6 Event
+ <null>                          6 MouseEvent
+ bookmarks.js                    9 XPCWrappedNative_NoHelper
+ <null>                         10 XPCWrappedNative_NoHelper
+ bookmarks.js                   10 Object
+ browser.js                     10 Function
+ bookmarks.js                   15 Function
+ firebug-service.js             16 Function
+ <null>                         18 BoxObject
+ bookmarks.js                   75 Error
+ <null>                         79 Function
+ <null>                        315 XULElement
+^C
+
+Just after time 23:00:10, garbage collection fired cleaning up many objects.
+The final output shows a much reduced object count including a negative
+count for objects created before this script was tracing.
+
+If over the period of several minutes an object type is still steadily 
+increasing, then that would be of interest.  Be patient, depending on the rate 
+of object creation it can take over ten minutes for garbage collect to kick in.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/js_objnew_example.txt b/external/cddl/dtracetoolkit/dist/Examples/js_objnew_example.txt
new file mode 100644
index 0000000..c3a8881
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/js_objnew_example.txt
@@ -0,0 +1,100 @@
+The following are examples of the results of running js_objnew.d.  
+
+It reports on the class type of new objects created. 
+
+Here we can see it running on the program Code/JavaScript/func_clock.html.
+
+# js_objnew.d 
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE                     CLASS                                   COUNT
+ func_clock.html          Date                                        2
+
+The results are very simple, func_clock.html caused two new objects to be
+created, both of type 'Date'.
+
+
+Here is a more complicated example, running on the program
+Code/JavaScript/func_slow.html, with the results of that plus JavaScript caused 
+by hitting reload on the browser.
+
+
+# js_objnew.d 
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE                     CLASS                                   COUNT
+ <null>                   BarProp                                     1
+ <null>                   CSSStyleDeclaration                         1
+ <null>                   Global Scope Polluter                       1
+ <null>                   HTMLBodyElement                             1
+ <null>                   HTMLDocument                                1
+ <null>                   HTMLHtmlElement                             1
+ <null>                   NodeList                                    1
+ <null>                   StyleSheetList                              1
+ <null>                   TreeSelection                               1
+ <null>                   Window                                      1
+ <null>                   XULCommandDispatcher                        1
+ <null>                   chrome://global/content/bindings/popup.xml#popup 8c35c92        1
+ <null>                   chrome://global/content/bindings/popup.xml#popup 8fb299a        1
+ <null>                   chrome://global/content/bindings/scrollbar.xml#scrollbar 8fb2ea2        1
+ <null>                   nsXPCComponents_Classes                     1
+ <null>                   xpcTempGlobalClass                          1
+ autocomplete.xml         Object                                      1
+ browser.js               Array                                       1
+ browser.js               Object                                      1
+ browser.js               XPC_WN_NoMods_Proto_JSClass                 1
+ browser.js               nsJSCID                                     1
+ consoleAPI.js            Call                                        1
+ firebug.js               Constructor                                 1
+ firebug.js               Location                                    1
+ firebug.js               Object                                      1
+ firebug.js               XPC_WN_ModsAllowed_Proto_JSClass            1
+ func_slow.html           Function                                    1
+ popup.xml                Array                                       1
+ preferences.js           nsJSCID                                     1
+ tabbrowser.xml           Array                                       1
+ tabbrowser.xml           String                                      1
+ webdeveloper.js          Array                                       1
+ webdeveloper.js          String                                      1
+ <null>                   BoxObject                                   2
+ <null>                   JSOptions                                   2
+ <null>                   JavaArray                                   2
+ <null>                   JavaClass                                   2
+ <null>                   JavaMember                                  2
+ <null>                   JavaObject                                  2
+ <null>                   PageTransitionEvent                         2
+ autocomplete.xml         Function                                    2
+ firebug.js               XPC_WN_NoMods_Proto_JSClass                 2
+ reporterOverlay.js       Function                                    2
+ tree.xml                 Function                                    2
+ <null>                   Array                                       3
+ <null>                   DOM Constructor.prototype                   3
+ <null>                   With                                        3
+ <null>                   XPC_WN_NoMods_Proto_JSClass                 3
+ <null>                   nsXPCComponents                             3
+ globalOverlay.js         Function                                    3
+ scrollbar.xml            String                                      3
+ utils.js                 Array                                       3
+ utils.js                 String                                      3
+ browser.js               Call                                        4
+ func_clock.html          Date                                        4
+ webdeveloper.js          Function                                    4
+ <null>                   XPCNativeWrapper                            5
+ browser.js               String                                      6
+ <null>                   Object                                      7
+ tabbrowser.xml           Function                                    7
+ <null>                   XPC_WN_ModsAllowed_Proto_JSClass            8
+ <null>                   Constructor                                 9
+ browser.xml              Function                                    9
+ firebug.js               Function                                   10
+ <null>                   MouseEvent                                 12
+ <null>                   XPCWrappedNative_NoHelper                  13
+ <null>                   KeyboardEvent                              14
+ <null>                   XULElement                                 16
+ <null>                   Event                                      29
+ browser.js               Function                                   33
+ consoleAPI.js            Function                                   33
+ <null>                   JavaPackage                                41
+ scrollbar.xml            Function                                   61
+ <null>                   Function                                  211
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/js_stat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/js_stat_example.txt
new file mode 100644
index 0000000..b658b4f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/js_stat_example.txt
@@ -0,0 +1,35 @@
+The following are examples of running js_stat.d
+
+Here is the result after running the program Code/JavaScript/func_clock.html.
+
+# js_stat.d 
+TIME                   EXEC/s   FUNC/s OBJNEW/s OBJFRE/s
+2007 Sep 23 23:04:59        1        9        1        0
+2007 Sep 23 23:05:00        1        9        1        0
+2007 Sep 23 23:05:01        1        9        1        0
+2007 Sep 23 23:05:02        1        6        1        0
+2007 Sep 23 23:05:03        0        3        0        0
+2007 Sep 23 23:05:04        1        9        1        0
+2007 Sep 23 23:05:05        1        9        1        0
+2007 Sep 23 23:05:06        1        9        1        0
+^C
+
+We can see that at 2007 Sep 23 23:05:02 there was one JavaScript program
+executed, six functions called, one new object created and no objects freed.
+
+
+Here is the result after running the program Code/JavaScript/func_slow.html.
+This also includes browser JavaScript.
+
+# js_stat.d 
+TIME                   EXEC/s   FUNC/s OBJNEW/s OBJFRE/s
+2007 Sep 23 23:05:48        1      124       41        0
+2007 Sep 23 23:05:49        1       29       19        0
+2007 Sep 23 23:05:50        1       29       25        0
+2007 Sep 23 23:05:51        1      670      497        0
+2007 Sep 23 23:05:52        0       62       11        0
+2007 Sep 23 23:05:53        0        0        6      617
+2007 Sep 23 23:05:54        0        0        0        0
+2007 Sep 23 23:05:55        0        0        0        0
+^C
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/js_who_example.txt b/external/cddl/dtracetoolkit/dist/Examples/js_who_example.txt
new file mode 100644
index 0000000..06e3e31
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/js_who_example.txt
@@ -0,0 +1,59 @@
+The following examples are the results of running the js_who.d script while
+various JavaScript events happen.
+
+A JavaScript program that behaves like a clock is frequently used by these
+examples, since it can be left running in the background without browser
+input. Browser input, such as hitting the reload button or using menus,
+triggers many other JavaScript events since much of the browser uses
+JavaScript. This makes for interesting longer examples, but would be
+overwhelming for example #1.
+
+In the first example, we can see what happens when we run this program,
+Code/JavaScript/func_clock.html
+
+# js_who.d 
+Tracing... Hit Ctrl-C to end.
+^C
+      PID    UID  FUNCS FILE
+    10530    100     18 file:///export/home/brendan/Lang/JavaScript/func_clock.html
+
+
+The second example is more complex, the reason for this is that the program
+Code/Javascript/func_slow.html was loaded in the browser, and the reload
+button was pressed.  This output captured the many browser events that occured
+when moving the mouse pointer to do so.
+
+# js_who.d 
+Tracing... Hit Ctrl-C to end.
+^C
+      PID    UID  FUNCS FILE
+    10530    100      2 chrome://firebug/content/views/css.js
+    10530    100      2 chrome://firebug/content/views/dom.js
+    10530    100      2 chrome://firebug/content/views/events.js
+    10530    100      2 chrome://firebug/content/views/layout.js
+    10530    100      2 chrome://firebug/content/views/source.js
+    10530    100      2 chrome://firebug/content/views/style.js
+    10530    100      2 chrome://global/content/bindings/scrollbar.xml
+    10530    100      3 chrome://global/content/bindings/general.xml
+    10530    100      3 chrome://global/content/bindings/tabbox.xml
+    10530    100      3 chrome://global/content/bindings/text.xml
+    10530    100      4 chrome://browser/content/utilityOverlay.js
+    10530    100      5 chrome://firebug/content/views/view.js
+    10530    100      6 file:///export/home/brendan/Lang/JavaScript/func_slow.html
+    10530    100      7 chrome://global/content/bindings/textbox.xml
+    10530    100      7 chrome://global/content/bindings/tree.xml
+    10530    100     10 chrome://reporter/content/reporterOverlay.js
+    10530    100     12 XStringBundle
+    10530    100     14 chrome://global/content/bindings/progressmeter.xml
+    10530    100     18 file:///export/home/brendan/Lang/JavaScript/func_clock.html
+    10530    100     19 chrome://firebug/content/utils.js
+    10530    100     30 chrome://webdeveloper/content/common/preferences.js
+    10530    100     43 chrome://global/content/bindings/browser.xml
+    10530    100     44 chrome://global/content/bindings/tabbrowser.xml
+    10530    100     72 chrome://global/content/bindings/button.xml
+    10530    100     88 chrome://global/content/bindings/autocomplete.xml
+    10530    100    110 chrome://browser/content/browser.js
+    10530    100    121 chrome://webdeveloper/content/webdeveloper.js
+    10530    100    133 chrome://firebug/content/firebug.js
+    10530    100    162 chrome://global/content/globalOverlay.js
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/kill_example.txt b/external/cddl/dtracetoolkit/dist/Examples/kill_example.txt
new file mode 100644
index 0000000..f73621c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/kill_example.txt
@@ -0,0 +1,12 @@
+This is an example of the kill.d DTrace script,
+
+   # kill.d
+    FROM      COMMAND   SIG TO     RESULT   
+    2344         bash     2 3117   0
+    2344         bash     9 12345  -1
+   ^C
+
+In the above output, a kill -2 (Ctrl-C) was sent from the bash command
+to PID 3177. Then a kill -9 (SIGKILL) was sent to PID 12345 - which 
+returned a "-1" for failure.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/kstat_types_example.txt b/external/cddl/dtracetoolkit/dist/Examples/kstat_types_example.txt
new file mode 100644
index 0000000..8ffecbf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/kstat_types_example.txt
@@ -0,0 +1,1358 @@
+The following are demonstrations of the kstat_types.d script.
+
+
+Here kstat_types.d is used to trace the kstat activity of the vmstat command,
+
+   # ./kstat_types.d
+   CMD              CLASS            TYPE   MOD:INS:NAME
+   vmstat           .                raw    :0:kstat_headers
+   vmstat           .                raw    :0:kstat_headers
+   vmstat           misc             named  cpu_info:0:cpu_info0
+   vmstat           misc             named  cpu:0:vm
+   vmstat           misc             named  cpu:0:sys
+   vmstat           disk             io     cmdk:0:cmdk0
+   vmstat           disk             io     sd:0:sd0
+   vmstat           misc             raw    unix:0:sysinfo
+   vmstat           vm               raw    unix:0:vminfo
+   vmstat           misc             named  unix:0:dnlcstats
+   vmstat           misc             named  unix:0:system_misc
+   ^C
+
+Details of each lookup can be seen, including each disk device that
+was read.
+
+
+
+This is mpstat on a single CPU server,
+
+   # ./kstat_types.d
+   CMD              CLASS            TYPE   MOD:INS:NAME
+   mpstat           .                raw    :0:kstat_headers
+   mpstat           .                raw    :0:kstat_headers
+   mpstat           misc             named  cpu_info:0:cpu_info0
+   mpstat           misc             named  cpu:0:vm
+   mpstat           misc             named  cpu:0:sys
+   ^C
+
+The output shows that the focus was CPU statistics, as expected.
+
+
+
+The following has caught in.routed reading some statistics,
+
+   # ./kstat_types.d
+   CMD              CLASS            TYPE   MOD:INS:NAME
+   in.routed        .                raw    :0:kstat_headers
+   in.routed        .                raw    :0:kstat_headers
+   in.routed        net              named  lo:0:lo0
+   in.routed        .                raw    :0:kstat_headers
+   in.routed        .                raw    :0:kstat_headers
+   in.routed        net              named  rtls:0:rtls0
+   in.routed        .                raw    :0:kstat_headers
+   in.routed        .                raw    :0:kstat_headers
+   in.routed        net              named  rtls:0:rtls0
+   ^C
+
+Which shows that the network interfaces were checked.
+
+
+
+Finally, this is the kstats used when a "sar -u 1 1" command is run.
+ie, this thing,
+
+   $ sar -u 1 1
+   
+   SunOS jupiter 5.10 Generic i86pc    04/21/2006
+   
+   23:28:53    %usr    %sys    %wio   %idle
+   23:28:54       1       3       0      96
+
+sar actually forks a child "sadc" to do the lookups. sadc caused the
+following kstat lookups (I'm not making this up),
+
+   # ./kstat_types.d
+   CMD              CLASS            TYPE   MOD:INS:NAME
+   sadc             .                raw    :0:kstat_headers
+   sadc             .                raw    :0:kstat_headers
+   sadc             misc             named  unix:0:system_misc
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             vmem             named  vmem:16:kmem_oversize
+   sadc             ufs              named  ufs:0:inode_cache
+   sadc             misc             raw    unix:0:var
+   sadc             kmem_cache       named  unix:0:kmem_magazine_1
+   sadc             kmem_cache       named  unix:0:kmem_magazine_3
+   sadc             kmem_cache       named  unix:0:kmem_magazine_7
+   sadc             kmem_cache       named  unix:0:kmem_magazine_15
+   sadc             kmem_cache       named  unix:0:kmem_magazine_31
+   sadc             kmem_cache       named  unix:0:kmem_magazine_47
+   sadc             kmem_cache       named  unix:0:kmem_magazine_63
+   sadc             kmem_cache       named  unix:0:kmem_magazine_95
+   sadc             kmem_cache       named  unix:0:kmem_magazine_143
+   sadc             kmem_cache       named  unix:0:kmem_slab_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_audit_cache
+   sadc             kmem_cache       named  unix:0:kmem_va_4096
+   sadc             kmem_cache       named  unix:0:kmem_va_8192
+   sadc             kmem_cache       named  unix:0:kmem_va_12288
+   sadc             kmem_cache       named  unix:0:kmem_va_16384
+   sadc             kmem_cache       named  unix:0:kmem_va_20480
+   sadc             kmem_cache       named  unix:0:kmem_va_24576
+   sadc             kmem_cache       named  unix:0:kmem_va_28672
+   sadc             kmem_cache       named  unix:0:kmem_va_32768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16
+   sadc             kmem_cache       named  unix:0:kmem_alloc_24
+   sadc             kmem_cache       named  unix:0:kmem_alloc_32
+   sadc             kmem_cache       named  unix:0:kmem_alloc_40
+   sadc             kmem_cache       named  unix:0:kmem_alloc_48
+   sadc             kmem_cache       named  unix:0:kmem_alloc_56
+   sadc             kmem_cache       named  unix:0:kmem_alloc_64
+   sadc             kmem_cache       named  unix:0:kmem_alloc_80
+   sadc             kmem_cache       named  unix:0:kmem_alloc_96
+   sadc             kmem_cache       named  unix:0:kmem_alloc_112
+   sadc             kmem_cache       named  unix:0:kmem_alloc_128
+   sadc             kmem_cache       named  unix:0:kmem_alloc_160
+   sadc             kmem_cache       named  unix:0:kmem_alloc_192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_224
+   sadc             kmem_cache       named  unix:0:kmem_alloc_256
+   sadc             kmem_cache       named  unix:0:kmem_alloc_320
+   sadc             kmem_cache       named  unix:0:kmem_alloc_384
+   sadc             kmem_cache       named  unix:0:kmem_alloc_448
+   sadc             kmem_cache       named  unix:0:kmem_alloc_512
+   sadc             kmem_cache       named  unix:0:kmem_alloc_640
+   sadc             kmem_cache       named  unix:0:kmem_alloc_768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_896
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1152
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1344
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1600
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2048
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2688
+   sadc             kmem_cache       named  unix:0:kmem_alloc_4096
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_12288
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16384
+   sadc             kmem_cache       named  unix:0:streams_mblk
+   sadc             kmem_cache       named  unix:0:streams_dblk_64
+   sadc             kmem_cache       named  unix:0:streams_dblk_128
+   sadc             kmem_cache       named  unix:0:streams_dblk_320
+   sadc             kmem_cache       named  unix:0:streams_dblk_576
+   sadc             kmem_cache       named  unix:0:streams_dblk_1088
+   sadc             kmem_cache       named  unix:0:streams_dblk_1536
+   sadc             kmem_cache       named  unix:0:streams_dblk_1984
+   sadc             kmem_cache       named  unix:0:streams_dblk_2624
+   sadc             kmem_cache       named  unix:0:streams_dblk_3968
+   sadc             kmem_cache       named  unix:0:streams_dblk_8192
+   sadc             kmem_cache       named  unix:0:streams_dblk_12160
+   sadc             kmem_cache       named  unix:0:streams_dblk_16384
+   sadc             kmem_cache       named  unix:0:streams_dblk_20352
+   sadc             kmem_cache       named  unix:0:streams_dblk_24576
+   sadc             kmem_cache       named  unix:0:streams_dblk_28544
+   sadc             kmem_cache       named  unix:0:streams_dblk_32768
+   sadc             kmem_cache       named  unix:0:streams_dblk_36736
+   sadc             kmem_cache       named  unix:0:streams_dblk_40960
+   sadc             kmem_cache       named  unix:0:streams_dblk_44928
+   sadc             kmem_cache       named  unix:0:streams_dblk_49152
+   sadc             kmem_cache       named  unix:0:streams_dblk_53120
+   sadc             kmem_cache       named  unix:0:streams_dblk_57344
+   sadc             kmem_cache       named  unix:0:streams_dblk_61312
+   sadc             kmem_cache       named  unix:0:streams_dblk_65536
+   sadc             kmem_cache       named  unix:0:streams_dblk_69504
+   sadc             kmem_cache       named  unix:0:streams_dblk_73728
+   sadc             kmem_cache       named  unix:0:streams_dblk_esb
+   sadc             kmem_cache       named  unix:0:streams_fthdr
+   sadc             kmem_cache       named  unix:0:streams_ftblk
+   sadc             kmem_cache       named  unix:0:multidata
+   sadc             kmem_cache       named  unix:0:multidata_pdslab
+   sadc             kmem_cache       named  unix:0:multidata_pattbl
+   sadc             kmem_cache       named  unix:0:taskq_ent_cache
+   sadc             kmem_cache       named  unix:0:taskq_cache
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_4096
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_4096
+   sadc             kmem_cache       named  unix:0:id32_cache
+   sadc             kmem_cache       named  unix:0:bp_map_4096
+   sadc             kmem_cache       named  unix:0:bp_map_8192
+   sadc             kmem_cache       named  unix:0:bp_map_12288
+   sadc             kmem_cache       named  unix:0:bp_map_16384
+   sadc             kmem_cache       named  unix:0:bp_map_20480
+   sadc             kmem_cache       named  unix:0:bp_map_24576
+   sadc             kmem_cache       named  unix:0:bp_map_28672
+   sadc             kmem_cache       named  unix:0:bp_map_32768
+   sadc             kmem_cache       named  unix:0:mod_hash_entries
+   sadc             kmem_cache       named  unix:0:ipp_mod
+   sadc             kmem_cache       named  unix:0:ipp_action
+   sadc             kmem_cache       named  unix:0:ipp_packet
+   sadc             kmem_cache       named  unix:0:htable_t
+   sadc             kmem_cache       named  unix:0:hment_t
+   sadc             kmem_cache       named  unix:0:hat_t
+   sadc             kmem_cache       named  unix:0:HatHash
+   sadc             kmem_cache       named  unix:0:seg_cache
+   sadc             kmem_cache       named  unix:0:snode_cache
+   sadc             kmem_cache       named  unix:0:dv_node_cache
+   sadc             kmem_cache       named  unix:0:dev_info_node_cache
+   sadc             kmem_cache       named  unix:0:segkp_4096
+   sadc             kmem_cache       named  unix:0:segkp_8192
+   sadc             kmem_cache       named  unix:0:segkp_12288
+   sadc             kmem_cache       named  unix:0:segkp_16384
+   sadc             kmem_cache       named  unix:0:segkp_20480
+   sadc             kmem_cache       named  unix:0:thread_cache
+   sadc             kmem_cache       named  unix:0:lwp_cache
+   sadc             kmem_cache       named  unix:0:turnstile_cache
+   sadc             kmem_cache       named  unix:0:cred_cache
+   sadc             kmem_cache       named  unix:0:rctl_cache
+   sadc             kmem_cache       named  unix:0:rctl_val_cache
+   sadc             kmem_cache       named  unix:0:task_cache
+   sadc             kmem_cache       named  unix:0:cyclic_id_cache
+   sadc             kmem_cache       named  unix:0:dnlc_space_cache
+   sadc             kmem_cache       named  unix:0:vn_cache
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             kmem_cache       named  unix:0:stream_head_cache
+   sadc             kmem_cache       named  unix:0:queue_cache
+   sadc             kmem_cache       named  unix:0:syncq_cache
+   sadc             kmem_cache       named  unix:0:qband_cache
+   sadc             kmem_cache       named  unix:0:linkinfo_cache
+   sadc             kmem_cache       named  unix:0:ciputctrl_cache
+   sadc             kmem_cache       named  unix:0:serializer_cache
+   sadc             kmem_cache       named  unix:0:as_cache
+   sadc             kmem_cache       named  unix:0:marker_cache
+   sadc             kmem_cache       named  unix:0:anon_cache
+   sadc             kmem_cache       named  unix:0:anonmap_cache
+   sadc             kmem_cache       named  unix:0:segvn_cache
+   sadc             kmem_cache       named  unix:0:flk_edges
+   sadc             kmem_cache       named  unix:0:fdb_cache
+   sadc             kmem_cache       named  unix:0:timer_cache
+   sadc             kmem_cache       named  unix:0:physio_buf_cache
+   sadc             kmem_cache       named  unix:0:ufs_inode_cache
+   sadc             kmem_cache       named  unix:0:directio_buf_cache
+   sadc             kmem_cache       named  unix:0:lufs_save
+   sadc             kmem_cache       named  unix:0:lufs_bufs
+   sadc             kmem_cache       named  unix:0:lufs_mapentry_cache
+   sadc             misc             raw    cpu_stat:0:cpu_stat0
+   sadc             kmem_cache       named  unix:0:kcf_sreq_cache
+   sadc             kmem_cache       named  unix:0:kcf_areq_cache
+   sadc             kmem_cache       named  unix:0:kcf_context_cache
+   sadc             kmem_cache       named  unix:0:ipsec_actions
+   sadc             kmem_cache       named  unix:0:ipsec_selectors
+   sadc             kmem_cache       named  unix:0:ipsec_policy
+   sadc             kmem_cache       named  unix:0:ipsec_info
+   sadc             kmem_cache       named  unix:0:ip_minor_arena_1
+   sadc             kmem_cache       named  unix:0:ipcl_conn_cache
+   sadc             kmem_cache       named  unix:0:ipcl_tcpconn_cache
+   sadc             kmem_cache       named  unix:0:ire_cache
+   sadc             kmem_cache       named  unix:0:tcp_timercache
+   sadc             kmem_cache       named  unix:0:tcp_sack_info_cache
+   sadc             kmem_cache       named  unix:0:tcp_iphc_cache
+   sadc             kmem_cache       named  unix:0:squeue_cache
+   sadc             kmem_cache       named  unix:0:sctp_conn_cache
+   sadc             kmem_cache       named  unix:0:sctp_faddr_cache
+   sadc             kmem_cache       named  unix:0:sctp_set_cache
+   sadc             kmem_cache       named  unix:0:sctp_ftsn_set_cache
+   sadc             kmem_cache       named  unix:0:sctpsock
+   sadc             kmem_cache       named  unix:0:sctp_assoc
+   sadc             kmem_cache       named  unix:0:socktpi_cache
+   sadc             kmem_cache       named  unix:0:socktpi_unix_cache
+   sadc             kmem_cache       named  unix:0:ncafs_cache
+   sadc             kmem_cache       named  unix:0:process_cache
+   sadc             kmem_cache       named  unix:0:exacct_object_cache
+   sadc             kmem_cache       named  unix:0:fctl_cache
+   sadc             kmem_cache       named  unix:0:tl_cache
+   sadc             kmem_cache       named  unix:0:keysock_1
+   sadc             kmem_cache       named  unix:0:spdsock_1
+   sadc             kmem_cache       named  unix:0:fnode_cache
+   sadc             kmem_cache       named  unix:0:pipe_cache
+   sadc             kmem_cache       named  unix:0:namefs_inodes_1
+   sadc             kmem_cache       named  unix:0:port_cache
+   sadc             kmem_cache       named  unix:0:lnode_cache
+   sadc             kmem_cache       named  unix:0:clnt_clts_endpnt_cache
+   sadc             kmem_cache       named  unix:0:pty_map
+   sadc             kmem_cache       named  unix:0:sppptun_map
+   sadc             kmem_cache       named  unix:0:dtrace_state_cache
+   sadc             kmem_cache       named  unix:0:qif_head_cache
+   sadc             kmem_cache       named  unix:0:udp_minor_1
+   sadc             kmem_cache       named  unix:0:authkern_cache
+   sadc             kmem_cache       named  unix:0:authloopback_cache
+   sadc             kmem_cache       named  unix:0:authdes_cache_handle
+   sadc             kmem_cache       named  unix:0:rnode_cache
+   sadc             kmem_cache       named  unix:0:nfs_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle_cache
+   sadc             kmem_cache       named  unix:0:rnode4_cache
+   sadc             kmem_cache       named  unix:0:svnode_cache
+   sadc             kmem_cache       named  unix:0:nfs4_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle4_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4vals_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4_list_cache
+   sadc             kmem_cache       named  unix:0:NFS_idmap_cache
+   sadc             kmem_cache       named  unix:0:lm_vnode
+   sadc             kmem_cache       named  unix:0:lm_xprt
+   sadc             kmem_cache       named  unix:0:lm_sysid
+   sadc             kmem_cache       named  unix:0:lm_client
+   sadc             kmem_cache       named  unix:0:lm_async
+   sadc             kmem_cache       named  unix:0:lm_sleep
+   sadc             kmem_cache       named  unix:0:lm_config
+   sadc             kmem_cache       named  unix:0:nfslog_small_rec
+   sadc             kmem_cache       named  unix:0:nfslog_medium_rec
+   sadc             kmem_cache       named  unix:0:nfslog_large_rec
+   sadc             kmem_cache       named  unix:0:exi_cache_handle
+   sadc             kmem_cache       named  unix:0:Client_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenOwner_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:LockStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:Lockowner_entry_cache
+   sadc             kmem_cache       named  unix:0:File_entry_cache
+   sadc             kmem_cache       named  unix:0:DelegStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:ip_minor_1
+   sadc             kmem_cache       named  unix:0:ar_minor_1
+   sadc             kmem_cache       named  unix:0:icmp_minor_1
+   sadc             kmem_cache       named  unix:0:crypto_session_cache
+   sadc             kmem_cache       named  unix:0:fcsm_job_cache
+   sadc             kmem_cache       named  unix:0:sd0_cache
+   sadc             kmem_cache       named  unix:0:hsfs_hsnode_cache
+   sadc             kmem_cache       named  unix:0:kmem_magazine_1
+   sadc             misc             named  unix:0:system_misc
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             vmem             named  vmem:16:kmem_oversize
+   sadc             ufs              named  ufs:0:inode_cache
+   sadc             misc             raw    unix:0:var
+   sadc             kmem_cache       named  unix:0:kmem_magazine_1
+   sadc             kmem_cache       named  unix:0:kmem_magazine_3
+   sadc             kmem_cache       named  unix:0:kmem_magazine_7
+   sadc             kmem_cache       named  unix:0:kmem_magazine_15
+   sadc             kmem_cache       named  unix:0:kmem_magazine_31
+   sadc             kmem_cache       named  unix:0:kmem_magazine_47
+   sadc             kmem_cache       named  unix:0:kmem_magazine_63
+   sadc             kmem_cache       named  unix:0:kmem_magazine_95
+   sadc             kmem_cache       named  unix:0:kmem_magazine_143
+   sadc             kmem_cache       named  unix:0:kmem_slab_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_audit_cache
+   sadc             kmem_cache       named  unix:0:kmem_va_4096
+   sadc             kmem_cache       named  unix:0:kmem_va_8192
+   sadc             kmem_cache       named  unix:0:kmem_va_12288
+   sadc             kmem_cache       named  unix:0:kmem_va_16384
+   sadc             kmem_cache       named  unix:0:kmem_va_20480
+   sadc             kmem_cache       named  unix:0:kmem_va_24576
+   sadc             kmem_cache       named  unix:0:kmem_va_28672
+   sadc             kmem_cache       named  unix:0:kmem_va_32768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16
+   sadc             kmem_cache       named  unix:0:kmem_alloc_24
+   sadc             kmem_cache       named  unix:0:kmem_alloc_32
+   sadc             kmem_cache       named  unix:0:kmem_alloc_40
+   sadc             kmem_cache       named  unix:0:kmem_alloc_48
+   sadc             kmem_cache       named  unix:0:kmem_alloc_56
+   sadc             kmem_cache       named  unix:0:kmem_alloc_64
+   sadc             kmem_cache       named  unix:0:kmem_alloc_80
+   sadc             kmem_cache       named  unix:0:kmem_alloc_96
+   sadc             kmem_cache       named  unix:0:kmem_alloc_112
+   sadc             kmem_cache       named  unix:0:kmem_alloc_128
+   sadc             kmem_cache       named  unix:0:kmem_alloc_160
+   sadc             kmem_cache       named  unix:0:kmem_alloc_192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_224
+   sadc             kmem_cache       named  unix:0:kmem_alloc_256
+   sadc             kmem_cache       named  unix:0:kmem_alloc_320
+   sadc             kmem_cache       named  unix:0:kmem_alloc_384
+   sadc             kmem_cache       named  unix:0:kmem_alloc_448
+   sadc             kmem_cache       named  unix:0:kmem_alloc_512
+   sadc             kmem_cache       named  unix:0:kmem_alloc_640
+   sadc             kmem_cache       named  unix:0:kmem_alloc_768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_896
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1152
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1344
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1600
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2048
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2688
+   sadc             kmem_cache       named  unix:0:kmem_alloc_4096
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_12288
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16384
+   sadc             kmem_cache       named  unix:0:streams_mblk
+   sadc             kmem_cache       named  unix:0:streams_dblk_64
+   sadc             kmem_cache       named  unix:0:streams_dblk_128
+   sadc             kmem_cache       named  unix:0:streams_dblk_320
+   sadc             kmem_cache       named  unix:0:streams_dblk_576
+   sadc             kmem_cache       named  unix:0:streams_dblk_1088
+   sadc             kmem_cache       named  unix:0:streams_dblk_1536
+   sadc             kmem_cache       named  unix:0:streams_dblk_1984
+   sadc             kmem_cache       named  unix:0:streams_dblk_2624
+   sadc             kmem_cache       named  unix:0:streams_dblk_3968
+   sadc             kmem_cache       named  unix:0:streams_dblk_8192
+   sadc             kmem_cache       named  unix:0:streams_dblk_12160
+   sadc             kmem_cache       named  unix:0:streams_dblk_16384
+   sadc             kmem_cache       named  unix:0:streams_dblk_20352
+   sadc             kmem_cache       named  unix:0:streams_dblk_24576
+   sadc             kmem_cache       named  unix:0:streams_dblk_28544
+   sadc             kmem_cache       named  unix:0:streams_dblk_32768
+   sadc             kmem_cache       named  unix:0:streams_dblk_36736
+   sadc             kmem_cache       named  unix:0:streams_dblk_40960
+   sadc             kmem_cache       named  unix:0:streams_dblk_44928
+   sadc             kmem_cache       named  unix:0:streams_dblk_49152
+   sadc             kmem_cache       named  unix:0:streams_dblk_53120
+   sadc             kmem_cache       named  unix:0:streams_dblk_57344
+   sadc             kmem_cache       named  unix:0:streams_dblk_61312
+   sadc             kmem_cache       named  unix:0:streams_dblk_65536
+   sadc             kmem_cache       named  unix:0:streams_dblk_69504
+   sadc             kmem_cache       named  unix:0:streams_dblk_73728
+   sadc             kmem_cache       named  unix:0:streams_dblk_esb
+   sadc             kmem_cache       named  unix:0:streams_fthdr
+   sadc             kmem_cache       named  unix:0:streams_ftblk
+   sadc             kmem_cache       named  unix:0:multidata
+   sadc             kmem_cache       named  unix:0:multidata_pdslab
+   sadc             kmem_cache       named  unix:0:multidata_pattbl
+   sadc             kmem_cache       named  unix:0:taskq_ent_cache
+   sadc             kmem_cache       named  unix:0:taskq_cache
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_4096
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_4096
+   sadc             kmem_cache       named  unix:0:id32_cache
+   sadc             kmem_cache       named  unix:0:bp_map_4096
+   sadc             kmem_cache       named  unix:0:bp_map_8192
+   sadc             kmem_cache       named  unix:0:bp_map_12288
+   sadc             kmem_cache       named  unix:0:bp_map_16384
+   sadc             kmem_cache       named  unix:0:bp_map_20480
+   sadc             kmem_cache       named  unix:0:bp_map_24576
+   sadc             kmem_cache       named  unix:0:bp_map_28672
+   sadc             kmem_cache       named  unix:0:bp_map_32768
+   sadc             kmem_cache       named  unix:0:mod_hash_entries
+   sadc             kmem_cache       named  unix:0:ipp_mod
+   sadc             kmem_cache       named  unix:0:ipp_action
+   sadc             kmem_cache       named  unix:0:ipp_packet
+   sadc             kmem_cache       named  unix:0:htable_t
+   sadc             kmem_cache       named  unix:0:hment_t
+   sadc             kmem_cache       named  unix:0:hat_t
+   sadc             kmem_cache       named  unix:0:HatHash
+   sadc             kmem_cache       named  unix:0:seg_cache
+   sadc             kmem_cache       named  unix:0:snode_cache
+   sadc             kmem_cache       named  unix:0:dv_node_cache
+   sadc             kmem_cache       named  unix:0:dev_info_node_cache
+   sadc             kmem_cache       named  unix:0:segkp_4096
+   sadc             kmem_cache       named  unix:0:segkp_8192
+   sadc             kmem_cache       named  unix:0:segkp_12288
+   sadc             kmem_cache       named  unix:0:segkp_16384
+   sadc             kmem_cache       named  unix:0:segkp_20480
+   sadc             kmem_cache       named  unix:0:thread_cache
+   sadc             kmem_cache       named  unix:0:lwp_cache
+   sadc             kmem_cache       named  unix:0:turnstile_cache
+   sadc             kmem_cache       named  unix:0:cred_cache
+   sadc             kmem_cache       named  unix:0:rctl_cache
+   sadc             kmem_cache       named  unix:0:rctl_val_cache
+   sadc             kmem_cache       named  unix:0:task_cache
+   sadc             kmem_cache       named  unix:0:cyclic_id_cache
+   sadc             kmem_cache       named  unix:0:dnlc_space_cache
+   sadc             kmem_cache       named  unix:0:vn_cache
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             kmem_cache       named  unix:0:stream_head_cache
+   sadc             kmem_cache       named  unix:0:queue_cache
+   sadc             kmem_cache       named  unix:0:syncq_cache
+   sadc             kmem_cache       named  unix:0:qband_cache
+   sadc             kmem_cache       named  unix:0:linkinfo_cache
+   sadc             kmem_cache       named  unix:0:ciputctrl_cache
+   sadc             kmem_cache       named  unix:0:serializer_cache
+   sadc             kmem_cache       named  unix:0:as_cache
+   sadc             kmem_cache       named  unix:0:marker_cache
+   sadc             kmem_cache       named  unix:0:anon_cache
+   sadc             kmem_cache       named  unix:0:anonmap_cache
+   sadc             kmem_cache       named  unix:0:segvn_cache
+   sadc             kmem_cache       named  unix:0:flk_edges
+   sadc             kmem_cache       named  unix:0:fdb_cache
+   sadc             kmem_cache       named  unix:0:timer_cache
+   sadc             kmem_cache       named  unix:0:physio_buf_cache
+   sadc             kmem_cache       named  unix:0:ufs_inode_cache
+   sadc             kmem_cache       named  unix:0:directio_buf_cache
+   sadc             kmem_cache       named  unix:0:lufs_save
+   sadc             kmem_cache       named  unix:0:lufs_bufs
+   sadc             kmem_cache       named  unix:0:lufs_mapentry_cache
+   sadc             misc             raw    cpu_stat:0:cpu_stat0
+   sadc             kmem_cache       named  unix:0:kcf_sreq_cache
+   sadc             kmem_cache       named  unix:0:kcf_areq_cache
+   sadc             kmem_cache       named  unix:0:kcf_context_cache
+   sadc             kmem_cache       named  unix:0:ipsec_actions
+   sadc             kmem_cache       named  unix:0:ipsec_selectors
+   sadc             kmem_cache       named  unix:0:ipsec_policy
+   sadc             kmem_cache       named  unix:0:ipsec_info
+   sadc             kmem_cache       named  unix:0:ip_minor_arena_1
+   sadc             kmem_cache       named  unix:0:ipcl_conn_cache
+   sadc             kmem_cache       named  unix:0:ipcl_tcpconn_cache
+   sadc             kmem_cache       named  unix:0:ire_cache
+   sadc             kmem_cache       named  unix:0:tcp_timercache
+   sadc             kmem_cache       named  unix:0:tcp_sack_info_cache
+   sadc             kmem_cache       named  unix:0:tcp_iphc_cache
+   sadc             kmem_cache       named  unix:0:squeue_cache
+   sadc             kmem_cache       named  unix:0:sctp_conn_cache
+   sadc             kmem_cache       named  unix:0:sctp_faddr_cache
+   sadc             kmem_cache       named  unix:0:sctp_set_cache
+   sadc             kmem_cache       named  unix:0:sctp_ftsn_set_cache
+   sadc             kmem_cache       named  unix:0:sctpsock
+   sadc             kmem_cache       named  unix:0:sctp_assoc
+   sadc             kmem_cache       named  unix:0:socktpi_cache
+   sadc             kmem_cache       named  unix:0:socktpi_unix_cache
+   sadc             kmem_cache       named  unix:0:ncafs_cache
+   sadc             kmem_cache       named  unix:0:process_cache
+   sadc             kmem_cache       named  unix:0:exacct_object_cache
+   sadc             kmem_cache       named  unix:0:fctl_cache
+   sadc             kmem_cache       named  unix:0:tl_cache
+   sadc             kmem_cache       named  unix:0:keysock_1
+   sadc             kmem_cache       named  unix:0:spdsock_1
+   sadc             kmem_cache       named  unix:0:fnode_cache
+   sadc             kmem_cache       named  unix:0:pipe_cache
+   sadc             kmem_cache       named  unix:0:namefs_inodes_1
+   sadc             kmem_cache       named  unix:0:port_cache
+   sadc             kmem_cache       named  unix:0:lnode_cache
+   sadc             kmem_cache       named  unix:0:clnt_clts_endpnt_cache
+   sadc             kmem_cache       named  unix:0:pty_map
+   sadc             kmem_cache       named  unix:0:sppptun_map
+   sadc             kmem_cache       named  unix:0:dtrace_state_cache
+   sadc             kmem_cache       named  unix:0:qif_head_cache
+   sadc             kmem_cache       named  unix:0:udp_minor_1
+   sadc             kmem_cache       named  unix:0:authkern_cache
+   sadc             kmem_cache       named  unix:0:authloopback_cache
+   sadc             kmem_cache       named  unix:0:authdes_cache_handle
+   sadc             kmem_cache       named  unix:0:rnode_cache
+   sadc             kmem_cache       named  unix:0:nfs_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle_cache
+   sadc             kmem_cache       named  unix:0:rnode4_cache
+   sadc             kmem_cache       named  unix:0:svnode_cache
+   sadc             kmem_cache       named  unix:0:nfs4_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle4_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4vals_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4_list_cache
+   sadc             kmem_cache       named  unix:0:NFS_idmap_cache
+   sadc             kmem_cache       named  unix:0:lm_vnode
+   sadc             kmem_cache       named  unix:0:lm_xprt
+   sadc             kmem_cache       named  unix:0:lm_sysid
+   sadc             kmem_cache       named  unix:0:lm_client
+   sadc             kmem_cache       named  unix:0:lm_async
+   sadc             kmem_cache       named  unix:0:lm_sleep
+   sadc             kmem_cache       named  unix:0:lm_config
+   sadc             kmem_cache       named  unix:0:nfslog_small_rec
+   sadc             kmem_cache       named  unix:0:nfslog_medium_rec
+   sadc             kmem_cache       named  unix:0:nfslog_large_rec
+   sadc             kmem_cache       named  unix:0:exi_cache_handle
+   sadc             kmem_cache       named  unix:0:Client_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenOwner_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:LockStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:Lockowner_entry_cache
+   sadc             kmem_cache       named  unix:0:File_entry_cache
+   sadc             kmem_cache       named  unix:0:DelegStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:ip_minor_1
+   sadc             kmem_cache       named  unix:0:ar_minor_1
+   sadc             kmem_cache       named  unix:0:icmp_minor_1
+   sadc             kmem_cache       named  unix:0:crypto_session_cache
+   sadc             kmem_cache       named  unix:0:fcsm_job_cache
+   sadc             kmem_cache       named  unix:0:sd0_cache
+   sadc             kmem_cache       named  unix:0:hsfs_hsnode_cache
+   sadc             kmem_cache       named  unix:0:kmem_magazine_1
+   sadc             misc             raw    unix:0:sysinfo
+   sadc             vm               raw    unix:0:vminfo
+   sadc             misc             named  unix:0:system_misc
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             ufs              named  ufs:0:inode_cache
+   sadc             misc             raw    cpu_stat:0:cpu_stat0
+   sadc             kmem_cache       named  unix:0:kmem_magazine_1
+   sadc             kmem_cache       named  unix:0:kmem_magazine_3
+   sadc             kmem_cache       named  unix:0:kmem_magazine_7
+   sadc             kmem_cache       named  unix:0:kmem_magazine_15
+   sadc             kmem_cache       named  unix:0:kmem_magazine_31
+   sadc             kmem_cache       named  unix:0:kmem_magazine_47
+   sadc             kmem_cache       named  unix:0:kmem_magazine_63
+   sadc             kmem_cache       named  unix:0:kmem_magazine_95
+   sadc             kmem_cache       named  unix:0:kmem_magazine_143
+   sadc             kmem_cache       named  unix:0:kmem_slab_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_audit_cache
+   sadc             kmem_cache       named  unix:0:kmem_va_4096
+   sadc             kmem_cache       named  unix:0:kmem_va_8192
+   sadc             kmem_cache       named  unix:0:kmem_va_12288
+   sadc             kmem_cache       named  unix:0:kmem_va_16384
+   sadc             kmem_cache       named  unix:0:kmem_va_20480
+   sadc             kmem_cache       named  unix:0:kmem_va_24576
+   sadc             kmem_cache       named  unix:0:kmem_va_28672
+   sadc             kmem_cache       named  unix:0:kmem_va_32768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16
+   sadc             kmem_cache       named  unix:0:kmem_alloc_24
+   sadc             kmem_cache       named  unix:0:kmem_alloc_32
+   sadc             kmem_cache       named  unix:0:kmem_alloc_40
+   sadc             kmem_cache       named  unix:0:kmem_alloc_48
+   sadc             kmem_cache       named  unix:0:kmem_alloc_56
+   sadc             kmem_cache       named  unix:0:kmem_alloc_64
+   sadc             kmem_cache       named  unix:0:kmem_alloc_80
+   sadc             kmem_cache       named  unix:0:kmem_alloc_96
+   sadc             kmem_cache       named  unix:0:kmem_alloc_112
+   sadc             kmem_cache       named  unix:0:kmem_alloc_128
+   sadc             kmem_cache       named  unix:0:kmem_alloc_160
+   sadc             kmem_cache       named  unix:0:kmem_alloc_192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_224
+   sadc             kmem_cache       named  unix:0:kmem_alloc_256
+   sadc             kmem_cache       named  unix:0:kmem_alloc_320
+   sadc             kmem_cache       named  unix:0:kmem_alloc_384
+   sadc             kmem_cache       named  unix:0:kmem_alloc_448
+   sadc             kmem_cache       named  unix:0:kmem_alloc_512
+   sadc             kmem_cache       named  unix:0:kmem_alloc_640
+   sadc             kmem_cache       named  unix:0:kmem_alloc_768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_896
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1152
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1344
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1600
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2048
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2688
+   sadc             kmem_cache       named  unix:0:kmem_alloc_4096
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_12288
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16384
+   sadc             kmem_cache       named  unix:0:streams_mblk
+   sadc             kmem_cache       named  unix:0:streams_dblk_64
+   sadc             kmem_cache       named  unix:0:streams_dblk_128
+   sadc             kmem_cache       named  unix:0:streams_dblk_320
+   sadc             kmem_cache       named  unix:0:streams_dblk_576
+   sadc             kmem_cache       named  unix:0:streams_dblk_1088
+   sadc             kmem_cache       named  unix:0:streams_dblk_1536
+   sadc             kmem_cache       named  unix:0:streams_dblk_1984
+   sadc             kmem_cache       named  unix:0:streams_dblk_2624
+   sadc             kmem_cache       named  unix:0:streams_dblk_3968
+   sadc             kmem_cache       named  unix:0:streams_dblk_8192
+   sadc             kmem_cache       named  unix:0:streams_dblk_12160
+   sadc             kmem_cache       named  unix:0:streams_dblk_16384
+   sadc             kmem_cache       named  unix:0:streams_dblk_20352
+   sadc             kmem_cache       named  unix:0:streams_dblk_24576
+   sadc             kmem_cache       named  unix:0:streams_dblk_28544
+   sadc             kmem_cache       named  unix:0:streams_dblk_32768
+   sadc             kmem_cache       named  unix:0:streams_dblk_36736
+   sadc             kmem_cache       named  unix:0:streams_dblk_40960
+   sadc             kmem_cache       named  unix:0:streams_dblk_44928
+   sadc             kmem_cache       named  unix:0:streams_dblk_49152
+   sadc             kmem_cache       named  unix:0:streams_dblk_53120
+   sadc             kmem_cache       named  unix:0:streams_dblk_57344
+   sadc             kmem_cache       named  unix:0:streams_dblk_61312
+   sadc             kmem_cache       named  unix:0:streams_dblk_65536
+   sadc             kmem_cache       named  unix:0:streams_dblk_69504
+   sadc             kmem_cache       named  unix:0:streams_dblk_73728
+   sadc             kmem_cache       named  unix:0:streams_dblk_esb
+   sadc             kmem_cache       named  unix:0:streams_fthdr
+   sadc             kmem_cache       named  unix:0:streams_ftblk
+   sadc             kmem_cache       named  unix:0:multidata
+   sadc             kmem_cache       named  unix:0:multidata_pdslab
+   sadc             kmem_cache       named  unix:0:multidata_pattbl
+   sadc             kmem_cache       named  unix:0:taskq_ent_cache
+   sadc             kmem_cache       named  unix:0:taskq_cache
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_4096
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_4096
+   sadc             kmem_cache       named  unix:0:id32_cache
+   sadc             kmem_cache       named  unix:0:bp_map_4096
+   sadc             kmem_cache       named  unix:0:bp_map_8192
+   sadc             kmem_cache       named  unix:0:bp_map_12288
+   sadc             kmem_cache       named  unix:0:bp_map_16384
+   sadc             kmem_cache       named  unix:0:bp_map_20480
+   sadc             kmem_cache       named  unix:0:bp_map_24576
+   sadc             kmem_cache       named  unix:0:bp_map_28672
+   sadc             kmem_cache       named  unix:0:bp_map_32768
+   sadc             kmem_cache       named  unix:0:mod_hash_entries
+   sadc             kmem_cache       named  unix:0:ipp_mod
+   sadc             kmem_cache       named  unix:0:ipp_action
+   sadc             kmem_cache       named  unix:0:ipp_packet
+   sadc             kmem_cache       named  unix:0:htable_t
+   sadc             kmem_cache       named  unix:0:hment_t
+   sadc             kmem_cache       named  unix:0:hat_t
+   sadc             kmem_cache       named  unix:0:HatHash
+   sadc             kmem_cache       named  unix:0:seg_cache
+   sadc             kmem_cache       named  unix:0:snode_cache
+   sadc             kmem_cache       named  unix:0:dv_node_cache
+   sadc             kmem_cache       named  unix:0:dev_info_node_cache
+   sadc             kmem_cache       named  unix:0:segkp_4096
+   sadc             kmem_cache       named  unix:0:segkp_8192
+   sadc             kmem_cache       named  unix:0:segkp_12288
+   sadc             kmem_cache       named  unix:0:segkp_16384
+   sadc             kmem_cache       named  unix:0:segkp_20480
+   sadc             kmem_cache       named  unix:0:thread_cache
+   sadc             kmem_cache       named  unix:0:lwp_cache
+   sadc             kmem_cache       named  unix:0:turnstile_cache
+   sadc             kmem_cache       named  unix:0:cred_cache
+   sadc             kmem_cache       named  unix:0:rctl_cache
+   sadc             kmem_cache       named  unix:0:rctl_val_cache
+   sadc             kmem_cache       named  unix:0:task_cache
+   sadc             kmem_cache       named  unix:0:cyclic_id_cache
+   sadc             kmem_cache       named  unix:0:dnlc_space_cache
+   sadc             kmem_cache       named  unix:0:vn_cache
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             kmem_cache       named  unix:0:stream_head_cache
+   sadc             kmem_cache       named  unix:0:queue_cache
+   sadc             kmem_cache       named  unix:0:syncq_cache
+   sadc             kmem_cache       named  unix:0:qband_cache
+   sadc             kmem_cache       named  unix:0:linkinfo_cache
+   sadc             kmem_cache       named  unix:0:ciputctrl_cache
+   sadc             kmem_cache       named  unix:0:serializer_cache
+   sadc             kmem_cache       named  unix:0:as_cache
+   sadc             kmem_cache       named  unix:0:marker_cache
+   sadc             kmem_cache       named  unix:0:anon_cache
+   sadc             kmem_cache       named  unix:0:anonmap_cache
+   sadc             kmem_cache       named  unix:0:segvn_cache
+   sadc             kmem_cache       named  unix:0:flk_edges
+   sadc             kmem_cache       named  unix:0:fdb_cache
+   sadc             kmem_cache       named  unix:0:timer_cache
+   sadc             kmem_cache       named  unix:0:physio_buf_cache
+   sadc             kmem_cache       named  unix:0:ufs_inode_cache
+   sadc             kmem_cache       named  unix:0:directio_buf_cache
+   sadc             kmem_cache       named  unix:0:lufs_save
+   sadc             kmem_cache       named  unix:0:lufs_bufs
+   sadc             kmem_cache       named  unix:0:lufs_mapentry_cache
+   sadc             kmem_cache       named  unix:0:kcf_sreq_cache
+   sadc             kmem_cache       named  unix:0:kcf_areq_cache
+   sadc             kmem_cache       named  unix:0:kcf_context_cache
+   sadc             kmem_cache       named  unix:0:ipsec_actions
+   sadc             kmem_cache       named  unix:0:ipsec_selectors
+   sadc             kmem_cache       named  unix:0:ipsec_policy
+   sadc             kmem_cache       named  unix:0:ipsec_info
+   sadc             kmem_cache       named  unix:0:ip_minor_arena_1
+   sadc             kmem_cache       named  unix:0:ipcl_conn_cache
+   sadc             kmem_cache       named  unix:0:ipcl_tcpconn_cache
+   sadc             kmem_cache       named  unix:0:ire_cache
+   sadc             kmem_cache       named  unix:0:tcp_timercache
+   sadc             kmem_cache       named  unix:0:tcp_sack_info_cache
+   sadc             kmem_cache       named  unix:0:tcp_iphc_cache
+   sadc             kmem_cache       named  unix:0:squeue_cache
+   sadc             kmem_cache       named  unix:0:sctp_conn_cache
+   sadc             kmem_cache       named  unix:0:sctp_faddr_cache
+   sadc             kmem_cache       named  unix:0:sctp_set_cache
+   sadc             kmem_cache       named  unix:0:sctp_ftsn_set_cache
+   sadc             kmem_cache       named  unix:0:sctpsock
+   sadc             kmem_cache       named  unix:0:sctp_assoc
+   sadc             kmem_cache       named  unix:0:socktpi_cache
+   sadc             kmem_cache       named  unix:0:socktpi_unix_cache
+   sadc             kmem_cache       named  unix:0:ncafs_cache
+   sadc             kmem_cache       named  unix:0:process_cache
+   sadc             kmem_cache       named  unix:0:exacct_object_cache
+   sadc             kmem_cache       named  unix:0:fctl_cache
+   sadc             kmem_cache       named  unix:0:tl_cache
+   sadc             kmem_cache       named  unix:0:keysock_1
+   sadc             kmem_cache       named  unix:0:spdsock_1
+   sadc             kmem_cache       named  unix:0:fnode_cache
+   sadc             kmem_cache       named  unix:0:pipe_cache
+   sadc             kmem_cache       named  unix:0:namefs_inodes_1
+   sadc             kmem_cache       named  unix:0:port_cache
+   sadc             kmem_cache       named  unix:0:lnode_cache
+   sadc             kmem_cache       named  unix:0:clnt_clts_endpnt_cache
+   sadc             kmem_cache       named  unix:0:pty_map
+   sadc             kmem_cache       named  unix:0:sppptun_map
+   sadc             kmem_cache       named  unix:0:dtrace_state_cache
+   sadc             kmem_cache       named  unix:0:qif_head_cache
+   sadc             kmem_cache       named  unix:0:udp_minor_1
+   sadc             kmem_cache       named  unix:0:authkern_cache
+   sadc             kmem_cache       named  unix:0:authloopback_cache
+   sadc             kmem_cache       named  unix:0:authdes_cache_handle
+   sadc             kmem_cache       named  unix:0:rnode_cache
+   sadc             kmem_cache       named  unix:0:nfs_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle_cache
+   sadc             kmem_cache       named  unix:0:rnode4_cache
+   sadc             kmem_cache       named  unix:0:svnode_cache
+   sadc             kmem_cache       named  unix:0:nfs4_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle4_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4vals_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4_list_cache
+   sadc             kmem_cache       named  unix:0:NFS_idmap_cache
+   sadc             kmem_cache       named  unix:0:lm_vnode
+   sadc             kmem_cache       named  unix:0:lm_xprt
+   sadc             kmem_cache       named  unix:0:lm_sysid
+   sadc             kmem_cache       named  unix:0:lm_client
+   sadc             kmem_cache       named  unix:0:lm_async
+   sadc             kmem_cache       named  unix:0:lm_sleep
+   sadc             kmem_cache       named  unix:0:lm_config
+   sadc             kmem_cache       named  unix:0:nfslog_small_rec
+   sadc             kmem_cache       named  unix:0:nfslog_medium_rec
+   sadc             kmem_cache       named  unix:0:nfslog_large_rec
+   sadc             kmem_cache       named  unix:0:exi_cache_handle
+   sadc             kmem_cache       named  unix:0:Client_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenOwner_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:LockStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:Lockowner_entry_cache
+   sadc             kmem_cache       named  unix:0:File_entry_cache
+   sadc             kmem_cache       named  unix:0:DelegStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:ip_minor_1
+   sadc             kmem_cache       named  unix:0:ar_minor_1
+   sadc             kmem_cache       named  unix:0:icmp_minor_1
+   sadc             kmem_cache       named  unix:0:crypto_session_cache
+   sadc             kmem_cache       named  unix:0:fcsm_job_cache
+   sadc             kmem_cache       named  unix:0:sd0_cache
+   sadc             kmem_cache       named  unix:0:hsfs_hsnode_cache
+   sadc             vmem             named  vmem:16:kmem_oversize
+   sadc             disk             io     cmdk:0:cmdk0
+   sadc             nfs              io     nfs:1:nfs1
+   sadc             disk             io     sd:0:sd0
+   sadc             usb_byte_count   io     usba:0:uhci0,bulk
+   sadc             usb_byte_count   io     usba:0:uhci0,ctrl
+   sadc             usb_byte_count   io     usba:0:uhci0,intr
+   sadc             usb_byte_count   io     usba:0:uhci0,isoch
+   sadc             usb_byte_count   io     usba:0:uhci0,total
+   sadc             usb_byte_count   io     usba:1:uhci1,bulk
+   sadc             usb_byte_count   io     usba:1:uhci1,ctrl
+   sadc             usb_byte_count   io     usba:1:uhci1,intr
+   sadc             usb_byte_count   io     usba:1:uhci1,isoch
+   sadc             usb_byte_count   io     usba:1:uhci1,total
+   sadc             misc             named  unix:0:system_misc
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             vmem             named  vmem:16:kmem_oversize
+   sadc             ufs              named  ufs:0:inode_cache
+   sadc             misc             raw    unix:0:var
+   sadc             kmem_cache       named  unix:0:kmem_magazine_1
+   sadc             kmem_cache       named  unix:0:kmem_magazine_3
+   sadc             kmem_cache       named  unix:0:kmem_magazine_7
+   sadc             kmem_cache       named  unix:0:kmem_magazine_15
+   sadc             kmem_cache       named  unix:0:kmem_magazine_31
+   sadc             kmem_cache       named  unix:0:kmem_magazine_47
+   sadc             kmem_cache       named  unix:0:kmem_magazine_63
+   sadc             kmem_cache       named  unix:0:kmem_magazine_95
+   sadc             kmem_cache       named  unix:0:kmem_magazine_143
+   sadc             kmem_cache       named  unix:0:kmem_slab_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_audit_cache
+   sadc             kmem_cache       named  unix:0:kmem_va_4096
+   sadc             kmem_cache       named  unix:0:kmem_va_8192
+   sadc             kmem_cache       named  unix:0:kmem_va_12288
+   sadc             kmem_cache       named  unix:0:kmem_va_16384
+   sadc             kmem_cache       named  unix:0:kmem_va_20480
+   sadc             kmem_cache       named  unix:0:kmem_va_24576
+   sadc             kmem_cache       named  unix:0:kmem_va_28672
+   sadc             kmem_cache       named  unix:0:kmem_va_32768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16
+   sadc             kmem_cache       named  unix:0:kmem_alloc_24
+   sadc             kmem_cache       named  unix:0:kmem_alloc_32
+   sadc             kmem_cache       named  unix:0:kmem_alloc_40
+   sadc             kmem_cache       named  unix:0:kmem_alloc_48
+   sadc             kmem_cache       named  unix:0:kmem_alloc_56
+   sadc             kmem_cache       named  unix:0:kmem_alloc_64
+   sadc             kmem_cache       named  unix:0:kmem_alloc_80
+   sadc             kmem_cache       named  unix:0:kmem_alloc_96
+   sadc             kmem_cache       named  unix:0:kmem_alloc_112
+   sadc             kmem_cache       named  unix:0:kmem_alloc_128
+   sadc             kmem_cache       named  unix:0:kmem_alloc_160
+   sadc             kmem_cache       named  unix:0:kmem_alloc_192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_224
+   sadc             kmem_cache       named  unix:0:kmem_alloc_256
+   sadc             kmem_cache       named  unix:0:kmem_alloc_320
+   sadc             kmem_cache       named  unix:0:kmem_alloc_384
+   sadc             kmem_cache       named  unix:0:kmem_alloc_448
+   sadc             kmem_cache       named  unix:0:kmem_alloc_512
+   sadc             kmem_cache       named  unix:0:kmem_alloc_640
+   sadc             kmem_cache       named  unix:0:kmem_alloc_768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_896
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1152
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1344
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1600
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2048
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2688
+   sadc             kmem_cache       named  unix:0:kmem_alloc_4096
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_12288
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16384
+   sadc             kmem_cache       named  unix:0:streams_mblk
+   sadc             kmem_cache       named  unix:0:streams_dblk_64
+   sadc             kmem_cache       named  unix:0:streams_dblk_128
+   sadc             kmem_cache       named  unix:0:streams_dblk_320
+   sadc             kmem_cache       named  unix:0:streams_dblk_576
+   sadc             kmem_cache       named  unix:0:streams_dblk_1088
+   sadc             kmem_cache       named  unix:0:streams_dblk_1536
+   sadc             kmem_cache       named  unix:0:streams_dblk_1984
+   sadc             kmem_cache       named  unix:0:streams_dblk_2624
+   sadc             kmem_cache       named  unix:0:streams_dblk_3968
+   sadc             kmem_cache       named  unix:0:streams_dblk_8192
+   sadc             kmem_cache       named  unix:0:streams_dblk_12160
+   sadc             kmem_cache       named  unix:0:streams_dblk_16384
+   sadc             kmem_cache       named  unix:0:streams_dblk_20352
+   sadc             kmem_cache       named  unix:0:streams_dblk_24576
+   sadc             kmem_cache       named  unix:0:streams_dblk_28544
+   sadc             kmem_cache       named  unix:0:streams_dblk_32768
+   sadc             kmem_cache       named  unix:0:streams_dblk_36736
+   sadc             kmem_cache       named  unix:0:streams_dblk_40960
+   sadc             kmem_cache       named  unix:0:streams_dblk_44928
+   sadc             kmem_cache       named  unix:0:streams_dblk_49152
+   sadc             kmem_cache       named  unix:0:streams_dblk_53120
+   sadc             kmem_cache       named  unix:0:streams_dblk_57344
+   sadc             kmem_cache       named  unix:0:streams_dblk_61312
+   sadc             kmem_cache       named  unix:0:streams_dblk_65536
+   sadc             kmem_cache       named  unix:0:streams_dblk_69504
+   sadc             kmem_cache       named  unix:0:streams_dblk_73728
+   sadc             kmem_cache       named  unix:0:streams_dblk_esb
+   sadc             kmem_cache       named  unix:0:streams_fthdr
+   sadc             kmem_cache       named  unix:0:streams_ftblk
+   sadc             kmem_cache       named  unix:0:multidata
+   sadc             kmem_cache       named  unix:0:multidata_pdslab
+   sadc             kmem_cache       named  unix:0:multidata_pattbl
+   sadc             kmem_cache       named  unix:0:taskq_ent_cache
+   sadc             kmem_cache       named  unix:0:taskq_cache
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_4096
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_4096
+   sadc             kmem_cache       named  unix:0:id32_cache
+   sadc             kmem_cache       named  unix:0:bp_map_4096
+   sadc             kmem_cache       named  unix:0:bp_map_8192
+   sadc             kmem_cache       named  unix:0:bp_map_12288
+   sadc             kmem_cache       named  unix:0:bp_map_16384
+   sadc             kmem_cache       named  unix:0:bp_map_20480
+   sadc             kmem_cache       named  unix:0:bp_map_24576
+   sadc             kmem_cache       named  unix:0:bp_map_28672
+   sadc             kmem_cache       named  unix:0:bp_map_32768
+   sadc             kmem_cache       named  unix:0:mod_hash_entries
+   sadc             kmem_cache       named  unix:0:ipp_mod
+   sadc             kmem_cache       named  unix:0:ipp_action
+   sadc             kmem_cache       named  unix:0:ipp_packet
+   sadc             kmem_cache       named  unix:0:htable_t
+   sadc             kmem_cache       named  unix:0:hment_t
+   sadc             kmem_cache       named  unix:0:hat_t
+   sadc             kmem_cache       named  unix:0:HatHash
+   sadc             kmem_cache       named  unix:0:seg_cache
+   sadc             kmem_cache       named  unix:0:snode_cache
+   sadc             kmem_cache       named  unix:0:dv_node_cache
+   sadc             kmem_cache       named  unix:0:dev_info_node_cache
+   sadc             kmem_cache       named  unix:0:segkp_4096
+   sadc             kmem_cache       named  unix:0:segkp_8192
+   sadc             kmem_cache       named  unix:0:segkp_12288
+   sadc             kmem_cache       named  unix:0:segkp_16384
+   sadc             kmem_cache       named  unix:0:segkp_20480
+   sadc             kmem_cache       named  unix:0:thread_cache
+   sadc             kmem_cache       named  unix:0:lwp_cache
+   sadc             kmem_cache       named  unix:0:turnstile_cache
+   sadc             kmem_cache       named  unix:0:cred_cache
+   sadc             kmem_cache       named  unix:0:rctl_cache
+   sadc             kmem_cache       named  unix:0:rctl_val_cache
+   sadc             kmem_cache       named  unix:0:task_cache
+   sadc             kmem_cache       named  unix:0:cyclic_id_cache
+   sadc             kmem_cache       named  unix:0:dnlc_space_cache
+   sadc             kmem_cache       named  unix:0:vn_cache
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             kmem_cache       named  unix:0:stream_head_cache
+   sadc             kmem_cache       named  unix:0:queue_cache
+   sadc             kmem_cache       named  unix:0:syncq_cache
+   sadc             kmem_cache       named  unix:0:qband_cache
+   sadc             kmem_cache       named  unix:0:linkinfo_cache
+   sadc             kmem_cache       named  unix:0:ciputctrl_cache
+   sadc             kmem_cache       named  unix:0:serializer_cache
+   sadc             kmem_cache       named  unix:0:as_cache
+   sadc             kmem_cache       named  unix:0:marker_cache
+   sadc             kmem_cache       named  unix:0:anon_cache
+   sadc             kmem_cache       named  unix:0:anonmap_cache
+   sadc             kmem_cache       named  unix:0:segvn_cache
+   sadc             kmem_cache       named  unix:0:flk_edges
+   sadc             kmem_cache       named  unix:0:fdb_cache
+   sadc             kmem_cache       named  unix:0:timer_cache
+   sadc             kmem_cache       named  unix:0:physio_buf_cache
+   sadc             kmem_cache       named  unix:0:ufs_inode_cache
+   sadc             kmem_cache       named  unix:0:directio_buf_cache
+   sadc             kmem_cache       named  unix:0:lufs_save
+   sadc             kmem_cache       named  unix:0:lufs_bufs
+   sadc             kmem_cache       named  unix:0:lufs_mapentry_cache
+   sadc             misc             raw    cpu_stat:0:cpu_stat0
+   sadc             kmem_cache       named  unix:0:kcf_sreq_cache
+   sadc             kmem_cache       named  unix:0:kcf_areq_cache
+   sadc             kmem_cache       named  unix:0:kcf_context_cache
+   sadc             kmem_cache       named  unix:0:ipsec_actions
+   sadc             kmem_cache       named  unix:0:ipsec_selectors
+   sadc             kmem_cache       named  unix:0:ipsec_policy
+   sadc             kmem_cache       named  unix:0:ipsec_info
+   sadc             kmem_cache       named  unix:0:ip_minor_arena_1
+   sadc             kmem_cache       named  unix:0:ipcl_conn_cache
+   sadc             kmem_cache       named  unix:0:ipcl_tcpconn_cache
+   sadc             kmem_cache       named  unix:0:ire_cache
+   sadc             kmem_cache       named  unix:0:tcp_timercache
+   sadc             kmem_cache       named  unix:0:tcp_sack_info_cache
+   sadc             kmem_cache       named  unix:0:tcp_iphc_cache
+   sadc             kmem_cache       named  unix:0:squeue_cache
+   sadc             kmem_cache       named  unix:0:sctp_conn_cache
+   sadc             kmem_cache       named  unix:0:sctp_faddr_cache
+   sadc             kmem_cache       named  unix:0:sctp_set_cache
+   sadc             kmem_cache       named  unix:0:sctp_ftsn_set_cache
+   sadc             kmem_cache       named  unix:0:sctpsock
+   sadc             kmem_cache       named  unix:0:sctp_assoc
+   sadc             kmem_cache       named  unix:0:socktpi_cache
+   sadc             kmem_cache       named  unix:0:socktpi_unix_cache
+   sadc             kmem_cache       named  unix:0:ncafs_cache
+   sadc             kmem_cache       named  unix:0:process_cache
+   sadc             kmem_cache       named  unix:0:exacct_object_cache
+   sadc             kmem_cache       named  unix:0:fctl_cache
+   sadc             kmem_cache       named  unix:0:tl_cache
+   sadc             kmem_cache       named  unix:0:keysock_1
+   sadc             kmem_cache       named  unix:0:spdsock_1
+   sadc             kmem_cache       named  unix:0:fnode_cache
+   sadc             kmem_cache       named  unix:0:pipe_cache
+   sadc             kmem_cache       named  unix:0:namefs_inodes_1
+   sadc             kmem_cache       named  unix:0:port_cache
+   sadc             kmem_cache       named  unix:0:lnode_cache
+   sadc             kmem_cache       named  unix:0:clnt_clts_endpnt_cache
+   sadc             kmem_cache       named  unix:0:pty_map
+   sadc             kmem_cache       named  unix:0:sppptun_map
+   sadc             kmem_cache       named  unix:0:dtrace_state_cache
+   sadc             kmem_cache       named  unix:0:qif_head_cache
+   sadc             kmem_cache       named  unix:0:udp_minor_1
+   sadc             kmem_cache       named  unix:0:authkern_cache
+   sadc             kmem_cache       named  unix:0:authloopback_cache
+   sadc             kmem_cache       named  unix:0:authdes_cache_handle
+   sadc             kmem_cache       named  unix:0:rnode_cache
+   sadc             kmem_cache       named  unix:0:nfs_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle_cache
+   sadc             kmem_cache       named  unix:0:rnode4_cache
+   sadc             kmem_cache       named  unix:0:svnode_cache
+   sadc             kmem_cache       named  unix:0:nfs4_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle4_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4vals_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4_list_cache
+   sadc             kmem_cache       named  unix:0:NFS_idmap_cache
+   sadc             kmem_cache       named  unix:0:lm_vnode
+   sadc             kmem_cache       named  unix:0:lm_xprt
+   sadc             kmem_cache       named  unix:0:lm_sysid
+   sadc             kmem_cache       named  unix:0:lm_client
+   sadc             kmem_cache       named  unix:0:lm_async
+   sadc             kmem_cache       named  unix:0:lm_sleep
+   sadc             kmem_cache       named  unix:0:lm_config
+   sadc             kmem_cache       named  unix:0:nfslog_small_rec
+   sadc             kmem_cache       named  unix:0:nfslog_medium_rec
+   sadc             kmem_cache       named  unix:0:nfslog_large_rec
+   sadc             kmem_cache       named  unix:0:exi_cache_handle
+   sadc             kmem_cache       named  unix:0:Client_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenOwner_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:LockStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:Lockowner_entry_cache
+   sadc             kmem_cache       named  unix:0:File_entry_cache
+   sadc             kmem_cache       named  unix:0:DelegStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:ip_minor_1
+   sadc             kmem_cache       named  unix:0:ar_minor_1
+   sadc             kmem_cache       named  unix:0:icmp_minor_1
+   sadc             kmem_cache       named  unix:0:crypto_session_cache
+   sadc             kmem_cache       named  unix:0:fcsm_job_cache
+   sadc             kmem_cache       named  unix:0:sd0_cache
+   sadc             kmem_cache       named  unix:0:hsfs_hsnode_cache
+   sadc             kmem_cache       named  unix:0:kmem_magazine_1
+   sadc             misc             raw    unix:0:sysinfo
+   sadc             vm               raw    unix:0:vminfo
+   sadc             misc             named  unix:0:system_misc
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             ufs              named  ufs:0:inode_cache
+   sadc             misc             raw    cpu_stat:0:cpu_stat0
+   sadc             kmem_cache       named  unix:0:kmem_magazine_1
+   sadc             kmem_cache       named  unix:0:kmem_magazine_3
+   sadc             kmem_cache       named  unix:0:kmem_magazine_7
+   sadc             kmem_cache       named  unix:0:kmem_magazine_15
+   sadc             kmem_cache       named  unix:0:kmem_magazine_31
+   sadc             kmem_cache       named  unix:0:kmem_magazine_47
+   sadc             kmem_cache       named  unix:0:kmem_magazine_63
+   sadc             kmem_cache       named  unix:0:kmem_magazine_95
+   sadc             kmem_cache       named  unix:0:kmem_magazine_143
+   sadc             kmem_cache       named  unix:0:kmem_slab_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_cache
+   sadc             kmem_cache       named  unix:0:kmem_bufctl_audit_cache
+   sadc             kmem_cache       named  unix:0:kmem_va_4096
+   sadc             kmem_cache       named  unix:0:kmem_va_8192
+   sadc             kmem_cache       named  unix:0:kmem_va_12288
+   sadc             kmem_cache       named  unix:0:kmem_va_16384
+   sadc             kmem_cache       named  unix:0:kmem_va_20480
+   sadc             kmem_cache       named  unix:0:kmem_va_24576
+   sadc             kmem_cache       named  unix:0:kmem_va_28672
+   sadc             kmem_cache       named  unix:0:kmem_va_32768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16
+   sadc             kmem_cache       named  unix:0:kmem_alloc_24
+   sadc             kmem_cache       named  unix:0:kmem_alloc_32
+   sadc             kmem_cache       named  unix:0:kmem_alloc_40
+   sadc             kmem_cache       named  unix:0:kmem_alloc_48
+   sadc             kmem_cache       named  unix:0:kmem_alloc_56
+   sadc             kmem_cache       named  unix:0:kmem_alloc_64
+   sadc             kmem_cache       named  unix:0:kmem_alloc_80
+   sadc             kmem_cache       named  unix:0:kmem_alloc_96
+   sadc             kmem_cache       named  unix:0:kmem_alloc_112
+   sadc             kmem_cache       named  unix:0:kmem_alloc_128
+   sadc             kmem_cache       named  unix:0:kmem_alloc_160
+   sadc             kmem_cache       named  unix:0:kmem_alloc_192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_224
+   sadc             kmem_cache       named  unix:0:kmem_alloc_256
+   sadc             kmem_cache       named  unix:0:kmem_alloc_320
+   sadc             kmem_cache       named  unix:0:kmem_alloc_384
+   sadc             kmem_cache       named  unix:0:kmem_alloc_448
+   sadc             kmem_cache       named  unix:0:kmem_alloc_512
+   sadc             kmem_cache       named  unix:0:kmem_alloc_640
+   sadc             kmem_cache       named  unix:0:kmem_alloc_768
+   sadc             kmem_cache       named  unix:0:kmem_alloc_896
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1152
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1344
+   sadc             kmem_cache       named  unix:0:kmem_alloc_1600
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2048
+   sadc             kmem_cache       named  unix:0:kmem_alloc_2688
+   sadc             kmem_cache       named  unix:0:kmem_alloc_4096
+   sadc             kmem_cache       named  unix:0:kmem_alloc_8192
+   sadc             kmem_cache       named  unix:0:kmem_alloc_12288
+   sadc             kmem_cache       named  unix:0:kmem_alloc_16384
+   sadc             kmem_cache       named  unix:0:streams_mblk
+   sadc             kmem_cache       named  unix:0:streams_dblk_64
+   sadc             kmem_cache       named  unix:0:streams_dblk_128
+   sadc             kmem_cache       named  unix:0:streams_dblk_320
+   sadc             kmem_cache       named  unix:0:streams_dblk_576
+   sadc             kmem_cache       named  unix:0:streams_dblk_1088
+   sadc             kmem_cache       named  unix:0:streams_dblk_1536
+   sadc             kmem_cache       named  unix:0:streams_dblk_1984
+   sadc             kmem_cache       named  unix:0:streams_dblk_2624
+   sadc             kmem_cache       named  unix:0:streams_dblk_3968
+   sadc             kmem_cache       named  unix:0:streams_dblk_8192
+   sadc             kmem_cache       named  unix:0:streams_dblk_12160
+   sadc             kmem_cache       named  unix:0:streams_dblk_16384
+   sadc             kmem_cache       named  unix:0:streams_dblk_20352
+   sadc             kmem_cache       named  unix:0:streams_dblk_24576
+   sadc             kmem_cache       named  unix:0:streams_dblk_28544
+   sadc             kmem_cache       named  unix:0:streams_dblk_32768
+   sadc             kmem_cache       named  unix:0:streams_dblk_36736
+   sadc             kmem_cache       named  unix:0:streams_dblk_40960
+   sadc             kmem_cache       named  unix:0:streams_dblk_44928
+   sadc             kmem_cache       named  unix:0:streams_dblk_49152
+   sadc             kmem_cache       named  unix:0:streams_dblk_53120
+   sadc             kmem_cache       named  unix:0:streams_dblk_57344
+   sadc             kmem_cache       named  unix:0:streams_dblk_61312
+   sadc             kmem_cache       named  unix:0:streams_dblk_65536
+   sadc             kmem_cache       named  unix:0:streams_dblk_69504
+   sadc             kmem_cache       named  unix:0:streams_dblk_73728
+   sadc             kmem_cache       named  unix:0:streams_dblk_esb
+   sadc             kmem_cache       named  unix:0:streams_fthdr
+   sadc             kmem_cache       named  unix:0:streams_ftblk
+   sadc             kmem_cache       named  unix:0:multidata
+   sadc             kmem_cache       named  unix:0:multidata_pdslab
+   sadc             kmem_cache       named  unix:0:multidata_pattbl
+   sadc             kmem_cache       named  unix:0:taskq_ent_cache
+   sadc             kmem_cache       named  unix:0:taskq_cache
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_512M_4096
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_128
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_256
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_512
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_1024
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_2048
+   sadc             kmem_cache       named  unix:0:kmem_io_16M_4096
+   sadc             kmem_cache       named  unix:0:id32_cache
+   sadc             kmem_cache       named  unix:0:bp_map_4096
+   sadc             kmem_cache       named  unix:0:bp_map_8192
+   sadc             kmem_cache       named  unix:0:bp_map_12288
+   sadc             kmem_cache       named  unix:0:bp_map_16384
+   sadc             kmem_cache       named  unix:0:bp_map_20480
+   sadc             kmem_cache       named  unix:0:bp_map_24576
+   sadc             kmem_cache       named  unix:0:bp_map_28672
+   sadc             kmem_cache       named  unix:0:bp_map_32768
+   sadc             kmem_cache       named  unix:0:mod_hash_entries
+   sadc             kmem_cache       named  unix:0:ipp_mod
+   sadc             kmem_cache       named  unix:0:ipp_action
+   sadc             kmem_cache       named  unix:0:ipp_packet
+   sadc             kmem_cache       named  unix:0:htable_t
+   sadc             kmem_cache       named  unix:0:hment_t
+   sadc             kmem_cache       named  unix:0:hat_t
+   sadc             kmem_cache       named  unix:0:HatHash
+   sadc             kmem_cache       named  unix:0:seg_cache
+   sadc             kmem_cache       named  unix:0:snode_cache
+   sadc             kmem_cache       named  unix:0:dv_node_cache
+   sadc             kmem_cache       named  unix:0:dev_info_node_cache
+   sadc             kmem_cache       named  unix:0:segkp_4096
+   sadc             kmem_cache       named  unix:0:segkp_8192
+   sadc             kmem_cache       named  unix:0:segkp_12288
+   sadc             kmem_cache       named  unix:0:segkp_16384
+   sadc             kmem_cache       named  unix:0:segkp_20480
+   sadc             kmem_cache       named  unix:0:thread_cache
+   sadc             kmem_cache       named  unix:0:lwp_cache
+   sadc             kmem_cache       named  unix:0:turnstile_cache
+   sadc             kmem_cache       named  unix:0:cred_cache
+   sadc             kmem_cache       named  unix:0:rctl_cache
+   sadc             kmem_cache       named  unix:0:rctl_val_cache
+   sadc             kmem_cache       named  unix:0:task_cache
+   sadc             kmem_cache       named  unix:0:cyclic_id_cache
+   sadc             kmem_cache       named  unix:0:dnlc_space_cache
+   sadc             kmem_cache       named  unix:0:vn_cache
+   sadc             kmem_cache       named  unix:0:file_cache
+   sadc             kmem_cache       named  unix:0:stream_head_cache
+   sadc             kmem_cache       named  unix:0:queue_cache
+   sadc             kmem_cache       named  unix:0:syncq_cache
+   sadc             kmem_cache       named  unix:0:qband_cache
+   sadc             kmem_cache       named  unix:0:linkinfo_cache
+   sadc             kmem_cache       named  unix:0:ciputctrl_cache
+   sadc             kmem_cache       named  unix:0:serializer_cache
+   sadc             kmem_cache       named  unix:0:as_cache
+   sadc             kmem_cache       named  unix:0:marker_cache
+   sadc             kmem_cache       named  unix:0:anon_cache
+   sadc             kmem_cache       named  unix:0:anonmap_cache
+   sadc             kmem_cache       named  unix:0:segvn_cache
+   sadc             kmem_cache       named  unix:0:flk_edges
+   sadc             kmem_cache       named  unix:0:fdb_cache
+   sadc             kmem_cache       named  unix:0:timer_cache
+   sadc             kmem_cache       named  unix:0:physio_buf_cache
+   sadc             kmem_cache       named  unix:0:ufs_inode_cache
+   sadc             kmem_cache       named  unix:0:directio_buf_cache
+   sadc             kmem_cache       named  unix:0:lufs_save
+   sadc             kmem_cache       named  unix:0:lufs_bufs
+   sadc             kmem_cache       named  unix:0:lufs_mapentry_cache
+   sadc             kmem_cache       named  unix:0:kcf_sreq_cache
+   sadc             kmem_cache       named  unix:0:kcf_areq_cache
+   sadc             kmem_cache       named  unix:0:kcf_context_cache
+   sadc             kmem_cache       named  unix:0:ipsec_actions
+   sadc             kmem_cache       named  unix:0:ipsec_selectors
+   sadc             kmem_cache       named  unix:0:ipsec_policy
+   sadc             kmem_cache       named  unix:0:ipsec_info
+   sadc             kmem_cache       named  unix:0:ip_minor_arena_1
+   sadc             kmem_cache       named  unix:0:ipcl_conn_cache
+   sadc             kmem_cache       named  unix:0:ipcl_tcpconn_cache
+   sadc             kmem_cache       named  unix:0:ire_cache
+   sadc             kmem_cache       named  unix:0:tcp_timercache
+   sadc             kmem_cache       named  unix:0:tcp_sack_info_cache
+   sadc             kmem_cache       named  unix:0:tcp_iphc_cache
+   sadc             kmem_cache       named  unix:0:squeue_cache
+   sadc             kmem_cache       named  unix:0:sctp_conn_cache
+   sadc             kmem_cache       named  unix:0:sctp_faddr_cache
+   sadc             kmem_cache       named  unix:0:sctp_set_cache
+   sadc             kmem_cache       named  unix:0:sctp_ftsn_set_cache
+   sadc             kmem_cache       named  unix:0:sctpsock
+   sadc             kmem_cache       named  unix:0:sctp_assoc
+   sadc             kmem_cache       named  unix:0:socktpi_cache
+   sadc             kmem_cache       named  unix:0:socktpi_unix_cache
+   sadc             kmem_cache       named  unix:0:ncafs_cache
+   sadc             kmem_cache       named  unix:0:process_cache
+   sadc             kmem_cache       named  unix:0:exacct_object_cache
+   sadc             kmem_cache       named  unix:0:fctl_cache
+   sadc             kmem_cache       named  unix:0:tl_cache
+   sadc             kmem_cache       named  unix:0:keysock_1
+   sadc             kmem_cache       named  unix:0:spdsock_1
+   sadc             kmem_cache       named  unix:0:fnode_cache
+   sadc             kmem_cache       named  unix:0:pipe_cache
+   sadc             kmem_cache       named  unix:0:namefs_inodes_1
+   sadc             kmem_cache       named  unix:0:port_cache
+   sadc             kmem_cache       named  unix:0:lnode_cache
+   sadc             kmem_cache       named  unix:0:clnt_clts_endpnt_cache
+   sadc             kmem_cache       named  unix:0:pty_map
+   sadc             kmem_cache       named  unix:0:sppptun_map
+   sadc             kmem_cache       named  unix:0:dtrace_state_cache
+   sadc             kmem_cache       named  unix:0:qif_head_cache
+   sadc             kmem_cache       named  unix:0:udp_minor_1
+   sadc             kmem_cache       named  unix:0:authkern_cache
+   sadc             kmem_cache       named  unix:0:authloopback_cache
+   sadc             kmem_cache       named  unix:0:authdes_cache_handle
+   sadc             kmem_cache       named  unix:0:rnode_cache
+   sadc             kmem_cache       named  unix:0:nfs_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle_cache
+   sadc             kmem_cache       named  unix:0:rnode4_cache
+   sadc             kmem_cache       named  unix:0:svnode_cache
+   sadc             kmem_cache       named  unix:0:nfs4_access_cache
+   sadc             kmem_cache       named  unix:0:client_handle4_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4vals_cache
+   sadc             kmem_cache       named  unix:0:nfs4_ace4_list_cache
+   sadc             kmem_cache       named  unix:0:NFS_idmap_cache
+   sadc             kmem_cache       named  unix:0:lm_vnode
+   sadc             kmem_cache       named  unix:0:lm_xprt
+   sadc             kmem_cache       named  unix:0:lm_sysid
+   sadc             kmem_cache       named  unix:0:lm_client
+   sadc             kmem_cache       named  unix:0:lm_async
+   sadc             kmem_cache       named  unix:0:lm_sleep
+   sadc             kmem_cache       named  unix:0:lm_config
+   sadc             kmem_cache       named  unix:0:nfslog_small_rec
+   sadc             kmem_cache       named  unix:0:nfslog_medium_rec
+   sadc             kmem_cache       named  unix:0:nfslog_large_rec
+   sadc             kmem_cache       named  unix:0:exi_cache_handle
+   sadc             kmem_cache       named  unix:0:Client_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenOwner_entry_cache
+   sadc             kmem_cache       named  unix:0:OpenStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:LockStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:Lockowner_entry_cache
+   sadc             kmem_cache       named  unix:0:File_entry_cache
+   sadc             kmem_cache       named  unix:0:DelegStateID_entry_cache
+   sadc             kmem_cache       named  unix:0:ip_minor_1
+   sadc             kmem_cache       named  unix:0:ar_minor_1
+   sadc             kmem_cache       named  unix:0:icmp_minor_1
+   sadc             kmem_cache       named  unix:0:crypto_session_cache
+   sadc             kmem_cache       named  unix:0:fcsm_job_cache
+   sadc             kmem_cache       named  unix:0:sd0_cache
+   sadc             kmem_cache       named  unix:0:hsfs_hsnode_cache
+   sadc             vmem             named  vmem:16:kmem_oversize
+   sadc             disk             io     cmdk:0:cmdk0
+   sadc             nfs              io     nfs:1:nfs1
+   sadc             disk             io     sd:0:sd0
+   sadc             usb_byte_count   io     usba:0:uhci0,bulk
+   sadc             usb_byte_count   io     usba:0:uhci0,ctrl
+   sadc             usb_byte_count   io     usba:0:uhci0,intr
+   sadc             usb_byte_count   io     usba:0:uhci0,isoch
+   sadc             usb_byte_count   io     usba:0:uhci0,total
+   sadc             usb_byte_count   io     usba:1:uhci1,bulk
+   sadc             usb_byte_count   io     usba:1:uhci1,ctrl
+   sadc             usb_byte_count   io     usba:1:uhci1,intr
+   sadc             usb_byte_count   io     usba:1:uhci1,isoch
+   sadc             usb_byte_count   io     usba:1:uhci1,total
+
+Yep, to print the four fields from "sar -u 1 1", sadc read the ENTIRE
+KSTAT TREE FIVE TIMES.
+
+Comparing the effect of this to vmstat,
+
+ # ptime vmstat 1 6
+  kthr      memory            page            disk          faults      cpu
+  r b w   swap  free  re  mf pi po fr de sr cd s0 -- --   in   sy   cs us sy id
+  0 0 43 907784 115324 29 124 34 1  1  0  4  2  0  0  0  277  470  210  1  2 97
+  0 0 38 750856 172304 1  40  0  0  0  0  0  0  0  0  0  230  224  130  1  1 98
+  0 0 38 750856 172304 0   0  0  0  0  0  0  0  0  0  0  219  168  111  0  1 99
+  0 0 38 750856 172304 0   0  0  0  0  0  0  0  0  0  0  226  109  113  0  0 100
+  0 0 38 750856 172304 0   0  0  0  0  0  0  0  0  0  0  225  246  137  1  1 98
+  0 0 38 750856 172304 0   0  0  0  0  0  0  0  0  0  0  222  175  119  0  1 99
+ 
+ real        5.060
+ user        0.006
+ sys         0.013
+
+Ok, so vmstat causes a total of 13 ms of sys time - much of which would
+be the fork and exec. Now lets try sar,
+
+ # ptime sar -u 1 5
+ 
+ SunOS jupiter 5.10 Generic i86pc    04/21/2006
+ 
+ 23:42:55    %usr    %sys    %wio   %idle
+ 23:42:56       0       3       0      97
+ 23:42:57       1       2       0      97
+ 23:42:58       0       2       0      98
+ 23:42:59       1       3       0      96
+ 23:43:00       0       2       0      98
+ 
+ Average        0       2       0      97
+ 
+ real        5.148
+ user        0.010
+ sys         0.127
+
+Phwaorr - 127 ms of sys time to measure 5 samples. That is a LOT.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/lastwords_example.txt b/external/cddl/dtracetoolkit/dist/Examples/lastwords_example.txt
new file mode 100644
index 0000000..5452d2e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/lastwords_example.txt
@@ -0,0 +1,81 @@
+The following is a demonstration of the lastwords command,
+
+
+Here we run lastwords to catch syscalls from processes named "bash" as they
+exit,
+
+   # ./lastwords bash
+   Tracing... Waiting for bash to exit...
+   1091567219163679    1861         bash    sigaction          0   0
+   1091567219177487    1861         bash    sigaction          0   0
+   1091567219189692    1861         bash    sigaction          0   0
+   1091567219202085    1861         bash    sigaction          0   0
+   1091567219214553    1861         bash    sigaction          0   0
+   1091567219226690    1861         bash    sigaction          0   0
+   1091567219238786    1861         bash    sigaction          0   0
+   1091567219251697    1861         bash    sigaction          0   0
+   1091567219265770    1861         bash    sigaction          0   0
+   1091567219294110    1861         bash        gtime   42a7c194   0
+   1091567219428305    1861         bash        write          5   0
+   1091567219451138    1861         bash   setcontext          0   0
+   1091567219473911    1861         bash    sigaction          0   0
+   1091567219516487    1861         bash       stat64          0   0
+   1091567219547973    1861         bash       open64          4   0
+   1091567219638345    1861         bash        write          5   0
+   1091567219658886    1861         bash        close          0   0
+   1091567219689094    1861         bash       open64          4   0
+   1091567219704301    1861         bash      fstat64          0   0
+   1091567219731796    1861         bash         read        2fe   0
+   1091567219745541    1861         bash        close          0   0
+   1091567219768536    1861         bash  lwp_sigmask   ffbffeff   0
+   1091567219787494    1861         bash        ioctl          0   0
+   1091567219801338    1861         bash      setpgrp        6a3   0
+   1091567219814067    1861         bash        ioctl          0   0
+   1091567219825791    1861         bash  lwp_sigmask   ffbffeff   0
+   1091567219847778    1861         bash      setpgrp          0   0
+   TIME                 PID         EXEC      SYSCALL     RETURN ERR
+
+In another window, a bash shell was executed and then exited normally. The
+last few system calls that the bash shell made can be seen above.
+
+
+
+
+In the following example we moniter the exit of bash shells again, but this
+time the bash shell sends itself a "kill -8",
+
+   # ./lastwords bash
+   Tracing... Waiting for bash to exit...
+   1091650185555391    1865         bash    sigaction          0   0
+   1091650185567963    1865         bash    sigaction          0   0
+   1091650185580316    1865         bash    sigaction          0   0
+   1091650185592381    1865         bash    sigaction          0   0
+   1091650185605046    1865         bash    sigaction          0   0
+   1091650185618451    1865         bash    sigaction          0   0
+   1091650185647663    1865         bash        gtime   42a7c1e7   0
+   1091650185794626    1865         bash         kill          0   0
+   1091650185836941    1865         bash  lwp_sigmask   ffbffeff   0
+   1091650185884145    1865         bash       stat64          0   0
+   1091650185916135    1865         bash       open64          4   0
+   1091650186005673    1865         bash        write          b   0
+   1091650186025782    1865         bash        close          0   0
+   1091650186052002    1865         bash       open64          4   0
+   1091650186067538    1865         bash      fstat64          0   0
+   1091650186094289    1865         bash         read        309   0
+   1091650186108086    1865         bash        close          0   0
+   1091650186129965    1865         bash  lwp_sigmask   ffbffeff   0
+   1091650186149092    1865         bash        ioctl          0   0
+   1091650186162614    1865         bash      setpgrp        6a3   0
+   1091650186175457    1865         bash        ioctl          0   0
+   1091650186187206    1865         bash  lwp_sigmask   ffbffeff   0
+   1091650186209514    1865         bash      setpgrp          0   0
+   1091650186225307    1865         bash    sigaction          0   0
+   1091650186238832    1865         bash       getpid        749   0
+   1091650186260149    1865         bash         kill          0   0
+   1091650186277925    1865         bash   setcontext          0   0
+   TIME                 PID         EXEC      SYSCALL     RETURN ERR
+
+The last few system calls are different, we can see the kill system call
+before bash exits.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/loads_example.txt b/external/cddl/dtracetoolkit/dist/Examples/loads_example.txt
new file mode 100644
index 0000000..f369f96
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/loads_example.txt
@@ -0,0 +1,19 @@
+The following is a demonstration of the loads.d script.
+
+
+Here we run both loads.d and the uptime command for comparison,
+
+   # uptime
+     1:30am  up 14 day(s),  2:27,  3 users,  load average: 3.52, 3.45, 3.05
+
+   # ./loads.d
+   2005 Jun 11 01:30:49,  load average: 3.52, 3.45, 3.05
+
+Both have returned the same load average, confirming that loads.d is
+behaving as expected.
+
+
+The point of loads.d is to demonstrate fetching the same data as uptime
+does, in the DTrace language. It is not intended as a replacement
+or substitute to the uptime(1) command.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/lockbydist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/lockbydist_example.txt
new file mode 100644
index 0000000..7310e5a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/lockbydist_example.txt
@@ -0,0 +1,114 @@
+The following is a demonstration of the lockbyproc.d script,
+
+   # lockbydist.d
+   dtrace: description 'lockstat:::adaptive-block ' matched 1 probe
+   ^C
+
+     metadata-manager                                  
+              value  ------------- Distribution ------------- count    
+             131072 |                                         0        
+             262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             524288 |                                         0        
+   
+     sched                                             
+              value  ------------- Distribution ------------- count    
+              16384 |                                         0        
+              32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9        
+              65536 |                                         0        
+   
+     oracle                                            
+              value  ------------- Distribution ------------- count    
+              16384 |                                         0        
+              32768 |@@@@@@@@@@@@@@@@@@@                      9        
+              65536 |@@@@@@@@@@@@@@@@@@@@@                    10       
+             131072 |                                         0        
+
+In the above output, oracle can be seen to have blocked 10 times from 
+65 to 131 microseconds, and 9 times from 32 to 65 microseconds. sched,
+the kernel, has blocked several times also. metadata-manager only
+blocked once, which was at least 262 microseconds.
+
+
+
+The following is a longer sample,
+
+   # lockbydist.d
+   dtrace: description 'lockstat:::adaptive-block ' matched 1 probe
+   ^C
+
+     svc.startd                                        
+              value  ------------- Distribution ------------- count    
+               8192 |                                         0        
+              16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32768 |                                         0        
+   
+     java                                              
+              value  ------------- Distribution ------------- count    
+              16384 |                                         0        
+              32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              65536 |                                         0        
+   
+     oracle                                            
+              value  ------------- Distribution ------------- count    
+              16384 |                                         0        
+              32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+              65536 |@@@@@@@@@@@@@                            2        
+             131072 |                                         0        
+   
+     mysql-test-run                                    
+              value  ------------- Distribution ------------- count    
+              65536 |                                         0        
+             131072 |@@@@@@@@@@@@@@@@@@@@                     1        
+             262144 |@@@@@@@@@@@@@@@@@@@@                     1        
+             524288 |                                         0        
+   
+     pageout                                           
+              value  ------------- Distribution ------------- count    
+              16384 |                                         0        
+              32768 |@@@@@@@@@@@@@                            1        
+              65536 |                                         0        
+             131072 |                                         0        
+             262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+             524288 |                                         0        
+   
+     mysqltest                                         
+              value  ------------- Distribution ------------- count    
+              16384 |                                         0        
+              32768 |@@@@@@                                   1        
+              65536 |@@@@@@@@@@@                              2        
+             131072 |@@@@@@@@@@@                              2        
+             262144 |@@@@@@@@@@@                              2        
+             524288 |                                         0        
+   
+     sched                                             
+              value  ------------- Distribution ------------- count    
+               8192 |                                         0        
+              16384 |@@@@@@@@@@@                              11       
+              32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@               25       
+              65536 |                                         0        
+             131072 |@                                        1        
+             262144 |@@                                       2        
+             524288 |                                         0        
+   
+     mysqld                                            
+              value  ------------- Distribution ------------- count    
+              16384 |                                         0        
+              32768 |@@@@@@@@@@@@@@@@@@@@@                    22       
+              65536 |@@@@@@@@@                                9        
+             131072 |                                         0        
+             262144 |@@@@                                     4        
+             524288 |                                         0        
+            1048576 |                                         0        
+            2097152 |                                         0        
+            4194304 |@@                                       2        
+            8388608 |@@@@                                     4        
+           16777216 |                                         0      
+   
+The length of time threads were blocked, and the number of such blocks 
+can be easily observed from the above output.
+
+mysqld can be seen to have many short blocks: 22 from 32 -> 65 microseconds,
+and a few larger blocks: 4 from 8 -> 16 ms.
+   
+   
+   
diff --git a/external/cddl/dtracetoolkit/dist/Examples/lockbyproc_example.txt b/external/cddl/dtracetoolkit/dist/Examples/lockbyproc_example.txt
new file mode 100644
index 0000000..1109235
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/lockbyproc_example.txt
@@ -0,0 +1,42 @@
+The following is a demonstration of the lockbyproc.d script,
+
+   # lockbyproc.d
+   dtrace: description 'lockstat:::adaptive-block ' matched 1 probe
+   ^C
+   
+     pageout                                                       49438
+     mysql-test-run                                                96414
+     oracle                                                       149086
+     sched                                                        220601
+
+The above output shows that threads belonging to sched, the kernel, spent 
+a total of 220 microseconds waiting for an adaptive mutex lock.
+
+
+
+
+This example sampled for a longer interval,
+
+   # lockbyproc.d
+   dtrace: description 'lockstat:::adaptive-block ' matched 1 probe
+   ^C
+
+     init                                                         136228
+     java                                                         371896
+     oracle                                                       783402
+     sched                                                       2315779
+     mysqltest                                                   9428277
+     mysql-test-run                                             10093658
+     mysqld                                                     17412999
+     fsflush                                                    19676738
+
+Here we can see threads belonging to fsflush have spent a total of 19.7 ms 
+waiting for an adaptive mutex. Note: it's not easy to say that it means a
+19.7 ms delay in the completion of the fsflush program, as this value is 
+the sum of the block times across all the threads. So it is possible that 
+many threads were blocked at the same time, eg, it could have been 19 threads
+blocked during the same 1 ms.
+ 
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/minfbypid_example.txt b/external/cddl/dtracetoolkit/dist/Examples/minfbypid_example.txt
new file mode 100644
index 0000000..c2fffb4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/minfbypid_example.txt
@@ -0,0 +1,20 @@
+The following is a demonstration of the minfbypid.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+   # minfbypid.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD                     MINFAULTS
+    11021 dtrace                         54
+    11023 ls                             56
+    11024 df                             57
+    11023 bash                           75
+    11022 bash                           75
+    11024 bash                           76
+    11022 find                           91
+
+In the above output, we can see that each of the bash shells had about 75
+minor faults each. Minor faults are an indication of memory consumption.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/minfbyproc_example.txt b/external/cddl/dtracetoolkit/dist/Examples/minfbyproc_example.txt
new file mode 100644
index 0000000..0c1ce84
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/minfbyproc_example.txt
@@ -0,0 +1,14 @@
+The following is an example of the minfbyproc.d script,
+
+   # minfbyproc.d
+   dtrace: description 'vminfo:::as_fault ' matched 1 probe
+   ^C
+    
+     mozilla-bin                                                      18
+     dtrace                                                           57
+     find                                                             64
+     bash                                                            150
+     tar                                                             501
+
+In the above output, tar processes caused 501 minor faults. 
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/mmapfiles_example.txt b/external/cddl/dtracetoolkit/dist/Examples/mmapfiles_example.txt
new file mode 100644
index 0000000..eca4370
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/mmapfiles_example.txt
@@ -0,0 +1,109 @@
+The following is a demonstration of the mmapfiles.d script.
+
+Here we run mmapfiles.d while in another window a new bash shell is started.
+The files that were mapped in aren't suprising, they are the common shared
+librarios,
+
+   # mmapfiles.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   MMAPS CMD              PATHNAME
+       1 bash             /lib/libdl.so.1
+       3 bash             /lib/libsocket.so.1
+       3 bash             /lib/libnsl.so.1
+       3 bash             /lib/libc.so.1
+       3 bash             /lib/libcurses.so.1
+
+
+
+Now we examine zsh. This time a number of extra libraries are mapped,
+
+   # mmapfiles.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   MMAPS CMD              PATHNAME
+       1 zsh              /lib/libdl.so.1
+       3 getent           /lib/libc.so.1
+       3 getent           /lib/libnsl.so.1
+       3 getent           /lib/libsocket.so.1
+       3 zsh              /usr/sfw/lib/zsh/4.2.1/zsh/parameter.so
+       3 zsh              /usr/sfw/lib/zsh/4.2.1/zsh/zutil.so
+       3 zsh              /usr/sfw/lib/zsh/4.2.1/zsh/complete.so
+       3 zsh              /usr/sfw/lib/zsh/4.2.1/zsh/stat.so
+       3 zsh              /usr/sfw/lib/zsh/4.2.1/zsh/zle.so
+       3 tset             /lib/libc.so.1
+       3 tset             /opt/sfw/lib/libncurses.so.5.2
+       3 zsh              /lib/libc.so.1
+       3 zsh              /lib/libm.so.2
+       3 zsh              /lib/libcurses.so.1
+       3 zsh              /lib/libnsl.so.1
+       3 zsh              /usr/sfw/lib/zsh/4.2.1/zsh/complist.so
+       3 zsh              /lib/libsocket.so.1
+
+
+
+Sometimes the output can be quite suprising. The following shows the mmaps
+caused by the "sdtaudiocontrol" tool, a java tool to change the volume levels
+on Solaris,
+
+   # mmapfiles.d
+   Tracing... Hit Ctrl-C to end.
+   
+   MMAPS CMD              PATHNAME
+       1 java             /usr/jdk/packages/jmf/lib/ext/jmplay.jar
+       1 java             /usr/dt/appconfig/sdtaudiocontrol/classes/SDtAudioControl.jar
+       1 java             /usr/dt/classes/xservices.jar
+       1 java             /usr/dt/classes/jhall.jar
+       1 java             /usr/dt/classes/jsearch.jar
+       1 java             /usr/jdk/packages/jmf/lib/ext/mp3plugin.jar
+       1 java             /usr/jdk/packages/jmf/lib/ext/jmfmp3.jar
+       1 java             /usr/jdk/packages/jmf/lib/ext/multiplayer.jar
+       1 java             /usr/jdk/packages/jmf/lib/ext/mediaplayer.jar
+       1 java             /usr/jdk/packages/jmf/lib/ext/jmf.jar
+       1 java             /usr/jdk/packages/jai-imageio/lib/ext/jai_imageio.jar
+       1 java             /usr/jdk/packages/jai-imageio/lib/ext/clibwrapper_jiio.jar
+       1 java             /usr/jdk/packages/jai/lib/ext/mlibwrapper_jai.jar
+       1 java             /usr/jdk/packages/jai/lib/ext/jai_core.jar
+       1 java             /usr/jdk/packages/jai/lib/ext/jai_codec.jar
+       1 java             /usr/jdk/packages/javax.help-2.0/lib/jhall.jar
+       1 java             /usr/jdk/instances/jdk1.5.0/jre/lib/ext/sunpkcs11.jar
+       1 java             /usr/jdk/instances/jdk1.5.0/jre/lib/ext/sunjce_provider.jar
+       1 java             /usr/jdk/instances/jdk1.5.0/jre/lib/ext/localedata.jar
+       1 java             /usr/jdk/instances/jdk1.5.0/jre/lib/ext/dnsns.jar
+       1 java             /tmp/hsperfdata_root/6464
+       1 java             /tmp/hsperfdata_root/6455
+       2 java             /usr/lib/libsched.so.1
+       2 java             /usr/jdk/instances/jdk1.5.0/jre/lib/charsets.jar
+       2 java             /usr/jdk/instances/jdk1.5.0/jre/lib/jce.jar
+       2 java             /usr/jdk/instances/jdk1.5.0/jre/lib/jsse.jar
+       2 java             /usr/jdk/instances/jdk1.5.0/jre/lib/rt.jar
+       3 sdtaudiocontrol  /lib/libc.so.1
+       3 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/headless/libmawt.so
+       3 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/libmlib_image.so
+       3 ls               /lib/libc.so.1
+       3 rm               /lib/libc.so.1
+       3 java             /usr/dt/appconfig/sdtaudiocontrol/lib/libAudioControl.so
+       3 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/libawt.so
+       4 java             /lib/libdl.so.1
+       6 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/libzip.so
+       6 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/libjava.so
+       6 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/libverify.so
+       6 java             /lib/libscf.so.1
+       6 java             /usr/lib/libCrun.so.1
+       6 java             /lib/libnsl.so.1
+       6 java             /lib/libm.so.1
+       6 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/client/libjvm.so
+       6 java             /lib/libsocket.so.1
+       6 java             /lib/libuutil.so.1
+       6 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/native_threads/libhpi.so
+       6 java             /lib/libmp.so.2
+       6 java             /lib/libmd5.so.1
+       6 java             /lib/libm.so.2
+       6 java             /lib/libdoor.so.1
+       8 java             /usr/jdk/instances/jdk1.5.0/jre/lib/i386/client/classes.jsa
+       8 java             /lib/libthread.so.1
+      12 java             /lib/libc.so.1
+      21 awk              /lib/libm.so.2
+      21 awk              /lib/libc.so.1
+      65 java             /devices/pseudo/mm@0:zero
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/modcalls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/modcalls_example.txt
new file mode 100644
index 0000000..f920d20
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/modcalls_example.txt
@@ -0,0 +1,47 @@
+The following is an example of the modcalls.d oneliner,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+   # modcalls.d
+   dtrace: script './modcalls.d' matched 18437 probes
+   ^C
+   
+     ptm                                                               2
+     mntfs                                                             2
+     pool                                                              2
+     kcf                                                               4
+     pts                                                               5
+     portfs                                                            6
+     pset                                                              6
+     ttcompat                                                          9
+     ptem                                                              9
+     devfs                                                            13
+     ipf                                                              15
+     namefs                                                           20
+     ctfs                                                             22
+     procfs                                                           22
+     ldterm                                                           23
+     ipgpc                                                            48
+     sockfs                                                           58
+     flowacct                                                         69
+     ata                                                              70
+     gld                                                              75
+     rtls                                                             76
+     specfs                                                           83
+     ip                                                              201
+     uhci                                                            294
+     TS                                                              333
+     tmpfs                                                           694
+     doorfs                                                          897
+     ufs                                                            1329
+     uppc                                                           5617
+     unix                                                          49794
+     genunix                                                       53445
+
+The output lists kernel modules, and the number of function calls for
+each module. For example, "rtls" - the network driver, called 76 functions.
+
+This script may be useful to determine whether drivers are "thinking" when
+troubleshooting driver issues.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/newproc_example.txt b/external/cddl/dtracetoolkit/dist/Examples/newproc_example.txt
new file mode 100644
index 0000000..f392b05
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/newproc_example.txt
@@ -0,0 +1,19 @@
+The following is an example of the newproc.d script,
+
+   # ./newproc.d
+   dtrace: description 'proc:::exec-success ' matched 1 probe
+   CPU     ID                    FUNCTION:NAME
+     0   3297         exec_common:exec-success   man ls
+     0   3297         exec_common:exec-success   sh -c cd /usr/share/man; tbl /usr/share/man/man1/ls.1 |neqn /usr/share/lib/pub/
+     0   3297         exec_common:exec-success   tbl /usr/share/man/man1/ls.1
+     0   3297         exec_common:exec-success   neqn /usr/share/lib/pub/eqnchar -
+     0   3297         exec_common:exec-success   nroff -u0 -Tlp -man -
+     0   3297         exec_common:exec-success   col -x
+     0   3297         exec_common:exec-success   sh -c trap '' 1 15; /usr/bin/mv -f/tmp/mpzIaOZF /usr/share/man/cat1/ls.1 2> /d
+     0   3297         exec_common:exec-success   /usr/bin/mv -f /tmp/mpzIaOZF /usr/share/man/cat1/ls.1
+     0   3297         exec_common:exec-success   sh -c more -s /tmp/mpzIaOZF
+     0   3297         exec_common:exec-success   more -s /tmp/mpzIaOZF
+
+The above output was caught when running "man ls". This identifies all the
+commands responsible for processing the man page.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/nfswizard_example.txt b/external/cddl/dtracetoolkit/dist/Examples/nfswizard_example.txt
new file mode 100644
index 0000000..68fb185
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/nfswizard_example.txt
@@ -0,0 +1,67 @@
+The following is a demonstration of the NFS client wizard tool, nfswizard.d,
+
+
+
+   # nfswizard.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   NFS Client Wizard. 2005 Dec  2 14:59:07 -> 2005 Dec  2 14:59:14
+   
+   Read:  4591616 bytes (4 Mb)
+   Write: 0 bytes (0 Mb)
+   
+   Read:  640 Kb/sec
+   Write: 0 Kb/sec
+   
+   NFS I/O events:    166
+   Avg response time: 8 ms
+   Max response time: 14 ms
+   
+   Response times (us):
+              value  ------------- Distribution ------------- count
+                128 |                                         0
+                256 |                                         1
+                512 |@@@                                      14
+               1024 |@                                        4
+               2048 |@@@@@@@                                  30
+               4096 |@@@@@                                    20
+               8192 |@@@@@@@@@@@@@@@@@@@@@@@                  97
+              16384 |                                         0
+   
+   Top 25 files accessed (bytes):
+      PATHNAME                                                         BYTES
+      /net/mars/var/tmp/adm/vold.log                                   4096
+      /net/mars/var/tmp/adm/uptime                                     4096
+      /net/mars/var/tmp/adm/mail                                       4096
+      /net/mars/var/tmp/adm/authlog.5                                  4096
+      /net/mars/var/tmp/adm/ftpd                                       12288
+      /net/mars/var/tmp/adm/spellhist                                  16384
+      /net/mars/var/tmp/adm/messages                                   16384
+      /net/mars/var/tmp/adm/utmpx                                      20480
+      /net/mars/var/tmp/adm/ftpd.2                                     20480
+      /net/mars/var/tmp/adm/ftpd.3                                     20480
+      /net/mars/var/tmp/adm/ftpd.1                                     24576
+      /net/mars/var/tmp/adm/ftpd.0                                     24576
+      /net/mars/var/tmp/adm/lastlog                                    28672
+      /net/mars/var/tmp/adm/ipf                                        61440
+      /net/mars/var/tmp/adm/loginlog                                   69632
+      /net/mars/var/tmp/adm/ipf.4                                      73728
+      /net/mars/var/tmp/adm/messages.20040906                          81920
+      /net/mars/var/tmp/adm/ipf.3                                      102400
+      /net/mars/var/tmp/adm/ipf.1                                      110592
+      /net/mars/var/tmp/adm/ipf.5                                      114688
+      /net/mars/var/tmp/adm/ipf.2                                      114688
+      /net/mars/var/tmp/adm/ipf.0                                      122880
+      /net/mars/var/tmp/adm/route.log                                  266240
+      /net/mars/var/tmp/adm/pppd.log                                   425984
+      /net/mars/var/tmp/adm/wtmpx                                      2842624
+
+
+
+In the above demonstration, we run nfswizard.d for several seconds then hit
+Ctrl-C. The report contains useful information about NFS client activity,
+including response time statistics and file access details.
+
+Note: this is measuring activity caused by NFS client processes (which must
+be on the same server). It is not examining NFS server processes.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/oneliners_examples.txt b/external/cddl/dtracetoolkit/dist/Examples/oneliners_examples.txt
new file mode 100644
index 0000000..9ca0fa6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/oneliners_examples.txt
@@ -0,0 +1,307 @@
+#
+#   DTrace OneLiners Examples
+#
+
+### New processes with arguments,
+  
+# dtrace -n 'proc:::exec-success { trace(curpsinfo->pr_psargs); }'
+dtrace: description 'proc:::exec-success ' matched 1 probe
+CPU     ID                    FUNCTION:NAME
+  0   3297         exec_common:exec-success   man ls
+  0   3297         exec_common:exec-success   sh -c cd /usr/share/man; tbl /usr/share/man/man1/ls.1 |neqn /usr/share/lib/pub/
+  0   3297         exec_common:exec-success   tbl /usr/share/man/man1/ls.1
+  0   3297         exec_common:exec-success   neqn /usr/share/lib/pub/eqnchar -
+  0   3297         exec_common:exec-success   nroff -u0 -Tlp -man -
+  0   3297         exec_common:exec-success   col -x
+  0   3297         exec_common:exec-success   sh -c trap '' 1 15; /usr/bin/mv -f /tmp/mpzIaOZF /usr/share/man/cat1/ls.1 2> /d
+  0   3297         exec_common:exec-success   /usr/bin/mv -f /tmp/mpzIaOZF /usr/share/man/cat1/ls.1
+  0   3297         exec_common:exec-success   sh -c more -s /tmp/mpzIaOZF
+  0   3297         exec_common:exec-success   more -s /tmp/mpzIaOZF
+
+
+### Files opened by process,
+ 
+# dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }'
+dtrace: description 'syscall::open*:entry ' matched 2 probes
+CPU     ID                    FUNCTION:NAME
+  0     14                       open:entry gnome-netstatus- /dev/kstat
+  0     14                       open:entry man /var/ld/ld.config
+  0     14                       open:entry man /lib/libc.so.1
+  0     14                       open:entry man /usr/share/man/man.cf
+  0     14                       open:entry man /usr/share/man/windex
+  0     14                       open:entry man /usr/share/man/man1/ls.1
+  0     14                       open:entry man /usr/share/man/man1/ls.1
+  0     14                       open:entry man /tmp/mpqea4RF
+  0     14                       open:entry sh /var/ld/ld.config
+  0     14                       open:entry sh /lib/libc.so.1
+  0     14                       open:entry neqn /var/ld/ld.config
+  0     14                       open:entry neqn /lib/libc.so.1
+  0     14                       open:entry neqn /usr/share/lib/pub/eqnchar
+  0     14                       open:entry tbl /var/ld/ld.config
+  0     14                       open:entry tbl /lib/libc.so.1
+  0     14                       open:entry tbl /usr/share/man/man1/ls.1
+  0     14                       open:entry nroff /var/ld/ld.config
+[...]
+
+
+### Syscall count by program,
+ 
+# dtrace -n 'syscall:::entry { @num[execname] = count(); }'
+dtrace: description 'syscall:::entry ' matched 228 probes
+^C
+  snmpd                                                             1
+  utmpd                                                             2
+  inetd                                                             2
+  nscd                                                              7
+  svc.startd                                                       11
+  sendmail                                                         31
+  poold                                                           133
+  dtrace                                                         1720
+
+
+### Syscall count by syscall,
+ 
+# dtrace -n 'syscall:::entry { @num[probefunc] = count(); }'
+dtrace: description 'syscall:::entry ' matched 228 probes
+^C
+  fstat                                                             1
+  setcontext                                                        1
+  lwp_park                                                          1
+  schedctl                                                          1
+  mmap                                                              1
+  sigaction                                                         2
+  pset                                                              2
+  lwp_sigmask                                                       2
+  gtime                                                             3
+  sysconfig                                                         3
+  write                                                             4
+  brk                                                               6
+  pollsys                                                           7
+  p_online                                                        558
+  ioctl                                                           579
+
+
+### Syscall count by process,
+ 
+# dtrace -n 'syscall:::entry { @num[pid,execname] = count(); }'
+dtrace: description 'syscall:::entry ' matched 228 probes
+^C
+     1109  svc.startd                                                        1
+     4588  svc.startd                                                        2
+        7  svc.startd                                                        2
+     3950  svc.startd                                                        2
+     1626  nscd                                                              2
+      870  svc.startd                                                        2
+       82  nscd                                                              6
+     5011  sendmail                                                         10
+     6010  poold                                                            74
+     8707  dtrace                                                         1720
+
+
+### Read bytes by process,
+  
+# dtrace -n 'sysinfo:::readch { @bytes[execname] = sum(arg0); }'
+dtrace: description 'sysinfo:::readch ' matched 4 probes
+^C
+ 
+  mozilla-bin                                                      16
+  gnome-smproxy                                                    64
+  metacity                                                         64
+  dsdm                                                             64
+  wnck-applet                                                      64
+  xscreensaver                                                     96
+  gnome-terminal                                                  900
+  ttymon                                                         5952
+  Xorg                                                          17544
+ 
+
+### Write bytes by process,
+ 
+# dtrace -n 'sysinfo:::writech { @bytes[execname] = sum(arg0); }'
+dtrace: description 'sysinfo:::writech ' matched 4 probes
+^C
+
+  dtrace                                                            1
+  gnome-settings-d                                                  8
+  xscreensaver                                                      8
+  gnome-panel                                                       8
+  nautilus                                                          8
+  date                                                             29
+  wnck-applet                                                     120
+  bash                                                            210
+  mozilla-bin                                                    1497
+  ls                                                             1947
+  metacity                                                       3172
+  Xorg                                                           7424
+  gnome-terminal                                                51955
+
+
+### Read size distribution by process,
+ 
+# dtrace -n 'sysinfo:::readch { @dist[execname] = quantize(arg0); }'
+dtrace: description 'sysinfo:::readch ' matched 4 probes
+^C
+[...]
+  gnome-terminal
+           value  ------------- Distribution ------------- count
+              16 |                                         0
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   15
+              64 |@@@                                      1
+             128 |                                         0
+ 
+  Xorg
+           value  ------------- Distribution ------------- count
+              -1 |                                         0
+               0 |@@@@@@@@@@@@@@@@@@@                      26
+               1 |                                         0
+               2 |                                         0
+               4 |                                         0
+               8 |@@@@                                     6
+              16 |@                                        2
+              32 |@                                        2
+              64 |                                         0
+             128 |@@@@@@@@                                 11
+             256 |@@@                                      4
+             512 |                                         0
+
+
+### Write size distribution by process,
+ 
+# dtrace -n 'sysinfo:::writech { @dist[execname] = quantize(arg0); }'
+dtrace: description 'sysinfo:::writech ' matched 4 probes
+^C
+[...]
+  Xorg
+           value  ------------- Distribution ------------- count
+              16 |                                         0
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       169
+              64 |@@@                                      16
+             128 |@@                                       10
+             256 |                                         0
+ 
+  gnome-terminal
+           value  ------------- Distribution ------------- count
+               0 |                                         0
+               1 |@@                                       6
+               2 |                                         0
+               4 |                                         0
+               8 |                                         1
+              16 |@                                        2
+              32 |@@@                                      7
+              64 |                                         0
+             128 |@@@@@@@@@@@@@@@@@@@@@@@                  63
+             256 |@@@@                                     10
+             512 |                                         1
+            1024 |@@@@@                                    13
+            2048 |@                                        2
+            4096 |@@@                                      7
+
+
+### Disk size by process,
+  
+# dtrace -n 'io:::start { printf("%d %s %d",pid,execname,args[0]->b_bcount); }'
+  0   3271              bdev_strategy:start 16459 tar 1024
+  0   3271              bdev_strategy:start 16459 tar 1024
+  0   3271              bdev_strategy:start 16459 tar 2048
+  0   3271              bdev_strategy:start 16459 tar 1024
+  0   3271              bdev_strategy:start 16459 tar 1024
+  0   3271              bdev_strategy:start 16459 tar 1024
+  0   3271              bdev_strategy:start 16459 tar 8192
+  0   3271              bdev_strategy:start 16459 tar 8192
+  0   3271              bdev_strategy:start 16459 tar 16384
+  0   3271              bdev_strategy:start 16459 tar 2048
+  0   3271              bdev_strategy:start 16459 tar 1024
+  0   3271              bdev_strategy:start 16459 tar 1024
+
+
+### Pages paged in by process,
+ 
+# dtrace -n 'vminfo:::pgpgin { @pg[execname] = sum(arg0); }'
+dtrace: description 'vminfo:::pgpgin ' matched 1 probe
+^C
+ 
+  ttymon                                                            1
+  bash                                                              1
+  mozilla-bin                                                      36
+  tar                                                            6661
+
+
+### Minor faults by process,
+  
+# dtrace -n 'vminfo:::as_fault { @mem[execname] = sum(arg0); }'
+dtrace: description 'vminfo:::as_fault ' matched 1 probe
+^C
+ 
+  mozilla-bin                                                      18
+  dtrace                                                           57
+  find                                                             64
+  bash                                                            150
+  tar                                                             501
+
+
+### Interrupts by CPU,
+ 
+# dtrace -n 'sdt:::interrupt-start { @num[cpu] = count(); }'
+dtrace: description 'sdt:::interrupt-start ' matched 1 probe
+^C
+ 
+      513                2
+      515                4
+        3               39
+        2               39
+
+
+### New processes with arguments and time,
+ 
+# dtrace -qn 'syscall::exec*:return { printf("%Y %s\n",walltimestamp,curpsinfo->pr_psargs); }'
+2005 Apr 25 19:15:09 man ls
+2005 Apr 25 19:15:09 sh -c cd /usr/share/man; tbl /usr/share/man/man1/ls.1 |...
+2005 Apr 25 19:15:09 neqn /usr/share/lib/pub/eqnchar -
+2005 Apr 25 19:15:09 tbl /usr/share/man/man1/ls.1
+2005 Apr 25 19:15:09 nroff -u0 -Tlp -man -
+2005 Apr 25 19:15:09 col -x
+2005 Apr 25 19:15:10 sh -c trap '' 1 15; /usr/bin/mv -f /tmp/mpRZaqTF /usr/s...
+2005 Apr 25 19:15:10 /usr/bin/mv -f /tmp/mpRZaqTF /usr/share/man/cat1/ls.1
+2005 Apr 25 19:15:10 sh -c more -s /tmp/mpRZaqTF
+2005 Apr 25 19:15:10 more -s /tmp/mpRZaqTF
+[...]
+
+
+### Successful signal details,
+  
+# dtrace -n 'proc:::signal-send /pid/ { printf("%s -%d %d",execname,args[2],args[1]->pr_pid); }'
+dtrace: description 'proc:::signal-send ' matched 1 probe
+CPU     ID                    FUNCTION:NAME
+  0   3303            sigtoproc:signal-send bash -15 16442
+  0   3303            sigtoproc:signal-send bash -9 16443
+^C
+
+
+### Kernel function calls by module,
+
+# dtrace -n 'fbt:::entry { @calls[probemod] = count(); }'
+dtrace: description 'fbt:::entry ' matched 18437 probes
+^C
+
+  devfs                                                             2
+  ptm                                                               2
+  ipf                                                               5
+  pts                                                               5
+  ttcompat                                                          9
+  ptem                                                              9
+  ldterm                                                           23
+  ipgpc                                                            24
+  ufs                                                              24
+  ata                                                              25
+  sockfs                                                           27
+  gld                                                              32
+  rtls                                                             34
+  flowacct                                                         38
+  specfs                                                           50
+  ip                                                               84
+  TS                                                               92
+  uhci                                                            101
+  uppc                                                           1758
+  unix                                                           6347
+  genunix                                                       10023
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/opensnoop_example.txt b/external/cddl/dtracetoolkit/dist/Examples/opensnoop_example.txt
new file mode 100644
index 0000000..329d09b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/opensnoop_example.txt
@@ -0,0 +1,110 @@
+The following are examples of opensnoop. File open events are traced
+along with some process details.
+
+
+This first example is of the default output. The commands "cat", "cal",
+"ls" and "uname" were run. The returned file descriptor (or -1 for error) are
+shown, along with the filenames.
+
+  # ./opensnoop
+    UID   PID COMM          FD PATH
+    100  3504 cat           -1 /var/ld/ld.config
+    100  3504 cat            3 /usr/lib/libc.so.1
+    100  3504 cat            3 /etc/passwd
+    100  3505 cal           -1 /var/ld/ld.config
+    100  3505 cal            3 /usr/lib/libc.so.1
+    100  3505 cal            3 /usr/share/lib/zoneinfo/Australia/NSW
+    100  3506 ls            -1 /var/ld/ld.config
+    100  3506 ls             3 /usr/lib/libc.so.1
+    100  3507 uname         -1 /var/ld/ld.config
+    100  3507 uname          3 /usr/lib/libc.so.1
+  [...]
+
+
+Full command arguments can be fetched using -g,
+
+  # ./opensnoop -g
+    UID   PID PATH                                   FD ARGS
+    100  3528 /var/ld/ld.config                      -1 cat /etc/passwd
+    100  3528 /usr/lib/libc.so.1                      3 cat /etc/passwd
+    100  3528 /etc/passwd                             3 cat /etc/passwd
+    100  3529 /var/ld/ld.config                      -1 cal
+    100  3529 /usr/lib/libc.so.1                      3 cal
+    100  3529 /usr/share/lib/zoneinfo/Australia/NSW   3 cal
+    100  3530 /var/ld/ld.config                      -1 ls -l
+    100  3530 /usr/lib/libc.so.1                      3 ls -l
+    100  3530 /var/run/name_service_door              3 ls -l
+    100  3530 /usr/share/lib/zoneinfo/Australia/NSW   4 ls -l
+    100  3531 /var/ld/ld.config                      -1 uname -a
+    100  3531 /usr/lib/libc.so.1                      3 uname -a
+  [...]
+
+
+
+The verbose option prints human readable timestamps,
+
+  # ./opensnoop -v
+  STRTIME                UID   PID COMM          FD PATH
+  2005 Jan 22 01:22:50     0 23212 df            -1 /var/ld/ld.config
+  2005 Jan 22 01:22:50     0 23212 df             3 /lib/libcmd.so.1
+  2005 Jan 22 01:22:50     0 23212 df             3 /lib/libc.so.1
+  2005 Jan 22 01:22:50     0 23212 df             3 /platform/SUNW,Sun-Fire-V210/lib/libc_psr.so.1
+  2005 Jan 22 01:22:50     0 23212 df             3 /etc/mnttab
+  2005 Jan 22 01:22:50     0 23211 dtrace         4 /usr/share/lib/zoneinfo/Australia/NSW
+  2005 Jan 22 01:22:51     0 23213 uname         -1 /var/ld/ld.config
+  2005 Jan 22 01:22:51     0 23213 uname          3 /lib/libc.so.1
+  2005 Jan 22 01:22:51     0 23213 uname          3 /platform/SUNW,Sun-Fire-V210/lib/libc_psr.so.1
+  [...]
+
+
+
+Particular files can be monitored using -f. For example,
+
+  # ./opensnoop -vgf /etc/passwd
+  STRTIME                UID   PID PATH                  FD ARGS
+  2005 Jan 22 01:28:50     0 23242 /etc/passwd            3 cat /etc/passwd
+  2005 Jan 22 01:28:54     0 23243 /etc/passwd            4 vi /etc/passwd
+  2005 Jan 22 01:29:06     0 23244 /etc/passwd            3 passwd brendan
+  [...]
+
+
+
+This example is of opensnoop running on a quiet system. We can see as 
+various daemons are opening files,
+
+   # ./opensnoop
+     UID   PID COMM          FD PATH
+       0   253 nscd           5 /etc/user_attr
+       0   253 nscd           5 /etc/hosts
+       0   419 mibiisa        2 /dev/kstat
+       0   419 mibiisa        2 /dev/rtls
+       0   419 mibiisa        2 /dev/kstat
+       0   419 mibiisa        2 /dev/kstat
+       0   419 mibiisa        2 /dev/rtls
+       0   419 mibiisa        2 /dev/kstat
+       0   253 nscd           5 /etc/user_attr
+       0   419 mibiisa        2 /dev/kstat
+       0   419 mibiisa        2 /dev/rtls
+       0   419 mibiisa        2 /dev/kstat
+       0   174 in.routed      8 /dev/kstat
+       0   174 in.routed      8 /dev/kstat
+       0   174 in.routed      6 /dev/ip
+       0   419 mibiisa        2 /dev/kstat
+       0   419 mibiisa        2 /dev/rtls
+       0   419 mibiisa        2 /dev/kstat
+       0   293 utmpd          4 /var/adm/utmpx
+       0   293 utmpd          5 /var/adm/utmpx
+       0   293 utmpd          6 /proc/442/psinfo
+       0   293 utmpd          6 /proc/567/psinfo
+       0   293 utmpd          6 /proc/567/psinfo
+       0   293 utmpd          6 /proc/567/psinfo
+       0   293 utmpd          6 /proc/567/psinfo
+       0   293 utmpd          6 /proc/567/psinfo
+       0   293 utmpd          6 /proc/567/psinfo
+       0   293 utmpd          6 /proc/567/psinfo
+       0   293 utmpd          6 /proc/567/psinfo
+       0   293 utmpd          6 /proc/3013/psinfo
+       0   419 mibiisa        2 /dev/kstat
+       0   419 mibiisa        2 /dev/rtls
+       0   419 mibiisa        2 /dev/kstat
+  [...]
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pathopens_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pathopens_example.txt
new file mode 100644
index 0000000..b5004dd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pathopens_example.txt
@@ -0,0 +1,32 @@
+The following is a demonstration of the pathopens.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+   # pathopens.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    COUNT PATHNAME
+        1 /lib/libcmd.so.1
+        1 /export/home/root/DTrace/Dexplorer/dexplorer
+        1 /lib/libmd5.so.1
+        1 /lib/libaio.so.1
+        1 /lib/librt.so.1
+        1 /etc/security/prof_attr
+        1 /etc/mnttab
+        2 /devices/pseudo/devinfo@0:devinfo
+        2 /dev/kstat
+        2 /lib/libnvpair.so.1
+        2 /lib/libkstat.so.1
+        2 /lib/libdevinfo.so.1
+        2 /lib/libnsl.so.1
+        4 /lib/libc.so.1
+        4 /var/ld/ld.config
+        8 /export/home/brendan/Utils_solx86/setiathome-3.08.i386-pc-solaris2.6/outfile.sah
+
+In the above output, many of the files would have been opened using 
+absolute pathnames. However the "dexplorer" file was opened using a relative
+pathname - and the pathopens.d script has correctly printed the full path.
+
+The above shows that the outfile.sah file was opened successfully 8 times.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pfilestat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pfilestat_example.txt
new file mode 100644
index 0000000..b2c54a0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pfilestat_example.txt
@@ -0,0 +1,200 @@
+The following are sample outputs of the pfilestat tool for various scenarios.
+
+
+
+Starting with something simple,
+
+Running: dd if=/dev/rdsk/c0d0s0 of=/dev/null bs=56k	# x86, 32-bit
+
+   # ./pfilestat `pgrep -x dd`
+   
+        STATE   FDNUM      Time Filename
+         read       3        2% /devices/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
+        write       4        3% /devices/pseudo/mm@0:null
+      waitcpu       0        7%
+      running       0       16%
+      sleep-r       0       69%
+   
+        STATE   FDNUM      KB/s Filename
+        write       4     53479 /devices/pseudo/mm@0:null
+         read       3     53479 /devices/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
+   
+   Total event time (ms): 4999   Total Mbytes/sec: 104
+
+Most of the time we are sleeping on read, which is to be expected as dd on
+the raw device is simple -> read:entry, strategy, biodone, read:return.
+CPU time in read() itself is small.
+
+
+
+Now for the dsk device,
+
+Running: dd if=/dev/dsk/c0d0s0 of=/dev/null bs=56k	# x86, 32-bit
+
+   # ./pfilestat `pgrep -x dd`
+   
+        STATE   FDNUM      Time Filename
+        write       4        5% /devices/pseudo/mm@0:null
+      waitcpu       0        8%
+      running       0       15%
+      sleep-r       0       18%
+         read       3       53% /devices/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
+   
+        STATE   FDNUM      KB/s Filename
+         read       3     53492 /devices/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
+        write       4     53492 /devices/pseudo/mm@0:null
+   
+   Total event time (ms): 4914   Total Mbytes/sec: 102
+
+Woah, we are now spending much more time in read()! I imagine segmap is
+a busy bee. The "running" and "write" times are hardly different.
+
+
+
+Now for a SPARC demo of the same,
+
+Running: dd if=/dev/dsk/c0d0s0 of=/dev/null bs=56k	# SPARC, 64-bit
+
+   # ./pfilestat `pgrep -x dd`
+
+        STATE   FDNUM      Time Filename
+        write       4        3% /devices/pseudo/mm@0:zero
+      waitcpu       0        7%
+      running       0       17%
+         read       3       24% /devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a
+      sleep-r       0       54%
+   
+        STATE   FDNUM      KB/s Filename
+         read       3     13594 /devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a
+        write       4     13606 /devices/pseudo/mm@0:zero
+   
+   Total event time (ms): 4741   Total Mbytes/sec: 25
+
+I did prime the cache by running this a few times first. There is less
+read() time than with the x86 32-bit demo, as I would guess that the
+process is more often exhausting the (faster) segmap cache and getting
+to the point where it must sleep. (However, do take this comparison with
+a grain of salt - my development servers aren't ideal for comparing
+statistics: one is a 867 MHz Pentium, and the other a 360 MHz Ultra 5).
+
+The file system cache is faster on 64-bit systems due to the segkpm
+enhancement in Solaris 10. For details see,
+http://blogs.sun.com/roller/page/rmc?entry=solaris_10_fast_filesystem_cache
+
+
+
+Now, back to x86.
+
+Running: tar cf /dev/null /
+
+   # ./pfilestat `pgrep -x tar`
+   
+        STATE   FDNUM      Time Filename
+         read      11        0% /extra1/test/amd64/libCstd.so.1
+         read      11        0% /extra1/test/amd64/libXm.so
+         read      11        0% /extra1/test/amd64/libXm.so.4
+         read      11        1% /extra1/test/amd64/libgtk-x11-2.0.so
+         read      11        2% /extra1/test/amd64/libgtk-x11-2.0.so.0
+      waitcpu       0        2%
+         read       9        4% /extra1/5000
+        write       3        7% /devices/pseudo/mm@0:null
+      running       0       19%
+      sleep-r       0       46%
+   
+        STATE   FDNUM      KB/s Filename
+         read      11       293 /extra1/test/amd64/libgdk-x11-2.0.so
+         read      11       295 /extra1/test/amd64/libgdk-x11-2.0.so.0
+         read       9       476 /extra1/1000
+         read      11       526 /extra1/test/amd64/libCstd.so.1
+         read      11       594 /extra1/test/amd64/libXm.so.4
+         read      11       594 /extra1/test/amd64/libXm.so
+         read      11      1603 /extra1/test/amd64/libgtk-x11-2.0.so.0
+         read      11      1606 /extra1/test/amd64/libgtk-x11-2.0.so
+         read       9      4078 /extra1/5000
+        write       3     21254 /devices/pseudo/mm@0:null
+   
+   Total event time (ms): 4903   Total Mbytes/sec: 41
+
+Fair enough. tar is crusing along at 21 Mbytes/sec (writes to fd 3!).
+
+
+
+More interesting is to do the following,
+
+Running: tar cf - / | gzip > /dev/null
+
+   # ./pfilestat `pgrep -x tar`
+   
+        STATE   FDNUM      Time Filename
+         read      11        0% /extra1/test/amd64/libm.so
+         read      11        0% /extra1/test/amd64/libm.so.2
+         read      11        0% /extra1/test/amd64/libnsl.so
+         read      11        0% /extra1/test/amd64/libnsl.so.1
+         read      11        0% /extra1/test/amd64/libc.so.1
+        write       3        2% <none>
+      waitcpu       0        4%
+      sleep-r       0        4%
+      running       0        6%
+      sleep-w       0       78%
+   
+        STATE   FDNUM      KB/s Filename
+         read      11        74 /extra1/test/amd64/libldap.so
+         read      11        75 /extra1/test/amd64/libldap.so.5
+         read      11        75 /extra1/test/amd64/libresolv.so.2
+         read      11        76 /extra1/test/amd64/libresolv.so
+         read      11        97 /extra1/test/amd64/libm.so.2
+         read      11        98 /extra1/test/amd64/libm.so
+         read      11       174 /extra1/test/amd64/libnsl.so
+         read      11       176 /extra1/test/amd64/libnsl.so.1
+         read      11       216 /extra1/test/amd64/libc.so.1
+        write       3      3022 <none>
+   
+   Total event time (ms): 4911   Total Mbytes/sec: 6
+
+Woah now, tar is writing 3 Mbytes/sec - AND spending 78% of it's time on
+sleep-w, sleeping on writes! Of course, this is because we are piping the
+output to gzip, which is spending a while compressing the data. 78%
+matches the time gzip was on the CPU (using either "prstat -m" or dtrace
+to measure; procfs's pr_pctcpu would take too long to catch up).
+
+
+
+
+Also interesting is,
+
+Running: perl -e 'while (1) {;}' &
+Running: perl -e 'while (1) {;}' &
+Running: perl -e 'while (1) {;}' &
+Running: perl -e 'while (1) {;}' &
+Running: tar cf /dev/null /
+
+   # ./pfilestat `pgrep -x tar`
+
+        STATE   FDNUM      Time Filename
+         read      11        0% /extra1/test/amd64/libxml2.so.2
+         read      11        0% /extra1/test/amd64/libgdk-x11-2.0.so.0
+         read      11        0% /extra1/test/amd64/libgdk-x11-2.0.so
+         read      11        0% /extra1/test/amd64/libCstd.so.1
+         read      11        0% /extra1/test/amd64/libgtk-x11-2.0.so.0
+         read      11        2% /extra1/test/amd64/libgtk-x11-2.0.so
+        write       3        2% /devices/pseudo/mm@0:null
+      running       0        8%
+      sleep-r       0       22%
+      waitcpu       0       65%
+   
+        STATE   FDNUM      KB/s Filename
+         read      11       182 /extra1/test/amd64/libsun_fc.so
+         read      11       264 /extra1/test/amd64/libglib-2.0.so
+         read      11       266 /extra1/test/amd64/libglib-2.0.so.0
+         read      11       280 /extra1/test/amd64/libxml2.so.2
+         read      11       293 /extra1/test/amd64/libgdk-x11-2.0.so
+         read      11       295 /extra1/test/amd64/libgdk-x11-2.0.so.0
+         read      11       526 /extra1/test/amd64/libCstd.so.1
+         read      11       761 /extra1/test/amd64/libgtk-x11-2.0.so.0
+         read      11      1606 /extra1/test/amd64/libgtk-x11-2.0.so
+        write       3      7881 /devices/pseudo/mm@0:null
+   
+   Total event time (ms): 4596   Total Mbytes/sec: 13
+
+Now we have "waitcpu" as tar competes for CPU cycles along with the greedy
+infinite perl processes.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pgpginbypid_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pgpginbypid_example.txt
new file mode 100644
index 0000000..8326b90
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pgpginbypid_example.txt
@@ -0,0 +1,14 @@
+The following is a demonstration of the pgpginbypid.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+   # pgpginbypid.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD                         PAGES
+    10692 find                          128
+    10693 tar                         11928
+
+In the output above, we can see which processes are responsible for page ins,
+as well as the number of pages paged in.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pgpginbyproc_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pgpginbyproc_example.txt
new file mode 100644
index 0000000..e8bb821
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pgpginbyproc_example.txt
@@ -0,0 +1,13 @@
+The following is a demonstration of the pgpginbyproc.d script,
+
+   # pgpginbyproc.d
+   dtrace: description 'vminfo:::pgpgin ' matched 1 probe
+   ^C
+    
+     ttymon                                                            1
+     bash                                                              1
+     mozilla-bin                                                      36
+     tar                                                            6661
+
+In the above output, tar processes have paged in 6661 pages from the filesystem.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/php_calldist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/php_calldist_example.txt
new file mode 100644
index 0000000..db3b0af
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/php_calldist_example.txt
@@ -0,0 +1,84 @@
+The following are examples of php_calldist.d.
+
+This script traces the elapsed time of PHP functions and prints a report 
+containing distribution plots per subroutine. Here it traces the example program
+Code/Php/func_abc.php.
+
+# php_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive function elapsed times (us),
+   func_abc.php, func, func_a 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   func_abc.php, func, func_b 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   func_abc.php, func, func_c 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   func_abc.php, func, sleep 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+         1048576 |                                         0        
+
+
+Inclusive function elapsed times (us),
+   func_abc.php, func, func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   func_abc.php, func, func_b 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   func_abc.php, func, sleep 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+         1048576 |                                         0        
+
+   func_abc.php, func, func_a 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+In total, 3 subroutines were called, one each of func_a(), func_b() and
+func_c(), and sleep was called 3 times.  You can see this reflected in the
+"count" column on the right.
+
+The exclusive subroutine elapsed times show that each subroutine spent
+between 256 and 512 microseconds. This time excludes the time spent in
+other subroutines.
+
+The inclusive subroutine elapsed times show that func_c() took between 0.5 
+seconds and 1 second, func_b() took between 1 second and 2.1 seconds, and 
+func_a() took between 2.1 seconds and 4.2 seconds to execute. This time 
+includes the time spent in other subroutines called, and since func_a() called 
+func_b() which called func_c(), these times make sense.
+
+These elapsed times are the absolute time from when the subroutine began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
+Elapsed times are useful for identifying where latencies are.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/php_calltime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/php_calltime_example.txt
new file mode 100644
index 0000000..d76cb6e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/php_calltime_example.txt
@@ -0,0 +1,51 @@
+The following is an example of running php_calltime.d and tracing the elapsed
+times for functions.
+
+We run php_calltime.d while running the program Code/Php/func_abc.php.  We can
+see that there are three sections in the DTrace output
+
+# php_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   func_abc.php         func       func_a                                  1
+   func_abc.php         func       func_b                                  1
+   func_abc.php         func       func_c                                  1
+   func_abc.php         func       sleep                                   3
+   -                    total      -                                       6
+
+Exclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_abc.php         func       func_c                                330
+   func_abc.php         func       func_b                                367
+   func_abc.php         func       func_a                                418
+   func_abc.php         func       sleep                             3025644
+   -                    total      -                                 3026761
+
+Inclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_abc.php         func       func_c                            1010119
+   func_abc.php         func       func_b                            2020118
+   func_abc.php         func       sleep                             3025644
+   func_abc.php         func       func_a                            3026761
+
+Section 1 - Count shows us how many times each function was called in the
+Code/Php/func_abc.php program, with the last line giving us a total number of
+functions called (in this case, six).
+
+Section 2 - These elapsed times shows us how many microseconds the program 
+spends in each function.  This does not include the time spent in any 
+sub-functions called by that particular function.  Again the last line gives
+us the total time in microseconds.
+
+Section 3 - These elapsed times are the absolute time from when the function began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc. In particular, for this case it has
+included the time waiting for the sleep commands.
+
+Elapsed times are useful for identifying where latencies are.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive function time.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/php_cpudist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/php_cpudist_example.txt
new file mode 100644
index 0000000..6da7d29
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/php_cpudist_example.txt
@@ -0,0 +1,84 @@
+The following are examples of php_cpudist.d.
+
+This script traces the on-CPU time of PHP functions and prints a report
+containing distribution plots per subroutine. Here it traces the example 
+program Code/Php/func_abc.php.
+
+# php_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive function on-CPU times (us),
+   func_abc.php, func, func_a 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   func_abc.php, func, func_b 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   func_abc.php, func, func_c 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   func_abc.php, func, sleep 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+
+Inclusive function on-CPU times (us),
+   func_abc.php, func, func_c 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   func_abc.php, func, sleep 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              32 |                                         0        
+
+   func_abc.php, func, func_b 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   func_abc.php, func, func_a 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+In total, 3 subroutines were called, one each of func_a(), func_b() and
+func_c(), and sleep was called 3 times.  You can see this reflected in the
+"count" column on the right.
+
+The exclusive subroutine elapsed times show that each subroutine spent
+between 16 and 31 microseconds on CPU. This time excludes the time spent in
+other subroutines.
+
+The inclusive subroutine elapsed times show that func_c() took between 32 
+microseconds and 63 microseconds on CPU; sleep ran three times and each time 
+took between 16 and 31 microseconds on CPU; func_b() took between 64 and 127 
+microseconds on CPU; and func_a() took between 128 and 255 microseconds on
+CPU.  This time includes the time spent in other subroutines called, and since 
+func_a() called func_b() which called func_c(), these times make sense.
+
+These elapsed times are the on CPU time from when the subroutine began to
+when it completed.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/php_cputime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/php_cputime_example.txt
new file mode 100644
index 0000000..db218e1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/php_cputime_example.txt
@@ -0,0 +1,58 @@
+The following are examples of php_cputime.d.
+
+This script traces the on-CPU time of PHP functions and prints a report. 
+Here it traces the example program, Code/Php/func_abc.php.
+
+# php_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   func_abc.php         func       func_a                                  1
+   func_abc.php         func       func_b                                  1
+   func_abc.php         func       func_c                                  1
+   func_abc.php         func       sleep                                   3
+   -                    total      -                                       6
+
+Exclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_abc.php         func       func_c                                 17
+   func_abc.php         func       func_b                                 25
+   func_abc.php         func       func_a                                 74
+   func_abc.php         func       sleep                                  93
+   -                    total      -                                     210
+
+Inclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_abc.php         func       func_c                                 39
+   func_abc.php         func       func_b                                 87
+   func_abc.php         func       sleep                                  93
+   func_abc.php         func       func_a                                210
+
+In total, six functions were called; sleep was called three times and there
+was one call each of func_a(), func_b() and func_c().
+
+The exclusive subroutine on-CPU times show that func_a() spent around 74
+microseconds on-CPU, func_b() spent 25 microseconds on-CPU, and func_c() spent 
+17 microseconds on-CPU. This exclusive times excludes time spent in other 
+subroutines.
+
+The inclusive subroutine on-CPU times show that func_c() spent around 39
+microseconds on-CPU, func_b() spent around 87 microseconds on-CPU and 
+func_a() spent around 210 microseconds. This inclusive time includes the time 
+spent in other functions called (including sleep),  and since func_a() called 
+func_b() which called func_c(), these times make perfect sense.
+
+These on-CPU times are the time the program spent running on a CPU, from when
+the function began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
+If you study the func_abc.php program alongside the above output, the numbers
+should make sense.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/php_flow_example.txt b/external/cddl/dtracetoolkit/dist/Examples/php_flow_example.txt
new file mode 100644
index 0000000..6470daf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/php_flow_example.txt
@@ -0,0 +1,36 @@
+The following are examples of php_flow.d.
+
+This is a simple script to trace the flow of PHP functions.
+Here it traces the example program, Code/Php/func_abc.php
+
+# php_flow.d 
+  C TIME(us)         FILE             -- FUNC
+  0 3645535409575    func_abc.php     -> func_a
+  0 3645535409653    func_abc.php       -> sleep
+  0 3645536410511    func_abc.php       <- sleep
+  0 3645536410536    func_abc.php       -> func_b
+  0 3645536410557    func_abc.php         -> sleep
+  0 3645537420627    func_abc.php         <- sleep
+  0 3645537420652    func_abc.php         -> func_c
+  0 3645537420673    func_abc.php           -> sleep
+  0 3645538430106    func_abc.php           <- sleep
+  0 3645538430125    func_abc.php         <- func_c
+  0 3645538430134    func_abc.php       <- func_b
+  0 3645538430143    func_abc.php     <- func_a
+^C
+
+The fourth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which - the output above begins by
+showing that func_a() began; slept, and returned from sleep; and then called
+func_b().
+
+The TIME(us) column shows time from boot in microseconds.
+
+The FILE column shows the file that was being executed. 
+
+If the output looks strange, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/php_flowinfo_example.txt b/external/cddl/dtracetoolkit/dist/Examples/php_flowinfo_example.txt
new file mode 100644
index 0000000..3b2e3c1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/php_flowinfo_example.txt
@@ -0,0 +1,40 @@
+The following are examples of php_flowinfo.d.
+
+This is a simple script to trace the flow of PHP functions.
+Here it traces the example program, Code/Php/func_abc.php
+
+# php_flowinfo.d 
+C    PID/TID   DELTA(us)              FILE:LINE TYPE     -- FUNC
+0  18422/1             9      func_abc.php:22   func     -> func_a
+0  18422/1            35      func_abc.php:18   func       -> sleep
+0  18422/1       1009146      func_abc.php:18   func       <- sleep
+0  18422/1            35      func_abc.php:19   func       -> func_b
+0  18422/1            24      func_abc.php:11   func         -> sleep
+0  18422/1       1009803      func_abc.php:11   func         <- sleep
+0  18422/1            34      func_abc.php:12   func         -> func_c
+0  18422/1            24      func_abc.php:5    func           -> sleep
+0  18422/1       1009953      func_abc.php:5    func           <- sleep
+0  18422/1            28      func_abc.php:6    func         <- func_c
+0  18422/1            11      func_abc.php:13   func       <- func_b
+0  18422/1            10      func_abc.php:20   func     <- func_a
+^C
+
+The third column is indented by 2 spaces to show when a new function begins. 
+This shows which function is calling which - the output above begins by 
+showing that func_a() began; slept, and returned from sleep; and then called 
+func_b().
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the second line of data output
+(skipping the header) reads as "the time from func_a() beginning to
+calling the sleep function beginning was 35 microseconds".
+
+The LINE column shows the line in the file what was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/php_flowtime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/php_flowtime_example.txt
new file mode 100644
index 0000000..57eb69c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/php_flowtime_example.txt
@@ -0,0 +1,41 @@
+The following are examples of php_flowtime.d.
+
+This is a simple script to trace the flow of PHP functions.
+Here it traces the example program, Code/Php/func_abc.php
+
+# php_flowtime.d
+  C TIME(us)         FILE             DELTA(us)  -- FUNC
+  0 3646108339057    func_abc.php             9 -> func_a
+  0 3646108339090    func_abc.php            32   -> sleep
+  0 3646109341043    func_abc.php       1001953   <- sleep
+  0 3646109341074    func_abc.php            31   -> func_b
+  0 3646109341098    func_abc.php            23     -> sleep
+  0 3646110350712    func_abc.php       1009614     <- sleep
+  0 3646110350745    func_abc.php            32     -> func_c
+  0 3646110350768    func_abc.php            23       -> sleep
+  0 3646111362323    func_abc.php       1011554       <- sleep
+  0 3646111362351    func_abc.php            27     <- func_c
+  0 3646111362361    func_abc.php            10   <- func_b
+  0 3646111362370    func_abc.php             9 <- func_a
+^C
+
+The fifth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which - the output above begins by
+showing that func_a() began; slept, and returned from sleep; and then called
+func_b().
+
+The TIME(us) column shows time since boot.
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the second line of data output
+(skipping the header) reads as "the time from func_a() beginning to
+calling the sleep function beginning was 32 microseconds".
+
+The FILE column shows file that was being executed. 
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/php_funccalls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/php_funccalls_example.txt
new file mode 100644
index 0000000..7155a71
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/php_funccalls_example.txt
@@ -0,0 +1,17 @@
+The following are examples of php_funccalls.d.
+
+This is a simple script to count executed PHP functions. Here it traces
+an example program, Code/Php/func_abc.php
+
+# php_funccalls.d 
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE                             FUNC                                CALLS
+ func_abc.php                     func_a                                  1
+ func_abc.php                     func_b                                  1
+ func_abc.php                     func_c                                  1
+ func_abc.php                     sleep                                   3
+
+While tracing, func_a() from the program "func_abc.php" was executed once,
+as were func_b() and func_c().  sleep was executed three times.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/php_malloc_example.txt b/external/cddl/dtracetoolkit/dist/Examples/php_malloc_example.txt
new file mode 100644
index 0000000..853d082
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/php_malloc_example.txt
@@ -0,0 +1,23 @@
+Following are examples of running php_malloc.d.
+
+Here it is running on Code/Php/func_abc.php
+
+   # php_malloc.d -p 18523
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   PHP malloc byte distributions by engine caller,
+   
+   
+   PHP malloc byte distributions by PHP file and function,
+
+
+Theoretically this should show you mallocs.  However there weren't any in this
+example.  The rest of these example files would have been so much easier to
+write if they were all like this.  I would have been finished by now and would
+have been flicking through the TV channels with a nice, cold beer in hand.
+
+
+... Fixing this example is on my todo list.  Check for newer versions of the
+toolkit.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/php_syscalls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/php_syscalls_example.txt
new file mode 100644
index 0000000..c783420
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/php_syscalls_example.txt
@@ -0,0 +1,22 @@
+The following are examples of php_syscalls.d.
+
+This is a simple script to count executed PHP functions and system calls.
+Here it traces an example program, Code/Php/func_abc.php
+
+# php_syscalls.d 
+Tracing... Hit Ctrl-C to end.
+^C
+ PID     FILE                       TYPE       NAME                      COUNT
+ 18419   func_abc.php               func       func_a                        1
+ 18419   func_abc.php               func       func_b                        1
+ 18419   func_abc.php               func       func_c                        1
+ 18419   func_abc.php               func       sleep                         3
+ 18419   httpd                      syscall    nanosleep                     3
+
+While tracing, four functions were called - func_a(), func_b(), func_c(), and
+sleep.  There were also three instances of the system call nanosleep().
+
+This script can provide an insight to how a PHP application is interacting
+with the system, by providing both application function calls and system calls 
+in the same output.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/php_syscolors_example.txt b/external/cddl/dtracetoolkit/dist/Examples/php_syscolors_example.txt
new file mode 100644
index 0000000..96b26a8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/php_syscolors_example.txt
@@ -0,0 +1,63 @@
+The following are examples of php_syscolors.d.
+
+This is a simple script to trace the flow of PHP functions and system
+calls made, and renders the output in color ("colour") using terminal
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Php/func_abc.php.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# php_syscolors.d
+C    PID/TID   DELTA(us)              FILE:LINE TYPE     -- NAME
+[2;35m0  18426/1             8      func_abc.php:22   func     -> func_a[0m
+[2;35m0  18426/1            41      func_abc.php:18   func       -> sleep[0m
+[2;32m0  18426/1            15                 ":-    syscall      -> nanosleep[0m
+[2;32m0  18426/1       1008700                 ":-    syscall      <- nanosleep[0m
+[2;35m0  18426/1            30      func_abc.php:18   func       <- sleep[0m
+[2;35m0  18426/1            42      func_abc.php:19   func       -> func_b[0m
+[2;35m0  18426/1            28      func_abc.php:11   func         -> sleep[0m
+[2;32m0  18426/1            14                 ":-    syscall        -> nanosleep[0m
+[2;32m0  18426/1       1010083                 ":-    syscall        <- nanosleep[0m
+[2;35m0  18426/1            29      func_abc.php:11   func         <- sleep[0m
+[2;35m0  18426/1            43      func_abc.php:12   func         -> func_c[0m
+[2;35m0  18426/1            28      func_abc.php:5    func           -> sleep[0m
+[2;32m0  18426/1            14                 ":-    syscall          -> nanosleep[0m
+[2;32m0  18426/1       1009794                 ":-    syscall          <- nanosleep[0m
+[2;35m0  18426/1            28      func_abc.php:5    func           <- sleep[0m
+[2;35m0  18426/1            34      func_abc.php:6    func         <- func_c[0m
+[2;35m0  18426/1            18      func_abc.php:13   func       <- func_b[0m
+[2;35m0  18426/1            17      func_abc.php:20   func     <- func_a[0m
+[2;32m0  18426/1            21                 ":-    syscall  -> fchdir[0m
+[2;32m0  18426/1            19                 ":-    syscall  <- fchdir[0m
+[2;32m0  18426/1             9                 ":-    syscall  -> close[0m
+[2;32m0  18426/1            13                 ":-    syscall  <- close[0m
+[2;32m0  18426/1            35                 ":-    syscall  -> semsys[0m
+[2;32m0  18426/1            12                 ":-    syscall  <- semsys[0m
+[2;32m0  18426/1             7                 ":-    syscall  -> semsys[0m
+[2;32m0  18426/1             7                 ":-    syscall  <- semsys[0m
+[2;32m0  18426/1            66                 ":-    syscall  -> setitimer[0m
+[2;32m0  18426/1             8                 ":-    syscall  <- setitimer[0m
+[2;32m0  18426/1            39                 ":-    syscall  -> read[0m
+[2;32m0  18426/1            14                 ":-    syscall  <- read[0m
+[2;32m0  18426/1            11                 ":-    syscall  -> writev[0m
+[2;32m0  18426/1            22                 ":-    syscall  <- writev[0m
+[2;32m0  18426/1            23                 ":-    syscall  -> write[0m
+[2;32m0  18426/1           110                 ":-    syscall  <- write[0m
+[2;32m0  18426/1            61                 ":-    syscall  -> pollsys[0m
+
+In this excerpt:
+[2;35m0  18426/1            43      func_abc.php:12   func         -> func_c[0m
+[2;35m0  18426/1            28      func_abc.php:5    func           -> sleep[0m
+[2;32m0  18426/1            14                 ":-    syscall          -> nanosleep[0m
+[2;32m0  18426/1       1009794                 ":-    syscall          <- nanosleep[0m
+[2;35m0  18426/1            28      func_abc.php:5    func           <- sleep[0m
+[2;35m0  18426/1            34      func_abc.php:6    func         <- func_c[0m
+
+we can see that we are at Line 12 of the program which invokes func_c.  func_c
+then invokes sleep, which uses the syscall nanosleep.  Approximately one
+second later nanosleep returns, then sleep finishes, then func_c finishes.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/php_who_example.txt b/external/cddl/dtracetoolkit/dist/Examples/php_who_example.txt
new file mode 100644
index 0000000..cee32b2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/php_who_example.txt
@@ -0,0 +1,10 @@
+The following are examples of the results of running php_who.d.
+
+# php_who.d 
+Tracing... Hit Ctrl-C to end.
+^C
+      PID    UID  FUNCS FILE
+   158525     80      7 /opt/coolstack/apache2/htdocs/php/func_abc.php
+
+Running the php_who.d while the func_abc.php program runs, we can see that
+while func_abc.php was running, it called seven functions. 
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pidpersec_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pidpersec_example.txt
new file mode 100644
index 0000000..11f6bd7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pidpersec_example.txt
@@ -0,0 +1,33 @@
+The following is a demonstration of the pidpersec.d script.
+
+
+Here the program is run on an idle system,
+
+   # ./pidpersec.d
+   TIME                    LASTPID  PID/s
+   2005 Jun  9 22:15:09       3010      0
+   2005 Jun  9 22:15:10       3010      0
+   2005 Jun  9 22:15:11       3010      0
+   2005 Jun  9 22:15:12       3010      0
+   2005 Jun  9 22:15:13       3010      0
+   ^C
+
+This shows that there are now new processes being created.
+
+
+
+Now the script is run on a busy system, that is creating many processes
+(which happen to be short-lived),
+
+   # ./pidpersec.d
+   TIME                    LASTPID  PID/s
+   2005 Jun  9 22:16:30       3051     13
+   2005 Jun  9 22:16:31       3063     12
+   2005 Jun  9 22:16:32       3073     10
+   2005 Jun  9 22:16:33       3084     11
+   2005 Jun  9 22:16:34       3096     12
+   ^C
+
+Now we can see that there are over 10 new processes created each second.
+The value for lastpid confirms the rates printed.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pl_calldist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pl_calldist_example.txt
new file mode 100644
index 0000000..f53b7f5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pl_calldist_example.txt
@@ -0,0 +1,456 @@
+The following are examples of pl_calldist.d.
+
+This script traces the elapsed time of Perl subroutines (functions) and
+prints a report containing distribution plots per subroutine. Here it
+traces the example program, Code/Perl/func_abc.pl.
+
+   # pl_calldist.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   Exclusive subroutine elapsed times (us),
+      func_abc.pl, sub, func_a 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+      func_abc.pl, sub, func_b 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+      func_abc.pl, sub, func_c 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+   
+   Inclusive subroutine elapsed times (us),
+      func_abc.pl, sub, func_c 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+      func_abc.pl, sub, func_b 
+              value  ------------- Distribution ------------- count    
+             524288 |                                         0        
+            1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2097152 |                                         0        
+   
+      func_abc.pl, sub, func_a 
+              value  ------------- Distribution ------------- count    
+            1048576 |                                         0        
+            2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4194304 |                                         0        
+   
+In total, 3 subroutines were called - func_a(), func_b(), and func_c().
+
+The exclusive subroutine elapsed times show that each subroutine spent
+between 524 and 1048 ms. This exclusive time excludes the time spent in
+other subroutines.
+
+The inclusive subroutine elapsed times show that func_c() took between 0.5 and
+1.0 seconds, func_b() took between 1.0 and 2.1 seconds, and func_a() took
+between 2.1 and 4.2 seconds to execute. This inclusive time includes the
+time spent in other subroutines called, and since func_a() called func_b()
+which called func_c(), these times make sense.
+
+These elapsed times are the absolute time from when the subroutine began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
+Elapsed times are useful for identifying where latencies are.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive subroutine elapsed times (us),
+   DynaLoader.pm, sub, dl_load_flags 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   Config.pm, sub, TIEHASH 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   Config.pm, sub, DESTROY 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   Config.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   register.pm, sub, mkMask 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+               8 |                                         0        
+
+   Config.pm, sub, FETCH 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     2        
+               4 |@@@@@@@@@@@@@@@@@@@@                     2        
+               8 |                                         0        
+
+   Config.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |@@@@@@@@@@@@@@@@@@@@                     1        
+              32 |                                         0        
+
+   strict.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@                                 1        
+               4 |@@@@@@@@@@@@@@@@                         2        
+               8 |@@@@@@@@                                 1        
+              16 |@@@@@@@@                                 1        
+              32 |                                         0        
+
+   strict.pm, sub, bits 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+               8 |@@@@@@@                                  1        
+              16 |@@@@@@@                                  1        
+              32 |                                         0        
+
+   strict.pm, sub, unimport 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           3        
+              16 |@@@@@@@@@@                               1        
+              32 |                                         0        
+
+   AutoLoader.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@                                  1        
+               4 |@@@@@@@                                  1        
+               8 |@@@@@@@@@@@@@@@@@@@@                     3        
+              16 |@@@@@@@                                  1        
+              32 |                                         0        
+
+   Std.pm, sub, getopts 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   register.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   vars.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   Exporter.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@                     1        
+              64 |@@@@@@@@@@@@@@@@@@@@                     1        
+             128 |                                         0        
+
+   DynaLoader.pm, sub, bootstrap 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   warnings.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   DynaLoader.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@                     1        
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@                     1        
+            2048 |                                         0        
+
+   nicstat, sub, print_neat 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@                   10       
+             128 |@@@@@@@@@@@@@@@@@@                       8        
+             256 |                                         0        
+
+   vars.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@                            1        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@                            1        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+
+   Kstat.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+
+   nicstat, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@                            1        
+             512 |@@@@@@@@@@@@@                            1        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+
+   nicstat, sub, fetch_net_data 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+   nicstat, sub, find_nets 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+
+Inclusive subroutine elapsed times (us),
+   DynaLoader.pm, sub, dl_load_flags 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   Config.pm, sub, TIEHASH 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   Config.pm, sub, DESTROY 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   Config.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   register.pm, sub, mkMask 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+               8 |                                         0        
+
+   Config.pm, sub, FETCH 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     2        
+               4 |@@@@@@@@@@@@@@@@@@@@                     2        
+               8 |                                         0        
+
+   strict.pm, sub, bits 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+               8 |@@@@@@@                                  1        
+              16 |@@@@@@@                                  1        
+              32 |                                         0        
+
+   strict.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@                                 1        
+               4 |@@@@@@@@@@@@@@@@                         2        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@                         2        
+              32 |                                         0        
+
+   Config.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     1        
+              32 |@@@@@@@@@@@@@@@@@@@@                     1        
+              64 |                                         0        
+
+   Std.pm, sub, getopts 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   register.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   strict.pm, sub, unimport 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+              32 |                                         0        
+
+   vars.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   AutoLoader.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@                                  1        
+               4 |@@@@@@@                                  1        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     3        
+              32 |@@@@@@@                                  1        
+              64 |                                         0        
+
+   Exporter.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@                     1        
+              64 |@@@@@@@@@@@@@@@@@@@@                     1        
+             128 |                                         0        
+
+   DynaLoader.pm, sub, bootstrap 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   warnings.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   nicstat, sub, print_neat 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@                   10       
+             128 |@@@@@@@@@@@@@@@@@@                       8        
+             256 |                                         0        
+
+   vars.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@                            1        
+               4 |                                         0        
+               8 |                                         0        
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@                            1        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+
+   DynaLoader.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@                     1        
+            2048 |@@@@@@@@@@@@@@@@@@@@                     1        
+            4096 |                                         0        
+
+   Kstat.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@                            1        
+              32 |@@@@@@@@@@@@@                            1        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@                            1        
+           16384 |                                         0        
+
+   nicstat, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@                            1        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@                            1        
+           16384 |                                         0        
+
+   nicstat, sub, fetch_net_data 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+   nicstat, sub, find_nets 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+As an example of interpreting the output: the inclusive elapsed time for
+the "print_neat" subroutine in "nicstat",
+
+   nicstat, sub, print_neat 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@                   10       
+             128 |@@@@@@@@@@@@@@@@@@                       8        
+             256 |                                         0        
+
+shows that "print_neat" was called 18 times, 10 of which took between 64
+and 127 microseconds, and 8 of which took between 128 and 255 microseconds.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pl_calltime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pl_calltime_example.txt
new file mode 100644
index 0000000..3cc5480
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pl_calltime_example.txt
@@ -0,0 +1,150 @@
+The following are examples of pl_calltime.d.
+
+This script traces the elapsed time of Perl subroutines (functions) and
+prints a report. Here it traces the example program, Code/Perl/func_abc.pl.
+
+   # pl_calltime.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   Count,
+      FILE                 TYPE       NAME                                COUNT
+      func_abc.pl          sub        func_a                                  1
+      func_abc.pl          sub        func_b                                  1
+      func_abc.pl          sub        func_c                                  1
+      -                    total      -                                       3
+   
+   Exclusive subroutine elapsed times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_abc.pl          sub        func_a                            1006119
+      func_abc.pl          sub        func_c                            1009978
+      func_abc.pl          sub        func_b                            1010273
+      -                    total      -                                 3026371
+   
+   Inclusive subroutine elapsed times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_abc.pl          sub        func_c                            1009978
+      func_abc.pl          sub        func_b                            2020252
+      func_abc.pl          sub        func_a                            3026371
+
+In total, 3 subroutines were called, one of each.
+
+The exclusive subroutine elapsed times show that each subroutine spent around
+1.0 seconds of time (~1000000 us) processing code - while not in other
+subroutines.
+
+The inclusive subroutine elapsed times show that func_a() took around 3.0
+seconds to execute, followed by func_b() at 2.0 seconds, and func_c() at 1.0.
+The inclusive time includes the time spent in other subroutines called, and
+since func_a() called func_b() which called func_c(), these times make
+perfect sense.
+
+These elapsed times are the absolute time from when the subroutine began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
+Elapsed times are useful for identifying where latencies are.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
+If you study the func_abc.pl program alongside the above output, the numbers
+should make sense. 
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   Config.pm            sub        DESTROY                                 1
+   Config.pm            sub        TIEHASH                                 1
+   Config.pm            sub        import                                  1
+   DynaLoader.pm        sub        bootstrap                               1
+   DynaLoader.pm        sub        dl_load_flags                           1
+   Std.pm               sub        getopts                                 1
+   nicstat              sub        fetch_net_data                          1
+   nicstat              sub        find_nets                               1
+   register.pm          sub        import                                  1
+   warnings.pm          sub        BEGIN                                   1
+   Config.pm            sub        BEGIN                                   2
+   DynaLoader.pm        sub        BEGIN                                   2
+   Exporter.pm          sub        import                                  2
+   register.pm          sub        mkMask                                  2
+   vars.pm              sub        import                                  2
+   Kstat.pm             sub        BEGIN                                   3
+   nicstat              sub        BEGIN                                   3
+   vars.pm              sub        BEGIN                                   3
+   Config.pm            sub        FETCH                                   4
+   strict.pm            sub        unimport                                4
+   strict.pm            sub        import                                  5
+   AutoLoader.pm        sub        BEGIN                                   6
+   strict.pm            sub        bits                                    6
+   nicstat              sub        print_neat                             18
+   -                    total      -                                      72
+
+Exclusive subroutine elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   DynaLoader.pm        sub        dl_load_flags                           2
+   Config.pm            sub        TIEHASH                                 3
+   Config.pm            sub        DESTROY                                 9
+   register.pm          sub        mkMask                                 11
+   Config.pm            sub        import                                 12
+   Config.pm            sub        FETCH                                  17
+   strict.pm            sub        import                                 38
+   Config.pm            sub        BEGIN                                  38
+   strict.pm            sub        bits                                   49
+   vars.pm              sub        import                                 59
+   strict.pm            sub        unimport                               65
+   AutoLoader.pm        sub        BEGIN                                  70
+   Std.pm               sub        getopts                                78
+   register.pm          sub        import                                 86
+   Exporter.pm          sub        import                                112
+   warnings.pm          sub        BEGIN                                 680
+   DynaLoader.pm        sub        BEGIN                                1131
+   DynaLoader.pm        sub        bootstrap                            1221
+   nicstat              sub        print_neat                           2450
+   vars.pm              sub        BEGIN                                2608
+   Kstat.pm             sub        BEGIN                                3171
+   nicstat              sub        BEGIN                                3963
+   nicstat              sub        fetch_net_data                      45424
+   nicstat              sub        find_nets                           55737
+   -                    total      -                                  117047
+
+Inclusive subroutine elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   DynaLoader.pm        sub        dl_load_flags                           2
+   Config.pm            sub        TIEHASH                                 3
+   Config.pm            sub        DESTROY                                 9
+   register.pm          sub        mkMask                                 11
+   Config.pm            sub        import                                 12
+   Config.pm            sub        FETCH                                  17
+   strict.pm            sub        import                                 46
+   strict.pm            sub        bits                                   49
+   vars.pm              sub        import                                 59
+   Config.pm            sub        BEGIN                                  64
+   strict.pm            sub        unimport                               87
+   register.pm          sub        import                                 97
+   Std.pm               sub        getopts                               112
+   Exporter.pm          sub        import                                112
+   AutoLoader.pm        sub        BEGIN                                 140
+   warnings.pm          sub        BEGIN                                 680
+   DynaLoader.pm        sub        bootstrap                            1224
+   nicstat              sub        print_neat                           2450
+   vars.pm              sub        BEGIN                                3412
+   DynaLoader.pm        sub        BEGIN                                4656
+   Kstat.pm             sub        BEGIN                                8020
+   nicstat              sub        BEGIN                               13313
+   nicstat              sub        fetch_net_data                      45424
+   nicstat              sub        find_nets                           55737
+
+The output showed that the most time was spent in the subroutine find_nets(),
+with a total exclusive elapsed time of 55.7 ms. This also matches the
+total inclusive time, suggesting that find_nets() didn't call other
+subroutines.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pl_cpudist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pl_cpudist_example.txt
new file mode 100644
index 0000000..a2ccff8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pl_cpudist_example.txt
@@ -0,0 +1,470 @@
+The following are examples of pl_cpudist.d.
+
+This script traces the on-CPU time of Perl subroutines (functions) and
+prints a report containing distribution plots per subroutine. Here it
+traces the example program, Code/Perl/func_slow.pl.
+
+   # pl_cpudist.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   Exclusive subroutine on-CPU times (us),
+      func_slow.pl, sub, func_a 
+              value  ------------- Distribution ------------- count    
+             131072 |                                         0        
+             262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             524288 |                                         0        
+   
+      func_slow.pl, sub, func_b 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+      func_slow.pl, sub, func_c 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+   
+   Inclusive subroutine on-CPU times (us),
+      func_slow.pl, sub, func_c 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+      func_slow.pl, sub, func_a 
+              value  ------------- Distribution ------------- count    
+             524288 |                                         0        
+            1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2097152 |                                         0        
+   
+      func_slow.pl, sub, func_b 
+              value  ------------- Distribution ------------- count    
+             524288 |                                         0        
+            1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2097152 |                                         0        
+
+The exclusive subroutine on-CPU times show that func_a() spent between
+262 ms and 524 ms on-CPU, while func_b() and func_c() both spent between
+524 ms and 1048 ms on-CPU.
+
+The inclusive subroutine on-CPU times show that func_c() spent between 0.5 and
+1.0 seconds, and both func_b() and func_a() spent between 1.0 and 2.1 seconds
+of CPU time. This inclusive time includes the time spent in other subroutines
+called, and since func_a() called func_b() which called func_c(), these times
+make sense.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time 
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_cpudist.pl
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive subroutine on-CPU times (us),
+   Config.pm, sub, TIEHASH 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   DynaLoader.pm, sub, dl_load_flags 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   Config.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+               4 |                                         0        
+
+   Config.pm, sub, DESTROY 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   register.pm, sub, mkMask 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+
+   Config.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   Config.pm, sub, FETCH 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           3        
+               4 |@@@@@@@@@@                               1        
+               8 |                                         0        
+
+   strict.pm, sub, unimport 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           3        
+               8 |@@@@@@@@@@                               1        
+              16 |                                         0        
+
+   Std.pm, sub, getopts 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   register.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   strict.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@                         2        
+               4 |@@@@@@@@                                 1        
+               8 |@@@@@@@@                                 1        
+              16 |@@@@@@@@                                 1        
+              32 |                                         0        
+
+   strict.pm, sub, bits 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+               8 |@@@@@@@                                  1        
+              16 |@@@@@@@                                  1        
+              32 |                                         0        
+
+   AutoLoader.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@                                  1        
+               2 |@@@@@@@@@@@@@                            2        
+               4 |@@@@@@@@@@@@@                            2        
+               8 |                                         0        
+              16 |                                         0        
+              32 |@@@@@@@                                  1        
+              64 |                                         0        
+
+   vars.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   Exporter.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     1        
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@                     1        
+             128 |                                         0        
+
+   nicstat, sub, print_neat 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     16       
+              32 |@@                                       1        
+              64 |@@                                       1        
+             128 |                                         0        
+
+   DynaLoader.pm, sub, bootstrap 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   warnings.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   DynaLoader.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@                     1        
+             512 |@@@@@@@@@@@@@@@@@@@@                     1        
+            1024 |                                         0        
+
+   vars.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@                            1        
+               2 |@@@@@@@@@@@@@                            1        
+               4 |                                         0        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+
+   Kstat.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |                                         0        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+
+   nicstat, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+
+   nicstat, sub, fetch_net_data 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+   nicstat, sub, find_nets 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+
+Inclusive subroutine on-CPU times (us),
+   Config.pm, sub, TIEHASH 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   DynaLoader.pm, sub, dl_load_flags 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   Config.pm, sub, DESTROY 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   register.pm, sub, mkMask 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+
+   Config.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   Config.pm, sub, FETCH 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           3        
+               4 |@@@@@@@@@@                               1        
+               8 |                                         0        
+
+   Config.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     1        
+              32 |                                         0        
+
+   strict.pm, sub, unimport 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
+              16 |                                         0        
+
+   strict.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@                         2        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@                         2        
+              16 |@@@@@@@@                                 1        
+              32 |                                         0        
+
+   strict.pm, sub, bits 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+               8 |@@@@@@@                                  1        
+              16 |@@@@@@@                                  1        
+              32 |                                         0        
+
+   Std.pm, sub, getopts 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   register.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   vars.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   AutoLoader.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@                                  1        
+               2 |                                         0        
+               4 |@@@@@@@                                  1        
+               8 |@@@@@@@@@@@@@                            2        
+              16 |@@@@@@@                                  1        
+              32 |@@@@@@@                                  1        
+              64 |                                         0        
+
+   Exporter.pm, sub, import 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     1        
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@                     1        
+             128 |                                         0        
+
+   nicstat, sub, print_neat 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     16       
+              32 |@@                                       1        
+              64 |@@                                       1        
+             128 |                                         0        
+
+   DynaLoader.pm, sub, bootstrap 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   warnings.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   vars.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@                            1        
+               2 |                                         0        
+               4 |                                         0        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@                            1        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+
+   DynaLoader.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@                     1        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@                     1        
+            4096 |                                         0        
+
+   Kstat.pm, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@                            1        
+               8 |                                         0        
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@                            1        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |@@@@@@@@@@@@@                            1        
+            8192 |                                         0        
+
+   nicstat, sub, BEGIN 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@                            1        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@                            1        
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@                            1        
+           16384 |                                         0        
+
+   nicstat, sub, fetch_net_data 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+   nicstat, sub, find_nets 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+As an example of interpreting the output: the inclusive on-CPU time for
+the "print_neat" subroutine in "nicstat",
+
+   nicstat, sub, print_neat 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     16       
+              32 |@@                                       1        
+              64 |@@                                       1        
+             128 |                                         0        
+
+shows that "print_neat" was called 18 times, 16 of which spent between 16
+and 31 microseconds on-CPU, once between 32 and 63 microseconds, and once
+between 64 and 127 microseconds.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pl_cputime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pl_cputime_example.txt
new file mode 100644
index 0000000..5dc56ee
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pl_cputime_example.txt
@@ -0,0 +1,151 @@
+The following are examples of pl_cputime.d.
+
+This script traces the on-CPU time of Perl subroutines (functions) and
+prints a report. Here it traces the example program, Code/Perl/func_slow.pl.
+
+   # pl_cputime.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   Count,
+      FILE                 TYPE       NAME                                COUNT
+      func_slow.pl         sub        func_a                                  1
+      func_slow.pl         sub        func_b                                  1
+      func_slow.pl         sub        func_c                                  1
+      -                    total      -                                       3
+   
+   Exclusive subroutine on-CPU times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_slow.pl         sub        func_a                             264193
+      func_slow.pl         sub        func_b                             538498
+      func_slow.pl         sub        func_c                             798961
+      -                    total      -                                 1601653
+   
+   Inclusive subroutine on-CPU times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_slow.pl         sub        func_c                             798961
+      func_slow.pl         sub        func_b                            1337459
+      func_slow.pl         sub        func_a                            1601653
+
+In total, 3 subroutines were called, one each of func_a(), func_b() and
+func_c().
+
+The exclusive subroutine on-CPU times show that func_a() spent around 264.2 ms
+on-CPU, func_b() spent 538.5 ms, and func_c() spent 799.0 ms. This exclusive
+times excludes time spent in other subroutines.
+
+The inclusive subroutine on-CPU times show that func_c() spent around 799.0 ms
+on-CPU, func_b() spent around 1.3 seconds, and func_a() spent around 1.6
+seconds. This inclusive time includes the time spent in other subroutines
+called, and since func_a() called func_b() which called func_c(), these
+times make perfect sense.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time 
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
+If you study the func_slow.pl program alongside the above output, the numbers
+should make sense. 
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_cputime.pl
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   Config.pm            sub        DESTROY                                 1
+   Config.pm            sub        TIEHASH                                 1
+   Config.pm            sub        import                                  1
+   DynaLoader.pm        sub        bootstrap                               1
+   DynaLoader.pm        sub        dl_load_flags                           1
+   Std.pm               sub        getopts                                 1
+   nicstat              sub        fetch_net_data                          1
+   nicstat              sub        find_nets                               1
+   register.pm          sub        import                                  1
+   warnings.pm          sub        BEGIN                                   1
+   Config.pm            sub        BEGIN                                   2
+   DynaLoader.pm        sub        BEGIN                                   2
+   Exporter.pm          sub        import                                  2
+   register.pm          sub        mkMask                                  2
+   vars.pm              sub        import                                  2
+   Kstat.pm             sub        BEGIN                                   3
+   nicstat              sub        BEGIN                                   3
+   vars.pm              sub        BEGIN                                   3
+   Config.pm            sub        FETCH                                   4
+   strict.pm            sub        unimport                                4
+   strict.pm            sub        import                                  5
+   AutoLoader.pm        sub        BEGIN                                   6
+   strict.pm            sub        bits                                    6
+   nicstat              sub        print_neat                             18
+   -                    total      -                                      72
+
+Exclusive subroutine on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   DynaLoader.pm        sub        dl_load_flags                           2
+   Config.pm            sub        TIEHASH                                 2
+   Config.pm            sub        DESTROY                                 6
+   Config.pm            sub        BEGIN                                   7
+   register.pm          sub        mkMask                                  8
+   Config.pm            sub        import                                 11
+   Config.pm            sub        FETCH                                  12
+   strict.pm            sub        unimport                               17
+   strict.pm            sub        import                                 21
+   AutoLoader.pm        sub        BEGIN                                  22
+   Std.pm               sub        getopts                                33
+   strict.pm            sub        bits                                   40
+   register.pm          sub        import                                 51
+   vars.pm              sub        import                                 65
+   Exporter.pm          sub        import                                 88
+   nicstat              sub        print_neat                            426
+   warnings.pm          sub        BEGIN                                 598
+   DynaLoader.pm        sub        bootstrap                             677
+   DynaLoader.pm        sub        BEGIN                                1015
+   Kstat.pm             sub        BEGIN                                2627
+   vars.pm              sub        BEGIN                                2642
+   nicstat              sub        BEGIN                                3033
+   nicstat              sub        fetch_net_data                      42018
+   nicstat              sub        find_nets                           52094
+   -                    total      -                                  105526
+
+Inclusive subroutine on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   DynaLoader.pm        sub        dl_load_flags                           2
+   Config.pm            sub        TIEHASH                                 2
+   Config.pm            sub        DESTROY                                 6
+   register.pm          sub        mkMask                                  8
+   Config.pm            sub        import                                 11
+   Config.pm            sub        FETCH                                  12
+   Config.pm            sub        BEGIN                                  19
+   strict.pm            sub        import                                 28
+   strict.pm            sub        unimport                               35
+   strict.pm            sub        bits                                   40
+   AutoLoader.pm        sub        BEGIN                                  51
+   register.pm          sub        import                                 59
+   Std.pm               sub        getopts                                63
+   vars.pm              sub        import                                 65
+   Exporter.pm          sub        import                                 88
+   nicstat              sub        print_neat                            426
+   warnings.pm          sub        BEGIN                                 598
+   DynaLoader.pm        sub        bootstrap                             680
+   vars.pm              sub        BEGIN                                3313
+   DynaLoader.pm        sub        BEGIN                                4401
+   Kstat.pm             sub        BEGIN                                7124
+   nicstat              sub        BEGIN                               10916
+   nicstat              sub        fetch_net_data                      42018
+   nicstat              sub        find_nets                           52094
+
+The output showed that the most CPU time was spent in the subroutine
+find_nets(), with a total exclusive on-CPU time of 52.1 ms. This also matches
+the total inclusive time, suggesting that find_nets() didn't call other
+subroutines.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pl_flow_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pl_flow_example.txt
new file mode 100644
index 0000000..dcce6e0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pl_flow_example.txt
@@ -0,0 +1,179 @@
+The following are examples of pl_flow.d.
+
+This is a simple script to trace the flow of Perl subroutines (functions).
+Here it traces the example program, Code/Perl/func_abc.pl.
+
+   # pl_flow.d 
+     C TIME(us)          FILE             -- SUB
+     0 2979519183757     func_abc.pl      -> func_a
+     0 2979520190159     func_abc.pl        -> func_b
+     0 2979521200166     func_abc.pl          -> func_c
+     0 2979522210184     func_abc.pl          <- func_c
+     0 2979522210199     func_abc.pl        <- func_b
+     0 2979522210207     func_abc.pl      <- func_a
+   ^C
+
+As each subroutine is entered, the third column is indented by 2 spaces. This
+shows which subroutine is calling who - the output abovebegins by showing that
+func_a() began, and then called func_b().
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and 
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_flow.d
+  C TIME(us)         FILE             -- SUB
+  0 4181899422549    nicstat          -> BEGIN
+  0 4181899423048    strict.pm          -> bits
+  0 4181899423081    strict.pm          <- bits
+  0 4181899423105    strict.pm          -> import
+  0 4181899423126    strict.pm          <- import
+  0 4181899423133    nicstat          <- BEGIN
+  0 4181899423157    nicstat          -> BEGIN
+  0 4181899445634    Exporter.pm        -> import
+  0 4181899445730    Exporter.pm        <- import
+  0 4181899445743    nicstat          <- BEGIN
+  0 4181899445770    nicstat          -> BEGIN
+  0 4181899446066    Kstat.pm           -> BEGIN
+  0 4181899446076    strict.pm            -> import
+  0 4181899446087    strict.pm            <- import
+  0 4181899446094    Kstat.pm           <- BEGIN
+  0 4181899446116    Kstat.pm           -> BEGIN
+  0 4181899453669    DynaLoader.pm        -> BEGIN
+  0 4181899453810    vars.pm                -> BEGIN
+  0 4181899453821    vars.pm                <- BEGIN
+  0 4181899453921    vars.pm                -> BEGIN
+  0 4181899454494    warnings.pm              -> BEGIN
+  0 4181899455149    warnings.pm              <- BEGIN
+  0 4181899457183    register.pm              -> import
+  0 4181899457202    register.pm                -> mkMask
+  0 4181899457214    register.pm                <- mkMask
+  0 4181899457264    register.pm                -> mkMask
+  0 4181899457274    register.pm                <- mkMask
+  0 4181899457283    register.pm              <- import
+  0 4181899457290    vars.pm                <- BEGIN
+  0 4181899457316    vars.pm                -> BEGIN
+  0 4181899457324    strict.pm                -> import
+  0 4181899457332    strict.pm                  -> bits
+  0 4181899457345    strict.pm                  <- bits
+  0 4181899457353    strict.pm                <- import
+  0 4181899457359    vars.pm                <- BEGIN
+  0 4181899457652    vars.pm                -> import
+  0 4181899457703    vars.pm                <- import
+  0 4181899457710    DynaLoader.pm        <- BEGIN
+  0 4181899457758    DynaLoader.pm        -> BEGIN
+  0 4181899457883    Config.pm              -> BEGIN
+  0 4181899457890    strict.pm                -> import
+  0 4181899457899    strict.pm                <- import
+  0 4181899457906    Config.pm              <- BEGIN
+  0 4181899458038    Config.pm              -> BEGIN
+  0 4181899458045    strict.pm                -> unimport
+  0 4181899458053    strict.pm                  -> bits
+  0 4181899458063    strict.pm                  <- bits
+  0 4181899458077    strict.pm                <- unimport
+  0 4181899458084    Config.pm              <- BEGIN
+  0 4181899458426    Config.pm              -> TIEHASH
+  0 4181899458435    Config.pm              <- TIEHASH
+  0 4181899458476    Config.pm              -> import
+  0 4181899458493    Config.pm              <- import
+  0 4181899458500    DynaLoader.pm        <- BEGIN
+  0 4181899459978    AutoLoader.pm        -> BEGIN
+  0 4181899459990    strict.pm              -> import
+  0 4181899460033    strict.pm              <- import
+  0 4181899460064    AutoLoader.pm        <- BEGIN
+  0 4181899460088    AutoLoader.pm        -> BEGIN
+  0 4181899460096    AutoLoader.pm        <- BEGIN
+  0 4181899460187    AutoLoader.pm        -> BEGIN
+  0 4181899460199    AutoLoader.pm        <- BEGIN
+  0 4181899460582    AutoLoader.pm        -> BEGIN
+  0 4181899460590    strict.pm              -> unimport
+  0 4181899460598    strict.pm                -> bits
+  0 4181899460611    strict.pm                <- bits
+  0 4181899460619    strict.pm              <- unimport
+  0 4181899460625    AutoLoader.pm        <- BEGIN
+  0 4181899460830    AutoLoader.pm        -> BEGIN
+  0 4181899460838    strict.pm              -> unimport
+  0 4181899460845    strict.pm                -> bits
+  0 4181899460855    strict.pm                <- bits
+  0 4181899460862    strict.pm              <- unimport
+  0 4181899460869    AutoLoader.pm        <- BEGIN
+  0 4181899461092    AutoLoader.pm        -> BEGIN
+  0 4181899461100    strict.pm              -> unimport
+  0 4181899461107    strict.pm                -> bits
+  0 4181899461116    strict.pm                <- bits
+  0 4181899461124    strict.pm              <- unimport
+  0 4181899461130    AutoLoader.pm        <- BEGIN
+  0 4181899461238    Config.pm            -> FETCH
+  0 4181899461250    Config.pm            <- FETCH
+  0 4181899461264    Config.pm            -> FETCH
+  0 4181899461272    Config.pm            <- FETCH
+  0 4181899461282    Config.pm            -> FETCH
+  0 4181899461290    Config.pm            <- FETCH
+  0 4181899461299    Config.pm            -> FETCH
+  0 4181899461307    Config.pm            <- FETCH
+  0 4181899461403    Kstat.pm           <- BEGIN
+  0 4181899461432    Kstat.pm           -> BEGIN
+  0 4181899461440    vars.pm              -> import
+  0 4181899461476    vars.pm              <- import
+  0 4181899461483    Kstat.pm           <- BEGIN
+  0 4181899461539    DynaLoader.pm      -> bootstrap
+  0 4181899461769    DynaLoader.pm        -> dl_load_flags
+  0 4181899461777    DynaLoader.pm        <- dl_load_flags
+  0 4181899462208    DynaLoader.pm      <- bootstrap
+  0 4181899462231    nicstat          <- BEGIN
+  0 4181899468306    Std.pm           -> getopts
+  0 4181899468351    Exporter.pm        -> import
+  0 4181899468390    Exporter.pm        <- import
+  0 4181899468405    Std.pm           <- getopts
+  0 4181899468426    nicstat          -> find_nets
+  0 4181899521011    nicstat          <- find_nets
+  0 4181899521415    nicstat          -> fetch_net_data
+  0 4181899564973    nicstat          <- fetch_net_data
+  0 4181899565526    nicstat          -> print_neat
+  0 4181899565672    nicstat          <- print_neat
+  0 4181899565680    nicstat          -> print_neat
+  0 4181899565902    nicstat          <- print_neat
+  0 4181899565909    nicstat          -> print_neat
+  0 4181899566033    nicstat          <- print_neat
+  0 4181899566039    nicstat          -> print_neat
+  0 4181899566165    nicstat          <- print_neat
+  0 4181899566172    nicstat          -> print_neat
+  0 4181899566331    nicstat          <- print_neat
+  0 4181899566338    nicstat          -> print_neat
+  0 4181899566494    nicstat          <- print_neat
+  0 4181899566791    nicstat          -> print_neat
+  0 4181899566953    nicstat          <- print_neat
+  0 4181899566961    nicstat          -> print_neat
+  0 4181899567085    nicstat          <- print_neat
+  0 4181899567091    nicstat          -> print_neat
+  0 4181899567247    nicstat          <- print_neat
+  0 4181899567254    nicstat          -> print_neat
+  0 4181899567377    nicstat          <- print_neat
+  0 4181899567383    nicstat          -> print_neat
+  0 4181899567538    nicstat          <- print_neat
+  0 4181899567544    nicstat          -> print_neat
+  0 4181899567666    nicstat          <- print_neat
+  0 4181899567977    nicstat          -> print_neat
+  0 4181899568232    nicstat          <- print_neat
+  0 4181899568240    nicstat          -> print_neat
+  0 4181899568397    nicstat          <- print_neat
+  0 4181899568404    nicstat          -> print_neat
+  0 4181899568528    nicstat          <- print_neat
+  0 4181899568535    nicstat          -> print_neat
+  0 4181899568656    nicstat          <- print_neat
+  0 4181899568663    nicstat          -> print_neat
+  0 4181899568819    nicstat          <- print_neat
+  0 4181899568826    nicstat          -> print_neat
+  0 4181899568947    nicstat          <- print_neat
+  0 4181899572708    Config.pm        -> DESTROY
+  0 4181899572735    Config.pm        <- DESTROY
+
+After initialising Perl libraries and modules, the "nicstat" program ran,
+the output matching what was expected from the source.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pl_flowinfo_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pl_flowinfo_example.txt
new file mode 100644
index 0000000..e4b406f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pl_flowinfo_example.txt
@@ -0,0 +1,188 @@
+The following are examples of pl_flowinfo.d.
+
+This is a simple script to trace the flow of Perl subroutines (functions).
+Here it traces the example program, Code/Perl/func_abc.pl.
+
+   # pl_flowinfo.d
+   C    PID  DELTA(us)              FILE:LINE TYPE     -- SUB
+   0 305127          2       func_abc.pl:15   sub      -> func_a
+   0 305127    1008776       func_abc.pl:9    sub        -> func_b
+   0 305127    1010019       func_abc.pl:4    sub          -> func_c
+   0 305127    1009979       func_abc.pl:4    sub          <- func_c
+   0 305127         26       func_abc.pl:9    sub        <- func_b
+   0 305127          9       func_abc.pl:15   sub      <- func_a
+   ^C
+
+As each subroutine is entered, the third column is indented by 2 spaces. This
+shows which subroutine is calling who - the output abovebegins by showing that
+func_a() began, and then called func_b().
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the second line of data output
+(skipping the header) reads as "the time from func_a() beginning to
+func_b() beginning was 1008776 us, or 1.01 seconds".
+
+The LINE column shows the line in the file what was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_flowinfo.d
+C    PID  DELTA(us)              FILE:LINE TYPE     -- SUB
+0 305132          2           nicstat:83   sub      -> BEGIN
+0 305132        444         strict.pm:12   sub        -> bits
+0 305132         34         strict.pm:12   sub        <- bits
+0 305132         32         strict.pm:28   sub        -> import
+0 305132         22         strict.pm:28   sub        <- import
+0 305132          8           nicstat:83   sub      <- BEGIN
+0 305132         26           nicstat:84   sub      -> BEGIN
+0 305132       2339       Exporter.pm:30   sub        -> import
+0 305132         83       Exporter.pm:30   sub        <- import
+0 305132         14           nicstat:84   sub      <- BEGIN
+0 305132         27           nicstat:85   sub      -> BEGIN
+0 305132        205          Kstat.pm:34   sub        -> BEGIN
+0 305132         11         strict.pm:28   sub          -> import
+0 305132         11         strict.pm:28   sub          <- import
+0 305132          8          Kstat.pm:34   sub        <- BEGIN
+0 305132         23          Kstat.pm:35   sub        -> BEGIN
+0 305132        187     DynaLoader.pm:18   sub          -> BEGIN
+0 305132         73           vars.pm:3    sub            -> BEGIN
+0 305132          9           vars.pm:3    sub            <- BEGIN
+0 305132         34           vars.pm:7    sub            -> BEGIN
+0 305132        470       warnings.pm:134  sub              -> BEGIN
+0 305132        598       warnings.pm:134  sub              <- BEGIN
+0 305132       2151       register.pm:37   sub              -> import
+0 305132         23       register.pm:28   sub                -> mkMask
+0 305132         13       register.pm:28   sub                <- mkMask
+0 305132         53       register.pm:28   sub                -> mkMask
+0 305132         11       register.pm:28   sub                <- mkMask
+0 305132         11       register.pm:37   sub              <- import
+0 305132          8           vars.pm:7    sub            <- BEGIN
+0 305132         28           vars.pm:8    sub            -> BEGIN
+0 305132          9         strict.pm:28   sub              -> import
+0 305132          8         strict.pm:12   sub                -> bits
+0 305132         13         strict.pm:12   sub                <- bits
+0 305132          9         strict.pm:28   sub              <- import
+0 305132          8           vars.pm:8    sub            <- BEGIN
+0 305132        294           vars.pm:11   sub            -> import
+0 305132         52           vars.pm:11   sub            <- import
+0 305132          8     DynaLoader.pm:18   sub          <- BEGIN
+0 305132         48     DynaLoader.pm:25   sub          -> BEGIN
+0 305132         97         Config.pm:5    sub            -> BEGIN
+0 305132          9         strict.pm:28   sub              -> import
+0 305132          9         strict.pm:28   sub              <- import
+0 305132          8         Config.pm:5    sub            <- BEGIN
+0 305132        134         Config.pm:31   sub            -> BEGIN
+0 305132          9         strict.pm:33   sub              -> unimport
+0 305132          8         strict.pm:12   sub                -> bits
+0 305132         11         strict.pm:12   sub                <- bits
+0 305132         16         strict.pm:33   sub              <- unimport
+0 305132          8         Config.pm:31   sub            <- BEGIN
+0 305132        343         Config.pm:60   sub            -> TIEHASH
+0 305132         10         Config.pm:60   sub            <- TIEHASH
+0 305132         44         Config.pm:25   sub            -> import
+0 305132         18         Config.pm:25   sub            <- import
+0 305132          9     DynaLoader.pm:25   sub          <- BEGIN
+0 305132       1301     AutoLoader.pm:3    sub          -> BEGIN
+0 305132         11         strict.pm:28   sub            -> import
+0 305132         10         strict.pm:28   sub            <- import
+0 305132          9     AutoLoader.pm:3    sub          <- BEGIN
+0 305132         22     AutoLoader.pm:4    sub          -> BEGIN
+0 305132          9     AutoLoader.pm:4    sub          <- BEGIN
+0 305132         89     AutoLoader.pm:14   sub          -> BEGIN
+0 305132         13     AutoLoader.pm:14   sub          <- BEGIN
+0 305132        375     AutoLoader.pm:95   sub          -> BEGIN
+0 305132          9         strict.pm:33   sub            -> unimport
+0 305132          8         strict.pm:12   sub              -> bits
+0 305132         11         strict.pm:12   sub              <- bits
+0 305132          9         strict.pm:33   sub            <- unimport
+0 305132          8     AutoLoader.pm:95   sub          <- BEGIN
+0 305132        203     AutoLoader.pm:128  sub          -> BEGIN
+0 305132          9         strict.pm:33   sub            -> unimport
+0 305132          8         strict.pm:12   sub              -> bits
+0 305132         11         strict.pm:12   sub              <- bits
+0 305132          9         strict.pm:33   sub            <- unimport
+0 305132          8     AutoLoader.pm:128  sub          <- BEGIN
+0 305132        220     AutoLoader.pm:173  sub          -> BEGIN
+0 305132          9         strict.pm:33   sub            -> unimport
+0 305132          8         strict.pm:12   sub              -> bits
+0 305132         10         strict.pm:12   sub              <- bits
+0 305132          9         strict.pm:33   sub            <- unimport
+0 305132          8     AutoLoader.pm:173  sub          <- BEGIN
+0 305132        103         Config.pm:52   sub          -> FETCH
+0 305132         12         Config.pm:52   sub          <- FETCH
+0 305132         16         Config.pm:52   sub          -> FETCH
+0 305132          9         Config.pm:52   sub          <- FETCH
+0 305132         11         Config.pm:52   sub          -> FETCH
+0 305132          9         Config.pm:52   sub          <- FETCH
+0 305132         11         Config.pm:52   sub          -> FETCH
+0 305132          9         Config.pm:52   sub          <- FETCH
+0 305132         95          Kstat.pm:35   sub        <- BEGIN
+0 305132         29          Kstat.pm:36   sub        -> BEGIN
+0 305132         10           vars.pm:11   sub          -> import
+0 305132         33           vars.pm:11   sub          <- import
+0 305132          8          Kstat.pm:36   sub        <- BEGIN
+0 305132         56     DynaLoader.pm:133  sub        -> bootstrap
+0 305132        314     DynaLoader.pm:48   sub          -> dl_load_flags
+0 305132         11     DynaLoader.pm:48   sub          <- dl_load_flags
+0 305132       1113     DynaLoader.pm:133  sub        <- bootstrap
+0 305132         41           nicstat:85   sub      <- BEGIN
+0 305132       6102            Std.pm:219  sub      -> getopts
+0 305132         52       Exporter.pm:30   sub        -> import
+0 305132         40       Exporter.pm:30   sub        <- import
+0 305132         22            Std.pm:219  sub      <- getopts
+0 305132         24           nicstat:264  sub      -> find_nets
+0 305132      79662           nicstat:264  sub      <- find_nets
+0 305132        420           nicstat:304  sub      -> fetch_net_data
+0 305132      43871           nicstat:304  sub      <- fetch_net_data
+0 305132        479           nicstat:372  sub      -> print_neat
+0 305132        150           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        220           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        126           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        125           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        157           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        171           nicstat:372  sub      <- print_neat
+0 305132        343           nicstat:372  sub      -> print_neat
+0 305132        128           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        157           nicstat:372  sub      <- print_neat
+0 305132          9           nicstat:372  sub      -> print_neat
+0 305132        125           nicstat:372  sub      <- print_neat
+0 305132          9           nicstat:372  sub      -> print_neat
+0 305132        123           nicstat:372  sub      <- print_neat
+0 305132          9           nicstat:372  sub      -> print_neat
+0 305132        160           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        124           nicstat:372  sub      <- print_neat
+0 305132        342           nicstat:372  sub      -> print_neat
+0 305132        126           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        123           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        156           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        153           nicstat:372  sub      <- print_neat
+0 305132         10           nicstat:372  sub      -> print_neat
+0 305132        123           nicstat:372  sub      <- print_neat
+0 305132          9           nicstat:372  sub      -> print_neat
+0 305132        123           nicstat:372  sub      <- print_neat
+0 305132       3736         Config.pm:63   sub      -> DESTROY
+0 305132         32         Config.pm:63   sub      <- DESTROY
+
+After initialising Perl libraries and modules, the "nicstat" program ran,
+the output matching what was expected from the source.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pl_flowtime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pl_flowtime_example.txt
new file mode 100644
index 0000000..24c5383
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pl_flowtime_example.txt
@@ -0,0 +1,199 @@
+The following are examples of pl_flowtime.d.
+
+This is a simple script to trace the flow of Perl subroutines (functions).
+Here it traces the example program, Code/Perl/func_abc.pl.
+
+   # pl_flowtime.d 
+     C TIME(us)         FILE             DELTA(us)  -- SUB
+     0 4201460363351    func_abc.pl              2 -> func_a
+     0 4201461370041    func_abc.pl        1006689   -> func_b
+     0 4201462380038    func_abc.pl        1009997     -> func_c
+     0 4201463390094    func_abc.pl        1010055     <- func_c
+     0 4201463390117    func_abc.pl             23   <- func_b
+     0 4201463390126    func_abc.pl              8 <- func_a
+   ^C
+
+As each subroutine is entered, the third column is indented by 2 spaces. This
+shows which subroutine is calling who - the output above begins by showing that
+func_a() began, and then called func_b().
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the second line of data output
+(skipping the header) reads as "the time from func_a() beginning to
+func_b() beginning was 1006689 us, or 1.01 seconds".
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and 
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_flowtime.d
+  C TIME(us)         FILE             DELTA(us)  -- SUB
+  0 4201691465151    nicstat                  2 -> BEGIN
+  0 4201691465593    strict.pm              441   -> bits
+  0 4201691465625    strict.pm               32   <- bits
+  0 4201691465655    strict.pm               29   -> import
+  0 4201691465676    strict.pm               21   <- import
+  0 4201691465684    nicstat                  7 <- BEGIN
+  0 4201691465710    nicstat                 25 -> BEGIN
+  0 4201691468038    Exporter.pm           2328   -> import
+  0 4201691468121    Exporter.pm             82   <- import
+  0 4201691468133    nicstat                 12 <- BEGIN
+  0 4201691468160    nicstat                 26 -> BEGIN
+  0 4201691468367    Kstat.pm               207   -> BEGIN
+  0 4201691468378    strict.pm               10     -> import
+  0 4201691468388    strict.pm               10     <- import
+  0 4201691468396    Kstat.pm                 8   <- BEGIN
+  0 4201691468419    Kstat.pm                23   -> BEGIN
+  0 4201691468612    DynaLoader.pm          192     -> BEGIN
+  0 4201691468685    vars.pm                 73       -> BEGIN
+  0 4201691468694    vars.pm                  8       <- BEGIN
+  0 4201691468727    vars.pm                 33       -> BEGIN
+  0 4201691469199    warnings.pm            471         -> BEGIN
+  0 4201691469863    warnings.pm            663         <- BEGIN
+  0 4201691471965    register.pm           2102         -> import
+  0 4201691471986    register.pm             21           -> mkMask
+  0 4201691472000    register.pm             13           <- mkMask
+  0 4201691472052    register.pm             52           -> mkMask
+  0 4201691472063    register.pm             10           <- mkMask
+  0 4201691472074    register.pm             10         <- import
+  0 4201691472081    vars.pm                  7       <- BEGIN
+  0 4201691472109    vars.pm                 28       -> BEGIN
+  0 4201691472118    strict.pm                8         -> import
+  0 4201691472126    strict.pm                8           -> bits
+  0 4201691472139    strict.pm               12           <- bits
+  0 4201691472148    strict.pm                9         <- import
+  0 4201691472155    vars.pm                  7       <- BEGIN
+  0 4201691472450    vars.pm                294       -> import
+  0 4201691472501    vars.pm                 51       <- import
+  0 4201691472509    DynaLoader.pm            7     <- BEGIN
+  0 4201691472557    DynaLoader.pm           48     -> BEGIN
+  0 4201691472650    Config.pm               92       -> BEGIN
+  0 4201691472658    strict.pm                8         -> import
+  0 4201691472667    strict.pm                8         <- import
+  0 4201691472675    Config.pm                7       <- BEGIN
+  0 4201691472809    Config.pm              133       -> BEGIN
+  0 4201691472817    strict.pm                8         -> unimport
+  0 4201691472825    strict.pm                8           -> bits
+  0 4201691472852    strict.pm               26           <- bits
+  0 4201691472868    strict.pm               16         <- unimport
+  0 4201691472876    Config.pm                7       <- BEGIN
+  0 4201691473222    Config.pm              345       -> TIEHASH
+  0 4201691473231    Config.pm                9       <- TIEHASH
+  0 4201691473275    Config.pm               43       -> import
+  0 4201691473292    Config.pm               17       <- import
+  0 4201691473301    DynaLoader.pm            8     <- BEGIN
+  0 4201691474650    AutoLoader.pm         1349     -> BEGIN
+  0 4201691474661    strict.pm               10       -> import
+  0 4201691474670    strict.pm                9       <- import
+  0 4201691474679    AutoLoader.pm            8     <- BEGIN
+  0 4201691474701    AutoLoader.pm           21     -> BEGIN
+  0 4201691474709    AutoLoader.pm            8     <- BEGIN
+  0 4201691474797    AutoLoader.pm           88     -> BEGIN
+  0 4201691474810    AutoLoader.pm           12     <- BEGIN
+  0 4201691475186    AutoLoader.pm          376     -> BEGIN
+  0 4201691475195    strict.pm                9       -> unimport
+  0 4201691475203    strict.pm                7         -> bits
+  0 4201691475214    strict.pm               10         <- bits
+  0 4201691475223    strict.pm                8       <- unimport
+  0 4201691475230    AutoLoader.pm            7     <- BEGIN
+  0 4201691475435    AutoLoader.pm          204     -> BEGIN
+  0 4201691475444    strict.pm                8       -> unimport
+  0 4201691475451    strict.pm                7         -> bits
+  0 4201691475462    strict.pm               10         <- bits
+  0 4201691475470    strict.pm                8       <- unimport
+  0 4201691475478    AutoLoader.pm            7     <- BEGIN
+  0 4201691475697    AutoLoader.pm          219     -> BEGIN
+  0 4201691475706    strict.pm                8       -> unimport
+  0 4201691475714    strict.pm                7         -> bits
+  0 4201691475724    strict.pm               10         <- bits
+  0 4201691475732    strict.pm                8       <- unimport
+  0 4201691475739    AutoLoader.pm            7     <- BEGIN
+  0 4201691475842    Config.pm              102     -> FETCH
+  0 4201691475854    Config.pm               11     <- FETCH
+  0 4201691475870    Config.pm               15     -> FETCH
+  0 4201691475879    Config.pm                9     <- FETCH
+  0 4201691475890    Config.pm               10     -> FETCH
+  0 4201691475898    Config.pm                8     <- FETCH
+  0 4201691475909    Config.pm               10     -> FETCH
+  0 4201691475917    Config.pm                8     <- FETCH
+  0 4201691476012    Kstat.pm                94   <- BEGIN
+  0 4201691476041    Kstat.pm                29   -> BEGIN
+  0 4201691476051    vars.pm                  9     -> import
+  0 4201691476084    vars.pm                 32     <- import
+  0 4201691476091    Kstat.pm                 7   <- BEGIN
+  0 4201691476147    DynaLoader.pm           56   -> bootstrap
+  0 4201691476373    DynaLoader.pm          225     -> dl_load_flags
+  0 4201691476383    DynaLoader.pm            9     <- dl_load_flags
+  0 4201691476813    DynaLoader.pm          430   <- bootstrap
+  0 4201691476837    nicstat                 23 <- BEGIN
+  0 4201691483648    Std.pm                6811 -> getopts
+  0 4201691483697    Exporter.pm             49   -> import
+  0 4201691483737    Exporter.pm             39   <- import
+  0 4201691483756    Std.pm                  19 <- getopts
+  0 4201691483780    nicstat                 24 -> find_nets
+  0 4201691539198    nicstat              55418 <- find_nets
+  0 4201691539610    nicstat                411 -> fetch_net_data
+  0 4201691583290    nicstat              43679 <- fetch_net_data
+  0 4201691583781    nicstat                491 -> print_neat
+  0 4201691583930    nicstat                149 <- print_neat
+  0 4201691583996    nicstat                 65 -> print_neat
+  0 4201691584165    nicstat                169 <- print_neat
+  0 4201691584174    nicstat                  9 -> print_neat
+  0 4201691584298    nicstat                124 <- print_neat
+  0 4201691584308    nicstat                  9 -> print_neat
+  0 4201691584432    nicstat                124 <- print_neat
+  0 4201691584473    nicstat                 41 -> print_neat
+  0 4201691584597    nicstat                123 <- print_neat
+  0 4201691584607    nicstat                  9 -> print_neat
+  0 4201691584730    nicstat                123 <- print_neat
+  0 4201691585091    nicstat                361 -> print_neat
+  0 4201691585217    nicstat                125 <- print_neat
+  0 4201691585226    nicstat                  9 -> print_neat
+  0 4201691585379    nicstat                152 <- print_neat
+  0 4201691585389    nicstat                  9 -> print_neat
+  0 4201691585512    nicstat                123 <- print_neat
+  0 4201691585521    nicstat                  9 -> print_neat
+  0 4201691585644    nicstat                123 <- print_neat
+  0 4201691585653    nicstat                  9 -> print_neat
+  0 4201691585825    nicstat                171 <- print_neat
+  0 4201691585834    nicstat                  9 -> print_neat
+  0 4201691585988    nicstat                154 <- print_neat
+  0 4201691586274    nicstat                285 -> print_neat
+  0 4201691586434    nicstat                160 <- print_neat
+  0 4201691586443    nicstat                  9 -> print_neat
+  0 4201691586567    nicstat                123 <- print_neat
+  0 4201691586576    nicstat                  9 -> print_neat
+  0 4201691586731    nicstat                154 <- print_neat
+  0 4201691586740    nicstat                  8 -> print_neat
+  0 4201691586892    nicstat                151 <- print_neat
+  0 4201691586901    nicstat                  9 -> print_neat
+  0 4201691587025    nicstat                123 <- print_neat
+  0 4201691587034    nicstat                  9 -> print_neat
+  0 4201691587157    nicstat                123 <- print_neat
+  0 4201691590909    Config.pm             3751 -> DESTROY
+  0 4201691590938    Config.pm               29 <- DESTROY
+
+After initialising Perl libraries and modules, the "nicstat" program ran,
+the output matching what was expected from the source.
+
+The DELTA column shows that most time is spent in the find_nets() and
+fetch_nets_data() subroutines, with 55.4 ms and 44.7 ms of elapsed
+function time respectively. Those particular times were easy to interpret,
+since there were no child subroutines called, and the delta spanned
+the subroutine entry to its return.
+
+Some times get trickier to comprehend. The 2nd last line with a DELTA time
+of 3751 us, means "the time from the print_neat() subroutine completing
+to the DESTROY() subroutine starting, took 3751 us.". What is happening
+during this time? It is hard to say based on this output - since it isn't
+time within a function, rather it is time that Perl spent processing the
+main program. Since we have the last function called, we may guess where
+the program was at; or we could enhance this script to trace Perl engine
+internals as well (and/or syscalls).
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pl_malloc_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pl_malloc_example.txt
new file mode 100644
index 0000000..a22a008
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pl_malloc_example.txt
@@ -0,0 +1,79 @@
+The following are examples of pl_malloc.d.
+
+This is an expiremental script that attepmts to identify who is calling
+malloc() from Perl, and to print byte distribution plots.
+
+Here it traces the example program, Code/Perl/func_malloc.pl.
+
+# pl_malloc.d -c ./func_malloc.pl
+Function A
+Function B
+Function C
+Tracing... Hit Ctrl-C to end.
+
+Perl malloc byte distributions by engine caller,
+
+   perl`perl_alloc, total bytes = 1 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   libc.so.1`_findbuf, total bytes = 520 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   perl`Perl_safesysmalloc, total bytes = 72106 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@                                       26       
+               4 |@@@@@                                    72       
+               8 |@@@@@@                                   101      
+              16 |@@@@@@@@@@@@@@                           216      
+              32 |@@@@@@@@@@@                              178      
+              64 |@                                        21       
+             128 |                                         6        
+             256 |                                         2        
+             512 |                                         4        
+            1024 |                                         1        
+            2048 |@                                        11       
+            4096 |                                         1        
+            8192 |                                         0        
+
+
+Perl malloc byte distributions by Perl file and subroutine,
+
+   func_malloc.pl, func_a, bytes total = 42504 
+           value  ------------- Distribution ------------- count    
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           65536 |                                         0        
+
+   func_malloc.pl, func_b, bytes total = 100008 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |                                         0        
+           32768 |                                         0        
+           65536 |@@@@@@@@@@@@@@@@@@@@                     1        
+          131072 |                                         0        
+
+The func_malloc.pl program allocated around 100 Kbytes by creating a 
+variable ($b) and populating it with 100,000 "b" characters. This has been
+identified in the last distribution plot printed, with one malloc event
+of between 64 Kbytes and 128 Kbytes in size. There was also a malloc event
+of between 4 and 7 bytes in size.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pl_subcalls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pl_subcalls_example.txt
new file mode 100644
index 0000000..1ea0369
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pl_subcalls_example.txt
@@ -0,0 +1,53 @@
+The following are examples of pl_subcalls.d.
+
+This is a simple script to count executed Perl subroutines. Here it traces
+an example program, Code/Perl/func_abc.pl.
+
+   # pl_subcalls.d 
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    FILE                             SUB                                 CALLS
+    func_abc.pl                      func_a                                  1
+    func_abc.pl                      func_b                                  1
+    func_abc.pl                      func_c                                  1
+
+While tracing, func_a() from the program "func_abc.pl" was executed once,
+along with func_b() and func_c().
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+   # pl_subcalls.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    FILE                             SUB                                 CALLS
+    Config.pm                        DESTROY                                 1
+    Config.pm                        TIEHASH                                 1
+    Config.pm                        import                                  1
+    DynaLoader.pm                    bootstrap                               1
+    DynaLoader.pm                    dl_load_flags                           1
+    Std.pm                           getopts                                 1
+    nicstat                          fetch_net_data                          1
+    nicstat                          find_nets                               1
+    register.pm                      import                                  1
+    warnings.pm                      BEGIN                                   1
+    Config.pm                        BEGIN                                   2
+    DynaLoader.pm                    BEGIN                                   2
+    Exporter.pm                      import                                  2
+    register.pm                      mkMask                                  2
+    vars.pm                          import                                  2
+    Kstat.pm                         BEGIN                                   3
+    nicstat                          BEGIN                                   3
+    vars.pm                          BEGIN                                   3
+    Config.pm                        FETCH                                   4
+    strict.pm                        unimport                                4
+    strict.pm                        import                                  5
+    AutoLoader.pm                    BEGIN                                   6
+    strict.pm                        bits                                    6
+    nicstat                          print_neat                             18
+
+The number of subroutines called by nicstat can be seen above, which includes
+subroutines from libraries and modules that the program used.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pl_syscalls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pl_syscalls_example.txt
new file mode 100644
index 0000000..8cd5094
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pl_syscalls_example.txt
@@ -0,0 +1,50 @@
+The following are examples of pl_syscalls.d.
+
+This is a simple script to count executed Perl subroutines and system calls.
+Here it traces an example program, Code/Perl/func_abc.pl.
+
+   # pl_syscalls.d -c ./func_abc.pl 
+   Function A
+   Tracing... Hit Ctrl-C to end.
+   Function B
+   Function C
+   
+   Calls for PID 305173,
+   
+    FILE                             TYPE       NAME                      COUNT
+    func_abc.pl                      sub        func_a                        1
+    func_abc.pl                      sub        func_b                        1
+    func_abc.pl                      sub        func_c                        1
+    func_abc.pl                      syscall    fcntl                         1
+    func_abc.pl                      syscall    getrlimit                     1
+    func_abc.pl                      syscall    mmap                          1
+    func_abc.pl                      syscall    munmap                        1
+    func_abc.pl                      syscall    rexit                         1
+    func_abc.pl                      syscall    schedctl                      1
+    func_abc.pl                      syscall    sigpending                    1
+    func_abc.pl                      syscall    sysi86                        1
+    func_abc.pl                      syscall    getgid                        2
+    func_abc.pl                      syscall    getpid                        2
+    func_abc.pl                      syscall    getuid                        2
+    func_abc.pl                      syscall    sigaction                     2
+    func_abc.pl                      syscall    sysconfig                     2
+    func_abc.pl                      syscall    fstat64                       3
+    func_abc.pl                      syscall    nanosleep                     3
+    func_abc.pl                      syscall    read                          3
+    func_abc.pl                      syscall    setcontext                    3
+    func_abc.pl                      syscall    write                         3
+    func_abc.pl                      syscall    close                         4
+    func_abc.pl                      syscall    ioctl                         4
+    func_abc.pl                      syscall    open64                        4
+    func_abc.pl                      syscall    llseek                        5
+    func_abc.pl                      syscall    gtime                         7
+    func_abc.pl                      syscall    brk                          20
+
+While tracing, three subroutines were called - func_a(), func_b() and func_c().
+There were numerous system calls made, including 20 brk()'s, 7 gtime()'s
+and 5 llseek()'s.
+
+This script can provide an insight to how an application is interacting
+with the system, by providing both application subroutine calls and
+system calls in the same output.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pl_syscolors_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pl_syscolors_example.txt
new file mode 100644
index 0000000..3a5f249
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pl_syscolors_example.txt
@@ -0,0 +1,183 @@
+The following are examples of pl_syscolors.d.
+
+This is a simple script to trace the flow of Perl subroutines and system 
+calls made, and renders the output in color ("colour") using terminal
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Perl/func_abc.pl.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful). 
+
+# pl_syscolors.d
+C    PID  DELTA(us)              FILE:LINE TYPE     -- NAME
+[2;32m0 305181          2                 ":-    syscall  -> munmap[0m
+[2;32m0 305181         33                 ":-    syscall  <- munmap[0m
+[2;32m0 305181         59                 ":-    syscall  -> mmap[0m
+[2;32m0 305181         18                 ":-    syscall  <- mmap[0m
+[2;32m0 305181         35                 ":-    syscall  -> setcontext[0m
+[2;32m0 305181          8                 ":-    syscall  <- setcontext[0m
+[2;32m0 305181          8                 ":-    syscall  -> getrlimit[0m
+[2;32m0 305181          9                 ":-    syscall  <- getrlimit[0m
+[2;32m0 305181          8                 ":-    syscall  -> getpid[0m
+[2;32m0 305181          7                 ":-    syscall  <- getpid[0m
+[2;32m0 305181         64                 ":-    syscall  -> setcontext[0m
+[2;32m0 305181          6                 ":-    syscall  <- setcontext[0m
+[2;32m0 305181        137                 ":-    syscall  -> sigpending[0m
+[2;32m0 305181          8                 ":-    syscall  <- sigpending[0m
+[2;32m0 305181       1148                 ":-    syscall  -> sysi86[0m
+[2;32m0 305181         11                 ":-    syscall  <- sysi86[0m
+[2;32m0 305181        105                 ":-    syscall  -> open64[0m
+[2;32m0 305181         96                 ":-    syscall  <- open64[0m
+[2;32m0 305181         13                 ":-    syscall  -> ioctl[0m
+[2;32m0 305181         18                 ":-    syscall  <- ioctl[0m
+[2;32m0 305181         14                 ":-    syscall  -> close[0m
+[2;32m0 305181         14                 ":-    syscall  <- close[0m
+[2;32m0 305181        123                 ":-    syscall  -> sigaction[0m
+[2;32m0 305181          9                 ":-    syscall  <- sigaction[0m
+[2;32m0 305181         49                 ":-    syscall  -> brk[0m
+[2;32m0 305181          9                 ":-    syscall  <- brk[0m
+[2;32m0 305181          8                 ":-    syscall  -> brk[0m
+[2;32m0 305181         16                 ":-    syscall  <- brk[0m
+[2;32m0 305181         63                 ":-    syscall  -> brk[0m
+[2;32m0 305181          7                 ":-    syscall  <- brk[0m
+[2;32m0 305181          7                 ":-    syscall  -> brk[0m
+[2;32m0 305181          8                 ":-    syscall  <- brk[0m
+[2;32m0 305181         43                 ":-    syscall  -> brk[0m
+[2;32m0 305181          7                 ":-    syscall  <- brk[0m
+[2;32m0 305181          7                 ":-    syscall  -> brk[0m
+[2;32m0 305181          8                 ":-    syscall  <- brk[0m
+[2;32m0 305181        141                 ":-    syscall  -> brk[0m
+[2;32m0 305181          7                 ":-    syscall  <- brk[0m
+[2;32m0 305181          8                 ":-    syscall  -> brk[0m
+[2;32m0 305181          9                 ":-    syscall  <- brk[0m
+[2;32m0 305181         24                 ":-    syscall  -> brk[0m
+[2;32m0 305181          7                 ":-    syscall  <- brk[0m
+[2;32m0 305181          7                 ":-    syscall  -> brk[0m
+[2;32m0 305181          8                 ":-    syscall  <- brk[0m
+[2;32m0 305181         30                 ":-    syscall  -> getuid[0m
+[2;32m0 305181          7                 ":-    syscall  <- getuid[0m
+[2;32m0 305181         10                 ":-    syscall  -> getuid[0m
+[2;32m0 305181          6                 ":-    syscall  <- getuid[0m
+[2;32m0 305181         10                 ":-    syscall  -> getgid[0m
+[2;32m0 305181          7                 ":-    syscall  <- getgid[0m
+[2;32m0 305181          9                 ":-    syscall  -> getgid[0m
+[2;32m0 305181          6                 ":-    syscall  <- getgid[0m
+[2;32m0 305181        117                 ":-    syscall  -> sysconfig[0m
+[2;32m0 305181          9                 ":-    syscall  <- sysconfig[0m
+[2;32m0 305181         19                 ":-    syscall  -> open64[0m
+[2;32m0 305181         59                 ":-    syscall  <- open64[0m
+[2;32m0 305181         15                 ":-    syscall  -> read[0m
+[2;32m0 305181         11                 ":-    syscall  <- read[0m
+[2;32m0 305181          8                 ":-    syscall  -> close[0m
+[2;32m0 305181          8                 ":-    syscall  <- close[0m
+[2;32m0 305181         34                 ":-    syscall  -> gtime[0m
+[2;32m0 305181          7                 ":-    syscall  <- gtime[0m
+[2;32m0 305181         34                 ":-    syscall  -> brk[0m
+[2;32m0 305181          7                 ":-    syscall  <- brk[0m
+[2;32m0 305181          7                 ":-    syscall  -> brk[0m
+[2;32m0 305181          9                 ":-    syscall  <- brk[0m
+[2;32m0 305181         44                 ":-    syscall  -> sysconfig[0m
+[2;32m0 305181          7                 ":-    syscall  <- sysconfig[0m
+[2;32m0 305181          9                 ":-    syscall  -> brk[0m
+[2;32m0 305181          6                 ":-    syscall  <- brk[0m
+[2;32m0 305181          7                 ":-    syscall  -> brk[0m
+[2;32m0 305181          8                 ":-    syscall  <- brk[0m
+[2;32m0 305181        145                 ":-    syscall  -> open64[0m
+[2;32m0 305181         16                 ":-    syscall  <- open64[0m
+[2;32m0 305181         16                 ":-    syscall  -> fcntl[0m
+[2;32m0 305181          7                 ":-    syscall  <- fcntl[0m
+[2;32m0 305181         10                 ":-    syscall  -> sigaction[0m
+[2;32m0 305181          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 305181          8                 ":-    syscall  -> brk[0m
+[2;32m0 305181          7                 ":-    syscall  <- brk[0m
+[2;32m0 305181          7                 ":-    syscall  -> brk[0m
+[2;32m0 305181          9                 ":-    syscall  <- brk[0m
+[2;32m0 305181        104                 ":-    syscall  -> brk[0m
+[2;32m0 305181          7                 ":-    syscall  <- brk[0m
+[2;32m0 305181          7                 ":-    syscall  -> brk[0m
+[2;32m0 305181          8                 ":-    syscall  <- brk[0m
+[2;32m0 305181         88                 ":-    syscall  -> getpid[0m
+[2;32m0 305181          7                 ":-    syscall  <- getpid[0m
+[2;32m0 305181          8                 ":-    syscall  -> brk[0m
+[2;32m0 305181          6                 ":-    syscall  <- brk[0m
+[2;32m0 305181          7                 ":-    syscall  -> brk[0m
+[2;32m0 305181          8                 ":-    syscall  <- brk[0m
+[2;32m0 305181        105                 ":-    syscall  -> fstat64[0m
+[2;32m0 305181         10                 ":-    syscall  <- fstat64[0m
+[2;32m0 305181         16                 ":-    syscall  -> fstat64[0m
+[2;32m0 305181          7                 ":-    syscall  <- fstat64[0m
+[2;32m0 305181         25                 ":-    syscall  -> ioctl[0m
+[2;32m0 305181          8                 ":-    syscall  <- ioctl[0m
+[2;32m0 305181          7                 ":-    syscall  -> read[0m
+[2;32m0 305181         23                 ":-    syscall  <- read[0m
+[2;32m0 305181         18                 ":-    syscall  -> llseek[0m
+[2;32m0 305181          8                 ":-    syscall  <- llseek[0m
+[2;32m0 305181        126                 ":-    syscall  -> llseek[0m
+[2;32m0 305181          7                 ":-    syscall  <- llseek[0m
+[2;32m0 305181         34                 ":-    syscall  -> llseek[0m
+[2;32m0 305181          7                 ":-    syscall  <- llseek[0m
+[2;32m0 305181         30                 ":-    syscall  -> llseek[0m
+[2;32m0 305181          7                 ":-    syscall  <- llseek[0m
+[2;32m0 305181         12                 ":-    syscall  -> read[0m
+[2;32m0 305181          8                 ":-    syscall  <- read[0m
+[2;32m0 305181         11                 ":-    syscall  -> llseek[0m
+[2;32m0 305181          6                 ":-    syscall  <- llseek[0m
+[2;32m0 305181          7                 ":-    syscall  -> close[0m
+[2;32m0 305181          8                 ":-    syscall  <- close[0m
+[2;35m0 305181         27            func_a:15   sub      -> ./func_abc.pl[0m
+[2;32m0 305181         36                 ":-    syscall    -> ioctl[0m
+[2;32m0 305181          7                 ":-    syscall    <- ioctl[0m
+[2;32m0 305181          8                 ":-    syscall    -> fstat64[0m
+[2;32m0 305181          8                 ":-    syscall    <- fstat64[0m
+[2;32m0 305181          8                 ":-    syscall    -> brk[0m
+[2;32m0 305181          7                 ":-    syscall    <- brk[0m
+[2;32m0 305181          7                 ":-    syscall    -> brk[0m
+[2;32m0 305181          9                 ":-    syscall    <- brk[0m
+[2;32m0 305181         23                 ":-    syscall    -> fstat64[0m
+[2;32m0 305181          7                 ":-    syscall    <- fstat64[0m
+[2;32m0 305181         13                 ":-    syscall    -> gtime[0m
+[2;32m0 305181          7                 ":-    syscall    <- gtime[0m
+[2;32m0 305181         11                 ":-    syscall    -> nanosleep[0m
+[2;32m0 305181    1007250                 ":-    syscall    <- nanosleep[0m
+[2;32m0 305181         24                 ":-    syscall    -> gtime[0m
+[2;32m0 305181         15                 ":-    syscall    <- gtime[0m
+[2;35m0 305181         21            func_b:9    sub        -> ./func_abc.pl[0m
+[2;32m0 305181         27                 ":-    syscall      -> gtime[0m
+[2;32m0 305181          6                 ":-    syscall      <- gtime[0m
+[2;32m0 305181          8                 ":-    syscall      -> nanosleep[0m
+[2;32m0 305181    1009847                 ":-    syscall      <- nanosleep[0m
+[2;32m0 305181         24                 ":-    syscall      -> gtime[0m
+[2;32m0 305181         15                 ":-    syscall      <- gtime[0m
+[2;35m0 305181         21            func_c:4    sub          -> ./func_abc.pl[0m
+[2;32m0 305181         27                 ":-    syscall        -> gtime[0m
+[2;32m0 305181          6                 ":-    syscall        <- gtime[0m
+[2;32m0 305181          8                 ":-    syscall        -> nanosleep[0m
+Function A
+Function B
+Function C
+[2;32m0 305181    1009916                 ":-    syscall        <- nanosleep[0m
+[2;32m0 305181         24                 ":-    syscall        -> gtime[0m
+[2;32m0 305181         15                 ":-    syscall        <- gtime[0m
+[2;35m0 305181         20            func_c:4    sub          <- ./func_abc.pl[0m
+[2;35m0 305181         29            func_b:9    sub        <- ./func_abc.pl[0m
+[2;35m0 305181         12            func_a:15   sub      <- ./func_abc.pl[0m
+[2;32m0 305181         51                 ":-    syscall  -> schedctl[0m
+[2;32m0 305181         53                 ":-    syscall  <- schedctl[0m
+[2;32m0 305181         16                 ":-    syscall  -> setcontext[0m
+[2;32m0 305181          8                 ":-    syscall  <- setcontext[0m
+[2;32m0 305181         21                 ":-    syscall  -> write[0m
+[2;32m0 305181         97                 ":-    syscall  <- write[0m
+[2;32m0 305181         28                 ":-    syscall  -> open64[0m
+[2;32m0 305181        101                 ":-    syscall  <- open64[0m
+[2;32m0 305181          9                 ":-    syscall  -> ioctl[0m
+[2;32m0 305181         10                 ":-    syscall  <- ioctl[0m
+[2;32m0 305181         10                 ":-    syscall  -> close[0m
+[2;32m0 305181         15                 ":-    syscall  <- close[0m
+[2;32m0 305181         35                 ":-    syscall  -> rexit[0m
+
+If the colors don't suit you (or you'd rather HTML colored output), it
+should be trivial to modify the script to do so.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pl_who_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pl_who_example.txt
new file mode 100644
index 0000000..4ef361d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pl_who_example.txt
@@ -0,0 +1,41 @@
+The following are examples of pl_who.d.
+
+This is a simple script to see who is executing Perl subroutines. Here it
+traces as a few examples programs are executed (from Code/Perl/*.pl).
+
+   # pl_who.d 
+   Tracing... Hit Ctrl-C to end.
+   ^C
+         PID    UID   SUBS FILE
+       30817    100      3 ./func_abc.pl
+       30818    100      3 ./func_slow.pl
+       30819    100      3 ./func_slow.pl
+
+While tracing, the user with UID 100 executed three Perl programs;
+"func_abc.pl" once getting PID 130817, and "func_slow.pl" twice. All
+programs called three subroutines.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+   # pl_who.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+         PID    UID   SUBS FILE
+       14977    100      1 lib/Getopt/Std.pm
+       14977    100      1 lib/warnings.pm
+       14977    100      2 lib/Exporter.pm
+       14977    100      3 /usr/perl5/5.8.4/lib/Sun/Solaris/Kstat.pm
+       14977    100      3 lib/warnings/register.pm
+       14977    100      4 lib/DynaLoader.pm
+       14977    100      5 lib/vars.pm
+       14977    100      6 lib/AutoLoader.pm
+       14977    100      9 lib/Config.pm
+       14977    100     15 lib/strict.pm
+       14977    100     23 /tmp/nicstat
+
+This shows the location of libraries and modules from where subroutines were
+called.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/priclass_example.txt b/external/cddl/dtracetoolkit/dist/Examples/priclass_example.txt
new file mode 100644
index 0000000..bf63e09
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/priclass_example.txt
@@ -0,0 +1,82 @@
+The following is a demonstration of the priclass.d script.
+
+
+The script was run for several seconds then Ctrl-C was hit. During
+this time, other processes in different scheduling classes were
+running.
+
+   # ./priclass.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+   
+     IA
+              value  ------------- Distribution ------------- count
+                 40 |                                         0
+                 50 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 30
+                 60 |                                         0
+   
+     SYS
+              value  ------------- Distribution ------------- count
+                < 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  4959
+                  0 |                                         0
+                 10 |                                         0
+                 20 |                                         0
+                 30 |                                         0
+                 40 |                                         0
+                 50 |                                         0
+                 60 |                                         30
+                 70 |                                         0
+                 80 |                                         0
+                 90 |                                         0
+                100 |                                         0
+                110 |                                         0
+                120 |                                         0
+                130 |                                         0
+                140 |                                         0
+                150 |                                         0
+                160 |                                         50
+             >= 170 |                                         0
+   
+     RT
+              value  ------------- Distribution ------------- count
+                 90 |                                         0
+                100 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 110
+                110 |                                         0
+   
+     TS
+              value  ------------- Distribution ------------- count
+                < 0 |                                         0
+                  0 |@@@@@@@@@@@@@@@                          2880
+                 10 |@@@@@@@                                  1280
+                 20 |@@@@@                                    990
+                 30 |@@@@@                                    920
+                 40 |@@@@                                     670
+                 50 |@@@@                                     730
+                 60 |                                         0
+
+The output is quite interesting, and illustrates neatly the behaviour
+of different scheduling classes.
+
+The IA interactive class had 30 samples of a 50 to 59 priority, a fairly
+high priority. This class is used for interactive processes, such as
+the windowing system. I had clicked on a few windows to create this
+activity.
+
+The SYS system class has had 4959 samples at a < 0 priority - the lowest,
+which was for the idle thread. There are a few samples at higher
+priorities, including some in the 160 to 169 range (the highest), which
+are for interrupt threads. The system class is used by the kernel.
+
+The RT real time class had 110 samples in the 100 to 109 priority range.
+This class is designed for real-time applications, those that must have
+a consistant response time regardless of other process activity. For that
+reason, the RT class trumps both TS and IA. I created these events by
+running "prstat -R" as root, which runs prstat in the real time class.
+
+The TS time sharing class is the default scheduling class for the processes
+on a Solaris system. I ran an infinite shell loop to create heavy activity,
+"while :; do :; done", which shows a profile that leans towards lower
+priorities. This is deliberate behaivour from the time sharing class, which
+reduces the priority of CPU bound processes so that they interefere less
+with I/O bound processes. The result is more samples in the lower priority
+ranges.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/pridist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/pridist_example.txt
new file mode 100644
index 0000000..1f930ab
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/pridist_example.txt
@@ -0,0 +1,238 @@
+The following are demonstrations of the pridist.d script.
+
+
+Here we run pridist.d for a few seconds then hit Ctrl-C,
+
+   # pridist.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+    CMD: setiathome       PID: 2190
+   
+              value  ------------- Distribution ------------- count
+                 -5 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6629
+                  5 |                                         0
+   
+    CMD: sshd             PID: 9172
+   
+              value  ------------- Distribution ------------- count
+                 50 |                                         0
+                 55 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+                 60 |                                         0
+   
+    CMD: mozilla-bin      PID: 3164
+   
+              value  ------------- Distribution ------------- count
+                 40 |                                         0
+                 45 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 20
+                 50 |                                         0
+   
+    CMD: perl             PID: 11544
+   
+              value  ------------- Distribution ------------- count
+                 10 |                                         0
+                 15 |@@@@@@@@                                 60
+                 20 |                                         0
+                 25 |@@@@@@@@@@@@@@@                          120
+                 30 |                                         0
+                 35 |@@@@@@@@@@                               80
+                 40 |                                         0
+                 45 |@@@@@                                    40
+                 50 |                                         0
+                 55 |@@@                                      20
+                 60 |                                         0
+
+During this sample there was a CPU bound process called "setiathome"
+running, and a new CPU bound "perl" process was executed.
+
+perl, executing an infinite loop, begins with a high priority of 55 to 59
+where it is sampled 20 times. pridist.d samples 1000 times per second,
+so this equates to 20 ms. The perl process has also been sampled for 40 ms
+at priority 45 to 49, for 80 ms at priority 35 to 39, down to 60 ms at a
+priority 15 to 19 - at which point I had hit Ctrl-C to end sampling. 
+
+The output is spectacular as it matches the behaviour of the dispatcher
+table for the time sharing class perfectly!
+
+setiathome is running with the lowest priority, in the 0 to 4 range.
+
+... ok, so when I say 20 samples equates 20 ms, we know that's only an
+estimate. It really means that for 20 samples that process was the one on
+the CPU. In between the samples anything may have occured (I/O bound
+processes will context switch off the CPU). DTrace can certainly be used
+to measure this based on schedular events not samples (eg, cpudist), 
+however DTrace can then sometimes consume a noticable portion of the CPUs
+(for example, 2%). 
+
+
+
+
+The following is a longer sample. Again, I start a new CPU bound perl
+process,
+
+   # pridist.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+    CMD: setiathome       PID: 2190
+   
+              value  ------------- Distribution ------------- count
+                 -5 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1820
+                  5 |                                         0
+   
+    CMD: mozilla-bin      PID: 3164
+   
+              value  ------------- Distribution ------------- count
+                 40 |                                         0
+                 45 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+                 50 |                                         0
+   
+    CMD: bash             PID: 9185
+   
+              value  ------------- Distribution ------------- count
+                 50 |                                         0
+                 55 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+                 60 |                                         0
+   
+    CMD: perl             PID: 11547
+   
+              value  ------------- Distribution ------------- count
+                 -5 |                                         0
+                  0 |@@@@@@@@@@@@@@@                          2020
+                  5 |@@                                       200
+                 10 |@@@@@@@                                  960
+                 15 |@                                        160
+                 20 |@@@@@                                    720
+                 25 |@                                        120
+                 30 |@@@@                                     480
+                 35 |@                                        80
+                 40 |@@                                       240
+                 45 |                                         40
+                 50 |@@                                       240
+                 55 |                                         10
+                 60 |                                         0
+
+Now other behaviour can be observed as the perl process runs. The effect
+here is due to ts_maxwait triggering a priority boot to avoid CPU starvation;
+the priority is boosted to the 50 to 54 range, then decreases by 10 until
+it reaches 0 and another ts_maxwait is triggered. The process spends
+more time at lower priorities, as that is exactly how the TS dispatch table
+has been configured.
+
+
+
+
+Now we run prdist.d for a considerable time,
+
+   # pridist.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+    CMD: setiathome       PID: 2190
+   
+              value  ------------- Distribution ------------- count
+                 -5 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3060
+                  5 |                                         0
+   
+    CMD: mozilla-bin      PID: 3164
+   
+              value  ------------- Distribution ------------- count
+                 40 |                                         0
+                 45 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 20
+                 50 |                                         0
+   
+    CMD: perl             PID: 11549
+   
+              value  ------------- Distribution ------------- count
+                 -5 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@                      7680
+                  5 |                                         0
+                 10 |@@@@@@@                                  3040
+                 15 |                                         70
+                 20 |@@@@@@                                   2280
+                 25 |                                         120
+                 30 |@@@@                                     1580
+                 35 |                                         80
+                 40 |@@                                       800
+                 45 |                                         40
+                 50 |@@                                       800
+                 55 |                                         20
+                 60 |                                         0
+   
+The process has settled to a pattern of 0 priority, ts_maxwait boot to 50,
+drop back to 0.
+
+Run "dispadmin -c TS -g" for a printout of the time sharing dispatcher table.
+
+
+
+
+
+The following shows running pridist.d on a completely idle system,
+
+   # pridist.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+    CMD: sched            PID: 0
+   
+              value  ------------- Distribution ------------- count
+                -10 |                                         0
+                 -5 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1190
+                  0 |                                         0
+
+Only the kernel "sched" was sampled. It would have been running the idle
+thread.
+
+
+
+
+The following is an unusual output that is worth mentioning,
+
+   # pridist.d
+   Sampling... Hit Ctrl-C to end.
+   ^C
+    CMD: sched            PID: 0
+   
+              value  ------------- Distribution ------------- count
+                -10 |                                         0
+                 -5 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 940
+                  0 |                                         0
+                  5 |                                         0
+                 10 |                                         0
+                 15 |                                         0
+                 20 |                                         0
+                 25 |                                         0
+                 30 |                                         0
+                 35 |                                         0
+                 40 |                                         0
+                 45 |                                         0
+                 50 |                                         0
+                 55 |                                         0
+                 60 |                                         0
+                 65 |                                         0
+                 70 |                                         0
+                 75 |                                         0
+                 80 |                                         0
+                 85 |                                         0
+                 90 |                                         0
+                 95 |                                         0
+                100 |                                         0
+                105 |                                         0
+                110 |                                         0
+                115 |                                         0
+                120 |                                         0
+                125 |                                         0
+                130 |                                         0
+                135 |                                         0
+                140 |                                         0
+                145 |                                         0
+                150 |                                         0
+                155 |                                         0
+                160 |                                         0
+                165 |                                         10
+             >= 170 |                                         0
+
+Here we have sampled the kernel running at a priority of 165 to 169. This
+is the interrupt priority range, and would be an interrupt servicing thread.
+Eg, a network interrupt.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/procsystime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/procsystime_example.txt
new file mode 100644
index 0000000..89f98bb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/procsystime_example.txt
@@ -0,0 +1,149 @@
+This is a demonstration of the procsystime tool, which can give details
+on how processes make use of system calls.
+
+Here we run procsystime on processes which have the name "bash",
+
+   #  procsystime -n bash
+   Tracing... Hit Ctrl-C to end...
+   ^C
+   
+   Elapsed Times for process bash,
+   
+            SYSCALL          TIME (ns)
+            setpgrp              27768
+              gtime              28692
+        lwp_sigmask             148074
+              write             235814
+          sigaction             553556
+              ioctl             776691
+               read          857401243
+
+By default procsystime prints elapsed times, the time from when the syscall
+was issued to it's completion. In the above output, we can see the read()
+syscall took the most time for this process - 8.57 seconds for all the
+reads combined. This is because the read syscall is waiting for keystrokes.
+
+
+
+Here we try the "-o" option to print CPU overhead times on "bash",
+
+   # procsystime -o -n bash
+   Tracing... Hit Ctrl-C to end...
+   ^C
+   
+   CPU Times for process bash,
+   
+            SYSCALL          TIME (ns)
+            setpgrp               6994
+              gtime               8054
+        lwp_sigmask              33865
+               read             154895
+          sigaction             259899
+              write             343825
+              ioctl             932280
+
+This identifies which syscall type from bash is consuming the most CPU time.
+This is ioctl, at 932 microseconds. Compare this output to the default in
+the first example - both are useful for different reasons, this CPU overhead
+output helps us see why processes are consuming a lot of sys time.
+
+
+
+This demonstrates using the "-a" for all details, this time with "ssh",
+
+   # procsystime -a -n ssh
+   Tracing... Hit Ctrl-C to end...
+   ^C
+
+   Elapsed Times for processes ssh,
+   
+            SYSCALL          TIME (ns)
+               read             115833
+              write             302419
+            pollsys          114616076
+             TOTAL:          115034328
+   
+   CPU Times for processes ssh,
+   
+            SYSCALL          TIME (ns)
+               read              82381
+            pollsys             201818
+              write             280390
+             TOTAL:             564589
+   
+   Syscall Counts for processes ssh,
+   
+            SYSCALL              COUNT
+               read                  4
+              write                  4
+            pollsys                  8
+             TOTAL:                 16
+
+Now we can see elapsed times, overhead times, and syscall counts in one
+report. Very handy. We can also see totals printed as "TOTAL:".
+
+
+
+procsystime also lets us just examine one PID. For example,
+
+   # procsystime -p 1304
+   Tracing... Hit Ctrl-C to end...
+   ^C
+   
+   Elapsed Times for PID 1304,
+   
+            SYSCALL          TIME (ns)
+              fcntl               7323
+            fstat64              21349
+              ioctl             190683
+               read             238197
+              write            1276169
+            pollsys         1005360640
+
+
+
+Here is a longer example of running procsystime on mozilla,
+
+   # procsystime -a -n mozilla-bin
+   Tracing... Hit Ctrl-C to end...
+   ^C
+   
+   Elapsed Times for processes mozilla-bin,
+   
+            SYSCALL          TIME (ns)
+              readv             677958
+             writev            1159088
+              yield            1298742
+               read           18019194
+              write           35679619
+              ioctl          108845685
+           lwp_park        38090969432
+            pollsys        65955258781
+             TOTAL:       104211908499
+   
+   CPU Times for processes mozilla-bin,
+   
+            SYSCALL          TIME (ns)
+              yield             120345
+              readv             398046
+             writev            1117178
+           lwp_park            8591428
+               read            9752315
+              write           29043460
+              ioctl           37089349
+            pollsys          189933470
+             TOTAL:          276045591
+   
+   Syscall Counts for processes mozilla-bin,
+   
+            SYSCALL              COUNT
+             writev                  3
+              yield                  9
+              readv                 58
+           lwp_park                280
+              write               1317
+               read               1744
+            pollsys               8268
+              ioctl              16434
+             TOTAL:              28113
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/putnexts_example.txt b/external/cddl/dtracetoolkit/dist/Examples/putnexts_example.txt
new file mode 100644
index 0000000..fd7fc3d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/putnexts_example.txt
@@ -0,0 +1,520 @@
+The following is an example of the putnexts.d script.
+
+
+When investigating the operation of kernel streams, it can be extreamly
+useful to trace who (which stack trace) is calling putnext to who (the
+kernel modele). This script does that,
+
+# putnexts.d 
+dtrace: script './putnexts.d' matched 1 probe
+^C
+
+  bufmod                                            
+              bufmod`sbrput+0xb9
+              unix`putnext+0x1b7
+              pts`ptswput+0x1e1
+              unix`putnext+0x1b7
+              ptem`ptemwput+0x22f
+                1
+  ip                                                
+              ip`ip_fanout_proto+0x4d2
+              ip`ip_proto_input+0x616
+              ip`ip_fanout_proto_again+0x160
+              ip`ip_proto_input+0x530
+              ip`ip_rput+0x50d
+                1
+  ip                                                
+              ip`ip_wput_ipsec_out+0x60a
+              ip`ipsec_out_process+0x322
+              ip`ip_wput_ire+0x18d0
+              ip`ip_output+0x70a
+              ip`ip_wput+0x14
+                1
+  ip                                                
+              ip`ip_wput_ire+0x17d1
+              ip`ip_output+0x70a
+              ip`tcp_send_data+0x68c
+              ip`tcp_ack_timer+0xb0
+              ip`tcp_timer_handler+0x1d
+                1
+  ip                                                
+              ip`ip_udp_input+0x4e4
+              ip`ip_rput+0x540
+              unix`putnext+0x1b7
+              gld`gld_recv_tagged+0xed
+              gld`gld_recv+0x10
+                1
+  ldterm                                            
+              genunix`putnextctl1+0x52
+              ldterm`ldterm_dosig+0x7b
+              ldterm`ldtermrput+0x6fe
+              unix`putnext+0x1b7
+              ptem`ptemrput+0xff
+                1
+  ldterm                                            
+              ldterm`ldterm_ioctl_reply+0x93
+              ldterm`ldtermrput+0x186
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+              genunix`putnext_tail+0x88
+                1
+  ldterm                                            
+              ldterm`ldtermrput+0x12a
+              unix`putnext+0x1b7
+              ptem`ptemrput+0xff
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+                1
+  ldterm                                            
+              ldterm`ldterm_dosig+0x16f
+              ldterm`ldtermrput+0x6fe
+              unix`putnext+0x1b7
+              ptem`ptemrput+0xff
+              unix`putnext+0x1b7
+                1
+  ldterm                                            
+              genunix`putnextctl1+0x52
+              ldterm`ldterm_dosig+0x124
+              ldterm`ldtermrput+0x6fe
+              unix`putnext+0x1b7
+              ptem`ptemrput+0xff
+                1
+  ldterm                                            
+              ldterm`ldterm_do_ioctl+0xd8b
+              ldterm`ldtermwmsg+0x41
+              ldterm`ldtermwput+0x8e
+              unix`putnext+0x1b7
+              ttcompat`ttcompat_do_ioctl+0x425
+                1
+  ldterm                                            
+              genunix`putnextctl1+0x52
+              ldterm`ldterm_dosig+0xe3
+              ldterm`ldtermrput+0x6fe
+              unix`putnext+0x1b7
+              ptem`ptemrput+0xff
+                1
+  ptem                                              
+              genunix`qreply+0x23
+              ptem`ptemwmsg+0x2b9
+              ptem`ptemwput+0xe1
+              unix`putnext+0x1b7
+              ldterm`ldterm_do_ioctl+0xd8b
+                1
+  ptem                                              
+              ptem`ptemwput+0x22f
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+              genunix`putnext_tail+0x88
+              unix`putnext+0x38e
+                1
+  ptem                                              
+              ptem`ptemrput+0xff
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+              genunix`putnext_tail+0x88
+              unix`putnext+0x38e
+                1
+  ptem                                              
+              ptem`ptemwmsg+0x44d
+              ptem`ptemwput+0xe1
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+              genunix`putnext_tail+0x88
+                1
+  ptm                                               
+              pts`ptswsrv+0x7c
+              genunix`runservice+0x2a
+              genunix`queue_service+0x30
+              genunix`stream_service+0x69
+              genunix`taskq_d_thread+0x8a
+                1
+  ptm                                               
+              pts`ptswput+0x1e1
+              unix`putnext+0x1b7
+              ptem`ptemwput+0x22f
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+                1
+  pts                                               
+              genunix`qreply+0x23
+              pts`ptswput+0x201
+              unix`putnext+0x1b7
+              ptem`ptemwput+0x22f
+              genunix`qdrain_syncq+0x68
+                1
+  strwhead                                          
+              genunix`qreply+0x23
+              genunix`strrput_nondata+0x22d
+              genunix`strrput+0x256
+              unix`putnext+0x1b7
+              ttcompat`ttcompatrput+0x1d
+                1
+  strwhead                                          
+              genunix`strdoioctl+0x30d
+              genunix`strioctl+0x6ae
+              specfs`spec_ioctl+0x48
+              genunix`fop_ioctl+0x1e
+              genunix`ioctl+0x199
+                1
+  tcp                                               
+              ip`tcp_rput_data+0x2221
+              ip`tcp_input+0x39
+              ip`squeue_enter+0x1bf
+              ip`ip_tcp_input+0x9f8
+              ip`ip_rput+0x583
+                1
+  ttcompat                                          
+              ttcompat`ttcompat_ioctl_ack+0x398
+              ttcompat`ttcompatrput+0x39
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+              genunix`putnext_tail+0x88
+                1
+  ttcompat                                          
+              ttcompat`ttcompatrput+0x1d
+              unix`putnext+0x1b7
+              ldterm`ldtermrput+0x12a
+              unix`putnext+0x1b7
+              ptem`ptemrput+0xff
+                1
+  ttcompat                                          
+              ttcompat`ttcompatrput+0x1d
+              unix`putnext+0x1b7
+              genunix`putnextctl1+0x52
+              ldterm`ldterm_dosig+0x124
+              ldterm`ldtermrput+0x6fe
+                1
+  ttcompat                                          
+              ttcompat`ttcompatwput+0x32
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+              genunix`putnext_tail+0x88
+              unix`putnext+0x38e
+                1
+  ttcompat                                          
+              ttcompat`ttcompat_do_ioctl+0x425
+              ttcompat`ttcompatwput+0x152
+              unix`putnext+0x1b7
+              genunix`strdoioctl+0x30d
+              genunix`strioctl+0x6ae
+                1
+  ttcompat                                          
+              ttcompat`ttcompatrput+0x1d
+              unix`putnext+0x1b7
+              genunix`putnextctl1+0x52
+              ldterm`ldterm_dosig+0xe3
+              ldterm`ldtermrput+0x6fe
+                1
+  tun                                               
+              tun`tun_rdata_v4+0x58c
+              tun`tun_rproc+0x256
+              tun`tun_rput+0x23
+              unix`putnext+0x1b7
+              ip`ip_fanout_proto+0x4d2
+                1
+  tun                                               
+              tun`tun_wputnext_v4+0x1f8
+              tun`tun_wproc_mdata+0x71
+              tun`tun_wproc+0xdf
+              tun`tun_wput+0x23
+              unix`putnext+0x1b7
+                1
+  udp                                               
+              udp`udp_rput+0x975
+              unix`putnext+0x1b7
+              ip`ip_udp_input+0x4e4
+              ip`ip_rput+0x540
+              unix`putnext+0x1b7
+                1
+  conskbd                                           
+              genunix`qreply+0x23
+              conskbd`conskbd_mux_upstream_msg+0x24f
+              conskbd`conskbd_lqs_ack_complete+0x65
+              conskbd`conskbdlrput+0x9d
+              unix`putnext+0x1b7
+                2
+  conskbd                                           
+              conskbd`conskbdlwserv+0x2d
+              genunix`runservice+0x2a
+              genunix`queue_service+0x30
+              genunix`stream_service+0x69
+              genunix`taskq_d_thread+0x8a
+                2
+  kb8042                                            
+              genunix`qreply+0x23
+              genunix`miocack+0x2a
+              kb8042`kb8042_ioctlmsg+0x281
+              kb8042`kb8042_wsrv+0xcb
+              genunix`runservice+0x2a
+                2
+  strwhead                                          
+              genunix`strdoioctl+0x30d
+              genunix`strioctl+0x587
+              specfs`spec_ioctl+0x48
+              genunix`fop_ioctl+0x1e
+              genunix`ioctl+0x199
+                2
+  consms                                            
+              consms`consmslrput+0x15a
+              unix`putnext+0x1b7
+              vuid3ps2`vuid3ps2_putnext+0x94
+              vuid3ps2`sendButtonEvent+0x58
+              vuid3ps2`vuid3ps2+0x8ee
+                4
+  vuid3ps2                                          
+              vuid3ps2`vuid3ps2_putnext+0x94
+              vuid3ps2`sendButtonEvent+0x58
+              vuid3ps2`vuid3ps2+0x8ee
+              vuid3ps2`vuidmice_rsrv+0x69
+              genunix`runservice+0x2a
+                4
+  ip                                                
+              ip`tcp_send_data+0x55d
+              ip`tcp_ack_timer+0xb0
+              ip`tcp_timer_handler+0x1d
+              ip`squeue_drain+0xbb
+              ip`squeue_worker+0xeb
+               10
+  ip                                                
+              ip`tcp_send_data+0x55d
+              ip`tcp_rput_data+0x259e
+              ip`squeue_enter+0x1bf
+              ip`ip_tcp_input+0xcfb
+              ip`ip_rput+0x583
+               11
+  ip                                                
+              ip`ip_fanout_udp_conn+0x14b
+              ip`ip_fanout_udp+0x373
+              ip`ip_wput_local+0x16f
+              ip`ip_wput_ire+0x1436
+              ip`ip_output+0x70a
+               14
+  strwhead                                          
+              genunix`strput+0x168
+              genunix`strputmsg+0x1d5
+              genunix`msgio+0x142
+              genunix`putmsg+0x6e
+              unix`sys_sysenter+0xdc
+               14
+  timod                                             
+              timod`timodwput+0xea
+              unix`putnext+0x1b7
+              genunix`strput+0x168
+              genunix`strputmsg+0x1d5
+              genunix`msgio+0x142
+               14
+  timod                                             
+              timod`timodrput+0xa9
+              unix`putnext+0x1b7
+              udp`udp_rput+0x975
+              unix`putnext+0x1b7
+              ip`ip_fanout_udp_conn+0x14b
+               14
+  udp                                               
+              udp`udp_rput+0x975
+              unix`putnext+0x1b7
+              ip`ip_fanout_udp_conn+0x14b
+              ip`ip_fanout_udp+0x373
+              ip`ip_wput_local+0x16f
+               14
+  udp                                               
+              udp`udp_wput+0x378
+              unix`putnext+0x1b7
+              timod`timodwput+0xea
+              unix`putnext+0x1b7
+              genunix`strput+0x168
+               14
+  bufmod                                            
+              bufmod`sbsendit+0x5a
+              bufmod`sbclosechunk+0x2e
+              bufmod`sbrput+0xee
+              genunix`qdrain_syncq+0x68
+              genunix`drain_syncq+0x1a4
+               21
+  conskbd                                           
+              kbtrans`kbtrans_queueevent+0x5c
+              kbtrans`kbtrans_keyreleased+0x3d
+              kbtrans`kbtrans_untrans_keyreleased_raw+0x10
+              kbtrans`kbtrans_processkey+0x20
+              kbtrans`kbtrans_streams_key+0x95
+               22
+  kb8042                                            
+              kbtrans`kbtrans_queueevent+0x5c
+              kbtrans`kbtrans_keyreleased+0x3d
+              kbtrans`kbtrans_untrans_keyreleased_raw+0x10
+              kbtrans`kbtrans_processkey+0x20
+              kbtrans`kbtrans_streams_key+0x95
+               22
+  ldterm                                            
+              ldterm`ldterm_msg_upstream+0x2c
+              ldterm`vmin_satisfied+0x5e
+              ldterm`ldterm_dononcanon+0x230
+              ldterm`ldtermrmsg+0x252
+              ldterm`ldtermrput+0x7e9
+               22
+  ttcompat                                          
+              ttcompat`ttcompatrput+0x1d
+              unix`putnext+0x1b7
+              ldterm`ldterm_msg_upstream+0x2c
+              ldterm`vmin_satisfied+0x5e
+              ldterm`ldterm_dononcanon+0x230
+               22
+  bufmod                                            
+              bufmod`sbwput+0x33
+              unix`putnext+0x1b7
+              genunix`strput+0x168
+              genunix`strwrite+0x151
+              specfs`spec_write+0x4e
+               23
+  ptem                                              
+              ptem`ptemrput+0xff
+              unix`putnext+0x1b7
+              ptm`ptmwsrv+0x90
+              genunix`runservice+0x2a
+              genunix`queue_service+0x30
+               23
+  pts                                               
+              ptm`ptmwsrv+0x90
+              genunix`runservice+0x2a
+              genunix`queue_service+0x30
+              genunix`stream_runservice+0x96
+              genunix`strput+0x171
+               23
+  conskbd                                           
+              kbtrans`kbtrans_queueevent+0x5c
+              kbtrans`kbtrans_queuepress+0x5f
+              kbtrans`kbtrans_untrans_keypressed_raw+0x36
+              kbtrans`kbtrans_processkey+0x30
+              kbtrans`kbtrans_streams_key+0x95
+               24
+  kb8042                                            
+              kbtrans`kbtrans_queueevent+0x5c
+              kbtrans`kbtrans_queuepress+0x5f
+              kbtrans`kbtrans_untrans_keypressed_raw+0x36
+              kbtrans`kbtrans_processkey+0x30
+              kbtrans`kbtrans_streams_key+0x95
+               24
+  ip                                                
+              ip`tcp_send_data+0x55d
+              ip`tcp_output+0x562
+              ip`squeue_enter+0x1bf
+              ip`tcp_wput+0x234
+              unix`putnext+0x1b7
+               32
+  ldterm                                            
+              ldterm`ldtermwmsg+0x100
+              ldterm`ldtermwput+0x8e
+              unix`putnext+0x1b7
+              ttcompat`ttcompatwput+0x32
+              unix`putnext+0x1b7
+               36
+  ptem                                              
+              ptem`ptemwmsg+0x44d
+              ptem`ptemwput+0xe1
+              unix`putnext+0x1b7
+              ldterm`ldtermwmsg+0x100
+              ldterm`ldtermwput+0x8e
+               36
+  ptm                                               
+              pts`ptswsrv+0x7c
+              genunix`runservice+0x2a
+              genunix`queue_service+0x30
+              genunix`stream_runservice+0x96
+              genunix`strput+0x171
+               36
+  ttcompat                                          
+              ttcompat`ttcompatwput+0x32
+              unix`putnext+0x1b7
+              genunix`strput+0x168
+              genunix`strwrite+0x151
+              specfs`spec_write+0x4e
+               36
+  tcp                                               
+              ip`tcp_rput_data+0x2221
+              ip`squeue_enter+0x1bf
+              ip`ip_tcp_input+0xcfb
+              ip`ip_rput+0x583
+              unix`putnext+0x1b7
+               40
+  rtls                                              
+              gld`gld_recv_tagged+0xed
+              gld`gld_recv+0x10
+              rtls`rtls_receive+0x18f
+              rtls`rtls_gld_intr+0x133
+              gld`gld_intr+0x1e
+               46
+  consms                                            
+              consms`consmslrput+0x15a
+              unix`putnext+0x1b7
+              vuid3ps2`vuid3ps2_putnext+0x94
+              vuid3ps2`vuid3ps2+0x82b
+              vuid3ps2`vuidmice_rsrv+0x69
+               59
+  strwhead                                          
+              genunix`strput+0x168
+              genunix`strwrite+0x151
+              specfs`spec_write+0x4e
+              genunix`fop_write+0x1b
+              genunix`write+0x29a
+               59
+  vuid3ps2                                          
+              vuid3ps2`vuid3ps2_putnext+0x94
+              vuid3ps2`vuid3ps2+0x82b
+              vuid3ps2`vuidmice_rsrv+0x69
+              genunix`runservice+0x2a
+              genunix`queue_service+0x30
+               59
+  consms                                            
+              consms`consmslrput+0x15a
+              unix`putnext+0x1b7
+              vuid3ps2`vuid3ps2_putnext+0x94
+              vuid3ps2`vuid3ps2+0x809
+              vuid3ps2`vuidmice_rsrv+0x69
+               77
+  vuid3ps2                                          
+              vuid3ps2`vuid3ps2_putnext+0x94
+              vuid3ps2`vuid3ps2+0x809
+              vuid3ps2`vuidmice_rsrv+0x69
+              genunix`runservice+0x2a
+              genunix`queue_service+0x30
+               77
+  strwhead                                          
+              genunix`strput+0x168
+              genunix`strwrite+0x151
+              sockfs`socktpi_write+0xcb
+              genunix`fop_write+0x1b
+              genunix`writev+0x308
+              108
+  rtls                                              
+              gld`gld_passon+0x9e
+              gld`gld_sendup+0xfc
+              gld`gld_recv_tagged+0x15f
+              gld`gld_recv+0x10
+              rtls`rtls_receive+0x18f
+              124
+  strwhead                                          
+              genunix`strput+0x168
+              genunix`strwrite+0x151
+              sockfs`socktpi_write+0xcb
+              genunix`fop_write+0x1b
+              genunix`write+0x29a
+              138
+  tl                                                
+              tl`tl_wput_data_ser+0x5e
+              genunix`serializer_exec+0x1d
+              genunix`serializer_enter+0x81
+              tl`tl_serializer_enter+0x40
+              tl`tl_wput+0x1c7
+              214
+  mouse8042                                         
+              mouse8042`mouse8042_intr+0x68
+              i8042`i8042_intr+0xa6
+              unix`intr_thread+0x107
+              261
+
+Highlights of the above output include,
+
+- gld calling putnext to rtls (my laptop network device driver)
+- ip receive path calling putnext to tcp
+- tcp_send_data() calling putnext to ip
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/py_calldist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/py_calldist_example.txt
new file mode 100644
index 0000000..da44430
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/py_calldist_example.txt
@@ -0,0 +1,966 @@
+The following are examples of py_calldist.d.
+
+This script traces the elapsed time of Python functions and prints a report in
+the form of a histogram.  Here it traces the example program,
+Code/Python/func_abc.py
+
+The results are displayed in two sections, the first, Exclusive function
+elapsed times, shows us the time spent in each functions, not including time 
+spent in subroutines. 
+
+The third section, Inclusive function elapsed times, shows us the time spent
+in each function, this time including that time spent in subroutines called
+by those functions.  
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly. 
+
+# py_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive function elapsed times (us),
+   UserDict.py, func, IterableUserDict 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   __init__.py, func, CodecRegistryError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, Codec 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, StreamConverter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, StreamReader 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, StreamWriter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, getregentry 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, _Helper 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, aliasmbcs 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, setencoding 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, sethelper 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   types.py, func, _C 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   warnings.py, func, _OptionError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   warnings.py, func, _processoptions 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   UserDict.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, Codec 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamReader 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamReaderWriter 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamRecoder 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamWriter 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   os.py, func, _Environ 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   site.py, func, _Printer 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   site.py, func, setquit 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   copy_reg.py, func, constructor 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4 |                                         0        
+
+   site.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4 |                                         0        
+
+   warnings.py, func, simplefilter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+
+   __init__.py, func, normalize_encoding 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   linecache.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   posixpath.py, func, dirname 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   posixpath.py, func, split 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+               8 |                                         0        
+
+   stat.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   stat.py, func, S_IFMT 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+               4 |                                         0        
+
+   UserDict.py, func, UserDict 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   os.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   posixpath.py, func, basename 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   posixpath.py, func, normcase 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@                        6        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@                  8        
+               4 |                                         0        
+
+   aliases.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   copy_reg.py, func, pickle 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              16 |@@@@@@@@@@@@@                            1        
+              32 |                                         0        
+
+   posixpath.py, func, exists 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   <string>, func, ? 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     10       
+               4 |                                         0        
+               8 |                                         0        
+              16 |@@@@                                     1        
+              32 |                                         0        
+
+   posixpath.py, func, isabs 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   21       
+               4 |@@                                       1        
+               8 |                                         0        
+
+   stat.py, func, S_ISDIR 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@        5        
+              16 |@@@@@@@                                  1        
+              32 |                                         0        
+
+   UserDict.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   ascii.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   site.py, func, addsitepackages 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   site.py, func, removeduppaths 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   site.py, func, setcopyright 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   types.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   posixpath.py, func, join 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@                 12       
+               4 |@@@@@@@@@@@@                             6        
+               8 |@@                                       1        
+              16 |                                         0        
+              32 |@@                                       1        
+              64 |                                         0        
+
+   UserDict.py, func, DictMixin 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   __init__.py, func, search_function 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   codecs.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   copy_reg.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   os.py, func, _get_exports_list 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   site.py, func, _init_pathinfo 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   site.py, func, abs__file__ 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   site.py, func, main 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   warnings.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   posixpath.py, func, normpath 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 22       
+              16 |                                         0        
+
+   posixpath.py, func, isdir 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           6        
+              32 |@@@@@                                    1        
+              64 |@@@@@                                    1        
+             128 |                                         0        
+
+   site.py, func, addpackage 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@                            1        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+             256 |                                         0        
+
+   posixpath.py, func, abspath 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   21       
+              32 |@@                                       1        
+              64 |                                         0        
+
+   site.py, func, makepath 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14       
+              64 |                                         0        
+
+   posixpath.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   site.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   site.py, func, execsitecustomize 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   site.py, func, addsitedir 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@                     1        
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@                     1        
+            1024 |                                         0        
+
+   os.py, func, _exists 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@             7        
+              32 |@@@@@@@@                                 2        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |@@@@                                     1        
+            1024 |                                         0        
+
+   __init__.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   os.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   func_abc.py, func, ? 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+   func_abc.py, func, func_a 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   func_abc.py, func, func_b 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   func_abc.py, func, func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+
+Inclusive function elapsed times (us),
+   UserDict.py, func, IterableUserDict 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   __init__.py, func, CodecRegistryError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, Codec 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, StreamConverter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, StreamReader 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, StreamWriter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, getregentry 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, _Helper 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, aliasmbcs 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, setencoding 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, sethelper 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   types.py, func, _C 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   warnings.py, func, _OptionError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   warnings.py, func, _processoptions 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   UserDict.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, Codec 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamReader 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamReaderWriter 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamRecoder 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamWriter 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   os.py, func, _Environ 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   site.py, func, _Printer 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   site.py, func, setquit 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   copy_reg.py, func, constructor 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4 |                                         0        
+
+   site.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4 |                                         0        
+
+   warnings.py, func, simplefilter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+
+   __init__.py, func, normalize_encoding 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   linecache.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   posixpath.py, func, split 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+               8 |                                         0        
+
+   stat.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   stat.py, func, S_IFMT 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+               4 |                                         0        
+
+   UserDict.py, func, UserDict 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   os.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   posixpath.py, func, basename 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   posixpath.py, func, dirname 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   posixpath.py, func, normcase 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@                        6        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@                  8        
+               4 |                                         0        
+
+   aliases.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   posixpath.py, func, exists 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   copy_reg.py, func, pickle 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@                            1        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              32 |                                         0        
+
+   posixpath.py, func, isabs 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   21       
+               4 |@@                                       1        
+               8 |                                         0        
+
+   ascii.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   site.py, func, setcopyright 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   stat.py, func, S_ISDIR 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+              16 |@@@@@@@@@@@@@                            2        
+              32 |                                         0        
+
+   types.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   posixpath.py, func, join 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@                 12       
+               4 |@@@@@@@@@@@@                             6        
+               8 |@@                                       1        
+              16 |                                         0        
+              32 |@@                                       1        
+              64 |                                         0        
+
+   UserDict.py, func, DictMixin 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   codecs.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   os.py, func, _get_exports_list 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   posixpath.py, func, normpath 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 22       
+              16 |                                         0        
+
+   UserDict.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   __init__.py, func, search_function 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   copy_reg.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   site.py, func, abs__file__ 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   site.py, func, removeduppaths 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   warnings.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   posixpath.py, func, isdir 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@                                    1        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@                5        
+              64 |@@@@@@@@@@                               2        
+             128 |                                         0        
+
+   posixpath.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   site.py, func, _init_pathinfo 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   site.py, func, execsitecustomize 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   posixpath.py, func, abspath 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 22       
+              64 |                                         0        
+
+   os.py, func, _exists 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@                         4        
+              32 |@@@@@@@@@@@@@@@@@@@@                     5        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |@@@@                                     1        
+            1024 |                                         0        
+
+   site.py, func, makepath 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14       
+             128 |                                         0        
+
+   __init__.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   <string>, func, ? 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     10       
+               4 |                                         0        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |@@@@                                     1        
+            2048 |                                         0        
+
+   site.py, func, addpackage 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@                            1        
+             256 |@@@@@@@@@@@@@                            1        
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@                            1        
+            2048 |                                         0        
+
+   os.py, func, ? 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+   site.py, func, addsitepackages 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+   site.py, func, addsitedir 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@                     1        
+            2048 |@@@@@@@@@@@@@@@@@@@@                     1        
+            4096 |                                         0        
+
+   site.py, func, main 
+           value  ------------- Distribution ------------- count    
+            2048 |                                         0        
+            4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            8192 |                                         0        
+
+   site.py, func, ? 
+           value  ------------- Distribution ------------- count    
+            4096 |                                         0        
+            8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+           16384 |                                         0        
+
+   func_abc.py, func, func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   func_abc.py, func, func_b 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   func_abc.py, func, ? 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+   func_abc.py, func, func_a 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/py_calltime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/py_calltime_example.txt
new file mode 100644
index 0000000..bda8ea8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/py_calltime_example.txt
@@ -0,0 +1,255 @@
+The following are examples of py_calltime.d.
+
+This script traces the elapsed time of Python functions and prints a report. 
+Here it traces the example program, Code/Python/func_abc.py
+
+# py_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   UserDict.py          func       ?                                       1
+   UserDict.py          func       DictMixin                               1
+   UserDict.py          func       IterableUserDict                        1
+   UserDict.py          func       UserDict                                1
+   UserDict.py          func       __init__                                1
+   __init__.py          func       ?                                       1
+   __init__.py          func       CodecRegistryError                      1
+   __init__.py          func       normalize_encoding                      1
+   __init__.py          func       search_function                         1
+   aliases.py           func       ?                                       1
+   ascii.py             func       ?                                       1
+   ascii.py             func       Codec                                   1
+   ascii.py             func       StreamConverter                         1
+   ascii.py             func       StreamReader                            1
+   ascii.py             func       StreamWriter                            1
+   ascii.py             func       getregentry                             1
+   codecs.py            func       ?                                       1
+   codecs.py            func       Codec                                   1
+   codecs.py            func       StreamReader                            1
+   codecs.py            func       StreamReaderWriter                      1
+   codecs.py            func       StreamRecoder                           1
+   codecs.py            func       StreamWriter                            1
+   copy_reg.py          func       ?                                       1
+   func_abc.py          func       ?                                       1
+   func_abc.py          func       func_a                                  1
+   func_abc.py          func       func_b                                  1
+   func_abc.py          func       func_c                                  1
+   linecache.py         func       ?                                       1
+   os.py                func       ?                                       1
+   os.py                func       _Environ                                1
+   os.py                func       __init__                                1
+   os.py                func       _get_exports_list                       1
+   posixpath.py         func       ?                                       1
+   posixpath.py         func       basename                                1
+   posixpath.py         func       dirname                                 1
+   site.py              func       ?                                       1
+   site.py              func       _Helper                                 1
+   site.py              func       _Printer                                1
+   site.py              func       _init_pathinfo                          1
+   site.py              func       abs__file__                             1
+   site.py              func       addsitepackages                         1
+   site.py              func       aliasmbcs                               1
+   site.py              func       execsitecustomize                       1
+   site.py              func       main                                    1
+   site.py              func       removeduppaths                          1
+   site.py              func       setcopyright                            1
+   site.py              func       setencoding                             1
+   site.py              func       sethelper                               1
+   site.py              func       setquit                                 1
+   stat.py              func       ?                                       1
+   types.py             func       ?                                       1
+   types.py             func       _C                                      1
+   warnings.py          func       ?                                       1
+   warnings.py          func       _OptionError                            1
+   warnings.py          func       _processoptions                         1
+   posixpath.py         func       exists                                  2
+   posixpath.py         func       split                                   2
+   site.py              func       addsitedir                              2
+   warnings.py          func       simplefilter                            2
+   copy_reg.py          func       constructor                             3
+   copy_reg.py          func       pickle                                  3
+   site.py              func       __init__                                3
+   site.py              func       addpackage                              3
+   stat.py              func       S_IFMT                                  6
+   stat.py              func       S_ISDIR                                 6
+   posixpath.py         func       isdir                                   8
+   os.py                func       _exists                                10
+   <string>             func       ?                                      11
+   posixpath.py         func       normcase                               14
+   site.py              func       makepath                               14
+   posixpath.py         func       join                                   20
+   posixpath.py         func       abspath                                22
+   posixpath.py         func       isabs                                  22
+   posixpath.py         func       normpath                               22
+   -                    total      -                                     230
+
+Exclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   ascii.py             func       StreamWriter                            2
+   ascii.py             func       StreamReader                            2
+   site.py              func       setencoding                             2
+   UserDict.py          func       IterableUserDict                        2
+   __init__.py          func       CodecRegistryError                      2
+   ascii.py             func       getregentry                             2
+   site.py              func       aliasmbcs                               2
+   warnings.py          func       _OptionError                            3
+   types.py             func       _C                                      3
+   site.py              func       sethelper                               3
+   warnings.py          func       _processoptions                         3
+   ascii.py             func       StreamConverter                         3
+   ascii.py             func       Codec                                   3
+   site.py              func       _Helper                                 3
+   site.py              func       setquit                                 4
+   codecs.py            func       StreamWriter                            4
+   UserDict.py          func       __init__                                4
+   site.py              func       _Printer                                4
+   codecs.py            func       Codec                                   4
+   os.py                func       _Environ                                4
+   codecs.py            func       StreamRecoder                           5
+   codecs.py            func       StreamReaderWriter                      6
+   codecs.py            func       StreamReader                            6
+   copy_reg.py          func       constructor                             7
+   __init__.py          func       normalize_encoding                      9
+   site.py              func       __init__                               10
+   warnings.py          func       simplefilter                           11
+   linecache.py         func       ?                                      11
+   posixpath.py         func       split                                  13
+   stat.py              func       ?                                      14
+   stat.py              func       S_IFMT                                 14
+   posixpath.py         func       dirname                                16
+   posixpath.py         func       basename                               24
+   os.py                func       __init__                               26
+   posixpath.py         func       normcase                               29
+   UserDict.py          func       UserDict                               32
+   posixpath.py         func       exists                                 37
+   aliases.py           func       ?                                      46
+   <string>             func       ?                                      56
+   copy_reg.py          func       pickle                                 59
+   UserDict.py          func       ?                                      84
+   site.py              func       addsitepackages                        85
+   posixpath.py         func       isabs                                  87
+   site.py              func       setcopyright                           94
+   stat.py              func       S_ISDIR                                98
+   posixpath.py         func       join                                  105
+   types.py             func       ?                                     106
+   site.py              func       removeduppaths                        115
+   ascii.py             func       ?                                     122
+   os.py                func       _get_exports_list                     136
+   site.py              func       _init_pathinfo                        155
+   site.py              func       abs__file__                           158
+   codecs.py            func       ?                                     182
+   UserDict.py          func       DictMixin                             184
+   __init__.py          func       search_function                       205
+   site.py              func       main                                  218
+   posixpath.py         func       normpath                              231
+   copy_reg.py          func       ?                                     239
+   posixpath.py         func       isdir                                 285
+   site.py              func       addpackage                            419
+   site.py              func       addsitedir                            473
+   warnings.py          func       ?                                     500
+   posixpath.py         func       ?                                     546
+   site.py              func       execsitecustomize                     558
+   site.py              func       makepath                              608
+   posixpath.py         func       abspath                               646
+   os.py                func       _exists                               925
+   __init__.py          func       ?                                    1289
+   os.py                func       ?                                    1473
+   site.py              func       ?                                    1510
+   func_abc.py          func       ?                                    1517
+   func_abc.py          func       func_c                            1000071
+   func_abc.py          func       func_a                            1005706
+   func_abc.py          func       func_b                            1010158
+   -                    total      -                                 3029815
+
+Inclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   ascii.py             func       StreamWriter                            2
+   ascii.py             func       StreamReader                            2
+   site.py              func       setencoding                             2
+   UserDict.py          func       IterableUserDict                        2
+   __init__.py          func       CodecRegistryError                      2
+   ascii.py             func       getregentry                             2
+   site.py              func       aliasmbcs                               2
+   warnings.py          func       _OptionError                            3
+   types.py             func       _C                                      3
+   site.py              func       sethelper                               3
+   warnings.py          func       _processoptions                         3
+   ascii.py             func       StreamConverter                         3
+   ascii.py             func       Codec                                   3
+   site.py              func       _Helper                                 3
+   site.py              func       setquit                                 4
+   codecs.py            func       StreamWriter                            4
+   UserDict.py          func       __init__                                4
+   site.py              func       _Printer                                4
+   codecs.py            func       Codec                                   4
+   os.py                func       _Environ                                4
+   codecs.py            func       StreamRecoder                           5
+   codecs.py            func       StreamReaderWriter                      6
+   codecs.py            func       StreamReader                            6
+   copy_reg.py          func       constructor                             7
+   __init__.py          func       normalize_encoding                      9
+   site.py              func       __init__                               10
+   warnings.py          func       simplefilter                           11
+   linecache.py         func       ?                                      11
+   posixpath.py         func       split                                  13
+   stat.py              func       ?                                      14
+   stat.py              func       S_IFMT                                 14
+   posixpath.py         func       dirname                                22
+   posixpath.py         func       normcase                               29
+   os.py                func       __init__                               31
+   posixpath.py         func       basename                               31
+   UserDict.py          func       UserDict                               32
+   posixpath.py         func       exists                                 37
+   aliases.py           func       ?                                      46
+   copy_reg.py          func       pickle                                 66
+   posixpath.py         func       isabs                                  87
+   posixpath.py         func       join                                  105
+   types.py             func       ?                                     109
+   stat.py              func       S_ISDIR                               113
+   site.py              func       setcopyright                          132
+   ascii.py             func       ?                                     133
+   os.py                func       _get_exports_list                     136
+   UserDict.py          func       DictMixin                             184
+   codecs.py            func       ?                                     210
+   posixpath.py         func       normpath                              231
+   UserDict.py          func       ?                                     303
+   __init__.py          func       search_function                       350
+   copy_reg.py          func       ?                                     377
+   posixpath.py         func       isdir                                 399
+   warnings.py          func       ?                                     530
+   site.py              func       abs__file__                           540
+   site.py              func       execsitecustomize                     558
+   posixpath.py         func       ?                                     560
+   site.py              func       removeduppaths                        565
+   site.py              func       _init_pathinfo                        899
+   os.py                func       _exists                               953
+   posixpath.py         func       abspath                               966
+   site.py              func       makepath                             1296
+   __init__.py          func       ?                                    1548
+   <string>             func       ?                                    1808
+   site.py              func       addsitepackages                      2471
+   site.py              func       addpackage                           2475
+   os.py                func       ?                                    3879
+   site.py              func       addsitedir                           4026
+   site.py              func       main                                 4532
+   site.py              func       ?                                    9930
+   func_abc.py          func       func_c                            1000071
+   func_abc.py          func       func_b                            2010230
+   func_abc.py          func       func_a                            3015936
+   func_abc.py          func       ?                                 3017454
+
+Counts shows us how many times each different function was called, and how
+many functions were called in total.
+
+The exclusive function elapsed times show the time that each function spent 
+processing code - while not in other functions.
+
+The inclusive function elapsed times show the time that each function spent
+processing code, including the time spent in other calls.
+
+These elapsed times are the absolute time from when the function began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/py_cpudist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/py_cpudist_example.txt
new file mode 100644
index 0000000..3272e90
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/py_cpudist_example.txt
@@ -0,0 +1,966 @@
+The following are examples of py_cpudist.d.
+
+This script traces the on-CPU time of Python functions and prints a report
+in the form of a histogram.  Here it traces the example program,
+Code/Python/func_slow.py
+
+# py_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive function on-CPU times (us),
+   UserDict.py, func, IterableUserDict 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   __init__.py, func, CodecRegistryError 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   ascii.py, func, StreamReader 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   ascii.py, func, StreamWriter 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   ascii.py, func, getregentry 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   site.py, func, aliasmbcs 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   site.py, func, sethelper 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   types.py, func, _C 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   warnings.py, func, _OptionError 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   UserDict.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, Codec 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, StreamConverter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   codecs.py, func, Codec 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   codecs.py, func, StreamWriter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   os.py, func, _Environ 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   posixpath.py, func, basename 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   posixpath.py, func, dirname 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, _Helper 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, _Printer 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, setencoding 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, setquit 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   warnings.py, func, _processoptions 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   copy_reg.py, func, constructor 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               2 |                                         0        
+
+   codecs.py, func, StreamReader 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamReaderWriter 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamRecoder 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   func_slow.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   os.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   site.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4 |                                         0        
+
+   stat.py, func, S_IFMT 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+               2 |                                         0        
+
+   warnings.py, func, simplefilter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+
+   __init__.py, func, normalize_encoding 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   copy_reg.py, func, pickle 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |@@@@@@@@@@@@@                            1        
+               8 |                                         0        
+
+   linecache.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   posixpath.py, func, split 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+               8 |                                         0        
+
+   stat.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   stat.py, func, S_ISDIR 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+               4 |                                         0        
+
+   posixpath.py, func, normcase 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14       
+               2 |                                         0        
+
+   UserDict.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   UserDict.py, func, UserDict 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   site.py, func, _init_pathinfo 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   site.py, func, addsitepackages 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   site.py, func, setcopyright 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   <string>, func, ? 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@                       5        
+               2 |@@@@@@@@@@@@@@@@@@                       5        
+               4 |@@@@                                     1        
+               8 |                                         0        
+
+   posixpath.py, func, isabs 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     20       
+               2 |@@@@                                     2        
+               4 |                                         0        
+
+   aliases.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   ascii.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   posixpath.py, func, exists 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   site.py, func, abs__file__ 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   site.py, func, removeduppaths 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   site.py, func, makepath 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14       
+               8 |                                         0        
+
+   posixpath.py, func, join 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@                 12       
+               2 |@@@@@@@@@@                               5        
+               4 |@@@@                                     2        
+               8 |                                         0        
+              16 |                                         0        
+              32 |@@                                       1        
+              64 |                                         0        
+
+   codecs.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   site.py, func, main 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   types.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   posixpath.py, func, abspath 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 22       
+               8 |                                         0        
+
+   UserDict.py, func, DictMixin 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   __init__.py, func, search_function 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   copy_reg.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   os.py, func, _get_exports_list 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   posixpath.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   warnings.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   posixpath.py, func, isdir 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@                                    1        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           6        
+              32 |                                         0        
+              64 |@@@@@                                    1        
+             128 |                                         0        
+
+   posixpath.py, func, normpath 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@                                       1        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   21       
+              16 |                                         0        
+
+   site.py, func, addpackage 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+             128 |@@@@@@@@@@@@@                            1        
+             256 |                                         0        
+
+   site.py, func, addsitedir 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+             256 |                                         0        
+
+   site.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   site.py, func, execsitecustomize 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   os.py, func, _exists 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     9        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |@@@@                                     1        
+            1024 |                                         0        
+
+   __init__.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   os.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   func_slow.py, func, func_a 
+           value  ------------- Distribution ------------- count    
+           65536 |                                         0        
+          131072 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+          262144 |                                         0        
+
+   func_slow.py, func, func_b 
+           value  ------------- Distribution ------------- count    
+          131072 |                                         0        
+          262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+          524288 |                                         0        
+
+   func_slow.py, func, func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+
+Inclusive function on-CPU times (us),
+   UserDict.py, func, IterableUserDict 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   __init__.py, func, CodecRegistryError 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   ascii.py, func, StreamReader 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   ascii.py, func, StreamWriter 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   ascii.py, func, getregentry 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   site.py, func, aliasmbcs 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   site.py, func, sethelper 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   types.py, func, _C 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   warnings.py, func, _OptionError 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   UserDict.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, Codec 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ascii.py, func, StreamConverter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   codecs.py, func, Codec 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   codecs.py, func, StreamWriter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   os.py, func, _Environ 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, _Helper 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, _Printer 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, setencoding 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   site.py, func, setquit 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   warnings.py, func, _processoptions 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   copy_reg.py, func, constructor 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               2 |                                         0        
+
+   codecs.py, func, StreamReader 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamReaderWriter 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   codecs.py, func, StreamRecoder 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   site.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4 |                                         0        
+
+   stat.py, func, S_IFMT 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+               2 |                                         0        
+
+   warnings.py, func, simplefilter 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |@@@@@@@@@@@@@@@@@@@@                     1        
+               8 |                                         0        
+
+   __init__.py, func, normalize_encoding 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   linecache.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   os.py, func, __init__ 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   posixpath.py, func, basename 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   posixpath.py, func, dirname 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   posixpath.py, func, split 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+               8 |                                         0        
+
+   stat.py, func, ? 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   copy_reg.py, func, pickle 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               8 |                                         0        
+
+   posixpath.py, func, normcase 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14       
+               2 |                                         0        
+
+   UserDict.py, func, UserDict 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   stat.py, func, S_ISDIR 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+               4 |@@@@@@@@@@@@@                            2        
+               8 |                                         0        
+
+   posixpath.py, func, isabs 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     20       
+               2 |@@@@                                     2        
+               4 |                                         0        
+
+   aliases.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   ascii.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   posixpath.py, func, exists 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   site.py, func, setcopyright 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   posixpath.py, func, join 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@                 12       
+               2 |@@@@@@@@@@                               5        
+               4 |@@@@                                     2        
+               8 |                                         0        
+              16 |                                         0        
+              32 |@@                                       1        
+              64 |                                         0        
+
+   codecs.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   types.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   UserDict.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   UserDict.py, func, DictMixin 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   __init__.py, func, search_function 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   os.py, func, _get_exports_list 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   posixpath.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   site.py, func, abs__file__ 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   site.py, func, removeduppaths 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   warnings.py, func, ? 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             256 |                                         0        
+
+   posixpath.py, func, normpath 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@                                       1        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   21       
+              16 |                                         0        
+
+   posixpath.py, func, isdir 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@      7        
+              32 |                                         0        
+              64 |@@@@@                                    1        
+             128 |                                         0        
+
+   posixpath.py, func, abspath 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          17       
+              16 |@@@@@@@@@                                5        
+              32 |                                         0        
+
+   copy_reg.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   site.py, func, _init_pathinfo 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   site.py, func, makepath 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    13       
+              32 |                                         0        
+              64 |@@@                                      1        
+             128 |                                         0        
+
+   site.py, func, execsitecustomize 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   <string>, func, ? 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@                       5        
+               2 |@@@@@@@@@@@@@@@@@@                       5        
+               4 |                                         0        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |@@@@                                     1        
+            1024 |                                         0        
+
+   os.py, func, _exists 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@         8        
+              32 |@@@@                                     1        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |@@@@                                     1        
+            1024 |                                         0        
+
+   site.py, func, addpackage 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@                            1        
+            1024 |                                         0        
+
+   __init__.py, func, ? 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   site.py, func, addsitepackages 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   site.py, func, addsitedir 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@                     1        
+            1024 |@@@@@@@@@@@@@@@@@@@@                     1        
+            2048 |                                         0        
+
+   os.py, func, ? 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+   site.py, func, main 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+   site.py, func, ? 
+           value  ------------- Distribution ------------- count    
+            2048 |                                         0        
+            4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            8192 |                                         0        
+
+   func_slow.py, func, func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   func_slow.py, func, ? 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   func_slow.py, func, func_a 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   func_slow.py, func, func_b 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+The first section, Exclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, not including time spent in subroutines.  You can
+see here that func_a had one instance of being on-CPU between 0.13 seconds and
+0.25 seconds. 
+
+The second section, Inclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, including that time spent in subroutines called
+by those functions.  You can see that here func_a had an instance of being
+on-CPU between 1.0 seconds and 2.1 seconds.
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/py_cputime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/py_cputime_example.txt
new file mode 100644
index 0000000..2f25922
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/py_cputime_example.txt
@@ -0,0 +1,262 @@
+The following are examples of py_cputime.d.
+
+This script traces the on-CPU time of JavaScript functions and prints a
+report. Here it traces the example program, Code/Python/func_slow.py
+
+# py_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   UserDict.py          func       ?                                       1
+   UserDict.py          func       DictMixin                               1
+   UserDict.py          func       IterableUserDict                        1
+   UserDict.py          func       UserDict                                1
+   UserDict.py          func       __init__                                1
+   __init__.py          func       ?                                       1
+   __init__.py          func       CodecRegistryError                      1
+   __init__.py          func       normalize_encoding                      1
+   __init__.py          func       search_function                         1
+   aliases.py           func       ?                                       1
+   ascii.py             func       ?                                       1
+   ascii.py             func       Codec                                   1
+   ascii.py             func       StreamConverter                         1
+   ascii.py             func       StreamReader                            1
+   ascii.py             func       StreamWriter                            1
+   ascii.py             func       getregentry                             1
+   codecs.py            func       ?                                       1
+   codecs.py            func       Codec                                   1
+   codecs.py            func       StreamReader                            1
+   codecs.py            func       StreamReaderWriter                      1
+   codecs.py            func       StreamRecoder                           1
+   codecs.py            func       StreamWriter                            1
+   copy_reg.py          func       ?                                       1
+   func_slow.py         func       ?                                       1
+   func_slow.py         func       func_a                                  1
+   func_slow.py         func       func_b                                  1
+   func_slow.py         func       func_c                                  1
+   linecache.py         func       ?                                       1
+   os.py                func       ?                                       1
+   os.py                func       _Environ                                1
+   os.py                func       __init__                                1
+   os.py                func       _get_exports_list                       1
+   posixpath.py         func       ?                                       1
+   posixpath.py         func       basename                                1
+   posixpath.py         func       dirname                                 1
+   site.py              func       ?                                       1
+   site.py              func       _Helper                                 1
+   site.py              func       _Printer                                1
+   site.py              func       _init_pathinfo                          1
+   site.py              func       abs__file__                             1
+   site.py              func       addsitepackages                         1
+   site.py              func       aliasmbcs                               1
+   site.py              func       execsitecustomize                       1
+   site.py              func       main                                    1
+   site.py              func       removeduppaths                          1
+   site.py              func       setcopyright                            1
+   site.py              func       setencoding                             1
+   site.py              func       sethelper                               1
+   site.py              func       setquit                                 1
+   stat.py              func       ?                                       1
+   types.py             func       ?                                       1
+   types.py             func       _C                                      1
+   warnings.py          func       ?                                       1
+   warnings.py          func       _OptionError                            1
+   warnings.py          func       _processoptions                         1
+   posixpath.py         func       exists                                  2
+   posixpath.py         func       split                                   2
+   site.py              func       addsitedir                              2
+   warnings.py          func       simplefilter                            2
+   copy_reg.py          func       constructor                             3
+   copy_reg.py          func       pickle                                  3
+   site.py              func       __init__                                3
+   site.py              func       addpackage                              3
+   stat.py              func       S_IFMT                                  6
+   stat.py              func       S_ISDIR                                 6
+   posixpath.py         func       isdir                                   8
+   os.py                func       _exists                                10
+   <string>             func       ?                                      11
+   posixpath.py         func       normcase                               14
+   site.py              func       makepath                               14
+   posixpath.py         func       join                                   20
+   posixpath.py         func       abspath                                22
+   posixpath.py         func       isabs                                  22
+   posixpath.py         func       normpath                               22
+   -                    total      -                                     230
+
+Exclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   ascii.py             func       StreamWriter                            1
+   __init__.py          func       CodecRegistryError                      1
+   ascii.py             func       StreamReader                            1
+   site.py              func       setencoding                             1
+   warnings.py          func       _OptionError                            1
+   UserDict.py          func       IterableUserDict                        1
+   site.py              func       aliasmbcs                               1
+   warnings.py          func       _processoptions                         1
+   types.py             func       _C                                      1
+   ascii.py             func       getregentry                             1
+   site.py              func       _Helper                                 2
+   ascii.py             func       Codec                                   2
+   ascii.py             func       StreamConverter                         2
+   site.py              func       sethelper                               2
+   codecs.py            func       Codec                                   2
+   UserDict.py          func       __init__                                3
+   posixpath.py         func       dirname                                 3
+   posixpath.py         func       basename                                3
+   site.py              func       _Printer                                3
+   os.py                func       _Environ                                3
+   codecs.py            func       StreamWriter                            3
+   site.py              func       setquit                                 3
+   copy_reg.py          func       constructor                             3
+   codecs.py            func       StreamRecoder                           4
+   codecs.py            func       StreamReaderWriter                      5
+   codecs.py            func       StreamReader                            5
+   os.py                func       __init__                                6
+   func_slow.py         func       ?                                       6
+   __init__.py          func       normalize_encoding                      7
+   site.py              func       __init__                                7
+   linecache.py         func       ?                                       7
+   warnings.py          func       simplefilter                            7
+   stat.py              func       S_IFMT                                  9
+   stat.py              func       ?                                      10
+   copy_reg.py          func       pickle                                 12
+   posixpath.py         func       split                                  12
+   posixpath.py         func       normcase                               15
+   stat.py              func       S_ISDIR                                17
+   site.py              func       addsitepackages                        20
+   UserDict.py          func       ?                                      20
+   site.py              func       setcopyright                           23
+   site.py              func       main                                   24
+   <string>             func       ?                                      28
+   UserDict.py          func       UserDict                               31
+   site.py              func       _init_pathinfo                         33
+   posixpath.py         func       exists                                 35
+   ascii.py             func       ?                                      38
+   posixpath.py         func       isabs                                  42
+   aliases.py           func       ?                                      43
+   site.py              func       removeduppaths                         51
+   site.py              func       abs__file__                            56
+   codecs.py            func       ?                                      75
+   types.py             func       ?                                      83
+   posixpath.py         func       join                                   85
+   site.py              func       makepath                               97
+   posixpath.py         func       abspath                                99
+   os.py                func       _get_exports_list                     132
+   __init__.py          func       search_function                       142
+   warnings.py          func       ?                                     171
+   UserDict.py          func       DictMixin                             182
+   posixpath.py         func       ?                                     192
+   copy_reg.py          func       ?                                     196
+   posixpath.py         func       normpath                              209
+   posixpath.py         func       isdir                                 255
+   site.py              func       addpackage                            375
+   site.py              func       addsitedir                            506
+   site.py              func       execsitecustomize                     540
+   site.py              func       ?                                     725
+   os.py                func       _exists                               802
+   os.py                func       ?                                    1138
+   __init__.py          func       ?                                    1199
+   func_slow.py         func       func_a                             229669
+   func_slow.py         func       func_b                             456371
+   func_slow.py         func       func_c                             686056
+   -                    total      -                                 1379951
+
+Inclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   ascii.py             func       StreamWriter                            1
+   __init__.py          func       CodecRegistryError                      1
+   ascii.py             func       StreamReader                            1
+   site.py              func       setencoding                             1
+   warnings.py          func       _OptionError                            1
+   UserDict.py          func       IterableUserDict                        1
+   site.py              func       aliasmbcs                               1
+   warnings.py          func       _processoptions                         1
+   types.py             func       _C                                      1
+   ascii.py             func       getregentry                             1
+   site.py              func       _Helper                                 2
+   ascii.py             func       Codec                                   2
+   ascii.py             func       StreamConverter                         2
+   site.py              func       sethelper                               2
+   codecs.py            func       Codec                                   2
+   UserDict.py          func       __init__                                3
+   site.py              func       _Printer                                3
+   os.py                func       _Environ                                3
+   codecs.py            func       StreamWriter                            3
+   site.py              func       setquit                                 3
+   copy_reg.py          func       constructor                             3
+   codecs.py            func       StreamRecoder                           4
+   codecs.py            func       StreamReaderWriter                      5
+   codecs.py            func       StreamReader                            5
+   __init__.py          func       normalize_encoding                      7
+   site.py              func       __init__                                7
+   linecache.py         func       ?                                       7
+   warnings.py          func       simplefilter                            7
+   stat.py              func       S_IFMT                                  9
+   os.py                func       __init__                                9
+   posixpath.py         func       basename                                9
+   posixpath.py         func       dirname                                10
+   stat.py              func       ?                                      10
+   posixpath.py         func       split                                  12
+   posixpath.py         func       normcase                               15
+   copy_reg.py          func       pickle                                 15
+   stat.py              func       S_ISDIR                                26
+   UserDict.py          func       UserDict                               31
+   posixpath.py         func       exists                                 35
+   posixpath.py         func       isabs                                  42
+   aliases.py           func       ?                                      43
+   site.py              func       setcopyright                           44
+   ascii.py             func       ?                                      45
+   types.py             func       ?                                      85
+   posixpath.py         func       join                                   85
+   codecs.py            func       ?                                      97
+   os.py                func       _get_exports_list                     132
+   site.py              func       removeduppaths                        171
+   UserDict.py          func       DictMixin                             182
+   site.py              func       abs__file__                           184
+   warnings.py          func       ?                                     190
+   __init__.py          func       search_function                       196
+   posixpath.py         func       ?                                     202
+   posixpath.py         func       normpath                              209
+   UserDict.py          func       ?                                     235
+   posixpath.py         func       isdir                                 281
+   copy_reg.py          func       ?                                     288
+   posixpath.py         func       abspath                               351
+   site.py              func       _init_pathinfo                        392
+   site.py              func       makepath                              395
+   site.py              func       execsitecustomize                     540
+   os.py                func       _exists                               819
+   <string>             func       ?                                     973
+   __init__.py          func       ?                                    1341
+   site.py              func       addpackage                           1470
+   site.py              func       addsitepackages                      1562
+   site.py              func       addsitedir                           2420
+   site.py              func       main                                 2546
+   os.py                func       ?                                    2839
+   site.py              func       ?                                    6118
+   func_slow.py         func       func_c                             686056
+   func_slow.py         func       func_b                            1142427
+   func_slow.py         func       func_a                            1372097
+   func_slow.py         func       ?                                 1372104
+
+You can see the results are printed in three sections.
+
+The first section reports how many times each function was called.
+
+The exclusive function on-CPU times shows, amongst other results that func_a
+spent around 0.22 seconds on-CPU.  This times excludes time spent in
+other functions.
+
+The inclusive function on-CPU times show that func_a spent around 1.4
+seconds on-CPU.  This includes the time spent in other functions called.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/py_flow_example.txt b/external/cddl/dtracetoolkit/dist/Examples/py_flow_example.txt
new file mode 100644
index 0000000..d62269e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/py_flow_example.txt
@@ -0,0 +1,485 @@
+The following are examples of py_flow.d.
+
+This is a simple script to trace the flow of Python functions.
+Here it traces the example program, Code/Python/func_abc.py
+
+# py_flow.d
+  C TIME(us)         FILE             -- FUNC
+  0 3064371810154    site.py          -> ?
+  0 3064371830069    os.py              -> ?
+  0 3064371840076    posixpath.py         -> ?
+  0 3064371840298    stat.py                -> ?
+  0 3064371840319    stat.py                <- ?
+  0 3064371840345    posixpath.py         <- ?
+  0 3064371840364    os.py                -> _get_exports_list
+  0 3064371840510    os.py                <- _get_exports_list
+  0 3064371849994    UserDict.py          -> ?
+  0 3064371850011    UserDict.py            -> UserDict
+  0 3064371850051    UserDict.py            <- UserDict
+  0 3064371850067    UserDict.py            -> IterableUserDict
+  0 3064371850075    UserDict.py            <- IterableUserDict
+  0 3064371850088    UserDict.py            -> DictMixin
+  0 3064371850291    UserDict.py            <- DictMixin
+  0 3064371850300    UserDict.py          <- ?
+  0 3064371850320    os.py                -> _Environ
+  0 3064371850330    os.py                <- _Environ
+  0 3064371850342    os.py                -> __init__
+  0 3064371850353    UserDict.py            -> __init__
+  0 3064371850363    UserDict.py            <- __init__
+  0 3064371850372    os.py                <- __init__
+  0 3064371850381    os.py                -> _exists
+  0 3064371851137    <string>               -> ?
+  0 3064371851146    <string>               <- ?
+  0 3064371851155    os.py                <- _exists
+  0 3064371851162    os.py                -> _exists
+  0 3064371851186    <string>               -> ?
+  0 3064371851195    <string>               <- ?
+  0 3064371851213    os.py                <- _exists
+  0 3064371851220    os.py                -> _exists
+  0 3064371851242    <string>               -> ?
+  0 3064371851249    <string>               <- ?
+  0 3064371851257    os.py                <- _exists
+  0 3064371851266    os.py                -> _exists
+  0 3064371851286    <string>               -> ?
+  0 3064371851293    <string>               <- ?
+  0 3064371851300    os.py                <- _exists
+  0 3064371851310    os.py                -> _exists
+  0 3064371851330    <string>               -> ?
+  0 3064371851337    <string>               <- ?
+  0 3064371851344    os.py                <- _exists
+  0 3064371851354    os.py                -> _exists
+  0 3064371851374    <string>               -> ?
+  0 3064371851381    <string>               <- ?
+  0 3064371851388    os.py                <- _exists
+  0 3064371851395    os.py                -> _exists
+  0 3064371851415    <string>               -> ?
+  0 3064371851423    <string>               <- ?
+  0 3064371851436    os.py                <- _exists
+  0 3064371851445    os.py                -> _exists
+  0 3064371851465    <string>               -> ?
+  0 3064371851473    <string>               <- ?
+  0 3064371851485    os.py                <- _exists
+  0 3064371851493    os.py                -> _exists
+  0 3064371851514    <string>               -> ?
+  0 3064371851522    <string>               <- ?
+  0 3064371851534    os.py                <- _exists
+  0 3064371851785    copy_reg.py          -> ?
+  0 3064371851996    types.py               -> ?
+  0 3064371852063    types.py                 -> _C
+  0 3064371852073    types.py                 <- _C
+  0 3064371852108    types.py               <- ?
+  0 3064371852129    copy_reg.py            -> pickle
+  0 3064371852139    copy_reg.py              -> constructor
+  0 3064371852147    copy_reg.py              <- constructor
+  0 3064371852155    copy_reg.py            <- pickle
+  0 3064371852166    copy_reg.py          <- ?
+  0 3064371852179    copy_reg.py          -> pickle
+  0 3064371852188    copy_reg.py            -> constructor
+  0 3064371852196    copy_reg.py            <- constructor
+  0 3064371852204    copy_reg.py          <- pickle
+  0 3064371852212    copy_reg.py          -> pickle
+  0 3064371852221    copy_reg.py            -> constructor
+  0 3064371852229    copy_reg.py            <- constructor
+  0 3064371852236    copy_reg.py          <- pickle
+  0 3064371852244    os.py                -> _exists
+  0 3064371852269    <string>               -> ?
+  0 3064371852277    <string>               <- ?
+  0 3064371852289    os.py                <- _exists
+  0 3064371852297    os.py              <- ?
+  0 3064371852330    site.py            -> _Printer
+  0 3064371852340    site.py            <- _Printer
+  0 3064371852376    site.py            -> _Helper
+  0 3064371852384    site.py            <- _Helper
+  0 3064371852416    site.py            -> main
+  0 3064371852423    site.py              -> abs__file__
+  0 3064371852434    posixpath.py           -> abspath
+  0 3064371852442    posixpath.py             -> isabs
+  0 3064371852452    posixpath.py             <- isabs
+  0 3064371852460    posixpath.py             -> normpath
+  0 3064371852482    posixpath.py             <- normpath
+  0 3064371852490    posixpath.py           <- abspath
+  0 3064371852504    posixpath.py           -> abspath
+  0 3064371852511    posixpath.py             -> isabs
+  0 3064371852520    posixpath.py             <- isabs
+  0 3064371852527    posixpath.py             -> normpath
+  0 3064371852543    posixpath.py             <- normpath
+  0 3064371852552    posixpath.py           <- abspath
+  0 3064371852560    posixpath.py           -> abspath
+  0 3064371852567    posixpath.py             -> isabs
+  0 3064371852576    posixpath.py             <- isabs
+  0 3064371852583    posixpath.py             -> normpath
+  0 3064371852598    posixpath.py             <- normpath
+  0 3064371852607    posixpath.py           <- abspath
+  0 3064371852615    posixpath.py           -> abspath
+  0 3064371852622    posixpath.py             -> isabs
+  0 3064371852631    posixpath.py             <- isabs
+  0 3064371852638    posixpath.py             -> normpath
+  0 3064371852653    posixpath.py             <- normpath
+  0 3064371852661    posixpath.py           <- abspath
+  0 3064371852674    posixpath.py           -> abspath
+  0 3064371852682    posixpath.py             -> isabs
+  0 3064371852690    posixpath.py             <- isabs
+  0 3064371852697    posixpath.py             -> normpath
+  0 3064371852713    posixpath.py             <- normpath
+  0 3064371852721    posixpath.py           <- abspath
+  0 3064371852741    posixpath.py           -> abspath
+  0 3064371852748    posixpath.py             -> isabs
+  0 3064371852757    posixpath.py             <- isabs
+  0 3064371852764    posixpath.py             -> normpath
+  0 3064371852779    posixpath.py             <- normpath
+  0 3064371852787    posixpath.py           <- abspath
+  0 3064371852804    posixpath.py           -> abspath
+  0 3064371852811    posixpath.py             -> isabs
+  0 3064371852819    posixpath.py             <- isabs
+  0 3064371852826    posixpath.py             -> normpath
+  0 3064371852842    posixpath.py             <- normpath
+  0 3064371852850    posixpath.py           <- abspath
+  0 3064371852858    posixpath.py           -> abspath
+  0 3064371852865    posixpath.py             -> isabs
+  0 3064371852874    posixpath.py             <- isabs
+  0 3064371852881    posixpath.py             -> normpath
+  0 3064371852896    posixpath.py             <- normpath
+  0 3064371852904    posixpath.py           <- abspath
+  0 3064371852915    site.py              <- abs__file__
+  0 3064371852922    site.py              -> removeduppaths
+  0 3064371852931    site.py                -> makepath
+  0 3064371852940    posixpath.py             -> join
+  0 3064371852948    posixpath.py             <- join
+  0 3064371852955    posixpath.py             -> abspath
+  0 3064371852963    posixpath.py               -> isabs
+  0 3064371852972    posixpath.py               <- isabs
+  0 3064371852980    posixpath.py               -> normpath
+  0 3064371852995    posixpath.py               <- normpath
+  0 3064371853002    posixpath.py             <- abspath
+  0 3064371853010    posixpath.py             -> normcase
+  0 3064371853018    posixpath.py             <- normcase
+  0 3064371853025    site.py                <- makepath
+  0 3064371853065    site.py                -> makepath
+  0 3064371853073    posixpath.py             -> join
+  0 3064371853081    posixpath.py             <- join
+  0 3064371853088    posixpath.py             -> abspath
+  0 3064371853096    posixpath.py               -> isabs
+  0 3064371853104    posixpath.py               <- isabs
+  0 3064371853111    posixpath.py               -> normpath
+  0 3064371853126    posixpath.py               <- normpath
+  0 3064371853134    posixpath.py             <- abspath
+  0 3064371853142    posixpath.py             -> normcase
+  0 3064371853150    posixpath.py             <- normcase
+  0 3064371853157    site.py                <- makepath
+  0 3064371853165    site.py                -> makepath
+  0 3064371853173    posixpath.py             -> join
+  0 3064371853181    posixpath.py             <- join
+  0 3064371853188    posixpath.py             -> abspath
+  0 3064371853195    posixpath.py               -> isabs
+  0 3064371853203    posixpath.py               <- isabs
+  0 3064371853210    posixpath.py               -> normpath
+  0 3064371853226    posixpath.py               <- normpath
+  0 3064371853234    posixpath.py             <- abspath
+  0 3064371853241    posixpath.py             -> normcase
+  0 3064371853249    posixpath.py             <- normcase
+  0 3064371853256    site.py                <- makepath
+  0 3064371853265    site.py                -> makepath
+  0 3064371853272    posixpath.py             -> join
+  0 3064371853280    posixpath.py             <- join
+  0 3064371853287    posixpath.py             -> abspath
+  0 3064371853294    posixpath.py               -> isabs
+  0 3064371853303    posixpath.py               <- isabs
+  0 3064371853310    posixpath.py               -> normpath
+  0 3064371853325    posixpath.py               <- normpath
+  0 3064371853333    posixpath.py             <- abspath
+  0 3064371853341    posixpath.py             -> normcase
+  0 3064371853348    posixpath.py             <- normcase
+  0 3064371853356    site.py                <- makepath
+  0 3064371853364    site.py                -> makepath
+  0 3064371853372    posixpath.py             -> join
+  0 3064371853380    posixpath.py             <- join
+  0 3064371853387    posixpath.py             -> abspath
+  0 3064371853394    posixpath.py               -> isabs
+  0 3064371853402    posixpath.py               <- isabs
+  0 3064371853409    posixpath.py               -> normpath
+  0 3064371853425    posixpath.py               <- normpath
+  0 3064371853433    posixpath.py             <- abspath
+  0 3064371853440    posixpath.py             -> normcase
+  0 3064371853448    posixpath.py             <- normcase
+  0 3064371853455    site.py                <- makepath
+  0 3064371853466    site.py              <- removeduppaths
+  0 3064371853476    posixpath.py         -> basename
+  0 3064371853484    posixpath.py           -> split
+  0 3064371853498    posixpath.py           <- split
+  0 3064371853505    posixpath.py         <- basename
+  0 3064371853513    site.py              -> addsitepackages
+  0 3064371853524    posixpath.py           -> join
+  0 3064371853538    posixpath.py           <- join
+  0 3064371853546    posixpath.py           -> join
+  0 3064371853557    posixpath.py           <- join
+  0 3064371853566    posixpath.py           -> isdir
+  0 3064371853597    stat.py                  -> S_ISDIR
+  0 3064371853604    stat.py                    -> S_IFMT
+  0 3064371853612    stat.py                    <- S_IFMT
+  0 3064371853620    stat.py                  <- S_ISDIR
+  0 3064371853627    posixpath.py           <- isdir
+  0 3064371853636    site.py                -> addsitedir
+  0 3064371853643    site.py                  -> makepath
+  0 3064371853651    posixpath.py               -> join
+  0 3064371853659    posixpath.py               <- join
+  0 3064371853666    posixpath.py               -> abspath
+  0 3064371853674    posixpath.py                 -> isabs
+  0 3064371853683    posixpath.py                 <- isabs
+  0 3064371853691    posixpath.py                 -> normpath
+  0 3064371853707    posixpath.py                 <- normpath
+  0 3064371853715    posixpath.py               <- abspath
+  0 3064371853723    posixpath.py               -> normcase
+  0 3064371853730    posixpath.py               <- normcase
+  0 3064371853738    site.py                  <- makepath
+  0 3064371853938    site.py                  -> addpackage
+  0 3064371853948    posixpath.py               -> join
+  0 3064371853958    posixpath.py               <- join
+  0 3064371854087    <string>                   -> ?
+  0 3064371854098    site.py                      -> addsitedir
+  0 3064371854106    site.py                        -> _init_pathinfo
+  0 3064371854115    posixpath.py                     -> isdir
+  0 3064371854195    posixpath.py                     <- isdir
+  0 3064371854204    posixpath.py                     -> isdir
+  0 3064371854224    stat.py                            -> S_ISDIR
+  0 3064371854232    stat.py                              -> S_IFMT
+  0 3064371854240    stat.py                              <- S_IFMT
+  0 3064371854247    stat.py                            <- S_ISDIR
+  0 3064371854254    posixpath.py                     <- isdir
+  0 3064371854262    site.py                          -> makepath
+  0 3064371854271    posixpath.py                       -> join
+  0 3064371854279    posixpath.py                       <- join
+  0 3064371854286    posixpath.py                       -> abspath
+  0 3064371854293    posixpath.py                         -> isabs
+  0 3064371854302    posixpath.py                         <- isabs
+  0 3064371854309    posixpath.py                         -> normpath
+  0 3064371854325    posixpath.py                         <- normpath
+  0 3064371854333    posixpath.py                       <- abspath
+  0 3064371854341    posixpath.py                       -> normcase
+  0 3064371854349    posixpath.py                       <- normcase
+  0 3064371854356    site.py                          <- makepath
+  0 3064371854364    posixpath.py                     -> isdir
+  0 3064371854386    stat.py                            -> S_ISDIR
+  0 3064371854393    stat.py                              -> S_IFMT
+  0 3064371854400    stat.py                              <- S_IFMT
+  0 3064371854408    stat.py                            <- S_ISDIR
+  0 3064371854415    posixpath.py                     <- isdir
+  0 3064371854423    site.py                          -> makepath
+  0 3064371854431    posixpath.py                       -> join
+  0 3064371854438    posixpath.py                       <- join
+  0 3064371854446    posixpath.py                       -> abspath
+  0 3064371854453    posixpath.py                         -> isabs
+  0 3064371854461    posixpath.py                         <- isabs
+  0 3064371854469    posixpath.py                         -> normpath
+  0 3064371854485    posixpath.py                         <- normpath
+  0 3064371854493    posixpath.py                       <- abspath
+  0 3064371854500    posixpath.py                       -> normcase
+  0 3064371854508    posixpath.py                       <- normcase
+  0 3064371854516    site.py                          <- makepath
+  0 3064371854524    posixpath.py                     -> isdir
+  0 3064371854556    stat.py                            -> S_ISDIR
+  0 3064371854563    stat.py                              -> S_IFMT
+  0 3064371854571    stat.py                              <- S_IFMT
+  0 3064371854578    stat.py                            <- S_ISDIR
+  0 3064371854585    posixpath.py                     <- isdir
+  0 3064371854593    site.py                          -> makepath
+  0 3064371854601    posixpath.py                       -> join
+  0 3064371854609    posixpath.py                       <- join
+  0 3064371854616    posixpath.py                       -> abspath
+  0 3064371854624    posixpath.py                         -> isabs
+  0 3064371854632    posixpath.py                         <- isabs
+  0 3064371854639    posixpath.py                         -> normpath
+  0 3064371854655    posixpath.py                         <- normpath
+  0 3064371854663    posixpath.py                       <- abspath
+  0 3064371854671    posixpath.py                       -> normcase
+  0 3064371854679    posixpath.py                       <- normcase
+  0 3064371854686    site.py                          <- makepath
+  0 3064371854694    posixpath.py                     -> isdir
+  0 3064371854715    stat.py                            -> S_ISDIR
+  0 3064371854722    stat.py                              -> S_IFMT
+  0 3064371854730    stat.py                              <- S_IFMT
+  0 3064371854737    stat.py                            <- S_ISDIR
+  0 3064371854744    posixpath.py                     <- isdir
+  0 3064371854752    site.py                          -> makepath
+  0 3064371854759    posixpath.py                       -> join
+  0 3064371854767    posixpath.py                       <- join
+  0 3064371854774    posixpath.py                       -> abspath
+  0 3064371854782    posixpath.py                         -> isabs
+  0 3064371854790    posixpath.py                         <- isabs
+  0 3064371854797    posixpath.py                         -> normpath
+  0 3064371854813    posixpath.py                         <- normpath
+  0 3064371854821    posixpath.py                       <- abspath
+  0 3064371854829    posixpath.py                       -> normcase
+  0 3064371854837    posixpath.py                       <- normcase
+  0 3064371854844    site.py                          <- makepath
+  0 3064371854852    posixpath.py                     -> isdir
+  0 3064371854872    stat.py                            -> S_ISDIR
+  0 3064371854879    stat.py                              -> S_IFMT
+  0 3064371854887    stat.py                              <- S_IFMT
+  0 3064371854894    stat.py                            <- S_ISDIR
+  0 3064371854901    posixpath.py                     <- isdir
+  0 3064371854909    site.py                          -> makepath
+  0 3064371854917    posixpath.py                       -> join
+  0 3064371854925    posixpath.py                       <- join
+  0 3064371854932    posixpath.py                       -> abspath
+  0 3064371854939    posixpath.py                         -> isabs
+  0 3064371854947    posixpath.py                         <- isabs
+  0 3064371854954    posixpath.py                         -> normpath
+  0 3064371854970    posixpath.py                         <- normpath
+  0 3064371854978    posixpath.py                       <- abspath
+  0 3064371854986    posixpath.py                       -> normcase
+  0 3064371854994    posixpath.py                       <- normcase
+  0 3064371855001    site.py                          <- makepath
+  0 3064371855009    site.py                        <- _init_pathinfo
+  0 3064371855016    site.py                        -> makepath
+  0 3064371855024    posixpath.py                     -> join
+  0 3064371855032    posixpath.py                     <- join
+  0 3064371855039    posixpath.py                     -> abspath
+  0 3064371855047    posixpath.py                       -> isabs
+  0 3064371855055    posixpath.py                       <- isabs
+  0 3064371855063    posixpath.py                       -> normpath
+  0 3064371855078    posixpath.py                       <- normpath
+  0 3064371855086    posixpath.py                     <- abspath
+  0 3064371855094    posixpath.py                     -> normcase
+  0 3064371855101    posixpath.py                     <- normcase
+  0 3064371855144    site.py                        <- makepath
+  0 3064371855318    site.py                        -> addpackage
+  0 3064371855327    posixpath.py                     -> join
+  0 3064371855337    posixpath.py                     <- join
+  0 3064371855411    site.py                          -> makepath
+  0 3064371855420    posixpath.py                       -> join
+  0 3064371855430    posixpath.py                       <- join
+  0 3064371855437    posixpath.py                       -> abspath
+  0 3064371855445    posixpath.py                         -> isabs
+  0 3064371855453    posixpath.py                         <- isabs
+  0 3064371855460    posixpath.py                         -> normpath
+  0 3064371855477    posixpath.py                         <- normpath
+  0 3064371855485    posixpath.py                       <- abspath
+  0 3064371855493    posixpath.py                       -> normcase
+  0 3064371855501    posixpath.py                       <- normcase
+  0 3064371855509    site.py                          <- makepath
+  0 3064371855517    posixpath.py                     -> exists
+  0 3064371855542    posixpath.py                     <- exists
+  0 3064371855591    site.py                        <- addpackage
+  0 3064371855611    site.py                        -> addpackage
+  0 3064371855618    posixpath.py                     -> join
+  0 3064371855628    posixpath.py                     <- join
+  0 3064371855683    site.py                          -> makepath
+  0 3064371855692    posixpath.py                       -> join
+  0 3064371855739    posixpath.py                       <- join
+  0 3064371855747    posixpath.py                       -> abspath
+  0 3064371855754    posixpath.py                         -> isabs
+  0 3064371855763    posixpath.py                         <- isabs
+  0 3064371855770    posixpath.py                         -> normpath
+  0 3064371855788    posixpath.py                         <- normpath
+  0 3064371855796    posixpath.py                       <- abspath
+  0 3064371855803    posixpath.py                       -> normcase
+  0 3064371855811    posixpath.py                       <- normcase
+  0 3064371855818    site.py                          <- makepath
+  0 3064371855826    posixpath.py                     -> exists
+  0 3064371855851    posixpath.py                     <- exists
+  0 3064371855880    site.py                        <- addpackage
+  0 3064371855892    site.py                      <- addsitedir
+  0 3064371855900    <string>                   <- ?
+  0 3064371855915    site.py                  <- addpackage
+  0 3064371855923    site.py                <- addsitedir
+  0 3064371855932    posixpath.py           -> isdir
+  0 3064371855965    posixpath.py           <- isdir
+  0 3064371855973    site.py              <- addsitepackages
+  0 3064371855982    site.py              -> setquit
+  0 3064371855993    site.py              <- setquit
+  0 3064371856000    site.py              -> setcopyright
+  0 3064371856009    site.py                -> __init__
+  0 3064371856019    site.py                <- __init__
+  0 3064371856028    site.py                -> __init__
+  0 3064371856037    site.py                <- __init__
+  0 3064371856045    posixpath.py           -> dirname
+  0 3064371856052    posixpath.py             -> split
+  0 3064371856065    posixpath.py             <- split
+  0 3064371856073    posixpath.py           <- dirname
+  0 3064371856085    posixpath.py           -> join
+  0 3064371856096    posixpath.py           <- join
+  0 3064371856104    site.py                -> __init__
+  0 3064371856113    site.py                <- __init__
+  0 3064371856121    site.py              <- setcopyright
+  0 3064371856128    site.py              -> sethelper
+  0 3064371856136    site.py              <- sethelper
+  0 3064371856143    site.py              -> aliasmbcs
+  0 3064371856151    site.py              <- aliasmbcs
+  0 3064371856158    site.py              -> setencoding
+  0 3064371856166    site.py              <- setencoding
+  0 3064371856173    site.py              -> execsitecustomize
+  0 3064371871773    site.py              <- execsitecustomize
+  0 3064371871794    site.py            <- main
+  0 3064371871805    site.py          <- ?
+  0 3064371872141    warnings.py      -> ?
+  0 306437187232e    linecache.py       -> ?
+  0 3064371872336    linecache.py       <- ?
+  0 3064371872352    warnings.py        -> _OptionError
+  0 3064371872361    warnings.py        <- _OptionError
+  0 3064371872378    warnings.py        -> _processoptions
+  0 3064371872387    warnings.py        <- _processoptions
+  0 3064371872397    warnings.py        -> simplefilter
+  0 3064371872410    warnings.py        <- simplefilter
+  0 3064371872418    warnings.py        -> simplefilter
+  0 3064371872428    warnings.py        <- simplefilter
+  0 3064371872436    warnings.py      <- ?
+  0 3064371886557    __init__.py      -> ?
+  0 3064371891761    codecs.py          -> ?
+  0 3064371891836    codecs.py            -> Codec
+  0 3064371891848    codecs.py            <- Codec
+  0 3064371891864    codecs.py            -> StreamWriter
+  0 3064371891874    codecs.py            <- StreamWriter
+  0 3064371891885    codecs.py            -> StreamReader
+  0 3064371891897    codecs.py            <- StreamReader
+  0 3064371891907    codecs.py            -> StreamReaderWriter
+  0 3064371891918    codecs.py            <- StreamReaderWriter
+  0 3064371891926    codecs.py            -> StreamRecoder
+  0 3064371891938    codecs.py            <- StreamRecoder
+  0 3064371891953    codecs.py          <- ?
+  0 3064371902521    aliases.py         -> ?
+  0 3064371902580    aliases.py         <- ?
+  0 3064371902605    __init__.py        -> CodecRegistryError
+  0 3064371902614    __init__.py        <- CodecRegistryError
+  0 3064371902636    __init__.py      <- ?
+  0 3064371902655    __init__.py      -> search_function
+  0 3064371902666    __init__.py        -> normalize_encoding
+  0 3064371902682    __init__.py        <- normalize_encoding
+  0 3064371902888    ascii.py           -> ?
+  0 3064371902900    ascii.py             -> Codec
+  0 3064371902909    ascii.py             <- Codec
+  0 3064371902922    ascii.py             -> StreamWriter
+  0 3064371902930    ascii.py             <- StreamWriter
+  0 3064371902941    ascii.py             -> StreamReader
+  0 3064371902949    ascii.py             <- StreamReader
+  0 3064371902972    ascii.py             -> StreamConverter
+  0 3064371902981    ascii.py             <- StreamConverter
+  0 3064371902993    ascii.py           <- ?
+  0 3064371903009    ascii.py           -> getregentry
+  0 3064371903018    ascii.py           <- getregentry
+  0 3064371903044    __init__.py      <- search_function
+  0 3064371903414    func_abc.py      -> ?
+  0 3064371933251    func_abc.py        -> func_a
+  0 3064372940696    func_abc.py          -> func_b
+  0 3064373950608    func_abc.py            -> func_c
+  0 3064374960497    func_abc.py            <- func_c
+  0 3064374960512    func_abc.py          <- func_b
+  0 3064374960520    func_abc.py        <- func_a
+  0 3064374960528    func_abc.py      <- ?
+^C
+
+Here we can see that Python has done extensive pre-processing before it runs
+the Code/Python/func_abc.py program itself.
+
+This shows which function is calling which - the output above ends by
+showing that func_a called func_b which in turn called func_c etc.
+
+The TIME(us) column shows time from boot in microseconds.
+
+The FILE column shows the file that was being executed.
+
+If the output looks strange, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/py_flowinfo_example.txt b/external/cddl/dtracetoolkit/dist/Examples/py_flowinfo_example.txt
new file mode 100644
index 0000000..f93dc09
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/py_flowinfo_example.txt
@@ -0,0 +1,485 @@
+Following are examples of py_flowinfo.d.
+
+This is a simple script to trace the flow of Python functions.  Here it traces 
+the flow into and out of libraries and the example program,
+Code/Python/func_abc.py.
+
+# py_flowinfo.d
+C    PID  DELTA(us)              FILE:LINE TYPE     -- FUNC
+0 145424          3           site.py:58   func     -> ?
+0 145424       1375             os.py:22   func       -> ?
+0 145424        692      posixpath.py:11   func         -> ?
+0 145424        184           stat.py:4    func           -> ?
+0 145424         21           stat.py:86   func           <- ?
+0 145424         32      posixpath.py:454  func         <- ?
+0 145424         18             os.py:34   func         -> _get_exports_list
+0 145424        135             os.py:38   func         <- _get_exports_list
+0 145424        261       UserDict.py:1    func         -> ?
+0 145424         11       UserDict.py:3    func           -> UserDict
+0 145424         36       UserDict.py:71   func           <- UserDict
+0 145424         16       UserDict.py:73   func           -> IterableUserDict
+0 145424          9       UserDict.py:74   func           <- IterableUserDict
+0 145424         13       UserDict.py:77   func           -> DictMixin
+0 145424        174       UserDict.py:169  func           <- DictMixin
+0 145424         11       UserDict.py:77   func         <- ?
+0 145424         17             os.py:458  func         -> _Environ
+0 145424         11             os.py:489  func         <- _Environ
+0 145424         13             os.py:459  func         -> __init__
+0 145424         11       UserDict.py:4    func           -> __init__
+0 145424         11       UserDict.py:9    func           <- __init__
+0 145424         10             os.py:461  func         <- __init__
+0 145424         11             os.py:501  func         -> _exists
+0 145424        604          <string>:0    func           -> ?
+0 145424         10          <string>:0    func           <- ?
+0 145424          9             os.py:504  func         <- _exists
+0 145424          9             os.py:501  func         -> _exists
+0 145424         24          <string>:0    func           -> ?
+0 145424          9          <string>:0    func           <- ?
+0 145424         15             os.py:506  func         <- _exists
+0 145424          9             os.py:501  func         -> _exists
+0 145424         23          <string>:0    func           -> ?
+0 145424          8          <string>:0    func           <- ?
+0 145424          9             os.py:504  func         <- _exists
+0 145424         26             os.py:501  func         -> _exists
+0 145424         23          <string>:0    func           -> ?
+0 145424          8          <string>:0    func           <- ?
+0 145424          8             os.py:504  func         <- _exists
+0 145424         11             os.py:501  func         -> _exists
+0 145424         22          <string>:0    func           -> ?
+0 145424          8          <string>:0    func           <- ?
+0 145424          8             os.py:504  func         <- _exists
+0 145424         11             os.py:501  func         -> _exists
+0 145424         22          <string>:0    func           -> ?
+0 145424          8          <string>:0    func           <- ?
+0 145424          8             os.py:504  func         <- _exists
+0 145424          9             os.py:501  func         -> _exists
+0 145424         21          <string>:0    func           -> ?
+0 145424          9          <string>:0    func           <- ?
+0 145424         14             os.py:506  func         <- _exists
+0 145424         10             os.py:501  func         -> _exists
+0 145424         22          <string>:0    func           -> ?
+0 145424          9          <string>:0    func           <- ?
+0 145424         13             os.py:506  func         <- _exists
+0 145424         11             os.py:501  func         -> _exists
+0 145424         22          <string>:0    func           -> ?
+0 145424          8          <string>:0    func           <- ?
+0 145424         13             os.py:506  func         <- _exists
+0 145424        181       copy_reg.py:5    func         -> ?
+0 145424        181          types.py:4    func           -> ?
+0 145424         64          types.py:55   func             -> _C
+0 145424         10          types.py:56   func             <- _C
+0 145424         35          types.py:89   func           <- ?
+0 145424         22       copy_reg.py:14   func           -> pickle
+0 145424         11       copy_reg.py:27   func             -> constructor
+0 145424          9       copy_reg.py:29   func             <- constructor
+0 145424          9       copy_reg.py:25   func           <- pickle
+0 145424         12       copy_reg.py:175  func         <- ?
+0 145424         15       copy_reg.py:14   func         -> pickle
+0 145424         10       copy_reg.py:27   func           -> constructor
+0 145424          9       copy_reg.py:29   func           <- constructor
+0 145424          9       copy_reg.py:25   func         <- pickle
+0 145424         10       copy_reg.py:14   func         -> pickle
+0 145424         10       copy_reg.py:27   func           -> constructor
+0 145424          9       copy_reg.py:29   func           <- constructor
+0 145424          9       copy_reg.py:25   func         <- pickle
+0 145424          9             os.py:501  func         -> _exists
+0 145424         26          <string>:0    func           -> ?
+0 145424          9          <string>:0    func           <- ?
+0 145424         14             os.py:506  func         <- _exists
+0 145424          9             os.py:711  func       <- ?
+0 145424         33           site.py:238  func       -> _Printer
+0 145424         11           site.py:279  func       <- _Printer
+0 145424         38           site.py:317  func       -> _Helper
+0 145424          9           site.py:326  func       <- _Helper
+0 145424         34           site.py:376  func       -> main
+0 145424          8           site.py:69   func         -> abs__file__
+0 145424         11      posixpath.py:401  func           -> abspath
+0 145424          9      posixpath.py:47   func             -> isabs
+0 145424         11      posixpath.py:49   func             <- isabs
+0 145424         10      posixpath.py:374  func             -> normpath
+0 145424         22      posixpath.py:398  func             <- normpath
+0 145424         10      posixpath.py:405  func           <- abspath
+0 145424         16      posixpath.py:401  func           -> abspath
+0 145424          9      posixpath.py:47   func             -> isabs
+0 145424          9      posixpath.py:49   func             <- isabs
+0 145424          9      posixpath.py:374  func             -> normpath
+0 145424         17      posixpath.py:398  func             <- normpath
+0 145424         10      posixpath.py:405  func           <- abspath
+0 145424         10      posixpath.py:401  func           -> abspath
+0 145424          9      posixpath.py:47   func             -> isabs
+0 145424          9      posixpath.py:49   func             <- isabs
+0 145424          9      posixpath.py:374  func             -> normpath
+0 145424         16      posixpath.py:398  func             <- normpath
+0 145424         10      posixpath.py:405  func           <- abspath
+0 145424         10      posixpath.py:401  func           -> abspath
+0 145424          9      posixpath.py:47   func             -> isabs
+0 145424          9      posixpath.py:49   func             <- isabs
+0 145424          9      posixpath.py:374  func             -> normpath
+0 145424         16      posixpath.py:398  func             <- normpath
+0 145424          9      posixpath.py:405  func           <- abspath
+0 145424         15      posixpath.py:401  func           -> abspath
+0 145424          9      posixpath.py:47   func             -> isabs
+0 145424          9      posixpath.py:49   func             <- isabs
+0 145424          9      posixpath.py:374  func             -> normpath
+0 145424         16      posixpath.py:398  func             <- normpath
+0 145424          9      posixpath.py:405  func           <- abspath
+0 145424         22      posixpath.py:401  func           -> abspath
+0 145424          9      posixpath.py:47   func             -> isabs
+0 145424          9      posixpath.py:49   func             <- isabs
+0 145424          9      posixpath.py:374  func             -> normpath
+0 145424         16      posixpath.py:398  func             <- normpath
+0 145424          9      posixpath.py:405  func           <- abspath
+0 145424         18      posixpath.py:401  func           -> abspath
+0 145424          9      posixpath.py:47   func             -> isabs
+0 145424          9      posixpath.py:49   func             <- isabs
+0 145424          9      posixpath.py:374  func             -> normpath
+0 145424         16      posixpath.py:398  func             <- normpath
+0 145424         10      posixpath.py:405  func           <- abspath
+0 145424         10      posixpath.py:401  func           -> abspath
+0 145424          9      posixpath.py:47   func             -> isabs
+0 145424          9      posixpath.py:49   func             <- isabs
+0 145424          9      posixpath.py:374  func             -> normpath
+0 145424         16      posixpath.py:398  func             <- normpath
+0 145424          9      posixpath.py:405  func           <- abspath
+0 145424         12           site.py:75   func         <- abs__file__
+0 145424          9           site.py:77   func         -> removeduppaths
+0 145424         11           site.py:65   func           -> makepath
+0 145424         10      posixpath.py:56   func             -> join
+0 145424          9      posixpath.py:66   func             <- join
+0 145424          9      posixpath.py:401  func             -> abspath
+0 145424          9      posixpath.py:47   func               -> isabs
+0 145424          9      posixpath.py:49   func               <- isabs
+0 145424         10      posixpath.py:374  func               -> normpath
+0 145424         16      posixpath.py:398  func               <- normpath
+0 145424          9      posixpath.py:405  func             <- abspath
+0 145424          9      posixpath.py:39   func             -> normcase
+0 145424          9      posixpath.py:41   func             <- normcase
+0 145424          9           site.py:67   func           <- makepath
+0 145424         42           site.py:65   func           -> makepath
+0 145424          9      posixpath.py:56   func             -> join
+0 145424          9      posixpath.py:66   func             <- join
+0 145424          9      posixpath.py:401  func             -> abspath
+0 145424          9      posixpath.py:47   func               -> isabs
+0 145424          9      posixpath.py:49   func               <- isabs
+0 145424          9      posixpath.py:374  func               -> normpath
+0 145424         16      posixpath.py:398  func               <- normpath
+0 145424          9      posixpath.py:405  func             <- abspath
+0 145424         10      posixpath.py:39   func             -> normcase
+0 145424          8      posixpath.py:41   func             <- normcase
+0 145424          9           site.py:67   func           <- makepath
+0 145424         10           site.py:65   func           -> makepath
+0 145424          9      posixpath.py:56   func             -> join
+0 145424          9      posixpath.py:66   func             <- join
+0 145424          9      posixpath.py:401  func             -> abspath
+0 145424          9      posixpath.py:47   func               -> isabs
+0 145424          9      posixpath.py:49   func               <- isabs
+0 145424          9      posixpath.py:374  func               -> normpath
+0 145424         16      posixpath.py:398  func               <- normpath
+0 145424          9      posixpath.py:405  func             <- abspath
+0 145424          9      posixpath.py:39   func             -> normcase
+0 145424          8      posixpath.py:41   func             <- normcase
+0 145424          9           site.py:67   func           <- makepath
+0 145424         10           site.py:65   func           -> makepath
+0 145424          9      posixpath.py:56   func             -> join
+0 145424          9      posixpath.py:66   func             <- join
+0 145424          9      posixpath.py:401  func             -> abspath
+0 145424          9      posixpath.py:47   func               -> isabs
+0 145424          9      posixpath.py:49   func               <- isabs
+0 145424          9      posixpath.py:374  func               -> normpath
+0 145424         16      posixpath.py:398  func               <- normpath
+0 145424          9      posixpath.py:405  func             <- abspath
+0 145424          9      posixpath.py:39   func             -> normcase
+0 145424          8      posixpath.py:41   func             <- normcase
+0 145424          9           site.py:67   func           <- makepath
+0 145424         10           site.py:65   func           -> makepath
+0 145424          9      posixpath.py:56   func             -> join
+0 145424          9      posixpath.py:66   func             <- join
+0 145424          9      posixpath.py:401  func             -> abspath
+0 145424          9      posixpath.py:47   func               -> isabs
+0 145424          9      posixpath.py:49   func               <- isabs
+0 145424          9      posixpath.py:374  func               -> normpath
+0 145424         16      posixpath.py:398  func               <- normpath
+0 145424          9      posixpath.py:405  func             <- abspath
+0 145424          9      posixpath.py:39   func             -> normcase
+0 145424          8      posixpath.py:41   func             <- normcase
+0 145424          9           site.py:67   func           <- makepath
+0 145424         12           site.py:93   func         <- removeduppaths
+0 145424         11      posixpath.py:110  func         -> basename
+0 145424         10      posixpath.py:74   func           -> split
+0 145424         14      posixpath.py:81   func           <- split
+0 145424          9      posixpath.py:112  func         <- basename
+0 145424          9           site.py:171  func         -> addsitepackages
+0 145424         13      posixpath.py:56   func           -> join
+0 145424         15      posixpath.py:66   func           <- join
+0 145424         10      posixpath.py:56   func           -> join
+0 145424         12      posixpath.py:66   func           <- join
+0 145424         11      posixpath.py:192  func           -> isdir
+0 145424         34           stat.py:45   func             -> S_ISDIR
+0 145424          9           stat.py:29   func               -> S_IFMT
+0 145424          9           stat.py:30   func               <- S_IFMT
+0 145424          9           stat.py:46   func             <- S_ISDIR
+0 145424          9      posixpath.py:198  func           <- isdir
+0 145424         11           site.py:148  func           -> addsitedir
+0 145424          9           site.py:65   func             -> makepath
+0 145424          9      posixpath.py:56   func               -> join
+0 145424          9      posixpath.py:66   func               <- join
+0 145424          9      posixpath.py:401  func               -> abspath
+0 145424          9      posixpath.py:47   func                 -> isabs
+0 145424          9      posixpath.py:49   func                 <- isabs
+0 145424         10      posixpath.py:374  func                 -> normpath
+0 145424         17      posixpath.py:398  func                 <- normpath
+0 145424          9      posixpath.py:405  func               <- abspath
+0 145424          9      posixpath.py:39   func               -> normcase
+0 145424          9      posixpath.py:41   func               <- normcase
+0 145424          9           site.py:67   func             <- makepath
+0 145424        222           site.py:117  func             -> addpackage
+0 145424         12      posixpath.py:56   func               -> join
+0 145424         12      posixpath.py:66   func               <- join
+0 145424        132          <string>:1    func               -> ?
+0 145424         13           site.py:148  func                 -> addsitedir
+0 145424          9           site.py:105  func                   -> _init_pathinfo
+0 145424         11      posixpath.py:192  func                     -> isdir
+0 145424         84      posixpath.py:197  func                     <- isdir
+0 145424         12      posixpath.py:192  func                     -> isdir
+0 145424         23           stat.py:45   func                       -> S_ISDIR
+0 145424          9           stat.py:29   func                         -> S_IFMT
+0 145424          9           stat.py:30   func                         <- S_IFMT
+0 145424          9           stat.py:46   func                       <- S_ISDIR
+0 145424          9      posixpath.py:198  func                     <- isdir
+0 145424         10           site.py:65   func                     -> makepath
+0 145424         10      posixpath.py:56   func                       -> join
+0 145424          9      posixpath.py:66   func                       <- join
+0 145424          9      posixpath.py:401  func                       -> abspath
+0 145424          9      posixpath.py:47   func                         -> isabs
+0 145424          9      posixpath.py:49   func                         <- isabs
+0 145424         10      posixpath.py:374  func                         -> normpath
+0 145424         17      posixpath.py:398  func                         <- normpath
+0 145424         10      posixpath.py:405  func                       <- abspath
+0 145424         10      posixpath.py:39   func                       -> normcase
+0 145424          9      posixpath.py:41   func                       <- normcase
+0 145424          9           site.py:67   func                     <- makepath
+0 145424         10      posixpath.py:192  func                     -> isdir
+0 145424         23           stat.py:45   func                       -> S_ISDIR
+0 145424          8           stat.py:29   func                         -> S_IFMT
+0 145424          8           stat.py:30   func                         <- S_IFMT
+0 145424          9           stat.py:46   func                       <- S_ISDIR
+0 145424          9      posixpath.py:198  func                     <- isdir
+0 145424         10           site.py:65   func                     -> makepath
+0 145424          9      posixpath.py:56   func                       -> join
+0 145424          9      posixpath.py:66   func                       <- join
+0 145424          9      posixpath.py:401  func                       -> abspath
+0 145424          9      posixpath.py:47   func                         -> isabs
+0 145424          9      posixpath.py:49   func                         <- isabs
+0 145424          9      posixpath.py:374  func                         -> normpath
+0 145424         17      posixpath.py:398  func                         <- normpath
+0 145424         10      posixpath.py:405  func                       <- abspath
+0 145424         10      posixpath.py:39   func                       -> normcase
+0 145424          9      posixpath.py:41   func                       <- normcase
+0 145424          9           site.py:67   func                     <- makepath
+0 145424         10      posixpath.py:192  func                     -> isdir
+0 145424         24           stat.py:45   func                       -> S_ISDIR
+0 145424          8           stat.py:29   func                         -> S_IFMT
+0 145424          8           stat.py:30   func                         <- S_IFMT
+0 145424          9           stat.py:46   func                       <- S_ISDIR
+0 145424          8      posixpath.py:198  func                     <- isdir
+0 145424         10           site.py:65   func                     -> makepath
+0 145424          9      posixpath.py:56   func                       -> join
+0 145424          9      posixpath.py:66   func                       <- join
+0 145424          9      posixpath.py:401  func                       -> abspath
+0 145424          9      posixpath.py:47   func                         -> isabs
+0 145424          9      posixpath.py:49   func                         <- isabs
+0 145424          9      posixpath.py:374  func                         -> normpath
+0 145424         17      posixpath.py:398  func                         <- normpath
+0 145424         10      posixpath.py:405  func                       <- abspath
+0 145424         10      posixpath.py:39   func                       -> normcase
+0 145424          9      posixpath.py:41   func                       <- normcase
+0 145424          9           site.py:67   func                     <- makepath
+0 145424         10      posixpath.py:192  func                     -> isdir
+0 145424         23           stat.py:45   func                       -> S_ISDIR
+0 145424          8           stat.py:29   func                         -> S_IFMT
+0 145424          8           stat.py:30   func                         <- S_IFMT
+0 145424          9           stat.py:46   func                       <- S_ISDIR
+0 145424          9      posixpath.py:198  func                     <- isdir
+0 145424         10           site.py:65   func                     -> makepath
+0 145424          9      posixpath.py:56   func                       -> join
+0 145424          9      posixpath.py:66   func                       <- join
+0 145424          9      posixpath.py:401  func                       -> abspath
+0 145424          9      posixpath.py:47   func                         -> isabs
+0 145424          9      posixpath.py:49   func                         <- isabs
+0 145424          9      posixpath.py:374  func                         -> normpath
+0 145424         17      posixpath.py:398  func                         <- normpath
+0 145424          9      posixpath.py:405  func                       <- abspath
+0 145424          9      posixpath.py:39   func                       -> normcase
+0 145424          9      posixpath.py:41   func                       <- normcase
+0 145424          9           site.py:67   func                     <- makepath
+0 145424         10      posixpath.py:192  func                     -> isdir
+0 145424         22           stat.py:45   func                       -> S_ISDIR
+0 145424          8           stat.py:29   func                         -> S_IFMT
+0 145424          8           stat.py:30   func                         <- S_IFMT
+0 145424          9           stat.py:46   func                       <- S_ISDIR
+0 145424          8      posixpath.py:198  func                     <- isdir
+0 145424         10           site.py:65   func                     -> makepath
+0 145424          9      posixpath.py:56   func                       -> join
+0 145424          9      posixpath.py:66   func                       <- join
+0 145424          9      posixpath.py:401  func                       -> abspath
+0 145424          9      posixpath.py:47   func                         -> isabs
+0 145424          9      posixpath.py:49   func                         <- isabs
+0 145424          9      posixpath.py:374  func                         -> normpath
+0 145424         17      posixpath.py:398  func                         <- normpath
+0 145424         10      posixpath.py:405  func                       <- abspath
+0 145424         10      posixpath.py:39   func                       -> normcase
+0 145424          8      posixpath.py:41   func                       <- normcase
+0 145424          9           site.py:67   func                     <- makepath
+0 145424         10           site.py:115  func                   <- _init_pathinfo
+0 145424          9           site.py:65   func                   -> makepath
+0 145424         10      posixpath.py:56   func                     -> join
+0 145424          9      posixpath.py:66   func                     <- join
+0 145424          9      posixpath.py:401  func                     -> abspath
+0 145424          9      posixpath.py:47   func                       -> isabs
+0 145424          9      posixpath.py:49   func                       <- isabs
+0 145424         10      posixpath.py:374  func                       -> normpath
+0 145424         17      posixpath.py:398  func                       <- normpath
+0 145424          9      posixpath.py:405  func                     <- abspath
+0 145424          9      posixpath.py:39   func                     -> normcase
+0 145424          9      posixpath.py:41   func                     <- normcase
+0 145424          9           site.py:67   func                   <- makepath
+0 145424        170           site.py:117  func                   -> addpackage
+0 145424         11      posixpath.py:56   func                     -> join
+0 145424         12      posixpath.py:66   func                     <- join
+0 145424         73           site.py:65   func                     -> makepath
+0 145424         11      posixpath.py:56   func                       -> join
+0 145424         11      posixpath.py:66   func                       <- join
+0 145424         10      posixpath.py:401  func                       -> abspath
+0 145424          9      posixpath.py:47   func                         -> isabs
+0 145424          9      posixpath.py:49   func                         <- isabs
+0 145424          9      posixpath.py:374  func                         -> normpath
+0 145424         19      posixpath.py:398  func                         <- normpath
+0 145424         10      posixpath.py:405  func                       <- abspath
+0 145424          9      posixpath.py:39   func                       -> normcase
+0 145424          9      posixpath.py:41   func                       <- normcase
+0 145424          9           site.py:67   func                     <- makepath
+0 145424         10      posixpath.py:168  func                     -> exists
+0 145424         41      posixpath.py:174  func                     <- exists
+0 145424         53           site.py:146  func                   <- addpackage
+0 145424         21           site.py:117  func                   -> addpackage
+0 145424          9      posixpath.py:56   func                     -> join
+0 145424         11      posixpath.py:66   func                     <- join
+0 145424         48           site.py:65   func                     -> makepath
+0 145424         10      posixpath.py:56   func                       -> join
+0 145424         47      posixpath.py:66   func                       <- join
+0 145424         10      posixpath.py:401  func                       -> abspath
+0 145424          9      posixpath.py:47   func                         -> isabs
+0 145424          9      posixpath.py:49   func                         <- isabs
+0 145424          9      posixpath.py:374  func                         -> normpath
+0 145424         18      posixpath.py:398  func                         <- normpath
+0 145424         10      posixpath.py:405  func                       <- abspath
+0 145424         10      posixpath.py:39   func                       -> normcase
+0 145424          9      posixpath.py:41   func                       <- normcase
+0 145424          9           site.py:67   func                     <- makepath
+0 145424         10      posixpath.py:168  func                     -> exists
+0 145424         25      posixpath.py:174  func                     <- exists
+0 145424         32           site.py:146  func                   <- addpackage
+0 145424         14           site.py:169  func                 <- addsitedir
+0 145424         10          <string>:1    func               <- ?
+0 145424         16           site.py:146  func             <- addpackage
+0 145424         10           site.py:169  func           <- addsitedir
+0 145424         10      posixpath.py:192  func           -> isdir
+0 145424         34      posixpath.py:197  func           <- isdir
+0 145424         10           site.py:204  func         <- addsitepackages
+0 145424         11           site.py:224  func         -> setquit
+0 145424         11           site.py:235  func         <- setquit
+0 145424          9           site.py:299  func         -> setcopyright
+0 145424         11           site.py:244  func           -> __init__
+0 145424         10           site.py:249  func           <- __init__
+0 145424         12           site.py:244  func           -> __init__
+0 145424          9           site.py:249  func           <- __init__
+0 145424         10      posixpath.py:117  func           -> dirname
+0 145424          9      posixpath.py:74   func             -> split
+0 145424         14      posixpath.py:81   func             <- split
+0 145424          9      posixpath.py:119  func           <- dirname
+0 145424         14      posixpath.py:56   func           -> join
+0 145424         11      posixpath.py:66   func           <- join
+0 145424         11           site.py:244  func           -> __init__
+0 145424          9           site.py:249  func           <- __init__
+0 145424          9           site.py:314  func         <- setcopyright
+0 145424          9           site.py:330  func         -> sethelper
+0 145424          9           site.py:331  func         <- sethelper
+0 145424          9           site.py:333  func         -> aliasmbcs
+0 145424          9           site.py:346  func         <- aliasmbcs
+0 145424          9           site.py:348  func         -> setencoding
+0 145424          9           site.py:365  func         <- setencoding
+0 145424          9           site.py:368  func         -> execsitecustomize
+0 145424        706           site.py:373  func         <- execsitecustomize
+0 145424         16           site.py:395  func       <- main
+0 145424         12           site.py:406  func     <- ?
+0 145424        289       warnings.py:1    func     -> ?
+0 145424        158      linecache.py:6    func       -> ?
+0 145424         17      linecache.py:66   func       <- ?
+0 145424         20       warnings.py:179  func       -> _OptionError
+0 145424          9       warnings.py:180  func       <- _OptionError
+0 145424         19       warnings.py:184  func       -> _processoptions
+0 145424         10       warnings.py:189  func       <- _processoptions
+0 145424         12       warnings.py:160  func       -> simplefilter
+0 145424         13       warnings.py:173  func       <- simplefilter
+0 145424         10       warnings.py:160  func       -> simplefilter
+0 145424         11       warnings.py:173  func       <- simplefilter
+0 145424          9       warnings.py:259  func     <- ?
+0 145424        492       __init__.py:28   func     -> ?
+0 145424        599         codecs.py:8    func       -> ?
+0 145424         61         codecs.py:76   func         -> Codec
+0 145424         12         codecs.py:117  func         <- Codec
+0 145424         18         codecs.py:147  func         -> StreamWriter
+0 145424         11         codecs.py:200  func         <- StreamWriter
+0 145424         13         codecs.py:209  func         -> StreamReader
+0 145424         13         codecs.py:436  func         <- StreamReader
+0 145424         12         codecs.py:445  func         -> StreamReaderWriter
+0 145424         13         codecs.py:509  func         <- StreamReaderWriter
+0 145424         11         codecs.py:518  func         -> StreamRecoder
+0 145424         12         codecs.py:619  func         <- StreamRecoder
+0 145424         17         codecs.py:817  func       <- ?
+0 145424        625        aliases.py:17   func       -> ?
+0 145424         54        aliases.py:18   func       <- ?
+0 145424         21       __init__.py:43   func       -> CodecRegistryError
+0 145424         10       __init__.py:45   func       <- CodecRegistryError
+0 145424         19       __init__.py:145  func     <- ?
+0 145424         18       __init__.py:69   func     -> search_function
+0 145424         12       __init__.py:47   func       -> normalize_encoding
+0 145424         16       __init__.py:67   func       <- normalize_encoding
+0 145424        120          ascii.py:8    func       -> ?
+0 145424         14          ascii.py:13   func         -> Codec
+0 145424         10          ascii.py:18   func         <- Codec
+0 145424         15          ascii.py:20   func         -> StreamWriter
+0 145424          9          ascii.py:21   func         <- StreamWriter
+0 145424         13          ascii.py:23   func         -> StreamReader
+0 145424          9          ascii.py:24   func         <- StreamReader
+0 145424         24          ascii.py:26   func         -> StreamConverter
+0 145424         10          ascii.py:29   func         <- StreamConverter
+0 145424         14          ascii.py:33   func       <- ?
+0 145424         17          ascii.py:33   func       -> getregentry
+0 145424         10          ascii.py:35   func       <- getregentry
+0 145424         26       __init__.py:142  func     <- search_function
+0 145424        367       func_abc.py:3    func     -> ?
+0 145424       1722       func_abc.py:14   func       -> func_a
+0 145424    1005677       func_abc.py:9    func         -> func_b
+0 145424    1000271       func_abc.py:5    func           -> func_c
+0 145424    1009739       func_abc.py:7    func           <- func_c
+0 145424         25       func_abc.py:12   func         <- func_b
+0 145424          9       func_abc.py:17   func       <- func_a
+0 145424          9       func_abc.py:19   func     <- ?
+^C
+
+As each function is entered, the last column is indented by 2 spaces. This
+shows which function is calling which.
+
+The DELTA(us) column shows the change in time from the previous line to the
+current line.
+
+The FILE::LINE column shows which line in which file was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/py_flowtime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/py_flowtime_example.txt
new file mode 100644
index 0000000..5ac494b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/py_flowtime_example.txt
@@ -0,0 +1,487 @@
+The following are examples of py_flowtime.d.
+
+This is a simple script to trace the flow of Python functions.  Here it traces 
+the example program, Code/Python/func_abc.py
+
+# py_flowtime.d
+  C TIME(us)         FILE             DELTA(us)  -- FUNC
+  0 3064660319556    site.py                  3 -> ?
+  0 3064660320224    os.py                  667   -> ?
+  0 3064660321335    posixpath.py          1111     -> ?
+  0 3064660321526    stat.py                190       -> ?
+  0 3064660321546    stat.py                 20       <- ?
+  0 3064660321576    posixpath.py            29     <- ?
+  0 3064660321593    os.py                   17     -> _get_exports_list
+  0 3064660321728    os.py                  134     <- _get_exports_list
+  0 3064660321989    UserDict.py            260     -> ?
+  0 3064660322000    UserDict.py             10       -> UserDict
+  0 3064660322035    UserDict.py             34       <- UserDict
+  0 3064660322050    UserDict.py             15       -> IterableUserDict
+  0 3064660322058    UserDict.py              8       <- IterableUserDict
+  0 3064660322071    UserDict.py             12       -> DictMixin
+  0 3064660322247    UserDict.py            176       <- DictMixin
+  0 3064660322258    UserDict.py             10     <- ?
+  0 3064660322275    os.py                   16     -> _Environ
+  0 3064660322285    os.py                   10     <- _Environ
+  0 3064660322298    os.py                   13     -> __init__
+  0 3064660322308    UserDict.py             10       -> __init__
+  0 3064660322319    UserDict.py             10       <- __init__
+  0 3064660322328    os.py                    9     <- __init__
+  0 3064660322338    os.py                   10     -> _exists
+  0 3064660322946    <string>               607       -> ?
+  0 3064660322955    <string>                 8       <- ?
+  0 3064660322963    os.py                    8     <- _exists
+  0 3064660322972    os.py                    8     -> _exists
+  0 3064660322996    <string>                23       -> ?
+  0 3064660323005    <string>                 8       <- ?
+  0 3064660323020    os.py                   14     <- _exists
+  0 3064660323029    os.py                    8     -> _exists
+  0 3064660323051    <string>                22       -> ?
+  0 3064660323059    <string>                 7       <- ?
+  0 3064660323067    os.py                    8     <- _exists
+  0 3064660323077    os.py                   10     -> _exists
+  0 3064660323098    <string>                21       -> ?
+  0 3064660323106    <string>                 7       <- ?
+  0 3064660323114    os.py                    8     <- _exists
+  0 3064660323125    os.py                   10     -> _exists
+  0 3064660323146    <string>                21       -> ?
+  0 3064660323154    <string>                 7       <- ?
+  0 3064660323162    os.py                    8     <- _exists
+  0 3064660323173    os.py                   10     -> _exists
+  0 3064660323194    <string>                21       -> ?
+  0 3064660323202    <string>                 7       <- ?
+  0 3064660323210    os.py                    8     <- _exists
+  0 3064660323218    os.py                    8     -> _exists
+  0 3064660323239    <string>                21       -> ?
+  0 3064660323247    <string>                 8       <- ?
+  0 3064660323261    os.py                   13     <- _exists
+  0 3064660323271    os.py                   10     -> _exists
+  0 3064660323293    <string>                21       -> ?
+  0 3064660323301    <string>                 8       <- ?
+  0 3064660323314    os.py                   12     <- _exists
+  0 3064660323324    os.py                   10     -> _exists
+  0 3064660323345    <string>                21       -> ?
+  0 3064660323354    <string>                 8       <- ?
+  0 3064660323366    os.py                   12     <- _exists
+  0 3064660323545    copy_reg.py            178     -> ?
+  0 3064660323726    types.py               180       -> ?
+  0 3064660323790    types.py                64         -> _C
+  0 3064660323800    types.py                 9         <- _C
+  0 3064660323834    types.py                33       <- ?
+  0 3064660323855    copy_reg.py             21       -> pickle
+  0 3064660323866    copy_reg.py             10         -> constructor
+  0 3064660323874    copy_reg.py              8         <- constructor
+  0 3064660323883    copy_reg.py              8       <- pickle
+  0 3064660323895    copy_reg.py             11     <- ?
+  0 3064660323909    copy_reg.py             14     -> pickle
+  0 3064660323919    copy_reg.py              9       -> constructor
+  0 3064660323927    copy_reg.py              8       <- constructor
+  0 3064660323936    copy_reg.py              8     <- pickle
+  0 3064660323946    copy_reg.py              9     -> pickle
+  0 3064660323955    copy_reg.py              9       -> constructor
+  0 3064660323963    copy_reg.py              8       <- constructor
+  0 3064660323972    copy_reg.py              8     <- pickle
+  0 3064660323981    os.py                    9     -> _exists
+  0 3064660324006    <string>                25       -> ?
+  0 3064660324015    <string>                 8       <- ?
+  0 3064660324028    os.py                   13     <- _exists
+  0 3064660324037    os.py                    8   <- ?
+  0 3064660324069    site.py                 31   -> _Printer
+  0 3064660324080    site.py                 10   <- _Printer
+  0 3064660324118    site.py                 38   -> _Helper
+  0 3064660324127    site.py                  9   <- _Helper
+  0 3064660324160    site.py                 33   -> main
+  0 3064660324168    site.py                  8     -> abs__file__
+  0 3064660324179    posixpath.py            10       -> abspath
+  0 3064660324187    posixpath.py             8         -> isabs
+  0 3064660324197    posixpath.py             9         <- isabs
+  0 3064660324207    posixpath.py             9         -> normpath
+  0 3064660324228    posixpath.py            21         <- normpath
+  0 3064660324238    posixpath.py             9       <- abspath
+  0 3064660324253    posixpath.py            15       -> abspath
+  0 3064660324261    posixpath.py             8         -> isabs
+  0 3064660324270    posixpath.py             8         <- isabs
+  0 3064660324278    posixpath.py             8         -> normpath
+  0 3064660324295    posixpath.py            16         <- normpath
+  0 3064660324304    posixpath.py             9       <- abspath
+  0 3064660324314    posixpath.py             9       -> abspath
+  0 3064660324322    posixpath.py             8         -> isabs
+  0 3064660324331    posixpath.py             8         <- isabs
+  0 3064660324339    posixpath.py             8         -> normpath
+  0 3064660324355    posixpath.py            15         <- normpath
+  0 3064660324364    posixpath.py             8       <- abspath
+  0 3064660324374    posixpath.py             9       -> abspath
+  0 3064660324382    posixpath.py             8         -> isabs
+  0 3064660324391    posixpath.py             8         <- isabs
+  0 3064660324399    posixpath.py             8         -> normpath
+  0 3064660324415    posixpath.py            15         <- normpath
+  0 3064660324424    posixpath.py             8       <- abspath
+  0 3064660324439    posixpath.py            14       -> abspath
+  0 3064660324447    posixpath.py             8         -> isabs
+  0 3064660324456    posixpath.py             8         <- isabs
+  0 3064660324464    posixpath.py             8         -> normpath
+  0 3064660324480    posixpath.py            15         <- normpath
+  0 3064660324489    posixpath.py             8       <- abspath
+  0 3064660324511    posixpath.py            21       -> abspath
+  0 3064660324519    posixpath.py             8         -> isabs
+  0 3064660324528    posixpath.py             8         <- isabs
+  0 3064660324536    posixpath.py             8         -> normpath
+  0 3064660324552    posixpath.py            15         <- normpath
+  0 3064660324561    posixpath.py             9       <- abspath
+  0 3064660324579    posixpath.py            17       -> abspath
+  0 3064660324588    posixpath.py             8         -> isabs
+  0 3064660324596    posixpath.py             8         <- isabs
+  0 3064660324605    posixpath.py             8         -> normpath
+  0 3064660324621    posixpath.py            15         <- normpath
+  0 3064660324630    posixpath.py             8       <- abspath
+  0 3064660324639    posixpath.py             9       -> abspath
+  0 3064660324648    posixpath.py             8         -> isabs
+  0 3064660324656    posixpath.py             8         <- isabs
+  0 3064660324665    posixpath.py             8         -> normpath
+  0 3064660324681    posixpath.py            15         <- normpath
+  0 3064660324690    posixpath.py             9       <- abspath
+  0 3064660324701    site.py                 11     <- abs__file__
+  0 3064660324709    site.py                  8     -> removeduppaths
+  0 3064660324719    site.py                 10       -> makepath
+  0 3064660324729    posixpath.py             9         -> join
+  0 3064660324738    posixpath.py             8         <- join
+  0 3064660324746    posixpath.py             8         -> abspath
+  0 3064660324755    posixpath.py             8           -> isabs
+  0 3064660324764    posixpath.py             8           <- isabs
+  0 3064660324773    posixpath.py             9           -> normpath
+  0 3064660324789    posixpath.py            15           <- normpath
+  0 3064660324797    posixpath.py             8         <- abspath
+  0 3064660324806    posixpath.py             8         -> normcase
+  0 3064660324814    posixpath.py             8         <- normcase
+  0 3064660324823    site.py                  8       <- makepath
+  0 3064660324864    site.py                 40       -> makepath
+  0 3064660324873    posixpath.py             8         -> join
+  0 3064660324881    posixpath.py             8         <- join
+  0 3064660324889    posixpath.py             8         -> abspath
+  0 3064660324898    posixpath.py             8           -> isabs
+  0 3064660324906    posixpath.py             8           <- isabs
+  0 3064660324915    posixpath.py             8           -> normpath
+  0 3064660324931    posixpath.py            15           <- normpath
+  0 3064660324939    posixpath.py             8         <- abspath
+  0 3064660324948    posixpath.py             8         -> normcase
+  0 3064660324957    posixpath.py             8         <- normcase
+  0 3064660324965    site.py                  8       <- makepath
+  0 3064660324974    site.py                  9       -> makepath
+  0 3064660324983    posixpath.py             8         -> join
+  0 3064660324991    posixpath.py             8         <- join
+  0 3064660325000    posixpath.py             8         -> abspath
+  0 3064660325008    posixpath.py             8           -> isabs
+  0 3064660325017    posixpath.py             8           <- isabs
+  0 3064660325025    posixpath.py             8           -> normpath
+  0 3064660325041    posixpath.py            15           <- normpath
+  0 3064660325050    posixpath.py             8         <- abspath
+  0 3064660325059    posixpath.py             8         -> normcase
+  0 3064660325067    posixpath.py             8         <- normcase
+  0 3064660325075    site.py                  8       <- makepath
+  0 3064660325084    site.py                  9       -> makepath
+  0 3064660325093    posixpath.py             8         -> join
+  0 3064660325102    posixpath.py             8         <- join
+  0 3064660325110    posixpath.py             8         -> abspath
+  0 3064660325118    posixpath.py             8           -> isabs
+  0 3064660325127    posixpath.py             8           <- isabs
+  0 3064660325135    posixpath.py             8           -> normpath
+  0 3064660325151    posixpath.py            15           <- normpath
+  0 3064660325160    posixpath.py             8         <- abspath
+  0 3064660325169    posixpath.py             8         -> normcase
+  0 3064660325177    posixpath.py             7         <- normcase
+  0 3064660325185    site.py                  8       <- makepath
+  0 3064660325194    site.py                  9       -> makepath
+  0 3064660325203    posixpath.py             8         -> join
+  0 3064660325212    posixpath.py             8         <- join
+  0 3064660325220    posixpath.py             8         -> abspath
+  0 3064660325228    posixpath.py             8           -> isabs
+  0 3064660325237    posixpath.py             8           <- isabs
+  0 3064660325245    posixpath.py             8           -> normpath
+  0 3064660325261    posixpath.py            15           <- normpath
+  0 3064660325270    posixpath.py             8         <- abspath
+  0 3064660325279    posixpath.py             8         -> normcase
+  0 3064660325287    posixpath.py             8         <- normcase
+  0 3064660325295    site.py                  8       <- makepath
+  0 3064660325307    site.py                 11     <- removeduppaths
+  0 3064660325317    posixpath.py            10     -> basename
+  0 3064660325327    posixpath.py             9       -> split
+  0 3064660325340    posixpath.py            13       <- split
+  0 3064660325349    posixpath.py             8     <- basename
+  0 3064660325358    site.py                  8     -> addsitepackages
+  0 3064660325370    posixpath.py            12       -> join
+  0 3064660325385    posixpath.py            14       <- join
+  0 3064660325394    posixpath.py             9       -> join
+  0 3064660325406    posixpath.py            11       <- join
+  0 3064660325416    posixpath.py            10       -> isdir
+  0 3064660325447    stat.py                 31         -> S_ISDIR
+  0 3064660325456    stat.py                  8           -> S_IFMT
+  0 3064660325464    stat.py                  8           <- S_IFMT
+  0 3064660325473    stat.py                  8         <- S_ISDIR
+  0 3064660325481    posixpath.py             7       <- isdir
+  0 3064660325491    site.py                 10       -> addsitedir
+  0 3064660325500    site.py                  8         -> makepath
+  0 3064660325508    posixpath.py             8           -> join
+  0 3064660325517    posixpath.py             8           <- join
+  0 3064660325525    posixpath.py             8           -> abspath
+  0 3064660325534    posixpath.py             8             -> isabs
+  0 3064660325543    posixpath.py             8             <- isabs
+  0 3064660325552    posixpath.py             9             -> normpath
+  0 3064660325569    posixpath.py            16             <- normpath
+  0 3064660325578    posixpath.py             8           <- abspath
+  0 3064660325587    posixpath.py             8           -> normcase
+  0 3064660325595    posixpath.py             8           <- normcase
+  0 3064660325604    site.py                  8         <- makepath
+  0 3064660325823    site.py                219         -> addpackage
+  0 3064660325834    posixpath.py            10           -> join
+  0 3064660325844    posixpath.py            10           <- join
+  0 3064660325972    <string>               127           -> ?
+  0 3064660325985    site.py                 13             -> addsitedir
+  0 3064660325994    site.py                  8               -> _init_pathinfo
+  0 3064660326004    posixpath.py            10                 -> isdir
+  0 3064660326086    posixpath.py            81                 <- isdir
+  0 3064660326097    posixpath.py            10                 -> isdir
+  0 3064660326118    stat.py                 21                   -> S_ISDIR
+  0 3064660326127    stat.py                  9                     -> S_IFMT
+  0 3064660326136    stat.py                  8                     <- S_IFMT
+  0 3064660326144    stat.py                  8                   <- S_ISDIR
+  0 3064660326152    posixpath.py             7                 <- isdir
+  0 3064660326161    site.py                  9                 -> makepath
+  0 3064660326171    posixpath.py             9                   -> join
+  0 3064660326179    posixpath.py             8                   <- join
+  0 3064660326188    posixpath.py             8                   -> abspath
+  0 3064660326196    posixpath.py             8                     -> isabs
+  0 3064660326205    posixpath.py             9                     <- isabs
+  0 3064660326215    posixpath.py             9                     -> normpath
+  0 3064660326231    posixpath.py            16                     <- normpath
+  0 3064660326240    posixpath.py             8                   <- abspath
+  0 3064660326249    posixpath.py             9                   -> normcase
+  0 3064660326258    posixpath.py             8                   <- normcase
+  0 3064660326266    site.py                  8                 <- makepath
+  0 3064660326276    posixpath.py             9                 -> isdir
+  0 3064660326298    stat.py                 22                   -> S_ISDIR
+  0 3064660326306    stat.py                  8                     -> S_IFMT
+  0 3064660326314    stat.py                  7                     <- S_IFMT
+  0 3064660326322    stat.py                  8                   <- S_ISDIR
+  0 3064660326330    posixpath.py             8                 <- isdir
+  0 3064660326340    site.py                  9                 -> makepath
+  0 3064660326349    posixpath.py             8                   -> join
+  0 3064660326357    posixpath.py             8                   <- join
+  0 3064660326382    posixpath.py            24                   -> abspath
+  0 3064660326390    posixpath.py             8                     -> isabs
+  0 3064660326399    posixpath.py             8                     <- isabs
+  0 3064660326408    posixpath.py             8                     -> normpath
+  0 3064660326425    posixpath.py            16                     <- normpath
+  0 3064660326434    posixpath.py             9                   <- abspath
+  0 3064660326443    posixpath.py             9                   -> normcase
+  0 3064660326451    posixpath.py             8                   <- normcase
+  0 3064660326460    site.py                  8                 <- makepath
+  0 3064660326469    posixpath.py             9                 -> isdir
+  0 3064660326493    stat.py                 23                   -> S_ISDIR
+  0 3064660326501    stat.py                  8                     -> S_IFMT
+  0 3064660326509    stat.py                  7                     <- S_IFMT
+  0 3064660326517    stat.py                  8                   <- S_ISDIR
+  0 3064660326525    posixpath.py             7                 <- isdir
+  0 3064660326534    site.py                  9                 -> makepath
+  0 3064660326542    posixpath.py             8                   -> join
+  0 3064660326551    posixpath.py             8                   <- join
+  0 3064660326559    posixpath.py             8                   -> abspath
+  0 3064660326568    posixpath.py             8                     -> isabs
+  0 3064660326576    posixpath.py             8                     <- isabs
+  0 3064660326585    posixpath.py             8                     -> normpath
+  0 3064660326602    posixpath.py            16                     <- normpath
+  0 3064660326610    posixpath.py             8                   <- abspath
+  0 3064660326619    posixpath.py             8                   -> normcase
+  0 3064660326628    posixpath.py             8                   <- normcase
+  0 3064660326636    site.py                  8                 <- makepath
+  0 3064660326646    posixpath.py             9                 -> isdir
+  0 3064660326668    stat.py                 22                   -> S_ISDIR
+  0 3064660326676    stat.py                  8                     -> S_IFMT
+  0 3064660326684    stat.py                  7                     <- S_IFMT
+  0 3064660326692    stat.py                  8                   <- S_ISDIR
+  0 3064660326700    posixpath.py             8                 <- isdir
+  0 3064660326709    site.py                  9                 -> makepath
+  0 3064660326718    posixpath.py             8                   -> join
+  0 3064660326726    posixpath.py             8                   <- join
+  0 3064660326735    posixpath.py             8                   -> abspath
+  0 3064660326743    posixpath.py             8                     -> isabs
+  0 3064660326752    posixpath.py             8                     <- isabs
+  0 3064660326760    posixpath.py             8                     -> normpath
+  0 3064660326777    posixpath.py            16                     <- normpath
+  0 3064660326786    posixpath.py             9                   <- abspath
+  0 3064660326795    posixpath.py             9                   -> normcase
+  0 3064660326803    posixpath.py             8                   <- normcase
+  0 3064660326811    site.py                  8                 <- makepath
+  0 3064660326821    posixpath.py             9                 -> isdir
+  0 3064660326842    stat.py                 21                   -> S_ISDIR
+  0 3064660326850    stat.py                  8                     -> S_IFMT
+  0 3064660326858    stat.py                  7                     <- S_IFMT
+  0 3064660326866    stat.py                  8                   <- S_ISDIR
+  0 3064660326874    posixpath.py             7                 <- isdir
+  0 3064660326883    site.py                  9                 -> makepath
+  0 3064660326892    posixpath.py             8                   -> join
+  0 3064660326901    posixpath.py             8                   <- join
+  0 3064660326909    posixpath.py             8                   -> abspath
+  0 3064660326917    posixpath.py             8                     -> isabs
+  0 3064660326926    posixpath.py             8                     <- isabs
+  0 3064660326935    posixpath.py             8                     -> normpath
+  0 3064660326951    posixpath.py            16                     <- normpath
+  0 3064660326960    posixpath.py             8                   <- abspath
+  0 3064660326970    posixpath.py             9                   -> normcase
+  0 3064660326978    posixpath.py             8                   <- normcase
+  0 3064660326986    site.py                  8                 <- makepath
+  0 3064660326995    site.py                  8               <- _init_pathinfo
+  0 3064660327004    site.py                  8               -> makepath
+  0 3064660327013    posixpath.py             9                 -> join
+  0 3064660327021    posixpath.py             8                 <- join
+  0 3064660327030    posixpath.py             8                 -> abspath
+  0 3064660327038    posixpath.py             8                   -> isabs
+  0 3064660327047    posixpath.py             8                   <- isabs
+  0 3064660327056    posixpath.py             8                   -> normpath
+  0 3064660327072    posixpath.py            15                   <- normpath
+  0 3064660327081    posixpath.py             9                 <- abspath
+  0 3064660327090    posixpath.py             8                 -> normcase
+  0 3064660327098    posixpath.py             8                 <- normcase
+  0 3064660327106    site.py                  8               <- makepath
+  0 3064660327278    site.py                171               -> addpackage
+  0 3064660327289    posixpath.py            10                 -> join
+  0 3064660327300    posixpath.py            10                 <- join
+  0 3064660327372    site.py                 72                 -> makepath
+  0 3064660327382    posixpath.py            10                   -> join
+  0 3064660327393    posixpath.py            10                   <- join
+  0 3064660327402    posixpath.py             9                   -> abspath
+  0 3064660327410    posixpath.py             8                     -> isabs
+  0 3064660327419    posixpath.py             8                     <- isabs
+  0 3064660327427    posixpath.py             8                     -> normpath
+  0 3064660327445    posixpath.py            17                     <- normpath
+  0 3064660327454    posixpath.py             9                   <- abspath
+  0 3064660327463    posixpath.py             9                   -> normcase
+  0 3064660327472    posixpath.py             8                   <- normcase
+  0 3064660327480    site.py                  8                 <- makepath
+  0 3064660327489    posixpath.py             9                 -> exists
+  0 3064660327515    posixpath.py            26                 <- exists
+  0 3064660327567    site.py                 51               <- addpackage
+  0 3064660327588    site.py                 20               -> addpackage
+  0 3064660327597    posixpath.py             8                 -> join
+  0 3064660327607    posixpath.py            10                 <- join
+  0 3064660327654    site.py                 46                 -> makepath
+  0 3064660327663    posixpath.py             9                   -> join
+  0 3064660327710    posixpath.py            46                   <- join
+  0 3064660327720    posixpath.py             9                   -> abspath
+  0 3064660327728    posixpath.py             8                     -> isabs
+  0 3064660327737    posixpath.py             9                     <- isabs
+  0 3064660327746    posixpath.py             8                     -> normpath
+  0 3064660327764    posixpath.py            17                     <- normpath
+  0 3064660327773    posixpath.py             9                   <- abspath
+  0 3064660327782    posixpath.py             9                   -> normcase
+  0 3064660327791    posixpath.py             8                   <- normcase
+  0 3064660327799    site.py                  8                 <- makepath
+  0 3064660327808    posixpath.py             9                 -> exists
+  0 3064660327833    posixpath.py            24                 <- exists
+  0 3064660327864    site.py                 31               <- addpackage
+  0 3064660327878    site.py                 13             <- addsitedir
+  0 3064660327887    <string>                 9           <- ?
+  0 3064660327903    site.py                 15         <- addpackage
+  0 3064660327913    site.py                  9       <- addsitedir
+  0 3064660327923    posixpath.py            10       -> isdir
+  0 3064660327955    posixpath.py            32       <- isdir
+  0 3064660327965    site.py                  9     <- addsitepackages
+  0 3064660327976    site.py                 10     -> setquit
+  0 3064660327986    site.py                 10     <- setquit
+  0 3064660327995    site.py                  8     -> setcopyright
+  0 3064660328005    site.py                 10       -> __init__
+  0 3064660328015    site.py                  9       <- __init__
+  0 3064660328026    site.py                 11       -> __init__
+  0 3064660328035    site.py                  8       <- __init__
+  0 3064660328045    posixpath.py             9       -> dirname
+  0 3064660328053    posixpath.py             8         -> split
+  0 3064660328066    posixpath.py            13         <- split
+  0 3064660328075    posixpath.py             8       <- dirname
+  0 3064660328089    posixpath.py            13       -> join
+  0 3064660328099    posixpath.py            10       <- join
+  0 3064660328109    site.py                 10       -> __init__
+  0 3064660328118    site.py                  9       <- __init__
+  0 3064660328127    site.py                  8     <- setcopyright
+  0 3064660328136    site.py                  8     -> sethelper
+  0 3064660328145    site.py                  8     <- sethelper
+  0 3064660328153    site.py                  8     -> aliasmbcs
+  0 3064660328161    site.py                  8     <- aliasmbcs
+  0 3064660328170    site.py                  8     -> setencoding
+  0 3064660328178    site.py                  7     <- setencoding
+  0 3064660328186    site.py                  8     -> execsitecustomize
+  0 3064660328736    site.py                549     <- execsitecustomize
+  0 3064660328748    site.py                 12   <- main
+  0 3064660328758    site.py                  9 <- ?
+  0 3064660329029    warnings.py            270 -> ?
+  0 3064660329184    linecache.py           155   -> ?
+  0 3064660329201    linecache.py            16   <- ?
+  0 3064660329220    warnings.py             18   -> _OptionError
+  0 3064660329228    warnings.py              8   <- _OptionError
+  0 3064660329246    warnings.py             17   -> _processoptions
+  0 3064660329255    warnings.py              8   <- _processoptions
+  0 3064660329266    warnings.py             10   -> simplefilter
+  0 3064660329278    warnings.py             12   <- simplefilter
+  0 3064660329288    warnings.py              9   -> simplefilter
+  0 3064660329298    warnings.py             10   <- simplefilter
+  0 3064660329307    warnings.py              8 <- ?
+  0 3064660329533    __init__.py            226 -> ?
+  0 3064660330090    codecs.py              557   -> ?
+  0 3064660330148    codecs.py               57     -> Codec
+  0 3064660330158    codecs.py               10     <- Codec
+  0 3064660330171    codecs.py               13     -> StreamWriter
+  0 3064660330182    codecs.py               10     <- StreamWriter
+  0 3064660330194    codecs.py               11     -> StreamReader
+  0 3064660330206    codecs.py               12     <- StreamReader
+  0 3064660330217    codecs.py               11     -> StreamReaderWriter
+  0 3064660330229    codecs.py               11     <- StreamReaderWriter
+  0 3064660330239    codecs.py               10     -> StreamRecoder
+  0 3064660330251    codecs.py               11     <- StreamRecoder
+  0 3064660330267    codecs.py               16   <- ?
+  0 3064660331439    aliases.py            1171   -> ?
+  0 3064660331500    aliases.py              61   <- ?
+  0 3064660331526    __init__.py             25   -> CodecRegistryError
+  0 3064660331535    __init__.py              9   <- CodecRegistryError
+  0 3064660331557    __init__.py             21 <- ?
+  0 3064660331577    __init__.py             20 -> search_function
+  0 3064660331590    __init__.py             12   -> normalize_encoding
+  0 3064660331605    __init__.py             15   <- normalize_encoding
+  0 3064660331728    ascii.py               122   -> ?
+  0 3064660331742    ascii.py                13     -> Codec
+  0 3064660331752    ascii.py                 9     <- Codec
+  0 3064660331766    ascii.py                13     -> StreamWriter
+  0 3064660331774    ascii.py                 8     <- StreamWriter
+  0 3064660331787    ascii.py                13     -> StreamReader
+  0 3064660331796    ascii.py                 8     <- StreamReader
+  0 3064660331819    ascii.py                23     -> StreamConverter
+  0 3064660331829    ascii.py                 9     <- StreamConverter
+  0 3064660331842    ascii.py                13   <- ?
+  0 3064660331860    ascii.py                17   -> getregentry
+  0 3064660331869    ascii.py                 9   <- getregentry
+  0 3064660331897    __init__.py             27 <- search_function
+  0 3064660332263    func_abc.py            366 -> ?
+  0 3064660333735    func_abc.py           1471   -> func_a
+  0 3064661340597    func_abc.py        1006862     -> func_b
+  0 3064662350504    func_abc.py        1009906       -> func_c
+  0 3064663350678    func_abc.py        1000174       <- func_c
+  0 3064663350700    func_abc.py             22     <- func_b
+  0 3064663350709    func_abc.py              8   <- func_a
+  0 3064663350717    func_abc.py              8 <- ?
+^C
+
+The fifth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which - first a whole lot of
+pre-processing, then working through the func_abc.py program. 
+
+The TIME(us) column shows time since boot.
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the third last line of data output
+shows the time elapsing between func_c returning and func_b returning as 22
+microseconds.
+
+The FILE column shows file that was being executed.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/py_funccalls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/py_funccalls_example.txt
new file mode 100644
index 0000000..0ac8780
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/py_funccalls_example.txt
@@ -0,0 +1,89 @@
+The following are examples of py_funccalls.d.
+
+This is a simple script to count executed PHP functions. Here it traces
+an example program, Code/Python/func_abc.py
+
+# py_funccalls.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+ FILE                             FUNC                                CALLS
+ UserDict.py                      ?                                       1
+ UserDict.py                      DictMixin                               1
+ UserDict.py                      IterableUserDict                        1
+ UserDict.py                      UserDict                                1
+ UserDict.py                      __init__                                1
+ __init__.py                      ?                                       1
+ __init__.py                      CodecRegistryError                      1
+ __init__.py                      normalize_encoding                      1
+ __init__.py                      search_function                         1
+ aliases.py                       ?                                       1
+ ascii.py                         ?                                       1
+ ascii.py                         Codec                                   1
+ ascii.py                         StreamConverter                         1
+ ascii.py                         StreamReader                            1
+ ascii.py                         StreamWriter                            1
+ ascii.py                         getregentry                             1
+ codecs.py                        ?                                       1
+ codecs.py                        Codec                                   1
+ codecs.py                        StreamReader                            1
+ codecs.py                        StreamReaderWriter                      1
+ codecs.py                        StreamRecoder                           1
+ codecs.py                        StreamWriter                            1
+ copy_reg.py                      ?                                       1
+ func_abc.py                      ?                                       1
+ func_abc.py                      func_a                                  1
+ func_abc.py                      func_b                                  1
+ func_abc.py                      func_c                                  1
+ linecache.py                     ?                                       1
+ os.py                            ?                                       1
+ os.py                            _Environ                                1
+ os.py                            __init__                                1
+ os.py                            _get_exports_list                       1
+ posixpath.py                     ?                                       1
+ posixpath.py                     basename                                1
+ posixpath.py                     dirname                                 1
+ site.py                          ?                                       1
+ site.py                          _Helper                                 1
+ site.py                          _Printer                                1
+ site.py                          _init_pathinfo                          1
+ site.py                          abs__file__                             1
+ site.py                          addsitepackages                         1
+ site.py                          aliasmbcs                               1
+ site.py                          execsitecustomize                       1
+ site.py                          main                                    1
+ site.py                          removeduppaths                          1
+ site.py                          setcopyright                            1
+ site.py                          setencoding                             1
+ site.py                          sethelper                               1
+ site.py                          setquit                                 1
+ stat.py                          ?                                       1
+ types.py                         ?                                       1
+ types.py                         _C                                      1
+ warnings.py                      ?                                       1
+ warnings.py                      _OptionError                            1
+ warnings.py                      _processoptions                         1
+ posixpath.py                     exists                                  2
+ posixpath.py                     split                                   2
+ site.py                          addsitedir                              2
+ warnings.py                      simplefilter                            2
+ copy_reg.py                      constructor                             3
+ copy_reg.py                      pickle                                  3
+ site.py                          __init__                                3
+ site.py                          addpackage                              3
+ stat.py                          S_IFMT                                  6
+ stat.py                          S_ISDIR                                 6
+ posixpath.py                     isdir                                   8
+ os.py                            _exists                                10
+ <string>                         ?                                      11
+ posixpath.py                     normcase                               14
+ site.py                          makepath                               14
+ posixpath.py                     join                                   20
+ posixpath.py                     abspath                                22
+ posixpath.py                     isabs                                  22
+ posixpath.py                     normpath                               22
+
+It tells you how many times each function was called, and which file this
+function was associated with.  In this case you can see most of the function
+calls come from functions within the posixpath.py library.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/py_malloc_example.txt b/external/cddl/dtracetoolkit/dist/Examples/py_malloc_example.txt
new file mode 100644
index 0000000..be8fc25
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/py_malloc_example.txt
@@ -0,0 +1,508 @@
+The following are examples of py_malloc.d
+
+This is an experimental script to identify who is calling malloc() for memory 
+allocation, and to print distribution plots of the requested bytes.  Here you
+can see it running on Code/Python/func_abc.py
+
+# py_malloc.d -c ./func_abc.py
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+
+Python malloc byte distributions by engine caller,
+
+   libpython2.4.so.1.0`_PyUnicode_New, total bytes = 2 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   libpython2.4.so.1.0`find_key, total bytes = 16 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              32 |                                         0        
+
+   libpython2.4.so.1.0`PyInterpreterState_New, total bytes = 36 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   libpython2.4.so.1.0`_PyImport_Init, total bytes = 60 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   libpython2.4.so.1.0`PyThreadState_New, total bytes = 84 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   libpython2.4.so.1.0`pmerge, total bytes = 132 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@                                       1        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   16       
+              16 |                                         0        
+
+   libpython2.4.so.1.0`PyThread_allocate_lock, total bytes = 144 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+              64 |                                         0        
+
+   libpython2.4.so.1.0`convertsimple, total bytes = 210 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+              64 |                                         0        
+
+   libc.so.1`strdup, total bytes = 451 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@                                      1        
+               4 |@@@                                      1        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     8        
+              32 |@@@@@@@@@@@@@@@                          6        
+              64 |                                         0        
+
+   libpython2.4.so.1.0`PyList_New, total bytes = 528 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@                       22       
+               8 |@@@@@@@@@@@@@@@@@                        21       
+              16 |@@@@@                                    6        
+              32 |                                         0        
+              64 |                                         0        
+             128 |@                                        1        
+             256 |                                         0        
+
+   libpython2.4.so.1.0`PyTokenizer_FromFile, total bytes = 1024 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   libpython2.4.so.1.0`_PyExc_Init, total bytes = 1058 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   40       
+              32 |@@                                       2        
+              64 |                                         0        
+
+   libpython2.4.so.1.0`tok_new, total bytes = 1832 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+            1024 |                                         0        
+
+   libpython2.4.so.1.0`fill_free_list, total bytes = 1976 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+            1024 |                                         0        
+
+   libpython2.4.so.1.0`PyParser_New, total bytes = 12024 
+           value  ------------- Distribution ------------- count    
+            2048 |                                         0        
+            4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+            8192 |                                         0        
+
+   libpython2.4.so.1.0`PyObject_Malloc, total bytes = 35152 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@                      20       
+             512 |@@@@@@@                                  7        
+            1024 |@@@@@@@@@@                               11       
+            2048 |@@@@                                     4        
+            4096 |                                         0        
+
+   libpython2.4.so.1.0`PyMem_Malloc, total bytes = 50683 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@                                      2        
+              16 |@@@@@@@                                  4        
+              32 |@@                                       1        
+              64 |@@@@@@@@@@@@@                            8        
+             128 |@@@@@                                    3        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |@@@@@@@@@@                               6        
+           16384 |                                         0        
+
+   libc.so.1`_findbuf, total bytes = 51800 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@                          4        
+            1024 |@@@@                                     1        
+            2048 |                                         0        
+            4096 |@@@@@@@                                  2        
+            8192 |@@@@@@@@@@@@@@@                          4        
+           16384 |                                         0        
+
+   libpython2.4.so.1.0`dictresize, total bytes = 178752 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@                                        1        
+             256 |@@@@@@@@@@@@@@@@@@@@@                    29       
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@                           19       
+            2048 |@                                        1        
+            4096 |@                                        2        
+            8192 |                                         0        
+           16384 |@                                        1        
+           32768 |                                         0        
+           65536 |@                                        1        
+          131072 |                                         0        
+
+   libpython2.4.so.1.0`new_arena, total bytes = 262208 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@                     1        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |                                         0        
+           32768 |                                         0        
+           65536 |                                         0        
+          131072 |                                         0        
+          262144 |@@@@@@@@@@@@@@@@@@@@                     1        
+          524288 |                                         0        
+
+
+Python malloc byte distributions by Python file and function,
+
+   site.py, addsitepackages, bytes total = 4 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   site.py, abs__file__, bytes total = 60 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   posixpath.py, exists, bytes total = 83 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              64 |                                         0        
+
+   stat.py, S_ISDIR, bytes total = 364 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   site.py, _init_pathinfo, bytes total = 380 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   UserDict.py, DictMixin, bytes total = 384 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   codecs.py, StreamReader, bytes total = 384 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   codecs.py, StreamReaderWriter, bytes total = 384 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   codecs.py, StreamRecoder, bytes total = 384 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   codecs.py, StreamWriter, bytes total = 384 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   os.py, _Environ, bytes total = 384 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   site.py, _Printer, bytes total = 384 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   site.py, addsitedir, bytes total = 388 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   linecache.py, ?, bytes total = 396 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@                     1        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@                     1        
+             512 |                                         0        
+
+   posixpath.py, isdir, bytes total = 608 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@                                  2        
+               4 |                                         0        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@                  7        
+              32 |@@@@@@@                                  2        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@                                      1        
+             512 |                                         0        
+
+   os.py, _get_exports_list, bytes total = 612 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   posixpath.py, abspath, bytes total = 728 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+             512 |                                         0        
+
+   site.py, execsitecustomize, bytes total = 790 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     9        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@@                                     1        
+             512 |                                         0        
+
+   UserDict.py, UserDict, bytes total = 1920 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@                     1        
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@                     1        
+            2048 |                                         0        
+
+   stat.py, ?, bytes total = 1920 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@                     1        
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@                     1        
+            2048 |                                         0        
+
+   types.py, ?, bytes total = 2680 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@                                   1        
+               8 |@@@@@@@@@@@                              2        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@                        3        
+             512 |                                         0        
+            1024 |@@@@@@                                   1        
+            2048 |                                         0        
+
+   posixpath.py, ?, bytes total = 3306 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@                         2        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@                         2        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@                                 1        
+            4096 |                                         0        
+
+   copy_reg.py, ?, bytes total = 3547 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@                         2        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@@@@@@                                 1        
+             512 |@@@@@@@@                                 1        
+            1024 |                                         0        
+            2048 |@@@@@@@@                                 1        
+            4096 |                                         0        
+
+   warnings.py, ?, bytes total = 3924 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@                                 1        
+              32 |@@@@@@@@                                 1        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@                         2        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@                                 1        
+            4096 |                                         0        
+
+   func_abc.py, func_a, bytes total = 5100 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@                     1        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |@@@@@@@@@@@@@@@@@@@@                     1        
+            8192 |                                         0        
+
+   codecs.py, ?, bytes total = 5612 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@                                   1        
+             128 |@@@@@@                                   1        
+             256 |@@@@@@@@@@@                              2        
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@                        3        
+            2048 |                                         0        
+
+   aliases.py, ?, bytes total = 8064 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@                            1        
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@                            1        
+            2048 |                                         0        
+            4096 |@@@@@@@@@@@@@                            1        
+            8192 |                                         0        
+
+   func_abc.py, ?, bytes total = 16105 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@                                       1        
+               8 |@@@@@                                    2        
+              16 |@@@@@@@@@                                4        
+              32 |@@@@@                                    2        
+              64 |                                         0        
+             128 |@@                                       1        
+             256 |@@@@@@@                                  3        
+             512 |@@                                       1        
+            1024 |@@@@@                                    2        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |@@                                       1        
+           16384 |                                         0        
+
+   os.py, ?, bytes total = 58957 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@                                       3        
+               8 |@@@@@                                    6        
+              16 |@                                        1        
+              32 |@@                                       2        
+              64 |                                         0        
+             128 |@                                        1        
+             256 |@@@@@@@@@@@@@@@@@@                       23       
+             512 |@@                                       3        
+            1024 |@@@@@                                    7        
+            2048 |                                         0        
+            4096 |@@@                                      4        
+            8192 |@                                        1        
+           16384 |                                         0        
+
+   site.py, ?, bytes total = 62589 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@                                      2        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@            20       
+             512 |@                                        1        
+            1024 |@@@                                      2        
+            2048 |@                                        1        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |@@@                                      2        
+           32768 |                                         0        
+
+   __init__.py, ?, bytes total = 62593 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@                                       1        
+               2 |                                         0        
+               4 |                                         0        
+               8 |                                         0        
+              16 |@@@                                      2        
+              32 |@@                                       1        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@@@@@@@@@@@                              7        
+             512 |@@@@@@@@@@@@@@@@                         10       
+            1024 |@@@                                      2        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |@@@                                      2        
+           32768 |                                         0        
+
+   posixpath.py, join, bytes total = 262144 
+           value  ------------- Distribution ------------- count    
+          131072 |                                         0        
+          262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+          524288 |                                         0        
+
+   os.py, _exists, bytes total = 362768 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@                                        10       
+               8 |@                                        10       
+              16 |@@                                       20       
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |@                                        7        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       447      
+            1024 |@@                                       20       
+            2048 |                                         0        
+            4096 |@                                        10       
+            8192 |                                         0        
+
+
+The results are divided into two sections.  If a malloc() occurred while in a
+Python function, then that function is identified as responsible; and the
+results will appear in the second section - Python malloc byte distributions
+by Python file and function.
+
+Otherwise the caller of malloc() is identified as responsible - which will be
+a function from the Python engine, and these are noted in the first section -
+Python malloc byte distributions by engine caller.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/py_mallocstk_example.txt b/external/cddl/dtracetoolkit/dist/Examples/py_mallocstk_example.txt
new file mode 100644
index 0000000..a466737
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/py_mallocstk_example.txt
@@ -0,0 +1,314 @@
+Following are examples of running py_mallocstk.d.  This traces malloc() from
+Python, printing byte distributions by user stack trace.
+
+Here we see the script runnin on the program Code/Python/func_abc.py
+
+# py_mallocstk.d -c ./func_abc.py
+
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+
+Python malloc byte distributions by stack trace,
+
+
+
+              libc.so.1`malloc
+              libpython2.4.so.1.0`r_object+0x52f
+              libpython2.4.so.1.0`r_object+0x491
+              libpython2.4.so.1.0`r_object+0xd3
+              libpython2.4.so.1.0`r_object+0x491
+              libpython2.4.so.1.0`r_object+0xd3
+              libpython2.4.so.1.0`r_object+0x491
+              libpython2.4.so.1.0`r_object+0xd3
+              libpython2.4.so.1.0`PyMarshal_ReadObjectFromString+0x36
+              libpython2.4.so.1.0`PyMarshal_ReadLastObjectFromFile+0x6a
+              libpython2.4.so.1.0`read_compiled_module+0xf
+              libpython2.4.so.1.0`load_source_module+0x63
+              libpython2.4.so.1.0`load_module+0xac
+              libpython2.4.so.1.0`import_submodule+0xfb
+              libpython2.4.so.1.0`load_next+0xee
+              libpython2.4.so.1.0`import_module_ex+0x48
+              libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+              libpython2.4.so.1.0`builtin___import__+0x4e
+              libpython2.4.so.1.0`PyCFunction_Call+0x15f
+              libpython2.4.so.1.0`PyObject_Call+0x1d
+              libpython2.4.so.1.0`PyEval_CallObjectWithKeywords+0xb8
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xd3c
+                [ /usr/lib/python2.4/encodings/__init__.py:28 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`PyImport_ExecCodeModuleEx+0xc0
+              libpython2.4.so.1.0`load_source_module+0xe6
+              libpython2.4.so.1.0`load_module+0xac
+              libpython2.4.so.1.0`load_package+0xef
+              libpython2.4.so.1.0`load_module+0x6a
+              libpython2.4.so.1.0`import_submodule+0xfb
+              libpython2.4.so.1.0`load_next+0xa2
+              libpython2.4.so.1.0`import_module_ex+0x48
+              libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+              libpython2.4.so.1.0`_PyCodecRegistry_Init+0xce
+              libpython2.4.so.1.0`_PyCodec_Lookup+0x2a
+              libpython2.4.so.1.0`PyCodec_Encoder+0xf
+              libpython2.4.so.1.0`Py_InitializeEx+0x257
+              libpython2.4.so.1.0`Py_Initialize+0xd
+              libpython2.4.so.1.0`Py_Main+0x4db
+              python`main+0x11
+              python`_start+0x7a
+
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+
+              libc.so.1`malloc
+              libpython2.4.so.1.0`_PyUnicode_New+0xb2
+              libpython2.4.so.1.0`_PyUnicodeUCS2_Init+0x19
+              libpython2.4.so.1.0`Py_InitializeEx+0x11c
+              libpython2.4.so.1.0`Py_Initialize+0xd
+              libpython2.4.so.1.0`Py_Main+0x4db
+              python`main+0x11
+              python`_start+0x7a
+
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+
+              libc.so.1`malloc
+              libc.so.1`_real_gettext_u+0x81
+              libc.so.1`dgettext+0x5e
+              libc.so.1`strerror+0x40
+              libpython2.4.so.1.0`PyErr_SetFromErrnoWithFilenameObject+0x2d
+              libpython2.4.so.1.0`PyErr_SetFromErrnoWithFilename+0x27
+              libpython2.4.so.1.0`posix_error_with_allocated_filename+0x17
+              libpython2.4.so.1.0`posix_do_stat+0x21f
+              libpython2.4.so.1.0`posix_stat+0x1f
+              libpython2.4.so.1.0`PyCFunction_Call+0x15f
+              libpython2.4.so.1.0`call_function+0x406
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/posixpath.py:195 (isdir) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:202 (addsitepackages) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:382 (main) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:397 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`PyImport_ExecCodeModuleEx+0xc0
+              libpython2.4.so.1.0`load_source_module+0xe6
+              libpython2.4.so.1.0`load_module+0xac
+              libpython2.4.so.1.0`import_submodule+0xfb
+              libpython2.4.so.1.0`load_next+0xa2
+              libpython2.4.so.1.0`import_module_ex+0x48
+              libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+              libpython2.4.so.1.0`builtin___import__+0x4e
+              libpython2.4.so.1.0`PyCFunction_Call+0x15f
+              libpython2.4.so.1.0`PyObject_Call+0x1d
+              libpython2.4.so.1.0`PyObject_CallFunction+0x90
+              libpython2.4.so.1.0`PyImport_Import+0x163
+              libpython2.4.so.1.0`PyImport_ImportModule+0x1f
+              libpython2.4.so.1.0`initsite+0x10
+              libpython2.4.so.1.0`Py_InitializeEx+0x1ea
+              libpython2.4.so.1.0`Py_Initialize+0xd
+              libpython2.4.so.1.0`Py_Main+0x4db
+              python`main+0x11
+              python`_start+0x7a
+
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+[... around 17000 lines truncated ...]
+
+
+              libc.so.1`malloc
+              libpython2.4.so.1.0`PyObject_Malloc+0x126
+              libpython2.4.so.1.0`fixstate+0x26
+              libpython2.4.so.1.0`fixdfa+0x2a
+              libpython2.4.so.1.0`PyGrammar_AddAccelerators+0x1b
+              libpython2.4.so.1.0`PyParser_New+0x18
+              libpython2.4.so.1.0`parsetok+0x17
+              libpython2.4.so.1.0`PyParser_ParseStringFlagsFilename+0x72
+              libpython2.4.so.1.0`PyParser_ParseStringFlags+0x1c
+              libpython2.4.so.1.0`PyParser_SimpleParseStringFlags+0x23
+              libpython2.4.so.1.0`PyRun_StringFlags+0x2c
+              libpython2.4.so.1.0`builtin_eval+0x273
+              libpython2.4.so.1.0`PyCFunction_Call+0x15f
+              libpython2.4.so.1.0`call_function+0x406
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/os.py:503 (_exists) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/os.py:509 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`PyImport_ExecCodeModuleEx+0xc0
+              libpython2.4.so.1.0`load_source_module+0xe6
+              libpython2.4.so.1.0`load_module+0xac
+              libpython2.4.so.1.0`import_submodule+0xfb
+              libpython2.4.so.1.0`load_next+0xa2
+              libpython2.4.so.1.0`import_module_ex+0x48
+              libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+              libpython2.4.so.1.0`builtin___import__+0x4e
+              libpython2.4.so.1.0`PyCFunction_Call+0x15f
+              libpython2.4.so.1.0`PyObject_Call+0x1d
+              libpython2.4.so.1.0`PyEval_CallObjectWithKeywords+0xb8
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xd3c
+                [ /usr/lib/python2.4/site.py:58 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`PyImport_ExecCodeModuleEx+0xc0
+              libpython2.4.so.1.0`load_source_module+0xe6
+              libpython2.4.so.1.0`load_module+0xac
+              libpython2.4.so.1.0`import_submodule+0xfb
+              libpython2.4.so.1.0`load_next+0xa2
+              libpython2.4.so.1.0`import_module_ex+0x48
+              libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+              libpython2.4.so.1.0`builtin___import__+0x4e
+              libpython2.4.so.1.0`PyCFunction_Call+0x15f
+              libpython2.4.so.1.0`PyObject_Call+0x1d
+              libpython2.4.so.1.0`PyObject_CallFunction+0x90
+              libpython2.4.so.1.0`PyImport_Import+0x163
+              libpython2.4.so.1.0`PyImport_ImportModule+0x1f
+              libpython2.4.so.1.0`initsite+0x10
+              libpython2.4.so.1.0`Py_InitializeEx+0x1ea
+              libpython2.4.so.1.0`Py_Initialize+0xd
+              libpython2.4.so.1.0`Py_Main+0x4db
+              python`main+0x11
+              python`_start+0x7a
+
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 331      
+            1024 |                                         0        
+
+
+              libc.so.1`malloc
+              libpython2.4.so.1.0`new_arena+0x13
+              libpython2.4.so.1.0`PyObject_Malloc+0x91
+              libpython2.4.so.1.0`string_concat+0x109
+              libpython2.4.so.1.0`PyString_Concat+0x3b
+              libpython2.4.so.1.0`string_concatenate+0x150
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x27cc
+                [ /usr/lib/python2.4/posixpath.py:62 (join) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`function_call+0x15e
+              libpython2.4.so.1.0`PyObject_Call+0x1d
+              libpython2.4.so.1.0`ext_do_call+0xfb
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xb4f
+                [ /usr/lib/python2.4/site.py:66 (makepath) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`fast_function+0x112
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:138 (addpackage) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`fast_function+0x112
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:166 (addsitedir) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`fast_function+0x112
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ <string>:1 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+              libpython2.4.so.1.0`run_err_node+0x1f
+              libpython2.4.so.1.0`PyRun_String+0x27
+              libpython2.4.so.1.0`exec_statement+0x2b0
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x15d6
+                [ /usr/lib/python2.4/site.py:134 (addpackage) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`fast_function+0x112
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:166 (addsitedir) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`fast_function+0x112
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:203 (addsitepackages) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:382 (main) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ /usr/lib/python2.4/site.py:397 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`PyImport_ExecCodeModuleEx+0xc0
+              libpython2.4.so.1.0`load_source_module+0xe6
+              libpython2.4.so.1.0`load_module+0xac
+              libpython2.4.so.1.0`import_submodule+0xfb
+              libpython2.4.so.1.0`load_next+0xa2
+              libpython2.4.so.1.0`import_module_ex+0x48
+              libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+              libpython2.4.so.1.0`builtin___import__+0x4e
+              libpython2.4.so.1.0`PyCFunction_Call+0x15f
+              libpython2.4.so.1.0`PyObject_Call+0x1d
+              libpython2.4.so.1.0`PyObject_CallFunction+0x90
+              libpython2.4.so.1.0`PyImport_Import+0x163
+              libpython2.4.so.1.0`PyImport_ImportModule+0x1f
+              libpython2.4.so.1.0`initsite+0x10
+              libpython2.4.so.1.0`Py_InitializeEx+0x1ea
+              libpython2.4.so.1.0`Py_Initialize+0xd
+              libpython2.4.so.1.0`Py_Main+0x4db
+
+           value  ------------- Distribution ------------- count    
+          131072 |                                         0        
+          262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+          524288 |                                         0        
+
+
+              libc.so.1`malloc
+              libpython2.4.so.1.0`new_arena+0x13
+              libpython2.4.so.1.0`PyObject_Malloc+0x91
+              libpython2.4.so.1.0`_PyObject_GC_Malloc+0x13
+              libpython2.4.so.1.0`_PyObject_GC_NewVar+0x24
+              libpython2.4.so.1.0`PyTuple_New+0x78
+              libpython2.4.so.1.0`PyType_Ready+0x98
+              libpython2.4.so.1.0`PyType_Ready+0x60
+              libpython2.4.so.1.0`_Py_ReadyTypes+0x10
+              libpython2.4.so.1.0`Py_InitializeEx+0xed
+              libpython2.4.so.1.0`Py_Initialize+0xd
+              libpython2.4.so.1.0`Py_Main+0x4db
+              python`main+0x11
+              python`_start+0x7a
+
+           value  ------------- Distribution ------------- count    
+          131072 |                                         0        
+          262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+          524288 |                                         0        
+
+
+This output looks a little  unusual at first glance, and can be confusing for
+people unfamiliar with stack tracing and Python engine internals. 
+
+Start by looking at the distribution plots below each stack trace - each plot
+shows how many bytes were requested as a histogram by byte size.  This should
+indicated to you if python is malloc()ing much memory or not, and whether it
+is doing so in a few large malloc()s or many small ones.
+
+With this information in mind you can inspect the stack traces - these explain
+why Python called malloc() in that instance, along with translations of Python
+functions buried in the stack trace.  The stack traces can be hard to read at
+first (or even at second or at third) - since you are examining Python engine
+internals. Try looking for lines in square brackets - those are Python language 
+frames, and will show where (or if) the malloc() was caused by Python code.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/py_profile_example.txt b/external/cddl/dtracetoolkit/dist/Examples/py_profile_example.txt
new file mode 100644
index 0000000..04c0688
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/py_profile_example.txt
@@ -0,0 +1,399 @@
+The following are examples of py_profile.d.
+
+This samples stack traces for the process specified. This stack trace will 
+cross the Python engine and system libraries, and insert translations for 
+Python stack frames where appropriate.   Here you can see it running on 
+Code/Python/func_slow.py
+
+# py_profile.d -c ./func_slow.py
+Sampling 10-level stacks at 1001 Hertz... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+Top 25 most frequently sampled stacks,
+
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x266
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               11
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x278
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               11
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x278a
+                [ ./func_slow.py:10 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+               11
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x205
+                [ ./func_slow.py:18 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+              libpython2.4.so.1.0`run_err_node+0x1f
+              libpython2.4.so.1.0`PyRun_FileExFlags+0x5e
+              libpython2.4.so.1.0`PyRun_SimpleFileExFlags+0x12f
+               12
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x1fe
+                [ ./func_slow.py:10 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+               13
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x35d
+                [ ./func_slow.py:10 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+               13
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x1f5
+                [ ./func_slow.py:10 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+               14
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x149
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               14
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x5aa
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               14
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x58f
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               15
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x58f
+                [ ./func_slow.py:10 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+               15
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x254
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               17
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x286
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               17
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x2fbf
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               17
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x35d
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               18
+
+              libc.so.1`ioctl+0x7
+              libpython2.4.so.1.0`_init+0x25
+              ld.so.1`call_init+0xff
+              ld.so.1`setup+0xf93
+              ld.so.1`_setup+0x310
+              ld.so.1`_rt_boot+0x56
+              0x8047e5c
+               19
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x5a4
+                [ ./func_slow.py:18 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+              libpython2.4.so.1.0`run_err_node+0x1f
+              libpython2.4.so.1.0`PyRun_FileExFlags+0x5e
+              libpython2.4.so.1.0`PyRun_SimpleFileExFlags+0x12f
+               20
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x5ba
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               20
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x583
+                [ ./func_slow.py:10 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+               22
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x5a4
+                [ ./func_slow.py:10 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+               22
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x278a
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               24
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x205
+                [ ./func_slow.py:10 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+              libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+              libpython2.4.so.1.0`PyEval_EvalCode+0x22
+              libpython2.4.so.1.0`run_node+0x35
+               25
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x583
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               35
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x5a4
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               47
+
+              libpython2.4.so.1.0`PyEval_EvalFrame+0x205
+                [ ./func_slow.py:3 (func_c) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:16 (func_b) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:24 (func_a) ]
+              libpython2.4.so.1.0`fast_function+0xa8
+              libpython2.4.so.1.0`call_function+0xda
+              libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+                [ ./func_slow.py:26 (?) ]
+               50
+
+ The lines in square brackets are the native Python frames, the rest
+ are the Python engine.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/py_syscalls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/py_syscalls_example.txt
new file mode 100644
index 0000000..3aac3d28
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/py_syscalls_example.txt
@@ -0,0 +1,129 @@
+The following are examples of py_syscalls.d.
+
+This is a simple script to count executed Python functions and system calls.
+Here it traces an example program, Code/Pythong/func_abc.py.
+
+# py_syscalls.d -c ./func_abc.py
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+
+Calls for PID 145538,
+
+ FILE                             TYPE       NAME                      COUNT
+ UserDict.py                      func       ?                             1
+ UserDict.py                      func       DictMixin                     1
+ UserDict.py                      func       IterableUserDict              1
+ UserDict.py                      func       UserDict                      1
+ UserDict.py                      func       __init__                      1
+ __init__.py                      func       ?                             1
+ __init__.py                      func       CodecRegistryError            1
+ __init__.py                      func       normalize_encoding            1
+ __init__.py                      func       search_function               1
+ aliases.py                       func       ?                             1
+ ascii.py                         func       ?                             1
+ ascii.py                         func       Codec                         1
+ ascii.py                         func       StreamConverter               1
+ ascii.py                         func       StreamReader                  1
+ ascii.py                         func       StreamWriter                  1
+ ascii.py                         func       getregentry                   1
+ codecs.py                        func       ?                             1
+ codecs.py                        func       Codec                         1
+ codecs.py                        func       StreamReader                  1
+ codecs.py                        func       StreamReaderWriter            1
+ codecs.py                        func       StreamRecoder                 1
+ codecs.py                        func       StreamWriter                  1
+ copy_reg.py                      func       ?                             1
+ func_abc.py                      func       ?                             1
+ func_abc.py                      func       func_a                        1
+ func_abc.py                      func       func_b                        1
+ func_abc.py                      func       func_c                        1
+ func_abc.py                      syscall    getrlimit                     1
+ func_abc.py                      syscall    gtime                         1
+ func_abc.py                      syscall    memcntl                       1
+ func_abc.py                      syscall    rexit                         1
+ func_abc.py                      syscall    sigpending                    1
+ func_abc.py                      syscall    sysi86                        1
+ func_abc.py                      syscall    write                         1
+ func_abc.py                      syscall    xstat                         1
+ linecache.py                     func       ?                             1
+ os.py                            func       ?                             1
+ os.py                            func       _Environ                      1
+ os.py                            func       __init__                      1
+ os.py                            func       _get_exports_list             1
+ posixpath.py                     func       ?                             1
+ posixpath.py                     func       basename                      1
+ posixpath.py                     func       dirname                       1
+ site.py                          func       ?                             1
+ site.py                          func       _Helper                       1
+ site.py                          func       _Printer                      1
+ site.py                          func       _init_pathinfo                1
+ site.py                          func       abs__file__                   1
+ site.py                          func       addsitepackages               1
+ site.py                          func       aliasmbcs                     1
+ site.py                          func       execsitecustomize             1
+ site.py                          func       main                          1
+ site.py                          func       removeduppaths                1
+ site.py                          func       setcopyright                  1
+ site.py                          func       setencoding                   1
+ site.py                          func       sethelper                     1
+ site.py                          func       setquit                       1
+ stat.py                          func       ?                             1
+ types.py                         func       ?                             1
+ types.py                         func       _C                            1
+ warnings.py                      func       ?                             1
+ warnings.py                      func       _OptionError                  1
+ warnings.py                      func       _processoptions               1
+ func_abc.py                      syscall    fcntl                         2
+ func_abc.py                      syscall    fsat                          2
+ func_abc.py                      syscall    getcwd                        2
+ func_abc.py                      syscall    getpid                        2
+ func_abc.py                      syscall    mprotect                      2
+ func_abc.py                      syscall    readlink                      2
+ func_abc.py                      syscall    resolvepath                   2
+ func_abc.py                      syscall    setcontext                    2
+ posixpath.py                     func       exists                        2
+ posixpath.py                     func       split                         2
+ site.py                          func       addsitedir                    2
+ warnings.py                      func       simplefilter                  2
+ copy_reg.py                      func       constructor                   3
+ copy_reg.py                      func       pickle                        3
+ func_abc.py                      syscall    munmap                        3
+ func_abc.py                      syscall    pollsys                       3
+ site.py                          func       __init__                      3
+ site.py                          func       addpackage                    3
+ func_abc.py                      syscall    getdents64                    4
+ func_abc.py                      syscall    open                          4
+ func_abc.py                      syscall    sysconfig                     4
+ func_abc.py                      syscall    mmap                          5
+ func_abc.py                      syscall    lwp_exit                      6
+ stat.py                          func       S_IFMT                        6
+ stat.py                          func       S_ISDIR                       6
+ posixpath.py                     func       isdir                         8
+ os.py                            func       _exists                      10
+ <string>                         func       ?                            11
+ posixpath.py                     func       normcase                     14
+ site.py                          func       makepath                     14
+ posixpath.py                     func       join                         20
+ posixpath.py                     func       abspath                      22
+ posixpath.py                     func       isabs                        22
+ posixpath.py                     func       normpath                     22
+ func_abc.py                      syscall    ioctl                        28
+ func_abc.py                      syscall    llseek                       34
+ func_abc.py                      syscall    read                         36
+ func_abc.py                      syscall    close                        41
+ func_abc.py                      syscall    sigaction                    52
+ func_abc.py                      syscall    brk                          58
+ func_abc.py                      syscall    fstat64                      74
+ func_abc.py                      syscall    stat64                       77
+ func_abc.py                      syscall    open64                      173
+
+While tracing there were numerous system calls made, including 173 open64()'s, 
+and 77 stat64()'s.  There were also many functions called, including 22 each
+of abspath, isabs, and normpath by the posixpath.py library.
+
+This script can provide an insight to how an application is interacting
+with the system, by providing both application function calls and
+system calls in the same output.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/py_syscolors_example.txt b/external/cddl/dtracetoolkit/dist/Examples/py_syscolors_example.txt
new file mode 100644
index 0000000..0a6367f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/py_syscolors_example.txt
@@ -0,0 +1,584 @@
+The following are examples of py_syscolors.d.
+
+This is a simple script to trace the flow of Python functons and system
+calls made, and renders the output in color ("colour") using terminal
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Python/func_abc.py.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# py_syscolors.d -c ./func_abc.py
+C    PID  DELTA(us)              FILE:LINE TYPE     -- NAME
+[2;32m0 145544          2                 ":-    syscall  -> munmap[0m
+[2;32m0 145544         34                 ":-    syscall  <- munmap[0m
+[2;32m0 145544         56                 ":-    syscall  -> mmap[0m
+[2;32m0 145544         19                 ":-    syscall  <- mmap[0m
+[2;32m0 145544         42                 ":-    syscall  -> setcontext[0m
+[2;32m0 145544         10                 ":-    syscall  <- setcontext[0m
+[2;32m0 145544          9                 ":-    syscall  -> getrlimit[0m
+[2;32m0 145544         10                 ":-    syscall  <- getrlimit[0m
+[2;32m0 145544          9                 ":-    syscall  -> getpid[0m
+[2;32m0 145544          8                 ":-    syscall  <- getpid[0m
+[2;32m0 145544         68                 ":-    syscall  -> setcontext[0m
+[2;32m0 145544          8                 ":-    syscall  <- setcontext[0m
+[2;32m0 145544        121                 ":-    syscall  -> sigpending[0m
+[2;32m0 145544          9                 ":-    syscall  <- sigpending[0m
+[2;32m0 145544        172                 ":-    syscall  -> open64[0m
+[2;32m0 145544        114                 ":-    syscall  <- open64[0m
+[2;32m0 145544         14                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544      28209                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        285                 ":-    syscall  -> close[0m
+[2;32m0 145544         31                 ":-    syscall  <- close[0m
+[2;32m0 145544         41                 ":-    syscall  -> open64[0m
+[2;32m0 145544         88                 ":-    syscall  <- open64[0m
+[2;32m0 145544          9                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        293                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544         11                 ":-    syscall  -> close[0m
+[2;32m0 145544         13                 ":-    syscall  <- close[0m
+[2;32m0 145544       1182                 ":-    syscall  -> sysi86[0m
+[2;32m0 145544         12                 ":-    syscall  <- sysi86[0m
+[2;32m0 145544        143                 ":-    syscall  -> sysconfig[0m
+[2;32m0 145544         53                 ":-    syscall  <- sysconfig[0m
+[2;32m0 145544         95                 ":-    syscall  -> open64[0m
+[2;32m0 145544         22                 ":-    syscall  <- open64[0m
+[2;32m0 145544         11                 ":-    syscall  -> fstat64[0m
+[2;32m0 145544         10                 ":-    syscall  <- fstat64[0m
+[2;32m0 145544         31                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         42                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544         24                 ":-    syscall  -> brk[0m
+[2;32m0 145544         10                 ":-    syscall  <- brk[0m
+[2;32m0 145544          8                 ":-    syscall  -> brk[0m
+[2;32m0 145544         17                 ":-    syscall  <- brk[0m
+[2;32m0 145544         30                 ":-    syscall  -> sysconfig[0m
+[2;32m0 145544          8                 ":-    syscall  <- sysconfig[0m
+[2;32m0 145544         32                 ":-    syscall  -> brk[0m
+[2;32m0 145544          7                 ":-    syscall  <- brk[0m
+[2;32m0 145544          8                 ":-    syscall  -> brk[0m
+
+[... 1400 lines truncated ...]
+
+[2;32m0 145544          8                 ":-    syscall    -> fstat64[0m
+[2;32m0 145544          7                 ":-    syscall    <- fstat64[0m
+[2;32m0 145544         11                 ":-    syscall    -> read[0m
+[2;32m0 145544          8                 ":-    syscall    <- read[0m
+[2;32m0 145544         29                 ":-    syscall    -> brk[0m
+[2;32m0 145544          8                 ":-    syscall    <- brk[0m
+[2;32m0 145544          8                 ":-    syscall    -> brk[0m
+[2;32m0 145544         10                 ":-    syscall    <- brk[0m
+[2;32m0 145544        393                 ":-    syscall    -> llseek[0m
+[2;32m0 145544          8                 ":-    syscall    <- llseek[0m
+[2;32m0 145544          9                 ":-    syscall    -> close[0m
+[2;32m0 145544          9                 ":-    syscall    <- close[0m
+[2;35m0 145544         14        aliases.py:17   func       -> ?[0m
+[2;35m0 145544         57        aliases.py:18   func       <- ?[0m
+[2;32m0 145544         20                 ":-    syscall    -> llseek[0m
+[2;32m0 145544          8                 ":-    syscall    <- llseek[0m
+[2;32m0 145544          8                 ":-    syscall    -> close[0m
+[2;32m0 145544          8                 ":-    syscall    <- close[0m
+[2;35m0 145544         15       __init__.py:43   func       -> CodecRegistryError[0m
+[2;35m0 145544         12       __init__.py:45   func       <- CodecRegistryError[0m
+[2;35m0 145544         26       __init__.py:145  func     <- ?[0m
+[2;32m0 145544         18                 ":-    syscall  -> llseek[0m
+[2;32m0 145544          8                 ":-    syscall  <- llseek[0m
+[2;32m0 145544          8                 ":-    syscall  -> close[0m
+[2;32m0 145544          9                 ":-    syscall  <- close[0m
+[2;35m0 145544         13       __init__.py:69   func     -> search_function[0m
+[2;35m0 145544         14       __init__.py:47   func       -> normalize_encoding[0m
+[2;35m0 145544         18       __init__.py:67   func       <- normalize_encoding[0m
+[2;32m0 145544         29                 ":-    syscall    -> stat64[0m
+[2;32m0 145544         20                 ":-    syscall    <- stat64[0m
+[2;32m0 145544         10                 ":-    syscall    -> open64[0m
+[2;32m0 145544         18                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         17                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         18                 ":-    syscall    <- open64[0m
+[2;32m0 145544          9                 ":-    syscall    -> fstat64[0m
+[2;32m0 145544          8                 ":-    syscall    <- fstat64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         18                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> fstat64[0m
+[2;32m0 145544          8                 ":-    syscall    <- fstat64[0m
+[2;32m0 145544          9                 ":-    syscall    -> fstat64[0m
+[2;32m0 145544          7                 ":-    syscall    <- fstat64[0m
+[2;32m0 145544          8                 ":-    syscall    -> ioctl[0m
+[2;32m0 145544          7                 ":-    syscall    <- ioctl[0m
+[2;32m0 145544          8                 ":-    syscall    -> read[0m
+[2;32m0 145544         19                 ":-    syscall    <- read[0m
+[2;32m0 145544          8                 ":-    syscall    -> fstat64[0m
+[2;32m0 145544          8                 ":-    syscall    <- fstat64[0m
+[2;32m0 145544          8                 ":-    syscall    -> read[0m
+[2;32m0 145544          8                 ":-    syscall    <- read[0m
+[2;32m0 145544         22                 ":-    syscall    -> llseek[0m
+[2;32m0 145544          8                 ":-    syscall    <- llseek[0m
+[2;32m0 145544          8                 ":-    syscall    -> close[0m
+[2;32m0 145544          9                 ":-    syscall    <- close[0m
+[2;35m0 145544         12          ascii.py:8    func       -> ?[0m
+[2;35m0 145544         16          ascii.py:13   func         -> Codec[0m
+[2;35m0 145544         12          ascii.py:18   func         <- Codec[0m
+[2;35m0 145544         22          ascii.py:20   func         -> StreamWriter[0m
+[2;35m0 145544         11          ascii.py:21   func         <- StreamWriter[0m
+[2;35m0 145544         20          ascii.py:23   func         -> StreamReader[0m
+[2;35m0 145544         11          ascii.py:24   func         <- StreamReader[0m
+[2;35m0 145544         32          ascii.py:26   func         -> StreamConverter[0m
+[2;35m0 145544         12          ascii.py:29   func         <- StreamConverter[0m
+[2;35m0 145544         21          ascii.py:33   func       <- ?[0m
+[2;32m0 145544         17                 ":-    syscall    -> llseek[0m
+[2;32m0 145544          8                 ":-    syscall    <- llseek[0m
+[2;32m0 145544          8                 ":-    syscall    -> close[0m
+[2;32m0 145544          8                 ":-    syscall    <- close[0m
+[2;35m0 145544         13          ascii.py:33   func       -> getregentry[0m
+[2;35m0 145544         12          ascii.py:35   func       <- getregentry[0m
+[2;35m0 145544         34       __init__.py:142  func     <- search_function[0m
+[2;32m0 145544         23                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         42                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544         11                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544          9                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544         12                 ":-    syscall  -> readlink[0m
+[2;32m0 145544         16                 ":-    syscall  <- readlink[0m
+[2;32m0 145544         20                 ":-    syscall  -> resolvepath[0m
+[2;32m0 145544         18                 ":-    syscall  <- resolvepath[0m
+[2;32m0 145544         12                 ":-    syscall  -> getcwd[0m
+[2;32m0 145544         20                 ":-    syscall  <- getcwd[0m
+[2;32m0 145544         27                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544          8                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544         14                 ":-    syscall  -> llseek[0m
+[2;32m0 145544          7                 ":-    syscall  <- llseek[0m
+[2;32m0 145544          8                 ":-    syscall  -> fstat64[0m
+[2;32m0 145544          8                 ":-    syscall  <- fstat64[0m
+[2;32m0 145544          8                 ":-    syscall  -> fstat64[0m
+[2;32m0 145544          7                 ":-    syscall  <- fstat64[0m
+[2;32m0 145544          8                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544          7                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544          8                 ":-    syscall  -> read[0m
+[2;32m0 145544         19                 ":-    syscall  <- read[0m
+[2;32m0 145544          9                 ":-    syscall  -> llseek[0m
+[2;32m0 145544          7                 ":-    syscall  <- llseek[0m
+[2;32m0 145544          8                 ":-    syscall  -> llseek[0m
+[2;32m0 145544          7                 ":-    syscall  <- llseek[0m
+[2;32m0 145544         12                 ":-    syscall  -> read[0m
+[2;32m0 145544         13                 ":-    syscall  <- read[0m
+[2;32m0 145544        105                 ":-    syscall  -> read[0m
+[2;32m0 145544          9                 ":-    syscall  <- read[0m
+[2;32m0 145544         10                 ":-    syscall  -> llseek[0m
+[2;32m0 145544          7                 ":-    syscall  <- llseek[0m
+[2;32m0 145544          8                 ":-    syscall  -> close[0m
+[2;32m0 145544          9                 ":-    syscall  <- close[0m
+[2;35m0 145544        117       func_abc.py:3    func     -> ?[0m
+[2;32m0 145544         20                 ":-    syscall    -> stat64[0m
+[2;32m0 145544         15                 ":-    syscall    <- stat64[0m
+[2;32m0 145544         10                 ":-    syscall    -> stat64[0m
+[2;32m0 145544         13                 ":-    syscall    <- stat64[0m
+[2;32m0 145544         10                 ":-    syscall    -> open64[0m
+[2;32m0 145544         15                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         13                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         13                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         13                 ":-    syscall    <- open64[0m
+[2;32m0 145544          9                 ":-    syscall    -> stat64[0m
+[2;32m0 145544         13                 ":-    syscall    <- stat64[0m
+[2;32m0 145544          9                 ":-    syscall    -> open64[0m
+[2;32m0 145544         13                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         13                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         13                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         13                 ":-    syscall    <- open64[0m
+[2;32m0 145544          9                 ":-    syscall    -> stat64[0m
+[2;32m0 145544         15                 ":-    syscall    <- stat64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         15                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         15                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         15                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         15                 ":-    syscall    <- open64[0m
+[2;32m0 145544          9                 ":-    syscall    -> stat64[0m
+[2;32m0 145544         17                 ":-    syscall    <- stat64[0m
+[2;32m0 145544          9                 ":-    syscall    -> open64[0m
+[2;32m0 145544         17                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         16                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         16                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         16                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> stat64[0m
+[2;32m0 145544         17                 ":-    syscall    <- stat64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         17                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         16                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         16                 ":-    syscall    <- open64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         16                 ":-    syscall    <- open64[0m
+[2;32m0 145544          9                 ":-    syscall    -> stat64[0m
+[2;32m0 145544         17                 ":-    syscall    <- stat64[0m
+[2;32m0 145544          8                 ":-    syscall    -> open64[0m
+[2;32m0 145544         19                 ":-    syscall    <- open64[0m
+[2;32m0 145544         14                 ":-    syscall    -> fstat64[0m
+[2;32m0 145544          9                 ":-    syscall    <- fstat64[0m
+[2;32m0 145544         20                 ":-    syscall    -> xstat[0m
+[2;32m0 145544         18                 ":-    syscall    <- xstat[0m
+[2;32m0 145544          8                 ":-    syscall    -> resolvepath[0m
+[2;32m0 145544         19                 ":-    syscall    <- resolvepath[0m
+[2;32m0 145544         10                 ":-    syscall    -> open[0m
+[2;32m0 145544         19                 ":-    syscall    <- open[0m
+[2;32m0 145544         10                 ":-    syscall    -> mmap[0m
+[2;32m0 145544         21                 ":-    syscall    <- mmap[0m
+[2;32m0 145544         33                 ":-    syscall    -> mmap[0m
+[2;32m0 145544         13                 ":-    syscall    <- mmap[0m
+[2;32m0 145544          9                 ":-    syscall    -> mmap[0m
+[2;32m0 145544         16                 ":-    syscall    <- mmap[0m
+[2;32m0 145544          8                 ":-    syscall    -> mmap[0m
+[2;32m0 145544         11                 ":-    syscall    <- mmap[0m
+[2;32m0 145544         34                 ":-    syscall    -> munmap[0m
+[2;32m0 145544         11                 ":-    syscall    <- munmap[0m
+[2;32m0 145544         43                 ":-    syscall    -> memcntl[0m
+[2;32m0 145544         13                 ":-    syscall    <- memcntl[0m
+[2;32m0 145544          8                 ":-    syscall    -> close[0m
+[2;32m0 145544          9                 ":-    syscall    <- close[0m
+[2;32m0 145544         30                 ":-    syscall    -> mprotect[0m
+[2;32m0 145544         13                 ":-    syscall    <- mprotect[0m
+[2;32m0 145544        169                 ":-    syscall    -> mprotect[0m
+[2;32m0 145544         13                 ":-    syscall    <- mprotect[0m
+[2;32m0 145544          2                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        280                 ":-    syscall  -> open[0m
+[2;32m0 145544         90                 ":-    syscall  <- open[0m
+[2;32m0 145544        154                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        214                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        301                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        186                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        210                 ":-    syscall  -> close[0m
+[2;32m0 145544         18                 ":-    syscall  <- close[0m
+[2;32m0 145544        146                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        208                 ":-    syscall  -> open[0m
+[2;32m0 145544         73                 ":-    syscall  <- open[0m
+[2;32m0 145544        151                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        209                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         45                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        171                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        194                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        203                 ":-    syscall  -> open[0m
+[2;32m0 145544         63                 ":-    syscall  <- open[0m
+[2;32m0 145544        150                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        209                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        280                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        185                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        193                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        230                 ":-    syscall  -> open[0m
+[2;32m0 145544         82                 ":-    syscall  <- open[0m
+[2;32m0 145544        151                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        210                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         45                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        171                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        195                 ":-    syscall  -> close[0m
+[2;32m0 145544         18                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        204                 ":-    syscall  -> open[0m
+[2;32m0 145544         64                 ":-    syscall  <- open[0m
+[2;32m0 145544        149                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        208                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        283                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        184                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        192                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        146                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        209                 ":-    syscall  -> open[0m
+[2;32m0 145544         72                 ":-    syscall  <- open[0m
+[2;32m0 145544        150                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        209                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         45                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        171                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        198                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        860                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        223                 ":-    syscall  -> open[0m
+[2;32m0 145544         83                 ":-    syscall  <- open[0m
+[2;32m0 145544        151                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        281                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        187                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        196                 ":-    syscall  -> close[0m
+[2;32m0 145544         19                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        209                 ":-    syscall  -> open[0m
+[2;32m0 145544         69                 ":-    syscall  <- open[0m
+[2;32m0 145544        151                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         47                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        173                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        199                 ":-    syscall  -> close[0m
+[2;32m0 145544         18                 ":-    syscall  <- close[0m
+[2;32m0 145544        144                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        212                 ":-    syscall  -> open[0m
+[2;32m0 145544         67                 ":-    syscall  <- open[0m
+[2;32m0 145544        149                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        282                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        187                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        197                 ":-    syscall  -> close[0m
+[2;32m0 145544         59                 ":-    syscall  <- close[0m
+[2;32m0 145544        637                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        222                 ":-    syscall  -> open[0m
+[2;32m0 145544         80                 ":-    syscall  <- open[0m
+[2;32m0 145544        151                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        214                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         47                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        172                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        199                 ":-    syscall  -> close[0m
+[2;32m0 145544         19                 ":-    syscall  <- close[0m
+[2;32m0 145544        144                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        205                 ":-    syscall  -> open[0m
+[2;32m0 145544         62                 ":-    syscall  <- open[0m
+[2;32m0 145544        150                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        211                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        304                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        190                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        197                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        211                 ":-    syscall  -> open[0m
+[2;32m0 145544         70                 ":-    syscall  <- open[0m
+[2;32m0 145544        149                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        211                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         46                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        172                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          2                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        260                 ":-    syscall  -> close[0m
+[2;32m0 145544         26                 ":-    syscall  <- close[0m
+[2;32m0 145544        160                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        207                 ":-    syscall  -> open[0m
+[2;32m0 145544         79                 ":-    syscall  <- open[0m
+[2;32m0 145544        151                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        216                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        274                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        187                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        195                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        211                 ":-    syscall  -> open[0m
+[2;32m0 145544         70                 ":-    syscall  <- open[0m
+[2;32m0 145544        149                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        214                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         48                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        173                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        201                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        211                 ":-    syscall  -> open[0m
+[2;32m0 145544         65                 ":-    syscall  <- open[0m
+[2;32m0 145544        150                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        324                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        342                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        203                 ":-    syscall  -> close[0m
+[2;32m0 145544         19                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> open[0m
+[2;32m0 145544         76                 ":-    syscall  <- open[0m
+[2;32m0 145544        150                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        214                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         48                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        174                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        198                 ":-    syscall  -> close[0m
+[2;32m0 145544         18                 ":-    syscall  <- close[0m
+[2;32m0 145544        146                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        206                 ":-    syscall  -> open[0m
+[2;32m0 145544         63                 ":-    syscall  <- open[0m
+[2;32m0 145544        150                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        272                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        185                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        194                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        146                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> open[0m
+[2;32m0 145544         70                 ":-    syscall  <- open[0m
+[2;32m0 145544        151                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        214                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         47                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        173                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        236                 ":-    syscall  -> close[0m
+[2;32m0 145544         23                 ":-    syscall  <- close[0m
+[2;32m0 145544        156                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        210                 ":-    syscall  -> open[0m
+[2;32m0 145544         76                 ":-    syscall  <- open[0m
+[2;32m0 145544        150                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        214                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        276                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        187                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        197                 ":-    syscall  -> close[0m
+[2;32m0 145544         17                 ":-    syscall  <- close[0m
+[2;32m0 145544        145                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        211                 ":-    syscall  -> open[0m
+[2;32m0 145544         71                 ":-    syscall  <- open[0m
+[2;32m0 145544        149                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        214                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         47                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        172                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        199                 ":-    syscall  -> close[0m
+[2;32m0 145544         19                 ":-    syscall  <- close[0m
+[2;32m0 145544        144                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        210                 ":-    syscall  -> open[0m
+[2;32m0 145544         64                 ":-    syscall  <- open[0m
+[2;32m0 145544        150                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        212                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        297                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        522                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        210                 ":-    syscall  -> close[0m
+[2;32m0 145544         21                 ":-    syscall  <- close[0m
+[2;32m0 145544        146                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> open[0m
+[2;32m0 145544         79                 ":-    syscall  <- open[0m
+[2;32m0 145544        151                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          0                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        213                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         47                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544        173                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544          1                 ":-    syscall  <- nosys[0m
+[2;32m0 145544        201                 ":-    syscall  -> close[0m
+[2;32m0 145544         19                 ":-    syscall  <- close[0m
+[2;32m0 145544        144                 ":-    syscall  -> lwp_exit[0m
+[2;32m0 145544      91667                 ":-    syscall    -> munmap[0m
+[2;32m0 145544         34                 ":-    syscall    <- munmap[0m
+[2;32m0 145544         65                 ":-    syscall    -> gtime[0m
+[2;32m0 145544          9                 ":-    syscall    <- gtime[0m
+[2;32m0 145544         13                 ":-    syscall    -> open[0m
+[2;32m0 145544         42                 ":-    syscall    <- open[0m
+[2;32m0 145544         10                 ":-    syscall    -> fstat64[0m
+[2;32m0 145544          9                 ":-    syscall    <- fstat64[0m
+[2;32m0 145544          8                 ":-    syscall    -> read[0m
+[2;32m0 145544         31                 ":-    syscall    <- read[0m
+[2;32m0 145544          9                 ":-    syscall    -> close[0m
+[2;32m0 145544         11                 ":-    syscall    <- close[0m
+[2;32m0 145544         65                 ":-    syscall    -> llseek[0m
+[2;32m0 145544          9                 ":-    syscall    <- llseek[0m
+[2;32m0 145544          8                 ":-    syscall    -> close[0m
+[2;32m0 145544          9                 ":-    syscall    <- close[0m
+[2;35m0 145544         25       func_abc.py:14   func       -> func_a[0m
+[2;32m0 145544         24                 ":-    syscall      -> ioctl[0m
+[2;32m0 145544          9                 ":-    syscall      <- ioctl[0m
+[2;32m0 145544          8                 ":-    syscall      -> fstat64[0m
+[2;32m0 145544          8                 ":-    syscall      <- fstat64[0m
+[2;32m0 145544          9                 ":-    syscall      -> fstat64[0m
+[2;32m0 145544          7                 ":-    syscall      <- fstat64[0m
+[2;32m0 145544         40                 ":-    syscall      -> pollsys[0m
+[2;32m0 145544    1009424                 ":-    syscall      <- pollsys[0m
+[2;35m0 145544         35       func_abc.py:9    func         -> func_b[0m
+[2;32m0 145544         40                 ":-    syscall        -> pollsys[0m
+[2;32m0 145544    1009681                 ":-    syscall        <- pollsys[0m
+[2;35m0 145544         36       func_abc.py:5    func           -> func_c[0m
+[2;32m0 145544         41                 ":-    syscall          -> pollsys[0m
+Function A
+Function B
+Function C
+[2;32m0 145544    1000116                 ":-    syscall          <- pollsys[0m
+[2;35m0 145544         34       func_abc.py:7    func           <- func_c[0m
+[2;35m0 145544         28       func_abc.py:12   func         <- func_b[0m
+[2;35m0 145544         14       func_abc.py:17   func       <- func_a[0m
+[2;35m0 145544         14       func_abc.py:19   func     <- ?[0m
+[2;32m0 145544         26                 ":-    syscall  -> sigaction[0m
+[2;32m0 145544         15                 ":-    syscall  <- sigaction[0m
+[2;32m0 145544       1150                 ":-    syscall  -> write[0m
+[2;32m0 145544         21                 ":-    syscall  <- write[0m
+[2;32m0 145544        212                 ":-    syscall  -> open64[0m
+[2;32m0 145544        116                 ":-    syscall  <- open64[0m
+[2;32m0 145544         11                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544         24                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544         10                 ":-    syscall  -> close[0m
+[2;32m0 145544         16                 ":-    syscall  <- close[0m
+[2;32m0 145544          8                 ":-    syscall  -> open64[0m
+[2;32m0 145544         32                 ":-    syscall  <- open64[0m
+[2;32m0 145544          9                 ":-    syscall  -> ioctl[0m
+[2;32m0 145544        169                 ":-    syscall  <- ioctl[0m
+[2;32m0 145544         10                 ":-    syscall  -> close[0m
+[2;32m0 145544         12                 ":-    syscall  <- close[0m
+[2;32m0 145544         62                 ":-    syscall  -> rexit[0m
+
+Here you can see the output showing the path the script follows as it is
+executed.
+
+[2;35m0 145544         35       func_abc.py:9    func         -> func_b[0m
+[2;32m0 145544         40                 ":-    syscall        -> pollsys[0m
+[2;32m0 145544    1009681                 ":-    syscall        <- pollsys[0m
+[2;35m0 145544         36       func_abc.py:5    func           -> func_c[0m
+
+This excerpt shows line 9 of the script executing. It makes a pollsys syscall
+in order to fulfill the request to sleep for one second, returns and then goes
+to line 5.  Checking the logic flow of the example program, this makes sense.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/py_who_example.txt b/external/cddl/dtracetoolkit/dist/Examples/py_who_example.txt
new file mode 100644
index 0000000..7d1c3f1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/py_who_example.txt
@@ -0,0 +1,34 @@
+These are examples of the results after running the py_who.d script.
+
+This script shows which UIDs and PIDs are running Python programs with Python 
+provider support, and how active they are.  It lists the name of the program, 
+along with the number of lines executed per program as recorded by the line
+provider.
+
+Here it runs as the Code/Python/func_abc.py program is executed.  
+
+# py_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+      PID    UID  FUNCS FILE
+   145442      0      1 /usr/lib/python2.4/encodings/aliases.py
+   145442      0      1 /usr/lib/python2.4/linecache.py
+   145442      0      2 /usr/lib/python2.4/types.py
+   145442      0      4 /usr/lib/python2.4/encodings/__init__.py
+   145442      0      4 func_abc.py
+   145442      0      5 /usr/lib/python2.4/UserDict.py
+   145442      0      5 /usr/lib/python2.4/warnings.py
+   145442      0      6 /usr/lib/python2.4/codecs.py
+   145442      0      6 /usr/lib/python2.4/encodings/ascii.py
+   145442      0      7 /usr/lib/python2.4/copy_reg.py
+   145442      0     11 <string>
+   145442      0     13 /usr/lib/python2.4/stat.py
+   145442      0     14 /usr/lib/python2.4/os.py
+   145442      0     36 /usr/lib/python2.4/site.py
+   145442      0    115 /usr/lib/python2.4/posixpath.py
+
+You can see that the program itself had four lines executed attributed to it,
+and the other lines in the program were associated with their particular
+Python library calls.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_calldist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_calldist_example.txt
new file mode 100644
index 0000000..088497c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_calldist_example.txt
@@ -0,0 +1,153 @@
+The following is an example of running rb_calldist.d and tracing the elapsed
+times for functions.
+
+We run rb_calldist.d while running the program Code/Ruby/func_abc.rb.  We can
+see that there are three sections in the DTrace output
+
+# rb_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Elapsed times (us),
+   ., obj-new, NoMemoryError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ., obj-new, SystemStackError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ., obj-new, ThreadGroup 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   ., obj-new, fatal 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   ., obj-new, Object 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |                                         0        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@                            1        
+              32 |                                         0        
+
+
+Exclusive function elapsed times (us),
+   func_abc.rb, func, Module::method_added 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |@@@@@@@@@@@@@                            1        
+               8 |                                         0        
+
+   func_abc.rb, func, Object::print 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              32 |@@@@@@@@@@@@@                            1        
+              64 |                                         0        
+
+   func_abc.rb, func, IO::write 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              64 |@@@@@@@@@@@@@                            1        
+             128 |                                         0        
+
+   func_abc.rb, func, Object::func_a 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   func_abc.rb, func, Object::func_b 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   func_abc.rb, func, Object::func_c 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   func_abc.rb, func, Object::sleep 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+         1048576 |                                         0        
+
+
+Inclusive function elapsed times (us),
+   func_abc.rb, func, Module::method_added 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |@@@@@@@@@@@@@                            1        
+               8 |                                         0        
+
+   func_abc.rb, func, IO::write 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              64 |@@@@@@@@@@@@@                            1        
+             128 |                                         0        
+
+   func_abc.rb, func, Object::print 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+             128 |@@@@@@@@@@@@@                            1        
+             256 |                                         0        
+
+   func_abc.rb, func, Object::func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   func_abc.rb, func, Object::func_b 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   func_abc.rb, func, Object::sleep 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+         1048576 |                                         0        
+
+   func_abc.rb, func, Object::func_a 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+The elapsed times show us that the script spent some small amount of time
+processing various events that were not functions.  In this case they were all
+obj-new events, and you can see that the slowest of these was a new Object at
+between 16 microseconds and 31 microseconds.
+
+The exclusive subroutine elapsed times show that each of our user defined
+functions took between 256 and 511 microseconds. This time excludes the time 
+spent in other subroutines.
+
+The inclusive subroutine elapsed times show that func_c() took between 0.5
+seconds and 1 second, func_b() took between 1 second and 2.1 seconds, and
+func_a() took between 2.1 seconds and 4.2 seconds to execute. This time
+includes the time spent in other subroutines called, and since func_a() called
+func_b() which called func_c(), these times make sense.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_calls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_calls_example.txt
new file mode 100644
index 0000000..acc0d4d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_calls_example.txt
@@ -0,0 +1,29 @@
+The following are examples of the results of running the rb_calls.d script.
+
+This script traces activity from all Ruby programs on the system that are
+running with Ruby provider support. In this example we see it running while
+the Code/Ruby/func_abc.rb script is run.
+
+# rb_calls.d
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE                     TYPE       NAME                              CALLS
+ .                        obj-new    NoMemoryError                         1
+ .                        obj-new    SystemStackError                      1
+ .                        obj-new    ThreadGroup                           1
+ .                        obj-new    fatal                                 1
+ func_abc.rb              method     Object::func_a                        1
+ func_abc.rb              method     Object::func_b                        1
+ func_abc.rb              method     Object::func_c                        1
+ .                        obj-new    Object                                3
+ func_abc.rb              method     IO::write                             3
+ func_abc.rb              method     Module::method_added                  3
+ func_abc.rb              method     Object::print                         3
+ func_abc.rb              method     Object::sleep                         3
+
+We can see that the file func_abc.rb called each of the user-defined functions
+included in the script; func_a, func_b, and func_c.  It also called the print
+object and sleep amongst other things.  Interspersed in the output are calls
+to new objects that are not tied to the program func_abc.rb.  They are called
+from the Ruby engine for some other reason.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_calltime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_calltime_example.txt
new file mode 100644
index 0000000..7245fec
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_calltime_example.txt
@@ -0,0 +1,77 @@
+The following is an example of running rb_calltime.d and tracing the elapsed
+times for functions.
+
+We run rb_calltime.d while running the program Code/Ruby/func_abc.rb.  We can
+see that there are four sections in the DTrace output
+
+# rb_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   .                    obj-new    NoMemoryError                           1
+   .                    obj-new    SystemStackError                        1
+   .                    obj-new    ThreadGroup                             1
+   .                    obj-new    fatal                                   1
+   func_abc.rb          func       Object::func_a                          1
+   func_abc.rb          func       Object::func_b                          1
+   func_abc.rb          func       Object::func_c                          1
+   .                    obj-new    Object                                  3
+   func_abc.rb          func       IO::write                               3
+   func_abc.rb          func       Module::method_added                    3
+   func_abc.rb          func       Object::print                           3
+   func_abc.rb          func       Object::sleep                           3
+   -                    total      -                                      15
+
+Elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   .                    obj-new    SystemStackError                        3
+   .                    obj-new    NoMemoryError                           3
+   .                    obj-new    fatal                                  11
+   .                    obj-new    ThreadGroup                            13
+   .                    obj-new    Object                                 26
+
+Exclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_abc.rb          func       Module::method_added                    9
+   func_abc.rb          func       Object::print                          92
+   func_abc.rb          func       IO::write                             185
+   func_abc.rb          func       Object::func_c                        344
+   func_abc.rb          func       Object::func_a                        379
+   func_abc.rb          func       Object::func_b                        383
+   func_abc.rb          func       Object::sleep                     3020597
+   -                    total      -                                 3021992
+
+Inclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_abc.rb          func       Module::method_added                    9
+   func_abc.rb          func       IO::write                             185
+   func_abc.rb          func       Object::print                         277
+   func_abc.rb          func       Object::func_c                    1009829
+   func_abc.rb          func       Object::func_b                    2019781
+   func_abc.rb          func       Object::sleep                     3020597
+   func_abc.rb          func       Object::func_a                    3021983
+
+The first section, Count, shows us how many times each function associated
+with func_abc.rb was called.  It also shows other functions called by the Ruby
+engine.
+
+The second section, elapsed times, shows how long each action that was not
+calling a function took.		
+
+The third section, exclusive function elapsed times, shows us how many 
+microseconds the program spends in each function.  This does not include the 
+time spent in any sub-functions called by that particular function.  The last 
+line gives us the total time in microseconds.
+
+The fourth section, inclusive function elapsed times, are the absolute time
+from when the function began to when it completed - which includes off-CPU time 
+due to other system events such as I/O, scheduling, interrupts, etc. In 
+particular, for this case it has included the time waiting for the sleep 
+commands.
+
+Elapsed times are useful for identifying where latencies are.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive function time.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_cpudist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_cpudist_example.txt
new file mode 100644
index 0000000..718495e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_cpudist_example.txt
@@ -0,0 +1,199 @@
+The following are examples of rb_cpudist.d.
+
+This script traces the on-CPU time of Ruby functions and prints a report in
+the form of a histogram.  Here it traces the example program, 
+Code/Ruby/func_slow.rb
+
+# rb_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+On-CPU times (us),
+   ., obj-new, NoMemoryError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ., obj-new, SystemStackError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   ., obj-new, ThreadGroup 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   ., obj-new, fatal 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+   ., obj-new, Object 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@                            1        
+              16 |                                         0        
+
+
+Exclusive function on-CPU times (us),
+   func_slow.rb, func, Module::method_added 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               2 |                                         0        
+
+   func_slow.rb, func, Object::print 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               8 |@@@@@@@@@@@@@                            1        
+              16 |                                         0        
+
+   func_slow.rb, func, IO::write 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              64 |@@@@@@@@@@@@@                            1        
+             128 |                                         0        
+
+   func_slow.rb, func, Object::func_a 
+           value  ------------- Distribution ------------- count    
+          131072 |                                         0        
+          262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+          524288 |                                         0        
+
+   func_slow.rb, func, Object::func_b 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   func_slow.rb, func, Fixnum::< 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 599556   
+               2 |                                         72       
+               4 |                                         35       
+               8 |                                         128      
+              16 |                                         158      
+              32 |                                         49       
+              64 |                                         3        
+             128 |                                         2        
+             256 |                                         0        
+
+   func_slow.rb, func, Object::func_c 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   func_slow.rb, func, Fixnum::+ 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1199062  
+               2 |                                         138      
+               4 |                                         74       
+               8 |                                         279      
+              16 |                                         344      
+              32 |                                         91       
+              64 |                                         9        
+             128 |                                         0        
+             256 |                                         3        
+             512 |                                         0        
+
+
+Inclusive function on-CPU times (us),
+   func_slow.rb, func, Module::method_added 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               2 |                                         0        
+
+   func_slow.rb, func, IO::write 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              64 |@@@@@@@@@@@@@                            1        
+             128 |                                         0        
+
+   func_slow.rb, func, Object::print 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              64 |@@@@@@@@@@@@@                            1        
+             128 |                                         0        
+
+   func_slow.rb, func, Fixnum::< 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 599556   
+               2 |                                         72       
+               4 |                                         35       
+               8 |                                         128      
+              16 |                                         158      
+              32 |                                         49       
+              64 |                                         3        
+             128 |                                         2        
+             256 |                                         0        
+
+   func_slow.rb, func, Fixnum::+ 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1199062  
+               2 |                                         138      
+               4 |                                         74       
+               8 |                                         279      
+              16 |                                         344      
+              32 |                                         91       
+              64 |                                         9        
+             128 |                                         0        
+             256 |                                         3        
+             512 |                                         0        
+
+   func_slow.rb, func, Object::func_b 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+   func_slow.rb, func, Object::func_c 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+   func_slow.rb, func, Object::func_a 
+           value  ------------- Distribution ------------- count    
+         2097152 |                                         0        
+         4194304 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         8388608 |                                         0        
+
+You can see that the results are in three sections.  
+
+The first section shows us the on-CPU time for actions that were not of the
+type 'func'.  
+
+The second section, Exclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, not including time spent in subroutines.  You can
+see here that Object::print had two instances of being on-CPU between 4
+microseconds and 7 microseconds, and once instance of being on-CPU between 8
+microseconds and 15 microseconds. 
+
+The third section, Inclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, including that time spent in subroutines called
+by those functions.  You can see that here Object::print had two instances 
+of being on-CPU between 32 microseconds and 63 microseconds, and one instance 
+of being on-CPU between 64 microseconds and 127 microseconds.
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly.  See Inclusive
+function on-CPU time for Fixnum::+ for an example.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_cputime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_cputime_example.txt
new file mode 100644
index 0000000..edfa5aa
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_cputime_example.txt
@@ -0,0 +1,81 @@
+The following are examples of rb_cputime.d.
+
+This script traces the on-CPU time of Ruby functions and prints a report.
+Here it traces the example program, Code/Ruby/func_slow.rb
+
+# rb_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+   FILE                 TYPE       NAME                                COUNT
+   .                    obj-new    NoMemoryError                           1
+   .                    obj-new    SystemStackError                        1
+   .                    obj-new    ThreadGroup                             1
+   .                    obj-new    fatal                                   1
+   func_slow.rb         func       Object::func_a                          1
+   func_slow.rb         func       Object::func_b                          1
+   func_slow.rb         func       Object::func_c                          1
+   .                    obj-new    Object                                  3
+   func_slow.rb         func       IO::write                               3
+   func_slow.rb         func       Module::method_added                    3
+   func_slow.rb         func       Object::print                           3
+   func_slow.rb         func       Fixnum::<                          600003
+   func_slow.rb         func       Fixnum::+                         1200000
+   -                    total      -                                 1800015
+
+Elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   .                    obj-new    SystemStackError                        2
+   .                    obj-new    NoMemoryError                           2
+   .                    obj-new    fatal                                  11
+   .                    obj-new    ThreadGroup                            12
+   .                    obj-new    Object                                 19
+
+Exclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_slow.rb         func       Module::method_added                    4
+   func_slow.rb         func       Object::print                          57
+   func_slow.rb         func       IO::write                             180
+   func_slow.rb         func       Object::func_a                     405946
+   func_slow.rb         func       Fixnum::<                          691125
+   func_slow.rb         func       Object::func_b                     809970
+   func_slow.rb         func       Object::func_c                    1225235
+   func_slow.rb         func       Fixnum::+                         1285200
+   -                    total      -                                 4417721
+
+Inclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   func_slow.rb         func       Module::method_added                    4
+   func_slow.rb         func       IO::write                             180
+   func_slow.rb         func       Object::print                         238
+   func_slow.rb         func       Fixnum::<                          691125
+   func_slow.rb         func       Fixnum::+                         1285200
+   func_slow.rb         func       Object::func_c                    2212572
+   func_slow.rb         func       Object::func_b                    3683688
+   func_slow.rb         func       Object::func_a                    4417717
+
+You can see the results are printed in four sections.
+
+The first section reports how many times each subroutine was called, and it's
+type.
+
+The second section reports on the on-CPU time of anything that was not of type
+"func", in this case the only elements reported here are of type obj-new.
+
+The exclusive function on-CPU times shows, amongst other results, that func_a
+spent around 0.4 seconds on-CPU.  This time excludes time spent in other 
+subroutines.
+
+The inclusive function on-CPU times show that func_a spent around 4.4
+seconds on-CPU.  This includes the time spent in other subroutines called.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_flow_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_flow_example.txt
new file mode 100644
index 0000000..6cfa54f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_flow_example.txt
@@ -0,0 +1,54 @@
+The following are examples of rb_flow.d.
+
+This is a simple script to trace the flow of Ruby functions.
+Here it traces the example program, Code/Ruby/func_abc.rb
+ 
+# rb_flow.d
+  C TIME(us)         FILE                   -- CLASS::METHOD
+  0 3066417516583    func_abc.rb            -> Module::method_added
+  0 3066417516640    func_abc.rb            <- Module::method_added
+  0 3066417516658    func_abc.rb            -> Module::method_added
+  0 3066417516668    func_abc.rb            <- Module::method_added
+  0 3066417516680    func_abc.rb            -> Module::method_added
+  0 3066417516689    func_abc.rb            <- Module::method_added
+  0 3066417516701    func_abc.rb            -> Object::func_a
+  0 3066417516711    func_abc.rb              -> Object::print
+  0 3066417516730    func_abc.rb                -> IO::write
+  0 3066417516832    func_abc.rb                <- IO::write
+  0 3066417516841    func_abc.rb              <- Object::print
+  0 3066417516849    func_abc.rb              -> Object::sleep
+  0 3066418520705    func_abc.rb              <- Object::sleep
+  0 3066418520727    func_abc.rb              -> Object::func_b
+  0 3066418520744    func_abc.rb                -> Object::print
+  0 3066418520753    func_abc.rb                  -> IO::write
+  0 3066418520796    func_abc.rb                  <- IO::write
+  0 3066418520805    func_abc.rb                <- Object::print
+  0 3066418520813    func_abc.rb                -> Object::sleep
+  0 3066419530803    func_abc.rb                <- Object::sleep
+  0 3066419530825    func_abc.rb                -> Object::func_c
+  0 3066419530842    func_abc.rb                  -> Object::print
+  0 3066419530852    func_abc.rb                    -> IO::write
+  0 3066419530893    func_abc.rb                    <- IO::write
+  0 3066419530902    func_abc.rb                  <- Object::print
+  0 3066419530910    func_abc.rb                  -> Object::sleep
+  0 3066420540804    func_abc.rb                  <- Object::sleep
+  0 3066420540822    func_abc.rb                <- Object::func_c
+  0 3066420540831    func_abc.rb              <- Object::func_b
+  0 3066420540840    func_abc.rb            <- Object::func_a
+^C
+
+The fourth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which - the output above begins by adding
+new methods, then showing that func_a began; did some print IO; slept, and 
+returned from sleep; and then called func_b.
+
+The TIME(us) column shows time from boot in microseconds.
+
+The FILE column shows the file that was being executed. 
+
+If the output looks illogical, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_flowinfo_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_flowinfo_example.txt
new file mode 100644
index 0000000..14fd851
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_flowinfo_example.txt
@@ -0,0 +1,54 @@
+Following are examples of rb_flowinfo.d.
+
+This is a simple script to trace the flow of Ruby methods.  Here it traces the 
+example program, Code/Ruby/func_abc.rb.
+
+# rb_flowinfo.d
+C    PID  DELTA(us)              FILE:LINE TYPE     -- NAME
+0 146395          2       func_abc.rb:3    method   -> Module::method_added
+0 146395         26       func_abc.rb:3    method   <- Module::method_added
+0 146395         25       func_abc.rb:8    method   -> Module::method_added
+0 146395         11       func_abc.rb:8    method   <- Module::method_added
+0 146395         16       func_abc.rb:14   method   -> Module::method_added
+0 146395         10       func_abc.rb:14   method   <- Module::method_added
+0 146395         15       func_abc.rb:20   method   -> Object::func_a
+0 146395         12       func_abc.rb:15   method     -> Object::print
+0 146395         20       func_abc.rb:15   method       -> IO::write
+0 146395        110       func_abc.rb:15   method       <- IO::write
+0 146395         11       func_abc.rb:15   method     <- Object::print
+0 146395         11       func_abc.rb:16   method     -> Object::sleep
+0 146395    1003728       func_abc.rb:16   method     <- Object::sleep
+0 146395         35       func_abc.rb:17   method     -> Object::func_b
+0 146395         20       func_abc.rb:9    method       -> Object::print
+0 146395         12       func_abc.rb:9    method         -> IO::write
+0 146395         42       func_abc.rb:9    method         <- IO::write
+0 146395         11       func_abc.rb:9    method       <- Object::print
+0 146395         11       func_abc.rb:10   method       -> Object::sleep
+0 146395    1009976       func_abc.rb:10   method       <- Object::sleep
+0 146395         35       func_abc.rb:11   method       -> Object::func_c
+0 146395         20       func_abc.rb:4    method         -> Object::print
+0 146395         12       func_abc.rb:4    method           -> IO::write
+0 146395         38       func_abc.rb:4    method           <- IO::write
+0 146395         11       func_abc.rb:4    method         <- Object::print
+0 146395         11       func_abc.rb:5    method         -> Object::sleep
+0 146395    1009883       func_abc.rb:5    method         <- Object::sleep
+0 146395         29       func_abc.rb:5    method       <- Object::func_c
+0 146395         12       func_abc.rb:11   method     <- Object::func_b
+0 146395         11       func_abc.rb:17   method   <- Object::func_a
+^C
+
+As each method is entered, the last column is indented by 2 spaces. This
+shows which method is calling which.
+
+The DELTA(us) column shows the change in time from the previous line to the
+current line.
+
+The LINE column shows the line in the file what was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_flowtime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_flowtime_example.txt
new file mode 100644
index 0000000..27102da
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_flowtime_example.txt
@@ -0,0 +1,56 @@
+The following are examples of rb_flowtime.d.
+
+This is a simple script to trace the flow of Ruby methods.
+Here it traces the example program, Code/Ruby/func_abc.rb
+
+# rb_flowtime.d
+  C TIME(us)         FILE             DELTA(us) -- CLASS::METHOD
+  0 3066547402640    func_abc.rb              2 -> Module::method_added
+  0 3066547402662    func_abc.rb             22 <- Module::method_added
+  0 3066547402683    func_abc.rb             20 -> Module::method_added
+  0 3066547402693    func_abc.rb              9 <- Module::method_added
+  0 3066547402707    func_abc.rb             14 -> Module::method_added
+  0 3066547402716    func_abc.rb              9 <- Module::method_added
+  0 3066547402729    func_abc.rb             12 -> Object::func_a
+  0 3066547402740    func_abc.rb             10   -> Object::print
+  0 3066547402759    func_abc.rb             18     -> IO::write
+  0 3066547402860    func_abc.rb            101     <- IO::write
+  0 3066547402871    func_abc.rb             10   <- Object::print
+  0 3066547402881    func_abc.rb             10   -> Object::sleep
+  0 3066548410630    func_abc.rb        1007749   <- Object::sleep
+  0 3066548410660    func_abc.rb             30   -> Object::func_b
+  0 3066548410679    func_abc.rb             18     -> Object::print
+  0 3066548410689    func_abc.rb             10       -> IO::write
+  0 3066548410730    func_abc.rb             40       <- IO::write
+  0 3066548410740    func_abc.rb              9     <- Object::print
+  0 3066548410749    func_abc.rb              9     -> Object::sleep
+  0 3066549420724    func_abc.rb        1009974     <- Object::sleep
+  0 3066549420755    func_abc.rb             30     -> Object::func_c
+  0 3066549420773    func_abc.rb             18       -> Object::print
+  0 3066549420783    func_abc.rb             10         -> IO::write
+  0 3066549420825    func_abc.rb             41         <- IO::write
+  0 3066549420835    func_abc.rb              9       <- Object::print
+  0 3066549420844    func_abc.rb              9       -> Object::sleep
+  0 3066550430611    func_abc.rb        1009766       <- Object::sleep
+  0 3066550430635    func_abc.rb             24     <- Object::func_c
+  0 3066550430645    func_abc.rb             10   <- Object::func_b
+  0 3066550430655    func_abc.rb              9 <- Object::func_a
+^C
+
+The fifth column is indented by 2 spaces to show when a new method begins.
+This shows which method is calling which.
+
+The TIME(us) column shows time since boot.
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the seventh line of data output
+(skipping the header) reads as "the time from func_a beginning to
+calling the print method was 10 microseconds".
+
+The FILE column shows file that was being executed.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_funccalls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_funccalls_example.txt
new file mode 100644
index 0000000..27c9c0c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_funccalls_example.txt
@@ -0,0 +1,25 @@
+This is a list of examples of the usage of rb_funccalls.d.
+
+It reports method calls from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Here we run it while the program Code/Ruby/func_abc.rb is executing.
+
+# rb_funccalls.d
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE                             CLASS            METHOD              CALLS
+ func_abc.rb                      Object           func_a                  1
+ func_abc.rb                      Object           func_b                  1
+ func_abc.rb                      Object           func_c                  1
+ func_abc.rb                      IO               write                   3
+ func_abc.rb                      Module           method_added            3
+ func_abc.rb                      Object           print                   3
+ func_abc.rb                      Object           sleep                   3
+
+We can see that during that one Ruby program, Our 3 user-defined methods,
+func_a, func_b and func_c are called once each.  Amongst other calls we can
+see that a method from class IO - write, was called three times; probably by
+the print method.  If you look at the example program Code/Ruby/func_abc.rb,
+you can see that 'print' is used three times, but IO::write is never directly
+called.   
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_lines_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_lines_example.txt
new file mode 100644
index 0000000..544b508
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_lines_example.txt
@@ -0,0 +1,30 @@
+This simple script uses the line probe to count how many times a line was
+executed in a Ruby program.  In this example you can see it running on the
+Code/Ruby/func_slow.rb program.
+
+# rb_lines.d
+Tracing... Hit Ctrl-C to end.
+^C
+                             FILE:LINE        COUNT
+                     func_slow.rb:3               1
+                     func_slow.rb:4               1
+                     func_slow.rb:5               1
+                     func_slow.rb:6               1
+                     func_slow.rb:12              1
+                     func_slow.rb:13              1
+                     func_slow.rb:14              1
+                     func_slow.rb:15              1
+                     func_slow.rb:19              1
+                     func_slow.rb:22              1
+                     func_slow.rb:23              1
+                     func_slow.rb:24              1
+                     func_slow.rb:25              1
+                     func_slow.rb:29              1
+                     func_slow.rb:32              1
+                     func_slow.rb:26         100000
+                     func_slow.rb:27         100000
+                     func_slow.rb:16         200000
+                     func_slow.rb:17         200000
+                     func_slow.rb:7          300000
+                     func_slow.rb:8          300000
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_malloc_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_malloc_example.txt
new file mode 100644
index 0000000..e0917c9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_malloc_example.txt
@@ -0,0 +1,120 @@
+The following is an example of rb_malloc.d.
+
+WARNING: This script is not 100% accurate; This prints graphical
+representations of libc malloc() byte distributions by "recent" Ruby operation, 
+which we hope will be usually correct. This is an experimental script that may
+be improved over time.
+
+Here we can see it running on Code/Ruby/func_abc.rb
+
+# rb_malloc.d -c ./func_abc.rb
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+Ruby malloc byte distributions by recent Ruby operation,
+   func_abc.rb, method, Object::print 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@                     1        
+               4 |                                         0        
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     1        
+              32 |                                         0        
+
+   func_abc.rb, method, Module::method_added 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+              32 |                                         0        
+
+   ., objnew, fatal 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@                                        1        
+               4 |@                                        1        
+               8 |@@@                                      2        
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@             22       
+              32 |@@@@@@                                   5        
+              64 |                                         0        
+
+   func_abc.rb, method, IO::write 
+           value  ------------- Distribution ------------- count    
+            2048 |                                         0        
+            4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            8192 |                                         0        
+
+   ., objnew, SystemStackError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |                                         3        
+               4 |@@@@                                     32       
+               8 |@@                                       15       
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          279      
+              32 |@@@                                      30       
+              64 |                                         2        
+             128 |                                         0        
+
+   ., objnew, NoMemoryError 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@                                        3        
+               4 |@@@                                      17       
+               8 |@@@@@@                                   37       
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@                 146      
+              32 |@@                                       13       
+              64 |                                         2        
+             128 |@@@                                      20       
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         1        
+            2048 |                                         0        
+
+   ., objnew, ThreadGroup 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |                                         8        
+               4 |@@@                                      224      
+               8 |@                                        93       
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              1806     
+              32 |@@@@@@@@                                 496      
+              64 |                                         3        
+             128 |                                         2        
+             256 |                                         0        
+             512 |                                         1        
+            1024 |                                         0        
+
+   ., objnew, Object 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |                                         35       
+               4 |@@@                                      291      
+               8 |@@@                                      300      
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           2679     
+              32 |@@                                       215      
+              64 |                                         7        
+             128 |                                         0        
+
+   ruby, startup, - 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@                                        10       
+               4 |@@@                                      34       
+               8 |@@@                                      38       
+              16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          409      
+              32 |@@                                       30       
+              64 |                                         1        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         2        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |                                         0        
+           32768 |                                         0        
+           65536 |                                         0        
+          131072 |                                         1        
+          262144 |                                         0        
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_objcpu_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_objcpu_example.txt
new file mode 100644
index 0000000..48e8a78
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_objcpu_example.txt
@@ -0,0 +1,51 @@
+The following are examples of running rb_objcpu.d.
+
+The rb_objnew.d script reports the on-CPU time for new Object creation in Ruby
+while the script is tracing.   Here we see it running while 
+Code/Ruby/func_abc.rb is executed.
+
+# rb_objcpu.d
+Tracing... Hit Ctrl-C to end.
+^C
+Total object creation on-CPU time (ms): 0
+
+Object creation on-CPU time distributions (us),
+
+  NoMemoryError                                     
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+  SystemStackError                                  
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+  fatal                                             
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+  ThreadGroup                                       
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              16 |                                         0        
+
+  Object                                            
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@                            1        
+               2 |@@@@@@@@@@@@@                            1        
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@                            1        
+              16 |                                         0        
+
+We can see that there were several different types of Objects created
+including three of type 'Object', one of which took 1 microsecond, one of
+which took 2 to 3 microseconds, and the last of which took between 8 and 15
+microseconds.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_objnew_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_objnew_example.txt
new file mode 100644
index 0000000..340ac9a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_objnew_example.txt
@@ -0,0 +1,21 @@
+The following are examples of running rb_objnew.d.  
+
+The rb_objnew.d script reports the new Ruby objects created (by filename and
+class) while the script is tracing.   Here we see it running while 
+Code/Ruby/func_abc.rb is executed.
+
+# rb_objnew.d
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE                     CLASS                                   COUNT
+ .                        NoMemoryError                               1
+ .                        SystemStackError                            1
+ .                        ThreadGroup                                 1
+ .                        fatal                                       1
+ .                        Object                                      3
+
+Since this is a simple example, not many objects were allocated - a few
+for the ruby engine, and three of class Object. No file was associated
+with these allocations, as they may have been caused by Ruby engine startup,
+and not necessarily lines of code in the example program.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_stat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_stat_example.txt
new file mode 100644
index 0000000..706bf95
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_stat_example.txt
@@ -0,0 +1,22 @@
+The following are examples of running rb_stat.d on Ruby programs.
+
+rb_stat.d shows you the number of events per second that have happened since
+the last line output.  The default interval is 1 second, but you can specify
+other intervals as arguments to the script.
+
+This shows the rb_stat.d script reflecting the Code/Ruby/func_slow.rb script.
+
+# ./rb_stat.d
+TIME                   EXEC/s METHOD/s OBJNEW/s OBJFRE/s RAIS/s RESC/s   GC/s
+2007 Sep 17 03:59:07        0        0        0        0      0      0      0
+2007 Sep 17 03:59:08        0   210426        7        0      0      0      0
+2007 Sep 17 03:59:09        0   724067        0        0      0      0      0
+2007 Sep 17 03:59:10        0   730877        0        0      0      0      0
+2007 Sep 17 03:59:11        0   134645        0        0      0      0      0
+2007 Sep 17 03:59:12        0        0        0        0      0      0      0
+2007 Sep 17 03:59:13        0        0        0        0      0      0      0
+^C
+
+We can see that at 2007 Sep 17 03:59:08 there were 0 new Ruby programs
+executed, 210426 methods called, 7 objects created, 0 objects freed, 0 raises,
+0 rescues and 0 garbage collects.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_syscalls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_syscalls_example.txt
new file mode 100644
index 0000000..869884b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_syscalls_example.txt
@@ -0,0 +1,54 @@
+The following are examples of sh_syscalls.d.
+
+This is a simple script to count Ruby methods and system calls.  Here we trace 
+an example program - Code/Ruby/func_abc.rb
+
+# rb_syscalls.d -c ./func_abc.rb
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+
+Calls for PID 146493,
+
+ FILE                             TYPE       NAME                      COUNT
+ func_abc.rb                      method     Object::func_a                1
+ func_abc.rb                      method     Object::func_b                1
+ func_abc.rb                      method     Object::func_c                1
+ func_abc.rb                      syscall    getpid                        1
+ func_abc.rb                      syscall    getrlimit                     1
+ func_abc.rb                      syscall    getrlimit64                   1
+ func_abc.rb                      syscall    mmap                          1
+ func_abc.rb                      syscall    munmap                        1
+ func_abc.rb                      syscall    rexit                         1
+ func_abc.rb                      syscall    schedctl                      1
+ func_abc.rb                      syscall    sigpending                    1
+ func_abc.rb                      syscall    sysconfig                     1
+ func_abc.rb                      syscall    sysi86                        1
+ func_abc.rb                      syscall    write                         1
+ func_abc.rb                      syscall    llseek                        2
+ func_abc.rb                      syscall    read                          2
+ func_abc.rb                      syscall    setcontext                    2
+ func_abc.rb                      method     IO::write                     3
+ func_abc.rb                      method     Module::method_added          3
+ func_abc.rb                      method     Object::print                 3
+ func_abc.rb                      method     Object::sleep                 3
+ func_abc.rb                      syscall    fstat64                       3
+ func_abc.rb                      syscall    getgid                        3
+ func_abc.rb                      syscall    getuid                        3
+ func_abc.rb                      syscall    ioctl                         3
+ func_abc.rb                      syscall    pollsys                       3
+ func_abc.rb                      syscall    close                         4
+ func_abc.rb                      syscall    lwp_sigmask                   4
+ func_abc.rb                      syscall    open64                        4
+ func_abc.rb                      syscall    gtime                         6
+ func_abc.rb                      syscall    sigaction                    12
+ func_abc.rb                      syscall    brk                          56
+
+While tracing, three user-defined functions were called - func_a, func_b and 
+func_c.  There were 3 instances of the IO::write method being called. There 
+were also many system calls made, including 56 brk()'s, and 12 sigaction()'s.
+
+This script can provide an insight to how a Ruby program is interacting
+with the system, by providing methods and system calls in the same output.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_syscolors_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_syscolors_example.txt
new file mode 100644
index 0000000..854016e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_syscolors_example.txt
@@ -0,0 +1,331 @@
+The following are examples of rb_syscolors.d.
+
+This is a simple script to trace the method flow of Ruby functions within a 
+program, and the system calls made.  It renders the output in color ("colour") 
+using terminal escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Ruby/func_abc.rb.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# rb_syscolors.d -c ./func_abc.rb
+C    PID  DELTA(us)              FILE:LINE TYPE     -- NAME
+[2;32m0 146499          2                 ":-    syscall  -> munmap[0m
+[2;32m0 146499         35                 ":-    syscall  <- munmap[0m
+[2;32m0 146499         56                 ":-    syscall  -> mmap[0m
+[2;32m0 146499         18                 ":-    syscall  <- mmap[0m
+[2;32m0 146499         41                 ":-    syscall  -> setcontext[0m
+[2;32m0 146499         10                 ":-    syscall  <- setcontext[0m
+[2;32m0 146499         10                 ":-    syscall  -> getrlimit[0m
+[2;32m0 146499         11                 ":-    syscall  <- getrlimit[0m
+[2;32m0 146499          9                 ":-    syscall  -> getpid[0m
+[2;32m0 146499          8                 ":-    syscall  <- getpid[0m
+[2;32m0 146499         66                 ":-    syscall  -> setcontext[0m
+[2;32m0 146499          8                 ":-    syscall  <- setcontext[0m
+[2;32m0 146499       1125                 ":-    syscall  -> sysi86[0m
+[2;32m0 146499         12                 ":-    syscall  <- sysi86[0m
+[2;32m0 146499         86                 ":-    syscall  -> open64[0m
+[2;32m0 146499         89                 ":-    syscall  <- open64[0m
+[2;32m0 146499         13                 ":-    syscall  -> ioctl[0m
+[2;32m0 146499         35                 ":-    syscall  <- ioctl[0m
+[2;32m0 146499         15                 ":-    syscall  -> close[0m
+[2;32m0 146499         16                 ":-    syscall  <- close[0m
+[2;32m0 146499        141                 ":-    syscall  -> getrlimit64[0m
+[2;32m0 146499         10                 ":-    syscall  <- getrlimit64[0m
+[2;32m0 146499         37                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499         17                 ":-    syscall  <- brk[0m
+[2;32m0 146499         19                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         11                 ":-    syscall  <- brk[0m
+[2;32m0 146499        495                 ":-    syscall  -> brk[0m
+[2;32m0 146499         11                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499         55                 ":-    syscall  -> sysconfig[0m
+[2;32m0 146499          9                 ":-    syscall  <- sysconfig[0m
+[2;32m0 146499        109                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        189                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499        161                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        144                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499        184                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499        129                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        174                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        145                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        129                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499        134                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        135                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499        136                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499         98                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499        132                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        125                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499        189                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        413                 ":-    syscall  -> brk[0m
+[2;32m0 146499         11                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        171                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        137                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        188                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499        135                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499         10                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499         10                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499          9                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499         12                 ":-    syscall  -> sigpending[0m
+[2;32m0 146499          8                 ":-    syscall  <- sigpending[0m
+[2;32m0 146499         15                 ":-    syscall  -> schedctl[0m
+[2;32m0 146499         44                 ":-    syscall  <- schedctl[0m
+[2;32m0 146499         17                 ":-    syscall  -> lwp_sigmask[0m
+[2;32m0 146499          8                 ":-    syscall  <- lwp_sigmask[0m
+[2;32m0 146499          9                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499         11                 ":-    syscall  -> lwp_sigmask[0m
+[2;32m0 146499          8                 ":-    syscall  <- lwp_sigmask[0m
+[2;32m0 146499          9                 ":-    syscall  -> lwp_sigmask[0m
+[2;32m0 146499          7                 ":-    syscall  <- lwp_sigmask[0m
+[2;32m0 146499          8                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499          7                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499          8                 ":-    syscall  -> lwp_sigmask[0m
+[2;32m0 146499          7                 ":-    syscall  <- lwp_sigmask[0m
+[2;32m0 146499         65                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         11                 ":-    syscall  <- brk[0m
+[2;32m0 146499        149                 ":-    syscall  -> getuid[0m
+[2;32m0 146499          9                 ":-    syscall  <- getuid[0m
+[2;32m0 146499         12                 ":-    syscall  -> getgid[0m
+[2;32m0 146499          8                 ":-    syscall  <- getgid[0m
+[2;32m0 146499         29                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        184                 ":-    syscall  -> brk[0m
+[2;32m0 146499          8                 ":-    syscall  <- brk[0m
+[2;32m0 146499          9                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499        171                 ":-    syscall  -> brk[0m
+[2;32m0 146499          9                 ":-    syscall  <- brk[0m
+[2;32m0 146499          8                 ":-    syscall  -> brk[0m
+[2;32m0 146499         10                 ":-    syscall  <- brk[0m
+[2;32m0 146499         48                 ":-    syscall  -> getuid[0m
+[2;32m0 146499          8                 ":-    syscall  <- getuid[0m
+[2;32m0 146499          9                 ":-    syscall  -> getuid[0m
+[2;32m0 146499          7                 ":-    syscall  <- getuid[0m
+[2;32m0 146499         10                 ":-    syscall  -> getgid[0m
+[2;32m0 146499          7                 ":-    syscall  <- getgid[0m
+[2;32m0 146499          8                 ":-    syscall  -> getgid[0m
+[2;32m0 146499          7                 ":-    syscall  <- getgid[0m
+[2;32m0 146499         79                 ":-    syscall  -> open64[0m
+[2;32m0 146499         31                 ":-    syscall  <- open64[0m
+[2;32m0 146499         14                 ":-    syscall  -> llseek[0m
+[2;32m0 146499          9                 ":-    syscall  <- llseek[0m
+[2;32m0 146499          9                 ":-    syscall  -> close[0m
+[2;32m0 146499         12                 ":-    syscall  <- close[0m
+[2;32m0 146499         15                 ":-    syscall  -> open64[0m
+[2;32m0 146499         13                 ":-    syscall  <- open64[0m
+[2;32m0 146499         21                 ":-    syscall  -> fstat64[0m
+[2;32m0 146499         11                 ":-    syscall  <- fstat64[0m
+[2;32m0 146499         22                 ":-    syscall  -> read[0m
+[2;32m0 146499         36                 ":-    syscall  <- read[0m
+[2;32m0 146499        153                 ":-    syscall  -> read[0m
+[2;32m0 146499         10                 ":-    syscall  <- read[0m
+[2;32m0 146499         11                 ":-    syscall  -> llseek[0m
+[2;32m0 146499          8                 ":-    syscall  <- llseek[0m
+[2;32m0 146499          8                 ":-    syscall  -> close[0m
+[2;32m0 146499          9                 ":-    syscall  <- close[0m
+[1;35m0 146499         23       func_abc.rb:3    line     -- [0m
+[2;35m0 146499         64       func_abc.rb:3    method   -> Module::method_added[0m
+[2;35m0 146499         24       func_abc.rb:3    method   <- Module::method_added[0m
+[1;35m0 146499         20       func_abc.rb:8    line     -- [0m
+[2;35m0 146499         15       func_abc.rb:8    method   -> Module::method_added[0m
+[2;35m0 146499         13       func_abc.rb:8    method   <- Module::method_added[0m
+[1;35m0 146499         13       func_abc.rb:14   line     -- [0m
+[2;35m0 146499         14       func_abc.rb:14   method   -> Module::method_added[0m
+[2;35m0 146499         13       func_abc.rb:14   method   <- Module::method_added[0m
+[1;35m0 146499         12       func_abc.rb:20   line     -- [0m
+[2;35m0 146499         13       func_abc.rb:20   method   -> Object::func_a[0m
+[1;35m0 146499         12       func_abc.rb:15   line       -- [0m
+[2;35m0 146499         10       func_abc.rb:15   method     -> Object::print[0m
+[2;35m0 146499         22       func_abc.rb:15   method       -> IO::write[0m
+[2;32m0 146499         38                 ":-    syscall        -> ioctl[0m
+[2;32m0 146499         11                 ":-    syscall        <- ioctl[0m
+[2;32m0 146499         20                 ":-    syscall        -> fstat64[0m
+[2;32m0 146499          9                 ":-    syscall        <- fstat64[0m
+[2;32m0 146499          9                 ":-    syscall        -> brk[0m
+[2;32m0 146499          8                 ":-    syscall        <- brk[0m
+[2;32m0 146499          8                 ":-    syscall        -> brk[0m
+[2;32m0 146499         11                 ":-    syscall        <- brk[0m
+[2;32m0 146499         25                 ":-    syscall        -> fstat64[0m
+[2;32m0 146499          8                 ":-    syscall        <- fstat64[0m
+[2;35m0 146499         10       func_abc.rb:15   method       <- IO::write[0m
+[2;35m0 146499         13       func_abc.rb:15   method     <- Object::print[0m
+[1;35m0 146499         12       func_abc.rb:16   line       -- [0m
+[2;35m0 146499         10       func_abc.rb:16   method     -> Object::sleep[0m
+[2;32m0 146499         20                 ":-    syscall      -> gtime[0m
+[2;32m0 146499          9                 ":-    syscall      <- gtime[0m
+[2;32m0 146499         24                 ":-    syscall      -> pollsys[0m
+[2;32m0 146499    1006964                 ":-    syscall      <- pollsys[0m
+[2;32m0 146499         26                 ":-    syscall      -> gtime[0m
+[2;32m0 146499         14                 ":-    syscall      <- gtime[0m
+[2;35m0 146499         18       func_abc.rb:16   method     <- Object::sleep[0m
+[1;35m0 146499         27       func_abc.rb:17   line       -- [0m
+[2;35m0 146499         21       func_abc.rb:17   method     -> Object::func_b[0m
+[1;35m0 146499         19       func_abc.rb:9    line         -- [0m
+[2;35m0 146499         12       func_abc.rb:9    method       -> Object::print[0m
+[2;35m0 146499         14       func_abc.rb:9    method         -> IO::write[0m
+[2;35m0 146499         15       func_abc.rb:9    method         <- IO::write[0m
+[2;35m0 146499         12       func_abc.rb:9    method       <- Object::print[0m
+[1;35m0 146499         12       func_abc.rb:10   line         -- [0m
+[2;35m0 146499          9       func_abc.rb:10   method       -> Object::sleep[0m
+[2;32m0 146499         12                 ":-    syscall        -> gtime[0m
+[2;32m0 146499          8                 ":-    syscall        <- gtime[0m
+[2;32m0 146499         11                 ":-    syscall        -> pollsys[0m
+[2;32m0 146499    1009739                 ":-    syscall        <- pollsys[0m
+[2;32m0 146499         26                 ":-    syscall        -> gtime[0m
+[2;32m0 146499         14                 ":-    syscall        <- gtime[0m
+[2;35m0 146499         18       func_abc.rb:10   method       <- Object::sleep[0m
+[1;35m0 146499         27       func_abc.rb:11   line         -- [0m
+[2;35m0 146499         21       func_abc.rb:11   method       -> Object::func_c[0m
+[1;35m0 146499         20       func_abc.rb:4    line           -- [0m
+[2;35m0 146499         12       func_abc.rb:4    method         -> Object::print[0m
+[2;35m0 146499         14       func_abc.rb:4    method           -> IO::write[0m
+[2;35m0 146499         15       func_abc.rb:4    method           <- IO::write[0m
+[2;35m0 146499         12       func_abc.rb:4    method         <- Object::print[0m
+[1;35m0 146499         12       func_abc.rb:5    line           -- [0m
+[2;35m0 146499          9       func_abc.rb:5    method         -> Object::sleep[0m
+[2;32m0 146499         12                 ":-    syscall          -> gtime[0m
+[2;32m0 146499          8                 ":-    syscall          <- gtime[0m
+[2;32m0 146499         11                 ":-    syscall          -> pollsys[0m
+Function A
+Function B
+Function C
+[2;32m0 146499    1009762                 ":-    syscall          <- pollsys[0m
+[2;32m0 146499         25                 ":-    syscall          -> gtime[0m
+[2;32m0 146499         14                 ":-    syscall          <- gtime[0m
+[2;35m0 146499         19       func_abc.rb:5    method         <- Object::sleep[0m
+[2;35m0 146499         26       func_abc.rb:5    method       <- Object::func_c[0m
+[2;35m0 146499         13       func_abc.rb:11   method     <- Object::func_b[0m
+[2;35m0 146499         13       func_abc.rb:17   method   <- Object::func_a[0m
+[2;32m0 146499         33                 ":-    syscall  -> sigaction[0m
+[2;32m0 146499         10                 ":-    syscall  <- sigaction[0m
+[2;32m0 146499        100                 ":-    syscall  -> open64[0m
+[2;32m0 146499        107                 ":-    syscall  <- open64[0m
+[2;32m0 146499         10                 ":-    syscall  -> ioctl[0m
+[2;32m0 146499         10                 ":-    syscall  <- ioctl[0m
+[2;32m0 146499         11                 ":-    syscall  -> close[0m
+[2;32m0 146499         17                 ":-    syscall  <- close[0m
+[2;32m0 146499         28                 ":-    syscall  -> write[0m
+[2;32m0 146499         20                 ":-    syscall  <- write[0m
+[2;32m0 146499         11                 ":-    syscall  -> rexit[0m
+
+Here you can see the output showing the path the program follows in its
+execution.
+
+ie:
+[2;35m0 146499         10       func_abc.rb:16   method     -> Object::sleep[0m
+[2;32m0 146499         20                 ":-    syscall      -> gtime[0m
+[2;32m0 146499          9                 ":-    syscall      <- gtime[0m
+[2;32m0 146499         24                 ":-    syscall      -> pollsys[0m
+[2;32m0 146499    1006964                 ":-    syscall      <- pollsys[0m
+[2;32m0 146499         26                 ":-    syscall      -> gtime[0m
+[2;32m0 146499         14                 ":-    syscall      <- gtime[0m
+[2;35m0 146499         18       func_abc.rb:16   method     <- Object::sleep[0m
+[1;35m0 146499         27       func_abc.rb:17   line       -- [0m
+[2;35m0 146499         21       func_abc.rb:17   method     -> Object::func_b[0m
+[1;35m0 146499         19       func_abc.rb:9    line         -- [0m
+[2;35m0 146499         12       func_abc.rb:9    method       -> Object::print[0m
+[2;35m0 146499         14       func_abc.rb:9    method         -> IO::write[0m
+[2;35m0 146499         15       func_abc.rb:9    method         <- IO::write[0m
+[2;35m0 146499         12       func_abc.rb:9    method       <- Object::print[0m
+[1;35m0 146499         12       func_abc.rb:10   line         -- [0m
+
+shows that on cpu 0 the program is running a sleep command at line 16 of the
+func_abc.rb program (the pollsys and gtime syscalls are used in the Ruby 
+engine to implement sleep).  Then func_b runs, and prints a line
+(using Object::print which uses IO::write).  Notice that the 'write' syscall 
+does not happen until later.  It is probably being buffered by Ruby - you can
+confirm this through further DTracing.  Notice also tht you can see the output 
+of the program:
+
+Function A
+Function B
+Function C
+
+in the file happening before the write syscall is run.  DTrace does not do its 
+output in 'real time'.  There is a slight delay due to buffering.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rb_who_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rb_who_example.txt
new file mode 100644
index 0000000..35c0bb7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rb_who_example.txt
@@ -0,0 +1,20 @@
+These are examples of the results after running the rb_who.d script.
+
+This script shows which UIDs and PIDs are running Ruby programs with Ruby
+provider support, and how active they are.  It lists the name of the program,
+along with the number of lines executed per program as recorded by the line
+provider.
+
+Here it runs as three Ruby programs are executed.  Code/Ruby/func_abc.rb runs
+twice and Code/Ruby/func_slow.rb once.
+
+# rb_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+      PID    UID      LINES FILE
+   146485      0         12 ./func_abc.rb
+   146486      0         12 ./func_abc.rb
+   146487      0    1200015 ./func_slow.rb
+
+You can see that func_abc.rb has twelve lines of executable Ruby code, and
+that func_slow.rb has 100,000x that.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/readbytes_example.txt b/external/cddl/dtracetoolkit/dist/Examples/readbytes_example.txt
new file mode 100644
index 0000000..fa2923b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/readbytes_example.txt
@@ -0,0 +1,22 @@
+The following is a demonstration of the readbytes.d script,
+
+
+Here the readbytes.d script is run for a few seconds, then Ctrl-C is hit,
+
+   # readbytes.d
+   dtrace: description 'sysinfo:::readch ' matched 4 probes
+   ^C
+   
+     mozilla-bin                                                      16
+     gnome-smproxy                                                    64
+     metacity                                                         64
+     dsdm                                                             64
+     wnck-applet                                                      64
+     xscreensaver                                                     96
+     gnome-terminal                                                  900
+     ttymon                                                         5952
+     Xorg                                                          17544
+
+In this interval the Xorg command has successfully read 17.5 Kb, while
+ttymon has read 5952 bytes.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/readdist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/readdist_example.txt
new file mode 100644
index 0000000..42811d8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/readdist_example.txt
@@ -0,0 +1,35 @@
+The following is an example of the readdist.d script,
+
+
+Here the readdist.d script is run for a few seconds, then Ctrl-C is hit,
+
+   # readdist.d
+   dtrace: description 'sysinfo:::readch ' matched 4 probes
+   ^C
+   [...]
+     gnome-terminal
+              value  ------------- Distribution ------------- count
+                 16 |                                         0
+                 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   15
+                 64 |@@@                                      1
+                128 |                                         0
+   
+     Xorg
+              value  ------------- Distribution ------------- count
+                 -1 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@                      26
+                  1 |                                         0
+                  2 |                                         0
+                  4 |                                         0
+                  8 |@@@@                                     6
+                 16 |@                                        2
+                 32 |@                                        2
+                 64 |                                         0
+                128 |@@@@@@@@                                 11
+                256 |@@@                                      4
+                512 |                                         0
+
+This allows us to understand the read behaviour of each process. The
+Xorg command has executed 26 reads that returned 0 bytes, through
+to 4 reads that were at least 256 bytes (up to 511). 
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rfileio_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rfileio_example.txt
new file mode 100644
index 0000000..dcce81e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rfileio_example.txt
@@ -0,0 +1,94 @@
+The following are demonstrations of the rfileio.d script.
+
+
+rfileio.d prints file system statistics by file,
+
+   # ./rfileio.d
+   
+   Read IOPS, top 20 (count)
+   /lib/ld.so.1                                              logical          2
+   /devices/pseudo/clone@0:ptm                               logical          4
+   /usr/bin/grep                                             logical          4
+   /devices/pseudo/pts@0:3                                   logical          4
+   /extra1/contents                                         physical       1700
+   /extra1/contents                                          logical      11582
+   
+   Read Bandwidth, top 20 (bytes)
+   /devices/pseudo/pts@0:3                                   logical          3
+   /devices/pseudo/clone@0:ptm                               logical         92
+   /lib/ld.so.1                                              logical        212
+   /usr/bin/grep                                             logical        269
+   /extra1/contents                                         physical   48115712
+   /extra1/contents                                          logical   94865162
+   
+   Total File System miss-rate: 50%
+   ^C
+
+   $ ls -l /extra1/contents
+   -rw-r--r--   1 root     root     94865162 Nov  2 21:08 /extra1/contents
+
+The /extra1/contents file was read using the grep command. The output shows
+that half of the contents was returned from the cache, the other half from disk
+(50% miss-rate). It is 94,865,162 bytes in size, which can be seen both in
+the ls -l output and the logical read() bytes reported by rfileio.d. There
+were 11,582 logical read() calls, which the disk driver satisfied by using
+1,700 disk events (aggregation).
+
+
+
+The following demonstrates many files being read. 
+
+   # ./rfileio.d
+   
+   Read IOPS, top 20 (count)
+   /usr/bin/amd64/glib-mkenums                               logical          4
+   /usr/bin/amd64/glib-genmarshal                           physical          4
+   /usr/bin/amd64/gdk-pixbuf-query-loaders                   logical          4
+   /usr/bin/amd64/ls                                         logical          5
+   /usr/bin/amd64/pargs                                      logical          5
+   /usr/bin/amd64/ps                                         logical          5
+   /usr/bin/amd64/gconf-merge-tree                          physical          6
+   /usr/bin/amd64/cputrack                                   logical          6
+   /usr/bin/amd64/gconftool-2                               physical          6
+   /usr/bin/amd64/prctl                                      logical          6
+   /usr/bin/amd64/prstat                                     logical          6
+   /usr/bin/amd64/glib-genmarshal                            logical          7
+   /usr/bin/amd64/truss                                     physical          8
+   /usr/bin/amd64/sort                                       logical          9
+   /usr/bin/amd64/prex                                       logical         10
+   /usr/bin/amd64/gconf-merge-tree                           logical         13
+   /usr/bin/amd64/mdb                                       physical         15
+   /usr/bin/amd64/gconftool-2                                logical         15
+   /usr/bin/amd64/truss                                      logical         26
+   /usr/bin/amd64/mdb                                        logical         63
+   
+   Read Bandwidth, top 20 (bytes)
+   /usr/bin/amd64/prctl                                      logical      36784
+   /usr/bin/amd64/prctl                                     physical      36864
+   /usr/bin/amd64/prstat                                     logical      44760
+   /usr/bin/amd64/prstat                                    physical      45056
+   /usr/bin/amd64/glib-genmarshal                            logical      46064
+   /usr/bin/amd64/glib-genmarshal                           physical      46080
+   /usr/bin/amd64/cputrack                                   logical      46912
+   /usr/bin/amd64/cputrack                                  physical      47104
+   /usr/bin/amd64/sort                                       logical      65120
+   /usr/bin/amd64/sort                                      physical      65536
+   /usr/bin/amd64/prex                                       logical      80968
+   /usr/bin/amd64/prex                                      physical      81920
+   /usr/bin/amd64/gconf-merge-tree                           logical     113592
+   /usr/bin/amd64/gconf-merge-tree                          physical     122880
+   /usr/bin/amd64/gconftool-2                                logical     129208
+   /usr/bin/amd64/gconftool-2                               physical     139264
+   /usr/bin/amd64/truss                                      logical     246360
+   /usr/bin/amd64/truss                                     physical     262144
+   /usr/bin/amd64/mdb                                        logical     627456
+   /usr/bin/amd64/mdb                                       physical     638976
+   
+   Total File System miss-rate: 81%
+   ^C
+
+The miss-rate was 81%, meaning we are returning around 20% of the data from
+the cache. Details for the top 20 files read by-bytes and by-count are listed;
+this shows the /usr/bin/amd64/mdb file was read() 63 times, causing 15 disk
+reads, and while 627,456 bytes were requested, 638,976 bytes were read from 
+disk (the extra bytes are due to read-ahead and file system metadata).
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rfsio_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rfsio_example.txt
new file mode 100644
index 0000000..858ddf8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rfsio_example.txt
@@ -0,0 +1,82 @@
+The following are demonstrations of the rfsio.d script.
+
+
+
+Here we trace file read() activity that has fully missed the cache and 
+must be read from disk,
+
+   # ./rfsio.d
+   
+   Read IOPS (count)
+   /                                   logical          7
+   /extra1                            physical        162
+   /boot                               logical        235
+   /boot                              physical        410
+   /extra1                             logical       9514
+   
+   Read Bandwidth (bytes)
+   /                                   logical        533
+   /boot                               logical    1502386
+   /boot                              physical    1512960
+   /extra1                            physical   97153024
+   /extra1                             logical   97228668
+   
+   Total File System miss-rate: 100%
+   ^C
+
+The miss rate of 100% means that all of the file system activity missed
+the cache, and had to read from disk.
+
+
+
+The following demonstrates file read() activity to the root filesystem
+that mostly returned from the file system cache.
+
+   # ./rfsio.d
+   
+   Read IOPS (count)
+   /                                  physical          1
+   /extra1                            physical          9
+   /devices                            logical          9
+   /                                   logical         15
+   /extra1                             logical       4096
+   
+   Read Bandwidth (bytes)
+   /devices                            logical          9
+   /                                   logical        949
+   /                                  physical       8192
+   /extra1                            physical     917504
+   /extra1                             logical    4194304
+   
+   Total File System miss-rate: 22%
+   ^C
+
+The total miss-rate was 22%, which is based on the bytes transferred that
+missed the cache.
+
+
+
+
+Now for an unusual demonstration,
+
+   # ./rfsio.d
+   
+   Read IOPS (count)
+   /devices                            logical          1
+   /                                   logical         10
+   /extra1                            physical        106
+   /extra1                             logical       6337
+   
+   Read Bandwidth (bytes)
+   /devices                            logical          2
+   /                                   logical        961
+   /extra1                             logical   64846450
+   /extra1                            physical   66151424
+   
+   Total File System miss-rate: 102%
+   ^C
+
+Here the miss-rate is 102%, which indicates that more data was read from 
+disk than was requested; this can occur due to UFS read-ahead, which
+assists the performance of sequential disk activity at the small risk of
+reading too much data.  
diff --git a/external/cddl/dtracetoolkit/dist/Examples/runocc_example.txt b/external/cddl/dtracetoolkit/dist/Examples/runocc_example.txt
new file mode 100644
index 0000000..53dcb5f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/runocc_example.txt
@@ -0,0 +1,53 @@
+The following are demonstrations of the runocc.d script.
+
+
+
+Here we run it on a single CPU server that is fairly busy,
+
+   # ./runocc.d
+   
+        CPU  %runocc
+          0       86
+   
+        CPU  %runocc
+          0       85
+   
+        CPU  %runocc
+          0       82
+   ^C
+
+The run queue occupancy is around 85%, meaning most of the time there
+are runnable threads queued waiting for CPU.
+
+
+
+This script is more interesting on a multi-CPU server,
+
+   # ./runocc.d
+   
+        CPU  %runocc
+          1       16
+          3       27
+          0       38
+          2       75
+   
+        CPU  %runocc
+          0       25
+          2       41
+          3       42
+          1       50
+   
+        CPU  %runocc
+          3        1
+          0       17
+          2       26
+          1       27
+   
+        CPU  %runocc
+          3        2
+          2        5
+          0       24
+          1       25
+   ^C
+
+Here there was some degree of saturation, especially on CPU 2 to start with.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rwbbypid_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rwbbypid_example.txt
new file mode 100644
index 0000000..9091adf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rwbbypid_example.txt
@@ -0,0 +1,26 @@
+The following is a demonstration of the rwbbypid.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+   # rwbbypid.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD                       DIR            BYTES
+    20347 bash                        R               22
+    11053 dtrace                      W               32
+     1532 Xorg                        W               64
+    20317 sshd                        R               86
+    20347 bash                        W               87
+    20317 sshd                        W              137
+     1659 mozilla-bin                 R              213
+    20334 sshd                        R             1232
+    20334 sshd                        W             1282
+    11054 cp                          W            18652
+    11054 cp                          R            18652
+     1532 Xorg                        R            51112
+     1659 mozilla-bin                 W            51261
+
+In the above output, we can see that mozilla-bin with PID 1659 has written
+51261 bytes, while Xorg has read 51112 bytes.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rwbypid_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rwbypid_example.txt
new file mode 100644
index 0000000..0c8559b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rwbypid_example.txt
@@ -0,0 +1,19 @@
+The following is a demonstration of the rwbypid.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+   # rwbypid.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD                       DIR    COUNT
+    11131 dtrace                      W        2
+    20334 sshd                        W       17
+    20334 sshd                        R       24
+     1532 Xorg                        W       69
+     1659 mozilla-bin                 R      852
+     1659 mozilla-bin                 W     1128
+     1532 Xorg                        R     1702
+
+In the above output, we can see that Xorg with PID 1532 has made 1702 reads.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rwbytype_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rwbytype_example.txt
new file mode 100644
index 0000000..118cf16
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rwbytype_example.txt
@@ -0,0 +1,37 @@
+The following is an example fo the rwbytype.d script.
+
+
+We run rwbytype.d for a few seconds then hit Ctrl-C,
+
+   # rwbytype.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   PID    CMD               VTYPE  DIR     BYTES
+   1545   sshd                chr    W         1
+   10357  more                chr    R        30
+   2357   sshd                chr    W        31
+   10354  dtrace              chr    W        32
+   1545   sshd                chr    R        34
+   6778   bash                chr    W        44
+   1545   sshd               sock    R        52
+   405    poold               reg    W        68
+   1545   sshd               sock    W       136
+   10357  bash                reg    R       481
+   10356  find                reg    R       481
+   10355  bash                reg    R       481
+   10357  more                reg    R      1652
+   2357   sshd               sock    R      1664
+   10357  more                chr    W     96925
+   10357  more               fifo    R     97280
+   2357   sshd                chr    R     98686
+   10356  grep               fifo    W    117760
+   2357   sshd               sock    W    118972
+   10356  grep                reg    R    147645
+
+Here we can see that the grep process with PID 10356 read 147645 bytes
+from "regular" files. These are I/O bytes at the application level, so
+much of these read bytes would have been cached by the filesystem page cache.
+
+vnode file types are listed in /usr/include/sys/vnode.h, and give an idea of
+what the file descriptor refers to.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rwsnoop_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rwsnoop_example.txt
new file mode 100644
index 0000000..2ef26ab
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rwsnoop_example.txt
@@ -0,0 +1,98 @@
+The following is a demonstration of the rwsnoop program,
+
+
+Here we run it for about a second,
+
+   # rwsnoop
+     UID    PID CMD          D   BYTES FILE
+     100  20334 sshd         R      52 <unknown>
+     100  20334 sshd         W       1 /devices/pseudo/clone@0:ptm
+       0  20320 bash         W       1 /devices/pseudo/pts@0:12
+     100  20334 sshd         R       2 /devices/pseudo/clone@0:ptm
+     100  20334 sshd         W      52 <unknown>
+       0   2848 ls           W      58 /devices/pseudo/pts@0:12
+       0   2848 ls           W      68 /devices/pseudo/pts@0:12
+       0   2848 ls           W      57 /devices/pseudo/pts@0:12
+       0   2848 ls           W      67 /devices/pseudo/pts@0:12
+       0   2848 ls           W      48 /devices/pseudo/pts@0:12
+       0   2848 ls           W      49 /devices/pseudo/pts@0:12
+       0   2848 ls           W      33 /devices/pseudo/pts@0:12
+       0   2848 ls           W      41 /devices/pseudo/pts@0:12
+     100  20334 sshd         R     429 /devices/pseudo/clone@0:ptm
+     100  20334 sshd         W     468 <unknown>
+   ^C
+
+The output scrolls rather fast. Above, we can see an ls command was run,
+and we can see as ls writes each line. The "<unknown>" read/writes are 
+socket activity, which have no corresponding filename.
+
+
+For a summary style output, use the rwtop program.
+
+
+
+If a particular program is of interest, the "-n" option can be used
+to match on process name. Here we match on "bash" during a login where
+the user uses the bash shell as their default,
+
+   # rwsnoop -n bash
+     UID    PID CMD          D   BYTES FILE
+     100   2854 bash         R     757 /etc/nsswitch.conf
+     100   2854 bash         R       0 /etc/nsswitch.conf
+     100   2854 bash         R     668 /etc/passwd
+     100   2854 bash         R     980 /etc/profile
+     100   2854 bash         W      15 /devices/pseudo/pts@0:14
+     100   2854 bash         R      10 /export/home/brendan/.bash_profile
+     100   2854 bash         R     867 /export/home/brendan/.bashrc
+     100   2854 bash         R     980 /etc/profile
+     100   2854 bash         W      15 /devices/pseudo/pts@0:14
+     100   2854 bash         R    8951 /export/home/brendan/.bash_history
+     100   2854 bash         R    8951 /export/home/brendan/.bash_history
+     100   2854 bash         R    1652 /usr/share/lib/terminfo/d/dtterm
+     100   2854 bash         W      41 /devices/pseudo/pts@0:14
+     100   2854 bash         R       1 /devices/pseudo/pts@0:14
+     100   2854 bash         W       1 /devices/pseudo/pts@0:14
+     100   2854 bash         W      41 /devices/pseudo/pts@0:14
+     100   2854 bash         R       1 /devices/pseudo/pts@0:14
+     100   2854 bash         W       7 /devices/pseudo/pts@0:14
+
+In the above, various bash related files such as ".bash_profile" and
+".bash_history" can be seen. The ".bashrc" is also read, as it was sourced
+from the .bash_profile.
+
+
+
+Extra options with rwsnoop allow us to print zone ID, project ID, timestamps,
+etc. Here we use "-v" to see the time printed, and match on "ps" processes,
+
+   # rwsnoop -vn ps
+   TIMESTR                UID    PID CMD          D   BYTES FILE
+   2005 Jul 24 04:23:45     0   2804 ps           R     168 /proc/2804/auxv
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/2804/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R    1495 /etc/ttysrch
+   2005 Jul 24 04:23:45     0   2804 ps           W      28 /devices/pseudo/pts.
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/0/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/1/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/2/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/3/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/218/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/7/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/9/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/360/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/91/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/112/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/307/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/226/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/242/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/228/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/243/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/234/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/119/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/143/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/361/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/20314/psinfo
+   2005 Jul 24 04:23:45     0   2804 ps           R     336 /proc/116/psinfo
+   [...]
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/rwtop_example.txt b/external/cddl/dtracetoolkit/dist/Examples/rwtop_example.txt
new file mode 100644
index 0000000..7284312
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/rwtop_example.txt
@@ -0,0 +1,59 @@
+The following is a demonstration of the rwtop program,
+
+
+By default it will refresh the screen every 5 seconds,
+
+   # rwtop
+   2005 Jul 24 01:00:43,  load: 1.02,  app_r:      8 KB,  app_w:     19 KB
+   
+     UID    PID   PPID CMD              D            BYTES
+       0  20320  20347 bash             R               10
+       0  20320  20347 bash             W               95
+     100  20317  20314 sshd             R              650
+     100  20317  20314 sshd             W              733
+       0   2365  20320 ls               W             1300
+       0   2364  20320 vi               R             2323
+       0   2365  20320 ls               R             2485
+     100  20334  20331 sshd             R             3010
+     100  20334  20331 sshd             W             3729
+       0   2364  20320 vi               W            14128
+
+In the above output, we can see that a "vi" process wrote 14 Kbytes and
+read 2 Kbytes. 
+
+
+
+In the following example, we print the top 5 processes in a scrolling
+output by using "-C" to not clear the screen,
+
+   # rwtop -C -t5
+   Tracing... Please wait.
+   2005 Jul 24 01:03:27,  load: 1.05,  app_r:    261 KB,  app_w:    348 KB
+   
+     UID    PID   PPID CMD              D            BYTES
+       0   2381  20320 svcs             W             5801
+       0      9      1 svc.configd      R           115712
+       0   2380  20320 find             W           140003
+     100  20334  20331 sshd             R           150740
+     100  20334  20331 sshd             W           210773
+   
+   2005 Jul 24 01:03:32,  load: 1.07,  app_r:    110 KB,  app_w:    233 KB
+   
+     UID    PID   PPID CMD              D            BYTES
+     100  20317  20314 sshd             R              419
+     100  20317  20314 sshd             W              468
+       0   2382  20320 find             W           110720
+     100  20334  20331 sshd             R           112835
+     100  20334  20331 sshd             W           128175
+   
+   2005 Jul 24 01:03:37,  load: 1.07,  app_r:      6 KB,  app_w:      7 KB
+   
+     UID    PID   PPID CMD              D            BYTES
+       0   2383  20320 df               W             1154
+       0   2385  20320 ls               W             1300
+       0   2385  20320 ls               R             2485
+     100  20334  20331 sshd             R             3929
+     100  20334  20331 sshd             W             4339
+   
+   ^C
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sampleproc_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sampleproc_example.txt
new file mode 100644
index 0000000..d60d446
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sampleproc_example.txt
@@ -0,0 +1,62 @@
+The following is an example of the sampleproc program.
+
+
+Here we run sampleproc for a few seconds on a workstation,
+
+   # ./sampleproc
+   Sampling at 100 hertz... Hit Ctrl-C to end.
+   ^C
+     PID CMD                       COUNT
+    1659 mozilla-bin                   3
+     109 nscd                          4
+    2197 prstat                       23
+    2190 setiathome                  421
+   
+     PID CMD                     PERCENT
+    1659 mozilla-bin                   0
+     109 nscd                          0
+    2197 prstat                        5
+    2190 setiathome                   93
+
+The first table shows a count of how many times each process was sampled
+on the CPU. The second table gives this as a percentage. 
+
+setiathome was on the CPU 421 times, which is 93% of the samples.
+
+
+
+
+The following is sampleproc running on a server with 4 CPUs. A bash shell
+is running in an infinate loop,
+
+   # ./sampleproc
+   Sampling at 100 hertz... Hit Ctrl-C to end.
+   ^C
+     PID CMD                       COUNT
+   10140 dtrace                        1
+   28286 java                          1
+   29345 esd                           2
+   29731 esd                           3
+       2 pageout                       4
+   29733 esd                           6
+   10098 bash                       1015
+       0 sched                      3028
+   
+     PID CMD                     PERCENT
+   10140 dtrace                        0
+   28286 java                          0
+   29345 esd                           0
+   29731 esd                           0
+       2 pageout                       0
+   29733 esd                           0
+   10098 bash                         24
+       0 sched                        74
+
+The bash shell was on the CPUs for 24% of the time, which is consistant 
+with a CPU bound single threaded application on a 4 CPU server.
+
+The above sample was around 10 seconds long. During this time, there were
+around 4000 samples (checking the COUNT column), this is due to
+4000 = CPUs (4) * Hertz (100) * Seconds (10).
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sar-c_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sar-c_example.txt
new file mode 100644
index 0000000..7669eba
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sar-c_example.txt
@@ -0,0 +1,55 @@
+The following is a demonstration of the sar-c.d script.
+
+
+Here we run both sar-c.d and "sar -c 1 100" at the same time, to compare
+outputs.
+
+The DTrace script,
+
+ # ./sar-c.d
+ Time                 scall/s sread/s swrit/s  fork/s  exec/s  rchar/s  wchar/s
+ 2005 Jun 14 02:40:24    1556      82      71    0.00    0.00    10262    10508
+ 2005 Jun 14 02:40:25    1553      88      75    0.00    0.00    15095    15341
+ 2005 Jun 14 02:40:26    1596      89      76    0.00    0.00    14885    15131
+ 2005 Jun 14 02:40:27    5395     290     154    9.00   10.00   185991    77219
+ 2005 Jun 14 02:40:28    1755      91      98    1.00    1.00    15421    16788
+ 2005 Jun 14 02:40:29    1757     100      91    1.00    1.00    17127    17462
+ 2005 Jun 14 02:40:30    1603      95      80    0.00    0.00    16767    16634
+ 2005 Jun 14 02:40:31   14380      83    2420    1.00    1.00    14556   126461
+ 2005 Jun 14 02:40:32   10573      88    1586    0.00    0.00    14222    87888
+ 2005 Jun 14 02:40:33    1645      87      76    0.00    0.00    15320    15608
+ 2005 Jun 14 02:40:34    2099     167     130    0.00    0.00   126295    74281
+ 2005 Jun 14 02:40:35    1559      79      67    0.00    0.00    11663    11977
+ [...]
+
+The original command,
+
+ $ sar -c 1 100
+ 
+ SunOS jupiter 5.10 Generic i86pc    06/14/2005
+ 
+ 02:40:23 scall/s sread/s swrit/s  fork/s  exec/s rchar/s wchar/s
+ 02:40:24    1549      86      74    0.00    0.00   14799   15040
+ 02:40:25    1552      85      73    0.00    0.00   14475   14719
+ 02:40:26    5479     300     161    9.00   10.00  186755   77983
+ 02:40:27    1725      86      94    0.99    0.99   14819   16172
+ 02:40:28    1596      96      82    0.00    0.00   16521   16762
+ 02:40:29    1716      93      85    1.00    1.00   16395   16730
+ 02:40:30    1579      88      75    0.00    0.00   15324   15192
+ 02:40:32   23036      79    3887    0.99    0.99   10113  193520
+ 02:40:33    1756      94      83    0.00    0.00   14935   15300
+ 02:40:34    2099     165     130    0.00    0.00  125051   73552
+ 02:40:35    1560      82      69    0.00    0.00   15976   16287
+ [...]
+
+We can see that both tools are producing similar data.
+
+The DTrace output lacks the "summary since boot" line, as it is not using
+Kstat to fetch this data.
+
+
+The sar-c.d script is not intended itself as a useful program, rather it
+is intended as a starting point for other DTrace scripts; a starting point
+of familiar statistics to provide the programmer with a "common ground"
+of knowledge.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/seeksize_example.txt b/external/cddl/dtracetoolkit/dist/Examples/seeksize_example.txt
new file mode 100644
index 0000000..ba41a87
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/seeksize_example.txt
@@ -0,0 +1,197 @@
+The following are examples of seeksize.d.
+
+seeksize.d records disk head seek size for each operation by process.
+This allows up to identify processes that are causing "random" disk
+access and those causing "sequential" disk access.
+
+It is desirable for processes to be accesing the disks in large 
+sequential operations. By using seeksize.d and bitesize.d we can
+identify this behaviour.
+
+
+
+In this example we read through a large file by copying it to a 
+remote server. Most of the seek sizes are zero, indicating sequential
+access - and we would expect good performance from the disks
+under these conditions,
+
+# ./seeksize.d 
+Tracing... Hit Ctrl-C to end.
+^C
+
+   22349  scp /dl/sol-10-b63-x86-v1.iso mars:\0
+
+           value  ------------- Distribution ------------- count    
+              -1 |                                         0        
+               0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   726      
+               1 |                                         0        
+               2 |                                         0        
+               4 |                                         0        
+               8 |@                                        13       
+              16 |                                         4        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         2        
+             256 |                                         3        
+             512 |                                         4        
+            1024 |                                         4        
+            2048 |                                         3        
+            4096 |                                         0        
+            8192 |                                         3        
+           16384 |                                         0        
+           32768 |                                         1        
+           65536 |                                         0        
+
+
+
+In this example we run find. The disk operations are fairly scattered,
+as illustrated below by the volume of non sequential reads,
+
+# ./seeksize.d 
+Tracing... Hit Ctrl-C to end.
+^C
+
+   22399  find /var/sadm/pkg/\0
+
+           value  ------------- Distribution ------------- count    
+              -1 |                                         0        
+               0 |@@@@@@@@@@@@@                            1475     
+               1 |                                         0        
+               2 |                                         44       
+               4 |@                                        77       
+               8 |@@@                                      286      
+              16 |@@                                       191      
+              32 |@                                        154      
+              64 |@@                                       173      
+             128 |@@                                       179      
+             256 |@@                                       201      
+             512 |@@                                       186      
+            1024 |@@                                       236      
+            2048 |@@                                       201      
+            4096 |@@                                       274      
+            8192 |@@                                       243      
+           16384 |@                                        154      
+           32768 |@                                        113      
+           65536 |@@                                       182      
+          131072 |@                                        81       
+          262144 |                                         0   
+
+
+
+
+I found the following interesting. This time I gzipp'd the large file.
+While zipping, the process is reading from one location and writing
+to another. One might expect that as the program toggles between
+reading from one location and writing to another, that often the
+distance would be the same (depending on where UFS puts the new file),
+ 
+# ./seeksize.d 
+Tracing... Hit Ctrl-C to end.
+^C
+
+   22368  gzip sol-10-b63-x86-v1.iso\0
+
+           value  ------------- Distribution ------------- count    
+              -1 |                                         0        
+               0 |@@@@@@@@@@@@                             353      
+               1 |                                         0        
+               2 |                                         0        
+               4 |                                         0        
+               8 |                                         7        
+              16 |                                         4        
+              32 |                                         2        
+              64 |                                         4        
+             128 |                                         14       
+             256 |                                         3        
+             512 |                                         3        
+            1024 |                                         5        
+            2048 |                                         1        
+            4096 |                                         0        
+            8192 |                                         3        
+           16384 |                                         1        
+           32768 |                                         1        
+           65536 |                                         1        
+          131072 |                                         1        
+          262144 |@@@@@@@@                                 249      
+          524288 |                                         1        
+         1048576 |                                         2        
+         2097152 |                                         1        
+         4194304 |                                         2        
+         8388608 |@@@@@@@@@@@@@@@@@@                       536      
+        16777216 |                                         0   
+
+
+
+
+The following example compares the operation of "find" with "tar".
+Both are reading from the same location, and we would expect that
+both programs would generally need to do the same number of seeks
+to navigate the direttory tree (depending on caching); and tar
+causing extra operations as it reads the file contents as well,
+
+# ./seeksize.d 
+Tracing... Hit Ctrl-C to end.
+^C
+
+     PID  CMD
+   22278  find /etc\0
+
+           value  ------------- Distribution ------------- count    
+              -1 |                                         0        
+               0 |@@@@@@@@@@@@@@@@@@@@                     251      
+               1 |                                         0        
+               2 |@                                        8        
+               4 |                                         5        
+               8 |@                                        10       
+              16 |@                                        10       
+              32 |@                                        10       
+              64 |@                                        9        
+             128 |@                                        11       
+             256 |@                                        14       
+             512 |@@                                       20       
+            1024 |@                                        10       
+            2048 |                                         6        
+            4096 |@                                        7        
+            8192 |@                                        10       
+           16384 |@                                        16       
+           32768 |@@                                       21       
+           65536 |@@                                       28       
+          131072 |@                                        7        
+          262144 |@                                        14       
+          524288 |                                         6        
+         1048576 |@                                        15       
+         2097152 |@                                        7        
+         4194304 |                                         0        
+
+
+   22282  tar cf /dev/null /etc\0
+
+           value  ------------- Distribution ------------- count    
+              -1 |                                         0        
+               0 |@@@@@@@@@@                               397      
+               1 |                                         0        
+               2 |                                         8        
+               4 |                                         14       
+               8 |                                         16       
+              16 |@                                        24       
+              32 |@                                        29       
+              64 |@@                                       99       
+             128 |@@                                       73       
+             256 |@@                                       78       
+             512 |@@@                                      109      
+            1024 |@@                                       62       
+            2048 |@@                                       69       
+            4096 |@@                                       73       
+            8192 |@@@                                      113      
+           16384 |@@                                       81       
+           32768 |@@@                                      111      
+           65536 |@@@                                      108      
+          131072 |@                                        49       
+          262144 |@                                        33       
+          524288 |                                         20       
+         1048576 |                                         13       
+         2097152 |                                         7        
+         4194304 |                                         5        
+         8388608 |@                                        30       
+        16777216 |                                         0  
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/setuids_example.txt b/external/cddl/dtracetoolkit/dist/Examples/setuids_example.txt
new file mode 100644
index 0000000..be197bf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/setuids_example.txt
@@ -0,0 +1,28 @@
+The following is an example of setuids.d. Login events in particular can
+be seen, along with use of the "su" command.
+
+   # ./setuids.d 
+     UID  SUID  PPID   PID PCMD         CMD
+       0   100  3037  3040 in.telnetd   login -p -h mars -d /dev/pts/12
+     100     0  3040  3045 bash         su -
+       0   102  3045  3051 sh           su - fred
+       0   100  3055  3059 sshd         /usr/lib/ssh/sshd
+       0   100  3065  3067 in.rlogind   login -d /dev/pts/12 -r mars
+       0   100  3071  3073 in.rlogind   login -d /dev/pts/12 -r mars
+       0   102  3078  3081 in.telnetd   login -p -h mars -d /dev/pts/12
+   ^C
+
+The first line is a telnet login to the user brendan, UID 100. The parent
+command is "in.telnetd", the telnet daemon spawned by inetd, and the 
+command that in.telnetd runs is "login".
+
+The second line shows UID 100 using the "su" command to become root.
+
+The third line has the root user using "su" to become fred, UID 102.
+
+The fourth line is an example of an ssh login.
+
+The fifth and sixth lines are examples of rsh and rlogin.
+
+The last line is another example of a telnet login for fred, UID 102.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sh_calldist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sh_calldist_example.txt
new file mode 100644
index 0000000..6c6a01f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sh_calldist_example.txt
@@ -0,0 +1,309 @@
+The following are examples of sh_calldist.d.
+
+This script traces the elapsed time of Bourne shell functions and
+prints a report containing distribution plots per function. Here it
+traces the example program, Code/Shell/func_abc.sh.
+
+   # sh_calldist.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   Elapsed times (us),
+   
+      func_abc.sh, builtin, echo 
+              value  ------------- Distribution ------------- count    
+                  8 |                                         0        
+                 16 |@@@@@@@@@@@@@                            1        
+                 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+                 64 |                                         0        
+   
+      func_abc.sh, cmd, sleep 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+            1048576 |                                         0        
+   
+   Exclusive function elapsed times (us),
+   
+      func_abc.sh, func, func_a 
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4096 |                                         0        
+   
+      func_abc.sh, func, func_b 
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4096 |                                         0        
+   
+      func_abc.sh, func, func_c 
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4096 |                                         0        
+   
+   Inclusive function elapsed times (us),
+   
+      func_abc.sh, func, func_c 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+      func_abc.sh, func, func_b 
+              value  ------------- Distribution ------------- count    
+             524288 |                                         0        
+            1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2097152 |                                         0        
+   
+      func_abc.sh, func, func_a 
+              value  ------------- Distribution ------------- count    
+            1048576 |                                         0        
+            2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4194304 |                                         0        
+
+The elapsed times show that the echo builtin takes between 16 and 64 us
+to execute.
+
+The exclusive function elapsed times show that each function spent
+between 2 and 4 ms. This exclusive time excludes the time spent in
+other functions.
+
+The inclusive function elapsed times show that func_c() took between 0.5 and
+1.0 seconds, func_b() took between 1.0 and 2.1 seconds, and func_a() took
+between 2.1 and 4.2 seconds to execute. This inclusive time includes the
+time spent in other functions and commands called, and since func_a()
+calls func_b() which calls func_c(), and, each function is calling "sleep 1",
+these times make sense.
+
+These elapsed times are the absolute time from when the function began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
+Elapsed times are useful for identifying where latencies are.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive function time.
+
+
+
+The following traces the firefox startup script.
+
+# sh_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Elapsed times (us),
+
+   run-mozilla.sh, builtin, return 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   run-mozilla.sh, builtin, shift 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               2 |                                         0        
+
+   run-mozilla.sh, builtin, break 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               4 |                                         0        
+
+   firefox, builtin, break 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+               8 |                                         0        
+
+   run-mozilla.sh, builtin, export 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@                            1        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |                                         0        
+
+   firefox, builtin, export 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+               4 |@@@@@@@@@@@@@                            1        
+               8 |                                         0        
+
+   firefox, builtin, : 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@        5        
+               2 |                                         0        
+               4 |@@@@@@@                                  1        
+               8 |                                         0        
+
+   firefox, builtin, pwd 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   firefox, builtin, test 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   firefox, builtin, cd 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@                            1        
+              16 |@@@@@@@@@@@@@                            1        
+              32 |@@@@@@@@@@@@@                            1        
+              64 |                                         0        
+
+   firefox, builtin, [ 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@                                  3        
+               2 |@@                                       1        
+               4 |@@                                       1        
+               8 |@@@@@@@                                  3        
+              16 |@@@@@@@@@@@                              5        
+              32 |@@@@@@@                                  3        
+              64 |@@@@                                     2        
+             128 |                                         0        
+
+   run-mozilla.sh, builtin, type 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   run-mozilla.sh, builtin, [ 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@                                 4        
+               2 |@@@@@@@@@@                               5        
+               4 |@@@@                                     2        
+               8 |@@@@@@                                   3        
+              16 |@@@@@@@@@@                               5        
+              32 |                                         0        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@                                       1        
+            4096 |                                         0        
+
+   firefox, builtin, echo 
+           value  ------------- Distribution ------------- count    
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@@@@@@@@                     1        
+             256 |                                         0        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@                     1        
+            4096 |                                         0        
+
+   firefox, cmd, /usr/lib/firefox/run-mozilla.sh 
+           value  ------------- Distribution ------------- count    
+         2097152 |                                         0        
+         4194304 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         8388608 |                                         0        
+
+   run-mozilla.sh, cmd, /usr/lib/firefox/firefox-bin 
+           value  ------------- Distribution ------------- count    
+         2097152 |                                         0        
+         4194304 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         8388608 |                                         0        
+
+Exclusive function elapsed times (us),
+
+   run-mozilla.sh, func, moz_test_binary 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+              64 |                                         0        
+
+   firefox, func, moz_spc_verbose_echo 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@                            2        
+               8 |@@@@@@@@@@@@@                            2        
+              16 |@@@@@@@@@@@@@                            2        
+              32 |                                         0        
+
+   firefox, func, moz_pis_startstop_scripts 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@                     1        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@                     1        
+           65536 |                                         0        
+
+   run-mozilla.sh, func, moz_run_program 
+           value  ------------- Distribution ------------- count    
+           65536 |                                         0        
+          131072 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+          262144 |                                         0        
+
+Inclusive function elapsed times (us),
+
+   firefox, func, moz_spc_verbose_echo 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              4        
+              16 |@@@@@@@@@@@@@                            2        
+              32 |                                         0        
+
+   run-mozilla.sh, func, moz_test_binary 
+           value  ------------- Distribution ------------- count    
+              32 |                                         0        
+              64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             128 |                                         0        
+
+   firefox, func, moz_pis_startstop_scripts 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@                     1        
+             512 |                                         0        
+            1024 |                                         0        
+            2048 |                                         0        
+            4096 |                                         0        
+            8192 |                                         0        
+           16384 |                                         0        
+           32768 |@@@@@@@@@@@@@@@@@@@@                     1        
+           65536 |                                         0        
+
+   run-mozilla.sh, func, moz_run_program 
+           value  ------------- Distribution ------------- count    
+         2097152 |                                         0        
+         4194304 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         8388608 |                                         0        
+
+
+As an example of interpreting the output: the inclusive elapsed time for
+the "[" (test) builtin,
+
+   firefox, builtin, [ 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@                                  3        
+               2 |@@                                       1        
+               4 |@@                                       1        
+               8 |@@@@@@@                                  3        
+              16 |@@@@@@@@@@@                              5        
+              32 |@@@@@@@                                  3        
+              64 |@@@@                                     2        
+             128 |                                         0        
+
+shows that it was called 17 times (after adding up the counts), 5 of which
+took between 16 and 31 microseconds.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sh_calls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sh_calls_example.txt
new file mode 100644
index 0000000..064cf97
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sh_calls_example.txt
@@ -0,0 +1,60 @@
+The following are examples of sh_calls.d.
+
+This is a simple script to count Bourne shell calls. Here it traces an
+example program, Code/Perl/func_abc.sh.
+
+   # sh_calls.d 
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    FILE                   TYPE       NAME                                COUNT
+    func_abc.sh            func       func_a                                  1
+    func_abc.sh            func       func_b                                  1
+    func_abc.sh            func       func_c                                  1
+    func_abc.sh            builtin    echo                                    3
+    func_abc.sh            cmd        sleep                                   3
+
+While tracing, function func_a() from the program "func_abc.sh" was executed
+once, along with func_b() and func_c(). The "echo" builtin was called 3
+times, as was the "sleep" command.
+
+
+The following traced the firefox start script,
+
+   # sh_calls.d 
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    FILE                   TYPE       NAME                                COUNT
+    firefox                builtin    .                                       1
+    firefox                builtin    break                                   1
+    firefox                builtin    exit                                    1
+    firefox                builtin    pwd                                     1
+    firefox                builtin    test                                    1
+    firefox                cmd        /usr/lib/firefox/run-mozilla.sh         1
+    run-mozilla.sh         builtin    break                                   1
+    run-mozilla.sh         builtin    exit                                    1
+    run-mozilla.sh         builtin    return                                  1
+    run-mozilla.sh         builtin    shift                                   1
+    run-mozilla.sh         builtin    type                                    1
+    run-mozilla.sh         cmd        /usr/lib/firefox/firefox-bin            1
+    run-mozilla.sh         func       moz_run_program                         1
+    run-mozilla.sh         func       moz_test_binary                         1
+    firefox                builtin    echo                                    2
+    firefox                func       moz_pis_startstop_scripts               2
+    firefox                builtin    cd                                      3
+    firefox                builtin    export                                  3
+    run-mozilla.sh         builtin    export                                  3
+    firefox                builtin    :                                       6
+    firefox                func       moz_spc_verbose_echo                    6
+    run-mozilla.sh         subsh      -                                       9
+    firefox                builtin    [                                      18
+    firefox                subsh      -                                      20
+    run-mozilla.sh         builtin    [                                      20
+
+The firefox start script called run-mozilla.sh, which can be seen both
+as a "cmd" call in the above output from the "firefox" script, and as
+additionall calls from the "run-mozilla.sh" script.
+
+The builtin called "[" is the test builtin, and was called 20 times by
+"run-mozilla.sh" and 18 times by "firefox". The "firefox" script also called
+20 subshells.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sh_calltime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sh_calltime_example.txt
new file mode 100644
index 0000000..5c39ae4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sh_calltime_example.txt
@@ -0,0 +1,144 @@
+The following are examples of sh_calltime.d.
+
+This script traces the elapsed time of Bourne shell functions and
+prints a report. Here it traces the example program, Code/Shell/func_abc.sh.
+
+   # sh_calltime.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   Counts,
+      FILE                 TYPE       NAME                                COUNT
+      func_abc.sh          func       func_a                                  1
+      func_abc.sh          func       func_b                                  1
+      func_abc.sh          func       func_c                                  1
+      func_abc.sh          builtin    echo                                    3
+      func_abc.sh          cmd        sleep                                   3
+      -                    total      -                                       9
+   
+   Elapsed times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_abc.sh          builtin    echo                                  108
+      func_abc.sh          cmd        sleep                             3023760
+      -                    total      -                                 3023868
+   
+   Exclusive function elapsed times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_abc.sh          func       func_b                               2629
+      func_abc.sh          func       func_c                               2822
+      func_abc.sh          func       func_a                               3249
+      -                    total      -                                    8702
+   
+   Inclusive function elapsed times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_abc.sh          func       func_c                            1009659
+      func_abc.sh          func       func_b                            2020077
+      func_abc.sh          func       func_a                            3032571
+
+In total, three functions were called, one builtin and one command.
+
+The elapsed times show that 3.0 seconds was spent in the sleep command,
+which is what would be expected based on the script.
+
+The exclusive function elapsed times show that each function spent around
+2.7 milliseconds of time processing code - while not in other functions.
+
+The inclusive function elapsed times show that func_a() took around 3.0
+seconds to execute, followed by func_b() at 2.0 seconds, and func_c() at 1.0.
+The inclusive time includes the time spent in other calls, and since
+func_a() called func_b() which called func_c(), and they all call "sleep 1",
+these times make sense.
+
+These elapsed times are the absolute time from when the function began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc. In particular, for this case it has
+included the time waiting for the sleep commands.
+
+Elapsed times are useful for identifying where latencies are.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive function time.
+
+If you study the func_abc.sh program alongside the above output, the numbers
+should make sense. 
+
+
+
+The following traces the firefox start script.
+
+# sh_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Counts,
+   FILE                 TYPE       NAME                                COUNT
+   firefox              builtin    break                                   1
+   firefox              builtin    pwd                                     1
+   firefox              builtin    test                                    1
+   firefox              cmd        /usr/lib/firefox/run-mozilla.sh         1
+   run-mozilla.sh       builtin    break                                   1
+   run-mozilla.sh       builtin    return                                  1
+   run-mozilla.sh       builtin    shift                                   1
+   run-mozilla.sh       builtin    type                                    1
+   run-mozilla.sh       cmd        /usr/lib/firefox/firefox-bin            1
+   run-mozilla.sh       func       moz_run_program                         1
+   run-mozilla.sh       func       moz_test_binary                         1
+   firefox              builtin    echo                                    2
+   firefox              func       moz_pis_startstop_scripts               2
+   firefox              builtin    cd                                      3
+   firefox              builtin    export                                  3
+   run-mozilla.sh       builtin    export                                  3
+   firefox              builtin    :                                       6
+   firefox              func       moz_spc_verbose_echo                    6
+   firefox              builtin    [                                      18
+   run-mozilla.sh       builtin    [                                      20
+   -                    total      -                                     103
+
+Elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   run-mozilla.sh       builtin    return                                  1
+   run-mozilla.sh       builtin    shift                                   1
+   run-mozilla.sh       builtin    break                                   2
+   firefox              builtin    break                                   4
+   run-mozilla.sh       builtin    export                                  6
+   firefox              builtin    export                                 10
+   firefox              builtin    :                                      15
+   firefox              builtin    pwd                                    50
+   firefox              builtin    cd                                     72
+   run-mozilla.sh       builtin    [                                     210
+   firefox              builtin    echo                                  323
+   firefox              builtin    [                                     480
+   run-mozilla.sh       builtin    type                                  486
+   firefox              builtin    test                                15330
+   run-mozilla.sh       cmd        /usr/lib/firefox/firefox-bin      8941269
+   firefox              cmd        /usr/lib/firefox/run-mozilla.sh   9384335
+   -                    total      -                                18342766
+
+Exclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   run-mozilla.sh       func       moz_test_binary                        54
+   firefox              func       moz_spc_verbose_echo                  136
+   firefox              func       moz_pis_startstop_scripts          230221
+   run-mozilla.sh       func       moz_run_program                    402343
+   -                    total      -                                  632756
+
+Inclusive function elapsed times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   run-mozilla.sh       func       moz_test_binary                        91
+   firefox              func       moz_spc_verbose_echo                  151
+   firefox              func       moz_pis_startstop_scripts          230587
+   run-mozilla.sh       func       moz_run_program                   9343826
+
+
+
+The output showed that the most inclusive function elapsed time was in
+moz_run_program() at 9.3 seconds, which comes as little suprise since
+I let firefox run for several seconds before closing it. That same duration
+explains the large command times in the elapsed times report.
+
+Of more interest are the exclusive function elapsed times, where 
+moz_pis_startstop_scripts() was the slowest at 230 ms. Other areas of the
+report are also useful to sanity check your software - should it be calling
+these things? Especially if there are any commands called that can be
+builtins instead.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sh_cpudist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sh_cpudist_example.txt
new file mode 100644
index 0000000..272e909
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sh_cpudist_example.txt
@@ -0,0 +1,92 @@
+The following are examples of sh_cpudist.d.
+
+This script traces the on-CPU time of Bourne shell functions and
+prints a report containing distribution plots per function. Here it
+traces the example program, Code/Shell/func_slow.sh.
+
+   # sh_cpudist.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   On-CPU times (us),
+   
+      func_slow.sh, builtin, echo 
+              value  ------------- Distribution ------------- count    
+                  8 |                                         0        
+                 16 |@@@@@@@@@@@@@                            1        
+                 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+                 64 |                                         0        
+   
+      func_slow.sh, builtin, [ 
+              value  ------------- Distribution ------------- count    
+                  0 |                                         0        
+                  1 |                                         1        
+                  2 |                                         1        
+                  4 |@                                        22       
+                  8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   575      
+                 16 |                                         2        
+                 32 |                                         0        
+                 64 |                                         2        
+                128 |                                         0        
+   
+   Exclusive function on-CPU times (us),
+   
+      func_slow.sh, func, func_a 
+              value  ------------- Distribution ------------- count    
+              65536 |                                         0        
+             131072 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             262144 |                                         0        
+   
+      func_slow.sh, func, func_b 
+              value  ------------- Distribution ------------- count    
+             262144 |                                         0        
+             524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1048576 |                                         0        
+   
+      func_slow.sh, func, func_c 
+              value  ------------- Distribution ------------- count    
+             524288 |                                         0        
+            1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2097152 |                                         0        
+   
+   Inclusive function on-CPU times (us),
+   
+      func_slow.sh, func, func_b 
+              value  ------------- Distribution ------------- count    
+             524288 |                                         0        
+            1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2097152 |                                         0        
+   
+      func_slow.sh, func, func_c 
+              value  ------------- Distribution ------------- count    
+             524288 |                                         0        
+            1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2097152 |                                         0        
+   
+      func_slow.sh, func, func_a 
+              value  ------------- Distribution ------------- count    
+            1048576 |                                         0        
+            2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4194304 |                                         0        
+
+The on-CPU times should that the "[" builtin (test) usually took between 
+8 and 15 microseconds to execute, and was called over 500 times.
+
+The exclusive function on-CPU times show that func_a() spent between
+131 ms and 262 ms on-CPU.
+
+The inclusive function on-CPU times show that both func_b() and func_c()
+spent between 1.0 and 2.1 seconds on-CPU, and func_a() spent between 2.1
+and 4.2 seconds on-CPU. This inclusive time includes the time spent in other
+functions called, and since func_a() called func_b() which called func_c(),
+these times make sense.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the function began to when it completed. This does not include time 
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive function time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sh_cputime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sh_cputime_example.txt
new file mode 100644
index 0000000..d3ae5bc
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sh_cputime_example.txt
@@ -0,0 +1,131 @@
+The following are examples of sh_cputime.d.
+
+This script traces the on-CPU time of Bourne shell functions and
+prints a report. Here it traces the example program, Code/Shell/func_slow.sh.
+
+   # sh_cputime.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+   Counts,
+      FILE                 TYPE       NAME                                COUNT
+      func_slow.sh         func       func_a                                  1
+      func_slow.sh         func       func_b                                  1
+      func_slow.sh         func       func_c                                  1
+      func_slow.sh         builtin    echo                                    3
+      func_slow.sh         builtin    [                                     603
+      -                    total      -                                     609
+   
+   On-CPU times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_slow.sh         builtin    echo                                  162
+      func_slow.sh         builtin    [                                    6279
+      -                    total      -                                    6441
+   
+   Exclusive function on-CPU times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_slow.sh         func       func_a                             269465
+      func_slow.sh         func       func_b                             670372
+      func_slow.sh         func       func_c                            1259073
+      -                    total      -                                 2198911
+   
+   Inclusive function on-CPU times (us),
+      FILE                 TYPE       NAME                                TOTAL
+      func_slow.sh         func       func_c                            1262209
+      func_slow.sh         func       func_b                            1934839
+      func_slow.sh         func       func_a                            2205352
+
+In total, three functions were called, one builtin and one command.
+
+The exclusive function on-CPU times show that func_a() spent around 268.4 ms
+on-CPU, func_b() spent 670.3 ms, and func_c() spent 1259 ms. This exclusive
+times excludes time spent in other functions.
+
+The inclusive function on-CPU times show that func_c() spent around 1.3
+seconds on-CPU, func_b() spent around 1.9 seconds, and func_a() spent around
+2.2 seconds. This inclusive time includes the time spent in other functions
+called, and since func_a() called func_b() which called func_c(), these
+times make sense.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the function began to when it completed. This does not include time 
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive function time.
+
+If you study the func_slow.sh program alongside the above output, the numbers
+should make sense. 
+
+
+
+The following traced the firefox start script.
+
+# sh_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Counts,
+   FILE                 TYPE       NAME                                COUNT
+   firefox              builtin    break                                   1
+   firefox              builtin    pwd                                     1
+   firefox              builtin    test                                    1
+   firefox              cmd        run-mozilla.sh                          1
+   run-mozilla.sh       builtin    break                                   1
+   run-mozilla.sh       builtin    return                                  1
+   run-mozilla.sh       builtin    shift                                   1
+   run-mozilla.sh       builtin    type                                    1
+   run-mozilla.sh       cmd        firefox-bin                             1
+   run-mozilla.sh       func       moz_run_program                         1
+   run-mozilla.sh       func       moz_test_binary                         1
+   firefox              builtin    echo                                    2
+   firefox              func       moz_pis_startstop_scripts               2
+   firefox              builtin    cd                                      3
+   firefox              builtin    export                                  3
+   run-mozilla.sh       builtin    export                                  3
+   firefox              builtin    :                                       6
+   firefox              func       moz_spc_verbose_echo                    6
+   firefox              builtin    [                                      18
+   run-mozilla.sh       builtin    [                                      20
+   -                    total      -                                     103
+
+On-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   run-mozilla.sh       builtin    return                                  0
+   run-mozilla.sh       builtin    shift                                   0
+   run-mozilla.sh       builtin    break                                   1
+   firefox              builtin    break                                   2
+   run-mozilla.sh       builtin    export                                  4
+   firefox              builtin    export                                  7
+   firefox              builtin    :                                       9
+   firefox              builtin    test                                   35
+   firefox              builtin    pwd                                    49
+   firefox              builtin    cd                                     64
+   run-mozilla.sh       builtin    [                                     176
+   firefox              builtin    echo                                  309
+   firefox              builtin    [                                     357
+   run-mozilla.sh       builtin    type                                  475
+   firefox              cmd        run-mozilla.sh                      17090
+   run-mozilla.sh       cmd        firefox-bin                       1932333
+   -                    total      -                                 1950979
+
+Exclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   run-mozilla.sh       func       moz_test_binary                        21
+   firefox              func       moz_spc_verbose_echo                   22
+   run-mozilla.sh       func       moz_run_program                      9098
+   firefox              func       moz_pis_startstop_scripts           12960
+   -                    total      -                                   22103
+
+Inclusive function on-CPU times (us),
+   FILE                 TYPE       NAME                                TOTAL
+   firefox              func       moz_spc_verbose_echo                   31
+   run-mozilla.sh       func       moz_test_binary                        56
+   run-mozilla.sh       func       moz_run_program                      9243
+   firefox              func       moz_pis_startstop_scripts           13133
+
+The output showed that the most CPU time was spent in the firefox-bin command,
+taking 1.9 seconds of on-CPU time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sh_flow_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sh_flow_example.txt
new file mode 100644
index 0000000..de7f22b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sh_flow_example.txt
@@ -0,0 +1,129 @@
+The following are examples of sh_flow.d.
+
+This is a simple script to trace the flow of Bourne shell functions, 
+builtins and external commands. Here it traces the example program,
+Code/Shell/func_abc.sh.
+
+   # sh_flow.d 
+     C TIME(us)         FILE             -- NAME
+     0 3060274370505    func_abc.sh      -> func_a
+     0 3060274370529    func_abc.sh        > echo
+     0 3060274372742    func_abc.sh        | sleep
+     0 3060275381634    func_abc.sh        -> func_b
+     0 3060275381660    func_abc.sh          > echo
+     0 3060275383852    func_abc.sh          | sleep
+     0 3060276391653    func_abc.sh          -> func_c
+     0 3060276391679    func_abc.sh            > echo
+     0 3060276393671    func_abc.sh            | sleep
+     0 3060277401753    func_abc.sh          <- func_c
+     0 3060277401767    func_abc.sh        <- func_b
+     0 3060277401775    func_abc.sh      <- func_a
+   ^C
+
+As each function is entered, the third column is indented by 2 spaces. This
+shows which function is calling who - the output abovebegins by showing that
+func_a() began, and then called func_b().
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and 
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+
+The following traces the firefox startup script.
+
+# sh_flow.d
+  C TIME(us)         FILE             -- NAME
+  0 3060321598138    firefox          > test
+  0 3060321603730    firefox          > [
+  0 3060321603796    firefox          > cd
+  0 3060321603878    firefox          > [
+  0 3060321603900    firefox          > [
+  0 3060321604099    firefox          > [
+  0 3060321609050    firefox          > echo
+  0 3060321620601    firefox          > echo
+  0 3060321626369    firefox          > [
+  0 3060321626432    firefox          > export
+  0 3060321626459    firefox          -> moz_pis_startstop_scripts
+  0 3060321626519    firefox            > export
+  0 3060321626966    firefox            > [
+  0 3060321627031    firefox            > .
+  0 3060321628446    firefox            -> moz_spc_verbose_echo
+  0 3060321628458    firefox              > :
+  0 3060321628467    firefox            <- moz_spc_verbose_echo
+  0 3060321636461    firefox            > [
+  0 3060321636738    firefox            -> moz_spc_verbose_echo
+  0 3060321636751    firefox              > :
+  0 3060321636760    firefox            <- moz_spc_verbose_echo
+  0 3060321636778    firefox            > [
+  0 3060321636793    firefox            > [
+  0 3060321636817    firefox            > [
+  0 3060321637126    firefox            -> moz_spc_verbose_echo
+  0 3060321637136    firefox              > :
+  0 3060321637143    firefox            <- moz_spc_verbose_echo
+  0 3060321666922    firefox            -> moz_spc_verbose_echo
+  0 3060321666952    firefox              > :
+  0 3060321666964    firefox            <- moz_spc_verbose_echo
+  0 3060321674929    firefox          > [
+  0 3060321680246    firefox            > [
+  0 3060321680312    firefox            -> moz_spc_verbose_echo
+  0 3060321680323    firefox              > :
+  0 3060321680331    firefox            <- moz_spc_verbose_echo
+  0 3060321680356    firefox            -> moz_spc_verbose_echo
+  0 3060321680363    firefox              > :
+  0 3060321680370    firefox            <- moz_spc_verbose_echo
+  0 3060321680396    firefox            > [
+  0 3060321680428    firefox          <- moz_pis_startstop_scripts
+  0 3060321680525    firefox          > [
+  0 3060321680580    firefox          > [
+  0 3060321685358    firefox          | /usr/lib/firefox/run-mozilla.sh
+  0 3060321700731    run-mozilla.sh   > [
+  0 3060321700950    run-mozilla.sh   > break
+  0 3060321703259    run-mozilla.sh   > [
+  0 3060321703292    run-mozilla.sh   > shift
+  0 3060321703382    run-mozilla.sh   > [
+  0 3060321703421    run-mozilla.sh   > [
+  0 3060321703493    run-mozilla.sh   > [
+  0 3060321703642    run-mozilla.sh   > [
+  0 3060321703669    run-mozilla.sh   > export
+  0 3060321703706    run-mozilla.sh   > [
+  0 3060321703725    run-mozilla.sh   > [
+  0 3060321703857    run-mozilla.sh   > [
+  0 3060321703880    run-mozilla.sh   > export
+  0 3060321703925    run-mozilla.sh   > export
+  0 3060321703954    run-mozilla.sh   > [
+  0 3060321703982    run-mozilla.sh   -> moz_run_program
+  0 3060321704013    run-mozilla.sh     > [
+  0 3060321704049    run-mozilla.sh     -> moz_test_binary
+  0 3060321704065    run-mozilla.sh       > [
+  0 3060321704097    run-mozilla.sh       > [
+  0 3060321704127    run-mozilla.sh       > return
+  0 3060321704137    run-mozilla.sh     <- moz_test_binary
+  0 3060321704151    run-mozilla.sh     > [
+  0 3060321709953    run-mozilla.sh   > type
+  0 3060321724260    run-mozilla.sh     > [
+  0 3060321724559    run-mozilla.sh     > [
+  0 3060321724574    run-mozilla.sh     > [
+  0 3060321727396    run-mozilla.sh     | /usr/lib/firefox/firefox-bin
+  0 3060325513871    run-mozilla.sh     > [
+  0 3060325513898    run-mozilla.sh     > [
+  0 3060325513929    run-mozilla.sh     > [
+  0 3060325513940    run-mozilla.sh   <- moz_run_program
+  0 3060325513967    run-mozilla.sh   > exit
+  0 3060325515113    firefox          -> moz_pis_startstop_scripts
+  0 3060325515189    firefox            > export
+  0 3060325515431    firefox            > [
+  0 3060325515466    firefox            > [
+  0 3060325515487    firefox          <- moz_pis_startstop_scripts
+  0 3060325515503    firefox          > exit
+
+This shows the flow, incluing the handover between the "firefox" script
+and the "run-mozilla.sh" script.
+
+There is a point in the output where flow appears to reverse (at time
+3060321709953, with the entry "> type"). This is due to another instance
+of the run-mozilla.sh script running, which is indistinguishable from
+the other lines in the output. To confirm this for yourself, add a PID
+column to the flow script (or use sh_flowinfo.d).
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sh_flowinfo_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sh_flowinfo_example.txt
new file mode 100644
index 0000000..1fb27cf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sh_flowinfo_example.txt
@@ -0,0 +1,242 @@
+The following are examples of sh_flowinfo.d.
+
+This is a simple script to trace the flow of Bourne shell functions,
+builtins and external commands. Here it traces the example program,
+Code/Shell/func_abc.sh.
+
+   # sh_flowinfo.d
+     C    PID  DELTA(us)              FILE:LINE TYPE     -- NAME
+     0  19634          2       func_abc.sh:23   func     -> func_a
+     0  19634         24       func_abc.sh:18   builtin    -> echo
+     0  19634         41       func_abc.sh:-    builtin    <- echo
+     0  19634       5873       func_abc.sh:19   cmd        -> sleep
+     0  19634     999373       func_abc.sh:-    cmd        <- sleep
+     0  19634         39       func_abc.sh:20   func       -> func_b
+     0  19634         22       func_abc.sh:11   builtin      -> echo
+     0  19634         40       func_abc.sh:-    builtin      <- echo
+     0  19634       4661       func_abc.sh:12   cmd          -> sleep
+     0  19634    1005349       func_abc.sh:-    cmd          <- sleep
+     0  19634         49       func_abc.sh:13   func         -> func_c
+     0  19634         22       func_abc.sh:5    builtin        -> echo
+     0  19634         38       func_abc.sh:-    builtin        <- echo
+     0  19634       4949       func_abc.sh:6    cmd            -> sleep
+     0  19634    1004817       func_abc.sh:-    cmd            <- sleep
+     0  19634         36       func_abc.sh:-    func         <- func_c
+     0  19634         14       func_abc.sh:-    func       <- func_b
+     0  19634          8       func_abc.sh:-    func     <- func_a
+
+As each function is entered, the third column is indented by 2 spaces. This
+shows which function is calling who - the output abovebegins by showing that
+func_a() began, and then called func_b().
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the fifth line of data output
+(skipping the header) reads as "the time from the command sleep beginning
+to ending was 999373 us, or 1.0 seconds".
+
+The LINE column shows the line in the file what was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+The following traces the firefox startup script.
+
+# sh_flowinfo.d
+  C    PID  DELTA(us)              FILE:LINE TYPE     -- NAME
+  0 156789          1           firefox:-    subsh    -> pid 156790
+  0 156789         20           firefox:-    subsh    <- = 0
+  0 156789      31651           firefox:-    subsh    -> pid 156791
+  0 156789         20           firefox:-    subsh    <- = 0
+  0 156789      10502           firefox:109  builtin  -> test
+  0 156789         59           firefox:-    builtin  <- test
+  0 156789       3804           firefox:-    subsh    -> pid 156792
+  0 156789         21           firefox:-    subsh    <- = 0
+  0 156789      22029           firefox:114  builtin  -> [
+  0 156789         57           firefox:-    builtin  <- [
+  0 156789      90910           firefox:-    subsh    -> pid 156793
+  0 156789         22           firefox:-    subsh    <- = 0
+  0 156789     159492           firefox:-    subsh    -> pid 156794
+  0 156789         22           firefox:-    subsh    <- = 0
+  0 156789        127           firefox:116  builtin  -> cd
+  0 156789         54           firefox:-    builtin  <- cd
+  0 156789     209757           firefox:-    subsh    -> pid 156795
+  0 156789         23           firefox:-    subsh    <- = 0
+  0 156795     206160           firefox:-    subsh    -> pid 156796
+  0 156795          9           firefox:-    subsh    <- = 0
+  0 156789      12115           firefox:118  builtin  -> [
+  0 156789         61           firefox:-    builtin  <- [
+  0 156789     200529           firefox:-    subsh    -> pid 156797
+  0 156789         24           firefox:-    subsh    <- = 0
+  0 156789        136           firefox:123  builtin  -> [
+  0 156789         58           firefox:-    builtin  <- [
+  0 156789         21           firefox:124  builtin  -> cd
+  0 156789         19           firefox:-    builtin  <- cd
+  0 156798        175           firefox:1    builtin  -> pwd
+  0 156798         65           firefox:-    builtin  <- pwd
+  0 156789     108835           firefox:-    subsh    -> pid 156798
+  0 156789         18           firefox:-    subsh    <- = 0
+  0 156789        119           firefox:128  builtin  -> break
+  0 156789         15           firefox:-    builtin  <- break
+  0 156789         21           firefox:131  builtin  -> cd
+  0 156789         26           firefox:-    builtin  <- cd
+  0 156789         61           firefox:133  builtin  -> [
+  0 156789          9           firefox:-    builtin  <- [
+  0 156789      73508           firefox:147  builtin  -> [
+  0 156789         25           firefox:-    builtin  <- [
+  0 156800        184           firefox:1    builtin  -> echo
+  0 156800        175           firefox:-    builtin  <- echo
+  0 156789      15966           firefox:-    subsh    -> pid 156799
+  0 156789         22           firefox:-    subsh    <- = 0
+  0 156799      12091           firefox:-    subsh    -> pid 156800
+  0 156799         10           firefox:-    subsh    <- = 0
+  0 156802        178           firefox:1    builtin  -> echo
+  0 156802        167           firefox:-    builtin  <- echo
+  0 156789      13822           firefox:-    subsh    -> pid 156801
+  0 156789         18           firefox:-    subsh    <- = 0
+  0 156801      81683           firefox:-    subsh    -> pid 156802
+  0 156801         21           firefox:-    subsh    <- = 0
+  0 156789      78324           firefox:158  builtin  -> [
+  0 156789         37           firefox:-    builtin  <- [
+  0 156789         54           firefox:194  builtin  -> export
+  0 156789          9           firefox:-    builtin  <- export
+  0 156789         26           firefox:197  func     -> moz_pis_startstop_scripts
+  0 156789         61           firefox:62   builtin    -> export
+  0 156789          9           firefox:-    builtin    <- export
+  0 156789        413           firefox:67   builtin    -> [
+  0 156789         34           firefox:-    builtin    <- [
+  0 156789         40           firefox:69   builtin    -> .
+  0 156789      20833           firefox:18   func         -> moz_spc_verbose_echo
+  0 156789         26           firefox:15   builtin        -> :
+  0 156789         16           firefox:-    builtin        <- :
+  0 156789         15           firefox:-    func         <- moz_spc_verbose_echo
+  0 156789     105106           firefox:-    subsh        -> pid 156803
+  0 156789         22           firefox:-    subsh        <- = 0
+  0 156789        129           firefox:19   builtin      -> [
+  0 156789         17           firefox:-    builtin      <- [
+  0 156789         33           firefox:20   func         -> moz_spc_verbose_echo
+  0 156789         14           firefox:15   builtin        -> :
+  0 156789          7           firefox:-    builtin        <- :
+  0 156789          9           firefox:-    func         <- moz_spc_verbose_echo
+  0 156789         21           firefox:23   builtin      -> [
+  0 156789          8           firefox:-    builtin      <- [
+  0 156789         16           firefox:26   builtin      -> [
+  0 156789          8           firefox:-    builtin      <- [
+  0 156789         24           firefox:29   builtin      -> [
+  0 156789         43           firefox:-    builtin      <- [
+  0 156789         77           firefox:36   func         -> moz_spc_verbose_echo
+  0 156789          9           firefox:15   builtin        -> :
+  0 156789          8           firefox:-    builtin        <- :
+  0 156789          8           firefox:-    func         <- moz_spc_verbose_echo
+  0 156789     158947           firefox:-    subsh        -> pid 156804
+  0 156789         22           firefox:-    subsh        <- = 0
+  0 156789     210112           firefox:-    subsh        -> pid 156805
+  0 156789         22           firefox:-    subsh        <- = 0
+  0 156805     205500           firefox:-    subsh    -> pid 156806
+  0 156805         10           firefox:-    subsh    <- = 0
+  0 156805     200987           firefox:-    subsh    -> pid 156807
+  0 156805         20           firefox:-    subsh    <- = 0
+  0 156789     363564           firefox:40   func         -> moz_spc_verbose_echo
+  0 156789         26           firefox:15   builtin        -> :
+  0 156789         17           firefox:-    builtin        <- :
+  0 156789         15           firefox:-    func         <- moz_spc_verbose_echo
+  0 156809        234           firefox:1    builtin  -> [
+  0 156809         70           firefox:-    builtin  <- [
+  0 156789      46950           firefox:-    subsh        -> pid 156808
+  0 156789         22           firefox:-    subsh        <- = 0
+  0 156808      42371           firefox:-    subsh    -> pid 156809
+  0 156808         10           firefox:-    subsh    <- = 0
+  0 156789      27278           firefox:43   builtin      -> [
+  0 156789         26           firefox:-    builtin      <- [
+  0 156789         62           firefox:44   func         -> moz_spc_verbose_echo
+  0 156789         15           firefox:15   builtin        -> :
+  0 156789          8           firefox:-    builtin        <- :
+  0 156789         10           firefox:-    func         <- moz_spc_verbose_echo
+  0 156789         30           firefox:67   func         -> moz_spc_verbose_echo
+  0 156789          9           firefox:15   builtin        -> :
+  0 156789          8           firefox:-    builtin        <- :
+  0 156789          7           firefox:-    func         <- moz_spc_verbose_echo
+  0 156789          8           firefox:-    builtin    <- .
+  0 156789         28           firefox:67   builtin    -> [
+  0 156789         31           firefox:-    builtin    <- [
+  0 156789          8           firefox:-    func     <- moz_pis_startstop_scripts
+  0 156789         97           firefox:199  builtin  -> [
+  0 156789         35           firefox:-    builtin  <- [
+  0 156789         29           firefox:205  builtin  -> [
+  0 156789          9           firefox:-    builtin  <- [
+  0 156789      72519           firefox:209  cmd      -> /usr/lib/firefox/run-mozilla.sh
+  0 156810          1    run-mozilla.sh:-    subsh    -> pid 156811
+  0 156810         15    run-mozilla.sh:-    subsh    <- = 0
+  0 156810     129474    run-mozilla.sh:-    subsh    -> pid 156812
+  0 156810         24    run-mozilla.sh:-    subsh    <- = 0
+  0 156810        743    run-mozilla.sh:258  builtin  -> [
+  0 156810         28    run-mozilla.sh:-    builtin  <- [
+  0 156810        212    run-mozilla.sh:275  builtin  -> break
+  0 156810         10    run-mozilla.sh:-    builtin  <- break
+  0 156810         31    run-mozilla.sh:283  builtin  -> [
+  0 156810         10    run-mozilla.sh:-    builtin  <- [
+  0 156810         16    run-mozilla.sh:286  builtin  -> shift
+  0 156810          9    run-mozilla.sh:-    builtin  <- shift
+  0 156810         55    run-mozilla.sh:291  builtin  -> [
+  0 156810          9    run-mozilla.sh:-    builtin  <- [
+  0 156810         36    run-mozilla.sh:317  builtin  -> [
+  0 156810         34    run-mozilla.sh:-    builtin  <- [
+  0 156810         37    run-mozilla.sh:327  builtin  -> [
+  0 156810          9    run-mozilla.sh:-    builtin  <- [
+  0 156810        142    run-mozilla.sh:362  builtin  -> [
+  0 156810          9    run-mozilla.sh:-    builtin  <- [
+  0 156810         26    run-mozilla.sh:366  builtin  -> export
+  0 156810          9    run-mozilla.sh:-    builtin  <- export
+  0 156810         37    run-mozilla.sh:369  builtin  -> [
+  0 156810          9    run-mozilla.sh:-    builtin  <- [
+  0 156810         18    run-mozilla.sh:371  builtin  -> [
+  0 156810         19    run-mozilla.sh:-    builtin  <- [
+  0 156810        112    run-mozilla.sh:379  builtin  -> [
+  0 156810         10    run-mozilla.sh:-    builtin  <- [
+  0 156810         23    run-mozilla.sh:418  builtin  -> export
+  0 156810          9    run-mozilla.sh:-    builtin  <- export
+  0 156810         45    run-mozilla.sh:419  builtin  -> export
+  0 156810         10    run-mozilla.sh:-    builtin  <- export
+  0 156810         27    run-mozilla.sh:421  builtin  -> [
+  0 156810          9    run-mozilla.sh:-    builtin  <- [
+  0 156810         29    run-mozilla.sh:425  func     -> moz_run_program
+  0 156810         32    run-mozilla.sh:137  builtin    -> [
+  0 156810         25    run-mozilla.sh:-    builtin    <- [
+  0 156810         20    run-mozilla.sh:145  func       -> moz_test_binary
+  0 156810         17    run-mozilla.sh:97   builtin      -> [
+  0 156810         23    run-mozilla.sh:-    builtin      <- [
+  0 156810         15    run-mozilla.sh:99   builtin      -> [
+  0 156810         26    run-mozilla.sh:-    builtin      <- [
+  0 156810         13    run-mozilla.sh:101  builtin      -> return
+  0 156810          9    run-mozilla.sh:-    builtin      <- return
+  0 156810         11    run-mozilla.sh:-    func       <- moz_test_binary
+  0 156810         18    run-mozilla.sh:146  builtin    -> [
+  0 156810          9    run-mozilla.sh:-    builtin    <- [
+  0 156814        185    run-mozilla.sh:1    builtin  -> type
+  0 156814     118188    run-mozilla.sh:-    builtin  <- type
+  0 156810     167284    run-mozilla.sh:-    subsh      -> pid 156813
+  0 156810         23    run-mozilla.sh:-    subsh      <- = 0
+  0 156813     162135    run-mozilla.sh:-    subsh    -> pid 156814
+  0 156813         12    run-mozilla.sh:-    subsh    <- = 0
+  0 156813     200125    run-mozilla.sh:-    subsh    -> pid 156815
+  0 156813         22    run-mozilla.sh:-    subsh    <- = 0
+  0 156810     203465    run-mozilla.sh:152  builtin    -> [
+  0 156810         51    run-mozilla.sh:-    builtin    <- [
+  0 156810         21    run-mozilla.sh:156  builtin    -> [
+  0 156810          9    run-mozilla.sh:-    builtin    <- [
+  0 156810         15    run-mozilla.sh:159  builtin    -> [
+  0 156810         14    run-mozilla.sh:-    builtin    <- [
+  0 156810      65752    run-mozilla.sh:-    subsh      -> pid 156816
+  0 156810         24    run-mozilla.sh:-    subsh      <- = 0
+  0 156816     251788    run-mozilla.sh:-    subsh    -> pid 156817
+  0 156816         22    run-mozilla.sh:-    subsh    <- = 0
+  0 156810     299677    run-mozilla.sh:167  cmd        -> /usr/lib/firefox/firefox-bin
+  0 156810    5124906    run-mozilla.sh:-    cmd        <- /usr/lib/firefox/firefox-bin
+  0 156789    5993798           firefox:-    cmd      <- /usr/lib/firefox/run-mozilla.sh
+
+Now latencies can investigated by line number.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sh_flowtime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sh_flowtime_example.txt
new file mode 100644
index 0000000..03848de
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sh_flowtime_example.txt
@@ -0,0 +1,131 @@
+The following are examples of sh_flowtime.d.
+
+This is a simple script to trace the flow of Bourne shell functions,
+builtins and external commands. Here it traces the example program,
+Code/Shell/func_abc.sh.
+
+   # sh_flowtime.d 
+     C TIME(us)         FILE             DELTA(us) -- NAME
+     0 3060817866026    func_abc.sh              2 -> func_a
+     0 3060817866086    func_abc.sh             60   > echo
+     0 3060818871601    func_abc.sh        1005514   | sleep
+     0 3060818871639    func_abc.sh             38   -> func_b
+     0 3060818871684    func_abc.sh             44     > echo
+     0 3060819881597    func_abc.sh        1009912     | sleep
+     0 3060819881657    func_abc.sh             60     -> func_c
+     0 3060819881717    func_abc.sh             60       > echo
+     0 3060820891613    func_abc.sh        1009896       | sleep
+     0 3060820891661    func_abc.sh             47     <- func_c
+     0 3060820891675    func_abc.sh             14   <- func_b
+     0 3060820891683    func_abc.sh              7 <- func_a
+   ^C
+
+As each function is entered, the third column is indented by 2 spaces. This
+shows which function is calling who - the output above begins by showing that
+func_a() began, and then called func_b().
+
+The DELTA(us) column is interpreted as follows,
+
+	->              previous line to the start of this function
+	<-              previous line to the end of this function
+	>               previous line to the end of this builtin
+	|               previous line to the end of this command
+
+And so the above output shows that each sleep command is taking around 1.0
+seconds to execute.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and 
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+
+The following traces the firefox start script.
+
+# sh_flowtime.d
+  C TIME(us)         FILE             DELTA(us) -- NAME
+  0 3060994282580    firefox                  2 > test
+  0 3060994286921    firefox               4341 > [
+  0 3060994286955    firefox                 34 > cd
+  0 3060994287014    firefox                 58 > [
+  0 3060994287059    firefox                 45 > [
+  0 3060994287227    firefox                167 > [
+  0 3060994293793    firefox                  2 > echo
+  0 3060994305759    firefox                  2 > echo
+  0 3060994309613    firefox              22385 > [
+  0 3060994309665    firefox                 52 > export
+  0 3060994309691    firefox                 25 -> moz_pis_startstop_scripts
+  0 3060994309752    firefox                 61   > export
+  0 3060994310199    firefox                447   > [
+  0 3060994314462    firefox               4262   -> moz_spc_verbose_echo
+  0 3060994314484    firefox                 22     > :
+  0 3060994314497    firefox                 12   <- moz_spc_verbose_echo
+  0 3060994322101    firefox               7604   > [
+  0 3060994322134    firefox                 33   -> moz_spc_verbose_echo
+  0 3060994322147    firefox                 12     > :
+  0 3060994322155    firefox                  7   <- moz_spc_verbose_echo
+  0 3060994322501    firefox                345   > [
+  0 3060994322518    firefox                 17   > [
+  0 3060994322578    firefox                 59   > [
+  0 3060994322641    firefox                 62   -> moz_spc_verbose_echo
+  0 3060994322650    firefox                  9     > :
+  0 3060994322656    firefox                  6   <- moz_spc_verbose_echo
+  0 3060994653794    firefox             331137   -> moz_spc_verbose_echo
+  0 3060994653826    firefox                 32     > :
+  0 3060994653839    firefox                 12   <- moz_spc_verbose_echo
+  0 3060994659534    firefox                  2 > [
+  0 3060994667539    firefox              13699   > [
+  0 3060994667604    firefox                 65   -> moz_spc_verbose_echo
+  0 3060994667617    firefox                 13     > :
+  0 3060994667625    firefox                  8   <- moz_spc_verbose_echo
+  0 3060994667653    firefox                 27   -> moz_spc_verbose_echo
+  0 3060994667661    firefox                  7     > :
+  0 3060994667668    firefox                  6   <- moz_spc_verbose_echo
+  0 3060994667675    firefox                  7   > .
+  0 3060994667725    firefox                 49   > [
+  0 3060994667732    firefox                  6 <- moz_pis_startstop_scripts
+  0 3060994667853    firefox                121 > [
+  0 3060994667881    firefox                 27 > [
+  0 3060994804329    run-mozilla.sh           2 > [
+  0 3060994804524    run-mozilla.sh         194 > break
+  0 3060994804560    run-mozilla.sh          36 > [
+  0 3060994804580    run-mozilla.sh          20 > shift
+  0 3060994804649    run-mozilla.sh          68 > [
+  0 3060994804710    run-mozilla.sh          61 > [
+  0 3060994804747    run-mozilla.sh          36 > [
+  0 3060994804889    run-mozilla.sh         142 > [
+  0 3060994804915    run-mozilla.sh          26 > export
+  0 3060994804952    run-mozilla.sh          36 > [
+  0 3060994804981    run-mozilla.sh          28 > [
+  0 3060994805093    run-mozilla.sh         112 > [
+  0 3060994805116    run-mozilla.sh          22 > export
+  0 3060994805160    run-mozilla.sh          44 > export
+  0 3060994805187    run-mozilla.sh          27 > [
+  0 3060994805215    run-mozilla.sh          27 -> moz_run_program
+  0 3060994805263    run-mozilla.sh          48   > [
+  0 3060994805283    run-mozilla.sh          19   -> moz_test_binary
+  0 3060994805314    run-mozilla.sh          31     > [
+  0 3060994805346    run-mozilla.sh          31     > [
+  0 3060994805358    run-mozilla.sh          12     > return
+  0 3060994805367    run-mozilla.sh           9   <- moz_test_binary
+  0 3060994805385    run-mozilla.sh          17   > [
+  0 3060994964498    run-mozilla.sh           2 > type
+  0 3060995520942    run-mozilla.sh      715556   > [
+  0 3060995520967    run-mozilla.sh          24   > [
+  0 3060995520987    run-mozilla.sh          20   > [
+  0 3061000622172    run-mozilla.sh     5101184   | /usr/lib/firefox/firefox-bin
+  0 3061000622221    run-mozilla.sh          49   > [
+  0 3061000622252    run-mozilla.sh          30   > [
+  0 3061000622266    run-mozilla.sh          14   > [
+  0 3061000622275    run-mozilla.sh           9 <- moz_run_program
+  0 3061000623686    firefox            5955805 | /usr/lib/firefox/run-mozilla.sh
+  0 3061000623793    firefox                106 -> moz_pis_startstop_scripts
+  0 3061000623864    firefox                 71   > export
+  0 3061000624108    firefox                244   > [
+  0 3061000624138    firefox                 30   > [
+  0 3061000624147    firefox                  8 <- moz_pis_startstop_scripts
+
+Points of latency during startup are visible in the output. For more details,
+see Examples/sh_flowinfo_example.txt.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sh_lines_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sh_lines_example.txt
new file mode 100644
index 0000000..f19487c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sh_lines_example.txt
@@ -0,0 +1,32 @@
+The following are examples of sh_lines.d.
+
+This is a simple script to count Bourne shell line execution. Here it traces an
+example program, Code/Shell/func_slow.sh.
+
+   # sh_lines.d 
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   
+                                FILE:LINE        COUNT
+                        func_slow.sh:5               1
+                        func_slow.sh:6               1
+                        func_slow.sh:15              1
+                        func_slow.sh:16              1
+                        func_slow.sh:21              1
+                        func_slow.sh:26              1
+                        func_slow.sh:27              1
+                        func_slow.sh:32              1
+                        func_slow.sh:35              1
+                        func_slow.sh:30            100
+                        func_slow.sh:28            101
+                        func_slow.sh:19            200
+                        func_slow.sh:17            201
+                        func_slow.sh:9             300
+                        func_slow.sh:7             301
+                        func_slow.sh:1             600
+
+The most frequently executed line was line 1 of func_slow.sh - which is actually
+line 1 of func_slow.sh subshells (command substitution, ` `). Apart from
+this slight confusion, the rest of the output should make sense (and most
+scripts only call one line in command substitution anyway).
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sh_pidcolors_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sh_pidcolors_example.txt
new file mode 100644
index 0000000..a6025e4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sh_pidcolors_example.txt
@@ -0,0 +1,574 @@
+The following are examples of sh_pidcolors.d.
+
+This is the same script as in sh_syscolors.d, except with additional tracing.
+As well as the functions, lines and system calls traced in sh_syscolors.d,
+this also adds some "pid" provider tracing as a starting point for deeper
+analysis.  In this case it adds the probes:
+
+      pid$target:a.out:e*:entry,
+      pid$target:a.out:e*:return
+
+which means, all functions from the /usr/bin/sh binary that begin with
+the letter "e". This adds about 34 probes, but you can customize it to be as
+inclusive as you like.  It renders the output in color ("colour") using terminal
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Shell/func_abc.sh.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# sh_pidcolors.d -c ./func_abc.sh -o /tmp/out
+Function A
+Function B
+Function C
+
+# cat /tmp/out
+C    PID  DELTA(us)              FILE:LINE TYPE     -- NAME
+[2;32m0  12312          2       func_abc.sh:-    syscall  -> munmap[0m
+[2;32m0  12312         34       func_abc.sh:-    syscall  <- munmap[0m
+[2;32m0  12312         53       func_abc.sh:-    syscall  -> mmap[0m
+[2;32m0  12312         19       func_abc.sh:-    syscall  <- mmap[0m
+[2;32m0  12312         43       func_abc.sh:-    syscall  -> setcontext[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  <- setcontext[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  -> getrlimit[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  <- getrlimit[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> getpid[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- getpid[0m
+[2;32m0  12312         63       func_abc.sh:-    syscall  -> setcontext[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- setcontext[0m
+[2;32m0  12312        813       func_abc.sh:-    syscall  -> sysi86[0m
+[2;32m0  12312         13       func_abc.sh:-    syscall  <- sysi86[0m
+[2;32m0  12312         85       func_abc.sh:-    syscall  -> open64[0m
+[2;32m0  12312         88       func_abc.sh:-    syscall  <- open64[0m
+[2;32m0  12312         13       func_abc.sh:-    syscall  -> ioctl[0m
+[2;32m0  12312         35       func_abc.sh:-    syscall  <- ioctl[0m
+[2;32m0  12312         15       func_abc.sh:-    syscall  -> close[0m
+[2;32m0  12312         17       func_abc.sh:-    syscall  <- close[0m
+[2;32m0  12312        123       func_abc.sh:-    syscall  -> getpid[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- getpid[0m
+[2;32m0  12312         17       func_abc.sh:-    syscall  -> setpgrp[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- setpgrp[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  -> setpgrp[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- setpgrp[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  -> access[0m
+[2;32m0  12312         19       func_abc.sh:-    syscall  <- access[0m
+[2;32m0  12312         14       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12312         15       func_abc.sh:-    syscall  -> sysconfig[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sysconfig[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sysconfig[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sysconfig[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  -> sigaltstack[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaltstack[0m
+[2;32m0  12312         16       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         12       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;34m0  12312         18       func_abc.sh:-    sh       -> endstak[0m
+[2;34m0  12312         18       func_abc.sh:-    sh       <- endstak[0m
+[2;32m0  12312         60       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- brk[0m
+[2;34m0  12312         10       func_abc.sh:-    sh       -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh       <- endstak[0m
+[2;32m0  12312         13       func_abc.sh:-    syscall  -> getuid[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- getuid[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall  -> getuid[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- getuid[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  -> getgid[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall  <- getgid[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  -> getgid[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall  <- getgid[0m
+[2;32m0  12312         16       func_abc.sh:-    syscall  -> open64[0m
+[2;32m0  12312         20       func_abc.sh:-    syscall  <- open64[0m
+[2;34m0  12312         11       func_abc.sh:-    sh       -> exfile[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> close[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall    <- close[0m
+[2;32m0  12312         24       func_abc.sh:-    syscall    -> fcntl[0m
+[2;32m0  12312         23       func_abc.sh:-    syscall    <- fcntl[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> close[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    <- close[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    -> fcntl[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall    <- fcntl[0m
+[2;32m0  12312         28       func_abc.sh:-    syscall    -> ioctl[0m
+[2;32m0  12312         42       func_abc.sh:-    syscall    <- ioctl[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> ioctl[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    <- ioctl[0m
+[2;32m0  12312         14       func_abc.sh:-    syscall    -> read[0m
+[2;32m0  12312         33       func_abc.sh:-    syscall    <- read[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall    -> brk[0m
+[2;32m0  12312         20       func_abc.sh:-    syscall    <- brk[0m
+[2;34m0  12312         13       func_abc.sh:-    sh         -> execute[0m
+[2;34m0  12312         11       func_abc.sh:-    sh         <- execute[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> brk[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    <- brk[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- execute[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312         29       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> execute[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> brk[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    <- brk[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> execute[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         <- execute[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    -> brk[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    <- brk[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> read[0m
+[2;32m0  12312         16       func_abc.sh:-    syscall    <- read[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         25       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> execute[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         <- execute[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> brk[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    <- brk[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- execute[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    -> brk[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    <- brk[0m
+[2;34m0  12312         10       func_abc.sh:-    sh         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         -> execute[0m
+[1;35m0  12312          9       func_abc.sh:23   line         -- [0m
+[2;34m0  12312         14       func_abc.sh:-    sh           -> estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh           <- estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh           <- endstak[0m
+[2;34m0  12312         18       func_abc.sh:-    sh           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh           <- endstak[0m
+[2;34m0  12312         12       func_abc.sh:-    sh           -> expand[0m
+[2;34m0  12312         10       func_abc.sh:-    sh           <- expand[0m
+[2;35m0  12312         14       func_abc.sh:23   func         -> func_a[0m
+[2;34m0  12312         14       func_abc.sh:-    sh             -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh               -> execute[0m
+[1;35m0  12312          8       func_abc.sh:18   line               -- [0m
+[2;34m0  12312          8       func_abc.sh:-    sh                 -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 <- estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                 -> endstak[0m
+[2;34m0  12312          8       func_abc.sh:-    sh                 <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 <- expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 <- estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                 -> endstak[0m
+[2;34m0  12312          8       func_abc.sh:-    sh                 <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                 -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 <- expand[0m
+[2;35m0  12312         13       func_abc.sh:18   builtin            -> echo[0m
+[2;34m0  12312         15       func_abc.sh:-    sh                   -> echo[0m
+[2;32m0  12312         14       func_abc.sh:-    syscall                -> write[0m
+[2;32m0  12312         35       func_abc.sh:-    syscall                <- write[0m
+[2;34m0  12312        321       func_abc.sh:-    sh                   <- echo[0m
+[2;35m0  12312         13       func_abc.sh:0    builtin            <- echo[0m
+[2;34m0  12312         17       func_abc.sh:-    sh               <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh               -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                 -> execute[0m
+[1;35m0  12312          8       func_abc.sh:19   line                 -- [0m
+[2;34m0  12312          8       func_abc.sh:-    sh                   -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                   -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- expand[0m
+[2;34m0  12312         11       func_abc.sh:-    sh                   -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- endstak[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall              -> getuid[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall              <- getuid[0m
+[2;32m0  12312         15       func_abc.sh:-    syscall              -> stat64[0m
+[2;32m0  12312         27       func_abc.sh:-    syscall              <- stat64[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall              -> access[0m
+[2;32m0  12312         15       func_abc.sh:-    syscall              <- access[0m
+[2;32m0  12312         18       func_abc.sh:-    syscall              -> schedctl[0m
+[2;32m0  12312         47       func_abc.sh:-    syscall              <- schedctl[0m
+[2;32m0  12312        219       func_abc.sh:-    syscall              -> fork1[0m
+[2;32m0  12312     234375       func_abc.sh:-    syscall              <- fork1[0m
+[2;32m0  12312        277       func_abc.sh:-    syscall              -> lwp_sigmask[0m
+[2;32m0  12312         13       func_abc.sh:-    syscall              <- lwp_sigmask[0m
+[2;35m0  12312         33       func_abc.sh:19   cmd                  -> sleep[0m
+[2;32m0  12312         59       func_abc.sh:-    syscall                -> waitsys[0m
+[2;32m0  12312     870257       func_abc.sh:-    syscall                <- waitsys[0m
+[2;32m0  12312         36       func_abc.sh:-    syscall                -> ioctl[0m
+[2;32m0  12312         16       func_abc.sh:-    syscall                <- ioctl[0m
+[2;32m0  12312         13       func_abc.sh:-    syscall                -> setpgrp[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                <- setpgrp[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                -> ioctl[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                <- ioctl[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall                -> ioctl[0m
+[2;32m0  12312         33       func_abc.sh:-    syscall                <- ioctl[0m
+[2;32m0  12312         12       func_abc.sh:-    syscall                -> waitsys[0m
+[2;32m0  12312         25       func_abc.sh:-    syscall                <- waitsys[0m
+[2;35m0  12312         15       func_abc.sh:0    cmd                  <- sleep[0m
+[2;34m0  12312         20       func_abc.sh:-    sh                 <- execute[0m
+[2;34m0  12312         15       func_abc.sh:-    sh                 -> execute[0m
+[1;35m0  12312         14       func_abc.sh:20   line                 -- [0m
+[2;34m0  12312         13       func_abc.sh:-    sh                   -> estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                   <- estabf[0m
+[2;34m0  12312         11       func_abc.sh:-    sh                   -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- endstak[0m
+[2;34m0  12312         12       func_abc.sh:-    sh                   -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                   <- endstak[0m
+[2;34m0  12312         11       func_abc.sh:-    sh                   -> expand[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                   <- expand[0m
+[2;35m0  12312         17       func_abc.sh:20   func                 -> func_b[0m
+[2;34m0  12312         14       func_abc.sh:-    sh                     -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                       -> execute[0m
+[1;35m0  12312          8       func_abc.sh:11   line                       -- [0m
+[2;34m0  12312          8       func_abc.sh:-    sh                         -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         <- estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         <- expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         <- estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                         -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                         -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         <- expand[0m
+[2;35m0  12312         13       func_abc.sh:11   builtin                    -> echo[0m
+[2;34m0  12312         15       func_abc.sh:-    sh                           -> echo[0m
+[2;32m0  12312         12       func_abc.sh:-    syscall                        -> write[0m
+[2;32m0  12312         32       func_abc.sh:-    syscall                        <- write[0m
+[2;34m0  12312        320       func_abc.sh:-    sh                           <- echo[0m
+[2;35m0  12312         12       func_abc.sh:0    builtin                    <- echo[0m
+[2;34m0  12312         16       func_abc.sh:-    sh                       <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                       -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                         -> execute[0m
+[1;35m0  12312          8       func_abc.sh:12   line                         -- [0m
+[2;34m0  12312          8       func_abc.sh:-    sh                           -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- expand[0m
+[2;32m0  12312        225       func_abc.sh:-    syscall                      -> fork1[0m
+[2;32m0  12312      60940       func_abc.sh:-    syscall                      <- fork1[0m
+[2;32m0  12312        243       func_abc.sh:-    syscall                      -> lwp_sigmask[0m
+[2;32m0  12312         15       func_abc.sh:-    syscall                      <- lwp_sigmask[0m
+[2;35m0  12312         31       func_abc.sh:12   cmd                          -> sleep[0m
+[2;32m0  12312         31       func_abc.sh:-    syscall                        -> waitsys[0m
+[2;32m0  12312    1007422       func_abc.sh:-    syscall                        <- waitsys[0m
+[2;32m0  12312         28       func_abc.sh:-    syscall                        -> ioctl[0m
+[2;32m0  12312         17       func_abc.sh:-    syscall                        <- ioctl[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall                        -> setpgrp[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                        <- setpgrp[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                        -> ioctl[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                        <- ioctl[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                        -> ioctl[0m
+[2;32m0  12312         38       func_abc.sh:-    syscall                        <- ioctl[0m
+[2;32m0  12312         12       func_abc.sh:-    syscall                        -> waitsys[0m
+[2;32m0  12312         26       func_abc.sh:-    syscall                        <- waitsys[0m
+[2;35m0  12312         15       func_abc.sh:0    cmd                          <- sleep[0m
+[2;34m0  12312         32       func_abc.sh:-    sh                         <- execute[0m
+[2;34m0  12312         15       func_abc.sh:-    sh                         -> execute[0m
+[1;35m0  12312         14       func_abc.sh:13   line                         -- [0m
+[2;34m0  12312         13       func_abc.sh:-    sh                           -> estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                           <- estabf[0m
+[2;34m0  12312         12       func_abc.sh:-    sh                           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- endstak[0m
+[2;34m0  12312         12       func_abc.sh:-    sh                           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                           <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                           -> expand[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                           <- expand[0m
+[2;35m0  12312         17       func_abc.sh:13   func                         -> func_c[0m
+[2;34m0  12312         13       func_abc.sh:-    sh                             -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                               -> execute[0m
+[1;35m0  12312          8       func_abc.sh:5    line                               -- [0m
+[2;34m0  12312          8       func_abc.sh:-    sh                                 -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- endstak[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                                 -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- expand[0m
+[2;35m0  12312         13       func_abc.sh:5    builtin                            -> echo[0m
+[2;34m0  12312         15       func_abc.sh:-    sh                                   -> echo[0m
+[2;32m0  12312         12       func_abc.sh:-    syscall                                -> write[0m
+[2;32m0  12312         32       func_abc.sh:-    syscall                                <- write[0m
+[2;34m0  12312        309       func_abc.sh:-    sh                                   <- echo[0m
+[2;35m0  12312         12       func_abc.sh:0    builtin                            <- echo[0m
+[2;34m0  12312         16       func_abc.sh:-    sh                               <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                               -> execute[0m
+[1;35m0  12312          9       func_abc.sh:6    line                               -- [0m
+[2;34m0  12312          8       func_abc.sh:-    sh                                 -> estabf[0m
+[2;34m0  12312         22       func_abc.sh:-    sh                                 <- estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- endstak[0m
+[2;34m0  12312         11       func_abc.sh:-    sh                                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 -> estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- estabf[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 -> expand[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                                 <- expand[0m
+[2;32m0  12312        220       func_abc.sh:-    syscall                            -> fork1[0m
+[2;32m0  12312      60982       func_abc.sh:-    syscall                            <- fork1[0m
+[2;32m0  12312        239       func_abc.sh:-    syscall                            -> lwp_sigmask[0m
+[2;32m0  12312         15       func_abc.sh:-    syscall                            <- lwp_sigmask[0m
+[2;35m0  12312         30       func_abc.sh:6    cmd                                -> sleep[0m
+[2;32m0  12312         30       func_abc.sh:-    syscall                              -> waitsys[0m
+[2;32m0  12312    1007259       func_abc.sh:-    syscall                              <- waitsys[0m
+[2;32m0  12312         29       func_abc.sh:-    syscall                              -> ioctl[0m
+[2;32m0  12312         17       func_abc.sh:-    syscall                              <- ioctl[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall                              -> setpgrp[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                              <- setpgrp[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                              -> ioctl[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                              <- ioctl[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall                              -> ioctl[0m
+[2;32m0  12312         35       func_abc.sh:-    syscall                              <- ioctl[0m
+[2;32m0  12312         12       func_abc.sh:-    syscall                              -> waitsys[0m
+[2;32m0  12312         25       func_abc.sh:-    syscall                              <- waitsys[0m
+[2;35m0  12312         15       func_abc.sh:0    cmd                                <- sleep[0m
+[2;34m0  12312         31       func_abc.sh:-    sh                               <- execute[0m
+[2;34m0  12312         13       func_abc.sh:-    sh                             <- execute[0m
+[2;35m0  12312         11       func_abc.sh:-    func                         <- func_c[0m
+[2;34m0  12312         14       func_abc.sh:-    sh                         <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                       <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh                     <- execute[0m
+[2;35m0  12312          9       func_abc.sh:-    func                 <- func_b[0m
+[2;34m0  12312         10       func_abc.sh:-    sh                 <- execute[0m
+[2;34m0  12312         18       func_abc.sh:-    sh               <- execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh             <- execute[0m
+[2;35m0  12312          9       func_abc.sh:-    func         <- func_a[0m
+[2;34m0  12312          9       func_abc.sh:-    sh         <- execute[0m
+[2;32m0  12312         12       func_abc.sh:-    syscall    -> brk[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall    <- brk[0m
+[2;32m0  12312         12       func_abc.sh:-    syscall    -> read[0m
+[2;32m0  12312         16       func_abc.sh:-    syscall    <- read[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> ioctl[0m
+[2;32m0  12312          9       func_abc.sh:-    syscall    <- ioctl[0m
+[2;32m0  12312         10       func_abc.sh:-    syscall    -> ioctl[0m
+[2;32m0  12312          8       func_abc.sh:-    syscall    <- ioctl[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall    -> close[0m
+[2;32m0  12312         13       func_abc.sh:-    syscall    <- close[0m
+[2;34m0  12312         12       func_abc.sh:-    sh         -> endjobs[0m
+[2;34m0  12312         14       func_abc.sh:-    sh         <- endjobs[0m
+[2;34m0  12312         10       func_abc.sh:-    sh       <- exfile[0m
+[2;34m0  12312         11       func_abc.sh:-    sh       -> endjobs[0m
+[2;34m0  12312          9       func_abc.sh:-    sh       <- endjobs[0m
+[2;32m0  12312         37       func_abc.sh:-    syscall  -> open64[0m
+[2;32m0  12312        103       func_abc.sh:-    syscall  <- open64[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  -> ioctl[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  <- ioctl[0m
+[2;32m0  12312         11       func_abc.sh:-    syscall  -> close[0m
+[2;32m0  12312         15       func_abc.sh:-    syscall  <- close[0m
+[2;32m0  12312         32       func_abc.sh:-    syscall  -> rexit[0m
+
+Here you can see the output showing the path the script follows as it is
+executed.
+
+At the end of the sh_syscolor_example.txt file, you can see the steps that the
+script goes through when it runs func_a.  The output contains the two
+consecutive lines:
+
+[1;35m0  12979         14       func_abc.sh:23   line     -- [0m
+[2;35m0  12979         32       func_abc.sh:23   func     -> func_a[0m
+
+Here we trace many more events that happen in between these two lines, as seen
+below:
+
+[1;35m0  12312          9       func_abc.sh:23   line         -- [0m
+[2;34m0  12312         14       func_abc.sh:-    sh           -> estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh           <- estabf[0m
+[2;34m0  12312         10       func_abc.sh:-    sh           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh           <- endstak[0m
+[2;34m0  12312         18       func_abc.sh:-    sh           -> endstak[0m
+[2;34m0  12312          9       func_abc.sh:-    sh           <- endstak[0m
+[2;34m0  12312         12       func_abc.sh:-    sh           -> expand[0m
+[2;34m0  12312         10       func_abc.sh:-    sh           <- expand[0m
+[2;35m0  12312         14       func_abc.sh:23   func         -> func_a[0m
+[2;34m0  12312         14       func_abc.sh:-    sh             -> execute[0m
+[2;34m0  12312          9       func_abc.sh:-    sh               -> execute[0m
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sh_stat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sh_stat_example.txt
new file mode 100644
index 0000000..a44a563
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sh_stat_example.txt
@@ -0,0 +1,44 @@
+Following are examples of running sh_stat.d on Shell scripts. 
+
+sh_stat.d shows you the number of events per second that have happened since
+the last line output.  The default interval is 1 second, but you can specify 
+other intervals as arguments to the script.
+
+This shows the sh_stat.d script reflecting the Code/Shell/func_slow.sh script.
+
+   # sh_stat.d
+   TIME                   EXEC/s  FUNCS/s BLTINS/s SUB-SH/s    CMD/s
+   2007 Sep 17 03:29:02        1        1       50       96        0
+   2007 Sep 17 03:29:03        0        1      151      300        0
+   2007 Sep 17 03:29:04        0        1      142      280        0
+   2007 Sep 17 03:29:05        0        0      132      262        0
+   2007 Sep 17 03:29:06        0        0      122      245        0
+   2007 Sep 17 03:29:07        0        0        9       17        0
+   2007 Sep 17 03:29:08        0        0        0        0        0
+   2007 Sep 17 03:29:09        0        0        0        0        0
+   ^C
+
+We can see that at 2007 Sep 17 03:29:04 there were 0 Bourne shells executed,
+one function called, 142 built-in commands called, 280 sub-shells created and
+0 external commands called.
+
+
+Here the script runs when Mozilla Firefox is started.
+
+   # sh_stat.d 
+   TIME                   EXEC/s  FUNCS/s BLTINS/s SUB-SH/s    CMD/s
+   2007 Sep 17 03:29:52        1        9       52       38        2
+   2007 Sep 17 03:29:53        0        0        0        0        0
+   2007 Sep 17 03:29:54        0        0        0        0        0
+   2007 Sep 17 03:29:55        0        0        0        0        0
+   2007 Sep 17 03:29:56        0        0        0        0        0
+   2007 Sep 17 03:29:57        0        0        0        0        0
+   2007 Sep 17 03:29:58        0        0        0        0        0
+   2007 Sep 17 03:29:59        0        0        0        0        0
+   2007 Sep 17 03:30:00        0        0        0        0        0
+   2007 Sep 17 03:30:01        1        1        8        0        0
+   2007 Sep 17 03:30:02        0        0        0        0        0
+   2007 Sep 17 03:30:03        0        0        0        0        0
+   2007 Sep 17 03:30:04        0        0        0        0        0
+   ^C
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sh_syscalls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sh_syscalls_example.txt
new file mode 100644
index 0000000..fbda095
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sh_syscalls_example.txt
@@ -0,0 +1,59 @@
+The following are examples of sh_syscalls.d.
+
+This is a simple script to count Shell functions, built-ins, external command
+executions and system calls.  Here we trace an example program - 
+Code/Shell/func_abc.sh.
+
+# sh_syscalls.d -c ./func_abc.sh -o /tmp/out
+Function A
+Function B
+Function C
+
+# cat /tmp/out
+Tracing... Hit Ctrl-C to end.
+
+Calls for PID 12966,
+
+ FILE                             TYPE       NAME                      COUNT
+ func_abc.sh                      func       func_a                        1
+ func_abc.sh                      func       func_b                        1
+ func_abc.sh                      func       func_c                        1
+ func_abc.sh                      syscall    getrlimit                     1
+ func_abc.sh                      syscall    mmap                          1
+ func_abc.sh                      syscall    munmap                        1
+ func_abc.sh                      syscall    rexit                         1
+ func_abc.sh                      syscall    schedctl                      1
+ func_abc.sh                      syscall    sigaltstack                   1
+ func_abc.sh                      syscall    stat64                        1
+ func_abc.sh                      syscall    sysi86                        1
+ func_abc.sh                      syscall    access                        2
+ func_abc.sh                      syscall    fcntl                         2
+ func_abc.sh                      syscall    getgid                        2
+ func_abc.sh                      syscall    getpid                        2
+ func_abc.sh                      syscall    setcontext                    2
+ func_abc.sh                      syscall    sysconfig                     2
+ func_abc.sh                      builtin    echo                          3
+ func_abc.sh                      cmd        sleep                         3
+ func_abc.sh                      syscall    fork1                         3
+ func_abc.sh                      syscall    getuid                        3
+ func_abc.sh                      syscall    lwp_sigmask                   3
+ func_abc.sh                      syscall    open64                        3
+ func_abc.sh                      syscall    read                          3
+ func_abc.sh                      syscall    write                         3
+ func_abc.sh                      syscall    close                         5
+ func_abc.sh                      syscall    setpgrp                       5
+ func_abc.sh                      syscall    waitsys                       6
+ func_abc.sh                      syscall    brk                           9
+ func_abc.sh                      syscall    ioctl                        15
+ func_abc.sh                      syscall    sigaction                    53
+
+While tracing, three functions were called - func_a(), func_b() and
+func_c().  There were 3 instances of the shell built-in 'echo' being called,
+and 3 executions of the sleep command (which is probably /usr/bin/sleep - use
+the syscall provider to confirm). There were numerous system calls made, 
+including 9 brk()'s, 15 ioctl()'s and 53 sigaction()'s.
+
+This script can provide an insight to how a script is interacting
+with the system, by providing function calls, commands, built-ins and system 
+calls in the same output.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sh_syscolors_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sh_syscolors_example.txt
new file mode 100644
index 0000000..ccc722a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sh_syscolors_example.txt
@@ -0,0 +1,328 @@
+The following are examples of sh_syscolors.d.
+
+This is a simple script to trace the flow of Shell functions, lines, and 
+system calls made. It renders the output in color ("colour") using terminal
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Shell/func_abc.sh.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# sh_syscolors.d -c ./func_abc.sh -o /tmp/out
+Function A
+Function B
+Function C
+
+# cat /tmp/out
+C    PID  DELTA(us)              FILE:LINE TYPE     -- NAME
+[2;32m0  12979          2       func_abc.sh:-    syscall  -> munmap[0m
+[2;32m0  12979         35       func_abc.sh:-    syscall  <- munmap[0m
+[2;32m0  12979         56       func_abc.sh:-    syscall  -> mmap[0m
+[2;32m0  12979         18       func_abc.sh:-    syscall  <- mmap[0m
+[2;32m0  12979         40       func_abc.sh:-    syscall  -> setcontext[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  <- setcontext[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> getrlimit[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  <- getrlimit[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> getpid[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- getpid[0m
+[2;32m0  12979         61       func_abc.sh:-    syscall  -> setcontext[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- setcontext[0m
+[2;32m0  12979        865       func_abc.sh:-    syscall  -> sysi86[0m
+[2;32m0  12979         14       func_abc.sh:-    syscall  <- sysi86[0m
+[2;32m0  12979         84       func_abc.sh:-    syscall  -> open64[0m
+[2;32m0  12979         89       func_abc.sh:-    syscall  <- open64[0m
+[2;32m0  12979         14       func_abc.sh:-    syscall  -> ioctl[0m
+[2;32m0  12979         35       func_abc.sh:-    syscall  <- ioctl[0m
+[2;32m0  12979         15       func_abc.sh:-    syscall  -> close[0m
+[2;32m0  12979         16       func_abc.sh:-    syscall  <- close[0m
+[2;32m0  12979        119       func_abc.sh:-    syscall  -> getpid[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  <- getpid[0m
+[2;32m0  12979         17       func_abc.sh:-    syscall  -> setpgrp[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  <- setpgrp[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> setpgrp[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- setpgrp[0m
+[2;32m0  12979         12       func_abc.sh:-    syscall  -> access[0m
+[2;32m0  12979         20       func_abc.sh:-    syscall  <- access[0m
+[2;32m0  12979         15       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12979         15       func_abc.sh:-    syscall  -> sysconfig[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sysconfig[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sysconfig[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sysconfig[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> sigaltstack[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaltstack[0m
+[2;32m0  12979         16       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979         12       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> sigaction[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- sigaction[0m
+[2;32m0  12979         61       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12979         13       func_abc.sh:-    syscall  -> getuid[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- getuid[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> getuid[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- getuid[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> getgid[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- getgid[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> getgid[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- getgid[0m
+[2;32m0  12979         15       func_abc.sh:-    syscall  -> open64[0m
+[2;32m0  12979         19       func_abc.sh:-    syscall  <- open64[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> close[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- close[0m
+[2;32m0  12979         24       func_abc.sh:-    syscall  -> fcntl[0m
+[2;32m0  12979         23       func_abc.sh:-    syscall  <- fcntl[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> close[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  <- close[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  -> fcntl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- fcntl[0m
+[2;32m0  12979         28       func_abc.sh:-    syscall  -> ioctl[0m
+[2;32m0  12979         42       func_abc.sh:-    syscall  <- ioctl[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> ioctl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- ioctl[0m
+[2;32m0  12979         14       func_abc.sh:-    syscall  -> read[0m
+[2;32m0  12979         33       func_abc.sh:-    syscall  <- read[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979         21       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12979         12       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12979         19       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> read[0m
+[2;32m0  12979         15       func_abc.sh:-    syscall  <- read[0m
+[2;32m0  12979         28       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979          8       func_abc.sh:-    syscall  <- brk[0m
+[1;35m0  12979         14       func_abc.sh:23   line     -- [0m
+[2;35m0  12979         32       func_abc.sh:23   func     -> func_a[0m
+[1;35m0  12979         16       func_abc.sh:18   line       -- [0m
+[2;35m0  12979         18       func_abc.sh:18   builtin    -> echo[0m
+[2;32m0  12979         21       func_abc.sh:-    syscall      -> write[0m
+[2;32m0  12979         33       func_abc.sh:-    syscall      <- write[0m
+[2;35m0  12979        311       func_abc.sh:0    builtin    <- echo[0m
+[1;35m0  12979         65       func_abc.sh:19   line       -- [0m
+[2;32m0  12979         17       func_abc.sh:-    syscall    -> getuid[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall    <- getuid[0m
+[2;32m0  12979         15       func_abc.sh:-    syscall    -> stat64[0m
+[2;32m0  12979         25       func_abc.sh:-    syscall    <- stat64[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall    -> access[0m
+[2;32m0  12979         15       func_abc.sh:-    syscall    <- access[0m
+[2;32m0  12979         18       func_abc.sh:-    syscall    -> schedctl[0m
+[2;32m0  12979         46       func_abc.sh:-    syscall    <- schedctl[0m
+[2;32m0  12979        220       func_abc.sh:-    syscall    -> fork1[0m
+[2;32m0  12979     258957       func_abc.sh:-    syscall    <- fork1[0m
+[2;32m0  12979        244       func_abc.sh:-    syscall    -> lwp_sigmask[0m
+[2;32m0  12979         16       func_abc.sh:-    syscall    <- lwp_sigmask[0m
+[2;35m0  12979         31       func_abc.sh:19   cmd        -> sleep[0m
+[2;32m0  12979         53       func_abc.sh:-    syscall      -> waitsys[0m
+[2;32m0  12979    1008036       func_abc.sh:-    syscall      <- waitsys[0m
+[2;32m0  12979         38       func_abc.sh:-    syscall      -> ioctl[0m
+[2;32m0  12979         18       func_abc.sh:-    syscall      <- ioctl[0m
+[2;32m0  12979         12       func_abc.sh:-    syscall      -> setpgrp[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall      <- setpgrp[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall      -> ioctl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall      <- ioctl[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall      -> ioctl[0m
+[2;32m0  12979         37       func_abc.sh:-    syscall      <- ioctl[0m
+[2;32m0  12979         12       func_abc.sh:-    syscall      -> waitsys[0m
+[2;32m0  12979         26       func_abc.sh:-    syscall      <- waitsys[0m
+[2;35m0  12979         14       func_abc.sh:0    cmd        <- sleep[0m
+[1;35m0  12979         21       func_abc.sh:20   line       -- [0m
+[2;35m0  12979         28       func_abc.sh:20   func       -> func_b[0m
+[1;35m0  12979         15       func_abc.sh:11   line         -- [0m
+[2;35m0  12979         17       func_abc.sh:11   builtin      -> echo[0m
+[2;32m0  12979         19       func_abc.sh:-    syscall        -> write[0m
+[2;32m0  12979         33       func_abc.sh:-    syscall        <- write[0m
+[2;35m0  12979        310       func_abc.sh:0    builtin      <- echo[0m
+[1;35m0  12979         16       func_abc.sh:12   line         -- [0m
+[2;32m0  12979        226       func_abc.sh:-    syscall      -> fork1[0m
+[2;32m0  12979      64931       func_abc.sh:-    syscall      <- fork1[0m
+[2;32m0  12979        262       func_abc.sh:-    syscall      -> lwp_sigmask[0m
+[2;32m0  12979         16       func_abc.sh:-    syscall      <- lwp_sigmask[0m
+[2;35m0  12979         31       func_abc.sh:12   cmd          -> sleep[0m
+[2;32m0  12979         31       func_abc.sh:-    syscall        -> waitsys[0m
+[2;32m0  12979    1003941       func_abc.sh:-    syscall        <- waitsys[0m
+[2;32m0  12979         30       func_abc.sh:-    syscall        -> ioctl[0m
+[2;32m0  12979         19       func_abc.sh:-    syscall        <- ioctl[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall        -> setpgrp[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall        <- setpgrp[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall        -> ioctl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall        <- ioctl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall        -> ioctl[0m
+[2;32m0  12979         38       func_abc.sh:-    syscall        <- ioctl[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall        -> waitsys[0m
+[2;32m0  12979         26       func_abc.sh:-    syscall        <- waitsys[0m
+[2;35m0  12979         14       func_abc.sh:0    cmd          <- sleep[0m
+[1;35m0  12979         33       func_abc.sh:13   line         -- [0m
+[2;35m0  12979         27       func_abc.sh:13   func         -> func_c[0m
+[1;35m0  12979         15       func_abc.sh:5    line           -- [0m
+[2;35m0  12979         17       func_abc.sh:5    builtin        -> echo[0m
+[2;32m0  12979         20       func_abc.sh:-    syscall          -> write[0m
+[2;32m0  12979         33       func_abc.sh:-    syscall          <- write[0m
+[2;35m0  12979        309       func_abc.sh:0    builtin        <- echo[0m
+[1;35m0  12979         17       func_abc.sh:6    line           -- [0m
+[2;32m0  12979        267       func_abc.sh:-    syscall        -> fork1[0m
+[2;32m0  12979      64649       func_abc.sh:-    syscall        <- fork1[0m
+[2;32m0  12979        257       func_abc.sh:-    syscall        -> lwp_sigmask[0m
+[2;32m0  12979         16       func_abc.sh:-    syscall        <- lwp_sigmask[0m
+[2;35m0  12979         31       func_abc.sh:6    cmd            -> sleep[0m
+[2;32m0  12979         31       func_abc.sh:-    syscall          -> waitsys[0m
+[2;32m0  12979    1004183       func_abc.sh:-    syscall          <- waitsys[0m
+[2;32m0  12979         31       func_abc.sh:-    syscall          -> ioctl[0m
+[2;32m0  12979         18       func_abc.sh:-    syscall          <- ioctl[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall          -> setpgrp[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall          <- setpgrp[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall          -> ioctl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall          <- ioctl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall          -> ioctl[0m
+[2;32m0  12979         38       func_abc.sh:-    syscall          <- ioctl[0m
+[2;32m0  12979         12       func_abc.sh:-    syscall          -> waitsys[0m
+[2;32m0  12979         27       func_abc.sh:-    syscall          <- waitsys[0m
+[2;35m0  12979         14       func_abc.sh:0    cmd            <- sleep[0m
+[2;35m0  12979         32       func_abc.sh:-    func         <- func_c[0m
+[2;35m0  12979         16       func_abc.sh:-    func       <- func_b[0m
+[2;35m0  12979         10       func_abc.sh:-    func     <- func_a[0m
+[2;32m0  12979         13       func_abc.sh:-    syscall  -> brk[0m
+[2;32m0  12979         12       func_abc.sh:-    syscall  <- brk[0m
+[2;32m0  12979         12       func_abc.sh:-    syscall  -> read[0m
+[2;32m0  12979         16       func_abc.sh:-    syscall  <- read[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> ioctl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- ioctl[0m
+[2;32m0  12979         10       func_abc.sh:-    syscall  -> ioctl[0m
+[2;32m0  12979          9       func_abc.sh:-    syscall  <- ioctl[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> close[0m
+[2;32m0  12979         13       func_abc.sh:-    syscall  <- close[0m
+[2;32m0  12979         37       func_abc.sh:-    syscall  -> open64[0m
+[2;32m0  12979        105       func_abc.sh:-    syscall  <- open64[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> ioctl[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  <- ioctl[0m
+[2;32m0  12979         11       func_abc.sh:-    syscall  -> close[0m
+[2;32m0  12979         15       func_abc.sh:-    syscall  <- close[0m
+[2;32m0  12979         31       func_abc.sh:-    syscall  -> rexit[0m
+
+Here you can see the output showing the path the script follows as it is
+executed.
+
+ie:
+[1;35m0  12979         14       func_abc.sh:23   line     -- [0m
+[2;35m0  12979         32       func_abc.sh:23   func     -> func_a[0m
+[1;35m0  12979         16       func_abc.sh:18   line       -- [0m
+[2;35m0  12979         18       func_abc.sh:18   builtin    -> echo[0m
+[2;32m0  12979         21       func_abc.sh:-    syscall      -> write[0m
+[2;32m0  12979         33       func_abc.sh:-    syscall      <- write[0m
+[2;35m0  12979        311       func_abc.sh:0    builtin    <- echo[0m
+[1;35m0  12979         65       func_abc.sh:19   line       -- [0m
+
+shows that on CPU 0 we run func_a (which is line 23 of the example script), 
+where it uses the shell built-in echo command (on line 18 of the example 
+script) to write a line of text to the screen. You can see in column 3 (the 
+delta time) it takes 311 microseconds from when the write syscall finishes to
+when the echo built-in completes its clean-up and finishes.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sh_wasted_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sh_wasted_example.txt
new file mode 100644
index 0000000..b11f952
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sh_wasted_example.txt
@@ -0,0 +1,45 @@
+Many shell programmers are in the habit of using calls to external commands 
+instead of using shell built-in commands (an example of this is a call to
+usr/bin/echo instead of using the echo command built into the shell.
+
+This script shows sh_wasted.d tracing a shell script that calls /usr/bin/echo
+instead of using the built-in.
+
+# sh_wasted.d -c ./func_waste.sh
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+Script duration: 3101631 us
+
+External command elapsed times,
+   FILE                           NAME                   TIME(us)
+   func_waste.sh                  sleep                   3019573
+
+Wasted command elapsed times,
+   FILE                           NAME                   TIME(us)
+   func_waste.sh                  /usr/bin/echo             26510
+
+You can see that the calls to /usr/bin/echo took around 26 thousand
+microseconds; time wasted by the shell having to access an external command.
+
+
+Here we trace the same script, except it uses the shell built-in echo command.
+
+# sh_wasted.d -c ./func_abc.sh 
+Function A
+Tracing... Hit Ctrl-C to end.
+Function B
+Function C
+Script duration: 3032616 us
+
+External command elapsed times,
+   FILE                           NAME                   TIME(us)
+   func_abc.sh                    sleep                   3012920
+
+Wasted command elapsed times,
+   FILE                           NAME                   TIME(us)
+
+The total time here is less and there are no 'wasted' calls to external
+commands.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sh_who_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sh_who_example.txt
new file mode 100644
index 0000000..b35e8e4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sh_who_example.txt
@@ -0,0 +1,45 @@
+These are examples of the results after running the sh_who.d script. 
+
+This script shows which UIDs and PIDs are running shell scripts, and how 
+active they are.  It measures the number of lines executed according to 
+the line probe - which is a useful, but rough measure of shell activity.
+
+Here it runs as a script executes three times.
+
+# sh_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+      PID    UID  LINES FILE
+    13663      0      9 ./func_abc.sh
+    13667      0      9 ./func_abc.sh
+    13671      0      9 ./func_abc.sh
+
+We see func_abc.sh ran three seperate times, each with nine lines of shell 
+activity.
+
+
+Here we trace an instance of starting Mozilla Firefox.
+
+# sh_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+      PID    UID  LINES FILE
+    13678    100      1 firefox
+    13679    100      1 firefox
+    13680    100      1 firefox
+    13681    100      1 firefox
+    13683    100      1 firefox
+    13685    100      1 firefox
+    13686    100      1 firefox
+    13687    100      1 firefox
+    13690    100      1 firefox
+    13693    100      1 /usr/lib/firefox/run-mozilla.sh
+    13694    100      1 /usr/lib/firefox/run-mozilla.sh
+    13695    100      1 /usr/lib/firefox/run-mozilla.sh
+    13692    100     55 /usr/lib/firefox/run-mozilla.sh
+    13677    100     75 firefox
+
+Firefox itself (PID 13677) ran 75 lines of code.  There are also instances of 
+firefox running a single line of code with a different PID each time.  These 
+are probably calls to subshells.  Use the sh provider to confirm.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/shellsnoop_example.txt b/external/cddl/dtracetoolkit/dist/Examples/shellsnoop_example.txt
new file mode 100644
index 0000000..be307f8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/shellsnoop_example.txt
@@ -0,0 +1,112 @@
+shellsnoop captures the text input and output from shells running on the 
+system. In the following example shellsnoop was run in one window, while
+in another several commands were run: date, cal, uname -a, uptime and find.
+shellsnoop has successfully captured the text that was displayed on the
+other window.
+
+
+# shellsnoop
+  PID  PPID      CMD DIR  TEXT
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  date
+
+ 4741  4724     date   W  Sun Mar 28 23:10:06 EST 2004
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  jupiter:/etc/init.d>
+ 4724  3762      ksh   R
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  cal
+
+ 4742  4724      cal   W     March 2004
+ 4742  4724      cal   W   S  M Tu  W Th  F  S
+ 4742  4724      cal   W      1  2  3  4  5  6
+ 4742  4724      cal   W   7  8  9 10 11 12 13
+ 4742  4724      cal   W  14 15 16 17 18 19 20
+ 4742  4724      cal   W  21 22 23 24 25 26 27
+ 4742  4724      cal   W  28 29 30 31
+ 4742  4724      cal   W
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  jupiter:/etc/init.d>
+ 4724  3762      ksh   R
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  uname -a
+
+ 4743  4724    uname   W  SunOS jupiter 5.10 s10_51 i86pc i386 i86pc
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  jupiter:/etc/init.d>
+ 4724  3762      ksh   R
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  uptime
+
+ 4744  4724   uptime   W   11:10pm  up 4 day(s), 11:15,  4 users,  load average: 0.05, 0.02, 0.02
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  jupiter:/etc/init.d>
+ 4724  3762      ksh   R
+ 4724  3762      ksh   R
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  jupiter:/etc/init.d>
+ 4724  3762      ksh   R
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  ls -l d*
+
+ 4745  4724       ls   W  -rwxr--r--   3 root     sys         1292 Jan 14 16:24 devfsadm
+ 4745  4724       ls   W  -rwxr--r--   1 root     sys          904 Jan 14 16:24 devlinks
+ 4745  4724       ls   W  -rwxr--r--   6 root     sys          621 Jan 14 16:17 dhcp
+ 4745  4724       ls   W  -rwxr--r--   2 root     sys          494 Jan 14 16:17 dhcpagent
+ 4745  4724       ls   W  -rwxr--r--   5 root     sys         1050 Jan 16  2002 directory
+ 4745  4724       ls   W  -rwxr--r--   2 root     sys          779 Jan 14 16:17 domainname
+ 4745  4724       ls   W  -rwxr--r--   1 root     sys          469 Jan 14 16:24 drvconfig
+ 4745  4724       ls   W  -r-xr-xr-x   4 root     other       2804 Mar 27 13:37 dtlogin
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  jupiter:/etc/init.d>
+ 4724  3762      ksh   R
+ 4724  3762      ksh   R
+ 4724  3762      ksh   W  find /etc/default
+
+ 4746  4724     find   W  /etc/default
+ 4746  4724     find   W  /etc/default/cron
+ 4746  4724     find   W  /etc/default/devfsadm
+ 4746  4724     find   W  /etc/default/dhcpagent
+ 4746  4724     find   W  /etc/default/fs
+ 4746  4724     find   W  /etc/default/inetd
+ 4746  4724     find   W  /etc/default/inetinit
+ 4746  4724     find   W  /etc/default/kbd
+ 4746  4724     find   W  /etc/default/keyserv
+ 4746  4724     find   W  /etc/default/ipsec
+ 4746  4724     find   W  /etc/default/nss
+ 4746  4724     find   W  /etc/default/passwd
+ 4746  4724     find   W  /etc/default/syslogd
+ 4746  4724     find   W  /etc/default/tar
+ 4746  4724     find   W  /etc/default/utmpd
+ 4746  4724     find   W  /etc/default/init
+ 4746  4724     find   W  /etc/default/login
+ 4746  4724     find   W  /etc/default/su
+ 4746  4724     find   W  /etc/default/power
+ 4746  4724     find   W  /etc/default/sys-suspend
+ 4746  4724     find   W  /etc/default/rpc.nisd
+ 4746  4724     find   W  /etc/default/nfs
+[...]
+
+
+
+shellsnoop has a "-q" option for running in "quiet" mode - the previous 
+columns are not printed, so only shell output is seen,
+
+   # shellsnoop -q
+   # date
+   Wed Nov 30 16:19:48 EST 2005
+   #
+   # cal
+      November 2005
+    S  M Tu  W Th  F  S
+          1  2  3  4  5
+    6  7  8  9 10 11 12
+   13 14 15 16 17 18 19
+   20 21 22 23 24 25 26
+   27 28 29 30
+   
+   #
+
+The output appears somewhat boring, this is something you need to see
+in realtime.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/shortlived_example.txt b/external/cddl/dtracetoolkit/dist/Examples/shortlived_example.txt
new file mode 100644
index 0000000..ebe4692
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/shortlived_example.txt
@@ -0,0 +1,57 @@
+The following is an example of the shortlived.d program.
+It can measure time spent processing short lived processes,
+that may be responsible for heavy load on the system but
+are usually difficult to see with sampling tools like prstat.
+
+
+
+Here we run in for a few seconds on a server,
+
+   # shortlived.d
+   Tracing... Hit Ctrl-C to stop.
+   ^C
+   short lived processes:      0.456 secs
+   total sample duration:      9.352 secs
+   
+   Total time by process name,
+                 date           12 ms
+                   df           20 ms
+                   ls           40 ms
+                 perl          380 ms
+   
+   Total time by PPID,
+                 3279          452 ms
+
+In the above output, around 5% of the CPU was lost to short
+lived processes - mostly perl. This may be many perl processes,
+here we are aggregating on the process name not the instance.
+
+
+
+Now shortlived.d is run on a server with a performance problem,
+
+   # uptime
+     10:58pm  up 5 day(s),  1:28,  1 user,  load average: 2.20, 1.81, 1.04
+   #
+   # shortlived.d
+   Tracing... Hit Ctrl-C to stop.
+   ^C
+   short lived processes:      4.546 secs
+   total sample duration:      9.858 secs
+   
+   Total time by process name,
+                 expr         4122 ms
+   
+   Total time by PPID,
+                 3279         4122 ms
+   #
+   # ps -p 3279
+      PID TTY         TIME CMD
+     3279 pts/10      0:45 report.sh
+
+shortlived.d showed that 50% of the CPU was consumed by short lived
+processes, all of them the "expr" command, and all having the 
+parent proccess-ID 3279. We finished by checking PID 3279 to find
+it is a Bourne shell script called "report.sh".
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sigdist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sigdist_example.txt
new file mode 100644
index 0000000..88b9df4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sigdist_example.txt
@@ -0,0 +1,18 @@
+The following is a demonstration of the sigdist.d script.
+
+
+Here we run sigdist.d, and in another window we kill -9 a sleep process,
+
+   # ./sigdist.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+             SENDER        RECIPIENT    SIG  COUNT
+              sched           dtrace      2      1
+              sched             bash     18      1
+               bash            sleep      9      1
+              sched             Xorg     14     55
+
+We can see the signal sent from bash to sleep. We can also see that Xorg
+has recieved 55 signal 14s. a "man -s3head signal" may help explain what
+signal 14 is (alarm clock). 
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/stacksize_example.txt b/external/cddl/dtracetoolkit/dist/Examples/stacksize_example.txt
new file mode 100644
index 0000000..156f351
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/stacksize_example.txt
@@ -0,0 +1,87 @@
+The following is a domonstration of the stacksize.d script.
+
+
+Here it is run for a few seconds then Ctrl-C is hit. The output prints
+distrubition plots of the size of the user stack as the value, and the
+number of times sampled at that size as the count.
+
+   # ./stacksize.d
+   Sampling... Hit Ctrl-C to end
+   
+   
+     automountd                                        
+              value  ------------- Distribution ------------- count    
+                128 |                                         0        
+                256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+                512 |                                         0        
+   
+     nscd                                              
+              value  ------------- Distribution ------------- count    
+                 64 |                                         0        
+                128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+                256 |                                         0        
+   
+     svc.startd                                        
+              value  ------------- Distribution ------------- count    
+                128 |                                         0        
+                256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+                512 |                                         0        
+   
+     sshd                                              
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2        
+               4096 |                                         0        
+   
+     dtrace                                            
+              value  ------------- Distribution ------------- count    
+                512 |                                         0        
+               1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5        
+               2048 |                                         0        
+   
+     nautilus                                          
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4096 |                                         0        
+   
+     Xvnc                                              
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               4096 |                                         0        
+   
+     gnome-vfs-daemon                                  
+              value  ------------- Distribution ------------- count    
+               2048 |                                         0        
+               4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+               8192 |                                         0        
+   
+     Xorg                                              
+              value  ------------- Distribution ------------- count    
+               2048 |                                         0        
+               4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6        
+               8192 |                                         0        
+   
+     gnome-terminal                                    
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@@@@@@@@@@@@@@                         7        
+               4096 |@@@@@@@@@@@@@@@@@@@@@@@@                 11       
+               8192 |                                         0        
+   
+     acroread                                          
+              value  ------------- Distribution ------------- count    
+               1024 |                                         0        
+               2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 92       
+               4096 |                                         0        
+   
+     perl                                              
+              value  ------------- Distribution ------------- count    
+                512 |                                         0        
+               1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1945     
+               2048 |                                         0        
+   
+   
+   Errors:
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/statsnoop_example.txt b/external/cddl/dtracetoolkit/dist/Examples/statsnoop_example.txt
new file mode 100644
index 0000000..842017e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/statsnoop_example.txt
@@ -0,0 +1,94 @@
+The following is an example of the statsnoop tool.
+
+
+statsnoop is a companion to opensnoop, which traces a variety of stat()
+calls rather than open() calls.
+
+Here I run statsnoop on my idle laptop for about 3 seconds,
+
+   # statsnoop 
+     UID    PID COMM          FD PATH                 
+       0   1485 dtrace         0 /devices/pseudo/pts@0:6 
+     100    791 dtwm          -1 /usr/mail/brendan    
+     100    791 dtwm          -1 /usr/mail/brendan    
+     100    791 dtwm          -1 /usr/mail/brendan    
+     100    791 dtwm          -1 /usr/mail/brendan    
+     100    795 sdtperfmeter   0 /devices/pseudo/mm@0:null 
+       0    803 rpc.rstatd     0 /devices/pseudo/udp@0:udp 
+       0    803 rpc.rstatd     0 /devices/pseudo/udp@0:udp 
+     100    795 sdtperfmeter   0 /devices/pseudo/mm@0:null 
+     100    791 dtwm           0 /export/home/brendan/.dt/Trash/.trashinfo 
+     100    791 dtwm           0 /export/home/brendan/.dt/Trash/.trashinfo 
+     100    791 dtwm           0 /devices/pseudo/mm@0:null 
+     100    783 ttsession      0 /devices/pseudo/pts@0:3 
+     100    783 ttsession      0 /devices/pseudo/pts@0:3 
+     100    783 ttsession      0 /devices/pseudo/pts@0:3 
+     100    791 dtwm           0 /devices/pseudo/mm@0:null 
+     100    783 ttsession      0 /devices/pseudo/pts@0:3 
+     100    783 ttsession      0 /devices/pseudo/pts@0:3 
+     100    791 dtwm           0 /devices/pseudo/mm@0:null 
+     100    791 dtwm           0 /devices/pseudo/mm@0:null 
+     100    792 dtfile         0 /devices/pseudo/mm@0:null 
+     100    783 ttsession      0 /devices/pseudo/pts@0:3 
+   ^C
+
+It is interesting what turns up. In the above output, a "dtwm" process
+with process ID 791 called stat on /usr/mail/brendan and received -1 as
+a return value - as this file does not exist. (when were mailboxes ever
+stored in /usr/mail??).
+
+
+statsnoop has a variety of options, as opensnoop does. Here I trace stat()s
+from processes called "bash", while a new bash shell is executed,
+
+   # statsnoop -n bash
+     UID    PID COMM          FD PATH                 
+     100   1493 bash           0 /usr/bin/bash        
+     100   1493 bash           0 /devices/pseudo/pts@0:8 
+     100   1493 bash           0 /lib/libcurses.so.1  
+     100   1493 bash           0 /lib/libsocket.so.1  
+     100   1493 bash           0 /lib/libnsl.so.1     
+     100   1493 bash           0 /lib/libdl.so.1      
+     100   1493 bash           0 /lib/libc.so.1       
+     100   1493 bash           0 /devices/pseudo/pts@0:8 
+     100   1493 bash           0 /devices/pseudo/pts@0:8 
+     100   1493 bash           0 /export/home/brendan 
+     100   1493 bash           0 .                    
+     100   1493 bash           0 /export/home/brendan/.bashrc 
+     100   1493 bash          -1 /usr/mail/brendan    
+     100   1493 bash           0 /export/home/brendan/.bash_history 
+     100   1493 bash           0 /export/home/brendan/.bash_history 
+     100   1493 bash           0 /export/home/brendan/.bash_history 
+     100   1493 bash          -1 /export/home/brendan/.inputrc 
+     100   1493 bash           0 .                    
+   ^C
+
+bash also checked /usr/mail/brendan? hmm...
+
+   $ echo $MAIL 
+   /usr/mail/brendan
+
+hmmmmm...
+
+   $ cat .profile
+   #       This is the default standard profile provided to a user.
+   #       They are expected to edit it to meet their own needs.
+   
+   MAIL=/usr/mail/${LOGNAME:?}
+
+huh?
+
+   $ cat /etc/skel/.profile 
+   #       This is the default standard profile provided to a user.
+   #       They are expected to edit it to meet their own needs.
+   
+   MAIL=/usr/mail/${LOGNAME:?}
+
+   $ cat /var/sadm/pkg/SUNWcsr/save/pspool/SUNWcsr/reloc/etc/skel/.profile
+   #       This is the default standard profile provided to a user.
+   #       They are expected to edit it to meet their own needs.
+   
+   MAIL=/usr/mail/${LOGNAME:?}
+
+oh.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/swapinfo_example.txt b/external/cddl/dtracetoolkit/dist/Examples/swapinfo_example.txt
new file mode 100644
index 0000000..e869766
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/swapinfo_example.txt
@@ -0,0 +1,22 @@
+The following is a demonstration of the swapinfo.d script,
+
+   # ./swapinfo.d
+   RAM  _______Total   511 MB
+   RAM      Unusable     8 MB
+   RAM        Kernel   128 MB
+   RAM        Locked     0 MB
+   RAM          Used   256 MB
+   RAM          Free   118 MB
+   
+   Disk _______Total  1023 MB
+   Disk         Resv   626 MB
+   Disk        Avail   397 MB
+   
+   Swap _______Total  1335 MB
+   Swap         Resv   626 MB
+   Swap        Avail   709 MB
+   Swap    (Minfree)    62 MB
+
+The output above gives a summary of the state of virtual memory (swap)
+on the system. 
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/sysbypid_example.txt b/external/cddl/dtracetoolkit/dist/Examples/sysbypid_example.txt
new file mode 100644
index 0000000..2858c51
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/sysbypid_example.txt
@@ -0,0 +1,45 @@
+The following is a demonstration of the sysbypid.d command,
+
+   # sysbypid.d 
+   Tracing... Hit Ctrl-C to end.
+   ^C
+               EXEC      PID                    SYS    VALUE
+              xterm    24030                  rawch        1
+              sched        0                 rcvint        1
+            fsflush        3                pswitch        1
+             dtrace    19235              inv_swtch        1
+              xterm    24030               syswrite        2
+               Xorg     3597               syswrite        2
+              xterm    24030              inv_swtch        2
+             dtrace    19235                pswitch        2
+             dtrace    19235               syswrite        2
+        soffice.bin     4019                pswitch        3
+              xterm    24030                pswitch        3
+        mozilla-bin     3730              inv_swtch        4
+              xterm    24030                sysread        4
+        mozilla-bin     3730                 readch        9
+        mozilla-bin     3730                sysread        9
+               Xorg     3597                pswitch       10
+               Xorg     3597                sysread       11
+        mozilla-bin     3730               syswrite       13
+            java_vm    28209                pswitch       13
+              sched        0                pswitch       15
+        mozilla-bin     3730                pswitch       25
+         setiathome     3929                   trap       26
+         setiathome     3929                pswitch       26
+         setiathome     3929              inv_swtch       26
+             dtrace    19235                writech       32
+             dtrace    19235                  outch       34
+             dtrace    19235                   trap       53
+               Xorg     3597                writech       64
+              xterm    24030                 readch       96
+              xterm    24030                writech      133
+        mozilla-bin     3730                writech      905
+               Xorg     3597                 readch     1044
+
+In the above output, the Xorg command with PID 3597 read 1044 bytes, as 
+indicated by readch.
+
+mozilla-bin with PID 3730 wrote 905 bytes, as indicated by the writech.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/syscallbypid_example.txt b/external/cddl/dtracetoolkit/dist/Examples/syscallbypid_example.txt
new file mode 100644
index 0000000..e51bb14
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/syscallbypid_example.txt
@@ -0,0 +1,50 @@
+The following is a demonstration of the syscallbypid.d script,
+
+
+Here we run syscallbypid.d for a few seconds then hit Ctrl-C,
+
+   # syscallbypid.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD                      SYSCALL                     COUNT
+    11039 dtrace                   setcontext                      1
+    11039 dtrace                   lwp_sigmask                     1
+        7 svc.startd               portfs                          1
+      357 poold                    lwp_cond_wait                   1
+    27328 java_vm                  lwp_cond_wait                   1
+     1532 Xorg                     writev                          1
+    11039 dtrace                   lwp_park                        1
+    11039 dtrace                   schedctl                        1
+    11039 dtrace                   mmap                            1
+      361 sendmail                 pollsys                         1
+    11039 dtrace                   fstat64                         1
+    11039 dtrace                   sigaction                       2
+    11039 dtrace                   write                           2
+      361 sendmail                 lwp_sigmask                     2
+     1659 mozilla-bin              yield                           2
+    11039 dtrace                   sysconfig                       3
+      361 sendmail                 pset                            3
+    20317 sshd                     read                            4
+      361 sendmail                 gtime                           4
+    20317 sshd                     write                           4
+    27328 java_vm                  ioctl                           6
+    11039 dtrace                   brk                             8
+     1532 Xorg                     setcontext                      8
+     1532 Xorg                     lwp_sigmask                     8
+    20317 sshd                     pollsys                         8
+      357 poold                    pollsys                        13
+     1659 mozilla-bin              read                           16
+    20317 sshd                     lwp_sigmask                    16
+     1532 Xorg                     setitimer                      17
+    27328 java_vm                  pollsys                        18
+     1532 Xorg                     pollsys                        19
+    11039 dtrace                   p_online                       21
+     1532 Xorg                     read                           22
+     1659 mozilla-bin              write                          25
+     1659 mozilla-bin              lwp_park                       26
+    11039 dtrace                   ioctl                          36
+     1659 mozilla-bin              pollsys                       155
+     1659 mozilla-bin              ioctl                         306
+
+In the above output, we can see that "mozilla-bin" with PID 1659 made the
+most system calls - 306 ioctl()s.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/syscallbyproc_example.txt b/external/cddl/dtracetoolkit/dist/Examples/syscallbyproc_example.txt
new file mode 100644
index 0000000..7469b79
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/syscallbyproc_example.txt
@@ -0,0 +1,17 @@
+The following is an example of the syscallbyproc.d script,
+
+   # syscallbyproc.d
+   dtrace: description 'syscall:::entry ' matched 228 probes
+   ^C
+     snmpd                                                             1
+     utmpd                                                             2
+     inetd                                                             2
+     nscd                                                              7
+     svc.startd                                                       11
+     sendmail                                                         31
+     poold                                                           133
+     dtrace                                                         1720
+
+The above output shows that dtrace made the most system calls in this sample,
+1720 syscalls.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/syscallbysysc_example.txt b/external/cddl/dtracetoolkit/dist/Examples/syscallbysysc_example.txt
new file mode 100644
index 0000000..d131a17
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/syscallbysysc_example.txt
@@ -0,0 +1,24 @@
+The following is a demonstration of the syscallbysysc.d script,
+
+   # syscallbysysc.d
+   dtrace: description 'syscall:::entry ' matched 228 probes
+   ^C
+     fstat                                                             1
+     setcontext                                                        1
+     lwp_park                                                          1
+     schedctl                                                          1
+     mmap                                                              1
+     sigaction                                                         2
+     pset                                                              2
+     lwp_sigmask                                                       2
+     gtime                                                             3
+     sysconfig                                                         3
+     write                                                             4
+     brk                                                               6
+     pollsys                                                           7
+     p_online                                                        558
+     ioctl                                                           579
+
+In the above output, the ioctl system call was the most common, occuring
+579 times.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcl_calldist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcl_calldist_example.txt
new file mode 100644
index 0000000..3388963
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcl_calldist_example.txt
@@ -0,0 +1,166 @@
+The following are examples of tcl_calldist.d.
+
+This script traces the elapsed time of Tcl procedures and commands and
+prints a report containing distribution plots per function. Here it traces the
+example program, Code/Tcl/func_abc.tcl
+
+# tcl_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 exclusive elapsed times (us),
+   PID=16033, cmd, namespace 
+           value  ------------- Distribution ------------- count    
+               1 |                                         0        
+               2 |@@@@@@@@@@@@@                            1        
+               4 |@@@@@@@@@@@@@                            1        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@                            1        
+             256 |                                         0        
+
+   PID=16033, cmd, puts 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@                            1        
+             256 |                                         0        
+
+   PID=16033, cmd, tclInit 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   PID=16033, proc, func_a 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   PID=16033, proc, func_b 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   PID=16033, proc, func_c 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   PID=16033, cmd, file 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@                            4        
+               8 |@@@@@@@                                  2        
+              16 |@@@@@@@                                  2        
+              32 |@@@                                      1        
+              64 |@@@@@@@@@@                               3        
+             128 |                                         0        
+
+   PID=16033, cmd, source 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   PID=16033, cmd, if 
+           value  ------------- Distribution ------------- count    
+               8 |                                         0        
+              16 |@@@@@@@@@@@@@@@@@@@@                     4        
+              32 |@@@@@@@@@@@@@@@                          3        
+              64 |                                         0        
+             128 |                                         0        
+             256 |                                         0        
+             512 |@@@@@                                    1        
+            1024 |                                         0        
+
+   PID=16033, cmd, after 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+         1048576 |                                         0        
+
+
+Top 10 inclusive elapsed times (us),
+   PID=16033, cmd, uplevel 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   PID=16033, cmd, tclInit 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+   PID=16033, proc, tclInit 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+   PID=16033, cmd, func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   PID=16033, proc, func_c 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   PID=16033, cmd, func_b 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   PID=16033, proc, func_b 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   PID=16033, cmd, after 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3        
+         1048576 |                                         0        
+
+   PID=16033, cmd, func_a 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+   PID=16033, proc, func_a 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+The exclusive function elapsed times show that each func_a took between 256
+and 511 microseconds. This time excludes the time spent in any other functions.
+
+The inclusive elapsed times section shows that each func_a spent
+took between 2.1 and 4.2 seconds. This time also includes the time spent in
+any other commands or procedures called by func_a.
+
+These elapsed times are the absolute time from when the function began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
+Elapsed times are useful for identifying where latencies are.
+See Notes/ALLelapsed_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive function time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcl_calls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcl_calls_example.txt
new file mode 100644
index 0000000..5ffada4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcl_calls_example.txt
@@ -0,0 +1,41 @@
+The following are examples of the results of running the tcl_calls.d script.
+
+In this example we see it running while the Code/Tcl/func_abc.tcl script is run.
+
+# tcl_calls.d     Tracing... Hit Ctrl-C to end.
+^C
+    PID TYPE     NAME                                                    COUNT
+  16021 cmd      concat                                                      1
+  16021 cmd      exit                                                        1
+  16021 cmd      func_a                                                      1
+  16021 cmd      func_b                                                      1
+  16021 cmd      func_c                                                      1
+  16021 cmd      list                                                        1
+  16021 cmd      rename                                                      1
+  16021 cmd      source                                                      1
+  16021 cmd      tclInit                                                     1
+  16021 cmd      unset                                                       1
+  16021 cmd      uplevel                                                     1
+  16021 cmd      variable                                                    1
+  16021 proc     func_a                                                      1
+  16021 proc     func_b                                                      1
+  16021 proc     func_c                                                      1
+  16021 proc     tclInit                                                     1
+  16021 cmd      foreach                                                     2
+  16021 cmd      global                                                      2
+  16021 cmd      interp                                                      2
+  16021 cmd      package                                                     2
+  16021 cmd      set                                                         2
+  16021 cmd      after                                                       3
+  16021 cmd      namespace                                                   3
+  16021 cmd      puts                                                        3
+  16021 cmd      lappend                                                     4
+  16021 cmd      lsearch                                                     4
+  16021 cmd      if                                                          8
+  16021 cmd      info                                                       11
+  16021 cmd      file                                                       12
+  16021 cmd      proc                                                       12
+
+You can see that PID 16021 made quite a few different types of command and
+procedure calls during its execution.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcl_calltime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcl_calltime_example.txt
new file mode 100644
index 0000000..56d100a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcl_calltime_example.txt
@@ -0,0 +1,61 @@
+The following are examples of tcl_calltime.d.
+
+This script traces the total elapsed time of different Tcl commands and
+procedures and prints a report. Here it traces the example program, 
+Code/Tcl/func_abc.tcl
+
+# tcl_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 counts,
+      PID TYPE       NAME                                                COUNT
+    16028 cmd        after                                                   3
+    16028 cmd        namespace                                               3
+    16028 cmd        puts                                                    3
+    16028 cmd        lappend                                                 4
+    16028 cmd        lsearch                                                 4
+    16028 cmd        if                                                      8
+    16028 cmd        info                                                   11
+    16028 cmd        file                                                   12
+    16028 cmd        proc                                                   12
+        0 total      -                                                      85
+
+Top 10 exclusive elapsed times (us),
+      PID TYPE       NAME                                                TOTAL
+    16028 cmd        tclInit                                               253
+    16028 cmd        namespace                                             272
+    16028 proc       func_c                                                330
+    16028 proc       func_b                                                357
+    16028 proc       func_a                                                363
+    16028 cmd        file                                                  416
+    16028 cmd        if                                                    852
+    16028 cmd        source                                                929
+    16028 cmd        after                                             3025152
+        0 total      -                                                 3030001
+
+Top 10 inclusive elapsed times (us),
+      PID TYPE       NAME                                                TOTAL
+    16028 cmd        uplevel                                              1849
+    16028 proc       tclInit                                              2519
+    16028 cmd        tclInit                                              2772
+    16028 proc       func_c                                            1010031
+    16028 cmd        func_c                                            1010088
+    16028 proc       func_b                                            2020059
+    16028 cmd        func_b                                            2020106
+    16028 cmd        after                                             3025152
+    16028 proc       func_a                                            3026545
+    16028 cmd        func_a                                            3026572
+
+The output is in three sections.  The first shows the top ten most executed
+commands while the script is tracing.
+
+The second (Top 10 exclusive elapsed times) shows us the top ten slowest 
+commands or procedures, this number excludes any subroutines called during 
+command execution.
+
+The third (Top 10 inclusive elapsed times) shows us the top ten slowest
+commands or procedures including any time spent in subroutines.  You can see
+that func_a took the most amount of time all up.  This makes sense if you
+compare the code at Code/Tcl/func_abc.tcl with the results.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcl_cpudist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcl_cpudist_example.txt
new file mode 100644
index 0000000..09126f6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcl_cpudist_example.txt
@@ -0,0 +1,164 @@
+The following are examples of tcl_cpudist.d.
+
+This script traces the on-CPU time of Tcl commands and procedures and
+prints a report containing distribution plots per subroutine. Here it
+traces the example program, Code/Tcl/func_slow.tcl.
+
+# tcl_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 exclusive on-CPU times (us),
+   PID=16043, cmd, info 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@                                     1        
+               2 |@@@@@@@@@@@@@@@                          4        
+               4 |@@@@                                     1        
+               8 |@@@@                                     1        
+              16 |@@@@@@@@@@@                              3        
+              32 |@@@@                                     1        
+              64 |                                         0        
+
+   PID=16043, cmd, namespace 
+           value  ------------- Distribution ------------- count    
+               0 |                                         0        
+               1 |@@@@@@@@@@@@@                            1        
+               2 |@@@@@@@@@@@@@                            1        
+               4 |                                         0        
+               8 |                                         0        
+              16 |                                         0        
+              32 |                                         0        
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@                            1        
+             256 |                                         0        
+
+   PID=16043, cmd, puts 
+           value  ------------- Distribution ------------- count    
+              16 |                                         0        
+              32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
+              64 |                                         0        
+             128 |@@@@@@@@@@@@@                            1        
+             256 |                                         0        
+
+   PID=16043, cmd, if 
+           value  ------------- Distribution ------------- count    
+               4 |                                         0        
+               8 |@@@@@@@@@@                               2        
+              16 |@@@@@@@@@@@@@@@@@@@@                     4        
+              32 |@@@@@                                    1        
+              64 |                                         0        
+             128 |@@@@@                                    1        
+             256 |                                         0        
+
+   PID=16043, cmd, tclInit 
+           value  ------------- Distribution ------------- count    
+             128 |                                         0        
+             256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+             512 |                                         0        
+
+   PID=16043, cmd, file 
+           value  ------------- Distribution ------------- count    
+               2 |                                         0        
+               4 |@@@@@@@@@@@@@                            4        
+               8 |@@@@@@@@@@@@@                            4        
+              16 |                                         0        
+              32 |@@@                                      1        
+              64 |@@@@@@@@@@                               3        
+             128 |                                         0        
+
+   PID=16043, cmd, source 
+           value  ------------- Distribution ------------- count    
+             256 |                                         0        
+             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            1024 |                                         0        
+
+   PID=16043, proc, func_a 
+           value  ------------- Distribution ------------- count    
+          262144 |                                         0        
+          524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         1048576 |                                         0        
+
+   PID=16043, proc, func_b 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   PID=16043, proc, func_c 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+
+Top 10 inclusive on-CPU times (us),
+   PID=16043, cmd, source 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   PID=16043, cmd, uplevel 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   PID=16043, proc, tclInit 
+           value  ------------- Distribution ------------- count    
+             512 |                                         0        
+            1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            2048 |                                         0        
+
+   PID=16043, cmd, tclInit 
+           value  ------------- Distribution ------------- count    
+            1024 |                                         0        
+            2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+            4096 |                                         0        
+
+   PID=16043, cmd, func_c 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   PID=16043, proc, func_c 
+           value  ------------- Distribution ------------- count    
+          524288 |                                         0        
+         1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         2097152 |                                         0        
+
+   PID=16043, cmd, func_a 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+   PID=16043, cmd, func_b 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+   PID=16043, proc, func_a 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+   PID=16043, proc, func_b 
+           value  ------------- Distribution ------------- count    
+         1048576 |                                         0        
+         2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
+         4194304 |                                         0        
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcl_cputime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcl_cputime_example.txt
new file mode 100644
index 0000000..c736201
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcl_cputime_example.txt
@@ -0,0 +1,67 @@
+Following are examples of running tcl_cputime.d.
+
+Here it runs while we execute Code/Tcl/func_slow.tcl
+
+# tcl_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 counts,
+      PID TYPE       NAME                                                COUNT
+    16038 cmd        set                                                     2
+    16038 cmd        namespace                                               3
+    16038 cmd        puts                                                    3
+    16038 cmd        lappend                                                 4
+    16038 cmd        lsearch                                                 4
+    16038 cmd        if                                                      8
+    16038 cmd        info                                                   11
+    16038 cmd        file                                                   12
+    16038 cmd        proc                                                   12
+        0 total      -                                                      82
+
+Top 10 exclusive on-CPU times (us),
+      PID TYPE       NAME                                                TOTAL
+    16038 cmd        namespace                                             130
+    16038 cmd        puts                                                  232
+    16038 cmd        if                                                    310
+    16038 cmd        tclInit                                               315
+    16038 cmd        file                                                  411
+    16038 cmd        source                                                760
+    16038 proc       func_a                                             535521
+    16038 proc       func_b                                            1071082
+    16038 proc       func_c                                            1619323
+        0 total      -                                                 3228670
+
+Top 10 inclusive on-CPU times (us),
+      PID TYPE       NAME                                                TOTAL
+    16038 cmd        source                                               1359
+    16038 cmd        uplevel                                              1367
+    16038 proc       tclInit                                              1865
+    16038 cmd        tclInit                                              2180
+    16038 proc       func_c                                            1619360
+    16038 cmd        func_c                                            1619404
+    16038 proc       func_b                                            2690525
+    16038 cmd        func_b                                            2690568
+    16038 proc       func_a                                            3226247
+    16038 cmd        func_a                                            3226275
+
+We can see that the output is in three sections.  The first section represents
+the ten most commonly executed commands while the script is tracing.
+
+The exclusive function on-CPU times show that func_a spent around 0.5 seconds
+on-CPU, func_b spent about 1.0 seconds, and func_c, 1.6 seconds. This excludes
+time spent in other procedures or commands.
+
+The inclusive function on-CPU times show the time spent by these procedures in
+total, including the time spent in other functions called, and since func_a
+called func_b which called func_c, these times make sense.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the function began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive function time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcl_flow_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcl_flow_example.txt
new file mode 100644
index 0000000..dd2dcd6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcl_flow_example.txt
@@ -0,0 +1,195 @@
+The following are examples of running tcl_flow.d.
+
+Here the script is tracing the execution of Code/Tcl/func_abc.tcl
+
+# tcl_flow.d
+  C    PID TIME(us)         -- CALL
+  0  16068 3904942506169     > if
+  0  16068 3904942506261       > info
+  0  16068 3904942506286       < info
+  0  16068 3904942506350       > proc
+  0  16068 3904942506363       < proc
+  0  16068 3904942506369     < if
+  0  16068 3904942506383     > tclInit
+  0  16068 3904942506605      -> tclInit
+  0  16068 3904942506614         > global
+  0  16068 3904942506626         < global
+  0  16068 3904942506632         > global
+  0  16068 3904942506638         < global
+  0  16068 3904942506643         > rename
+  0  16068 3904942506666         < rename
+  0  16068 3904942506675         > info
+  0  16068 3904942506685         < info
+  0  16068 3904942506694         > info
+  0  16068 3904942506721         < info
+  0  16068 3904942506728         > unset
+  0  16068 3904942506741         < unset
+  0  16068 3904942506746         > concat
+  0  16068 3904942506760         < concat
+  0  16068 3904942506774         > file
+  0  16068 3904942506792         < file
+  0  16068 3904942506797         > file
+  0  16068 3904942506880         < file
+  0  16068 3904942506885         > file
+  0  16068 3904942506895         < file
+  0  16068 3904942506901         > file
+  0  16068 3904942507009         < file
+  0  16068 3904942507015         > file
+  0  16068 3904942507025         < file
+  0  16068 3904942507031         > file
+  0  16068 3904942507118         < file
+  0  16068 3904942507124         > file
+  0  16068 3904942507133         < file
+  0  16068 3904942507139         > file
+  0  16068 3904942507193         < file
+  0  16068 3904942507200         > uplevel
+  0  16068 3904942507209           > source
+  0  16068 3904942507649             > if
+  0  16068 3904942507664               > info
+  0  16068 3904942507673               < info
+  0  16068 3904942507681             < if
+  0  16068 3904942507691             > package
+  0  16068 3904942507700             < package
+  0  16068 3904942507712             > if
+  0  16068 3904942507722               > info
+  0  16068 3904942507728               < info
+  0  16068 3904942507749               > info
+  0  16068 3904942507773               < info
+  0  16068 3904942507780             < if
+  0  16068 3904942507797             > namespace
+  0  16068 3904942507898               > variable
+  0  16068 3904942507905               < variable
+  0  16068 3904942507911               > info
+  0  16068 3904942507923               < info
+  0  16068 3904942507928               > info
+  0  16068 3904942507934               < info
+  0  16068 3904942507939               > info
+  0  16068 3904942507947               < info
+  0  16068 3904942507952               > file
+  0  16068 3904942507971               < file
+  0  16068 3904942507977               > list
+  0  16068 3904942507991               < list
+  0  16068 3904942507996               > foreach
+  0  16068 3904942508020                 > lsearch
+  0  16068 3904942508028                 < lsearch
+  0  16068 3904942508034                 > lappend
+  0  16068 3904942508041                 < lappend
+  0  16068 3904942508051                 > lsearch
+  0  16068 3904942508056                 < lsearch
+  0  16068 3904942508061                 > lappend
+  0  16068 3904942508068                 < lappend
+  0  16068 3904942508073               < foreach
+  0  16068 3904942508078               > info
+  0  16068 3904942508086               < info
+  0  16068 3904942508090               > file
+  0  16068 3904942508108               < file
+  0  16068 3904942508113               > file
+  0  16068 3904942508129               < file
+  0  16068 3904942508134               > file
+  0  16068 3904942508142               < file
+  0  16068 3904942508148               > lsearch
+  0  16068 3904942508153               < lsearch
+  0  16068 3904942508158               > lappend
+  0  16068 3904942508166               < lappend
+  0  16068 3904942508170               > info
+  0  16068 3904942508176               < info
+  0  16068 3904942508181               > foreach
+  0  16068 3904942508190                 > lsearch
+  0  16068 3904942508195                 < lsearch
+  0  16068 3904942508200                 > lappend
+  0  16068 3904942508206                 < lappend
+  0  16068 3904942508211               < foreach
+  0  16068 3904942508217             < namespace
+  0  16068 3904942508243             > if
+  0  16068 3904942508261               > interp
+  0  16068 3904942508276               < interp
+  0  16068 3904942508283             < if
+  0  16068 3904942508296             > package
+  0  16068 3904942508302             < package
+  0  16068 3904942508312             > if
+  0  16068 3904942508322               > interp
+  0  16068 3904942508328               < interp
+  0  16068 3904942508369             < if
+  0  16068 3904942508387             > if
+  0  16068 3904942508398               > namespace
+  0  16068 3904942508406               < namespace
+  0  16068 3904942508412             < if
+  0  16068 3904942508424             > set
+  0  16068 3904942508430             < set
+  0  16068 3904942508437             > set
+  0  16068 3904942508443             < set
+  0  16068 3904942508451             > if
+  0  16068 3904942508463               > namespace
+  0  16068 3904942508469               < namespace
+  0  16068 3904942508479               > proc
+  0  16068 3904942508488               < proc
+  0  16068 3904942508493             < if
+  0  16068 3904942508573             > proc
+  0  16068 3904942508582             < proc
+  0  16068 3904942508599             > proc
+  0  16068 3904942508609             < proc
+  0  16068 3904942508638             > proc
+  0  16068 3904942508645             < proc
+  0  16068 3904942508664             > proc
+  0  16068 3904942508673             < proc
+  0  16068 3904942508686             > proc
+  0  16068 3904942508693             < proc
+  0  16068 3904942508737             > if
+  0  16068 3904942508760               > proc
+  0  16068 3904942508782               < proc
+  0  16068 3904942508788             < if
+  0  16068 3904942508826             > proc
+  0  16068 3904942508837             < proc
+  0  16068 3904942508843           < source
+  0  16068 3904942508848         < uplevel
+  0  16068 3904942508857      <- tclInit
+  0  16068 3904942508871     < tclInit
+  0  16068 3904942509050     > proc
+  0  16068 3904942509059     < proc
+  0  16068 3904942509067     > proc
+  0  16068 3904942509074     < proc
+  0  16068 3904942509081     > proc
+  0  16068 3904942509088     < proc
+  0  16068 3904942509094     > func_a
+  0  16068 3904942509110      -> func_a
+  0  16068 3904942509116         > puts
+  0  16068 3904942509256         < puts
+  0  16068 3904942509262         > after
+  0  16068 3904943510998         < after
+  0  16068 3904943511016         > func_b
+  0  16068 3904943511050          -> func_b
+  0  16068 3904943511058             > puts
+  0  16068 3904943511090             < puts
+  0  16068 3904943511094             > after
+  0  16068 3904944520994             < after
+  0  16068 3904944521013             > func_c
+  0  16068 3904944521043              -> func_c
+  0  16068 3904944521051                 > puts
+  0  16068 3904944521092                 < puts
+  0  16068 3904944521097                 > after
+  0  16068 3904945530993                 < after
+  0  16068 3904945531012              <- func_c
+  0  16068 3904945531020             < func_c
+  0  16068 3904945531025          <- func_b
+  0  16068 3904945531029         < func_b
+  0  16068 3904945531034      <- func_a
+  0  16068 3904945531039     < func_a
+  0  16068 3904945531064     > exit
+^C
+
+You can see the output is in five columns.
+
+The first column is CPU-id, the second is PID, third is the time since boot in
+microseconds since the previous action.  The fourth and fifth columns
+represent the action happening.   The Tcl command or procedure name is prefixed 
+by an indicator reprenting what is happening.  These may be -> (procedure 
+entry), <- (procedure return), > (command entry), or < (command return).
+
+As each action is taken, the fourth and fifth columns are indented by 2 spaces.
+This shows which procedure or command is calling which.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcl_flowtime_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcl_flowtime_example.txt
new file mode 100644
index 0000000..8e07238
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcl_flowtime_example.txt
@@ -0,0 +1,197 @@
+Following are examples of running tcl_flowtime.d.
+
+Here the tcl_flowtime.d script is running on the program
+Code/Tcl/func_abc.tcl.
+
+
+# tcl_flowtime.d
+  C    PID TIME(us)         DELTA(us) -- CALL
+  0  17901 4436098007906            2  > if
+  0  17901 4436098007976           70    > info
+  0  17901 4436098007998           21    < info
+  0  17901 4436098008050           52    > proc
+  0  17901 4436098008063           12    < proc
+  0  17901 4436098008069            6  < if
+  0  17901 4436098008085           15  > tclInit
+  0  17901 4436098008286          201   -> tclInit
+  0  17901 4436098008295            8      > global
+  0  17901 4436098008305           10      < global
+  0  17901 4436098008311            6      > global
+  0  17901 4436098008318            6      < global
+  0  17901 4436098008323            5      > rename
+  0  17901 4436098008342           18      < rename
+  0  17901 4436098008353           10      > info
+  0  17901 4436098008362            9      < info
+  0  17901 4436098008369            6      > info
+  0  17901 4436098008395           25      < info
+  0  17901 4436098008403            8      > unset
+  0  17901 4436098008410            6      < unset
+  0  17901 4436098008416            5      > concat
+  0  17901 4436098008425            8      < concat
+  0  17901 4436098008440           15      > file
+  0  17901 4436098008459           18      < file
+  0  17901 4436098008465            6      > file
+  0  17901 4436098008543           78      < file
+  0  17901 4436098008550            7      > file
+  0  17901 4436098008560            9      < file
+  0  17901 4436098008567            7      > file
+  0  17901 4436098008671          104      < file
+  0  17901 4436098008678            7      > file
+  0  17901 4436098008688            9      < file
+  0  17901 4436098008695            6      > file
+  0  17901 4436098008780           84      < file
+  0  17901 4436098008787            6      > file
+  0  17901 4436098008796            9      < file
+  0  17901 4436098008803            6      > file
+  0  17901 4436098008854           51      < file
+  0  17901 4436098008862            7      > uplevel
+  0  17901 4436098008872           10        > source
+  0  17901 4436098009290          417          > if
+  0  17901 4436098009304           14            > info
+  0  17901 4436098009311            7            < info
+  0  17901 4436098009319            7          < if
+  0  17901 4436098009331           11          > package
+  0  17901 4436098009340            9          < package
+  0  17901 4436098009353           12          > if
+  0  17901 4436098009363           10            > info
+  0  17901 4436098009369            6            < info
+  0  17901 4436098009390           20            > info
+  0  17901 4436098009413           22            < info
+  0  17901 4436098009421            7          < if
+  0  17901 4436098009439           18          > namespace
+  0  17901 4436098009530           90            > variable
+  0  17901 4436098009537            7            < variable
+  0  17901 4436098009544            6            > info
+  0  17901 4436098009554           10            < info
+  0  17901 4436098009561            6            > info
+  0  17901 4436098009567            6            < info
+  0  17901 4436098009573            5            > info
+  0  17901 4436098009579            6            < info
+  0  17901 4436098009586            6            > file
+  0  17901 4436098009605           19            < file
+  0  17901 4436098009611            6            > list
+  0  17901 4436098009627           15            < list
+  0  17901 4436098009633            6            > foreach
+  0  17901 4436098009658           24              > lsearch
+  0  17901 4436098009665            7              < lsearch
+  0  17901 4436098009673            7              > lappend
+  0  17901 4436098009680            7              < lappend
+  0  17901 4436098009689            9              > lsearch
+  0  17901 4436098009694            5              < lsearch
+  0  17901 4436098009700            6              > lappend
+  0  17901 4436098009707            6              < lappend
+  0  17901 4436098009712            5            < foreach
+  0  17901 4436098009719            6            > info
+  0  17901 4436098009726            7            < info
+  0  17901 4436098009732            5            > file
+  0  17901 4436098009749           17            < file
+  0  17901 4436098009756            6            > file
+  0  17901 4436098009772           16            < file
+  0  17901 4436098009778            6            > file
+  0  17901 4436098009787            9            < file
+  0  17901 4436098009795            7            > lsearch
+  0  17901 4436098009800            5            < lsearch
+  0  17901 4436098009806            6            > lappend
+  0  17901 4436098009812            5            < lappend
+  0  17901 4436098009818            5            > info
+  0  17901 4436098009823            5            < info
+  0  17901 4436098009830            6            > foreach
+  0  17901 4436098009840            9              > lsearch
+  0  17901 4436098009845            5              < lsearch
+  0  17901 4436098009851            6              > lappend
+  0  17901 4436098009857            5              < lappend
+  0  17901 4436098009862            5            < foreach
+  0  17901 4436098009868            5          < namespace
+  0  17901 4436098009896           27          > if
+  0  17901 4436098009915           18            > interp
+  0  17901 4436098009922            7            < interp
+  0  17901 4436098009930            8          < if
+  0  17901 4436098009943           12          > package
+  0  17901 4436098009949            5          < package
+  0  17901 4436098009960           10          > if
+  0  17901 4436098009970           10            > interp
+  0  17901 4436098009976            5            < interp
+  0  17901 4436098010018           41          < if
+  0  17901 4436098010036           18          > if
+  0  17901 4436098010049           12            > namespace
+  0  17901 4436098010057            7            < namespace
+  0  17901 4436098010063            6          < if
+  0  17901 4436098010074           11          > set
+  0  17901 4436098010081            6          < set
+  0  17901 4436098010089            8          > set
+  0  17901 4436098010095            5          < set
+  0  17901 4436098010104            9          > if
+  0  17901 4436098010116           12            > namespace
+  0  17901 4436098010122            6            < namespace
+  0  17901 4436098010133           10            > proc
+  0  17901 4436098010142            8            < proc
+  0  17901 4436098010148            5          < if
+  0  17901 4436098010228           79          > proc
+  0  17901 4436098010237            8          < proc
+  0  17901 4436098010255           18          > proc
+  0  17901 4436098010264            9          < proc
+  0  17901 4436098010293           29          > proc
+  0  17901 4436098010301            7          < proc
+  0  17901 4436098010320           18          > proc
+  0  17901 4436098010329            9          < proc
+  0  17901 4436098010342           13          > proc
+  0  17901 4436098010350            7          < proc
+  0  17901 4436098010394           44          > if
+  0  17901 4436098010418           23            > proc
+  0  17901 4436098010437           18            < proc
+  0  17901 4436098010443            6          < if
+  0  17901 4436098010563          120          > proc
+  0  17901 4436098010575           12          < proc
+  0  17901 4436098010582            7        < source
+  0  17901 4436098010588            5      < uplevel
+  0  17901 4436098010596            8   <- tclInit
+  0  17901 4436098010610           13  < tclInit
+  0  17901 4436098010800          190  > proc
+  0  17901 4436098010809            8  < proc
+  0  17901 4436098010818            9  > proc
+  0  17901 4436098010825            6  < proc
+  0  17901 4436098010833            8  > proc
+  0  17901 4436098010840            6  < proc
+  0  17901 4436098010847            7  > func_a
+  0  17901 4436098010863           15   -> func_a
+  0  17901 4436098010870            6      > puts
+  0  17901 4436098011006          136      < puts
+  0  17901 4436098011014            7      > after
+  0  17901 4436099020588      1009573      < after
+  0  17901 4436099020611           23      > func_b
+  0  17901 4436099020646           34       -> func_b
+  0  17901 4436099020655            8          > puts
+  0  17901 4436099020697           41          < puts
+  0  17901 4436099020703            6          > after
+  0  17901 4436100030614      1009910          < after
+  0  17901 4436100030638           24          > func_c
+  0  17901 4436100030671           32           -> func_c
+  0  17901 4436100030680            9              > puts
+  0  17901 4436100030723           42              < puts
+  0  17901 4436100030729            6              > after
+  0  17901 4436101040600      1009870              < after
+  0  17901 4436101040623           22           <- func_c
+  0  17901 4436101040633           10          < func_c
+  0  17901 4436101040639            6       <- func_b
+  0  17901 4436101040645            5      < func_b
+  0  17901 4436101040651            5   <- func_a
+  0  17901 4436101040656            5  < func_a
+  0  17901 4436101040682           25  > exit
+
+You can see the output is in six columns.  
+
+The first column is CPU-id, the second is PID, third is the time since boot in
+microseconds, fourth is the elapsed time since the previous action.  The fifth
+and sixth columns represent the action.   The Tcl command or procedure name is
+prefixed by an indicator reprenting what is happening.  These may be ->
+(procedure entry), <- (procedure return), > (command entry), or < (command
+return).
+
+As each action is taken, the fifth and sixth columns are indented by 2 spaces.
+This shows which procedure or command is calling which.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcl_ins_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcl_ins_example.txt
new file mode 100644
index 0000000..6f1ba9a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcl_ins_example.txt
@@ -0,0 +1,46 @@
+The following are examples of running the script tcl_ins.d
+
+Here it traces as Code/Tcl/func_slow.tcl executes.
+
+# tcl_ins.d
+Tracing... Hit Ctrl-C to end.
+^C  
+    PID TYPE     NAME                                                    COUNT
+  16005 inst     foreach_start4                                              1
+  16005 inst     jumpTrue1                                                   1
+  16005 inst     lappendScalar1                                              1
+  16005 inst     list                                                        1
+  16005 inst     strneq                                                      1
+  16005 inst     beginCatch4                                                 2
+  16005 inst     dup                                                         2
+  16005 inst     endCatch                                                    2
+  16005 inst     eq                                                          2
+  16005 inst     land                                                        2
+  16005 inst     storeScalarStk                                              2
+  16005 inst     foreach_step4                                               4
+  16005 inst     not                                                         4
+  16005 inst     loadArrayStk                                                5
+  16005 inst     streq                                                       7
+  16005 inst     tryCvtToNumeric                                             8
+  16005 inst     jumpFalse1                                                 12
+  16005 inst     loadScalarStk                                              13
+  16005 inst     jump1                                                      14
+  16005 inst     pop                                                        18
+  16005 inst     invokeStk1                                                 53
+  16005 inst     add                                                    600000
+  16005 inst     concat1                                                600000
+  16005 inst     exprStk                                                600000
+  16005 inst     lt                                                     600007
+  16005 inst     storeScalar1                                           600016
+  16005 inst     done                                                   600021
+  16005 inst     loadScalar1                                           1200020
+  16005 inst     push1                                                 4200193
+
+It is showing the instructions called by Tcl as the program executes.  The
+larger counts toward the bottom of the display are from the looping construct
+used in Code/Tcl/func_slow.tcl. 
+
+Tracing the instructions is quite low-level and slow the target application
+considerably and would probably be used only as a last resort if you have no 
+other indication of why CPUs are busy.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcl_insflow_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcl_insflow_example.txt
new file mode 100644
index 0000000..2919f8e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcl_insflow_example.txt
@@ -0,0 +1,997 @@
+The following are examples of running tcl_insflow.d
+
+Here you can see the script running while tracing Code/Tcl/func_abc.tcl
+
+# tcl_insflow.d
+  C    PID TIME(us)         DELTA(us)  TYPE -- CALL
+  0 174829 4436207514685            3   cmd -> if
+  0 174829 4436207514793          107  inst   -> push1
+  0 174829 4436207514805           11  inst   <- push1
+  0 174829 4436207514814            8  inst   -> push1
+  0 174829 4436207514820            5  inst   <- push1
+  0 174829 4436207514826            5  inst   -> push1
+  0 174829 4436207514832            5  inst   <- push1
+  0 174829 4436207514838            5  inst   -> invokeStk1
+  0 174829 4436207514845            6   cmd     -> info
+  0 174829 4436207514883           38   cmd     <- info
+  0 174829 4436207514895           11  inst   <- invokeStk1
+  0 174829 4436207514901            6  inst   -> push1
+  0 174829 4436207514907            5  inst   <- push1
+  0 174829 4436207514913            5  inst   -> eq
+  0 174829 4436207514927           14  inst   <- eq
+  0 174829 4436207514933            6  inst   -> done
+  0 174829 4436207514940            6  inst   <- done
+  0 174829 4436207514978           38  inst   -> push1
+  0 174829 4436207514985            6  inst   <- push1
+  0 174829 4436207514991            5  inst   -> push1
+  0 174829 4436207514996            5  inst   <- push1
+  0 174829 4436207515002            5  inst   -> push1
+  0 174829 4436207515007            5  inst   <- push1
+  0 174829 4436207515013            5  inst   -> push1
+  0 174829 4436207515019            5  inst   <- push1
+  0 174829 4436207515024            5  inst   -> invokeStk1
+  0 174829 4436207515031            6   cmd     -> proc
+  0 174829 4436207515045           13   cmd     <- proc
+  0 174829 4436207515051            6  inst   <- invokeStk1
+  0 174829 4436207515057            6  inst   -> done
+  0 174829 4436207515063            5  inst   <- done
+  0 174829 4436207515069            6   cmd <- if
+  0 174829 4436207515086           16   cmd -> tclInit
+  0 174829 4436207515295          208  proc   -> tclInit
+  0 174829 4436207515305           10  inst     -> push1
+  0 174829 4436207515311            5  inst     <- push1
+  0 174829 4436207515317            6  inst     -> push1
+  0 174829 4436207515323            5  inst     <- push1
+  0 174829 4436207515328            5  inst     -> push1
+  0 174829 4436207515334            5  inst     <- push1
+  0 174829 4436207515340            5  inst     -> push1
+  0 174829 4436207515345            5  inst     <- push1
+  0 174829 4436207515351            5  inst     -> invokeStk1
+  0 174829 4436207515357            6   cmd       -> global
+  0 174829 4436207515369           11   cmd       <- global
+  0 174829 4436207515375            6  inst     <- invokeStk1
+  0 174829 4436207515381            5  inst     -> pop
+  0 174829 4436207515387            5  inst     <- pop
+  0 174829 4436207515393            5  inst     -> push1
+  0 174829 4436207515398            5  inst     <- push1
+  0 174829 4436207515404            5  inst     -> push1
+  0 174829 4436207515410            5  inst     <- push1
+  0 174829 4436207515415            5  inst     -> push1
+  0 174829 4436207515421            5  inst     <- push1
+  0 174829 4436207515427            5  inst     -> invokeStk1
+  0 174829 4436207515433            6   cmd       -> global
+  0 174829 4436207515440            7   cmd       <- global
+  0 174829 4436207515446            6  inst     <- invokeStk1
+  0 174829 4436207515452            5  inst     -> pop
+  0 174829 4436207515458            5  inst     <- pop
+  0 174829 4436207515463            5  inst     -> push1
+  0 174829 4436207515469            5  inst     <- push1
+  0 174829 4436207515475            5  inst     -> push1
+  0 174829 4436207515480            5  inst     <- push1
+  0 174829 4436207515486            5  inst     -> push1
+  0 174829 4436207515492            5  inst     <- push1
+  0 174829 4436207515497            5  inst     -> invokeStk1
+  0 174829 4436207515504            6   cmd       -> rename
+  0 174829 4436207515553           49   cmd       <- rename
+  0 174829 4436207515560            6  inst     <- invokeStk1
+  0 174829 4436207515566            6  inst     -> pop
+  0 174829 4436207515571            5  inst     <- pop
+  0 174829 4436207515577            5  inst     -> push1
+  0 174829 4436207515583            5  inst     <- push1
+  0 174829 4436207515589            5  inst     -> storeScalar1
+  0 174829 4436207515598            9  inst     <- storeScalar1
+  0 174829 4436207515605            6  inst     -> push1
+  0 174829 4436207515610            5  inst     <- push1
+  0 174829 4436207515616            5  inst     -> storeScalar1
+  0 174829 4436207515622            5  inst     <- storeScalar1
+  0 174829 4436207515628            5  inst     -> push1
+  0 174829 4436207515633            5  inst     <- push1
+  0 174829 4436207515639            5  inst     -> push1
+  0 174829 4436207515645            5  inst     <- push1
+  0 174829 4436207515650            5  inst     -> push1
+  0 174829 4436207515656            5  inst     <- push1
+  0 174829 4436207515662            5  inst     -> invokeStk1
+  0 174829 4436207515668            6   cmd       -> info
+  0 174829 4436207515679           10   cmd       <- info
+  0 174829 4436207515685            6  inst     <- invokeStk1
+  0 174829 4436207515691            5  inst     -> tryCvtToNumeric
+  0 174829 4436207515701           10  inst     <- tryCvtToNumeric
+  0 174829 4436207515708            6  inst     -> jumpFalse1
+  0 174829 4436207515714            5  inst     <- jumpFalse1
+  0 174829 4436207515719            5  inst     -> push1
+  0 174829 4436207515725            5  inst     <- push1
+  0 174829 4436207515731            5  inst     -> push1
+  0 174829 4436207515736            5  inst     <- push1
+  0 174829 4436207515742            5  inst     -> push1
+  0 174829 4436207515747            5  inst     <- push1
+  0 174829 4436207515753            5  inst     -> invokeStk1
+  0 174829 4436207515760            6   cmd       -> info
+  0 174829 4436207515787           27   cmd       <- info
+  0 174829 4436207515793            6  inst     <- invokeStk1
+  0 174829 4436207515799            5  inst     -> tryCvtToNumeric
+  0 174829 4436207515805            5  inst     <- tryCvtToNumeric
+  0 174829 4436207515811            5  inst     -> jumpFalse1
+  0 174829 4436207515817            5  inst     <- jumpFalse1
+  0 174829 4436207515823            5  inst     -> push1
+  0 174829 4436207515828            5  inst     <- push1
+  0 174829 4436207515834            5  inst     -> pop
+  0 174829 4436207515839            5  inst     <- pop
+  0 174829 4436207515845            5  inst     -> beginCatch4
+  0 174829 4436207515851            5  inst     <- beginCatch4
+  0 174829 4436207515857            5  inst     -> loadScalar1
+  0 174829 4436207515863            5  inst     <- loadScalar1
+  0 174829 4436207515868            5  inst     -> lappendScalar1
+  0 174829 4436207515877            8  inst     <- lappendScalar1
+  0 174829 4436207515883            6  inst     -> push1
+  0 174829 4436207515889            5  inst     <- push1
+  0 174829 4436207515895            5  inst     -> push1
+  0 174829 4436207515900            5  inst     <- push1
+  0 174829 4436207515906            5  inst     -> invokeStk1
+  0 174829 4436207515912            6   cmd       -> unset
+  0 174829 4436207515920            7   cmd       <- unset
+  0 174829 4436207515926            6  inst     <- invokeStk1
+  0 174829 4436207515932            5  inst     -> pop
+  0 174829 4436207515938            5  inst     <- pop
+  0 174829 4436207515943            5  inst     -> push1
+  0 174829 4436207515949            5  inst     <- push1
+  0 174829 4436207515955            5  inst     -> jump1
+  0 174829 4436207515960            5  inst     <- jump1
+  0 174829 4436207515966            5  inst     -> endCatch
+  0 174829 4436207515972            5  inst     <- endCatch
+  0 174829 4436207515977            5  inst     -> pop
+  0 174829 4436207515983            5  inst     <- pop
+  0 174829 4436207515989            5  inst     -> push1
+  0 174829 4436207515994            5  inst     <- push1
+  0 174829 4436207516000            5  inst     -> loadScalar1
+  0 174829 4436207516006            5  inst     <- loadScalar1
+  0 174829 4436207516012            5  inst     -> loadScalar1
+  0 174829 4436207516017            5  inst     <- loadScalar1
+  0 174829 4436207516023            5  inst     -> invokeStk1
+  0 174829 4436207516029            6   cmd       -> concat
+  0 174829 4436207516049           19   cmd       <- concat
+  0 174829 4436207516055            6  inst     <- invokeStk1
+  0 174829 4436207516061            5  inst     -> storeScalar1
+  0 174829 4436207516068            6  inst     <- storeScalar1
+  0 174829 4436207516074            6  inst     -> loadScalar1
+  0 174829 4436207516080            5  inst     <- loadScalar1
+  0 174829 4436207516085            5  inst     -> storeScalar1
+  0 174829 4436207516091            5  inst     <- storeScalar1
+  0 174829 4436207516097            5  inst     -> foreach_start4
+  0 174829 4436207516104            6  inst     <- foreach_start4
+  0 174829 4436207516110            6  inst     -> foreach_step4
+  0 174829 4436207516125           14  inst     <- foreach_step4
+  0 174829 4436207516131            5  inst     -> loadScalar1
+  0 174829 4436207516137            5  inst     <- loadScalar1
+  0 174829 4436207516143            5  inst     -> storeScalar1
+  0 174829 4436207516148            5  inst     <- storeScalar1
+  0 174829 4436207516154            5  inst     -> push1
+  0 174829 4436207516160            5  inst     <- push1
+  0 174829 4436207516165            5  inst     -> push1
+  0 174829 4436207516171            5  inst     <- push1
+  0 174829 4436207516177            5  inst     -> loadScalar1
+  0 174829 4436207516182            5  inst     <- loadScalar1
+  0 174829 4436207516188            5  inst     -> push1
+  0 174829 4436207516194            5  inst     <- push1
+  0 174829 4436207516200            5  inst     -> invokeStk1
+  0 174829 4436207516206            6   cmd       -> file
+  0 174829 4436207516218           12   cmd       <- file
+  0 174829 4436207516224            6  inst     <- invokeStk1
+  0 174829 4436207516230            5  inst     -> storeScalar1
+  0 174829 4436207516236            5  inst     <- storeScalar1
+  0 174829 4436207516242            5  inst     -> push1
+  0 174829 4436207516247            5  inst     <- push1
+  0 174829 4436207516253            5  inst     -> push1
+  0 174829 4436207516258            5  inst     <- push1
+  0 174829 4436207516264            5  inst     -> loadScalar1
+  0 174829 4436207516270            5  inst     <- loadScalar1
+  0 174829 4436207516276            5  inst     -> invokeStk1
+  0 174829 4436207516282            6   cmd       -> file
+  0 174829 4436207516368           86   cmd       <- file
+  0 174829 4436207516375            6  inst     <- invokeStk1
+  0 174829 4436207516381            6  inst     -> tryCvtToNumeric
+  0 174829 4436207516387            5  inst     <- tryCvtToNumeric
+  0 174829 4436207516393            5  inst     -> jumpFalse1
+  0 174829 4436207516398            5  inst     <- jumpFalse1
+  0 174829 4436207516404            5  inst     -> push1
+  0 174829 4436207516410            5  inst     <- push1
+  0 174829 4436207516416            5  inst     -> pop
+  0 174829 4436207516421            5  inst     <- pop
+  0 174829 4436207516427            5  inst     -> jump1
+  0 174829 4436207516432            5  inst     <- jump1
+  0 174829 4436207516438            5  inst     -> foreach_step4
+  0 174829 4436207516444            5  inst     <- foreach_step4
+  0 174829 4436207516450            5  inst     -> loadScalar1
+  0 174829 4436207516456            5  inst     <- loadScalar1
+  0 174829 4436207516462            6  inst     -> storeScalar1
+  0 174829 4436207516468            5  inst     <- storeScalar1
+  0 174829 4436207516473            5  inst     -> push1
+  0 174829 4436207516479            5  inst     <- push1
+  0 174829 4436207516485            5  inst     -> push1
+  0 174829 4436207516490            5  inst     <- push1
+  0 174829 4436207516496            5  inst     -> loadScalar1
+  0 174829 4436207516502            5  inst     <- loadScalar1
+  0 174829 4436207516508            5  inst     -> push1
+  0 174829 4436207516513            5  inst     <- push1
+  0 174829 4436207516519            5  inst     -> invokeStk1
+  0 174829 4436207516525            6   cmd       -> file
+  0 174829 4436207516536           10   cmd       <- file
+  0 174829 4436207516542            6  inst     <- invokeStk1
+  0 174829 4436207516548            5  inst     -> storeScalar1
+  0 174829 4436207516555            6  inst     <- storeScalar1
+  0 174829 4436207516561            6  inst     -> push1
+  0 174829 4436207516566            5  inst     <- push1
+  0 174829 4436207516572            5  inst     -> push1
+  0 174829 4436207516578            5  inst     <- push1
+  0 174829 4436207516583            5  inst     -> loadScalar1
+  0 174829 4436207516589            5  inst     <- loadScalar1
+  0 174829 4436207516595            5  inst     -> invokeStk1
+  0 174829 4436207516601            6   cmd       -> file
+  0 174829 4436207516709          107   cmd       <- file
+  0 174829 4436207516716            6  inst     <- invokeStk1
+  0 174829 4436207516722            6  inst     -> tryCvtToNumeric
+  0 174829 4436207516728            5  inst     <- tryCvtToNumeric
+  0 174829 4436207516733            5  inst     -> jumpFalse1
+  0 174829 4436207516739            5  inst     <- jumpFalse1
+  0 174829 4436207516745            5  inst     -> push1
+  0 174829 4436207516751            5  inst     <- push1
+  0 174829 4436207516756            5  inst     -> pop
+  0 174829 4436207516762            5  inst     <- pop
+  0 174829 4436207516768            5  inst     -> jump1
+  0 174829 4436207516773            5  inst     <- jump1
+  0 174829 4436207516779            5  inst     -> foreach_step4
+  0 174829 4436207516785            5  inst     <- foreach_step4
+  0 174829 4436207516791            5  inst     -> loadScalar1
+  0 174829 4436207516796            5  inst     <- loadScalar1
+  0 174829 4436207516802            5  inst     -> storeScalar1
+  0 174829 4436207516808            5  inst     <- storeScalar1
+  0 174829 4436207516814            5  inst     -> push1
+  0 174829 4436207516820            5  inst     <- push1
+  0 174829 4436207516825            5  inst     -> push1
+  0 174829 4436207516831            5  inst     <- push1
+  0 174829 4436207516837            5  inst     -> loadScalar1
+  0 174829 4436207516842            5  inst     <- loadScalar1
+  0 174829 4436207516848            5  inst     -> push1
+  0 174829 4436207516854            5  inst     <- push1
+  0 174829 4436207516859            5  inst     -> invokeStk1
+  0 174829 4436207516866            6   cmd       -> file
+  0 174829 4436207516876           10   cmd       <- file
+  0 174829 4436207516882            6  inst     <- invokeStk1
+  0 174829 4436207516888            5  inst     -> storeScalar1
+  0 174829 4436207516895            6  inst     <- storeScalar1
+  0 174829 4436207516901            6  inst     -> push1
+  0 174829 4436207516906            5  inst     <- push1
+  0 174829 4436207516912            5  inst     -> push1
+  0 174829 4436207516918            5  inst     <- push1
+  0 174829 4436207516923            5  inst     -> loadScalar1
+  0 174829 4436207516929            5  inst     <- loadScalar1
+  0 174829 4436207516935            5  inst     -> invokeStk1
+  0 174829 4436207516941            6   cmd       -> file
+  0 174829 4436207517027           86   cmd       <- file
+  0 174829 4436207517034            6  inst     <- invokeStk1
+  0 174829 4436207517040            6  inst     -> tryCvtToNumeric
+  0 174829 4436207517046            5  inst     <- tryCvtToNumeric
+  0 174829 4436207517052            5  inst     -> jumpFalse1
+  0 174829 4436207517057            5  inst     <- jumpFalse1
+  0 174829 4436207517063            5  inst     -> push1
+  0 174829 4436207517069            5  inst     <- push1
+  0 174829 4436207517075            5  inst     -> pop
+  0 174829 4436207517080            5  inst     <- pop
+  0 174829 4436207517086            5  inst     -> jump1
+  0 174829 4436207517091            5  inst     <- jump1
+  0 174829 4436207517097            5  inst     -> foreach_step4
+  0 174829 4436207517103            5  inst     <- foreach_step4
+  0 174829 4436207517109            5  inst     -> loadScalar1
+  0 174829 4436207517115            5  inst     <- loadScalar1
+  0 174829 4436207517121            5  inst     -> storeScalar1
+  0 174829 4436207517127            5  inst     <- storeScalar1
+  0 174829 4436207517132            5  inst     -> push1
+  0 174829 4436207517138            5  inst     <- push1
+  0 174829 4436207517144            5  inst     -> push1
+  0 174829 4436207517149            5  inst     <- push1
+  0 174829 4436207517155            5  inst     -> loadScalar1
+  0 174829 4436207517161            5  inst     <- loadScalar1
+  0 174829 4436207517167            5  inst     -> push1
+  0 174829 4436207517172            5  inst     <- push1
+  0 174829 4436207517178            5  inst     -> invokeStk1
+  0 174829 4436207517184            6   cmd       -> file
+  0 174829 4436207517194           10   cmd       <- file
+  0 174829 4436207517201            6  inst     <- invokeStk1
+  0 174829 4436207517206            5  inst     -> storeScalar1
+  0 174829 4436207517213            6  inst     <- storeScalar1
+  0 174829 4436207517219            5  inst     -> push1
+  0 174829 4436207517225            5  inst     <- push1
+  0 174829 4436207517231            5  inst     -> push1
+  0 174829 4436207517236            5  inst     <- push1
+  0 174829 4436207517242            5  inst     -> loadScalar1
+  0 174829 4436207517247            5  inst     <- loadScalar1
+  0 174829 4436207517253            5  inst     -> invokeStk1
+  0 174829 4436207517260            6   cmd       -> file
+  0 174829 4436207517313           53   cmd       <- file
+  0 174829 4436207517319            6  inst     <- invokeStk1
+  0 174829 4436207517325            5  inst     -> tryCvtToNumeric
+  0 174829 4436207517331            6  inst     <- tryCvtToNumeric
+  0 174829 4436207517337            5  inst     -> jumpFalse1
+  0 174829 4436207517343            5  inst     <- jumpFalse1
+  0 174829 4436207517348            5  inst     -> beginCatch4
+  0 174829 4436207517354            5  inst     <- beginCatch4
+  0 174829 4436207517360            6  inst     -> push1
+  0 174829 4436207517366            5  inst     <- push1
+  0 174829 4436207517371            5  inst     -> push1
+  0 174829 4436207517377            5  inst     <- push1
+  0 174829 4436207517383            5  inst     -> push1
+  0 174829 4436207517388            5  inst     <- push1
+  0 174829 4436207517394            5  inst     -> loadScalar1
+  0 174829 4436207517400            5  inst     <- loadScalar1
+  0 174829 4436207517405            5  inst     -> list
+  0 174829 4436207517412            6  inst     <- list
+  0 174829 4436207517418            5  inst     -> invokeStk1
+  0 174829 4436207517424            6   cmd       -> uplevel
+  0 174829 4436207517436           11   cmd         -> source
+  0 174829 4436207517878          441   cmd           -> if
+  0 174829 4436207517897           18  inst             -> push1
+  0 174829 4436207517903            6  inst             <- push1
+  0 174829 4436207517910            6  inst             -> push1
+  0 174829 4436207517915            5  inst             <- push1
+  0 174829 4436207517921            5  inst             -> push1
+  0 174829 4436207517927            5  inst             <- push1
+  0 174829 4436207517932            5  inst             -> invokeStk1
+  0 174829 4436207517939            6   cmd               -> info
+  0 174829 4436207517947            8   cmd               <- info
+  0 174829 4436207517954            6  inst             <- invokeStk1
+  0 174829 4436207517960            5  inst             -> push1
+  0 174829 4436207517965            5  inst             <- push1
+  0 174829 4436207517971            5  inst             -> eq
+  0 174829 4436207517979            7  inst             <- eq
+  0 174829 4436207517985            5  inst             -> done
+  0 174829 4436207517991            5  inst             <- done
+  0 174829 4436207517997            6   cmd           <- if
+  0 174829 4436207518010           12   cmd           -> package
+  0 174829 4436207518021           10   cmd           <- package
+  0 174829 4436207518034           13   cmd           -> if
+  0 174829 4436207518046           11  inst             -> push1
+  0 174829 4436207518051            5  inst             <- push1
+  0 174829 4436207518057            5  inst             -> push1
+  0 174829 4436207518063            5  inst             <- push1
+  0 174829 4436207518068            5  inst             -> push1
+  0 174829 4436207518074            5  inst             <- push1
+  0 174829 4436207518080            5  inst             -> invokeStk1
+  0 174829 4436207518086            6   cmd               -> info
+  0 174829 4436207518094            7   cmd               <- info
+  0 174829 4436207518099            5  inst             <- invokeStk1
+  0 174829 4436207518105            5  inst             -> not
+  0 174829 4436207518111            6  inst             <- not
+  0 174829 4436207518117            5  inst             -> done
+  0 174829 4436207518123            5  inst             <- done
+  0 174829 4436207518147           24  inst             -> push1
+  0 174829 4436207518153            5  inst             <- push1
+  0 174829 4436207518159            5  inst             -> push1
+  0 174829 4436207518164            5  inst             <- push1
+  0 174829 4436207518170            5  inst             -> push1
+  0 174829 4436207518175            5  inst             <- push1
+  0 174829 4436207518181            5  inst             -> invokeStk1
+  0 174829 4436207518187            6   cmd               -> info
+  0 174829 4436207518212           25   cmd               <- info
+  0 174829 4436207518218            6  inst             <- invokeStk1
+  0 174829 4436207518224            5  inst             -> tryCvtToNumeric
+  0 174829 4436207518230            5  inst             <- tryCvtToNumeric
+  0 174829 4436207518236            5  inst             -> jumpFalse1
+  0 174829 4436207518242            5  inst             <- jumpFalse1
+  0 174829 4436207518248            5  inst             -> push1
+  0 174829 4436207518253            5  inst             <- push1
+  0 174829 4436207518259            5  inst             -> push1
+  0 174829 4436207518264            5  inst             <- push1
+  0 174829 4436207518270            5  inst             -> storeScalarStk
+  0 174829 4436207518278            7  inst             <- storeScalarStk
+  0 174829 4436207518284            5  inst             -> done
+  0 174829 4436207518289            5  inst             <- done
+  0 174829 4436207518295            6   cmd           <- if
+  0 174829 4436207518315           19   cmd           -> namespace
+  0 174829 4436207518421          106  inst             -> push1
+  0 174829 4436207518428            6  inst             <- push1
+  0 174829 4436207518434            5  inst             -> push1
+  0 174829 4436207518440            5  inst             <- push1
+  0 174829 4436207518445            5  inst             -> invokeStk1
+  0 174829 4436207518452            6   cmd               -> variable
+  0 174829 4436207518460            8   cmd               <- variable
+  0 174829 4436207518466            6  inst             <- invokeStk1
+  0 174829 4436207518472            5  inst             -> pop
+  0 174829 4436207518477            5  inst             <- pop
+  0 174829 4436207518483            5  inst             -> push1
+  0 174829 4436207518489            5  inst             <- push1
+  0 174829 4436207518494            5  inst             -> push1
+  0 174829 4436207518500            5  inst             <- push1
+  0 174829 4436207518506            5  inst             -> invokeStk1
+  0 174829 4436207518513            7   cmd               -> info
+  0 174829 4436207518526           13   cmd               <- info
+  0 174829 4436207518532            6  inst             <- invokeStk1
+  0 174829 4436207518538            5  inst             -> push1
+  0 174829 4436207518544            5  inst             <- push1
+  0 174829 4436207518549            5  inst             -> strneq
+  0 174829 4436207518555            6  inst             <- strneq
+  0 174829 4436207518561            5  inst             -> push1
+  0 174829 4436207518567            5  inst             <- push1
+  0 174829 4436207518573            5  inst             -> push1
+  0 174829 4436207518578            5  inst             <- push1
+  0 174829 4436207518584            5  inst             -> push1
+  0 174829 4436207518589            5  inst             <- push1
+  0 174829 4436207518595            5  inst             -> push1
+  0 174829 4436207518600            5  inst             <- push1
+  0 174829 4436207518606            5  inst             -> push1
+  0 174829 4436207518612            5  inst             <- push1
+  0 174829 4436207518617            5  inst             -> invokeStk1
+  0 174829 4436207518624            6   cmd               -> info
+  0 174829 4436207518631            7   cmd               <- info
+  0 174829 4436207518637            6  inst             <- invokeStk1
+  0 174829 4436207518643            5  inst             -> push1
+  0 174829 4436207518648            5  inst             <- push1
+  0 174829 4436207518654            5  inst             -> push1
+  0 174829 4436207518660            5  inst             <- push1
+  0 174829 4436207518665            5  inst             -> push1
+  0 174829 4436207518671            5  inst             <- push1
+  0 174829 4436207518677            5  inst             -> push1
+  0 174829 4436207518682            5  inst             <- push1
+  0 174829 4436207518688            5  inst             -> invokeStk1
+  0 174829 4436207518694            6   cmd               -> info
+  0 174829 4436207518701            7   cmd               <- info
+  0 174829 4436207518707            6  inst             <- invokeStk1
+  0 174829 4436207518713            5  inst             -> invokeStk1
+  0 174829 4436207518720            7   cmd               -> file
+  0 174829 4436207518741           20   cmd               <- file
+  0 174829 4436207518748            6  inst             <- invokeStk1
+  0 174829 4436207518753            5  inst             -> invokeStk1
+  0 174829 4436207518760            6   cmd               -> list
+  0 174829 4436207518768            8   cmd               <- list
+  0 174829 4436207518774            6  inst             <- invokeStk1
+  0 174829 4436207518780            5  inst             -> push1
+  0 174829 4436207518786            5  inst             <- push1
+  0 174829 4436207518791            5  inst             -> invokeStk1
+  0 174829 4436207518798            6   cmd               -> foreach
+  0 174829 4436207518821           23  inst                 -> push1
+  0 174829 4436207518827            6  inst                 <- push1
+  0 174829 4436207518833            5  inst                 -> push1
+  0 174829 4436207518839            5  inst                 <- push1
+  0 174829 4436207518844            5  inst                 -> push1
+  0 174829 4436207518850            5  inst                 <- push1
+  0 174829 4436207518856            5  inst                 -> loadScalarStk
+  0 174829 4436207518862            6  inst                 <- loadScalarStk
+  0 174829 4436207518868            5  inst                 -> push1
+  0 174829 4436207518874            5  inst                 <- push1
+  0 174829 4436207518879            5  inst                 -> loadScalarStk
+  0 174829 4436207518886            6  inst                 <- loadScalarStk
+  0 174829 4436207518892            5  inst                 -> invokeStk1
+  0 174829 4436207518898            6   cmd                   -> lsearch
+  0 174829 4436207518906            8   cmd                   <- lsearch
+  0 174829 4436207518913            6  inst                 <- invokeStk1
+  0 174829 4436207518918            5  inst                 -> push1
+  0 174829 4436207518924            5  inst                 <- push1
+  0 174829 4436207518930            5  inst                 -> lt
+  0 174829 4436207518936            6  inst                 <- lt
+  0 174829 4436207518942            5  inst                 -> push1
+  0 174829 4436207518947            5  inst                 <- push1
+  0 174829 4436207518953            5  inst                 -> push1
+  0 174829 4436207518958            5  inst                 <- push1
+  0 174829 4436207518964            5  inst                 -> push1
+  0 174829 4436207518969            5  inst                 <- push1
+  0 174829 4436207518975            5  inst                 -> loadScalarStk
+  0 174829 4436207518981            6  inst                 <- loadScalarStk
+  0 174829 4436207518987            5  inst                 -> invokeStk1
+  0 174829 4436207518993            6   cmd                   -> lappend
+  0 174829 4436207519002            8   cmd                   <- lappend
+  0 174829 4436207519008            6  inst                 <- invokeStk1
+  0 174829 4436207519013            5  inst                 -> jump1
+  0 174829 4436207519019            5  inst                 <- jump1
+  0 174829 4436207519025            5  inst                 -> done
+  0 174829 4436207519030            5  inst                 <- done
+  0 174829 4436207519038            8  inst                 -> push1
+  0 174829 4436207519044            5  inst                 <- push1
+  0 174829 4436207519050            5  inst                 -> push1
+  0 174829 4436207519055            5  inst                 <- push1
+  0 174829 4436207519061            5  inst                 -> push1
+  0 174829 4436207519066            5  inst                 <- push1
+  0 174829 4436207519072            5  inst                 -> loadScalarStk
+  0 174829 4436207519078            5  inst                 <- loadScalarStk
+  0 174829 4436207519084            5  inst                 -> push1
+  0 174829 4436207519090            5  inst                 <- push1
+  0 174829 4436207519095            5  inst                 -> loadScalarStk
+  0 174829 4436207519102            6  inst                 <- loadScalarStk
+  0 174829 4436207519108            5  inst                 -> invokeStk1
+  0 174829 4436207519114            6   cmd                   -> lsearch
+  0 174829 4436207519120            6   cmd                   <- lsearch
+  0 174829 4436207519126            5  inst                 <- invokeStk1
+  0 174829 4436207519132            5  inst                 -> push1
+  0 174829 4436207519138            5  inst                 <- push1
+  0 174829 4436207519143            5  inst                 -> lt
+  0 174829 4436207519149            5  inst                 <- lt
+  0 174829 4436207519155            5  inst                 -> push1
+  0 174829 4436207519160            5  inst                 <- push1
+  0 174829 4436207519166            5  inst                 -> push1
+  0 174829 4436207519171            5  inst                 <- push1
+  0 174829 4436207519177            5  inst                 -> push1
+  0 174829 4436207519182            5  inst                 <- push1
+  0 174829 4436207519188            5  inst                 -> loadScalarStk
+  0 174829 4436207519194            5  inst                 <- loadScalarStk
+  0 174829 4436207519200            5  inst                 -> invokeStk1
+  0 174829 4436207519206            6   cmd                   -> lappend
+  0 174829 4436207519213            7   cmd                   <- lappend
+  0 174829 4436207519219            6  inst                 <- invokeStk1
+  0 174829 4436207519225            5  inst                 -> jump1
+  0 174829 4436207519231            5  inst                 <- jump1
+  0 174829 4436207519236            5  inst                 -> done
+  0 174829 4436207519242            5  inst                 <- done
+  0 174829 4436207519248            6   cmd               <- foreach
+  0 174829 4436207519255            6  inst             <- invokeStk1
+  0 174829 4436207519260            5  inst             -> jump1
+  0 174829 4436207519266            5  inst             <- jump1
+  0 174829 4436207519272            5  inst             -> pop
+  0 174829 4436207519277            5  inst             <- pop
+  0 174829 4436207519283            5  inst             -> push1
+  0 174829 4436207519288            5  inst             <- push1
+  0 174829 4436207519294            5  inst             -> push1
+  0 174829 4436207519300            5  inst             <- push1
+  0 174829 4436207519305            5  inst             -> push1
+  0 174829 4436207519311            5  inst             <- push1
+  0 174829 4436207519316            5  inst             -> push1
+  0 174829 4436207519322            5  inst             <- push1
+  0 174829 4436207519328            5  inst             -> push1
+  0 174829 4436207519333            5  inst             <- push1
+  0 174829 4436207519339            5  inst             -> push1
+  0 174829 4436207519344            5  inst             <- push1
+  0 174829 4436207519350            5  inst             -> push1
+  0 174829 4436207519356            5  inst             <- push1
+  0 174829 4436207519362            5  inst             -> push1
+  0 174829 4436207519367            5  inst             <- push1
+  0 174829 4436207519373            5  inst             -> push1
+  0 174829 4436207519378            5  inst             <- push1
+  0 174829 4436207519384            5  inst             -> invokeStk1
+  0 174829 4436207519390            6   cmd               -> info
+  0 174829 4436207519399            8   cmd               <- info
+  0 174829 4436207519405            5  inst             <- invokeStk1
+  0 174829 4436207519411            5  inst             -> invokeStk1
+  0 174829 4436207519417            6   cmd               -> file
+  0 174829 4436207519435           18   cmd               <- file
+  0 174829 4436207519442            6  inst             <- invokeStk1
+  0 174829 4436207519448            5  inst             -> invokeStk1
+  0 174829 4436207519454            6   cmd               -> file
+  0 174829 4436207519471           17   cmd               <- file
+  0 174829 4436207519478            6  inst             <- invokeStk1
+  0 174829 4436207519484            5  inst             -> push1
+  0 174829 4436207519490            5  inst             <- push1
+  0 174829 4436207519495            5  inst             -> invokeStk1
+  0 174829 4436207519502            6   cmd               -> file
+  0 174829 4436207519512            9   cmd               <- file
+  0 174829 4436207519518            6  inst             <- invokeStk1
+  0 174829 4436207519524            5  inst             -> storeScalarStk
+  0 174829 4436207519530            6  inst             <- storeScalarStk
+  0 174829 4436207519536            6  inst             -> push1
+  0 174829 4436207519542            5  inst             <- push1
+  0 174829 4436207519547            5  inst             -> push1
+  0 174829 4436207519553            5  inst             <- push1
+  0 174829 4436207519559            5  inst             -> push1
+  0 174829 4436207519564            5  inst             <- push1
+  0 174829 4436207519570            5  inst             -> loadScalarStk
+  0 174829 4436207519576            6  inst             <- loadScalarStk
+  0 174829 4436207519582            5  inst             -> push1
+  0 174829 4436207519587            5  inst             <- push1
+  0 174829 4436207519593            5  inst             -> loadScalarStk
+  0 174829 4436207519599            5  inst             <- loadScalarStk
+  0 174829 4436207519605            5  inst             -> invokeStk1
+  0 174829 4436207519611            6   cmd               -> lsearch
+  0 174829 4436207519617            6   cmd               <- lsearch
+  0 174829 4436207519623            6  inst             <- invokeStk1
+  0 174829 4436207519629            5  inst             -> push1
+  0 174829 4436207519635            5  inst             <- push1
+  0 174829 4436207519640            5  inst             -> lt
+  0 174829 4436207519646            5  inst             <- lt
+  0 174829 4436207519652            5  inst             -> push1
+  0 174829 4436207519657            5  inst             <- push1
+  0 174829 4436207519663            5  inst             -> push1
+  0 174829 4436207519668            5  inst             <- push1
+  0 174829 4436207519674            5  inst             -> push1
+  0 174829 4436207519679            5  inst             <- push1
+  0 174829 4436207519685            5  inst             -> loadScalarStk
+  0 174829 4436207519691            5  inst             <- loadScalarStk
+  0 174829 4436207519697            5  inst             -> invokeStk1
+  0 174829 4436207519703            6   cmd               -> lappend
+  0 174829 4436207519710            6   cmd               <- lappend
+  0 174829 4436207519716            6  inst             <- invokeStk1
+  0 174829 4436207519722            5  inst             -> jump1
+  0 174829 4436207519727            5  inst             <- jump1
+  0 174829 4436207519733            5  inst             -> pop
+  0 174829 4436207519739            5  inst             <- pop
+  0 174829 4436207519744            5  inst             -> push1
+  0 174829 4436207519750            5  inst             <- push1
+  0 174829 4436207519756            5  inst             -> push1
+  0 174829 4436207519761            5  inst             <- push1
+  0 174829 4436207519767            5  inst             -> push1
+  0 174829 4436207519772            5  inst             <- push1
+  0 174829 4436207519778            5  inst             -> invokeStk1
+  0 174829 4436207519784            6   cmd               -> info
+  0 174829 4436207519791            6   cmd               <- info
+  0 174829 4436207519797            6  inst             <- invokeStk1
+  0 174829 4436207519803            5  inst             -> tryCvtToNumeric
+  0 174829 4436207519809            5  inst             <- tryCvtToNumeric
+  0 174829 4436207519815            5  inst             -> jumpFalse1
+  0 174829 4436207519820            5  inst             <- jumpFalse1
+  0 174829 4436207519826            5  inst             -> push1
+  0 174829 4436207519832            5  inst             <- push1
+  0 174829 4436207519837            5  inst             -> push1
+  0 174829 4436207519843            5  inst             <- push1
+  0 174829 4436207519849            5  inst             -> push1
+  0 174829 4436207519854            5  inst             <- push1
+  0 174829 4436207519860            5  inst             -> loadScalarStk
+  0 174829 4436207519866            6  inst             <- loadScalarStk
+  0 174829 4436207519872            5  inst             -> push1
+  0 174829 4436207519877            5  inst             <- push1
+  0 174829 4436207519883            5  inst             -> invokeStk1
+  0 174829 4436207519889            6   cmd               -> foreach
+  0 174829 4436207519899            9  inst                 -> push1
+  0 174829 4436207519904            5  inst                 <- push1
+  0 174829 4436207519910            5  inst                 -> push1
+  0 174829 4436207519915            5  inst                 <- push1
+  0 174829 4436207519921            5  inst                 -> push1
+  0 174829 4436207519927            5  inst                 <- push1
+  0 174829 4436207519932            5  inst                 -> loadScalarStk
+  0 174829 4436207519938            6  inst                 <- loadScalarStk
+  0 174829 4436207519944            5  inst                 -> push1
+  0 174829 4436207519950            5  inst                 <- push1
+  0 174829 4436207519955            5  inst                 -> loadScalarStk
+  0 174829 4436207519962            6  inst                 <- loadScalarStk
+  0 174829 4436207519968            5  inst                 -> invokeStk1
+  0 174829 4436207519974            6   cmd                   -> lsearch
+  0 174829 4436207519980            6   cmd                   <- lsearch
+  0 174829 4436207519986            6  inst                 <- invokeStk1
+  0 174829 4436207519992            5  inst                 -> push1
+  0 174829 4436207519998            5  inst                 <- push1
+  0 174829 4436207520003            5  inst                 -> lt
+  0 174829 4436207520009            5  inst                 <- lt
+  0 174829 4436207520015            5  inst                 -> push1
+  0 174829 4436207520020            5  inst                 <- push1
+  0 174829 4436207520026            5  inst                 -> push1
+  0 174829 4436207520031            5  inst                 <- push1
+  0 174829 4436207520037            5  inst                 -> push1
+  0 174829 4436207520043            5  inst                 <- push1
+  0 174829 4436207520048            5  inst                 -> loadScalarStk
+  0 174829 4436207520054            5  inst                 <- loadScalarStk
+  0 174829 4436207520060            5  inst                 -> invokeStk1
+  0 174829 4436207520066            6   cmd                   -> lappend
+  0 174829 4436207520073            6   cmd                   <- lappend
+  0 174829 4436207520079            5  inst                 <- invokeStk1
+  0 174829 4436207520085            5  inst                 -> jump1
+  0 174829 4436207520090            5  inst                 <- jump1
+  0 174829 4436207520096            5  inst                 -> done
+  0 174829 4436207520102            5  inst                 <- done
+  0 174829 4436207520108            6   cmd               <- foreach
+  0 174829 4436207520114            5  inst             <- invokeStk1
+  0 174829 4436207520119            5  inst             -> jump1
+  0 174829 4436207520125            5  inst             <- jump1
+  0 174829 4436207520131            5  inst             -> done
+  0 174829 4436207520136            5  inst             <- done
+  0 174829 4436207520143            6   cmd           <- namespace
+  0 174829 4436207520171           28   cmd           -> if
+  0 174829 4436207520192           20  inst             -> push1
+  0 174829 4436207520198            6  inst             <- push1
+  0 174829 4436207520203            5  inst             -> push1
+  0 174829 4436207520209            5  inst             <- push1
+  0 174829 4436207520215            5  inst             -> invokeStk1
+  0 174829 4436207520221            6   cmd               -> interp
+  0 174829 4436207520230            9   cmd               <- interp
+  0 174829 4436207520236            5  inst             <- invokeStk1
+  0 174829 4436207520242            5  inst             -> not
+  0 174829 4436207520247            5  inst             <- not
+  0 174829 4436207520253            5  inst             -> jumpTrue1
+  0 174829 4436207520259            5  inst             <- jumpTrue1
+  0 174829 4436207520265            5  inst             -> push1
+  0 174829 4436207520270            5  inst             <- push1
+  0 174829 4436207520276            5  inst             -> dup
+  0 174829 4436207520281            5  inst             <- dup
+  0 174829 4436207520287            5  inst             -> jumpFalse1
+  0 174829 4436207520293            5  inst             <- jumpFalse1
+  0 174829 4436207520298            5  inst             -> push1
+  0 174829 4436207520304            5  inst             <- push1
+  0 174829 4436207520310            5  inst             -> push1
+  0 174829 4436207520315            5  inst             <- push1
+  0 174829 4436207520321            5  inst             -> loadArrayStk
+  0 174829 4436207520328            6  inst             <- loadArrayStk
+  0 174829 4436207520334            5  inst             -> push1
+  0 174829 4436207520339            5  inst             <- push1
+  0 174829 4436207520345            5  inst             -> streq
+  0 174829 4436207520351            5  inst             <- streq
+  0 174829 4436207520357            5  inst             -> land
+  0 174829 4436207520363            6  inst             <- land
+  0 174829 4436207520368            5  inst             -> done
+  0 174829 4436207520374            5  inst             <- done
+  0 174829 4436207520381            6   cmd           <- if
+  0 174829 4436207520394           13   cmd           -> package
+  0 174829 4436207520401            6   cmd           <- package
+  0 174829 4436207520413           11   cmd           -> if
+  0 174829 4436207520424           11  inst             -> push1
+  0 174829 4436207520429            5  inst             <- push1
+  0 174829 4436207520435            5  inst             -> push1
+  0 174829 4436207520441            5  inst             <- push1
+  0 174829 4436207520446            5  inst             -> invokeStk1
+  0 174829 4436207520453            6   cmd               -> interp
+  0 174829 4436207520459            6   cmd               <- interp
+  0 174829 4436207520465            5  inst             <- invokeStk1
+  0 174829 4436207520471            5  inst             -> not
+  0 174829 4436207520476            5  inst             <- not
+  0 174829 4436207520482            5  inst             -> done
+  0 174829 4436207520488            5  inst             <- done
+  0 174829 4436207520527           39  inst             -> push1
+  0 174829 4436207520533            5  inst             <- push1
+  0 174829 4436207520539            5  inst             -> push1
+  0 174829 4436207520544            5  inst             <- push1
+  0 174829 4436207520550            5  inst             -> loadArrayStk
+  0 174829 4436207520557            6  inst             <- loadArrayStk
+  0 174829 4436207520563            5  inst             -> push1
+  0 174829 4436207520568            5  inst             <- push1
+  0 174829 4436207520574            5  inst             -> streq
+  0 174829 4436207520580            5  inst             <- streq
+  0 174829 4436207520586            5  inst             -> push1
+  0 174829 4436207520591            5  inst             <- push1
+  0 174829 4436207520597            5  inst             -> dup
+  0 174829 4436207520602            5  inst             <- dup
+  0 174829 4436207520608            5  inst             -> jumpFalse1
+  0 174829 4436207520614            5  inst             <- jumpFalse1
+  0 174829 4436207520619            5  inst             -> push1
+  0 174829 4436207520625            5  inst             <- push1
+  0 174829 4436207520631            5  inst             -> push1
+  0 174829 4436207520636            5  inst             <- push1
+  0 174829 4436207520642            5  inst             -> loadArrayStk
+  0 174829 4436207520648            6  inst             <- loadArrayStk
+  0 174829 4436207520654            5  inst             -> push1
+  0 174829 4436207520660            5  inst             <- push1
+  0 174829 4436207520665            5  inst             -> streq
+  0 174829 4436207520671            5  inst             <- streq
+  0 174829 4436207520677            5  inst             -> land
+  0 174829 4436207520682            5  inst             <- land
+  0 174829 4436207520688            5  inst             -> jumpFalse1
+  0 174829 4436207520694            5  inst             <- jumpFalse1
+  0 174829 4436207520700            5  inst             -> push1
+  0 174829 4436207520705            5  inst             <- push1
+  0 174829 4436207520711            5  inst             -> pop
+  0 174829 4436207520716            5  inst             <- pop
+  0 174829 4436207520722            5  inst             -> push1
+  0 174829 4436207520728            5  inst             <- push1
+  0 174829 4436207520733            5  inst             -> push1
+  0 174829 4436207520739            5  inst             <- push1
+  0 174829 4436207520744            5  inst             -> loadArrayStk
+  0 174829 4436207520751            6  inst             <- loadArrayStk
+  0 174829 4436207520757            5  inst             -> push1
+  0 174829 4436207520762            5  inst             <- push1
+  0 174829 4436207520768            5  inst             -> streq
+  0 174829 4436207520773            5  inst             <- streq
+  0 174829 4436207520779            5  inst             -> push1
+  0 174829 4436207520785            5  inst             <- push1
+  0 174829 4436207520791            5  inst             -> done
+  0 174829 4436207520796            5  inst             <- done
+  0 174829 4436207520802            6   cmd           <- if
+  0 174829 4436207520822           19   cmd           -> if
+  0 174829 4436207520835           13  inst             -> push1
+  0 174829 4436207520841            5  inst             <- push1
+  0 174829 4436207520847            5  inst             -> push1
+  0 174829 4436207520852            5  inst             <- push1
+  0 174829 4436207520858            5  inst             -> push1
+  0 174829 4436207520864            5  inst             <- push1
+  0 174829 4436207520869            5  inst             -> push1
+  0 174829 4436207520875            5  inst             <- push1
+  0 174829 4436207520881            5  inst             -> invokeStk1
+  0 174829 4436207520887            6   cmd               -> namespace
+  0 174829 4436207520896            8   cmd               <- namespace
+  0 174829 4436207520902            6  inst             <- invokeStk1
+  0 174829 4436207520908            5  inst             -> push1
+  0 174829 4436207520913            5  inst             <- push1
+  0 174829 4436207520919            5  inst             -> streq
+  0 174829 4436207520925            6  inst             <- streq
+  0 174829 4436207520931            5  inst             -> done
+  0 174829 4436207520936            5  inst             <- done
+  0 174829 4436207520942            6   cmd           <- if
+  0 174829 4436207521503          560   cmd           -> set
+  0 174829 4436207521515           11   cmd           <- set
+  0 174829 4436207521524            9   cmd           -> set
+  0 174829 4436207521531            6   cmd           <- set
+  0 174829 4436207521541           10   cmd           -> if
+  0 174829 4436207521559           17  inst             -> push1
+  0 174829 4436207521566            7  inst             <- push1
+  0 174829 4436207521573            6  inst             -> push1
+  0 174829 4436207521578            5  inst             <- push1
+  0 174829 4436207521584            5  inst             -> push1
+  0 174829 4436207521590            5  inst             <- push1
+  0 174829 4436207521596            5  inst             -> push1
+  0 174829 4436207521601            5  inst             <- push1
+  0 174829 4436207521607            5  inst             -> invokeStk1
+  0 174829 4436207521613            6   cmd               -> namespace
+  0 174829 4436207521621            7   cmd               <- namespace
+  0 174829 4436207521627            6  inst             <- invokeStk1
+  0 174829 4436207521633            5  inst             -> push1
+  0 174829 4436207521639            5  inst             <- push1
+  0 174829 4436207521644            5  inst             -> streq
+  0 174829 4436207521650            5  inst             <- streq
+  0 174829 4436207521656            5  inst             -> done
+  0 174829 4436207521662            5  inst             <- done
+  0 174829 4436207521674           11  inst             -> push1
+  0 174829 4436207521679            5  inst             <- push1
+  0 174829 4436207521685            5  inst             -> push1
+  0 174829 4436207521691            5  inst             <- push1
+  0 174829 4436207521697            5  inst             -> push1
+  0 174829 4436207521702            5  inst             <- push1
+  0 174829 4436207521708            5  inst             -> push1
+  0 174829 4436207521714            5  inst             <- push1
+  0 174829 4436207521720            5  inst             -> invokeStk1
+  0 174829 4436207521726            6   cmd               -> proc
+  0 174829 4436207521738           12   cmd               <- proc
+  0 174829 4436207521744            6  inst             <- invokeStk1
+  0 174829 4436207521750            5  inst             -> done
+  0 174829 4436207521756            5  inst             <- done
+  0 174829 4436207521762            6   cmd           <- if
+  0 174829 4436207521862           99   cmd           -> proc
+  0 174829 4436207521872           10   cmd           <- proc
+  0 174829 4436207521891           19   cmd           -> proc
+  0 174829 4436207521902           10   cmd           <- proc
+  0 174829 4436207521932           30   cmd           -> proc
+  0 174829 4436207521941            8   cmd           <- proc
+  0 174829 4436207521961           19   cmd           -> proc
+  0 174829 4436207521970            9   cmd           <- proc
+  0 174829 4436207521985           14   cmd           -> proc
+  0 174829 4436207521994            8   cmd           <- proc
+  0 174829 4436207522039           45   cmd           -> if
+  0 174829 4436207522053           14  inst             -> push1
+  0 174829 4436207522059            5  inst             <- push1
+  0 174829 4436207522065            6  inst             -> push1
+  0 174829 4436207522070            5  inst             <- push1
+  0 174829 4436207522076            5  inst             -> loadArrayStk
+  0 174829 4436207522083            7  inst             <- loadArrayStk
+  0 174829 4436207522089            5  inst             -> push1
+  0 174829 4436207522094            5  inst             <- push1
+  0 174829 4436207522100            5  inst             -> streq
+  0 174829 4436207522106            5  inst             <- streq
+  0 174829 4436207522112            5  inst             -> done
+  0 174829 4436207522117            5  inst             <- done
+  0 174829 4436207522134           16  inst             -> push1
+  0 174829 4436207522140            5  inst             <- push1
+  0 174829 4436207522146            5  inst             -> push1
+  0 174829 4436207522151            5  inst             <- push1
+  0 174829 4436207522157            5  inst             -> push1
+  0 174829 4436207522163            5  inst             <- push1
+  0 174829 4436207522168            5  inst             -> push1
+  0 174829 4436207522174            5  inst             <- push1
+  0 174829 4436207522180            5  inst             -> invokeStk1
+  0 174829 4436207522186            6   cmd               -> proc
+  0 174829 4436207522205           19   cmd               <- proc
+  0 174829 4436207522212            6  inst             <- invokeStk1
+  0 174829 4436207522218            5  inst             -> done
+  0 174829 4436207522223            5  inst             <- done
+  0 174829 4436207522230            6   cmd           <- if
+  0 174829 4436207522274           44   cmd           -> proc
+  0 174829 4436207522286           11   cmd           <- proc
+  0 174829 4436207522294            8   cmd         <- source
+  0 174829 4436207522301            6   cmd       <- uplevel
+  0 174829 4436207522307            6  inst     <- invokeStk1
+  0 174829 4436207522313            6  inst     -> storeScalar1
+  0 174829 4436207522319            5  inst     <- storeScalar1
+  0 174829 4436207522325            5  inst     -> push1
+  0 174829 4436207522331            5  inst     <- push1
+  0 174829 4436207522337            5  inst     -> jump1
+  0 174829 4436207522342            5  inst     <- jump1
+  0 174829 4436207522348            5  inst     -> endCatch
+  0 174829 4436207522354            5  inst     <- endCatch
+  0 174829 4436207522360            5  inst     -> not
+  0 174829 4436207522366            5  inst     <- not
+  0 174829 4436207522371            5  inst     -> jumpFalse1
+  0 174829 4436207522377            5  inst     <- jumpFalse1
+  0 174829 4436207522383            5  inst     -> push1
+  0 174829 4436207522389            5  inst     <- push1
+  0 174829 4436207522394            5  inst     -> done
+  0 174829 4436207522400            5  inst     <- done
+  0 174829 4436207522409            8  proc   <- tclInit
+  0 174829 4436207522426           17   cmd <- tclInit
+  0 174829 4436207522671          245   cmd -> proc
+  0 174829 4436207522681            9   cmd <- proc
+  0 174829 4436207522691            9   cmd -> proc
+  0 174829 4436207522698            7   cmd <- proc
+  0 174829 4436207522708            9   cmd -> proc
+  0 174829 4436207522715            7   cmd <- proc
+  0 174829 4436207522723            8   cmd -> func_a
+  0 174829 4436207522742           18  proc   -> func_a
+  0 174829 4436207522752           10  inst     -> push1
+  0 174829 4436207522757            5  inst     <- push1
+  0 174829 4436207522763            5  inst     -> push1
+  0 174829 4436207522769            5  inst     <- push1
+  0 174829 4436207522775            5  inst     -> invokeStk1
+  0 174829 4436207522781            6   cmd       -> puts
+  0 174829 4436207523212          430   cmd       <- puts
+  0 174829 4436207523266           54  inst     <- invokeStk1
+  0 174829 4436207523275            8  inst     -> pop
+  0 174829 4436207523281            6  inst     <- pop
+  0 174829 4436207523287            5  inst     -> push1
+  0 174829 4436207523292            5  inst     <- push1
+  0 174829 4436207523298            5  inst     -> push1
+  0 174829 4436207523304            5  inst     <- push1
+  0 174829 4436207523310            5  inst     -> invokeStk1
+  0 174829 4436207523318            7   cmd       -> after
+  0 174829 4436208530951      1007632   cmd       <- after
+  0 174829 4436208530972           21  inst     <- invokeStk1
+  0 174829 4436208530984           12  inst     -> pop
+  0 174829 4436208530993            9  inst     <- pop
+  0 174829 4436208530999            5  inst     -> push1
+  0 174829 4436208531005            5  inst     <- push1
+  0 174829 4436208531010            5  inst     -> invokeStk1
+  0 174829 4436208531021           10   cmd       -> func_b
+  0 174829 4436208531057           35  proc         -> func_b
+  0 174829 4436208531067           10  inst           -> push1
+  0 174829 4436208531073            5  inst           <- push1
+  0 174829 4436208531079            5  inst           -> push1
+  0 174829 4436208531084            5  inst           <- push1
+  0 174829 4436208531090            5  inst           -> invokeStk1
+  0 174829 4436208531096            6   cmd             -> puts
+  0 174829 4436208531137           40   cmd             <- puts
+  0 174829 4436208531144            6  inst           <- invokeStk1
+  0 174829 4436208531150            5  inst           -> pop
+  0 174829 4436208531155            5  inst           <- pop
+  0 174829 4436208531161            5  inst           -> push1
+  0 174829 4436208531166            5  inst           <- push1
+  0 174829 4436208531172            5  inst           -> push1
+  0 174829 4436208531178            5  inst           <- push1
+  0 174829 4436208531184            5  inst           -> invokeStk1
+  0 174829 4436208531190            6   cmd             -> after
+  0 174829 4436209540924      1009734   cmd             <- after
+  0 174829 4436209540946           21  inst           <- invokeStk1
+  0 174829 4436209540957           11  inst           -> pop
+  0 174829 4436209540967            9  inst           <- pop
+  0 174829 4436209540973            5  inst           -> push1
+  0 174829 4436209540978            5  inst           <- push1
+  0 174829 4436209540984            5  inst           -> invokeStk1
+  0 174829 4436209540995           10   cmd             -> func_c
+  0 174829 4436209541029           34  proc               -> func_c
+  0 174829 4436209541039           10  inst                 -> push1
+  0 174829 4436209541045            5  inst                 <- push1
+  0 174829 4436209541051            5  inst                 -> push1
+  0 174829 4436209541056            5  inst                 <- push1
+  0 174829 4436209541062            5  inst                 -> invokeStk1
+  0 174829 4436209541068            6   cmd                   -> puts
+  0 174829 4436209541111           42   cmd                   <- puts
+  0 174829 4436209541118            7  inst                 <- invokeStk1
+  0 174829 4436209541124            5  inst                 -> pop
+  0 174829 4436209541129            5  inst                 <- pop
+  0 174829 4436209541135            5  inst                 -> push1
+  0 174829 4436209541141            5  inst                 <- push1
+  0 174829 4436209541147            5  inst                 -> push1
+  0 174829 4436209541153            5  inst                 <- push1
+  0 174829 4436209541158            5  inst                 -> invokeStk1
+  0 174829 4436209541165            6   cmd                   -> after
+  0 174829 4436210550785      1009619   cmd                   <- after
+  0 174829 4436210550807           22  inst                 <- invokeStk1
+  0 174829 4436210550819           11  inst                 -> done
+  0 174829 4436210550830           10  inst                 <- done
+  0 174829 4436210550839            9  proc               <- func_c
+  0 174829 4436210550850           11   cmd             <- func_c
+  0 174829 4436210550856            6  inst           <- invokeStk1
+  0 174829 4436210550862            5  inst           -> done
+  0 174829 4436210550868            5  inst           <- done
+  0 174829 4436210550874            6  proc         <- func_b
+  0 174829 4436210550880            6   cmd       <- func_b
+  0 174829 4436210550887            6  inst     <- invokeStk1
+  0 174829 4436210550892            5  inst     -> done
+  0 174829 4436210550898            5  inst     <- done
+  0 174829 4436210550904            6  proc   <- func_a
+  0 174829 4436210550911            6   cmd <- func_a
+  0 174829 4436210550938           27   cmd -> exit
+
+As you can see the output is quite long, and in seven columns.  The first
+column is the CPU the action is on.  The second is the PID.  The third is the
+time since boot in microseconds.  
+
+The fourth column is the number of microseconds that has elapsed between the
+previous line and the current one.
+
+The fifth column is the type of event that occurred (procedure, command or
+instruction).
+
+The sixth and seventh columns are indented by 2 spaces to show when a new
+event occurs.  This shows us which command is calling which.
+
+If the output looks strange, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcl_proccalls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcl_proccalls_example.txt
new file mode 100644
index 0000000..ed6820d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcl_proccalls_example.txt
@@ -0,0 +1,17 @@
+Following are examples of running tcl_proccalls.d.
+
+The output shows what happens when the code from Code/Tcl/func_abc.tcl is
+traced.
+
+# tcl_proccalls.d
+Tracing... Hit Ctrl-C to end.
+^C
+    PID    COUNT PROCEDURE
+  16078        1 func_a
+  16078        1 func_b
+  16078        1 func_c
+  16078        1 tclInit
+
+This simple output shows that PID 16078 was responsible for four procedures
+beginning, one each of func_a, func_b, func_c, and tclInit.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcl_procflow_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcl_procflow_example.txt
new file mode 100644
index 0000000..93b822e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcl_procflow_example.txt
@@ -0,0 +1,29 @@
+The following are examples of tcl_procflow.d.
+
+This is a simple script to trace the flow of Tcl procedures.
+
+Here it traces the example program, Code/Tcl/func_abc.tcl.
+
+# tcl_procflow.d
+  C    PID TIME(us)         -- PROCEDURE
+  0  16073 3904971507502    -> tclInit
+  0  16073 3904971509096    <- tclInit
+  0  16073 3904971509305    -> func_a
+  0  16073 3904972511039      -> func_b
+  0  16073 3904973521023        -> func_c
+  0  16073 3904974530998        <- func_c
+  0  16073 3904974531008      <- func_b
+  0  16073 3904974531014    <- func_a
+^C
+
+As each procedure starts, the third column is indented by 2 spaces. This
+shows which procedure is calling which - the output above begins with an init
+procedure and then shows that func_a began, and then called func_b.
+
+The columns are CPU, PID, Time since boot, indicator and procedure name.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcl_stat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcl_stat_example.txt
new file mode 100644
index 0000000..178fef1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcl_stat_example.txt
@@ -0,0 +1,24 @@
+Following are examples of running tcl_stat.d on Tcl programs.
+
+tcl_stat.d shows you the number of events per second that have happened since
+the last line output.  The default interval is 1 second, but you can specify
+other intervals as arguments to the script.
+
+This shows the sh_stat.d script reflecting the Code/Tcl/func_abc.tcl program.
+
+# tcl_stat.d
+TIME                 EXEC/s   PROC/s    CMD/s OBJNEW/s OBJFRE/s     OP/s
+2007 Sep 26 23:34:36      0        0        0        0        0        0
+2007 Sep 26 23:34:37      1        2       75      911      805      377
+2007 Sep 26 23:34:38      0        1        3        4        2       10
+2007 Sep 26 23:34:39      0        1        3        3        2       10
+2007 Sep 26 23:34:40      0        0        1        7        8        3
+2007 Sep 26 23:34:41      0        0        0        0        0        0
+2007 Sep 26 23:34:42      0        0        0        0        0        0
+^C
+
+ At 2007 Sep 26 23:34:37 we can see that there was one Tcl program executed
+(this number may include those programs without Tcl provider support), two
+procedures called, 75 new commands created, 911 objects created,  805 objects
+freed, and 377 bytecode operations.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcl_syscalls_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcl_syscalls_example.txt
new file mode 100644
index 0000000..5553b1c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcl_syscalls_example.txt
@@ -0,0 +1,66 @@
+The following are examples of sh_syscalls.d.
+
+This is a simple script to count Tcl commands, procedures and system calls.
+
+Here we trace an example program - Code/Tcl/func_abc.tcl.
+
+# tcl_syscalls.d -c './tclsh func_abc.tcl '
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+    PID TYPE     NAME                                                    COUNT
+  16580 cmd      concat                                                      1
+  16580 cmd      exit                                                        1
+  16580 cmd      func_a                                                      1
+  16580 cmd      func_b                                                      1
+  16580 cmd      func_c                                                      1
+  16580 cmd      list                                                        1
+  16580 cmd      rename                                                      1
+  16580 cmd      source                                                      1
+  16580 cmd      tclInit                                                     1
+  16580 cmd      unset                                                       1
+  16580 cmd      uplevel                                                     1
+  16580 cmd      variable                                                    1
+  16580 proc     func_a                                                      1
+  16580 proc     func_b                                                      1
+  16580 proc     func_c                                                      1
+  16580 proc     tclInit                                                     1
+  16580 syscall  getpid                                                      1
+  16580 syscall  getrlimit                                                   1
+  16580 syscall  mmap                                                        1
+  16580 syscall  munmap                                                      1
+  16580 syscall  rexit                                                       1
+  16580 syscall  sigaction                                                   1
+  16580 syscall  sigpending                                                  1
+  16580 syscall  sysi86                                                      1
+  16580 syscall  uname                                                       1
+  16580 cmd      foreach                                                     2
+  16580 cmd      global                                                      2
+  16580 cmd      interp                                                      2
+  16580 cmd      package                                                     2
+  16580 cmd      set                                                         2
+  16580 syscall  setcontext                                                  2
+  16580 syscall  stat64                                                      2
+  16580 syscall  sysconfig                                                   2
+  16580 cmd      after                                                       3
+  16580 cmd      namespace                                                   3
+  16580 cmd      puts                                                        3
+  16580 syscall  pollsys                                                     3
+  16580 syscall  write                                                       3
+  16580 cmd      lappend                                                     4
+  16580 cmd      lsearch                                                     4
+  16580 syscall  close                                                       5
+  16580 syscall  llseek                                                      6
+  16580 cmd      if                                                          8
+  16580 cmd      info                                                       11
+  16580 syscall  read                                                       11
+  16580 cmd      file                                                       12
+  16580 cmd      proc                                                       12
+  16580 syscall  fcntl                                                      12
+  16580 syscall  ioctl                                                      12
+  16580 syscall  open64                                                     14
+  16580 syscall  resolvepath                                                25
+  16580 syscall  brk                                                        27
+  16580 syscall  access                                                     54
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcl_syscolors_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcl_syscolors_example.txt
new file mode 100644
index 0000000..b592986
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcl_syscolors_example.txt
@@ -0,0 +1,563 @@
+The following are examples of tcl_syscolors.d.
+
+This is a simple script to trace the flow of Tcl processes, Tcl commands and
+system calls made, and renders the output in color ("colour") using terminal 
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Tcl/func_abc.tcl.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# tcl_syscolors.d -c './tclsh func_abc.tcl
+Function A
+  C    PID DELTA(us) TYPE     -- NAME
+[2;32m  0  16624         2 syscall  -> munmap[0m
+[2;32m  0  16624        31 syscall  <- munmap[0m
+[2;32m  0  16624        52 syscall  -> mmap[0m
+[2;32m  0  16624        21 syscall  <- mmap[0m
+[2;32m  0  16624        38 syscall  -> setcontext[0m
+[2;32m  0  16624         8 syscall  <- setcontext[0m
+[2;32m  0  16624         8 syscall  -> getrlimit[0m
+[2;32m  0  16624         9 syscall  <- getrlimit[0m
+[2;32m  0  16624         8 syscall  -> getpid[0m
+[2;32m  0  16624         7 syscall  <- getpid[0m
+[2;32m  0  16624        68 syscall  -> setcontext[0m
+[2;32m  0  16624         7 syscall  <- setcontext[0m
+[2;32m  0  16624       177 syscall  -> sigpending[0m
+[2;32m  0  16624         8 syscall  <- sigpending[0m
+[2;32m  0  16624        88 syscall  -> sysconfig[0m
+[2;32m  0  16624         7 syscall  <- sysconfig[0m
+[2;32m  0  16624       107 syscall  -> open64[0m
+[2;32m  0  16624       115 syscall  <- open64[0m
+[2;32m  0  16624        13 syscall  -> ioctl[0m
+[2;32m  0  16624        64 syscall  <- ioctl[0m
+[2;32m  0  16624        16 syscall  -> close[0m
+[2;32m  0  16624        17 syscall  <- close[0m
+[2;32m  0  16624      1208 syscall  -> sysi86[0m
+[2;32m  0  16624         9 syscall  <- sysi86[0m
+[2;32m  0  16624       146 syscall  -> llseek[0m
+[2;32m  0  16624        10 syscall  <- llseek[0m
+[2;32m  0  16624         7 syscall  -> llseek[0m
+[2;32m  0  16624         7 syscall  <- llseek[0m
+[2;32m  0  16624         7 syscall  -> llseek[0m
+[2;32m  0  16624         6 syscall  <- llseek[0m
+[2;32m  0  16624        24 syscall  -> sigaction[0m
+[2;32m  0  16624         8 syscall  <- sigaction[0m
+[2;32m  0  16624        63 syscall  -> brk[0m
+[2;32m  0  16624         9 syscall  <- brk[0m
+[2;32m  0  16624         7 syscall  -> brk[0m
+[2;32m  0  16624        14 syscall  <- brk[0m
+[2;32m  0  16624        76 syscall  -> brk[0m
+[2;32m  0  16624         7 syscall  <- brk[0m
+[2;32m  0  16624         7 syscall  -> brk[0m
+[2;32m  0  16624        12 syscall  <- brk[0m
+[2;32m  0  16624       328 syscall  -> resolvepath[0m
+[2;32m  0  16624        35 syscall  <- resolvepath[0m
+[2;32m  0  16624        24 syscall  -> access[0m
+[2;32m  0  16624        10 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        10 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        11 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        13 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        14 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        16 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> resolvepath[0m
+[2;32m  0  16624        17 syscall  <- resolvepath[0m
+[2;32m  0  16624        32 syscall  -> open64[0m
+[2;32m  0  16624        22 syscall  <- open64[0m
+[2;32m  0  16624        32 syscall  -> resolvepath[0m
+[2;32m  0  16624        18 syscall  <- resolvepath[0m
+[2;32m  0  16624         8 syscall  -> access[0m
+[2;32m  0  16624         8 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624         9 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        11 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        12 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        14 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> resolvepath[0m
+[2;32m  0  16624        15 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        16 syscall  <- open64[0m
+[2;32m  0  16624        30 syscall  -> resolvepath[0m
+[2;32m  0  16624        23 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        21 syscall  <- open64[0m
+[2;32m  0  16624        29 syscall  -> resolvepath[0m
+[2;32m  0  16624        17 syscall  <- resolvepath[0m
+[2;32m  0  16624         8 syscall  -> access[0m
+[2;32m  0  16624         8 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624         9 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        11 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        12 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        14 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> resolvepath[0m
+[2;32m  0  16624        15 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        15 syscall  <- open64[0m
+[2;32m  0  16624        30 syscall  -> resolvepath[0m
+[2;32m  0  16624        20 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        20 syscall  <- open64[0m
+[2;32m  0  16624        29 syscall  -> resolvepath[0m
+[2;32m  0  16624        16 syscall  <- resolvepath[0m
+[2;32m  0  16624         8 syscall  -> access[0m
+[2;32m  0  16624         8 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        10 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        11 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        12 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> resolvepath[0m
+[2;32m  0  16624        14 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        14 syscall  <- open64[0m
+[2;32m  0  16624        28 syscall  -> resolvepath[0m
+[2;32m  0  16624        20 syscall  <- resolvepath[0m
+[2;32m  0  16624         8 syscall  -> access[0m
+[2;32m  0  16624         8 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624         9 syscall  <- access[0m
+[2;32m  0  16624        43 syscall  -> access[0m
+[2;32m  0  16624        12 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        13 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> resolvepath[0m
+[2;32m  0  16624        13 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        14 syscall  <- open64[0m
+[2;32m  0  16624        10 syscall  -> sysconfig[0m
+[2;32m  0  16624         7 syscall  <- sysconfig[0m
+[2;32m  0  16624        33 syscall  -> resolvepath[0m
+[2;32m  0  16624        19 syscall  <- resolvepath[0m
+[2;32m  0  16624         8 syscall  -> access[0m
+[2;32m  0  16624         8 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624         9 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        11 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        13 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        14 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        15 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> resolvepath[0m
+[2;32m  0  16624        17 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        18 syscall  <- open64[0m
+[2;32m  0  16624        30 syscall  -> resolvepath[0m
+[2;32m  0  16624        17 syscall  <- resolvepath[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624         8 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624         9 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        11 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        12 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> access[0m
+[2;32m  0  16624        14 syscall  <- access[0m
+[2;32m  0  16624         7 syscall  -> resolvepath[0m
+[2;32m  0  16624        15 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        16 syscall  <- open64[0m
+[2;32m  0  16624        30 syscall  -> resolvepath[0m
+[2;32m  0  16624        21 syscall  <- resolvepath[0m
+[2;32m  0  16624        11 syscall  -> open64[0m
+[2;32m  0  16624        25 syscall  <- open64[0m
+[2;32m  0  16624        15 syscall  -> fcntl[0m
+[2;32m  0  16624         7 syscall  <- fcntl[0m
+[2;32m  0  16624        31 syscall  -> ioctl[0m
+[2;32m  0  16624         8 syscall  <- ioctl[0m
+[2;32m  0  16624        49 syscall  -> brk[0m
+[2;32m  0  16624         8 syscall  <- brk[0m
+[2;32m  0  16624         7 syscall  -> brk[0m
+[2;32m  0  16624        11 syscall  <- brk[0m
+[2;32m  0  16624        30 syscall  -> read[0m
+[2;32m  0  16624        35 syscall  <- read[0m
+[2;32m  0  16624        54 syscall  -> read[0m
+[2;32m  0  16624         8 syscall  <- read[0m
+[2;32m  0  16624        21 syscall  -> close[0m
+[2;32m  0  16624        10 syscall  <- close[0m
+[2;32m  0  16624        51 syscall  -> brk[0m
+[2;32m  0  16624         7 syscall  <- brk[0m
+[2;32m  0  16624         7 syscall  -> brk[0m
+[2;32m  0  16624         9 syscall  <- brk[0m
+[2;32m  0  16624       111 syscall  -> brk[0m
+[2;32m  0  16624         7 syscall  <- brk[0m
+[2;32m  0  16624         7 syscall  -> brk[0m
+[2;32m  0  16624         8 syscall  <- brk[0m
+[2;32m  0  16624        94 syscall  -> uname[0m
+[2;32m  0  16624         8 syscall  <- uname[0m
+[2;32m  0  16624        47 syscall  -> ioctl[0m
+[2;32m  0  16624        35 syscall  <- ioctl[0m
+[2;35m  0  16624        73 cmd      -> if[0m
+[2;35m  0  16624        89 cmd        -> info[0m
+[2;35m  0  16624        25 cmd        <- info[0m
+[2;35m  0  16624        46 cmd        -> proc[0m
+[2;32m  0  16624        11 syscall      -> brk[0m
+[2;32m  0  16624         7 syscall      <- brk[0m
+[2;32m  0  16624         7 syscall      -> brk[0m
+[2;32m  0  16624         9 syscall      <- brk[0m
+[2;35m  0  16624        23 cmd        <- proc[0m
+[2;35m  0  16624         9 cmd      <- if[0m
+[2;35m  0  16624        18 cmd      -> tclInit[0m
+[2;35m  0  16624       223 proc       -> tclInit[0m
+[2;35m  0  16624        12 cmd          -> global[0m
+[2;35m  0  16624        12 cmd          <- global[0m
+[2;35m  0  16624         9 cmd          -> global[0m
+[2;35m  0  16624         9 cmd          <- global[0m
+[2;35m  0  16624         8 cmd          -> rename[0m
+[2;35m  0  16624        24 cmd          <- rename[0m
+[2;35m  0  16624        13 cmd          -> info[0m
+[2;35m  0  16624        12 cmd          <- info[0m
+[2;35m  0  16624        13 cmd          -> info[0m
+[2;35m  0  16624        19 cmd          <- info[0m
+[2;35m  0  16624        11 cmd          -> unset[0m
+[2;35m  0  16624        13 cmd          <- unset[0m
+[2;35m  0  16624         9 cmd          -> concat[0m
+[2;35m  0  16624        15 cmd          <- concat[0m
+[2;35m  0  16624        18 cmd          -> file[0m
+[2;35m  0  16624        20 cmd          <- file[0m
+[2;35m  0  16624         8 cmd          -> file[0m
+[2;32m  0  16624        25 syscall        -> resolvepath[0m
+[2;32m  0  16624        24 syscall        <- resolvepath[0m
+[2;32m  0  16624         9 syscall        -> access[0m
+[2;32m  0  16624         8 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624         9 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        11 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        12 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> resolvepath[0m
+[2;32m  0  16624        14 syscall        <- resolvepath[0m
+[2;32m  0  16624        12 syscall        -> access[0m
+[2;32m  0  16624        13 syscall        <- access[0m
+[2;35m  0  16624         9 cmd          <- file[0m
+[2;35m  0  16624        10 cmd          -> file[0m
+[2;35m  0  16624        12 cmd          <- file[0m
+[2;35m  0  16624         9 cmd          -> file[0m
+[2;32m  0  16624        24 syscall        -> resolvepath[0m
+[2;32m  0  16624        23 syscall        <- resolvepath[0m
+[2;32m  0  16624         8 syscall        -> access[0m
+[2;32m  0  16624         8 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624         9 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        11 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        13 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        14 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        16 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> resolvepath[0m
+[2;32m  0  16624        17 syscall        <- resolvepath[0m
+[2;32m  0  16624        12 syscall        -> access[0m
+[2;32m  0  16624        16 syscall        <- access[0m
+[2;35m  0  16624        29 cmd          <- file[0m
+[2;35m  0  16624        10 cmd          -> file[0m
+[2;35m  0  16624        12 cmd          <- file[0m
+[2;35m  0  16624         9 cmd          -> file[0m
+[2;32m  0  16624        23 syscall        -> resolvepath[0m
+[2;32m  0  16624        20 syscall        <- resolvepath[0m
+[2;32m  0  16624         8 syscall        -> access[0m
+[2;32m  0  16624         9 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        10 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        11 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        13 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> access[0m
+[2;32m  0  16624        14 syscall        <- access[0m
+[2;32m  0  16624         7 syscall        -> resolvepath[0m
+[2;32m  0  16624        15 syscall        <- resolvepath[0m
+[2;32m  0  16624        11 syscall        -> access[0m
+[2;32m  0  16624        14 syscall        <- access[0m
+[2;35m  0  16624         7 cmd          <- file[0m
+[2;35m  0  16624         9 cmd          -> file[0m
+[2;35m  0  16624        12 cmd          <- file[0m
+[2;35m  0  16624         9 cmd          -> file[0m
+[2;32m  0  16624        23 syscall        -> resolvepath[0m
+[2;32m  0  16624        20 syscall        <- resolvepath[0m
+[2;32m  0  16624        11 syscall        -> access[0m
+[2;32m  0  16624        19 syscall        <- access[0m
+[2;35m  0  16624         7 cmd          <- file[0m
+[2;35m  0  16624        10 cmd          -> uplevel[0m
+[2;35m  0  16624        13 cmd            -> source[0m
+[2;32m  0  16624        14 syscall          -> stat64[0m
+[2;32m  0  16624        23 syscall          <- stat64[0m
+[2;32m  0  16624        10 syscall          -> open64[0m
+[2;32m  0  16624        23 syscall          <- open64[0m
+[2;32m  0  16624         8 syscall          -> fcntl[0m
+[2;32m  0  16624         7 syscall          <- fcntl[0m
+[2;32m  0  16624         8 syscall          -> ioctl[0m
+[2;32m  0  16624         7 syscall          <- ioctl[0m
+[2;32m  0  16624        26 syscall          -> read[0m
+[2;32m  0  16624        29 syscall          <- read[0m
+[2;32m  0  16624         8 syscall          -> brk[0m
+[2;32m  0  16624         7 syscall          <- brk[0m
+[2;32m  0  16624         7 syscall          -> brk[0m
+[2;32m  0  16624         9 syscall          <- brk[0m
+[2;32m  0  16624        57 syscall          -> read[0m
+[2;32m  0  16624        15 syscall          <- read[0m
+[2;32m  0  16624        55 syscall          -> read[0m
+[2;32m  0  16624        14 syscall          <- read[0m
+[2;32m  0  16624         8 syscall          -> brk[0m
+[2;32m  0  16624         6 syscall          <- brk[0m
+[2;32m  0  16624         7 syscall          -> brk[0m
+[2;32m  0  16624         6 syscall          <- brk[0m
+[2;32m  0  16624         7 syscall          -> brk[0m
+[2;32m  0  16624         8 syscall          <- brk[0m
+[2;32m  0  16624        63 syscall          -> read[0m
+[2;32m  0  16624        14 syscall          <- read[0m
+[2;32m  0  16624        45 syscall          -> read[0m
+[2;32m  0  16624        13 syscall          <- read[0m
+[2;32m  0  16624         8 syscall          -> brk[0m
+[2;32m  0  16624         6 syscall          <- brk[0m
+[2;32m  0  16624         7 syscall          -> brk[0m
+[2;32m  0  16624         6 syscall          <- brk[0m
+[2;32m  0  16624         7 syscall          -> brk[0m
+[2;32m  0  16624         8 syscall          <- brk[0m
+[2;32m  0  16624        63 syscall          -> read[0m
+[2;32m  0  16624        14 syscall          <- read[0m
+[2;32m  0  16624        29 syscall          -> read[0m
+[2;32m  0  16624         7 syscall          <- read[0m
+[2;32m  0  16624        10 syscall          -> close[0m
+[2;32m  0  16624        10 syscall          <- close[0m
+[2;35m  0  16624        18 cmd              -> if[0m
+[2;35m  0  16624        19 cmd                -> info[0m
+[2;35m  0  16624        10 cmd                <- info[0m
+[2;35m  0  16624        12 cmd              <- if[0m
+[2;35m  0  16624        14 cmd              -> package[0m
+[2;35m  0  16624        12 cmd              <- package[0m
+[2;35m  0  16624        15 cmd              -> if[0m
+[2;35m  0  16624        12 cmd                -> info[0m
+[2;35m  0  16624         9 cmd                <- info[0m
+[2;35m  0  16624        26 cmd                -> info[0m
+[2;35m  0  16624        16 cmd                <- info[0m
+[2;35m  0  16624        10 cmd              <- if[0m
+[2;35m  0  16624        21 cmd              -> namespace[0m
+[2;35m  0  16624        87 cmd                -> variable[0m
+[2;35m  0  16624        10 cmd                <- variable[0m
+[2;35m  0  16624         9 cmd                -> info[0m
+[2;35m  0  16624        13 cmd                <- info[0m
+[2;35m  0  16624         9 cmd                -> info[0m
+[2;35m  0  16624         8 cmd                <- info[0m
+[2;35m  0  16624         8 cmd                -> info[0m
+[2;35m  0  16624         8 cmd                <- info[0m
+[2;35m  0  16624         9 cmd                -> file[0m
+[2;35m  0  16624        21 cmd                <- file[0m
+[2;35m  0  16624         9 cmd                -> list[0m
+[2;35m  0  16624        17 cmd                <- list[0m
+[2;35m  0  16624         8 cmd                -> foreach[0m
+[2;35m  0  16624        27 cmd                  -> lsearch[0m
+[2;35m  0  16624        10 cmd                  <- lsearch[0m
+[2;35m  0  16624        10 cmd                  -> lappend[0m
+[2;35m  0  16624         9 cmd                  <- lappend[0m
+[2;35m  0  16624        11 cmd                  -> lsearch[0m
+[2;35m  0  16624         8 cmd                  <- lsearch[0m
+[2;35m  0  16624         8 cmd                  -> lappend[0m
+[2;35m  0  16624         8 cmd                  <- lappend[0m
+[2;35m  0  16624         8 cmd                <- foreach[0m
+[2;35m  0  16624         8 cmd                -> info[0m
+[2;35m  0  16624        10 cmd                <- info[0m
+[2;35m  0  16624         8 cmd                -> file[0m
+[2;32m  0  16624        15 syscall              -> brk[0m
+[2;32m  0  16624         7 syscall              <- brk[0m
+[2;32m  0  16624         7 syscall              -> brk[0m
+[2;32m  0  16624         9 syscall              <- brk[0m
+[2;35m  0  16624        24 cmd                <- file[0m
+[2;35m  0  16624         9 cmd                -> file[0m
+[2;35m  0  16624        19 cmd                <- file[0m
+[2;35m  0  16624         9 cmd                -> file[0m
+[2;35m  0  16624        11 cmd                <- file[0m
+[2;35m  0  16624        10 cmd                -> lsearch[0m
+[2;35m  0  16624         8 cmd                <- lsearch[0m
+[2;35m  0  16624         9 cmd                -> lappend[0m
+[2;35m  0  16624         8 cmd                <- lappend[0m
+[2;35m  0  16624         8 cmd                -> info[0m
+[2;35m  0  16624         8 cmd                <- info[0m
+[2;35m  0  16624         9 cmd                -> foreach[0m
+[2;35m  0  16624        12 cmd                  -> lsearch[0m
+[2;35m  0  16624         8 cmd                  <- lsearch[0m
+[2;35m  0  16624         8 cmd                  -> lappend[0m
+[2;35m  0  16624         8 cmd                  <- lappend[0m
+[2;35m  0  16624         8 cmd                <- foreach[0m
+[2;35m  0  16624         8 cmd              <- namespace[0m
+[2;35m  0  16624        30 cmd              -> if[0m
+[2;35m  0  16624        22 cmd                -> interp[0m
+[2;35m  0  16624        17 cmd                <- interp[0m
+[2;35m  0  16624        11 cmd              <- if[0m
+[2;35m  0  16624        15 cmd              -> package[0m
+[2;35m  0  16624         8 cmd              <- package[0m
+[2;35m  0  16624        13 cmd              -> if[0m
+[2;35m  0  16624        12 cmd                -> interp[0m
+[2;35m  0  16624         8 cmd                <- interp[0m
+[2;35m  0  16624        44 cmd              <- if[0m
+[2;35m  0  16624        21 cmd              -> if[0m
+[2;35m  0  16624        15 cmd                -> namespace[0m
+[2;35m  0  16624        10 cmd                <- namespace[0m
+[2;35m  0  16624         9 cmd              <- if[0m
+[2;35m  0  16624        13 cmd              -> set[0m
+[2;35m  0  16624         9 cmd              <- set[0m
+[2;35m  0  16624        10 cmd              -> set[0m
+[2;35m  0  16624         8 cmd              <- set[0m
+[2;35m  0  16624        12 cmd              -> if[0m
+[2;35m  0  16624        14 cmd                -> namespace[0m
+[2;35m  0  16624         8 cmd                <- namespace[0m
+[2;35m  0  16624        13 cmd                -> proc[0m
+[2;35m  0  16624        12 cmd                <- proc[0m
+[2;35m  0  16624         8 cmd              <- if[0m
+[2;35m  0  16624        69 cmd              -> proc[0m
+[2;35m  0  16624        11 cmd              <- proc[0m
+[2;35m  0  16624        20 cmd              -> proc[0m
+[2;35m  0  16624        12 cmd              <- proc[0m
+[2;32m  0  16624        22 syscall          -> brk[0m
+[2;32m  0  16624         7 syscall          <- brk[0m
+[2;32m  0  16624         7 syscall          -> brk[0m
+[2;32m  0  16624         6 syscall          <- brk[0m
+[2;32m  0  16624         7 syscall          -> brk[0m
+[2;32m  0  16624         9 syscall          <- brk[0m
+[2;35m  0  16624        18 cmd              -> proc[0m
+[2;35m  0  16624        10 cmd              <- proc[0m
+[2;35m  0  16624        21 cmd              -> proc[0m
+[2;35m  0  16624        11 cmd              <- proc[0m
+[2;35m  0  16624        16 cmd              -> proc[0m
+[2;35m  0  16624        10 cmd              <- proc[0m
+[2;35m  0  16624        42 cmd              -> if[0m
+[2;35m  0  16624        25 cmd                -> proc[0m
+[2;32m  0  16624         9 syscall              -> brk[0m
+[2;32m  0  16624         6 syscall              <- brk[0m
+[2;32m  0  16624         7 syscall              -> brk[0m
+[2;32m  0  16624         9 syscall              <- brk[0m
+[2;35m  0  16624        21 cmd                <- proc[0m
+[2;35m  0  16624         9 cmd              <- if[0m
+[2;35m  0  16624        41 cmd              -> proc[0m
+[2;35m  0  16624        13 cmd              <- proc[0m
+[2;35m  0  16624         9 cmd            <- source[0m
+[2;35m  0  16624         8 cmd          <- uplevel[0m
+[2;35m  0  16624        10 proc       <- tclInit[0m
+[2;35m  0  16624        17 cmd      <- tclInit[0m
+[2;32m  0  16624        35 syscall  -> resolvepath[0m
+[2;32m  0  16624        31 syscall  <- resolvepath[0m
+[2;32m  0  16624        13 syscall  -> stat64[0m
+[2;32m  0  16624        24 syscall  <- stat64[0m
+[2;32m  0  16624         9 syscall  -> open64[0m
+[2;32m  0  16624        23 syscall  <- open64[0m
+[2;32m  0  16624         8 syscall  -> fcntl[0m
+[2;32m  0  16624         7 syscall  <- fcntl[0m
+[2;32m  0  16624         9 syscall  -> ioctl[0m
+[2;32m  0  16624         7 syscall  <- ioctl[0m
+[2;32m  0  16624        12 syscall  -> read[0m
+[2;32m  0  16624        21 syscall  <- read[0m
+[2;32m  0  16624        10 syscall  -> read[0m
+[2;32m  0  16624         7 syscall  <- read[0m
+[2;32m  0  16624         9 syscall  -> close[0m
+[2;32m  0  16624         8 syscall  <- close[0m
+[2;35m  0  16624        12 cmd      -> proc[0m
+[2;35m  0  16624        11 cmd      <- proc[0m
+[2;35m  0  16624        11 cmd      -> proc[0m
+[2;35m  0  16624         9 cmd      <- proc[0m
+[2;35m  0  16624        11 cmd      -> proc[0m
+[2;35m  0  16624         9 cmd      <- proc[0m
+[2;35m  0  16624         9 cmd      -> func_a[0m
+[2;35m  0  16624        17 proc       -> func_a[0m
+[2;35m  0  16624        10 cmd          -> puts[0m
+[2;32m  0  16624        25 syscall        -> llseek[0m
+[2;32m  0  16624         9 syscall        <- llseek[0m
+[2;32m  0  16624         9 syscall        -> ioctl[0m
+[2;32m  0  16624         6 syscall        <- ioctl[0m
+[2;32m  0  16624        13 syscall        -> getsockname[0m
+[2;32m  0  16624         8 syscall        <- getsockname[0m
+[2;32m  0  16624        18 syscall        -> llseek[0m
+[2;32m  0  16624         8 syscall        <- llseek[0m
+[2;32m  0  16624         7 syscall        -> ioctl[0m
+[2;32m  0  16624        86 syscall        <- ioctl[0m
+[2;32m  0  16624       184 syscall        -> ioctl[0m
+[2;32m  0  16624        17 syscall        <- ioctl[0m
+[2;32m  0  16624        14 syscall        -> llseek[0m
+[2;32m  0  16624         7 syscall        <- llseek[0m
+[2;32m  0  16624         7 syscall        -> ioctl[0m
+[2;32m  0  16624        13 syscall        <- ioctl[0m
+[2;32m  0  16624         8 syscall        -> ioctl[0m
+[2;32m  0  16624        12 syscall        <- ioctl[0m
+[2;32m  0  16624        24 syscall        -> write[0m
+[2;32m  0  16624       108 syscall        <- write[0m
+[2;35m  0  16624        10 cmd          <- puts[0m
+[2;35m  0  16624        11 cmd          -> after[0m
+[2;32m  0  16624        23 syscall        -> pollsys[0m
+Function B
+[2;32m  0  16624   1009593 syscall        <- pollsys[0m
+[2;35m  0  16624        24 cmd          <- after[0m
+[2;35m  0  16624        23 cmd          -> func_b[0m
+[2;35m  0  16624        37 proc           -> func_b[0m
+[2;35m  0  16624        12 cmd              -> puts[0m
+[2;32m  0  16624        17 syscall            -> write[0m
+[2;32m  0  16624        74 syscall            <- write[0m
+[2;35m  0  16624         8 cmd              <- puts[0m
+[2;35m  0  16624         9 cmd              -> after[0m
+[2;32m  0  16624        10 syscall            -> pollsys[0m
+Function C
+[2;32m  0  16624   1009748 syscall            <- pollsys[0m
+[2;35m  0  16624        24 cmd              <- after[0m
+[2;35m  0  16624        23 cmd              -> func_c[0m
+[2;35m  0  16624        35 proc               -> func_c[0m
+[2;35m  0  16624        12 cmd                  -> puts[0m
+[2;32m  0  16624        17 syscall                -> write[0m
+[2;32m  0  16624        75 syscall                <- write[0m
+[2;35m  0  16624         8 cmd                  <- puts[0m
+[2;35m  0  16624         9 cmd                  -> after[0m
+[2;32m  0  16624        10 syscall                -> pollsys[0m
+[2;32m  0  16624   1009831 syscall                <- pollsys[0m
+[2;35m  0  16624        24 cmd                  <- after[0m
+[2;35m  0  16624        23 proc               <- func_c[0m
+[2;35m  0  16624        13 cmd              <- func_c[0m
+[2;35m  0  16624         9 proc           <- func_b[0m
+[2;35m  0  16624         8 cmd          <- func_b[0m
+[2;35m  0  16624         8 proc       <- func_a[0m
+[2;35m  0  16624         8 cmd      <- func_a[0m
+[2;35m  0  16624        30 cmd      -> exit[0m
+[2;32m  0  16624        41 syscall    -> fcntl[0m
+[2;32m  0  16624        11 syscall    <- fcntl[0m
+[2;32m  0  16624         7 syscall    -> fcntl[0m
+[2;32m  0  16624         7 syscall    <- fcntl[0m
+[2;32m  0  16624         7 syscall    -> fcntl[0m
+[2;32m  0  16624         6 syscall    <- fcntl[0m
+[2;32m  0  16624        11 syscall    -> fcntl[0m
+[2;32m  0  16624         6 syscall    <- fcntl[0m
+[2;32m  0  16624         7 syscall    -> fcntl[0m
+[2;32m  0  16624         6 syscall    <- fcntl[0m
+[2;32m  0  16624         7 syscall    -> fcntl[0m
+[2;32m  0  16624         6 syscall    <- fcntl[0m
+[2;32m  0  16624         9 syscall    -> fcntl[0m
+[2;32m  0  16624         7 syscall    <- fcntl[0m
+[2;32m  0  16624         7 syscall    -> fcntl[0m
+[2;32m  0  16624         6 syscall    <- fcntl[0m
+[2;32m  0  16624         7 syscall    -> fcntl[0m
+[2;32m  0  16624         6 syscall    <- fcntl[0m
+[2;32m  0  16624        81 syscall    -> open64[0m
+[2;32m  0  16624       119 syscall    <- open64[0m
+[2;32m  0  16624         8 syscall    -> ioctl[0m
+[2;32m  0  16624         8 syscall    <- ioctl[0m
+[2;32m  0  16624        10 syscall    -> close[0m
+[2;32m  0  16624        16 syscall    <- close[0m
+[2;32m  0  16624        68 syscall    -> rexit[0m
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcl_who_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcl_who_example.txt
new file mode 100644
index 0000000..d1eefa3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcl_who_example.txt
@@ -0,0 +1,17 @@
+The following is an example of running tcl_who.d.
+
+The output produces four fields of interest in tracing tcl calls by process.
+
+Here we see it running while Code/Tcl/func_slow.tcl and Code/Tcl/func_abc.tcl
+are executed.  
+# tcl_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+      PID    UID  CALLS ARGS                                                   
+    16063    100     83 ./tclsh scripts/func_slow.tcl                          
+    16061    100     86 ./tclsh scripts/func_abc.tcl  
+
+CALLS is a measure of activity, and is a count of the procedures and commands
+that Tcl called.  The ARGS column shows the process name and arguments given
+for a particular PID in order to identify the particular Tcl code involved.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcpsnoop_d_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcpsnoop_d_example.txt
new file mode 100644
index 0000000..a0a8cc8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcpsnoop_d_example.txt
@@ -0,0 +1,41 @@
+The following is a demonstration of the tcpsnoop script.
+
+
+
+Here we run tcpsnoop and wait for new TCP connections to be established,
+
+   # tcpsnoop.d
+     UID    PID LADDR           LPORT DR RADDR           RPORT  SIZE CMD
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    66 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    56 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79   606 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 -> 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    78 inetd
+       0    242 192.168.1.5        23 -> 192.168.1.1     54224    54 inetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    57 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    78 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    57 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    63 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    72 in.telnetd
+   [...]
+
+As new connections are made, each of the TCP packets are traced along with
+the UID, PID and command name.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcpsnoop_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcpsnoop_example.txt
new file mode 100644
index 0000000..1124175
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcpsnoop_example.txt
@@ -0,0 +1,61 @@
+The following is a demonstration of the tcpsnoop program.
+
+
+
+Here we run tcpsnoop and wait for new TCP connections to be established,
+
+   # tcpsnoop
+     UID    PID LADDR           LPORT DR RADDR           RPORT  SIZE CMD
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    66 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    56 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79   606 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 -> 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    78 inetd
+       0    242 192.168.1.5        23 -> 192.168.1.1     54224    54 inetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    57 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    78 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    57 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    63 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    72 in.telnetd
+   [...]
+
+As new connections are made, each of the TCP packets are traced along with
+the UID, PID and command name.
+
+
+
+tcpsnoop has many options, for example here we use "-v" to print times,
+
+   # tcpsnoop -v
+   STRTIME                UID    PID LADDR           LPORT DR RADDR           RPORT  SIZE CMD
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 <- 192.168.1.1     49001    54 inetd
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 -> 192.168.1.1     49001    54 inetd
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 <- 192.168.1.1     49001    54 inetd
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 <- 192.168.1.1     49001    56 inetd
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 -> 192.168.1.1     49001    54 inetd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 -> 192.168.1.1     49001   444 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 -> 192.168.1.1     49001    54 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 <- 192.168.1.1     49001    54 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 <- 192.168.1.1     49001    54 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 <- 192.168.1.1     49001    54 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 -> 192.168.1.1     49001    54 in.fingerd
+   [...]
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcpsnoop_snv_d_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcpsnoop_snv_d_example.txt
new file mode 100644
index 0000000..a0a8cc8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcpsnoop_snv_d_example.txt
@@ -0,0 +1,41 @@
+The following is a demonstration of the tcpsnoop script.
+
+
+
+Here we run tcpsnoop and wait for new TCP connections to be established,
+
+   # tcpsnoop.d
+     UID    PID LADDR           LPORT DR RADDR           RPORT  SIZE CMD
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    66 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    56 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79   606 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 -> 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    78 inetd
+       0    242 192.168.1.5        23 -> 192.168.1.1     54224    54 inetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    57 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    78 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    57 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    63 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    72 in.telnetd
+   [...]
+
+As new connections are made, each of the TCP packets are traced along with
+the UID, PID and command name.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcpsnoop_snv_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcpsnoop_snv_example.txt
new file mode 100644
index 0000000..1124175
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcpsnoop_snv_example.txt
@@ -0,0 +1,61 @@
+The following is a demonstration of the tcpsnoop program.
+
+
+
+Here we run tcpsnoop and wait for new TCP connections to be established,
+
+   # tcpsnoop
+     UID    PID LADDR           LPORT DR RADDR           RPORT  SIZE CMD
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    66 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    56 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79   606 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 -> 192.168.1.1        79    54 finger
+     100  20892 192.168.1.5     36398 <- 192.168.1.1        79    54 finger
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 -> 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    54 inetd
+       0    242 192.168.1.5        23 <- 192.168.1.1     54224    78 inetd
+       0    242 192.168.1.5        23 -> 192.168.1.1     54224    54 inetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    57 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    78 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    57 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    63 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    54 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 <- 192.168.1.1     54224    60 in.telnetd
+       0  20893 192.168.1.5        23 -> 192.168.1.1     54224    72 in.telnetd
+   [...]
+
+As new connections are made, each of the TCP packets are traced along with
+the UID, PID and command name.
+
+
+
+tcpsnoop has many options, for example here we use "-v" to print times,
+
+   # tcpsnoop -v
+   STRTIME                UID    PID LADDR           LPORT DR RADDR           RPORT  SIZE CMD
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 <- 192.168.1.1     49001    54 inetd
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 -> 192.168.1.1     49001    54 inetd
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 <- 192.168.1.1     49001    54 inetd
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 <- 192.168.1.1     49001    56 inetd
+   2005 Jul 11 21:21:19     0    242 192.168.1.5        79 -> 192.168.1.1     49001    54 inetd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 -> 192.168.1.1     49001   444 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 -> 192.168.1.1     49001    54 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 <- 192.168.1.1     49001    54 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 <- 192.168.1.1     49001    54 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 <- 192.168.1.1     49001    54 in.fingerd
+   2005 Jul 11 21:21:19     0  23181 192.168.1.5        79 -> 192.168.1.1     49001    54 in.fingerd
+   [...]
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcpstat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcpstat_example.txt
new file mode 100644
index 0000000..d7d8cb3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcpstat_example.txt
@@ -0,0 +1,22 @@
+The following is a demonstration of the tcpstat.d script,
+
+
+Here we run tcpstat.d as a large file is downloaded,
+
+   # tcpstat.d 
+       TCP_out   TCP_outRe      TCP_in   TCP_inDup    TCP_inUn
+             0           0           0           0           0
+            20           0        1540           0           0
+           632           0         576           0           0
+           560           0      115552           0           0
+          1872           0     2900480           0           0
+          1968           0     3032320           0           0
+          1776           0     2752160           0           0
+           752           0      999824           0           0
+             0           0           0           0           0
+             0           0           0           0           0
+             0           0           0           0           0
+   ^C
+
+We can see the TCP_in value rise to around 3 Mb/sec as the download occurs. 
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcptop_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcptop_example.txt
new file mode 100644
index 0000000..c90fc75
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcptop_example.txt
@@ -0,0 +1,28 @@
+The following is a demonstration of the tcptop command,
+
+
+tcptop will display info on newly established TCP connections,
+
+   # tcptop -C 10
+   Tracing... Please wait.
+   2005 Jul  5 04:55:25,  load: 1.11,  TCPin:      2 KB,  TCPout:    110 KB
+   
+    UID    PID LADDR           LPORT FADDR           FPORT      SIZE NAME
+    100  20876 192.168.1.5     36396 192.168.1.1        79      1160 finger
+    100  20875 192.168.1.5     36395 192.168.1.1        79      1160 finger
+    100  20878 192.168.1.5     36397 192.168.1.1        23      1303 telnet
+    100  20877 192.168.1.5       859 192.168.1.1       514    115712 rcp
+   
+   2005 Jul  5 04:55:35,  load: 1.10,  TCPin:      0 KB,  TCPout:      0 KB
+   
+    UID    PID LADDR           LPORT FADDR           FPORT      SIZE NAME
+      0    242 192.168.1.5        79 192.168.1.1     54220       272 inetd
+      0  20879 192.168.1.5        79 192.168.1.1     54220       714 in.fingerd
+   
+   [...]
+
+
+In the above output, we run it with a 10 second interval and with -C so
+that the screen does not clear. Some traffic was captured, around 110 Kbytes
+by the rcp process (PID 20877), etc.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcptop_snv_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcptop_snv_example.txt
new file mode 100644
index 0000000..c90fc75
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcptop_snv_example.txt
@@ -0,0 +1,28 @@
+The following is a demonstration of the tcptop command,
+
+
+tcptop will display info on newly established TCP connections,
+
+   # tcptop -C 10
+   Tracing... Please wait.
+   2005 Jul  5 04:55:25,  load: 1.11,  TCPin:      2 KB,  TCPout:    110 KB
+   
+    UID    PID LADDR           LPORT FADDR           FPORT      SIZE NAME
+    100  20876 192.168.1.5     36396 192.168.1.1        79      1160 finger
+    100  20875 192.168.1.5     36395 192.168.1.1        79      1160 finger
+    100  20878 192.168.1.5     36397 192.168.1.1        23      1303 telnet
+    100  20877 192.168.1.5       859 192.168.1.1       514    115712 rcp
+   
+   2005 Jul  5 04:55:35,  load: 1.10,  TCPin:      0 KB,  TCPout:      0 KB
+   
+    UID    PID LADDR           LPORT FADDR           FPORT      SIZE NAME
+      0    242 192.168.1.5        79 192.168.1.1     54220       272 inetd
+      0  20879 192.168.1.5        79 192.168.1.1     54220       714 in.fingerd
+   
+   [...]
+
+
+In the above output, we run it with a 10 second interval and with -C so
+that the screen does not clear. Some traffic was captured, around 110 Kbytes
+by the rcp process (PID 20877), etc.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/tcpwdist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/tcpwdist_example.txt
new file mode 100644
index 0000000..02a392c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/tcpwdist_example.txt
@@ -0,0 +1,70 @@
+The following is a demonstration of the tcpwdist.d script.
+
+
+Here the tcpwdist.d script is run for a few seconds then Ctrl-C is hit,
+
+   # tcpwdist.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    PID: 15300  CMD: finger @mars\0
+   
+              value  ------------- Distribution ------------- count
+                 -1 |                                         0
+                  0 |@@@@@@@@@@@@@@@@@@@@                     1
+                  1 |                                         0
+                  2 |@@@@@@@@@@@@@@@@@@@@                     1
+                  4 |                                         0
+   
+    PID: 4967   CMD: /usr/lib/ssh/sshd\0
+   
+              value  ------------- Distribution ------------- count
+                 16 |                                         0
+                 32 |@@@@@@@@@@@@@@@@@@@@                     1
+                 64 |@@@@@@@@@@@@@@@@@@@@                     1
+                128 |                                         0
+   
+    PID: 9172   CMD: /usr/lib/ssh/sshd\0
+   
+              value  ------------- Distribution ------------- count
+                 16 |                                         0
+                 32 |@@@@@@@@                                 4
+                 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@            14
+                128 |                                         0
+                256 |                                         0
+                512 |@@                                       1
+               1024 |                                         0
+   
+    PID: 15301  CMD: rcp 1Mb.gz mars:/tmp\0
+   
+              value  ------------- Distribution ------------- count
+                  0 |                                         0
+                  1 |@                                        2
+                  2 |@                                        1
+                  4 |                                         0
+                  8 |@                                        2
+                 16 |@                                        2
+                 32 |                                         0
+                 64 |                                         0
+                128 |                                         0
+                256 |                                         0
+                512 |                                         0
+               1024 |                                         0
+               2048 |                                         0
+               4096 |                                         0
+               8192 |                                         0
+              16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     64
+              32768 |                                         0
+
+In the above output we can see the "rcp" command dominates, sending 
+large writes (16 to 31 Kb) 64 times. The "sshd" ssh daemons each sent
+several smaller writes, from 32 to 127 bytes - which corresponds to 
+command line activity (eg, screen width of 80 bytes). The finger command
+sent 2 bytes once, and zero data bytes once.
+
+These values are the TCP write payload sizes.
+
+The writes from the "rcp" command seem unusual at over 16 Kb each, when
+this is an Ethernet network with an MTU of 1500 bytes. The reason is that
+at this point the data has not yet been broken down into MTU sized packets,
+so we are looking at the applications behaviour as it writes to TCP.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/threaded_example.txt b/external/cddl/dtracetoolkit/dist/Examples/threaded_example.txt
new file mode 100644
index 0000000..1e41a0e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/threaded_example.txt
@@ -0,0 +1,108 @@
+The following is a demonstration of the threaded.d script,
+
+
+Here we run a test program called "cputhread" that creates 4 busy threads
+that run at the same time. Here we run it on a server with only 1 CPU,
+
+   # threaded.d
+   
+   2005 Jul 26 02:56:37,
+   
+     PID: 8516     CMD: cputhread
+   
+              value  ------------- Distribution ------------- count
+                  1 |                                         0
+                  2 |@@@@@@@                                  17
+                  3 |@@@@@@@@@@@                              28
+                  4 |@@@@@@@@@@@                              27
+                  5 |@@@@@@@@@@@                              28
+                  6 |                                         0
+   [...]
+
+In the above output, we can see that cputhread has four busy threads with 
+thread IDs 2, 3, 4 and 5. We are sampling at 100 Hertz, and have caught 
+each of these threads on the CPU between 17 and 28 times.
+
+Since the above counts add to 100, this is either a sign of a single CPU
+server (which it is), or a sign that a multithreaded application may be
+running "serialised" - only 1 thread at a time. Compare the above output
+to a multi CPU server,
+
+
+
+Here we run the same test program on a server with 4 CPUs,
+
+   # threaded.d
+   
+   2005 Jul 26 02:48:44,
+   
+     PID: 5218     CMD: cputhread
+   
+              value  ------------- Distribution ------------- count
+                  1 |                                         0
+                  2 |@@@@@@@@@@@                              80
+                  3 |@@@@@@@@@@                               72
+                  4 |@@@@@@@@@                                64
+                  5 |@@@@@@@@@@@                              78
+                  6 |                                         0
+   [...]
+
+This time the counts add to equal 294, so this program is definitely
+running on multiple CPUs at the same time, otherwise this total would
+not be beyond our sample rate of 100. The distribution of threads on CPU
+is fairly even, and the above serves as an example of a multithreaded
+application performing well.
+
+
+
+Now we run a test program called "cpuserial", which also create 4 busy
+threads, however due to a coding problem (poor use of mutex locks) they 
+only run one at a time,
+
+   # threaded.d
+
+   2005 Jul 26 03:07:21,
+   
+     PID: 5238     CMD: cpuserial
+   
+              value  ------------- Distribution ------------- count
+                  2 |                                         0
+                  3 |@@@@@@@@@@@@                             30
+                  4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@             70
+                  5 |                                         0
+   [...]
+
+The above looks like we are back on a single CPU server with 100 samples
+in total, however we are still on our 4 CPU server. Only two threads have
+run, and the above distribution is a good indication that they have
+run serialised.
+
+
+
+Now more of a fringe case. This version of cpuserial again creates 4 threads
+that are all busy and hungry for the CPU, and again we run it on a 4 CPU
+server,
+
+   # threaded.d
+   
+   2005 Jul 26 03:25:45,
+   
+     PID: 5280     CMD: cpuserial
+
+              value  ------------- Distribution ------------- count
+                  1 |                                         0
+                  2 |@@@@@@@@@@@@@@@                          42
+                  3 |@@@@@@@@@@@@@@@@@@                       50
+                  4 |@@@@@@                                   15
+                  5 |@                                        2
+                  6 |                                         0
+   [...]
+
+So all threads are running, good. And with a total of 109, at some point
+more than one thread was running at the same time (otherwise this would
+not have exceeded 100, bearing in mind a sample rate of 100 Hertz). However,
+what is not so good is that with 4 CPUs we have only scored 109 samples - 
+since all threads are CPU hungry we'd hope that more often they could
+run across the CPUs simultaneously; however this wasn't the case. Again,
+this fault was created by poor use of mutex locks.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/topsyscall_example.txt b/external/cddl/dtracetoolkit/dist/Examples/topsyscall_example.txt
new file mode 100644
index 0000000..dda1aa0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/topsyscall_example.txt
@@ -0,0 +1,65 @@
+The following is a demonstration of the topsyscall command,
+
+
+Here topsyscall is run with no arguments,
+
+   # topsyscall
+   2005 Jun 13 22:13:21, load average: 1.24, 1.24, 1.22   syscalls: 1287
+   
+      SYSCALL                          COUNT
+      getgid                               4
+      getuid                               5
+      waitsys                              5
+      xstat                                7
+      munmap                               7
+      sysconfig                            8
+      brk                                  8
+      setcontext                           8
+      open                                 8
+      getpid                               9
+      close                                9
+      resolvepath                         10
+      lwp_sigmask                         22
+      mmap                                26
+      lwp_park                            43
+      read                                59
+      write                               72
+      sigaction                          113
+      pollsys                            294
+      ioctl                              520
+
+The screen updates every second, and continues until Ctrl-C is hit to 
+end the program.
+
+In the above output we can see that the ioctl() system call occured 520 times,
+pollsys() 294 times and sigaction() 113 times.
+
+
+
+Here the command is run with a 10 second interval,
+
+   # topsyscall 10
+   2005 Jun 13 22:15:35, load average: 1.21, 1.22, 1.22   syscalls: 10189
+   
+      SYSCALL                          COUNT
+      writev                               6
+      close                                7
+      lseek                                7
+      open                                 7
+      brk                                  8
+      nanosleep                            9
+      portfs                              10
+      llseek                              14
+      lwp_cond_wait                       21
+      p_online                            21
+      gtime                               27
+      rusagesys                           71
+      setcontext                          92
+      lwp_sigmask                         98
+      setitimer                          183
+      lwp_park                           375
+      write                              438
+      read                               551
+      pollsys                           3071
+      ioctl                             5144
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/topsysproc_example.txt b/external/cddl/dtracetoolkit/dist/Examples/topsysproc_example.txt
new file mode 100644
index 0000000..368ea31
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/topsysproc_example.txt
@@ -0,0 +1,56 @@
+The following is a demonstration of the topsysproc program,
+
+
+Here we run topsysproc with no arguments,
+
+   # topsysproc
+   2005 Jun 13 22:25:16, load average: 1.24, 1.23, 1.21   syscalls: 1347
+   
+      PROCESS                          COUNT
+      svc.startd                           1
+      nscd                                 1
+      setiathome                           7
+      poold                               18
+      sshd                                21
+      java_vm                             35
+      tput                                49
+      dtrace                              56
+      Xorg                               108
+      sh                                 110
+      clear                              122
+      mozilla-bin                        819
+
+The screen refreshes every 1 second, which can be changed by specifying
+a different interval at the command line.
+
+In the above output we can see that processes with the name "mozilla-bin"
+made 819 system calls, while processes with the name "clear" made 122.
+
+
+
+Now topsysproc is run with a 15 second interval,
+
+   # topsysproc 15
+   2005 Jun 13 22:29:43, load average: 1.19, 1.20, 1.20   syscalls: 15909
+   
+      PROCESS                          COUNT
+      fmd                                  1
+      inetd                                2
+      svc.configd                          2
+      gconfd-2                             3
+      miniserv.pl                          3
+      sac                                  6
+      snmpd                                6
+      sshd                                 8
+      automountd                           8
+      ttymon                               9
+      svc.startd                          17
+      nscd                                21
+      in.routed                           37
+      sendmail                            41
+      setiathome                         205
+      poold                              293
+      dtrace                             413
+      java_vm                            529
+      Xorg                              1234
+      mozilla-bin                      13071
diff --git a/external/cddl/dtracetoolkit/dist/Examples/udpstat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/udpstat_example.txt
new file mode 100644
index 0000000..4ffa3ba
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/udpstat_example.txt
@@ -0,0 +1,39 @@
+The following is an example of the udpstat.d script,
+
+
+
+Here we run udpstat for a few seconds. Firstly, we run a "spray" command
+outbound, followed by a spray inbound. Both can be identified in the 
+output below,
+
+   # udpstat.d
+       UDP_out  UDP_outErr      UDP_in   UDP_inErr  UDP_noPort
+             0           0           0           0           1
+             0           0           0           0           2
+             0           0           0           0           0
+          1165           0           2           0           0
+             0           0           0           0           0
+             0           0           0           0           2
+             3           0        1166           0           1
+             0           0           0           0           0
+             0           0           0           0           0
+             0           0           0           0           0
+   ^C
+
+
+
+Here we run udpstat.d while an outbound DNS lookup is performed using
+"nslookup",
+
+   # udpstat.d
+       UDP_out  UDP_outErr      UDP_in   UDP_inErr  UDP_noPort
+             0           0           0           0           1
+             0           0           0           0           1
+             1           0           1           0           0
+             0           0           0           0           0
+             0           0           0           0           3
+   ^C
+
+Little output is observed as this tracks datagrams not bytes. There is 
+one outbound and one inbound datagram.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/uname-a_example.txt b/external/cddl/dtracetoolkit/dist/Examples/uname-a_example.txt
new file mode 100644
index 0000000..281033d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/uname-a_example.txt
@@ -0,0 +1,15 @@
+The following is a demonstration of the uname.d script,
+
+
+Here we run the usual "uname -a" command and compare the output to that
+given by the uname.d script,
+
+   # uname -a
+   SunOS jupiter 5.10 Generic i86pc i386 i86pc
+   
+   # ./uname-a.d
+   SunOS jupiter 5.10 Generic i86pc i386 i86pc
+
+The output is the same. uname-a.d is intended as a demonstration script,
+and as a starting point for other scripts.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/vmbypid_example.txt b/external/cddl/dtracetoolkit/dist/Examples/vmbypid_example.txt
new file mode 100644
index 0000000..9e09b83
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/vmbypid_example.txt
@@ -0,0 +1,32 @@
+The following is a demonstration of the vmbypid.d command,
+
+   # vmbypid.d 
+   Tracing... Hit Ctrl-C to end.
+   ^C
+               EXEC      PID                     VM    VALUE
+               find    19216             prot_fault        1
+               bash    19216                   zfod        1
+             dtrace    19215                 pgfrec        3
+             dtrace    19215                  pgrec        3
+               bash    19216                 pgfrec        5
+               bash    19216                  pgrec        5
+               find    19216              cow_fault        6
+               find    19216                 pgfrec        6
+               find    19216                  pgrec        6
+               bash    19216             prot_fault       10
+               bash    19216              cow_fault       15
+               bash    19155             prot_fault       30
+             dtrace    19215                   zfod       52
+               find    19216                   zfod       54
+             dtrace    19215               as_fault       56
+               bash    19216               as_fault       74
+               find    19216               as_fault       91
+               find    19216                 fspgin      315
+               find    19216                   pgin      315
+               find    19216                 pgpgin      315
+               find    19216              maj_fault      315
+
+In the above output, the find command at PID 19211 triggered 315 maj_faults -
+major faults, that would require disk activity to satisfy (as confirmed by the
+pgpgin value for pages paged in).
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/vmstat-p_example.txt b/external/cddl/dtracetoolkit/dist/Examples/vmstat-p_example.txt
new file mode 100644
index 0000000..1a0fe14
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/vmstat-p_example.txt
@@ -0,0 +1,51 @@
+The following is a demonstration of the vmstat-p.d script,
+
+
+We run both vmstat-p.d and the original vmstat(1M) command at the same time
+to compare outputs,
+
+ $ vmstat -p 1
+      memory           page          executable      anonymous      filesystem
+    swap  free  re  mf  fr  de  sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+  1144488 142456 2   8   1   0   0    0    0    0    0    0    0    2    1    1
+  1063812 84472 18  92   0   0   0    0    0    0    0    0    0    0    0    0
+  1050404 75108  0   0   0   0   0    0    0    0    0    0    0    0    0    0
+  1050404 75108  0   0   0   0   0    0    0    0    0    0    0    0    0    0
+  1050404 75108 476 150  0   0   0    0    0    0    0    0    0    0    0    0
+  1050184 74772 73   0   0   0   0    0    0    0    0    0    0  788    0    0
+  1050400 74988 2371 173 0   0   0    0    0    0    0    0    0    0    0    0
+  1050400 75100 1057 0   0   0   0    0    0    0    0    0    0    0    0    0
+  1050400 75100  2   0   0   0   0    0    0    0    0    0    0    4    0    0
+  1050400 75100  0   0   0   0   0    0    0    0    0    0    0    0    0    0
+  1050400 75100 4529 172 0   0   0    0    0    0    0    0    0  192    0    0
+  1050400 75104  0   0   0   0   0    0    0    0    0    0    0  467    0    0
+  1050400 75104  0   0   0   0   0    0    0    0    0    0    0    0    0    0
+
+ # ./vmstat-p.d
+         memory          page       executable      anonymous    filesystem
+      swap    free    re   mf  sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+   1050404   75108     8   80   0    0    0    0    0    0    0    0    0    0
+   1050404   75108     0    0   0    0    0    0    0    0    0    0    0    0
+   1050404   75108     0    0   0    0    0    0    0    0    0    0    0    0
+   1050180   74768  2216  608   0    0    0    0    0    0    0  568    0    0
+   1050400   74988     4    0   0    0    0    0    0    0    0  228    0    0
+   1050400   75100 13852  700   0    0    0    0    0    0    0    0    0    0
+   1050400   75100     8    0   0    0    0    0    0    0    0    4    0    0
+   1050400   75100     0    0   0    0    0    0    0    0    0    0    0    0
+   1050400   75100     0    0   0    0    0    0    0    0    0    0    0    0
+   1050400   75104 18480  700   0    0    0    0    0    0    0  668    0    0
+   1050400   75104     0    0   0    0    0    0    0    0    0    0    0    0
+
+Above we can see the columns are corresponding well. "re" and "mf" in the
+DTrace output appear four times as large as they should be, because in the
+DTrace output we are printing Kbs not page counts (for consistancy).
+
+The DTrace output lacks the "summary since boot" line, as it is not using
+Kstat to fetch this data.
+
+
+The vmstat-p.d script is not intended itself as a useful program, rather it
+is intended as a starting point for other DTrace scripts; a starting point
+of familiar statistics to provide the programmer with a "common ground"
+of knowledge.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/vmstat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/vmstat_example.txt
new file mode 100644
index 0000000..7d953fd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/vmstat_example.txt
@@ -0,0 +1,45 @@
+The following is an example of the vmstat.d script,
+
+
+We run both vmstat.d and the original vmstat(1M) command at the same time
+to compare outputs,
+
+ $ vmstat 1
+  kthr      memory            page            disk          faults      cpu
+  r b w   swap  free  re  mf pi po fr de sr cd s0 -- --   in   sy   cs us sy id
+  0 0 0 1147468 144324 2   8  2  1  1  0  0  1  0  0  0  294  990  355 18  2 80
+  1 0 0 1065480 92276 13  73  0  0  0  0  0  0  0  0  0  359 1055  376 85 15  0
+  0 0 0 1052088 82940  0   0  0  0  0  0  0  0  0  0  0  409  999  402 97  3  0
+  0 0 0 1052088 82940  0   0  0  0  0  0  0  0  0  0  0  406  975  407 97  3  0
+  0 0 0 1052088 82940  0   0  0  0  0  0  0  0  0  0  0  406 1037  429 97  3  0
+  0 0 0 1052088 82940 247 1763 0 0  0  0  0  2  0  0  0  427 4828  680 81 19  0
+  0 0 0 1051264 82300  0   0  0  0  0  0  0  0  0  0  0  414 1164  441 97  3  0
+  0 0 0 1051264 82300 11 134  0  0  0  0  0  0  0  0  0  423 1218  461 95  5  0
+  0 0 0 1051264 82300  0   0  0  0  0  0  0  0  0  0  0  416 1054  435 98  2  0
+ [...]
+
+ # ./vmstat.d
+  w       swap     free   re    mf   pi   po   fr   sr    in    sy   cs
+  0    1052088    82940    8    80    0    0    0    0   117   958  379
+  0    1052088    82940    0     0    0    0    0    0   123   955  402
+  0    1052088    82940    0     0    0    0    0    0   121  1025  420
+  0    1052088    82940    0     0    0    0    0    0   121  1065  433
+  0    1051264    82300 1008  7192    0    0    0    0   219  4886  684
+  0    1051264    82300    0     0    0    0    0    0   193  1188  461
+  0    1051264    82300   44   540    0    0    0    0   165  1226  450
+  0    1051264    82300    0     0    0    0    0    0   123  1012  421
+ [...]
+
+Above we can see the columns are corresponding well. "re" and "mf" in the
+DTrace output appear four times as large as they should be, because in the
+DTrace output we are printing Kbs not page counts (for consistancy).
+
+The DTrace output lacks the "summary since boot" line, as it is not using
+Kstat to fetch this data.
+
+
+The vmstat.d script is not intended itself as a useful program, rather it 
+is intended as a starting point for other DTrace scripts; a starting point
+of familiar statistics to provide the programmer with a "common ground"
+of knowledge.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/vopstat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/vopstat_example.txt
new file mode 100644
index 0000000..646419e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/vopstat_example.txt
@@ -0,0 +1,89 @@
+The following are demonstrations of the vopstat script.
+
+
+By default, vopstat traces activity at the vnode interface and prints
+summaries every five seconds. It will either trace all filesystems or
+just the mountpoint specified.
+
+Here it was run on /extra1, while a tar command archived /extra1,
+
+   # ./vopstat /extra1
+   VOP Physical IO                                                   Count
+   fop_getpage                                                          66
+   
+   VOP Count                                                         Count
+   fop_readdir                                                           1
+   fop_read                                                              2
+   fop_cmp                                                               2
+   fop_seek                                                              3
+   fop_close                                                             7
+   fop_open                                                             10
+   fop_getattr                                                          12
+   fop_access                                                           13
+   fop_lookup                                                           16
+   fop_rwunlock                                                       3802
+   fop_rwlock                                                         3802
+   fop_putpage                                                        4701
+   fop_getpage                                                        6648
+   fop_dispose                                                       19109
+   
+   VOP Wall Time                                                  mSeconds
+   fop_readdir                                                           0
+   fop_cmp                                                               0
+   fop_read                                                              0
+   fop_seek                                                              0
+   fop_close                                                             0
+   fop_open                                                              0
+   fop_access                                                            0
+   fop_getattr                                                           0
+   fop_lookup                                                            0
+   fop_rwunlock                                                         64
+   fop_putpage                                                          86
+   fop_rwlock                                                           93
+   fop_dispose                                                         346
+   fop_getpage                                                         402
+   ^C
+
+There were 66 calls for physical I/O operations, fop_getpage, as files
+were read from disk. The VOP Count show that there were many calls to
+fop_putpage and fop_getpage, as tar works its way through files; and 
+many more to fop_dispose. The total elaspsed time for these calls
+are listed at the bottom, in milleseconds.
+
+This rate of events will put some pressure on the DTrace buffer,
+you may see dynamic variable drops.
+
+
+
+vopstat also has a -t option to trace activity. Here it is run on /extra1 
+while an "ls" command listed files from that directory,
+
+# ./vopstat -t /extra1
+   Event           Device                                                    Path RW     Size   Offset
+-> fop_getattr     -                                                      /extra1  -        0        0
+<- fop_getattr     -                                                      /extra1  -        0        0
+-> fop_access      -                                                      /extra1  -        0        0
+<- fop_access      -                                                      /extra1  -        0        0
+-> fop_open        -                                                      /extra1  -        0        0
+<- fop_open        -                                                      /extra1  -        0        0
+-> fop_getattr     -                                                      /extra1  -        0        0
+<- fop_getattr     -                                                      /extra1  -        0        0
+-> fop_rwlock      -                                                      /extra1  -        0        0
+<- fop_rwlock      -                                                      /extra1  -        0        0
+-> fop_readdir     -                                                      /extra1  -        0        0
+-> fop_getpage     -                                                      /extra1  -        0        0
+<- fop_getpage     -                                                      /extra1  -        0        0
+-> fop_rwunlock    -                                                      /extra1  -        0        0
+<- fop_rwunlock    -                                                      /extra1  -        0        0
+-> fop_rwlock      -                                                      /extra1  -        0        0
+<- fop_rwlock      -                                                      /extra1  -        0        0
+-> fop_readdir     -                                                      /extra1  -        0        0
+<- fop_readdir     -                                                      /extra1  -        0        0
+-> fop_rwunlock    -                                                      /extra1  -        0        0
+<- fop_rwunlock    -                                                      /extra1  -        0        0
+-> fop_close       -                                                      /extra1  -        0      512
+<- fop_close       -                                                      /extra1  -        0      512
+^C
+
+Each call can be seen as it happened, including the entry and return of
+these calls.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/weblatency_example.txt b/external/cddl/dtracetoolkit/dist/Examples/weblatency_example.txt
new file mode 100644
index 0000000..995b545
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/weblatency_example.txt
@@ -0,0 +1,127 @@
+The following is a demonstration of the weblatency.d script.
+
+Here we run weblatency.d while a mozilla browser loads the 
+http://www.planetsolaris.org website. After the website was loaded, Ctrl-C
+was hit to print the following report,
+
+   # weblatency.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   HOST                                     NUM
+   static.flickr.com                          1
+   images.pegasosppc.com                      1
+   www.planetsolaris.org                      5
+   blogs.sun.com                              7
+   
+   HOST                             AVGTIME(ms)
+   static.flickr.com                         65
+   blogs.sun.com                            285
+   images.pegasosppc.com                    491
+   www.planetsolaris.org                    757
+   
+   HOST                             MAXTIME(ms)
+   static.flickr.com                         65
+   images.pegasosppc.com                    491
+   blogs.sun.com                            962
+   www.planetsolaris.org                   3689
+
+This gives us an understanding on which hosts were responsible for the 
+time endured while loading the website. It turns out that requests to
+www.planetsolaris.org were the slowest, with a maximum time of 3.7 seconds
+(probably the first request, which incurred a DNS lookup).
+
+
+
+The following shows the same google lookup performed on a number of sites,
+
+   # weblatency.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   HOST                                     NUM
+   www.google.com.au                          3
+   www.google.co.uk                           3
+   www.google.com                             3
+   www.google.co.nz                           3
+   
+   HOST                             AVGTIME(ms)
+   www.google.co.nz                         450
+   www.google.com.au                        502
+   www.google.com                           567
+   www.google.co.uk                         595
+   
+   HOST                             MAXTIME(ms)
+   www.google.co.nz                         544
+   www.google.com.au                        559
+   www.google.com                           744
+   www.google.co.uk                         763
+
+From the average time you would guess that I was running this from 
+New Zealand (the fastest), with times to the other hosts following suit
+(Australia, USA, UK). I was actually running this from Australia - it's
+interesting that the New Zealand server responded slightly faster.
+
+
+
+
+Now several websites are loaded as a larger demonstration,
+
+   # weblatency.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+   HOST                                     NUM
+   shop.abc.net.au                            1
+   static.technorati.com                      1
+   sunopensolaris.112.2o7.net                 1
+   www.theage.com.au                          1
+   ffxcam.smh.com.au                          1
+   sunglobal.112.2o7.net                      2
+   embed.technorati.com                       2
+   technorati.com                             2
+   fdimages.fairfax.com.au                    4
+   blogs.sun.com                              5
+   bugs.opensolaris.org                       7
+   www.abc.net.au                            34
+   www.smh.com.au                            51
+   
+   HOST                             AVGTIME(ms)
+   ffxcam.smh.com.au                          0
+   sunglobal.112.2o7.net                      0
+   www.abc.net.au                            56
+   www.theage.com.au                         64
+   shop.abc.net.au                           65
+   www.smh.com.au                            73
+   fdimages.fairfax.com.au                   88
+   blogs.sun.com                            130
+   bugs.opensolaris.org                     162
+   static.technorati.com                    350
+   technorati.com                           352
+   embed.technorati.com                     632
+   sunopensolaris.112.2o7.net               900
+   
+   HOST                             MAXTIME(ms)
+   ffxcam.smh.com.au                          0
+   sunglobal.112.2o7.net                      0
+   www.theage.com.au                         64
+   shop.abc.net.au                           65
+   fdimages.fairfax.com.au                  243
+   www.smh.com.au                           244
+   blogs.sun.com                            293
+   www.abc.net.au                           315
+   static.technorati.com                    350
+   technorati.com                           356
+   bugs.opensolaris.org                     560
+   sunopensolaris.112.2o7.net               900
+   embed.technorati.com                     973
+
+It's interesting that the most common host (www.smh.com.au, NUM == 51),
+responded with a fast AVGTIME (73 ms). The reason for this may be due to
+cacheing by my proxy server. Less common hosts such as embed.technorati.com
+were quite slow.
+
+
+
+The results from weblatency.d are interesting, but they don't point the
+finger at one single cause for website latency. The value here is the response
+time experienced by the client - which is a combination of many response 
+times (link speeds, proxy server, DNS server, web server).
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/whatexec_example.txt b/external/cddl/dtracetoolkit/dist/Examples/whatexec_example.txt
new file mode 100644
index 0000000..519909e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/whatexec_example.txt
@@ -0,0 +1,18 @@
+The following are demonstrations of the whatexec.d script.
+
+
+Here we run it while a few commands are also executed,
+
+   # ./whatexec.d
+   PEXEC            EXEC                                   OK TYPE
+   bash             /usr/bin/clear                          Y #!/u\0
+   bash             /sbin/sh                                Y \177ELF\0
+   clear            /usr/bin/tput                           Y \177ELF\0
+   bash             /export/home/brendan/DOOM.EXE           N MZ\644\0
+   ^C
+
+whatexec.d has first found that "clear" was run, which has a type that
+begins with "#!" - a script. clear runs "sh" and "tput", both ELF files.
+
+We finish by attempting to run a MZ file, "DOOM.EXE", which is rejected
+(OK is "N").
diff --git a/external/cddl/dtracetoolkit/dist/Examples/woof_example.txt b/external/cddl/dtracetoolkit/dist/Examples/woof_example.txt
new file mode 100644
index 0000000..dc81527
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/woof_example.txt
@@ -0,0 +1,28 @@
+The following explains how to demonstrate the woof.d DTrace script.
+
+This script is only useful if you have an audio device, /dev/audio. To test
+audio, you can run:
+
+	$ audioplay /usr/share/audio/samples/au/sample.au
+
+The volume can be adjusted from a few tools, including,
+
+	$ /usr/dt/bin/sdtaudiocontrol
+
+...
+
+woof.d will bark whenever a new process is created. In order to demonstrate
+it, first run the following:
+
+	# ./woof.d &
+
+You have now installed the dog (if the dog becomes a nusience, you are
+allowed to kill it). Now compare the difference between these recursive
+grep commands:
+
+	$ find /etc -type f -exec grep localhost {} \;
+
+	$ find /etc -type f -exec grep localhost {} +
+
+The first find command is the "bad way", the second is the "good way". You
+will hear for yourself why this is the case.
diff --git a/external/cddl/dtracetoolkit/dist/Examples/wpm_example.txt b/external/cddl/dtracetoolkit/dist/Examples/wpm_example.txt
new file mode 100644
index 0000000..bfc74a9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/wpm_example.txt
@@ -0,0 +1,57 @@
+The following is an example of the wpm.d script.
+
+
+This script takes the name of a program to trace, and assumes that reads
+on file descriptor zero (STDIN) are keystrokes.
+
+When run, a 5 second count down begins before keystrokes are measured,
+
+   # wpm.d vim
+   Measuring will start in :  5 seconds
+
+While running, I retyped the first three sentences of this file a few times
+which clocked the following result,
+
+   # wpm.d vim
+   Measuring will start in :  0 seconds
+   Measuring will stop in  :  0 seconds
+   
+   Characters typed : 509
+   Words per minute : 84
+   
+   Minimum keystroke latency : 12 ms
+   Average keystroke latency : 118 ms
+   Maximum keystroke latency : 493 ms
+   
+   Word size distribution (letters),
+   
+              value  ------------- Distribution ------------- count
+                  0 |                                         0
+                  1 |@@@                                      6
+                  2 |@@@@@                                    11
+                  3 |@@@@@                                    11
+                  4 |@@@@@@                                   13
+                  5 |@@@@                                     8
+                  6 |@@@@@@                                   12
+                  7 |@@@@@                                    11
+                  8 |                                         0
+                  9 |@@                                       4
+                 10 |@                                        3
+                 11 |@                                        2
+                 12 |                                         0
+                 13 |                                         0
+                 14 |                                         1
+                 15 |                                         0
+   
+   Keystroke latency distribution (ms),
+   
+              value  ------------- Distribution ------------- count
+                  4 |                                         0
+                  8 |                                         1
+                 16 |                                         5
+                 32 |@@@@@                                    66
+                 64 |@@@@@@@@@@@@@@@@@@@@                     247
+                128 |@@@@@@@@@@@@@                            167
+                256 |@                                        16
+                512 |                                         0
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/writebytes_example.txt b/external/cddl/dtracetoolkit/dist/Examples/writebytes_example.txt
new file mode 100644
index 0000000..baa83fc
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/writebytes_example.txt
@@ -0,0 +1,26 @@
+The following is a demonstration of the writebytes.d script,
+
+
+Here the writebytes.d script is run for a few seconds, then Ctrl-C is hit,
+
+   # writebytes.d
+   dtrace: description 'sysinfo:::writech ' matched 4 probes
+   ^C
+     dtrace                                                            1
+     gnome-settings-d                                                  8
+     xscreensaver                                                      8
+     gnome-panel                                                       8
+     nautilus                                                          8
+     date                                                             29
+     wnck-applet                                                     120
+     bash                                                            210
+     mozilla-bin                                                    1497
+     ls                                                             1947
+     metacity                                                       3172
+     Xorg                                                           7424
+     gnome-terminal                                                51955
+
+
+In this interval the gnome-terminal command has successfully written 51.9 Kb, 
+while Xorg has written 7424 bytes.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/writedist_example.txt b/external/cddl/dtracetoolkit/dist/Examples/writedist_example.txt
new file mode 100644
index 0000000..f334843
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/writedist_example.txt
@@ -0,0 +1,38 @@
+The following is an example of the writedist.d script,
+
+
+Here the writedist.d script is run for a few seconds, then Ctrl-C is hit,
+
+   # writedist.d
+   dtrace: description 'sysinfo:::writech ' matched 4 probes
+   ^C
+   [...]
+     Xorg
+              value  ------------- Distribution ------------- count
+                 16 |                                         0
+                 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       169
+                 64 |@@@                                      16
+                128 |@@                                       10
+                256 |                                         0
+   
+     gnome-terminal
+              value  ------------- Distribution ------------- count
+                  0 |                                         0
+                  1 |@@                                       6
+                  2 |                                         0
+                  4 |                                         0
+                  8 |                                         1
+                 16 |@                                        2
+                 32 |@@@                                      7
+                 64 |                                         0
+                128 |@@@@@@@@@@@@@@@@@@@@@@@                  63
+                256 |@@@@                                     10
+                512 |                                         1
+               1024 |@@@@@                                    13
+               2048 |@                                        2
+               4096 |@@@                                      7
+
+This allows us to understand the write behaviour of each process. The
+gnome-terminal command has executed 6 writes that returned 0 bytes, through
+to 7 writes that were at least 4096 bytes (up to 8192). 
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/xcallsbypid_example.txt b/external/cddl/dtracetoolkit/dist/Examples/xcallsbypid_example.txt
new file mode 100644
index 0000000..1593b62
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/xcallsbypid_example.txt
@@ -0,0 +1,17 @@
+The following is a demonstration of the xcallsbypid.d script,
+
+   # xcallsbypid.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+      PID CMD                        XCALLS
+      215 utmpd                           3
+     6350 bash                            3
+     6351 bash                            3
+     6350 ls                             24
+        0 sched                          48
+     6349 dtrace                         93
+     6351 find                         5718
+
+In the above output, we can see the find command with PID 6351 has caused
+5718 cross calls.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/xvmstat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/xvmstat_example.txt
new file mode 100644
index 0000000..544bd98
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/xvmstat_example.txt
@@ -0,0 +1,44 @@
+The following is a demonstration of the xvmstat program.
+
+
+Here we run it with no arguments. It will default to 1 second samples, and
+will run forever,
+
+  # xvmstat
+  w   swap  free   re maj   mf cow pro  sr epi epo epf api apo apf fpi fpo fpf
+  0   1025    73    2   0   21   0   0   0   0   0   0   0   0   0   0   0   0
+  0   1025    73    0   0    0   0   1   0   0   0   0   0   0   0   0   0   0
+  0   1025    73    0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  0   1025    73    0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  0   1025    73    0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  0   1025    73  199  42  166  21  41   0   0   0   0   0   0   0  42   0   0
+  0   1025    73    0   0    0   0   2   0   0   0   0   0   0   0   0   0   0
+  0   1025    73 4404  47  175  26  30   0   0   0   0   0   0   0  48   0   0
+  0   1025    73  433   0    0   0  14   0   0   0   0   0   0   0   0   0   0
+  0   1025    73    0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  0   1025    73    0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  0   1025    73    0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  ^C
+
+Both "swap" and "free" are in units of megabytes, the rest are in units of
+pages. "maj" is major faults - a useful addition to the output.
+
+There is no summary since boot line, as this program in not using the
+Kstat data.
+
+
+
+The following runs xvmstat with a 5 second interval,
+
+  # xvmstat 5
+  w   swap  free    re maj   mf cow pro  sr epi epo epf api apo apf fpi fpo fpf
+  0   1025    72  1531   2   40   5   9   0   0   0   0   0   0   0   2   0   0
+  0   1025    72  1534   0   36   5   9   0   0   0   0   0   0   0   0   0   0
+  0   1025    72     0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  0   1025    72     0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  0   1025    72     5   1   82  16  25   0   0   0   0   0   0   0   1   0   0
+  0   1025    72     0   0    0   0   0   0   0   0   0   0   0   0   0   0   0
+  ^C
+
+The values from "re" to "fpf" are per second values.
+
diff --git a/external/cddl/dtracetoolkit/dist/Examples/zvmstat_example.txt b/external/cddl/dtracetoolkit/dist/Examples/zvmstat_example.txt
new file mode 100644
index 0000000..cb070c5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Examples/zvmstat_example.txt
@@ -0,0 +1,34 @@
+The following is a demonstration of the zvmstat command, which provides 
+vmstat style info per zone using DTrace.
+
+Here we run zvmstat with an interval of 5 seconds. This is a server that
+only has two zones, "global" and "workzone1",
+
+ # zvmstat 5
+      ZONE   re    mf   fr    sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+     global   62   340    0     0    0    0    0    0    0    0    0    0    0
+  workzone1    4     2    0     0    0    0    0    0    0    0    0    0    0
+       ZONE   re    mf   fr    sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+     global 1132   484    0     0    2    0    0    0    0    0  832    0    0
+  workzone1    0     0    0     0    0    0    0    0    0    0    0    0    0
+       ZONE   re    mf   fr    sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+     global   50   319    2     0    2    0    0    0    0    0  579    2    2
+  workzone1    0     0    0     0    0    0    0    0    0    0    0    0    0
+       ZONE   re    mf   fr    sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+     global   54   317    0     0    0    0    0    0    0    0    0    0    0
+  workzone1    0     0    0     0    0    0    0    0    0    0    0    0    0
+       ZONE   re    mf   fr    sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+     global   54   316    1     0    0    0    0    0    0    0    0    1    1
+  workzone1    0     0    0     0    0    0    0    0    0    0    0    0    0
+       ZONE   re    mf   fr    sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+     global  157   659    1     0   10    0    0    0    0    0    3    2    1
+  workzone1  770  1085    0     0   48    0    0    0    0    0  928    0    0
+       ZONE   re    mf   fr    sr  epi  epo  epf  api  apo  apf  fpi  fpo  fpf
+     global   56   317    0     0    6    0    0    0    0    0    2    0    0
+  workzone1 1478    21    0     0    0    0    0    0    0    0 1635    0    0
+
+During the first few samples, some filesystem activity can be observed in 
+the global zone, created by a "find /" in the global. In the last few samples,
+filesystem activity can be seen in the non-global zone "workzone1" - this 
+time created by running a "find /" within the non-global zone,
+
diff --git a/external/cddl/dtracetoolkit/dist/FS/Readme b/external/cddl/dtracetoolkit/dist/FS/Readme
new file mode 100644
index 0000000..30927a5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/FS/Readme
@@ -0,0 +1,3 @@
+FS - File System based analysis
+
+   This would include VFS and UFS activity.
diff --git a/external/cddl/dtracetoolkit/dist/FS/fspaging.d b/external/cddl/dtracetoolkit/dist/FS/fspaging.d
new file mode 100755
index 0000000..cfb00e7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/FS/fspaging.d
@@ -0,0 +1,154 @@
+#!/usr/sbin/dtrace -s
+/*
+ * fspaging.d - file system read/write and paging tracing.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * This traces file related activity: system call reads and writes,
+ * vnode logical read and writes (fop), vnode putpage and getpage activity,
+ * and disk I/O. It can be used to examine the behaviour of each I/O
+ * layer, from the syscall interface to what the disk is doing. Behaviour
+ * such as read-ahead, and max I/O size breakup can be observed.
+ *
+ * This is a verbose version of fsrw.d, as this also traces paging activity.
+ *
+ * $Id: fspaging.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	fspaging.d
+ *
+ * FIELDS:
+ *		Event		Traced event (see EVENTS below)
+ *		Device		Device, for disk I/O
+ *		RW		Either Read or Write
+ *		Size		Size of I/O in bytes, if known
+ *		Offset		Offset of I/O in kilobytes, if known
+ *		Path		Path to file on disk
+ *
+ * EVENTS:
+ *		sc-read		System call read
+ *		sc-write	System call write
+ *		fop_read	Logical read
+ *		fop_write	Logical write
+ *		fop_getpage	Logical get page
+ *		fop_putpage	Logical put page
+ *		disk_io		Physical disk I/O
+ *		disk_ra		Physical disk I/O, read ahead
+ *
+ * The events are drawn with a level of indentation, which can sometimes
+ * help identify related events.
+ *
+ * SEE ALSO: fsrw.d
+ *
+ * IDEA: Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * ToDo: readv()
+ *
+ * 20-Mar-2006  Brendan Gregg   Created this.
+ * 23-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+dtrace:::BEGIN
+{
+	printf("%-13s %10s %2s %8s %6s %s\n",
+	    "Event", "Device", "RW", "Size", "Offset", "Path");
+}
+
+syscall::*read:entry,
+syscall::*write*:entry
+{
+	/*
+	 * starting with a file descriptior, dig out useful info
+	 * from the corresponding file_t and vnode_t.
+	 */
+	this->filistp = curthread->t_procp->p_user.u_finfo.fi_list;
+	this->ufentryp = (uf_entry_t *)((uint64_t)this->filistp +
+	    (uint64_t)arg0 * (uint64_t)sizeof (uf_entry_t));
+	this->filep = this->ufentryp->uf_file;
+	self->offset = this->filep->f_offset;
+	this->vnodep = this->filep != 0 ? this->filep->f_vnode : 0;
+	self->vpath = this->vnodep ? (this->vnodep->v_path != 0 ?
+	    cleanpath(this->vnodep->v_path) : "<unknown>") : "<unknown>";
+	self->sc_trace = this->vnodep ? this->vnodep->v_type == 1 ||
+	    this->vnodep->v_type == 2 ? 1 : 0 : 0;
+}
+
+syscall::*read:entry
+/self->sc_trace/
+{
+	printf("sc-%-10s %10s %2s %8d %6d %s\n", probefunc, ".", "R",
+	    (int)arg2, self->offset / 1024, self->vpath);
+}
+
+syscall::*write*:entry
+/self->sc_trace/
+{
+	printf("sc-%-10s %10s %2s %8d %6d %s\n", probefunc, ".", "W",
+	    (int)arg2, self->offset / 1024, self->vpath);
+}
+
+syscall::*read:return,
+syscall::*write*:return
+{
+	self->vpath = 0;
+	self->offset = 0;
+	self->sc_trace = 0;
+}
+
+fbt::fop_putpage:entry,
+fbt::fop_getpage:entry
+/self->sc_trace && args[0]->v_path/
+{
+	printf("  %-11s %10s %2s %8d %6d %s\n", probefunc, ".",
+	    probefunc == "fop_getpage" ? "R" : "W", (uint64_t)arg2,
+	    args[1] / 1024, cleanpath(args[0]->v_path));
+}
+
+
+fbt::fop_read:entry,
+fbt::fop_write:entry
+/self->sc_trace && args[0]->v_path/
+{
+	printf("  %-11s %10s %2s %8d %6d %s\n", probefunc, ".",
+	    probefunc == "fop_read" ? "R" : "W", args[1]->uio_resid,
+	    args[1]->_uio_offset._f / 1024, cleanpath(args[0]->v_path));
+}
+
+fbt:ufs:ufs_getpage_ra:entry
+{
+	/* fetch the real offset (file_t is unaware of this) */
+	self->offset = ((inode_t *)args[0]->v_data)->i_nextrio;
+	self->read_ahead = 1;
+}
+
+fbt:ufs:ufs_getpage_ra:return
+{
+	self->read_ahead = 0;
+	self->offset = 0;
+}
+
+io::bdev_strategy:start
+{
+	this->offset = self->read_ahead ? self->offset : args[2]->fi_offset;
+	printf("    %-9s %10s %2s %8d %6d %s\n",
+	    self->read_ahead ? "disk_ra" : "disk_io", args[1]->dev_statname,
+	    args[0]->b_flags & B_READ ? "R" : "W", args[0]->b_bcount,
+	    this->offset / 1024, args[2]->fi_pathname);
+}
diff --git a/external/cddl/dtracetoolkit/dist/FS/fsrw.d b/external/cddl/dtracetoolkit/dist/FS/fsrw.d
new file mode 100755
index 0000000..b4b9a2e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/FS/fsrw.d
@@ -0,0 +1,149 @@
+#!/usr/sbin/dtrace -s
+/*
+ * fsrw.d - file system read/write event tracing.
+ *          Written using DTrace (Solaris 10 3/05)
+ *
+ * This traces file related activity: system call reads and writes,
+ * vnode logical read and writes (fop), and disk I/O. It can be used
+ * to examine the behaviour of each I/O layer, from the syscall
+ * interface to what the disk is doing. Behaviour such as read-ahead, and
+ * max I/O size breakup can be observed.
+ *
+ * $Id: fsrw.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	fsrw.d
+ *
+ * FIELDS:
+ *		Event		Traced event (see EVENTS below)
+ *		Device		Device, for disk I/O
+ *		RW		Either Read or Write
+ *		Size		Size of I/O in bytes
+ *		Offset		Offset of I/O in kilobytes
+ *		Path		Path to file on disk
+ *
+ * EVENTS:
+ *		sc-read		System call read
+ *		sc-write	System call write
+ *		fop_read	Logical read
+ *		fop_write	Logical write
+ *		disk_io		Physical disk I/O
+ *		disk_ra		Physical disk I/O, read ahead
+ *
+ * The events are drawn with a level of indentation, which can sometimes
+ * help identify related events.
+ *
+ * SEE ALSO: fspaging.d
+ *
+ * IDEA: Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * ToDo: readv()
+ *
+ * 20-Mar-2006  Brendan Gregg   Created this.
+ * 23-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+dtrace:::BEGIN
+{
+	printf("%-12s %10s %2s %8s %6s %s\n",
+	    "Event", "Device", "RW", "Size", "Offset", "Path");
+}
+
+syscall::*read:entry,
+syscall::*write*:entry
+{
+	/*
+	 * starting with a file descriptior, dig out useful info
+	 * from the corresponding file_t and vnode_t.
+	 */
+	this->filistp = curthread->t_procp->p_user.u_finfo.fi_list;
+	this->ufentryp = (uf_entry_t *)((uint64_t)this->filistp +
+	    (uint64_t)arg0 * (uint64_t)sizeof (uf_entry_t));
+	this->filep = this->ufentryp->uf_file;
+	self->offset = this->filep->f_offset;
+	this->vnodep = this->filep != 0 ? this->filep->f_vnode : 0;
+	self->vpath = this->vnodep ? (this->vnodep->v_path != 0 ?
+	    cleanpath(this->vnodep->v_path) : "<unknown>") : "<unknown>";
+
+	/* only trace activity to regular files and directories, as */
+	self->sc_trace = this->vnodep ? this->vnodep->v_type == VREG ||
+	    this->vnodep->v_type == VDIR ? 1 : 0 : 0;
+}
+
+syscall::*read:entry
+/self->sc_trace/
+{
+	printf("sc-%-9s %10s %2s %8d %6d %s\n", probefunc, ".", "R",
+	    (int)arg2, self->offset / 1024, self->vpath);
+}
+
+syscall::*write*:entry
+/self->sc_trace/
+{
+	printf("sc-%-9s %10s %2s %8d %6d %s\n", probefunc, ".", "W",
+	    (int)arg2, self->offset / 1024, self->vpath);
+}
+
+syscall::*read:return,
+syscall::*write*:return
+{
+	self->vpath = 0;
+	self->offset = 0;
+	self->sc_trace = 0;
+}
+
+fbt::fop_read:entry,
+fbt::fop_write:entry
+/self->sc_trace && args[0]->v_path/
+{
+	printf("  %-10s %10s %2s %8d %6d %s\n", probefunc, ".",
+	    probefunc == "fop_read" ? "R" : "W", args[1]->uio_resid,
+	    args[1]->_uio_offset._f / 1024, cleanpath(args[0]->v_path));
+}
+
+fbt:ufs:ufs_getpage_ra:entry
+{
+	/* fetch the real offset (file_t is unaware of this) */
+	self->ra_offset = ((inode_t *)args[0]->v_data)->i_nextrio;
+	self->read_ahead = 1;
+}
+
+fbt:ufs:ufs_getpage_ra:return
+{
+	self->read_ahead = 0;
+	self->ra_offset = 0;
+}
+
+io::bdev_strategy:start
+{
+	this->offset = self->read_ahead ? self->ra_offset : args[2]->fi_offset;
+	printf("    %-8s %10s %2s %8d %6d %s\n",
+	    self->read_ahead ? "disk_ra" : "disk_io", args[1]->dev_statname,
+	    args[0]->b_flags & B_READ ? "R" : "W", args[0]->b_bcount,
+	    this->offset / 1024, args[2]->fi_pathname);
+	/*
+	 * it would seem to make sense to only trace disk events during
+	 * an fop event, easily coded with a self->fop_trace flag. However
+	 * writes are asynchronous to the fop_write calls (they are flushed
+	 * at some later time), and so this approach will miss tracing
+	 * most of the disk writes.
+	 */
+}
diff --git a/external/cddl/dtracetoolkit/dist/FS/rfileio.d b/external/cddl/dtracetoolkit/dist/FS/rfileio.d
new file mode 100755
index 0000000..b13c0df
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/FS/rfileio.d
@@ -0,0 +1,91 @@
+#!/usr/sbin/dtrace -s
+/*
+ * rfileio.d - read file I/O stats, with cache miss rate.
+ *             Written using DTrace (Solaris 10 3/05)
+ *
+ * This script provides statistics on the number of reads and the bytes
+ * read from filesystems (logical), and the number of bytes read from
+ * disk (physical). A summary is printed every five seconds by file.
+ *
+ * A total miss-rate is also provided for the file system cache.
+ *
+ * $Id: rfileio.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	rfileio.d
+ *
+ * IDEA: Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 19-Mar-2006  Brendan Gregg   Created this.
+ * 23-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+self int trace;
+uint64_t lbytes;
+uint64_t pbytes;
+
+dtrace:::BEGIN
+{
+	trace("Tracing...\n");
+}
+
+fbt::fop_read:entry
+/self->trace == 0 && args[0]->v_path/
+{
+	self->pathname = cleanpath(args[0]->v_path);
+	@rio[self->pathname, "logical"] = count();
+	lbytes += args[1]->uio_resid;
+	self->size = args[1]->uio_resid;
+	self->uiop = args[1];
+}
+
+fbt::fop_read:return
+/self->size/
+{
+	@rbytes[self->pathname, "logical"] =
+	    sum(self->size - self->uiop->uio_resid);
+	self->size = 0;
+	self->uiop = 0;
+	self->pathname = 0;
+}
+
+io::bdev_strategy:start
+/self->size && args[0]->b_flags & B_READ/
+{
+	@rio[self->pathname, "physical"] = count();
+	@rbytes[self->pathname, "physical"] = sum(args[0]->b_bcount);
+	pbytes += args[0]->b_bcount;
+}
+
+profile:::tick-5s
+{
+	trunc(@rio, 20);
+	trunc(@rbytes, 20);
+	printf("\033[H\033[2J");
+	printf("\nRead IOPS, top 20 (count)\n");
+	printa("%-54s %10s %10@d\n", @rio);
+	printf("\nRead Bandwidth, top 20 (bytes)\n");
+	printa("%-54s %10s %10@d\n", @rbytes);
+	printf("\nTotal File System miss-rate: %d%%\n",
+	    lbytes ? 100 * pbytes / lbytes : 0);
+	trunc(@rbytes);
+	trunc(@rio);
+	lbytes = pbytes = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/FS/rfsio.d b/external/cddl/dtracetoolkit/dist/FS/rfsio.d
new file mode 100755
index 0000000..2b2b0f7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/FS/rfsio.d
@@ -0,0 +1,98 @@
+#!/usr/sbin/dtrace -s
+/*
+ * rfsio.d - read FS I/O stats, with cache miss rate.
+ *           Written using DTrace (Solaris 10 3/05)
+ *
+ * This script provides statistics on the number of reads and the bytes
+ * read from filesystems (logical), and the number of bytes read from
+ * disk (physical). A summary is printed every five seconds by filesystem.
+ *
+ * A total miss-rate is also provided for the file system cache.
+ *
+ * $Id: rfsio.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	rfsio.d
+ *
+ * IDEA: Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 19-Mar-2006  Brendan Gregg   Created this.
+ * 23-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+self int trace;
+uint64_t lbytes;
+uint64_t pbytes;
+
+dtrace:::BEGIN
+{
+	trace("Tracing...\n");
+}
+
+fbt::fop_read:entry
+/self->trace == 0/
+{
+	self->fs_mount = args[0]->v_vfsp == `rootvfs ? "/" :
+	    args[0]->v_vfsp->vfs_vnodecovered ?
+	    stringof(args[0]->v_vfsp->vfs_vnodecovered->v_path) : NULL;
+}
+
+fbt::fop_read:entry
+/self->fs_mount != NULL/
+{
+	@rio[self->fs_mount, "logical"] = count();
+	lbytes += args[1]->uio_resid;
+	self->size = args[1]->uio_resid;
+	self->uiop = args[1];
+}
+
+fbt::fop_read:return
+/self->size/
+{
+	@rbytes[self->fs_mount, "logical"] =
+	    sum(self->size - self->uiop->uio_resid);
+	self->size = 0;
+	self->uiop = 0;
+	self->fs_mount = 0;
+}
+
+io::bdev_strategy:start
+/self->size && args[0]->b_flags & B_READ/
+{
+	@rio[self->fs_mount, "physical"] = count();
+	@rbytes[self->fs_mount, "physical"] = sum(args[0]->b_bcount);
+	pbytes += args[0]->b_bcount;
+}
+
+profile:::tick-5s
+{
+	trunc(@rio, 20);
+	trunc(@rbytes, 20);
+	printf("\033[H\033[2J");
+	printf("\nRead IOPS (count)\n");
+	printa("%-32s %10s %10@d\n", @rio);
+	printf("\nRead Bandwidth (bytes)\n");
+	printa("%-32s %10s %10@d\n", @rbytes);
+	printf("\nTotal File System miss-rate: %d%%\n",
+	    lbytes ? 100 * pbytes / lbytes : 0);
+	trunc(@rbytes);
+	trunc(@rio);
+	lbytes = pbytes = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/FS/vopstat b/external/cddl/dtracetoolkit/dist/FS/vopstat
new file mode 100755
index 0000000..96f54d4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/FS/vopstat
@@ -0,0 +1,304 @@
+#!/usr/bin/sh
+#
+# vopstat - Trace the vnode interface.
+#           Written using DTrace (Solaris 10 3/05)
+#
+# Author: Richard McDougall
+#
+# $Id: vopstat,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# USAGE:	vopstat [-t] [/mountname]
+#
+#		vopstat		# default output, summary each 5 secs
+#		-t 		# trace activity as it occurs
+#
+# Example:
+#
+# ./vopstat
+# 
+# VOP Physical IO                                                   Count
+# fop_fsync                                                           236
+# 
+# VOP Count                                                         Count
+# fop_create                                                            1
+# fop_fid                                                               1
+# fop_lookup                                                            2
+# fop_access                                                            3
+# fop_read                                                              3
+# fop_poll                                                             11
+# fop_fsync                                                            31
+# fop_putpage                                                          32
+# fop_ioctl                                                           115
+# fop_write                                                           517
+# fop_rwlock                                                          520
+# fop_rwunlock                                                        520
+# fop_inactive                                                        529
+# fop_getattr                                                        1057
+# 
+# VOP Wall Time                                                  mSeconds
+# fop_fid                                                               0
+# fop_access                                                            0
+# fop_read                                                              0
+# fop_poll                                                              0
+# fop_lookup                                                            0
+# fop_create                                                            0
+# fop_ioctl                                                             0
+# fop_putpage                                                           1
+# fop_rwunlock                                                          1
+# fop_rwlock                                                            1
+# fop_inactive                                                          1
+# fop_getattr                                                           2
+# fop_write                                                            22
+# fop_fsync                                                           504
+# 
+# COPYRIGHT: Copyright (c) 2006 Richard McDougall
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Shell Wrapper Concept by Brendan Gregg
+#
+# 08-Jan-2006	Richard McDougall	Created this.
+# 23-Apr-2006	Brendan Gregg		Minor style tweaks.
+# 23-Apr-2006	   "      "		Last update.
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_trace=0; opt_fs=0; opt_stats=1; opt_all=0
+
+### process options
+while getopts t name
+do
+	case $name in
+	t)	opt_trace=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: voptrace [-t] [/mountpoint]
+		        voptrace         # default output
+		                 -t      # trace
+		   eg,
+		        voptrace -t      # trace all file systems
+		        voptrace -t /tmp # trace /tmp
+		        voptrace  /tmp   # summary stats for /tmp
+		END
+		exit 1
+	esac
+done
+shift `expr $OPTIND - 1`
+filesys="$1"
+
+### option logic
+if [ $opt_trace -eq 1 ]; then
+	opt_stats=0
+fi
+if [ -z "$filesys" ]; then
+	opt_all=1
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_fs 	= '$opt_fs';
+ inline int OPT_all 	= '$opt_all';
+ inline int OPT_trace 	= '$opt_trace';
+ inline int OPT_stats 	= '$opt_stats';
+ inline string FILESYS 	= "'$filesys'";
+ 
+ #pragma D option quiet
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	last_event[""] = 0;
+
+	/* print main headers */
+	OPT_stats == 1 ?
+		printf("\033[H\033[2J") : 1;
+
+	OPT_trace == 1 ?
+		printf("%2s %-15s %-10s %51s %2s %8s %8s\n", 
+		    "", "Event", "Device", "Path", "RW", "Size", "Offset") : 1;
+	self->path = "";
+	self->trace = 0;
+ }
+
+ dtrace:::BEGIN
+ /OPT_trace == 1/
+ {
+	/* make D compiler happy */
+	@vop_iocnt[""] = count();
+	@vop_cnt[""]   = count();
+	@vop_time[""]  = sum(0);
+	trunc(@vop_iocnt);
+	trunc(@vop_cnt);
+	trunc(@vop_time);
+ }
+ 
+ fbt::fop_*:entry
+ {
+ 	self->trace = 0;
+
+ 	/* Get vp: fop_open has a pointer to vp */
+ 	this->vpp = (vnode_t **)arg0;
+ 	self->vp = (vnode_t *)arg0;
+ 	self->vp = probefunc == "fop_open" ? (vnode_t *)*this->vpp : self->vp;
+
+ 	/* And the containing vfs */
+         this->vfsp = self->vp ? self->vp->v_vfsp : 0;
+
+ 	/* And the paths for the vp and containing vfs */
+ 	this->vfsvp = this->vfsp ?
+	    (struct vnode *)((vfs_t *)this->vfsp)->vfs_vnodecovered : 0;
+ 	self->vfspath = this->vfsvp ? stringof(this->vfsvp->v_path) : "unknown";
+ 
+ 	/* Check if we should trace the root fs */
+ 	(OPT_all || 
+ 	    (FILESYS == "/" && this->vfsp &&
+ 	    (this->vfsp == `rootvfs))) ? self->trace = 1 : self->trace;
+ 
+ 	/* Check if we should trace the fs */
+ 	(OPT_all || (self->vfspath == FILESYS)) ? self->trace = 1 : self->trace;
+
+	self->vfspath = 0;
+ }
+ 
+ /*
+  * Trace the entry point to each fop
+  */ 
+ fbt::fop_*:entry
+ /self->trace/
+ {
+ 	self->path = (self->vp != NULL && self->vp->v_path) ?
+	    stringof(self->vp->v_path) : "unknown";
+ 
+ 	/* Some fops has the len in arg2 */
+ 	(probefunc == "fop_getpage" ||
+ 	 probefunc == "fop_putpage" ||
+ 	 probefunc == "fop_none") ? self->len = arg2 : 1; 
+ 
+ 	/* Some fops has the len in arg3 */
+ 	(probefunc == "fop_pageio" ||
+ 	 probefunc == "fop_none") ? self->len = arg3 : 1; 
+ 
+ 	/* Some fops has the len in arg4 */
+ 	(probefunc == "fop_addmap" ||
+ 	 probefunc == "fop_map" ||
+ 	 probefunc == "fop_delmap") ? self->len = arg4 : 1; 
+ 
+ 	/* Some fops has the offset in arg1 */
+ 	(probefunc == "fop_addmap" ||
+ 	 probefunc == "fop_map" ||
+ 	 probefunc == "fop_getpage" ||
+ 	 probefunc == "fop_putpage" ||
+ 	 probefunc == "fop_seek" ||
+ 	 probefunc == "fop_delmap") ? self->off = arg1 : 1; 
+ 
+ 	/* Some fops has the offset in arg3 */
+ 	(probefunc == "fop_close" ||
+ 	 probefunc == "fop_pageio") ? self->off = arg3 : 1; 
+ 
+ 	/* Some fops has the offset in arg4 */
+ 	probefunc == "fop_frlock" ? self->off = arg4 : 1; 
+ 
+ 	/* Some fops has the pathname in arg1 */
+ 	self->path = (probefunc == "fop_create" ||
+ 	 probefunc == "fop_mkdir" ||
+ 	 probefunc == "fop_rmdir" ||
+ 	 probefunc == "fop_remove" ||
+ 	 probefunc == "fop_lookup") ?
+ 	    strjoin(self->path, strjoin("/", stringof(arg1))) : self->path;
+ 
+	OPT_trace ?
+ 		printf("%2s %-15s %-10s %51s %2s %8d %8d\n", 
+ 		    "->", probefunc, "-", self->path, "-",
+		    self->len, self->off) : 1;
+
+ 	self->type = probefunc;
+ 	self->vop_entry[probefunc] = timestamp;
+ }
+ 
+ fbt::fop_*:return
+ /self->trace == 1/
+ {
+	OPT_trace ?
+ 		printf("%2s %-15s %-10s %51s %2s %8d %8d\n", 
+		    "<-", probefunc, "-", self->path, "-",
+		    self->len, self->off) : 1;
+
+	OPT_stats == 1 ?
+ 		@vop_time[probefunc] =
+			sum(timestamp - self->vop_entry[probefunc]) : 1;
+	OPT_stats == 1 ?
+ 		@vop_cnt[probefunc] = count() : 1;
+
+	self->path = 0;
+	self->len = 0;
+	self->off = 0;
+ }
+
+ fbt::fop_*:return
+ {
+	self->trace = 0;
+	self->type = 0;
+	self->vp = 0;
+ }
+ 
+ /* Capture any I/O within this fop */
+ io:::start
+ /self->trace/
+ {
+	OPT_stats == 1 ?
+ 		@vop_iocnt[self->type] = count() : 1;
+
+	OPT_trace == 1?
+	 	printf("%2s %-15s %-10s %51s %2s %8d %8u\n",
+		    "--", self->type, args[1]->dev_statname,
+		    self->path, args[0]->b_flags & B_READ ? "R" : "W",
+		    args[0]->b_bcount, args[0]->b_blkno) : 1;
+ }
+ 
+ profile:::tick-5s
+ /OPT_stats == 1/
+ {
+	/* Print top 20 only */
+ 	trunc(@vop_iocnt, 20);
+ 	trunc(@vop_time, 20);
+
+	/* Display microseconds */
+ 	normalize(@vop_time, 1000000);
+ 	printf("\033[H\033[2J");
+ 	printf("%-60s %10s\n", "VOP Physical IO", "Count");
+ 	printa("%-60s %10@d\n", @vop_iocnt);
+ 	printf("\n");
+ 	printf("%-60s %10s\n", "VOP Count", "Count");
+ 	printa("%-60s %10@d\n", @vop_cnt);
+ 	printf("\n");
+ 	printf("%-60s %10s\n", "VOP Wall Time", "mSeconds");
+ 	printa("%-60s %10@d\n", @vop_time);
+
+	/* Clear data */
+ 	trunc(@vop_iocnt);
+ 	trunc(@vop_cnt);
+ 	trunc(@vop_time);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Guide b/external/cddl/dtracetoolkit/dist/Guide
new file mode 100644
index 0000000..739d367
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Guide
@@ -0,0 +1,91 @@
+Guide - Guide to the DTraceToolkit
+
+    How to get started, and a table of contents.
+
+QuickStart
+
+	1. The top most useful scripts are in this directory.
+	2. Try running them with "-h". Eg, "./execsnoop -h".
+	3. Read Docs/Contents for a full list of scripts.
+
+QuickStart-by-Screenshot
+
+	1. Look through the examples in the Examples directory until
+	   you see an output you like
+	2. Find the script and run it
+	3. Look for its man page in Man
+
+Not-so-QuickStart
+	
+	1. Welcome!
+	2. Check the Table of Contents below to become famaliar with the
+	   directory structure of the DTraceToolkit.
+	3. See Docs/Faq for any initial questions.
+	4. Read Docs/Contents for a list of scripts.
+	5. Read Docs/Readme to see where scripts are documented.
+	6. Check Docs/Links for further DTrace.
+	7. Once famaliar with the toolkit, the following may be useful to
+	   add to your shell initialisation file,
+		PATH=$PATH:/opt/DTT/Bin
+		MANPATH=$MANPATH:/opt/DTT/Man
+	   in this case assuming the toolkit was installed in /opt/DTT.
+
+Installation
+
+	1. Run ./install
+	   This will replace any existing version of the DTraceToolkit
+	   with this one. It will prompt. Final install location is
+	   printed by this install script.
+
+Table of Contents
+
+   DTraceToolkit-X.XX/
+	Bin/			Symlinks to all the scripts
+	Apps/			Application specific scripts
+	Cpu/			Scripts for CPU analysis
+	Code/			Example code to practise on
+	Disk/			Scripts for disk I/O analysis
+	Docs/			Documentation
+	   Contents		Command list for the Toolkit
+	   Faq			Frequently asked questions
+	   Links		Further DTrace links
+	   Readme		Readme for using the docs
+	Examples/		Examples of command usage
+	Guide			This file!
+	Include/		DTrace include files
+	Java/			Scripts for tracing Java
+	JavaScript/		Scripts for tracing JavaScript
+	Kernel/			Scripts for kernel analysis
+	License			The CDDL license
+	Locks/			Scripts for lock analysis
+	Man/			Man pages
+	   man1m/		Man pages for the Toolkit commands
+	Mem/			Scripts for memory analysis
+	Misc/			Misc scripts
+	Net/			Scripts for network analysis
+	Notes/			Notes on Toolkit commands
+	Perl/			Scripts for tracing Perl
+	Php/			Scripts for tracing Php
+	Proc/			Scripts for process analysis
+	Python/			Scripts for tracing Python
+	Ruby/			Scripts for tracing Ruby
+	Shell/			Scripts for tracing Shell languages
+	Snippits/		Snippits of D scripting
+	System/			Scripts for system analysis
+	Tcl/			Scripts for tracing Tcl
+	User/			Scripts for user based activity analysis
+	Zones/			Scripts for analysis by zone
+	Version			DTraceToolkit version
+	install			Install script, use for installs only
+
+When you type ls in the DTraceToolkit, you will be looking at the top ten 
+or so most useful scripts plus the top level directories. Other scripts have
+been placed in meaningful subdirectories, such as Disk, Kernel, Proc, etc.
+
+An optional Bin directory has been provided that links to all the scripts.
+
+The DTraceToolkit is released under the CDDL license. It's the same open
+source license that OpenSolaris has been released under.
+
+Thank you for using the DTraceToolkit!
+
diff --git a/external/cddl/dtracetoolkit/dist/Include/Readme b/external/cddl/dtracetoolkit/dist/Include/Readme
new file mode 100644
index 0000000..4aa4688
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Include/Readme
@@ -0,0 +1,18 @@
+Include - include scripts for D scripting
+
+   This directory contains files that can be included for use with D scripts.
+
+   There are two types of include files,
+
+   *.h
+	These can be included using,
+
+	#!/usr/sbin/dtrace -Cs
+	#include <filename.h>
+
+   *.d
+	These must be copyied to a translator directory (/usr/lib/dtrace),
+	and should be automatically pulled in.
+
+   This directory does not contain runnable DTrace scripts.
+
diff --git a/external/cddl/dtracetoolkit/dist/Include/test.ksh b/external/cddl/dtracetoolkit/dist/Include/test.ksh
new file mode 100755
index 0000000..ca0981e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Include/test.ksh
@@ -0,0 +1,68 @@
+#!/usr/bin/ksh
+/*
+ * test.ksh - DTrace include file test script.
+ *
+ * $Id: test.ksh,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 16-Sep-2007	Brendan Gregg	Created this.
+ */
+
+dtrace -CI . -s /dev/stdin << END
+
+#include "tostr.h"
+#include "time.h"
+
+#pragma D option quiet
+#pragma D option destructive
+
+dtrace:::BEGIN
+{
+	i = 1;
+	printf("\nNUM_TO_STR   %12d = %s\n", i, NUM_TO_STR(i));
+	i = 1100;
+	printf("NUM_TO_STR   %12d = %s\n", i, NUM_TO_STR(i));
+	i = 1100000;
+	printf("NUM_TO_STR   %12d = %s\n", i, NUM_TO_STR(i));
+	i = 999999999;
+	printf("NUM_TO_STR   %12d = %s\n", i, NUM_TO_STR(i));
+
+	i = 1;
+	printf("\nBYTES_TO_STR %12d = %s\n", i, BYTES_TO_STR(i));
+	i = 1024;
+	printf("BYTES_TO_STR %12d = %s\n", i, BYTES_TO_STR(i));
+	i = 1000000;
+	printf("BYTES_TO_STR %12d = %s\n", i, BYTES_TO_STR(i));
+	i = 999999999;
+	printf("BYTES_TO_STR %12d = %s\n", i, BYTES_TO_STR(i));
+
+	i = 1;
+	printf("\nUS_TO_STR    %12d = %s\n", i, US_TO_STR(i));
+	i = 1100;
+	printf("US_TO_STR    %12d = %s\n", i, US_TO_STR(i));
+	i = 999999;
+	printf("US_TO_STR    %12d = %s\n", i, US_TO_STR(i));
+
+	printf("\nwalltimestamp : %Y\n", walltimestamp);
+	printf("TZ=GMT date   : ");
+	system("TZ=GMT date '+%%H:%%M:%%S'");
+	printf("TIME_HHMMSS   : %s\n", TIME_HHMMSS);
+
+	exit(0);
+}
+END
diff --git a/external/cddl/dtracetoolkit/dist/Include/time.h b/external/cddl/dtracetoolkit/dist/Include/time.h
new file mode 100644
index 0000000..5502c2b2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Include/time.h
@@ -0,0 +1,38 @@
+/*
+ * time.h - DTrace Time include file.
+ *
+ * $Id: time.h,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 16-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/*
+ * TIME_HHMMSS - Returns GMT time as a "HH:MM:SS" string.
+ *
+ * eg, "21:53:07"
+ */
+#define TIME_HHMMSS							\
+	strjoin(strjoin(strjoin(strjoin(strjoin(			\
+	(((walltimestamp / 1000000000) % 86400) / 3600) < 10 ? "0" : "",\
+	lltostr(((walltimestamp / 1000000000) % 86400) / 3600)), ":"),	\
+	strjoin((((walltimestamp / 1000000000) % 3600) / 60) < 10 ?	\
+	"0" : "", lltostr(((walltimestamp / 1000000000) % 3600) / 60))),\
+	":"), strjoin(((walltimestamp / 1000000000) % 60) < 10 ?	\
+	"0" : "", lltostr((walltimestamp / 1000000000) % 60)))
+
diff --git a/external/cddl/dtracetoolkit/dist/Include/tostr.h b/external/cddl/dtracetoolkit/dist/Include/tostr.h
new file mode 100644
index 0000000..4a1a25e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Include/tostr.h
@@ -0,0 +1,89 @@
+/*
+ * tostr.h - DTrace To-String include file.
+ *
+ * $Id: tostr.h,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 16-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/*
+ * NUM_TO_STR(n) - takes a number and returns a string with a prefix,
+ *	intended to fit withen 6 chars.
+ *
+ *	Input		Output
+ *	0		0
+ *	1		1
+ *	10		10
+ *	999		999
+ *	1000		1.0K
+ *	1100		1.1K
+ *	10000		10.0K
+ *	999999		999.0K
+ * 	1000000		1.0M
+ * 	10000000	10.0M
+ * 	999999999	999.9M
+ */
+#define	NUM_TO_STR(n)							\
+	n >= 1000000 ?							\
+	strjoin(strjoin(strjoin(lltostr(n / 1000000), "."), 		\
+	lltostr((n % 1000000) / 100000)), "M") : n >= 1000 ?		\
+	strjoin(strjoin(strjoin(lltostr(n / 1000), "."), 		\
+	lltostr((n % 1000) / 100)), "K") : lltostr(n)
+
+/*
+ * BYTES_TO_STR(n) - takes a byte count and returns a string with a prefix,
+ *	intended to fit withen 6 chars.
+ *
+ *	Input		Output
+ *	0		0
+ *	1		1
+ *	10		10
+ *	999		0.9K
+ *	1000		0.9K
+ *	1024		1.0K
+ *	10240		10.0K
+ *	1000000		976.5K
+ * 	1048576		1.0M
+ * 	1000000000	953.6M
+ */
+#define	BYTES_TO_STR(n)							\
+	n >= 1024000 ?							\
+	strjoin(strjoin(strjoin(lltostr(n / 1048576), "."), 		\
+	lltostr((n % 1048576) / 104858)), "M") : n >= 1000 ?		\
+	strjoin(strjoin(strjoin(lltostr(n / 1024), "."), 		\
+	lltostr((n % 1024) / 103)), "K") : lltostr(n)
+
+/*
+ * US_TO_STR(n) - takes microseconds and returns a string with a prefix,
+ *	intended to fit withen 6 chars.
+ *
+ *	Input		Output
+ *	0		0
+ *	1		1u
+ *	10		10u
+ *	999		999u
+ *	1000		1.0m
+ *	1100		1.1m
+ *	10000		10.0m
+ *	999999		999.0m
+ */
+#define	US_TO_STR(n)							\
+	n == 0 ? "0" : n >= 1000 ?					\
+	strjoin(lltostr(n / 1000), "m") : strjoin(lltostr(n), "u")
+
diff --git a/external/cddl/dtracetoolkit/dist/Java/Readme b/external/cddl/dtracetoolkit/dist/Java/Readme
new file mode 100644
index 0000000..ae455a5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/Readme
@@ -0,0 +1,17 @@
+Java - DTracing Java
+
+   These scripts trace the JVM, and require the Java hotspot provider which
+   was shipped with Java starting with version 1.6.0.
+
+   Some of these scripts measure method and object events, and require
+   the Java process to be run using the "+ExtendedDTraceProbes" flag.
+   For example,
+
+	java -XX:+ExtendedDTraceProbes classfile
+
+   The ExtendedDTraceProbes flag is not on by default to avoid the additional
+   overhead for maintaining these additional probes. When this flag is
+   enabled, the JVM may execute slightly slower than before; when the probes
+   are also enabled (especially method probes), the JVM may execute
+   significantly slower.
+
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_calldist.d b/external/cddl/dtracetoolkit/dist/Java/j_calldist.d
new file mode 100755
index 0000000..dd96caa
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_calldist.d
@@ -0,0 +1,116 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * j_calldist.d - measure Java elapsed times for different types of operation.
+ *                Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_calldist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0). Method calls are only visible when using the
+ * flag "+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_calldist.d [top]	# hit Ctrl-C to end
+ *
+ * The "top" optional argument will truncate the output for each report
+ * section to that many lines, with a default of 10.
+ *
+ * FIELDS:
+ *		1		Process ID
+ *		2		Type of call (method/gc)
+ *		3		Name of call
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+hotspot*:::method-entry
+{
+	self->depth[arg0]++;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+	self->method[arg0, self->depth[arg0]] = timestamp;
+}
+
+hotspot*:::method-return
+/self->method[arg0, self->depth[arg0]]/
+{
+	this->elapsed_incl = timestamp - self->method[arg0, self->depth[arg0]];
+	this->elapsed_excl = this->elapsed_incl -
+	    self->exclude[arg0, self->depth[arg0]];
+	self->method[arg0, self->depth[arg0]] = 0;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+
+	@types_incl[pid, "method", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[pid, "method", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth[arg0]--;
+	self->exclude[arg0, self->depth[arg0]] += this->elapsed_incl;
+}
+
+hotspot*:::gc-begin
+{
+	self->gc = timestamp;
+	self->full = (boolean_t)arg0;
+}
+
+hotspot*:::gc-end
+/self->gc/
+{
+	this->elapsed = timestamp - self->gc;
+
+	@types[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] =
+	    quantize(this->elapsed / 1000);
+
+	self->gc = 0;
+	self->full = 0;
+}
+
+dtrace:::END
+{
+	trunc(@types, top);
+	printf("\nTop %d elapsed times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types);
+
+	trunc(@types_excl, top);
+	printf("\nTop %d exclusive method elapsed times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	printf("\nTop %d inclusive method elapsed times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_calls.d b/external/cddl/dtracetoolkit/dist/Java/j_calls.d
new file mode 100755
index 0000000..2fd9ae2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_calls.d
@@ -0,0 +1,113 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_calls.d - count Java calls (method/...) using DTrace.
+ *             Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_calls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0). Method calls and object allocation are only
+ * visible when using the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_calls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (see below)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * TYPEs:
+ *		cload		class load
+ *		method		method call
+ *		mcompile	method compile
+ *		mload		compiled method load
+ *		oalloc		object alloc
+ *		thread		thread start
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot*:::method-entry
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+	@calls[pid, "method", this->name] = count();
+}
+
+hotspot*:::object-alloc
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	@calls[pid, "oalloc", stringof(this->class)] = count();
+}
+
+hotspot*:::class-loaded
+{
+	this->class = (char *)copyin(arg0, arg1 + 1);
+	this->class[arg1] = '\0';
+	@calls[pid, "cload", stringof(this->class)] = count();
+}
+
+hotspot*:::thread-start
+{
+	this->thread = (char *)copyin(arg0, arg1 + 1);
+	this->thread[arg1] = '\0';
+	@calls[pid, "thread", stringof(this->thread)] = count();
+}
+
+hotspot*:::method-compile-begin
+{
+	this->class = (char *)copyin(arg0, arg1 + 1);
+	this->class[arg1] = '\0';
+	this->method = (char *)copyin(arg2, arg3 + 1);
+	this->method[arg3] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+	@calls[pid, "mcompile", this->name] = count();
+}
+
+hotspot*:::compiled-method-load
+{
+	this->class = (char *)copyin(arg0, arg1 + 1);
+	this->class[arg1] = '\0';
+	this->method = (char *)copyin(arg2, arg3 + 1);
+	this->method[arg3] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+	@calls[pid, "mload", this->name] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s %-8s %-52s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa(" %6d %-8s %-52s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_calltime.d b/external/cddl/dtracetoolkit/dist/Java/j_calltime.d
new file mode 100755
index 0000000..70f560d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_calltime.d
@@ -0,0 +1,129 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * j_calltime.d - measure Java elapsed times for different types of operation.
+ *                Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_calltime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0). Method calls are only visible when using the
+ * flag "+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_calltime.d [top]	# hit Ctrl-C to end
+ *
+ * The "top" optional argument will truncate the output for each report
+ * section to that many lines, with a default of 10.
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (method/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+hotspot*:::method-entry
+{
+	self->depth[arg0]++;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+	self->method[arg0, self->depth[arg0]] = timestamp;
+}
+
+hotspot*:::method-return
+/self->method[arg0, self->depth[arg0]]/
+{
+	this->elapsed_incl = timestamp - self->method[arg0, self->depth[arg0]];
+	this->elapsed_excl = this->elapsed_incl -
+	    self->exclude[arg0, self->depth[arg0]];
+	self->method[arg0, self->depth[arg0]] = 0;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+
+	@num[pid, "method", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "method", this->name] = sum(this->elapsed_incl);
+	@types_excl[pid, "method", this->name] = sum(this->elapsed_excl);
+	@types_excl[0, "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth[arg0]--;
+	self->exclude[arg0, self->depth[arg0]] += this->elapsed_incl;
+}
+
+hotspot*:::gc-begin
+{
+	self->gc = timestamp;
+	self->full = (boolean_t)arg0;
+}
+
+hotspot*:::gc-end
+/self->gc/
+{
+	this->elapsed = timestamp - self->gc;
+	self->gc = 0;
+
+	@num[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] = count();
+	@types[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] =
+	    sum(this->elapsed);
+	self->full = 0;
+}
+
+dtrace:::END
+{
+	trunc(@num, top);
+	printf("\nTop %d counts,\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa("   %6d %-10s %-48s %@8d\n", @num);
+
+	trunc(@types, top);
+	normalize(@types, 1000);
+	printf("\nTop %d elapsed times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types);
+
+	trunc(@types_excl, top);
+	normalize(@types_excl, 1000);
+	printf("\nTop %d exclusive method elapsed times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	normalize(@types_incl, 1000);
+	printf("\nTop %d inclusive method elapsed times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_classflow.d b/external/cddl/dtracetoolkit/dist/Java/j_classflow.d
new file mode 100755
index 0000000..297a307
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_classflow.d
@@ -0,0 +1,100 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_classflow.d - trace a Java class method flow using DTrace.
+ *                 Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_classflow.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_classflow.d	classname	# hit Ctrl-C to end
+ *
+ * This watches Java method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		PID		Process ID
+ *		CLASS.METHOD	Java class and method name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ * Changes in TID will appear to shuffle output, as we change from one thread
+ * depth to the next. See Docs/Notes/ALLjavaflow.txt for additional notes.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/* increasing bufsize can reduce drops */
+#pragma D option bufsize=16m
+#pragma D option quiet
+#pragma D option defaultargs
+#pragma D option switchrate=10
+
+self int depth[int];
+
+dtrace:::BEGIN
+/$$1 == ""/
+{
+	printf("USAGE: j_classflow.d classname\n");
+	exit(1);
+}
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s -- %s\n", "C", "PID", "TIME(us)", "CLASS.METHOD");
+}
+
+hotspot*:::method-entry,
+hotspot*:::method-return
+{
+	this->class = stringof((char *)copyin(arg1, arg2 + 1));
+	this->class[arg2] = '\0';
+}
+
+hotspot*:::method-entry
+/this->class == $$1/
+{
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	printf("%3d %6d %-16d %*s-> %s.%s\n", cpu, pid, timestamp / 1000,
+	    self->depth[arg0] * 2, "", stringof(this->class),
+	    stringof(this->method));
+	self->depth[arg0]++;
+}
+
+hotspot*:::method-return
+/this->class == $$1/
+{
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	self->depth[arg0] -= self->depth[arg0] > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %*s<- %s.%s\n", cpu, pid, timestamp / 1000,
+	    self->depth[arg0] * 2, "", stringof(this->class),
+	    stringof(this->method));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_cpudist.d b/external/cddl/dtracetoolkit/dist/Java/j_cpudist.d
new file mode 100755
index 0000000..ee5f968
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_cpudist.d
@@ -0,0 +1,116 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * j_cpudist.d - measure Java on-CPU times for different types of operation.
+ *               Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_cpudist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0). Method calls are only visible when using the
+ * flag "+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_cpudist.d [top]	# hit Ctrl-C to end
+ *
+ * The "top" optional argument will truncate the output for each report
+ * section to that many lines, with a default of 10.
+ *
+ * FIELDS:
+ *		1		Process ID
+ *		2		Type of call (method/gc)
+ *		3		Name of call
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+hotspot*:::method-entry
+{
+	self->depth[arg0]++;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+	self->method[arg0, self->depth[arg0]] = vtimestamp;
+}
+
+hotspot*:::method-return
+/self->method[arg0, self->depth[arg0]]/
+{
+	this->oncpu_incl = vtimestamp - self->method[arg0, self->depth[arg0]];
+	this->oncpu_excl = this->oncpu_incl -
+	    self->exclude[arg0, self->depth[arg0]];
+	self->method[arg0, self->depth[arg0]] = 0;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+
+	@types_incl[pid, "method", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[pid, "method", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth[arg0]--;
+	self->exclude[arg0, self->depth[arg0]] += this->oncpu_incl;
+}
+
+hotspot*:::gc-begin
+{
+	self->gc = vtimestamp;
+	self->full = (boolean_t)arg0;
+}
+
+hotspot*:::gc-end
+/self->gc/
+{
+	this->oncpu = vtimestamp - self->gc;
+
+	@types[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] =
+	    quantize(this->oncpu / 1000);
+
+	self->gc = 0;
+	self->full = 0;
+}
+
+dtrace:::END
+{
+	trunc(@types, top);
+	printf("\nTop %d on-CPU times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types);
+
+	trunc(@types_excl, top);
+	printf("\nTop %d exclusive method on-CPU times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	printf("\nTop %d inclusive method on-CPU times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_cputime.d b/external/cddl/dtracetoolkit/dist/Java/j_cputime.d
new file mode 100755
index 0000000..f1cde9c2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_cputime.d
@@ -0,0 +1,129 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * j_cputime.d - measure Java on-CPU times for different types of operation.
+ *               Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_cputime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0). Method calls are only visible when using the
+ * flag "+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_cputime.d [top]	# hit Ctrl-C to end
+ *
+ * The "top" optional argument will truncate the output for each report
+ * section to that many lines, with a default of 10.
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (method/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+hotspot*:::method-entry
+{
+	self->depth[arg0]++;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+	self->method[arg0, self->depth[arg0]] = vtimestamp;
+}
+
+hotspot*:::method-return
+/self->method[arg0, self->depth[arg0]]/
+{
+	this->oncpu_incl = vtimestamp - self->method[arg0, self->depth[arg0]];
+	this->oncpu_excl = this->oncpu_incl -
+	    self->exclude[arg0, self->depth[arg0]];
+	self->method[arg0, self->depth[arg0]] = 0;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+
+	@num[pid, "method", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "method", this->name] = sum(this->oncpu_incl);
+	@types_excl[pid, "method", this->name] = sum(this->oncpu_excl);
+	@types_excl[0, "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth[arg0]--;
+	self->exclude[arg0, self->depth[arg0]] += this->oncpu_incl;
+}
+
+hotspot*:::gc-begin
+{
+	self->gc = vtimestamp;
+	self->full = (boolean_t)arg0;
+}
+
+hotspot*:::gc-end
+/self->gc/
+{
+	this->oncpu = vtimestamp - self->gc;
+	self->gc = 0;
+
+	@num[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] = count();
+	@types[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] =
+	    sum(this->oncpu);
+	self->full = 0;
+}
+
+dtrace:::END
+{
+	trunc(@num, top);
+	printf("\nTop %d counts,\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa("   %6d %-10s %-48s %@8d\n", @num);
+
+	trunc(@types, top);
+	normalize(@types, 1000);
+	printf("\nTop %d on-CPU times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types);
+
+	trunc(@types_excl, top);
+	normalize(@types_excl, 1000);
+	printf("\nTop %d exclusive method on-CPU times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	normalize(@types_incl, 1000);
+	printf("\nTop %d inclusive method on-CPU times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_events.d b/external/cddl/dtracetoolkit/dist/Java/j_events.d
new file mode 100755
index 0000000..9a175b5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_events.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_events.d - count Java events using DTrace.
+ *              Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_events.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0). Some events such as method calls are only
+ * visible when using the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_events.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		EVENT		Event name (DTrace probe name)
+ *		COUNT		Number of calls during sample
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/* this matches both hotspot and hotspot_jni providers */
+hotspot*:::
+{
+	@calls[pid, probename] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s  %-36s %8s\n", "PID", "EVENT", "COUNT");
+	printa(" %6d  %-36s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_flow.d b/external/cddl/dtracetoolkit/dist/Java/j_flow.d
new file mode 100755
index 0000000..37d25e6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_flow.d
@@ -0,0 +1,87 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_flow.d - snoop Java execution showing method flow using DTrace.
+ *            Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_flow.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_flow.d		# hit Ctrl-C to end
+ *
+ * This watches Java method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		PID		Process ID
+ *		CLASS.METHOD	Java class and method name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ * Changes in TID will appear to shuffle output, as we change from one thread
+ * depth to the next. See Docs/Notes/ALLjavaflow.txt for additional notes.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/* increasing bufsize can reduce drops */
+#pragma D option bufsize=16m
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth[int];
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s -- %s\n", "C", "PID", "TIME(us)", "CLASS.METHOD");
+}
+
+hotspot*:::method-entry
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	printf("%3d %6d %-16d %*s-> %s.%s\n", cpu, pid, timestamp / 1000,
+	    self->depth[arg0] * 2, "", stringof(this->class),
+	    stringof(this->method));
+	self->depth[arg0]++;
+}
+
+hotspot*:::method-return
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	self->depth[arg0] -= self->depth[arg0] > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %*s<- %s.%s\n", cpu, pid, timestamp / 1000,
+	    self->depth[arg0] * 2, "", stringof(this->class),
+	    stringof(this->method));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_flowtime.d b/external/cddl/dtracetoolkit/dist/Java/j_flowtime.d
new file mode 100755
index 0000000..6608920
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_flowtime.d
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_flowtime.d - snoop Java execution with method flow and delta times.
+ *                Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_flowtime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_flowtime.d		# hit Ctrl-C to end
+ *
+ * This watches Java method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		TID		Thread ID
+ *		TIME(us)	Time since boot (us)
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		CLASS.METHOD	Java class and method name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ * Changes in TID will appear to shuffle output, as we change from one thread
+ * depth to the next. See Docs/Notes/ALLjavaflow.txt for additional notes.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/* increasing bufsize can reduce drops */
+#pragma D option bufsize=16m
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth[int];
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s/%-5s %-16s %9s -- %s\n", "C", "PID", "TID", "TIME(us)",
+	    "DELTA(us)", "CLASS.METHOD");
+}
+
+hotspot*:::method-entry,
+hotspot*:::method-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+hotspot*:::method-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	printf("%3d %6d/%-5d %-16d %9d %*s-> %s.%s\n", cpu, pid, tid,
+	    timestamp / 1000, this->delta, self->depth[arg0] * 2, "",
+	    stringof(this->class), stringof(this->method));
+	self->depth[arg0]++;
+	self->last = timestamp;
+}
+
+hotspot*:::method-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	self->depth[arg0] -= self->depth[arg0] > 0 ? 1 : 0;
+	printf("%3d %6d/%-5d %-16d %9d %*s<- %s.%s\n", cpu, pid, tid,
+	    timestamp / 1000, this->delta, self->depth[arg0] * 2, "",
+	    stringof(this->class), stringof(this->method));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_methodcalls.d b/external/cddl/dtracetoolkit/dist/Java/j_methodcalls.d
new file mode 100755
index 0000000..5503929
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_methodcalls.d
@@ -0,0 +1,60 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_methodcalls.d - count Java method calls DTrace.
+ *                   Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_methodcalls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_methodcalls.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		COUNT		Number of calls during sample
+ *		CLASS.METHOD	Java class and method name
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot*:::method-entry
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+	@calls[pid, this->name] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s %8s %s\n", "PID", "COUNT", "CLASS.METHOD");
+	printa(" %6d %@8d %s\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_objnew.d b/external/cddl/dtracetoolkit/dist/Java/j_objnew.d
new file mode 100755
index 0000000..1de9ce3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_objnew.d
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_objnew.d - report Java object allocation using DTrace.
+ *              Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_objnew.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_objnew.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		OBJS		Number of objects created
+ *		CLASS.METHOD	Java class and method name
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot*:::object-alloc
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	@objs[pid, stringof(this->class)] = count();
+	@dist[pid, stringof(this->class)] = quantize(arg3);
+}
+
+dtrace:::END
+{
+	printf("Java object allocation byte distributions by pid and class,\n");
+	printa(@dist);
+
+	printf("Java object allocation count by pid and class,\n\n");
+	printf(" %6s %8s %s\n", "PID", "OBJS", "CLASS");
+	printa(" %6d %8@d %s\n", @objs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_package.d b/external/cddl/dtracetoolkit/dist/Java/j_package.d
new file mode 100755
index 0000000..d4ad677
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_package.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_package.d - count Java class loads by package using DTrace.
+ *               Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_package.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0).
+ *
+ * USAGE: j_package.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		LOADS		Class loads during trace
+ *		PACKAGE		Package name from class
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot*:::class-loaded
+{
+	this->class = (char *)copyin(arg0, arg1 + 1);
+	this->class[arg1] = '\0';
+
+	@loads[pid, dirname(stringof(this->class))] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %8s  %s\n", "PID", "LOADS", "PACKAGE");
+	printa("   %6d %@8d  %s\n", @loads);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_profile.d b/external/cddl/dtracetoolkit/dist/Java/j_profile.d
new file mode 100755
index 0000000..1067c4a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_profile.d
@@ -0,0 +1,78 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * j_profile.d - sample stack traces with Java translations using DTrace.
+ *
+ * USAGE: j_profile.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ * $Id: j_profile.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ *
+ * This samples stack traces for the process specified. This stack trace
+ * will cross the JVM and system libraries, and insert translations for Java
+ * stack frames where appropriate. This is best explained with an example
+ * stack frame output,
+ *
+ *            Func_loop.func_c()V
+ *            Func_loop.func_b()V
+ *            Func_loop.func_a()V
+ *            Func_loop.main([Ljava/lang/String;)V
+ *            StubRoutines (1)
+ *            libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHan
+ *            libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmetho
+ *            libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJ
+ *            libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_j
+ *            libjvm.so`jni_CallStaticVoidMethod+0x15d
+ *            java`JavaMain+0xd30
+ *            libc.so.1`_thr_setup+0x52
+ *            libc.so.1`_lwp_start
+ *            101
+ *
+ * The lines at the top are Java frames, followed by the JVM (libjvm.so).
+ * The JVM symbols may be translated by passing the output through c++filt.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option jstackstrsize=1024
+
+/*
+ * Tunables
+ */
+#define DEPTH	10		/* stack depth, frames */
+#define RATE	101		/* sampling rate, Hertz */
+#define TOP	25		/* number of stacks to output */
+
+dtrace:::BEGIN
+{
+	printf("Sampling %d-level stacks at %d Hertz... Hit Ctrl-C to end.\n",
+	    DEPTH, RATE);
+}
+
+profile-RATE
+/pid == $target/
+{
+	@stacks[jstack(DEPTH)] = count();
+}
+
+dtrace:::END
+{
+	trunc(@stacks, TOP);
+	printf("Top %d most frequently sampled stacks,\n", TOP);
+	printa(@stacks);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_stat.d b/external/cddl/dtracetoolkit/dist/Java/j_stat.d
new file mode 100755
index 0000000..6b7590e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_stat.d
@@ -0,0 +1,148 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_stat.d - Java operation stats using DTrace.
+ *            Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_stat.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0). Method calls and object allocation are only
+ * visible when using the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_stat.d [interval [count]]
+ *
+ * FIELDS:
+ *		EXEC/s		Java programs executed per second, including
+ *				those without Java provider support
+ *		THREAD/s	Threads created, per second
+ *		METHOD/s	Methods called, per second
+ *		OBJNEW/s	Objects created, per second
+ *		CLOAD/s		Class loads, per second
+ *		EXCP/s		Exceptions raised, per second
+ *		GC/s		Garbage collects, per second
+ *
+ * The numbers are per second counts for the interval specified. The default 
+ * interval is 1 second.
+ *
+ * If you see a count in "EXECS" but not in the other columns, then your
+ * Java software is probably not running with the DTrace hotspot provider.
+ *
+ * If you see counts in "CLOAD" but not in "METHODS", then you Java
+ * software probably isn't running with "+ExtendedDTraceProbes".
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+dtrace:::BEGIN
+{
+	execs = threads = methods = objnew = cload = gc = exception = 0;
+	lines = SCREEN + 1;
+	interval = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	secs = interval;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %6s %8s %8s %8s %8s %6s %6s\n", "TIME", "EXEC/s",
+	    "THREAD/s", "METHOD/s", "OBJNEW/s", "CLOAD/s", "EXCP/s", "GC/s");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Tally Data
+ */
+proc:::exec-success
+/execname == "java"/
+{
+	execs++;
+}
+
+hotspot*:::thread-start
+{
+	threads++;
+}
+
+hotspot*:::method-entry
+{
+	methods++;
+}
+
+hotspot*:::object-alloc
+{
+	oalloc++;
+}
+
+hotspot*:::class-loaded
+{
+	cload++;
+}
+
+hotspot*:::gc-begin
+{
+	gc++;
+}
+
+hotspot*:::ExceptionOccurred-entry
+{
+	exception++;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %6d %8d %8d %8d %8d %6d %6d\n", walltimestamp,
+	    execs / interval, threads / interval, methods / interval,
+	    oalloc / interval, cload / interval, exception / interval,
+	    gc / interval);
+	execs = threads = methods = oalloc = cload = gc = exception = 0;
+	secs = interval;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_syscalls.d b/external/cddl/dtracetoolkit/dist/Java/j_syscalls.d
new file mode 100755
index 0000000..b23b850
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_syscalls.d
@@ -0,0 +1,68 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_syscalls.d - count Java methods and syscalls using DTrace.
+ *                Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_syscalls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Java methods if the hotspot provider exists (1.6.0) and
+ * the flag "+ExtendedDTraceProbes" is used. eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (method/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot$target:::method-entry
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+	@calls[pid, "method", this->name] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[pid, "syscall", probefunc] = count();
+}
+
+
+dtrace:::END
+{
+	printf(" %6s %-8s %-52s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa(" %6d %-8s %-52s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_syscolors.d b/external/cddl/dtracetoolkit/dist/Java/j_syscolors.d
new file mode 100755
index 0000000..55c8fa6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_syscolors.d
@@ -0,0 +1,135 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_syscolors.d - trace Java method flow plus syscalls, in color.
+ *                 Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_syscolors.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Java methods if the hotspot provider exists (1.6.0) and
+ * the flag "+ExtendedDTraceProbes" is used. eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches Java method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		TID		Thread ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		TYPE		Type of call (func/syscall)
+ *		NAME		Java method or syscall name
+ *
+ * If the flow appears to jump, check the TID column - the JVM may have
+ * switched to another thread.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ * Changes in TID will appear to shuffle output, as we change from one thread
+ * depth to the next. See Docs/Notes/ALLjavaflow.txt for additional notes.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/* increasing bufsize can reduce drops */
+#pragma D option bufsize=32m
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth[int];
+
+dtrace:::BEGIN
+{
+        color_java = "\033[2;35m";		/* violet, faint */
+        color_line = "\033[1;35m";		/* violet, bold */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%3s %6s/%-5s %9s %-8s -- %s\n", "C", "PID", "TID", "DELTA(us)",
+	    "TYPE", "NAME");
+}
+
+hotspot$target:::method-entry,
+hotspot$target:::method-return,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+hotspot$target:::method-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	printf("%s%3d %6d/%-5d %9d %-8s %*s-> %s.%s%s\n", color_java, cpu,
+	    pid, tid, this->delta, "method", self->depth[arg0] * 2, "",
+	    stringof(this->class), stringof(this->method), color_off);
+	self->depth[arg0]++;
+	self->depthlast = self->depth[arg0];
+	self->last = timestamp;
+}
+
+hotspot$target:::method-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	self->depth[arg0] -= self->depth[arg0] > 0 ? 1 : 0;
+	printf("%s%3d %6d/%-5d %9d %-8s %*s<- %s.%s%s\n", color_java, cpu,
+	    pid, tid, this->delta, "method", self->depth[arg0] * 2, "",
+	    stringof(this->class), stringof(this->method), color_off);
+	self->depthlast = self->depth[arg0];
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d/%-5d %9d %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, tid, this->delta, "syscall", self->depthlast * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d/%-5d %9d %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, tid, this->delta, "syscall", self->depthlast * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_thread.d b/external/cddl/dtracetoolkit/dist/Java/j_thread.d
new file mode 100755
index 0000000..0872574
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_thread.d
@@ -0,0 +1,64 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_thread.d - snoop Java thread execution using DTrace.
+                Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_thread.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0).
+ *
+ * USAGE: j_thread.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		TIME		Time string
+ *		PID		Process ID
+ *		TID		Thread ID
+ *		THREAD		Thread name
+ *
+ * LEGEND:
+ *		=>		thread start
+ *		<=		thread end
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+dtrace:::BEGIN
+{
+	printf("%-20s  %6s/%-5s -- %s\n", "TIME", "PID", "TID", "THREAD");
+}
+
+hotspot*:::thread-start
+{
+	this->thread = (char *)copyin(arg0, arg1 + 1);
+	this->thread[arg1] = '\0';
+	printf("%-20Y  %6d/%-5d => %s\n", walltimestamp, pid, tid,
+	    stringof(this->thread));
+}
+
+hotspot*:::thread-stop
+{
+	this->thread = (char *)copyin(arg0, arg1 + 1);
+	this->thread[arg1] = '\0';
+	printf("%-20Y  %6d/%-5d <= %s\n", walltimestamp, pid, tid,
+	    stringof(this->thread));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Java/j_who.d b/external/cddl/dtracetoolkit/dist/Java/j_who.d
new file mode 100755
index 0000000..e18e2f9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Java/j_who.d
@@ -0,0 +1,58 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_who.d - trace Java calls by process using DTrace.
+ *           Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_who.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0).
+ *
+ * USAGE: j_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of Java
+ *		UID		User ID of the owner
+ *		CALLS		Number of calls made (a measure of activity)
+ *		ARGS		Process name and arguments
+ *
+ * The argument list is truncated at 55 characters (up to 80 is easily
+ * available). To easily read the full argument list, use other system tools;
+ * on Solaris use "pargs PID".
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot*:::Call*-entry
+{
+	@calls[pid, uid, curpsinfo->pr_psargs] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %-55s\n", "PID", "UID", "CALLS", "ARGS");
+	printa("   %6d %6d %@6d %-55.55s\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/JavaScript/Readme b/external/cddl/dtracetoolkit/dist/JavaScript/Readme
new file mode 100644
index 0000000..a9bebf8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/JavaScript/Readme
@@ -0,0 +1,54 @@
+JavaScript - DTracing JavaScript
+
+   There scripts trace the JavaScript programming language, and require a
+   browser to be built with the DTrace JavaScript provider.
+
+   The DTrace JavaScript provider was originally written by Brendan Gregg,
+   and later developed as part of a Mozilla DTrace provider suite by
+   engineers from both Sun and Mozilla. It currently exists as patches
+   to the Mozilla source tree and requires building from source to get
+   working; it may be integrated into Solaris builds by default in the
+   future. To download the current patches and instructions, visit,
+
+	http://www.opensolaris.org/os/project/mozilla-dtrace/
+
+   A rough guide for the process is,
+
+	1. Download the Mozilla source
+		http://developer.mozilla.org/en/docs/Mozilla_Source_Code_Via_CVS
+	2. Download the Mozilla DTrace framework patch, and apply
+		https://bugzilla.mozilla.org/show_bug.cgi?id=370906
+	3. Download the JavaScript DTrace provider patch, and apply
+		https://bugzilla.mozilla.org/show_bug.cgi?id=388564
+	4. Create a .mozconfig file (needed for compilation).
+	5. Setup various compilation environment vars (CC/CFLAGS/CXX/...)
+	6. autoconf
+	7. ./configure --enable-dtrace
+	8. gmake
+
+   See John Rice's instructions linked from the OpenSolaris page above
+   for details on steps 4-8.
+
+   Since the DTrace JavaScript provider may be developed further, there is a
+   chance that it has changed slightly by the time you are reading this,
+   causing these scripts to either break or behave oddly. Firstly, check for
+   newer versions of the DTraceToolkit; if it hasn't been updated and you need
+   to use these scripts immediately, then updating them shouldn't take
+   too long. The following was the state of the provider when these scripts
+   were written - check for changes and update the scripts accordingly,
+
+	provider javascript {
+	    probe function-entry(file, class, func)
+	    probe function-info(file, class, func, lineno, runfile, runlineno)
+	    probe function-args(file, class, func, argc, argv, argv0, argv1,
+		argv2, argv3, argv4)
+	    probe function-rval(file, class, func, lineno, rval, rval0)
+	    probe function-return(file, class, func)
+	    probe object-create-start(file, class)
+	    probe object-create(file, class, *object, rlineno)
+	    probe object-create-done(file, class)
+	    probe object-finalize(NULL, class, *object)
+	    probe execute-start(file, lineno)
+	    probe execute-done(file, lineno)
+	};
+
diff --git a/external/cddl/dtracetoolkit/dist/JavaScript/js_calldist.d b/external/cddl/dtracetoolkit/dist/JavaScript/js_calldist.d
new file mode 100755
index 0000000..feb2b61
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/JavaScript/js_calldist.d
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_calldist.d - measure JavaScript elapsed times for types of operation.
+ *                 Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_calldist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces JavaScript activity from all browsers running on the system with
+ * JavaScript provider support.
+ *
+ * USAGE: js_calldist.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		1		Filename of the JavaScript program
+ *		2		Type of call (func/obj-new)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+javascript*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg2);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+javascript*:::object-create-start
+{
+	self->object = timestamp;
+}
+
+javascript*:::object-create-done
+/self->object/
+{
+	this->elapsed = timestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types[this->file, "obj-new", this->name] =
+	    quantize(this->elapsed / 1000);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("\nElapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("\nExclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/JavaScript/js_calls.d b/external/cddl/dtracetoolkit/dist/JavaScript/js_calls.d
new file mode 100755
index 0000000..3a49415
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/JavaScript/js_calls.d
@@ -0,0 +1,76 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_calls.d - count JavaScript calls using DTrace.
+ *              Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_calls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all browsers on the system that are
+ * running with JavaScript provider support.
+ *
+ * USAGE: js_calls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the JavaScript program
+ *		TYPE		Type of call (func/obj-new/...)
+ *		NAME		Descriptive name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+        printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	this->name = copyinstr(arg2);
+        @calls[basename(copyinstr(arg0)), "func", this->name] = count();
+}
+
+javascript*:::execute-start
+{
+	this->filename = basename(copyinstr(arg0));
+        @calls[this->filename, "exec", "."] = count();
+}
+
+javascript*:::object-create-start
+{
+	this->name = copyinstr(arg1);
+	this->filename = basename(copyinstr(arg0));
+        @calls[this->filename, "obj-new", this->name] = count();
+}
+
+javascript*:::object-finalize
+{
+	this->name = copyinstr(arg1);
+        @calls["<null>", "obj-free", this->name] = count();
+}
+
+dtrace:::END
+{
+        printf(" %-24s %-10s %-30s %8s\n", "FILE", "TYPE", "NAME", "CALLS");
+        printa(" %-24s %-10s %-30s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/JavaScript/js_calltime.d b/external/cddl/dtracetoolkit/dist/JavaScript/js_calltime.d
new file mode 100755
index 0000000..bef236d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/JavaScript/js_calltime.d
@@ -0,0 +1,115 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_calltime.d - measure JavaScript elapsed times for types of operation.
+ *                 Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_calltime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces JavaScript activity from all browsers running on the system with
+ * JavaScript provider support.
+ *
+ * USAGE: js_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the JavaScript program
+ *		TYPE		Type of call (func/obj-new/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+javascript*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg2);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+javascript*:::object-create-start
+{
+	self->object = timestamp;
+}
+
+javascript*:::object-create-done
+/self->object/
+{
+	this->elapsed = timestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "obj-new", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types[this->file, "obj-new", this->name] = sum(this->elapsed);
+	@types["-", "total", "-"] = sum(this->elapsed);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nElapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/JavaScript/js_cpudist.d b/external/cddl/dtracetoolkit/dist/JavaScript/js_cpudist.d
new file mode 100755
index 0000000..88468dd5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/JavaScript/js_cpudist.d
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_cpudist.d - measure JavaScript on-CPU times for types of operation.
+ *                 Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_cpudist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces JavaScript activity from all browsers running on the system with
+ * JavaScript provider support.
+ *
+ * USAGE: js_cpudist.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		1		Filename of the JavaScript program
+ *		2		Type of call (func/obj-new)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+javascript*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg2);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+javascript*:::object-create-start
+{
+	self->object = vtimestamp;
+}
+
+javascript*:::object-create-done
+/self->object/
+{
+	this->oncpu = vtimestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types[this->file, "obj-new", this->name] =
+	    quantize(this->oncpu / 1000);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+dtrace:::END
+{
+	printf("\nElapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("\nExclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/JavaScript/js_cputime.d b/external/cddl/dtracetoolkit/dist/JavaScript/js_cputime.d
new file mode 100755
index 0000000..c64b744
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/JavaScript/js_cputime.d
@@ -0,0 +1,115 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_cputime.d - measure JavaScript on-CPU times for types of operation.
+ *                Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_cputime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces JavaScript activity from all browsers running on the system with
+ * JavaScript provider support.
+ *
+ * USAGE: js_cputime.d	 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the JavaScript program
+ *		TYPE		Type of call (func/obj-new/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+javascript*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg2);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+javascript*:::object-create-start
+{
+	self->object = vtimestamp;
+}
+
+javascript*:::object-create-done
+/self->object/
+{
+	this->oncpu = vtimestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "obj-new", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types[this->file, "obj-new", this->name] = sum(this->oncpu);
+	@types["-", "total", "-"] = sum(this->oncpu);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nElapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/JavaScript/js_execs.d b/external/cddl/dtracetoolkit/dist/JavaScript/js_execs.d
new file mode 100755
index 0000000..7c691f5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/JavaScript/js_execs.d
@@ -0,0 +1,51 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_execs.d - JavaScript execute snoop using DTrace.
+ *              Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_execs.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all browsers on the system that are
+ * running with JavaScript provider support.
+ *
+ * USAGE: js_execs.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		TIME		Time of event
+ *		FILE		Filename of the JavaScript program
+ *		LINENO		Line number in filename
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+dtrace:::BEGIN
+{
+	printf("%-20s  %32s:%s\n", "TIME", "FILE", "LINENO");
+}
+
+javascript*:::execute-start
+{
+	printf("%-20Y  %32s:%d\n", walltimestamp, basename(copyinstr(arg0)),
+	    arg1);
+}
diff --git a/external/cddl/dtracetoolkit/dist/JavaScript/js_flow.d b/external/cddl/dtracetoolkit/dist/JavaScript/js_flow.d
new file mode 100755
index 0000000..92a6ec6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/JavaScript/js_flow.d
@@ -0,0 +1,69 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_flow.d - snoop JavaScript execution showing function flow using DTrace.
+ *             Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_flow.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all browsers on the system that are running
+ * with JavaScript provider support.
+ *
+ * USAGE: js_flow.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		FUNC		Function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-22s -- %s\n", "C", "TIME(us)", "FILE", "FUNC");
+}
+
+javascript*:::function-entry
+{
+	printf("%3d %-16d %-22s %*s-> %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg2));
+	self->depth++;
+}
+
+javascript*:::function-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-22s %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg2));
+}
diff --git a/external/cddl/dtracetoolkit/dist/JavaScript/js_flowinfo.d b/external/cddl/dtracetoolkit/dist/JavaScript/js_flowinfo.d
new file mode 100755
index 0000000..c045a3c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/JavaScript/js_flowinfo.d
@@ -0,0 +1,86 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_flowinfo.d - JavaScript function flow with info using DTrace.
+ *                 Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_flowinfo.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all browsers on the system that are running
+ * with JavaScript provider support.
+ *
+ * USAGE: js_flowinfo.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the JavScript program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func)
+ *		FUNC		Function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "FUNC");
+}
+
+javascript*:::function-info,
+javascript*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+javascript*:::function-info
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg4)), arg5, "func",
+	    self->depth * 2, "", copyinstr(arg2));
+	self->depth++;
+	self->last = timestamp;
+}
+
+javascript*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s<- %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "func", self->depth * 2,
+	    "", copyinstr(arg2));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/JavaScript/js_flowtime.d b/external/cddl/dtracetoolkit/dist/JavaScript/js_flowtime.d
new file mode 100755
index 0000000..a8b55599
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/JavaScript/js_flowtime.d
@@ -0,0 +1,84 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_flowtime.d - JavaScript function flow with delta times using DTrace.
+ *                 Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_flowtime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all browsers on the system that are running
+ * with JavaScript provider support.
+ *
+ * USAGE: js_flowtime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FUNC		Function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-18s %9s -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "FUNC");
+}
+
+javascript*:::function-entry,
+javascript*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+javascript*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-18s %9d %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), this->delta, self->depth * 2, "",
+	    copyinstr(arg2));
+	self->depth++;
+	self->last = timestamp;
+}
+
+javascript*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-18s %9d %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), this->delta, self->depth * 2, "",
+	    copyinstr(arg2));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/JavaScript/js_objcpu.d b/external/cddl/dtracetoolkit/dist/JavaScript/js_objcpu.d
new file mode 100755
index 0000000..fbed6cc
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/JavaScript/js_objcpu.d
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_objcpu.d - measure JavaScript object creation on-CPU time using DTrace.
+ *               Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_objcpu.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces JavaScript activity from all browsers running on the system
+ * with JavaScript provider support.
+ *
+ * USAGE: js_objcpu.d	 	# hit Ctrl-C to end
+ *
+ * Class names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::object-create-start
+{
+	self->vstart = vtimestamp;
+}
+
+javascript*:::object-create-done
+/self->vstart/
+{
+	this->oncpu = vtimestamp - self->vstart;
+	@total = sum(this->oncpu);
+	@dist[copyinstr(arg1)] = quantize(this->oncpu / 1000);
+	self->vstart = 0;
+}
+
+dtrace:::END
+{
+	normalize(@total, 1000000);
+	printa("Total object creation on-CPU time (ms): %@d\n\n", @total);
+	printf("Object creation on-CPU time distributions (us),\n");
+	printa(@dist);
+}
diff --git a/external/cddl/dtracetoolkit/dist/JavaScript/js_objgc.d b/external/cddl/dtracetoolkit/dist/JavaScript/js_objgc.d
new file mode 100755
index 0000000..9883aac
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/JavaScript/js_objgc.d
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_objgc.d - trace JavaScript Object GC using DTrace.
+ *              Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_objgc.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces JavaScript activity from all running browers on the system
+ * which support the JavaScript DTrace provider.
+ *
+ * USAGE: js_objgc.d		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename that contained the function
+ *		CLASS		Class to which this new object belongs
+ *		TOTAL		Object entropy (positive == uncollected)
+ *
+ * This script provides information on which objects are not being garbage
+ * collected, an issue which causes the browser to steadily leak memory.
+ * We trace object creation (+1) and destruction (-1), and provide a
+ * summary each second of the running tally of the object class and
+ * originating filename. If over the period of several minutes an object
+ * type is still steadily increasing, then that would be of interest.
+ * Be patient, depending on the rate of object creation it can take over
+ * ten minutes for garbage collect to kick in.
+ *
+ * NOTES:
+ * - it is possible that you will see negative entropy. That happens
+ * when you begin tracing after some objects have already been created,
+ * and then trace their destruction.
+ * - there are other Things that GC handles, other than Objects; extra
+ * probes can be added to trace them, should the need arise.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/* if you get dynvardrops, increase this, */
+#pragma D option dynvarsize=32m
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::object-create
+/arg2/
+{
+	this->file = basename(copyinstr(arg0));
+	@objs[this->file, copyinstr(arg1)] = sum(1);
+	filename[arg2] = this->file;
+}
+
+javascript*:::object-finalize
+/filename[arg2] == NULL/
+{
+	@objs["<missed>", copyinstr(arg1)] = sum(-1);
+}
+
+javascript*:::object-finalize
+/filename[arg2] != NULL/
+{
+	@objs[filename[arg2], copyinstr(arg1)] = sum(-1);
+	filename[arg2] = 0;
+}
+
+profile:::tick-1sec,
+dtrace:::END
+{
+	printf("\n %-24s %8s %-20s %23Y\n", "FILE", "TOTAL", "CLASS",
+	    walltimestamp);
+	printa(" %-24.24s %@8d %s\n", @objs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/JavaScript/js_objnew.d b/external/cddl/dtracetoolkit/dist/JavaScript/js_objnew.d
new file mode 100755
index 0000000..040a9b4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/JavaScript/js_objnew.d
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_objnew.d - count JavaScript object creation using DTrace.
+ *               Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_objnew.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces JavaScript activity from all browsers running on the system
+ * with JavaScript provider support.
+ *
+ * USAGE: js_objnew.d	 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the JavaScript program
+ *		CLASS		Class of new object
+ *		COUNT		Number of object creations during tracing
+ *
+ * Filename and class names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::object-create-done
+{
+	@objs[basename(copyinstr(arg0)), copyinstr(arg1)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-24s %-36s %8s\n", "FILE", "CLASS", "COUNT");
+	printa(" %-24.24s %-36s %@8d\n", @objs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/JavaScript/js_stat.d b/external/cddl/dtracetoolkit/dist/JavaScript/js_stat.d
new file mode 100755
index 0000000..ca05ddb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/JavaScript/js_stat.d
@@ -0,0 +1,120 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_stat.d - JavaScript operation stats using DTrace.
+ *             Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_stat.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all browsers on the system that are
+ * running with JavaScript provider support.
+ *
+ * USAGE: js_stat.d [interval [count]]
+ *
+ * FIELDS:
+ *		EXEC/s		JavaScript programs executed per second
+ *		FUNCS/s		Functions called, per second
+ *		OBJNEW/s	Objects created, per second
+ *		OBJFRE/s	Objects freed (finalize), per second
+ *
+ * The numbers are counts for the interval specified. The default interval
+ * is 1 second.
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+dtrace:::BEGIN
+{
+	execs = funcs = objnew = objfree = 0;
+	lines = SCREEN + 1;
+	interval = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	secs = interval;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %8s %8s %8s %8s\n", "TIME", "EXEC/s", "FUNC/s",
+	    "OBJNEW/s", "OBJFRE/s");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Tally Data
+ */
+javascript*:::execute-start
+{
+	execs++;
+}
+
+javascript*:::function-entry
+{
+	funcs++;
+}
+
+javascript*:::object-create-start
+{
+	objnew++;
+}
+
+javascript*:::object-finalize
+{
+	objfree++;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %8d %8d %8d %8d\n", walltimestamp, execs / interval,
+	    funcs / interval, objnew / interval, objfree / interval);
+	execs = funcs = objnew = objfree = 0;
+	secs = interval;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/JavaScript/js_who.d b/external/cddl/dtracetoolkit/dist/JavaScript/js_who.d
new file mode 100755
index 0000000..4109823
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/JavaScript/js_who.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_who.d - trace JavaScript function execution by process using DTrace.
+ *            Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_who.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces JavaScript activity from all browsers on the system that are
+ * running with JavaScript provider support.
+ *
+ * USAGE: js_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of JavaScript
+ *		UID		User ID of the owner
+ *		FUNCS		Number of function calls
+ *		FILE		Pathname of the JavaScript program
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	@funcs[pid, uid, copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %s\n", "PID", "UID", "FUNCS", "FILE");
+	printa("   %6d %6d %@6d %s\n", @funcs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Kernel/Readme b/external/cddl/dtracetoolkit/dist/Kernel/Readme
new file mode 100644
index 0000000..3c5d6b3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Kernel/Readme
@@ -0,0 +1,3 @@
+Kernel - Kernel based analysis
+
+   These are scripts to monitor kernel activity.
diff --git a/external/cddl/dtracetoolkit/dist/Kernel/cpudists b/external/cddl/dtracetoolkit/dist/Kernel/cpudists
new file mode 100755
index 0000000..92da025
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Kernel/cpudists
@@ -0,0 +1,184 @@
+#!/usr/bin/sh
+#
+# cpudists - print CPU time distributions by Kernel/Idle/Processes.
+#            Written using DTrace (Solaris 10 3/05).
+#
+# $Id: cpudists,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# USAGE:	cpudists [-ahV] [-t top] [interval [count]]
+#
+#		-a              # print all processes
+#		-V              # don't print timestamps
+#		-t num          # print top num  only
+#  eg,
+#		cpudists 1      # print every 1 second
+#		cpudists -a 10  # print all processes every 10 secs
+#
+#
+# FIELDS: 
+#		value           The following or the process name,
+#		IDLE            Idle time - CPU running idle thread
+#		KERNEL          Kernel time - Kernel servicing interrupts, ...
+#		PROCESS         Process time - PIDs running on the system
+#		count           Number of occurances at least this duration (ns)
+#
+# NOTES:
+# * This takes into account multiple CPU servers, the total 
+# seconds consumed will be a multiple of the CPU count and interval.
+#
+# SEE ALSO: cputimes
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 27-Apr-2005   Brendan Gregg   Created this.
+# 22-Sep-2005	   "      "	Fixed key corruption bug.
+# 22-Sep-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+opt_all=0; opt_time=1; opt_top=0; top=0; interval=1; count=1
+
+while getopts aht:V name
+do
+        case $name in
+        a)      opt_all=1 ;;
+        V)      opt_time=0 ;;
+        t)      opt_top=1; top=$OPTARG ;;
+        h|?)    cat <<-END >&2
+		USAGE: cpudists [-ahV] [-t top] [interval [count]]
+		       cpudists                # default output
+		               -a              # print all processes
+		               -V              # don't print times
+		               -t num          # print top num only
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+if [ "$1" -gt 0 ]; then
+        interval=$1; count=-1; shift
+fi
+if [ "$1" -gt 0 ]; then
+	count=$1; shift
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_all    = '$opt_all';
+ inline int OPT_time   = '$opt_time';
+ inline int OPT_top    = '$opt_top';
+ inline int TOP        = '$top';
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$count';
+
+ /* Initialise variables */
+ dtrace:::BEGIN
+ {
+	cpustart[cpu] = 0;
+	counts = COUNTER;
+	secs = INTERVAL;
+ }
+
+ /* Flag this thread as idle */
+ sysinfo:unix:idle_enter:idlethread
+ {
+	idle[cpu] = 1;
+ }
+
+ /* Save kernel time between running threads */
+ sched:::on-cpu 
+ /cpustart[cpu]/
+ {
+	this->elapsed = timestamp - cpustart[cpu];
+	@Procs["KERNEL"] = quantize(this->elapsed);
+ }
+
+ /* Save the elapsed time of a thread */
+ sched:::off-cpu,
+ sched:::remain-cpu,
+ profile:::profile-1sec
+ /cpustart[cpu]/
+ {
+	/* determine the name for this thread */
+	program[cpu] = pid == 0 ? idle[cpu] ? "IDLE" : "KERNEL" :
+	    OPT_all ? execname : "PROCESS";
+
+	/* save elapsed */
+	this->elapsed = timestamp - cpustart[cpu];
+	@Procs[program[cpu]] = quantize(this->elapsed);
+	cpustart[cpu] = timestamp;
+ }
+
+ /* Record the start time of a thread */
+ sched:::on-cpu,
+ sched:::remain-cpu
+ {
+	idle[cpu] = 0;
+	cpustart[cpu] = timestamp;
+ }
+
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /* Print time */
+ profile:::tick-1sec 
+ /secs == 0 && OPT_time/ 
+ { 
+	printf("%Y,\n", walltimestamp);
+ }
+
+ /* Print report */
+ profile:::tick-1sec 
+ /secs == 0/ 
+ { 
+	OPT_top ? trunc(@Procs, TOP) : 1;
+	printa("%16s %@16d\n", @Procs);
+	trunc(@Procs);
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /* End of program */
+ profile:::tick-1sec 
+ /counts == 0/ 
+ {
+	exit(0);
+ }
+
+ /* cleanup for Ctrl-C */
+ dtrace:::END
+ {
+	trunc(@Procs);
+ }
+'
+
diff --git a/external/cddl/dtracetoolkit/dist/Kernel/cputimes b/external/cddl/dtracetoolkit/dist/Kernel/cputimes
new file mode 100755
index 0000000..441a830
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Kernel/cputimes
@@ -0,0 +1,203 @@
+#!/usr/bin/sh
+#
+# cputimes - print CPU time consumed by Kernel/Idle/Processes.
+#            Written using DTrace (Solaris 10 3/05).
+#
+# $Id: cputimes,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# This program accurately measures time consumed by the kernel, but in
+# doing so creates extra kernel load of it's own. The extra kernel
+# activity can be measured by running one cputimes and then another, and
+# comparing the difference in kernel consumed time. This method can be
+# used to estimate the load created by other DTrace scripts.
+#
+# USAGE:	cputimes [-ahTV] [-t top] [interval [count]]
+#
+#		-a                # print all processes
+#		-T                # print totals
+#		-V                # don't print timestamps
+#		-t num            # print top num lines only
+#  eg,
+#		cputimes 1        # print every 1 second
+#		cputimes -a 10    # print all processes every 10 secs
+#		cputimes -at 8 5  # print top 8 lines every 5 secs
+#
+#
+# FIELDS: 
+#		THREADS         The following or the process name,
+#		IDLE            Idle time - CPU running idle thread
+#		KERNEL          Kernel time - Kernel servicing interrupts, ...
+#		PROCESS         Process time - PIDs running on the system
+#		TIME (ns)       Sum of the CPU time, ns (nanoseconds)
+#
+# NOTES:
+# * This takes into account multiple CPU servers, the total 
+# seconds consumed will be a multiple of the CPU count and interval.
+#
+# SEE ALSO: cpudists
+#           Heisenberg's uncertainty principle.
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 27-Apr-2005   Brendan Gregg   Created this.
+# 22-Sep-2005      "      "	Fixed a key corruption bug.
+# 22-Sep-2005      "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+opt_all=0; opt_time=1; opt_top=0; opt_totals=0
+top=0; interval=1; count=1
+
+while getopts aht:TV name
+do
+        case $name in
+        a)      opt_all=1 ;;
+        T)      opt_totals=1 ;;
+        V)      opt_time=0 ;;
+        t)      opt_top=1; top=$OPTARG ;;
+        h|?)    cat <<-END >&2
+		USAGE: cputimes [-ahTV] [-t top] [interval [count]]
+		       cputimes                  # default output
+		               -a                # print all processes
+		               -T                # print totals
+		               -V                # don't print times
+		               -t num            # print top num lines only
+		          eg,
+		               cputimes 1        # print every 1 second
+		               cputimes -a 10    # all processes per 10 sec
+		               cputimes -at 8 5  # top 8 lines every 5 secs
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+if [ "$1" -gt 0 ]; then
+        interval=$1; count=-1; shift
+fi
+if [ "$1" -gt 0 ]; then
+	count=$1; shift
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_all    = '$opt_all';
+ inline int OPT_time   = '$opt_time';
+ inline int OPT_totals = '$opt_totals';
+ inline int OPT_top    = '$opt_top';
+ inline int TOP        = '$top';
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$count';
+
+ /* Initialise variables */
+ dtrace:::BEGIN
+ {
+	cpustart[cpu] = 0;
+	counts = COUNTER;
+	secs = INTERVAL;
+ }
+
+ /* Flag this thread as idle */
+ sysinfo:unix:idle_enter:idlethread
+ {
+	idle[cpu] = 1;
+ }
+
+ /* Save kernel time between running threads */
+ sched:::on-cpu 
+ /cpustart[cpu]/
+ {
+	this->elapsed = timestamp - cpustart[cpu];
+	@Procs["KERNEL"] = sum(this->elapsed);
+ }
+
+ /* Save the elapsed time of a thread */
+ sched:::off-cpu,
+ sched:::remain-cpu,
+ profile:::profile-1sec
+ /cpustart[cpu]/
+ {
+	/* determine the name for this thread */
+	program[cpu] = pid == 0 ? idle[cpu] ? "IDLE" : "KERNEL" :
+	    OPT_all ? execname : "PROCESS";
+
+	/* save elapsed */
+	this->elapsed = timestamp - cpustart[cpu];
+	@Procs[program[cpu]] = sum(this->elapsed);
+	cpustart[cpu] = timestamp;
+ }
+
+ /* Record the start time of a thread */
+ sched:::on-cpu,
+ sched:::remain-cpu
+ {
+	idle[cpu] = 0;
+	cpustart[cpu] = timestamp;
+ }
+
+
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /* Print time */
+ profile:::tick-1sec 
+ /secs == 0/
+ { 
+	OPT_time ? printf("%Y,\n", walltimestamp) : 1;
+	printf("%16s %16s\n", "THREADS", "TIME (ns)");
+ }
+
+ /* Print report */
+ profile:::tick-1sec 
+ /secs == 0/ 
+ { 
+	OPT_top ? trunc(@Procs, TOP) : 1;
+	printa("%16s %@16d\n", @Procs);
+	trunc(@Procs);
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /* End of program */
+ profile:::tick-1sec 
+ /counts == 0/ 
+ {
+	exit(0);
+ }
+
+ /* cleanup for Ctrl-C */
+ dtrace:::END
+ {
+	trunc(@Procs);
+ }
+'
+
diff --git a/external/cddl/dtracetoolkit/dist/Kernel/cswstat.d b/external/cddl/dtracetoolkit/dist/Kernel/cswstat.d
new file mode 100755
index 0000000..b417cfd5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Kernel/cswstat.d
@@ -0,0 +1,74 @@
+#!/usr/sbin/dtrace -s
+/*
+ * cswstat.d - context switch time stat.
+ *	       Uses DTrace (Solaris 10 03/05)
+ *
+ * This prints a context switch count and consumed time for context
+ * switching every second.
+ *
+ * $Id: cswstat.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	cswstat.d
+ *
+ * FIELDS:
+ *		TIME		Current time
+ *		NUM		Number of context switches
+ *		CSWTIME(us)	Time consumed context switching, us
+ *		AVGTIME(us)	Average context switch time, us
+ *
+ * THANKS: Toomas Soome
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 17-May-2005  Brendan Gregg   Created this.
+ * 03-Nov-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	/* print header */
+	printf("%-20s  %8s %12s %12s\n", "TIME", "NUM", "CSWTIME(us)",
+	    "AVGTIME(us)");
+	times = 0;
+	num = 0;
+}
+
+sched:::off-cpu
+{
+	/* csw start */
+	num++;
+	start[cpu] = timestamp;
+}
+
+sched:::on-cpu
+/start[cpu]/
+{
+	/* csw end */
+	times += timestamp - start[cpu];
+	start[cpu] = 0;
+}
+
+profile:::tick-1sec
+{
+	/* print output */
+	printf("%20Y  %8d %12d %12d\n", walltimestamp, num, times/1000,
+	    num == 0 ? 0 : times/(1000 * num));
+	times = 0;
+	num = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Kernel/dnlcps.d b/external/cddl/dtracetoolkit/dist/Kernel/dnlcps.d
new file mode 100755
index 0000000..0b017e6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Kernel/dnlcps.d
@@ -0,0 +1,68 @@
+#!/usr/sbin/dtrace -s
+/*
+ * dnlcps.d - DNLC stats by process.
+ *            Written in DTrace (Solaris 10 3/05).
+ *
+ * The DNLC is the Directory Name Lookup Cache. Filename lookups often
+ * return a hit from here, before needing to traverse the regular file
+ * system cache or go to disk.
+ *
+ * dnlcps.d prints DNLC statistics by process.
+ *
+ * $Id: dnlcps.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	dnlcps.d        # wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID             Process ID
+ *		CMD          	Command name
+ *		value        	0 == miss, 1 == hit
+ *		count        	number of occurrences
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 27-Mar-2004	Brendan Gregg	Created this.
+ * 14-Jun-2005	   "      "	Rewrote this a lot.
+ * 18-Feb-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/*
+ * DNLC return
+ */
+fbt:genunix:dnlc_lookup:return
+{
+	this->code = arg1 == 0 ? 0 : 1;
+	@Result[execname, pid] = lquantize(this->code, 0, 1, 1);
+}
+
+/*
+ * Print report
+ */
+dtrace:::END
+{
+	printa(" CMD: %-16s PID: %d\n%@d\n", @Result);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Kernel/dnlcsnoop.d b/external/cddl/dtracetoolkit/dist/Kernel/dnlcsnoop.d
new file mode 100755
index 0000000..abddc34
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Kernel/dnlcsnoop.d
@@ -0,0 +1,92 @@
+#!/usr/sbin/dtrace -s
+/*
+ * dnlcsnoop.d - snoop DNLC activity.
+ *               Written in DTrace (Solaris 10 3/05).
+ *
+ * The DNLC is the Directory Name Lookup Cache. Filename lookups often
+ * return a hit from here, before needing to traverse the regular file
+ * system cache or go to disk.
+ *
+ * $Id: dnlcsnoop.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	dnlcsnoop.d     # wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID             Process ID
+ *		CMD          	Command name
+ *		TIME         	Elapsed time for lookup, us
+ *		HIT          	DNLC hit Y/N
+ *		PATH         	Path for DNLC lookup
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 27-Mar-2004	Brendan Gregg	Created this.
+ * 14-Jun-2005	   "      "	Rewrote this a lot.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("%6s %-12s %5s %3s %s\n",
+	    "PID", "CMD", "TIME", "HIT", "PATH");
+}
+
+/*
+ * DNLC lookup
+ */
+fbt:genunix:dnlc_lookup:entry
+{
+	/* store path */
+	self->path = stringof(args[0]->v_path);
+
+	/* check for trailing "/" */
+	this->len = strlen(self->path);
+	self->join = *(char *)(args[0]->v_path + this->len - 1) == '/' ?
+	    "" : "/";
+
+	/* store lookup name */
+	self->name = stringof(arg1);
+
+	/* store start time */
+	self->start = timestamp;
+}
+
+/*
+ * DNLC return
+ */
+fbt:genunix:dnlc_lookup:return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = (timestamp - self->start) / 1000;
+
+	/* print output */
+	printf("%6d %-12.12s %5d %3s %s%s%s\n",
+	    pid, execname, this->elapsed, arg1 == 0 ? "N" : "Y",
+	    self->path, self->join, self->name);
+
+	/* clear variables */
+	self->path = 0;
+	self->join = 0;
+	self->name = 0;
+	self->start = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Kernel/dnlcstat b/external/cddl/dtracetoolkit/dist/Kernel/dnlcstat
new file mode 100755
index 0000000..d96d763
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Kernel/dnlcstat
@@ -0,0 +1,162 @@
+#!/usr/bin/sh
+#
+# dnlcstat - DNLC statistics.
+#            Written in DTrace (Solaris 10 3/05).
+#
+# The DNLC is the Directory Name Lookup Cache. Filename lookups often
+# return a hit from here, before needing to traverse the regular file
+# system cache or go to disk.
+#
+# $Id: dnlcstat,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# USAGE:	dnlcstat [interval [count]]
+#
+# FIELDS:
+#
+#		%hit	hit percentage for this sample
+#		hit	number of DNLC hits in this sample
+#		miss	number of DNLC misses in this sample
+#
+# SEE ALSO: 	CacheKit, http://www.brendangregg.com/cachekit.html
+#		(contains a dnlcstat written in Perl, which uses less CPU)
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 27-Mar-2004	Brendan Gregg	Created this.
+# 14-Jun-2005	   "      "  	Updated style.
+# 14-Jun-2005	   "      "  	Last update.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default values
+interval=1; count=-1
+
+### check arguments
+if [ "$1" = "-h" -o "$1" = "--help" ]; then
+	cat <<-END >&2
+	USAGE: dnlcstat [interval [count]]
+	       dnlcstat          # 1 second samples, infinite
+	  eg,
+	       dnlcstat 1        # print every 1 second
+	       dnlcstat 5 6      # print every 5 seconds, 6 times
+	END
+        exit 1
+fi
+
+### argument logic
+if [ "$1" -gt 0 ]; then
+        interval=$1; count=-1; shift
+fi
+if [ "$1" -gt 0 ]; then
+        count=$1; shift
+fi
+if [ $interval -eq 0 ]; then
+        interval=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$count';
+ inline int SCREEN = 21;
+
+ int hits;			/* hits */
+ int misses;			/* misses */
+
+ /*
+  * Initialise variables
+  */
+ dtrace:::BEGIN
+ {
+	lines = SCREEN + 1;
+	counts = COUNTER;
+	secs = INTERVAL;
+	first = 1;
+ }
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN,
+ tick-1sec
+ /first || (secs == 0 && lines > SCREEN)/
+ { 
+	printf("%10s %8s %8s\n","dnlc  %hit","hit","miss");
+	lines = 0;
+	first = 0;
+ }
+
+ /*
+  * Probe DNLC lookups
+  */
+ fbt:genunix:dnlc_lookup:return
+ {
+	hits   += arg1 == 0 ? 0 : 1;
+	misses += arg1 == 0 ? 1 : 0;
+ }
+
+ profile:::tick-1sec
+ {
+        secs--;
+ }
+
+
+ /*
+  * Print output line
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* calculate hit percent */
+	this->divide = misses + hits == 0 ? 1 : misses + hits;
+	ratio = hits * 100 / this->divide;
+
+	/* print output */
+	printf("%10d %8d %8d\n",ratio,hits,misses);
+
+	/* clear counters */
+	hits = 0;
+	misses = 0;
+
+        /* process counts */
+        secs = INTERVAL;
+        counts--;
+        lines++;
+
+ }
+
+ /*
+  * End
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+        exit(0);
+ }
+'
+
diff --git a/external/cddl/dtracetoolkit/dist/Kernel/kstat_types.d b/external/cddl/dtracetoolkit/dist/Kernel/kstat_types.d
new file mode 100755
index 0000000..6f487ee
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Kernel/kstat_types.d
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -Cs
+/*
+ * kstat_types.d - Trace kstat reads with type info.
+ *                 Written using DTrace (Solaris 10 3/05)
+ *
+ * kstat is the Kernel Statistics framework, which is used by tools
+ * such as vmstat, iostat, mpstat and sar. Try running vmstat while
+ * kstat_types.d is tracing - you should see details of the kstat
+ * reads performed.
+ *
+ * $Id: kstat_types.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	kstat_types.d	(early release, check for updates)
+ *
+ * FIELDS:
+ *		CMD		command name
+ *		CLASS		kstat class (ks_class)
+ *		TYPE		kstat type as a string (ks_type)
+ *		MOD:INS:NAME	kstat module:instance:name
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 11-Feb-2006	Brendan Gregg	Created this.
+ * 11-Feb-2006	   "      "	Last update.
+ */
+
+#include <sys/isa_defs.h>
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("%-16s %-16s %-6s %s\n",
+	    "CMD", "CLASS", "TYPE", "MOD:INS:NAME");
+}
+
+fbt::read_kstat_data:entry
+{
+#ifdef _MULTI_DATAMODEL
+	self->uk = (kstat32_t *)copyin((uintptr_t)arg1, sizeof (kstat32_t));
+#else
+	self->uk = (kstat_t *)copyin((uintptr_t)arg1, sizeof (kstat_t));
+#endif
+	printf("%-16s %-16s %-6s %s:%d:%s\n", execname,
+	    self->uk->ks_class == "" ? "." : self->uk->ks_class,
+	    self->uk->ks_type == 0 ? "raw"
+	    :  self->uk->ks_type == 1 ? "named"
+	    :  self->uk->ks_type == 2 ? "intr"
+	    :  self->uk->ks_type == 3 ? "io"
+	    :  self->uk->ks_type == 4 ? "timer" : "?",
+	    self->uk->ks_module, self->uk->ks_instance, self->uk->ks_name);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Kernel/modcalls.d b/external/cddl/dtracetoolkit/dist/Kernel/modcalls.d
new file mode 100755
index 0000000..df2618d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Kernel/modcalls.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * modcalls.d - kernel function calls by module. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: modcalls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ */
+
+fbt:::entry { @calls[probemod] = count(); }
diff --git a/external/cddl/dtracetoolkit/dist/Kernel/priclass.d b/external/cddl/dtracetoolkit/dist/Kernel/priclass.d
new file mode 100755
index 0000000..234a329
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Kernel/priclass.d
@@ -0,0 +1,67 @@
+#!/usr/sbin/dtrace -s
+/*
+ * priclass.d - priority distribution by scheduling class.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * This is a simple DTrace script that samples at 1000 Hz the current
+ * thread's scheduling class and priority. A distribution plot is printed.
+ *
+ * With priorities, the higher the priority the better chance the thread
+ * has of being scheduled.
+ *
+ * This idea came from the script /usr/demo/dtrace/pri.d, which
+ * produces similar output for priority changes, not samples.
+ *
+ * $Id: priclass.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:       priclass.d      # hit Ctrl-C to end sampling
+ *
+ * FIELDS:
+ *              value           process priority
+ *              count           number of samples of at least this priority
+ *
+ * Also printed is the scheduling class,
+ *
+ *		TS		time sharing
+ *		IA		interactive
+ *		RT		real time
+ *		SYS		system
+ *		FSS		fair share schedular
+ *
+ * BASED ON: /usr/demo/dtrace/pri.d
+ *
+ * SEE ALSO: DTrace Guide "profile Provider" chapter (docs.sun.com)
+ *           dispadmin(1M)
+ *
+ * PORTIONS: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 12-Feb-2006	Brendan Gregg	Created this.
+ * 22-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Sampling... Hit Ctrl-C to end.\n");
+}
+
+profile:::profile-1000hz
+{
+	@count[stringof(curlwpsinfo->pr_clname)]
+	    = lquantize(curlwpsinfo->pr_pri, 0, 170, 10);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Kernel/pridist.d b/external/cddl/dtracetoolkit/dist/Kernel/pridist.d
new file mode 100755
index 0000000..dab0e34
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Kernel/pridist.d
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -s
+/*
+ * pridist.d - process priority distribution.
+ *             Written using DTrace (Solaris 10 3/05)
+ *
+ * This is a simple DTrace script that samples at 1000 Hz which process
+ * is on the CPUs, and what the priority is. A distribution plot is printed.
+ *
+ * With priorities, the higher the priority the better chance the process
+ * (actually, thread) has of being scheduled.
+ *
+ * This idea came from the script /usr/demo/dtrace/profpri.d, which
+ * produces similar output for one particular PID.
+ *
+ * $Id: pridist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:       pridist.d       # hit Ctrl-C to end sampling
+ *
+ * FIELDS:
+ *              CMD             process name
+ *              PID             process ID
+ *              value           process priority
+ *              count           number of samples of at least this priority
+ *
+ * BASED ON: /usr/demo/dtrace/profpri.d
+ *
+ * SEE ALSO:
+ *           DTrace Guide "profile Provider" chapter (docs.sun.com)
+ *           dispadmin(1M)
+ *
+ * PORTIONS: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 13-Jun-2005	Brendan Gregg	Created this.
+ * 22-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Sampling... Hit Ctrl-C to end.\n");
+}
+
+profile:::profile-1000hz
+{
+	@Count[execname, pid] = lquantize(curlwpsinfo->pr_pri, 0, 170, 5);
+}
+
+dtrace:::END
+{
+	printa(" CMD: %-16s PID: %d\n%@d\n", @Count);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Kernel/putnexts.d b/external/cddl/dtracetoolkit/dist/Kernel/putnexts.d
new file mode 100755
index 0000000..175e875
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Kernel/putnexts.d
@@ -0,0 +1,38 @@
+#!/usr/sbin/dtrace -s
+/*
+ * putnexts.d - stream putnext() tracing with stacks. Solaris, DTrace.
+ *
+ * This shows who is calling putnext() to who, by listing the destination
+ * queue and the calling stack, by frequency count. This is especially useful
+ * for understanding streams based frameworks, such as areas of the Solaris
+ * TCP/IP stack.
+ *
+ * $Id: putnexts.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	putnext.d
+ *
+ * BASED ON: /usr/demo/dtrace/putnext.d
+ *
+ * PORTIONS: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 12-Jun-2005  Brendan Gregg   Created this.
+ */
+
+fbt::putnext:entry
+{
+	@[stringof(args[0]->q_qinfo->qi_minfo->mi_idname), stack(5)] = count();
+}
diff --git a/external/cddl/dtracetoolkit/dist/Kernel/whatexec.d b/external/cddl/dtracetoolkit/dist/Kernel/whatexec.d
new file mode 100755
index 0000000..54d55d1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Kernel/whatexec.d
@@ -0,0 +1,79 @@
+#!/usr/sbin/dtrace -s
+/*
+ * whatexec.d - Examine the type of files exec'd.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * This prints the first four chacacters of files that are executed.
+ * This traces the kernel function findexec_by_hdr(), which checks for
+ * a known magic number in the file's header.
+ *
+ * The idea came from a demo I heard about from the UK, where a
+ * "blue screen of death" was displayed for "MZ" files (although I
+ * haven't seen the script or the demo).
+ *
+ * $Id: whatexec.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	whatexec.d	(early release, check for updates)
+ *
+ * FIELDS:
+ *		PEXEC		parent command name
+ *		EXEC		pathname to file exec'd
+ *		OK		is type runnable, Y/N
+ *		TYPE		first four characters from file
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 11-Feb-2006  Brendan Gregg   Created this.
+ * 25-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+this char *buf;
+
+dtrace:::BEGIN
+{
+	printf("%-16s %-38s %2s %s\n", "PEXEC", "EXEC", "OK", "TYPE");
+}
+
+fbt::gexec:entry
+{
+	self->file = cleanpath((*(struct vnode **)arg0)->v_path);
+	self->ok = 1;
+}
+
+fbt::findexec_by_hdr:entry
+/self->ok/
+{
+	bcopy(args[0], this->buf = alloca(5), 4);
+	this->buf[4] = '\0';
+	self->hdr = stringof(this->buf);
+}
+
+fbt::findexec_by_hdr:return
+/self->ok/
+{
+	printf("%-16s %-38s %2s %S\n", execname, self->file,
+	    arg1 == NULL ? "N" : "Y", self->hdr);
+	self->hdr = 0;
+}
+
+fbt::gexec:return
+{
+	self->file = 0;
+	self->ok = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/License b/external/cddl/dtracetoolkit/dist/License
new file mode 100644
index 0000000..b3487ad
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/License
@@ -0,0 +1,385 @@
+
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+
+
+      1. Definitions.
+
+            1.1. ÒContributorÓ means each individual or entity that
+            creates or contributes to the creation of Modifications.
+
+            1.2. ÒContributor VersionÓ means the combination of the
+            Original Software, prior Modifications used by a
+            Contributor (if any), and the Modifications made by that
+            particular Contributor.
+
+            1.3. ÒCovered SoftwareÓ means (a) the Original Software, or
+            (b) Modifications, or (c) the combination of files
+            containing Original Software with files containing
+            Modifications, in each case including portions thereof.
+
+            1.4. ÒExecutableÓ means the Covered Software in any form
+            other than Source Code. 
+
+            1.5. ÒInitial DeveloperÓ means the individual or entity
+            that first makes Original Software available under this
+            License. 
+            
+            1.6. ÒLarger WorkÓ means a work which combines Covered
+            Software or portions thereof with code not governed by the
+            terms of this License.
+
+            1.7. ÒLicenseÓ means this document.
+
+            1.8. ÒLicensableÓ means having the right to grant, to the
+            maximum extent possible, whether at the time of the initial
+            grant or subsequently acquired, any and all of the rights
+            conveyed herein.
+            
+            1.9. ÒModificationsÓ means the Source Code and Executable
+            form of any of the following: 
+
+                  A. Any file that results from an addition to,
+                  deletion from or modification of the contents of a
+                  file containing Original Software or previous
+                  Modifications; 
+
+                  B. Any new file that contains any part of the
+                  Original Software or previous Modification; or 
+
+                  C. Any new file that is contributed or otherwise made
+                  available under the terms of this License.
+
+            1.10. ÒOriginal SoftwareÓ means the Source Code and
+            Executable form of computer software code that is
+            originally released under this License. 
+
+            1.11. ÒPatent ClaimsÓ means any patent claim(s), now owned
+            or hereafter acquired, including without limitation,
+            method, process, and apparatus claims, in any patent
+            Licensable by grantor. 
+
+            1.12. ÒSource CodeÓ means (a) the common form of computer
+            software code in which modifications are made and (b)
+            associated documentation included in or with such code.
+
+            1.13. ÒYouÓ (or ÒYourÓ) means an individual or a legal
+            entity exercising rights under, and complying with all of
+            the terms of, this License. For legal entities, ÒYouÓ
+            includes any entity which controls, is controlled by, or is
+            under common control with You. For purposes of this
+            definition, ÒcontrolÓ means (a) the power, direct or
+            indirect, to cause the direction or management of such
+            entity, whether by contract or otherwise, or (b) ownership
+            of more than fifty percent (50%) of the outstanding shares
+            or beneficial ownership of such entity.
+
+      2. License Grants. 
+
+            2.1. The Initial Developer Grant.
+
+            Conditioned upon Your compliance with Section 3.1 below and
+            subject to third party intellectual property claims, the
+            Initial Developer hereby grants You a world-wide,
+            royalty-free, non-exclusive license: 
+
+                  (a) under intellectual property rights (other than
+                  patent or trademark) Licensable by Initial Developer,
+                  to use, reproduce, modify, display, perform,
+                  sublicense and distribute the Original Software (or
+                  portions thereof), with or without Modifications,
+                  and/or as part of a Larger Work; and 
+
+                  (b) under Patent Claims infringed by the making,
+                  using or selling of Original Software, to make, have
+                  made, use, practice, sell, and offer for sale, and/or
+                  otherwise dispose of the Original Software (or
+                  portions thereof). 
+
+                  (c) The licenses granted in Sections 2.1(a) and (b)
+                  are effective on the date Initial Developer first
+                  distributes or otherwise makes the Original Software
+                  available to a third party under the terms of this
+                  License. 
+
+                  (d) Notwithstanding Section 2.1(b) above, no patent
+                  license is granted: (1) for code that You delete from
+                  the Original Software, or (2) for infringements
+                  caused by: (i) the modification of the Original
+                  Software, or (ii) the combination of the Original
+                  Software with other software or devices. 
+
+            2.2. Contributor Grant.
+
+            Conditioned upon Your compliance with Section 3.1 below and
+            subject to third party intellectual property claims, each
+            Contributor hereby grants You a world-wide, royalty-free,
+            non-exclusive license:
+
+                  (a) under intellectual property rights (other than
+                  patent or trademark) Licensable by Contributor to
+                  use, reproduce, modify, display, perform, sublicense
+                  and distribute the Modifications created by such
+                  Contributor (or portions thereof), either on an
+                  unmodified basis, with other Modifications, as
+                  Covered Software and/or as part of a Larger Work; and
+                  
+
+                  (b) under Patent Claims infringed by the making,
+                  using, or selling of Modifications made by that
+                  Contributor either alone and/or in combination with
+                  its Contributor Version (or portions of such
+                  combination), to make, use, sell, offer for sale,
+                  have made, and/or otherwise dispose of: (1)
+                  Modifications made by that Contributor (or portions
+                  thereof); and (2) the combination of Modifications
+                  made by that Contributor with its Contributor Version
+                  (or portions of such combination). 
+
+                  (c) The licenses granted in Sections 2.2(a) and
+                  2.2(b) are effective on the date Contributor first
+                  distributes or otherwise makes the Modifications
+                  available to a third party. 
+
+                  (d) Notwithstanding Section 2.2(b) above, no patent
+                  license is granted: (1) for any code that Contributor
+                  has deleted from the Contributor Version; (2) for
+                  infringements caused by: (i) third party
+                  modifications of Contributor Version, or (ii) the
+                  combination of Modifications made by that Contributor
+                  with other software (except as part of the
+                  Contributor Version) or other devices; or (3) under
+                  Patent Claims infringed by Covered Software in the
+                  absence of Modifications made by that Contributor. 
+
+      3. Distribution Obligations.
+
+            3.1. Availability of Source Code.
+
+            Any Covered Software that You distribute or otherwise make
+            available in Executable form must also be made available in
+            Source Code form and that Source Code form must be
+            distributed only under the terms of this License. You must
+            include a copy of this License with every copy of the
+            Source Code form of the Covered Software You distribute or
+            otherwise make available. You must inform recipients of any
+            such Covered Software in Executable form as to how they can
+            obtain such Covered Software in Source Code form in a
+            reasonable manner on or through a medium customarily used
+            for software exchange.
+
+            3.2. Modifications.
+
+            The Modifications that You create or to which You
+            contribute are governed by the terms of this License. You
+            represent that You believe Your Modifications are Your
+            original creation(s) and/or You have sufficient rights to
+            grant the rights conveyed by this License.
+
+            3.3. Required Notices.
+
+            You must include a notice in each of Your Modifications
+            that identifies You as the Contributor of the Modification.
+            You may not remove or alter any copyright, patent or
+            trademark notices contained within the Covered Software, or
+            any notices of licensing or any descriptive text giving
+            attribution to any Contributor or the Initial Developer.
+
+            3.4. Application of Additional Terms.
+
+            You may not offer or impose any terms on any Covered
+            Software in Source Code form that alters or restricts the
+            applicable version of this License or the recipientsÕ
+            rights hereunder. You may choose to offer, and to charge a
+            fee for, warranty, support, indemnity or liability
+            obligations to one or more recipients of Covered Software.
+            However, you may do so only on Your own behalf, and not on
+            behalf of the Initial Developer or any Contributor. You
+            must make it absolutely clear that any such warranty,
+            support, indemnity or liability obligation is offered by
+            You alone, and You hereby agree to indemnify the Initial
+            Developer and every Contributor for any liability incurred
+            by the Initial Developer or such Contributor as a result of
+            warranty, support, indemnity or liability terms You offer.
+          
+
+            3.5. Distribution of Executable Versions.
+
+            You may distribute the Executable form of the Covered
+            Software under the terms of this License or under the terms
+            of a license of Your choice, which may contain terms
+            different from this License, provided that You are in
+            compliance with the terms of this License and that the
+            license for the Executable form does not attempt to limit
+            or alter the recipientÕs rights in the Source Code form
+            from the rights set forth in this License. If You
+            distribute the Covered Software in Executable form under a
+            different license, You must make it absolutely clear that
+            any terms which differ from this License are offered by You
+            alone, not by the Initial Developer or Contributor. You
+            hereby agree to indemnify the Initial Developer and every
+            Contributor for any liability incurred by the Initial
+            Developer or such Contributor as a result of any such terms
+            You offer.
+
+            3.6. Larger Works.
+
+            You may create a Larger Work by combining Covered Software
+            with other code not governed by the terms of this License
+            and distribute the Larger Work as a single product. In such
+            a case, You must make sure the requirements of this License
+            are fulfilled for the Covered Software. 
+            
+      4. Versions of the License. 
+
+            4.1. New Versions.
+
+            Sun Microsystems, Inc. is the initial license steward and
+            may publish revised and/or new versions of this License
+            from time to time. Each version will be given a
+            distinguishing version number. Except as provided in
+            Section 4.3, no one other than the license steward has the
+            right to modify this License. 
+
+            4.2. Effect of New Versions.
+
+            You may always continue to use, distribute or otherwise
+            make the Covered Software available under the terms of the
+            version of the License under which You originally received
+            the Covered Software. If the Initial Developer includes a
+            notice in the Original Software prohibiting it from being
+            distributed or otherwise made available under any
+            subsequent version of the License, You must distribute and
+            make the Covered Software available under the terms of the
+            version of the License under which You originally received
+            the Covered Software. Otherwise, You may also choose to
+            use, distribute or otherwise make the Covered Software
+            available under the terms of any subsequent version of the
+            License published by the license steward. 
+
+            4.3. Modified Versions.
+
+            When You are an Initial Developer and You want to create a
+            new license for Your Original Software, You may create and
+            use a modified version of this License if You: (a) rename
+            the license and remove any references to the name of the
+            license steward (except to note that the license differs
+            from this License); and (b) otherwise make it clear that
+            the license contains terms which differ from this License.
+            
+
+      5. DISCLAIMER OF WARRANTY.
+
+      COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN ÒAS ISÓ
+      BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+      INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
+      SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
+      PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
+      PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY
+      COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
+      INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF
+      ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
+      WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+      ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
+      DISCLAIMER. 
+
+      6. TERMINATION. 
+
+            6.1. This License and the rights granted hereunder will
+            terminate automatically if You fail to comply with terms
+            herein and fail to cure such breach within 30 days of
+            becoming aware of the breach. Provisions which, by their
+            nature, must remain in effect beyond the termination of
+            this License shall survive.
+
+            6.2. If You assert a patent infringement claim (excluding
+            declaratory judgment actions) against Initial Developer or
+            a Contributor (the Initial Developer or Contributor against
+            whom You assert such claim is referred to as ÒParticipantÓ)
+            alleging that the Participant Software (meaning the
+            Contributor Version where the Participant is a Contributor
+            or the Original Software where the Participant is the
+            Initial Developer) directly or indirectly infringes any
+            patent, then any and all rights granted directly or
+            indirectly to You by such Participant, the Initial
+            Developer (if the Initial Developer is not the Participant)
+            and all Contributors under Sections 2.1 and/or 2.2 of this
+            License shall, upon 60 days notice from Participant
+            terminate prospectively and automatically at the expiration
+            of such 60 day notice period, unless if within such 60 day
+            period You withdraw Your claim with respect to the
+            Participant Software against such Participant either
+            unilaterally or pursuant to a written agreement with
+            Participant.
+
+            6.3. In the event of termination under Sections 6.1 or 6.2
+            above, all end user licenses that have been validly granted
+            by You or any distributor hereunder prior to termination
+            (excluding licenses granted to You by any distributor)
+            shall survive termination.
+
+      7. LIMITATION OF LIABILITY.
+
+      UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+      (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
+      INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
+      COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
+      LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
+      CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+      LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
+      STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+      COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+      INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+      LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
+      INJURY RESULTING FROM SUCH PARTYÕS NEGLIGENCE TO THE EXTENT
+      APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
+      NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
+      CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
+      APPLY TO YOU.
+
+      8. U.S. GOVERNMENT END USERS.
+
+      The Covered Software is a Òcommercial item,Ó as that term is
+      defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of Òcommercial
+      computer softwareÓ (as that term is defined at 48 C.F.R. ¤
+      252.227-7014(a)(1)) and Òcommercial computer software
+      documentationÓ as such terms are used in 48 C.F.R. 12.212 (Sept.
+      1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
+      through 227.7202-4 (June 1995), all U.S. Government End Users
+      acquire Covered Software with only those rights set forth herein.
+      This U.S. Government Rights clause is in lieu of, and supersedes,
+      any other FAR, DFAR, or other clause or provision that addresses
+      Government rights in computer software under this License.
+
+      9. MISCELLANEOUS.
+
+      This License represents the complete agreement concerning subject
+      matter hereof. If any provision of this License is held to be
+      unenforceable, such provision shall be reformed only to the
+      extent necessary to make it enforceable. This License shall be
+      governed by the law of the jurisdiction specified in a notice
+      contained within the Original Software (except to the extent
+      applicable law, if any, provides otherwise), excluding such
+      jurisdictionÕs conflict-of-law provisions. Any litigation
+      relating to this License shall be subject to the jurisdiction of
+      the courts located in the jurisdiction and venue specified in a
+      notice contained within the Original Software, with the losing
+      party responsible for costs, including, without limitation, court
+      costs and reasonable attorneysÕ fees and expenses. The
+      application of the United Nations Convention on Contracts for the
+      International Sale of Goods is expressly excluded. Any law or
+      regulation which provides that the language of a contract shall
+      be construed against the drafter shall not apply to this License.
+      You agree that You alone are responsible for compliance with the
+      United States export administration regulations (and the export
+      control laws and regulation of any other countries) when You use,
+      distribute or otherwise make available any Covered Software.
+
+      10. RESPONSIBILITY FOR CLAIMS.
+
+      As between Initial Developer and the Contributors, each party is
+      responsible for claims and damages arising, directly or
+      indirectly, out of its utilization of rights under this License
+      and You agree to work with Initial Developer and Contributors to
+      distribute such responsibility on an equitable basis. Nothing
+      herein is intended or shall be deemed to constitute any admission
+      of liability.
diff --git a/external/cddl/dtracetoolkit/dist/Locks/lockbydist.d b/external/cddl/dtracetoolkit/dist/Locks/lockbydist.d
new file mode 100755
index 0000000..7eb07bd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Locks/lockbydist.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * lockbydist.d - lock distrib. by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: lockbydist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ */
+
+lockstat:::adaptive-block { @time[execname] = quantize(arg1); }
diff --git a/external/cddl/dtracetoolkit/dist/Locks/lockbyproc.d b/external/cddl/dtracetoolkit/dist/Locks/lockbyproc.d
new file mode 100755
index 0000000..69f025b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Locks/lockbyproc.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * lockbyproc.d - lock time by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: lockbyproc.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ */
+
+lockstat:::adaptive-block { @time[execname] = sum(arg1); }
diff --git a/external/cddl/dtracetoolkit/dist/Man/Readme b/external/cddl/dtracetoolkit/dist/Man/Readme
new file mode 100644
index 0000000..3164123
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/Readme
@@ -0,0 +1,40 @@
+Man - Man pages
+
+   There are a number of ways you can read these man pages. Either,
+
+   1. Add this directory to your MANPATH,
+
+	cd Man
+	MANPATH=$MANPATH:$PWD
+	man iosnoop
+
+   2. If the DTraceToolkit has been installed, and that dir to your MANPATH,
+
+	MANPATH=$MANPATH:/opt/DTT/Man
+	man iosnoop
+
+   3. Set MANPATH to "." every time you read a script,
+
+	cd Man
+	MANPATH=. man iosnoop
+
+   4. Use the -M option to "man", if your OS has it,
+
+	man -M Man iosnoop
+
+   5. Prentend that you are /usr/bin/man, if your OS has nroff,
+
+	nroff -man Man/man1m/iosnoop.1m | more
+
+   6. Pretend that you are /usr/bin/nroff,
+
+	more Man/man1m/iosnoop.1m
+
+   7. Pretend that you have no pagers installed,
+
+	while read line; do echo $line; done < Man/man1m/iosnoop.1m
+
+   8. Pretend that you can read hex,
+
+	od -x Man/man1m/iosnoop.1m
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/anonpgpid.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/anonpgpid.d.1m
new file mode 100644
index 0000000..65afc23
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/anonpgpid.d.1m
@@ -0,0 +1,54 @@
+.TH anonpgpid.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+anonpgpid.d \- anonymous memory paging info by PID on CPU. Uses DTrace.
+.SH SYNOPSIS
+.B anonpgpid.d
+.SH DESCRIPTION
+This scripts may help identify which processes are affected by a system
+with low memory, which is paging to the physical swap device. A report
+of the process on the CPU when paging occured is printed.
+
+This program is currently an approximation  - often the process when writing
+pages to swap will be "pageout" the pageout scanner, or "rcapd" the
+resource capping daemon.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Print report after Ctrl-C is hit,
+# 
+.B anonpgpid.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+command name for the process
+.TP
+D
+direction, Read or Write
+.TP
+BYTES
+total bytes during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+anonpgpid.d will run forever until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/bitesize.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/bitesize.d.1m
new file mode 100644
index 0000000..7550b68
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/bitesize.d.1m
@@ -0,0 +1,57 @@
+.TH bitesize.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+bitesize.d \- analyse disk I/O size by process. Uses DTrace.
+.SH SYNOPSIS
+.B bitesize.d
+.SH DESCRIPTION
+This produces a report for the size of disk events caused by
+processes. These are the disk events sent by the block I/O driver.
+
+If applications must use the disks, we generally prefer they do so
+sequentially with large I/O sizes, or larger "bites".
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B bitesize.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+command and argument list
+.TP
+value
+size in bytes
+.TP
+count
+number of I/O operations
+.PP
+.SH NOTES
+The application may be requesting smaller sized operations, which
+are being rounded up to the nearest sector size or UFS block size.
+
+To analyse what the application is requesting, DTraceToolkit programs
+such as Proc/fddist may help.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+bitesize.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iosnoop(1M), seeksize(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/connections.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/connections.1m
new file mode 100644
index 0000000..b99bce5c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/connections.1m
@@ -0,0 +1,77 @@
+.TH connections 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+connections \- print inbound TCP connections by process. Uses DTrace.
+.SH SYNOPSIS
+.B connections
+[\-htvZ]
+.SH DESCRIPTION
+This displays the PID and command name of the processes accepting
+connections, along with the source IP address and destination port number
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH OPTIONS
+.TP
+\-t
+print timestamps, us
+.TP
+\-v
+print timestamps, string
+.TP
+\-Z
+print zonename
+.PP
+.SH EXAMPLES
+.TP
+snoop inbound connections
+# 
+.B connections
+.TP
+snoop connections with time
+#
+.B connections
+\-v
+.PP
+.SH FIELDS
+.TP
+UID
+user ID of the server
+.TP
+PID
+process ID of the server
+.TP
+CMD
+server command name
+.TP
+TIME
+timestamp, us
+.TP
+TIMESTR
+timestamp, string
+.TP
+PORT
+server port
+.TP
+IP_SOURCE
+source IP of the client, written in IPv4 style
+.TP
+ZONE
+zonename
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+connections will run until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), snoop(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/cpudists.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/cpudists.1m
new file mode 100644
index 0000000..066a6c6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/cpudists.1m
@@ -0,0 +1,86 @@
+.TH cpudists 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+cpudists \- CPU distrib. by Kernel/Idle/Process. Uses DTrace.
+.SH SYNOPSIS
+.B cpudists
+[\-ahV] [\-t top] [interval [count]]
+.SH DESCRIPTION
+cpudists prints the CPU time distributions consumed by the Kernel, 
+Idle threads and by Processes. 
+
+This program is a variant on cputimes, and creates extra kernel load as
+described in cputimes(1M). cpudists prints out a distribution report
+(a quantize aggregation), such that the number of occurrences and 
+duration of each thread using the CPUs can be identified. 
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo and sched providers.
+.SH OPTIONS
+.TP
+\-a
+print all processes
+.TP
+\-T
+print totals
+.TP
+\-V
+don't print timestamps
+.TP
+\-t num
+print top num lines only
+.SH EXAMPLES
+.TP
+Default, print Kernel/Idle/Process time, 1 x 1 second sample,
+# 
+.B cpudists
+.PP
+.TP
+Print every 1 second,
+# 
+.B cpudists
+1
+.PP
+.TP
+Print all processes every 10 seconds,
+#
+.B cpudists
+\-a 10
+.PP
+.TP
+Print top 8 lines every 5 seconds,
+#
+.B cpudists
+\-at 8 5
+.PP
+.SH FIELDS
+.TP
+IDLE
+Idle time - CPU running idle thread
+.TP
+KERNEL
+Kernel time - Kernel servicing interrupts, ...
+.TP
+PROCESS
+Process time - PIDs running on the system
+.TP
+value
+Time in nanoseconds
+.TP
+count
+Number of occurrences that were at least this duration (ns)
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+cpudists will run once, unless a count is specified.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), vmstat(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/cputimes.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/cputimes.1m
new file mode 100644
index 0000000..f8d3643
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/cputimes.1m
@@ -0,0 +1,87 @@
+.TH cputimes 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+cputimes \- print time by Kernel/Idle/Process. Uses DTrace.
+.SH SYNOPSIS
+.B cputimes
+[\-ahTV] [\-t top] [interval [count]]
+.SH DESCRIPTION
+cputimes prints the CPU time consumed by the Kernel, Idle threads and
+by Processes. 
+
+This program accurately measures time consumed by the kernel, but in
+doing so creates extra kernel load of it's own. This extra kernel
+activity can be measured by running one cputimes and then another, and
+comparing the difference in kernel consumed time. This method can be
+used to estimate the load caused by other DTrace scripts.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo and sched providers.
+.SH OPTIONS
+.TP
+\-a
+print all processes
+.TP
+\-T
+print totals
+.TP
+\-V
+don't print timestamps
+.TP
+\-t num
+print top num lines only
+.SH EXAMPLES
+.TP
+Default, print Kernel/Idle/Process time, 1 x 1 second sample,
+# 
+.B cputimes
+.PP
+.TP
+Print every 1 second,
+# 
+.B cputimes
+1
+.PP
+.TP
+Print all processes every 10 seconds,
+#
+.B cputimes
+\-a 10
+.PP
+.TP
+Print top 8 lines every 5 seconds,
+#
+.B cputimes
+\-at 8 5
+.PP
+.SH FIELDS
+.TP
+THREADS
+Either KERNEL, IDLE, PROCESS or process name.
+.TP
+IDLE
+Idle time - CPU running idle thread
+.TP
+KERNEL
+Kernel time - Kernel servicing interrupts, ...
+.TP
+PROCESS
+Process time - PIDs running on the system
+.TP
+TIME (ns)
+Sum of the CPU time, ns (nanoseconds)
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+cputimes will run once, unless a count is specified.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), vmstat(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/cputypes.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/cputypes.d.1m
new file mode 100644
index 0000000..959d12a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/cputypes.d.1m
@@ -0,0 +1,54 @@
+.TH cputypes.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+cputypes.d \- list CPU types. Uses DTrace.
+.SH SYNOPSIS
+.B cputypes.d
+.SH DESCRIPTION
+This program lists CPU type information for the online CPUs 
+in the system.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable.
+.SH EXAMPLES
+.TP
+List CPU types,
+# 
+.B cputypes.d
+.PP
+.SH FIELDS
+.TP
+CPU
+CPU ID
+.TP
+CHIP
+chip ID
+.TP
+PSET
+processor set ID
+.TP
+LGRP
+latency group ID
+.TP
+CLOCK
+clock speed, MHz
+.TP
+TYPE
+CPU type
+.TP
+FPU
+floating point identifier type
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+psrinfo(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/cpuwalk.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/cpuwalk.d.1m
new file mode 100644
index 0000000..c48237e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/cpuwalk.d.1m
@@ -0,0 +1,53 @@
+.TH cpuwalk.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+cpuwalk.d \- Measure which CPUs a process runs on. Uses DTrace.
+.SH SYNOPSIS
+.B cpuwalk.d [duration]
+.SH DESCRIPTION
+This program is for multi-CPU servers, and can help identify if a process
+is running on multiple CPUs concurrently or not.
+
+A duration may be specified in seconds.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Any
+.SH STABILITY
+stable.
+.SH EXAMPLES
+.TP
+this runs until Ctrl\-C is hit,
+# 
+.B cpuwalk.d
+.PP
+.TP
+run for 5 seconds,
+#
+.B cpuwalk.d
+5
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+value
+CPU id
+.TP
+count
+number of samples (sample at 100 hz)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+cpuwalk.d will run until Ctrl\-C is hit, or the duration specified
+is reached.
+.SH SEE ALSO
+threaded.d(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/crash.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/crash.d.1m
new file mode 100644
index 0000000..31b979f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/crash.d.1m
@@ -0,0 +1,81 @@
+.TH crash.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+crash.d \- Crashed Application info. Uses DTrace.
+.SH SYNOPSIS
+.B crash.d
+.SH DESCRIPTION
+crash.d monitors for applications that crash. 
+When a crash via a SIGSEGV or SIGBUS is detected, a report of the
+process state is printed out.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the proc provider, and uses /usr/bin/prun.
+.SH FIELDS
+.TP
+Type
+signal type
+.TP
+Program
+execname of process
+.TP
+Args
+argument listing of process
+.TP
+PID
+process ID
+.TP
+TID
+thread ID
+.TP
+LWPs
+number of Light Weight Processes
+.TP
+PPID
+parent process ID
+.TP
+UID
+user ID
+.TP
+TaskID
+task ID
+.TP
+ProjID
+project ID
+.TP
+PoolID
+pool ID
+.TP
+ZoneID
+zone ID
+.TP
+zone
+zone name
+.TP
+CWD
+current working directory
+.TP
+errno
+error number of last syscall
+.PP
+.SH EXAMPLES
+.TP
+Monitor for crashing applications.
+# 
+.B crash.d
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+crash.d will run until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/creatbyproc.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/creatbyproc.d.1m
new file mode 100644
index 0000000..9cbc3b5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/creatbyproc.d.1m
@@ -0,0 +1,55 @@
+.TH creatbyproc.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+creatbyproc.d \- snoop creat()s by process name. Uses DTrace.
+.SH SYNOPSIS
+.B creatbyproc.d
+.SH DESCRIPTION
+creatbyproc.d is a DTrace OneLiner to print file creations as it 
+occurs, including the name of the process calling the open.
+
+This matches file creates from the creat() system call; not all 
+file creation occurs in this way, sometimes it is through open()
+with a O_CREAT flag, this script will not monitor that activity.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+This prints process names and new pathnames until Ctrl\-C is hit.
+# 
+.B creatbyproc.d
+.PP
+.SH FIELDS
+.TP
+CPU
+The CPU that recieved the event
+.TP
+ID
+A DTrace probe ID for the event
+.TP
+FUNCTION:NAME
+The DTrace probe name for the event
+.TP
+remaining fields
+The first is the name of the process, the second is the file pathname.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+creatbyproc.d will run forever until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/cswstat.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/cswstat.d.1m
new file mode 100644
index 0000000..13ec094
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/cswstat.d.1m
@@ -0,0 +1,51 @@
+.TH cswstat.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+cswstat.d \- context switch time stats. Uses DTrace.
+.SH SYNOPSIS
+.B cswstat.d
+.SH DESCRIPTION
+cswstat.d is a DTrace program to print context switch time
+statistics.
+
+This program measures the time consumed during context switching,
+and prints it with the number of context switches and the average
+time.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sched provider.
+.SH EXAMPLES
+.TP
+Print statistics every second,
+# 
+.B cswstat.d
+.PP
+.SH FIELDS
+.TP
+TIME
+The current time
+.TP
+NUM
+Number of context switches in this sample
+.TP
+CSWTIME
+Total time consumed context switching, us
+.TP
+AVGTIME
+Average time for each context switch, us
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+cswstat.d will run forever until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+mpstat(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/dappprof.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/dappprof.1m
new file mode 100644
index 0000000..d3ca314
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/dappprof.1m
@@ -0,0 +1,98 @@
+.TH dappprof 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+dappprof \- profile user and lib function usage. Uses DTrace.
+.SH SYNOPSIS
+.B dappprof
+[\-acehoTU] [\-u lib] { \-p PID | command }
+.SH DESCRIPTION
+dappprof prints details on user and library call times for processes
+as a summary style aggragation. By default the user fuctions are
+traced, options can be used to trace library activity. Output can
+include function counts, elapsed times and on cpu times.
+
+The elapsed times are interesting, to help identify functions
+that take some time to complete (during which the process may
+have slept). CPU time helps us identify syscalls that
+are consuming CPU cycles to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the pid provider.
+.SH OPTIONS
+.TP
+\-a
+print all data
+.TP
+\-c
+print function counts
+.TP
+\-e
+print elapsed times, ns
+.TP
+\-o
+print CPU times, ns
+.TP
+\-T
+print totals
+.TP
+\-p PID
+examine this PID
+.TP
+\-u lib
+trace this library instead
+.TP
+\-U
+trace all library and user functions
+.PP
+.SH EXAMPLES
+.TP
+run and examine the "df \-h" command,
+# 
+.B dappprof
+df \-h
+.PP
+.TP
+print elapsed times, on-cpu times and counts for "df \-h",
+#
+.B dappprof
+-ceo df \-h
+.TP
+print elapsed times for PID 1871,
+# 
+.B dappprof
+\-p 1871
+.PP
+.TP
+print all data for PID 1871,
+#
+.B dappprof
+\-ap 1871
+.PP
+.SH FIELDS
+.TP
+CALL
+Function call name
+.TP
+ELAPSED
+Total elapsed time, nanoseconds
+.TP
+CPU
+Total on-cpu time, nanoseconds
+.TP
+COUNT
+Number of occurrences
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+dappprof will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dapptrace(1M), dtrace(1M), apptrace(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/dapptrace.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/dapptrace.1m
new file mode 100644
index 0000000..06d53df
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/dapptrace.1m
@@ -0,0 +1,112 @@
+.TH dapptrace 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+dapptrace \- trace user and library function usage. Uses DTrace.
+.SH SYNOPSIS
+.B dapptrace
+[\-acdeFlhoU] [\-u lib] { \-p PID | command }
+.SH DESCRIPTION
+dapptrace prints details on user and library function calls. By
+default it traces user functions only, options can be used to
+trace library activity.
+
+Of particular interest is the elapsed times and on cpu times, which
+can identify both function calls that are slow to complete, and those
+which are consuming CPU cycles.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the pid provider.
+.SH OPTIONS
+.TP
+\-a
+print all details
+.TP
+\-b bufsize
+dynamic variable buffer size. Increase this if you notice dynamic
+variable drop errors. The default is "4m" for 4 megabytes per CPU.
+.TP
+\-c
+print function call counts
+.TP
+\-d
+print relative timestamps, us
+.TP
+\-e
+print elapsed times, us
+.TP
+\-F
+print flow indentation
+.TP
+\-l
+force printing of pid/lwpid per line
+.TP
+\-o
+print on-cpu times, us
+.TP
+\-p PID
+examine this PID
+.TP
+\-u lib
+trace this library instead
+.TP
+\-U
+trace all library and user functions
+.PP
+.SH EXAMPLES
+.TP
+run and examine the "df -h" command,
+# 
+.B dapptrace 
+df -h
+.PP
+.TP
+examine PID 1871,
+# 
+.B dapptrace
+\-p 1871 
+.PP
+.TP
+print using flow indents,
+#
+.B dapptrace
+\-Fp 1871
+.PP
+.TP
+print elapsed and CPU times,
+#
+.B dapptrace
+\-eop 1871
+.PP
+.SH FIELDS
+.TP
+PID/LWPID
+Process ID / Lightweight Process ID
+.TP
+RELATIVE
+relative timestamps to the start of the thread, us (microseconds)
+.TP
+ELAPSD
+elapsed time for this system call, us
+.TP
+CPU
+on-cpu time for this system call, us
+.TP
+CALL(args)
+function call name, with some arguments in hexadecimal
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+dapptrace will run forever until Ctrl\-C is hit, or if a command was
+executed dapptrace will finish when the command ends.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dappprof(1M), dtrace(1M), apptrace(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/dexplorer.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/dexplorer.1m
new file mode 100644
index 0000000..9f61a5e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/dexplorer.1m
@@ -0,0 +1,64 @@
+.TH dexplorer 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+dexplorer \- run a series of scripts and archive output. Uses DTrace.
+.SH SYNOPSIS
+.B dexplorer
+.SH DESCRIPTION
+This program automatically runs a collection of DTrace scripts to examine
+many areas of the system, and places the output in a meaningful directory
+structure that is tar'd and gzip'd.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH OPTIONS
+.TP
+\-q
+quiet mode
+.TP
+\-y
+"yes", don't prompt for confirmation
+.TP
+\-D
+don't delete output dir
+.TP
+\-T
+don't create output tar.gz
+.TP
+\-d outputdir
+output directory
+.TP
+\-i interval
+interval for each sample
+.PP
+.SH EXAMPLES
+.TP
+Create output file in current directory,
+# 
+.B dexplorer
+.TP
+Don't prompt
+#
+.B dexplorer
+\-y
+.TP
+Leave expanded directories, don't archive and compress,
+#
+.B dexplorer
+\-DT
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/diskhits.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/diskhits.1m
new file mode 100644
index 0000000..aba6113
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/diskhits.1m
@@ -0,0 +1,46 @@
+.TH diskhits 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+diskhits \- disk access by file offset. Uses DTrace.
+.SH SYNOPSIS
+.B diskhits pathname
+.SH DESCRIPTION
+This prints how a file was accessed, the locations on a distribution plot.
+This is for the cache misses only - the file activity that resulted in
+disk events.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH EXAMPLES
+.TP
+Sample /var/adm/messages disk activity,
+# 
+.B diskhits /var/adm/messages
+.PP
+.SH FIELDS
+.TP
+Location (KB)
+the file offset of the disk activity, Kbytes
+.TP
+Size (KB)
+size of the disk activity, Kbytes
+.TP
+Total RW
+Total disk activity, reads + writes
+.PP
+.SH BASED ON
+/usr/demo/dtrace/applicat.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "io Provider" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+diskhits will sample until Ctrl\-C is hit. 
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/dispqlen.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/dispqlen.d.1m
new file mode 100644
index 0000000..b03ed78
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/dispqlen.d.1m
@@ -0,0 +1,36 @@
+.TH dispqlen.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+dispqlen.d \- dispatcher queue length by CPU. Uses DTrace.
+.SH SYNOPSIS
+.B dispqlen.d
+.SH DESCRIPTION
+The dispatcher queue length is an indication of CPU saturation.
+It is not an indicatior of utilisation - the CPUs may or may not be
+utilised when the dispatcher queue reports a length of zero.
+
+This script measures this activity by sampling at 1000 Hertz per CPU.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - walks private kernel structs.
+.SH EXAMPLES
+.TP
+Print dispatcher queue length by CPU.
+# 
+.B dispqlen.d
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+dispqlen.d will sample until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+uptime(1), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/dnlcps.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/dnlcps.d.1m
new file mode 100644
index 0000000..27cf86f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/dnlcps.d.1m
@@ -0,0 +1,51 @@
+.TH dnlcps.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+dnlcps.d \- DNLC stats by process. Uses DTrace.
+.SH SYNOPSIS
+.B dnlcps.d
+.SH DESCRIPTION
+The DNLC is the Directory Name Lookup Cache. Filename lookups often
+return a hit from here, before needing to traverse the regular file
+system cache or go to disk.
+
+dnlcps.d prints DNLC statistics by process.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B dnlcps.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+command name
+.TP
+value
+0 == miss, 1 == hit
+.TP
+count
+number of occurrences
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+dnlcps.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/dnlcsnoop.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/dnlcsnoop.d.1m
new file mode 100644
index 0000000..eea1ca7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/dnlcsnoop.d.1m
@@ -0,0 +1,52 @@
+.TH dnlcsnoop.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+dnlcsnoop.d \- snoop DNLC activity. Uses DTrace.
+.SH SYNOPSIS
+.B dnlcsnoop.d
+.SH DESCRIPTION
+The DNLC is the Directory Name Lookup Cache. Filename lookups often
+return a hit from here, before needing to traverse the regular file
+system cache or go to disk.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B dnlcsnoop.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+command name
+.TP
+TIME
+Elapsed time for lookup, us
+.TP
+HIT
+DNLC hit Y/N
+.TP
+PATH
+Path for DNLC lookup
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+dnlcsnoop.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/dnlcstat.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/dnlcstat.1m
new file mode 100644
index 0000000..ec75c85
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/dnlcstat.1m
@@ -0,0 +1,57 @@
+.TH dnlcstat 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+dnlcstat \- DNLC statistics. Uses DTrace.
+.SH SYNOPSIS
+.B dnlcstat
+[interval [count]]
+.SH DESCRIPTION
+The DNLC is the Directory Name Lookup Cache. Filename lookups often
+return a hit from here, before needing to traverse the regular file
+system cache or go to disk.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Print DNLC statistics every second,
+# 
+.B dnlcstat
+.TP
+Print every 5 seconds, 6 times,
+#
+.B dnlcstat
+5 6
+.PP
+.SH FIELDS
+.TP
+%hit
+hit percentage for this sample
+.TP
+hit
+number of DNLC hits in this sample
+.TP
+miss
+number of DNLC misses in this sample
+.PP
+.SH NOTES
+See the CacheKit, http://www.brendangregg.com/cachekit.html for a version
+of dnlcstat written in Perl (Kstat) that uses much less CPU.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+dnlcstat will run until Ctrl\-C is hit, or until the count argument
+has been satisfied.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/dtruss.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/dtruss.1m
new file mode 100644
index 0000000..0728148
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/dtruss.1m
@@ -0,0 +1,123 @@
+.TH dtruss 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+dtruss \- process syscall details. Uses DTrace.
+.SH SYNOPSIS
+.B dtruss
+[\-acdeflhoLs] [\-t syscall] { \-p PID | \-n name | command }
+.SH DESCRIPTION
+dtruss prints details on process system calls. It is like a DTrace
+version of truss, and has been designed to be less intrusive than
+truss.
+
+Of particular interest is the elapsed times and on cpu times, which
+can identify both system calls that are slow to complete, and those
+which are consuming CPU cycles.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH OPTIONS
+.TP
+\-a
+print all details
+.TP
+\-b bufsize
+dynamic variable buffer size. Increase this if you notice dynamic
+variable drop errors. The default is "4m" for 4 megabytes per CPU.
+.TP
+\-c
+print system call counts
+.TP
+\-d
+print relative timestamps, us
+.TP
+\-e
+print elapsed times, us
+.TP
+\-f
+follow children as they are forked
+.TP
+\-l
+force printing of pid/lwpid per line
+.TP
+\-L
+don't print pid/lwpid per line
+.TP
+\-n name
+examine processes with this name
+.TP
+\-o
+print on-cpu times, us
+.TP
+\-s
+print stack backtraces
+.TP
+\-p PID
+examine this PID
+.TP
+\-t syscall
+examine this syscall only
+.PP
+.SH EXAMPLES
+.TP
+run and examine the "df -h" command
+# 
+.B dtruss 
+df -h
+.PP
+.TP
+examine PID 1871
+# 
+.B dtruss
+\-p 1871 
+.PP
+.TP
+examine all processes called "tar"
+#
+.B dtruss
+\-n tar
+.PP
+.TP
+run test.sh and follow children
+#
+.B dtruss
+\-f test.sh
+.TP
+run the "date" command and print elapsed and on cpu times,
+#
+.B dtruss
+\-eo date
+.PP
+.SH FIELDS
+.TP
+PID/LWPID
+Process ID / Lightweight Process ID
+.TP
+RELATIVE
+relative timestamps to the start of the thread, us (microseconds)
+.TP
+ELAPSD
+elapsed time for this system call, us
+.TP
+CPU
+on-cpu time for this system call, us
+.TP
+SYSCALL(args)
+system call name, with arguments (some may be evaluated)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+dtruss will run forever until Ctrl\-C is hit, or if a command was
+executed dtruss will finish when the command ends.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+procsystime(1M), dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/dvmstat.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/dvmstat.1m
new file mode 100644
index 0000000..e289204
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/dvmstat.1m
@@ -0,0 +1,93 @@
+.TH dvmstat 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+dvmstat \- vmstat by PID/name/command. Uses DTrace.
+.SH SYNOPSIS
+.B dvmstat
+{ \-p PID | \-n name | command }
+.SH DESCRIPTION
+This program provides vmstat like data for one particular PID, a
+process name, or when running a command. It prints statistics
+every second.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the vminfo provider.
+.SH OPTIONS
+.TP
+\-p PID
+examine this Process ID
+.TP
+\-n name
+examine processes with this name
+.PP
+.SH EXAMPLES
+.TP
+examine PID 1871,
+# 
+.B dvmstat
+\-p 1871
+.TP
+examine processes called "tar",
+#
+.B dvmstat
+\-n tar
+.TP
+run and examine "df -h",
+#
+.B dvmstat
+df -h
+.PP
+.SH FIELDS
+.TP
+re
+page reclaims, Kbytes
+.TP
+maj
+major faults, Kbytes
+.TP
+mf
+minor faults, Kbytes
+.TP
+fr
+page frees, Kbytes
+.TP
+epi
+executable page ins, Kbytes
+.TP
+epo
+executable page outs, Kbytes
+.TP
+api
+anonymous page ins, Kbytes
+.TP
+apo
+anonymous page outs, Kbytes
+.TP
+fpi
+filesystem page ins, Kbytes
+.TP
+fpo
+filesystem page outs, Kbytes
+.TP
+sy
+system calls, number
+.PP
+.SH NOTES
+Most of the statistics are in units of kilobytes, unlike the
+original vmstat command which sometimes uses pages.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+dvmstat will run until Ctrl\-C is hit, or the command it is
+examining ends.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), vmstat(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/errinfo.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/errinfo.1m
new file mode 100644
index 0000000..c5fe799
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/errinfo.1m
@@ -0,0 +1,85 @@
+.TH errinfo 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+errinfo \- print errno for syscall fails. Uses DTrace.
+.SH SYNOPSIS
+.B errinfo
+[\-a|\-A|\-hsvZ] [\-c command]
+.SH DESCRIPTION
+errinfo snoops syscall failures and prints the errno value and
+description of the error number.
+
+This program can help determine if applications are silently
+failing, providing some details on the cause. 
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH OPTIONS
+.TP
+\-c
+counts - print an aggregate style report containing a 
+frequency count of errors
+.TP
+\-p PID
+examine this PID only
+.TP
+\-n name
+examine processes with ths name only (eg, "ls")
+.SH EXAMPLES
+.TP
+Default output, print errors as they occur,
+# 
+.B errinfo
+.PP
+.TP
+Print a frequency count report,
+# 
+.B errinfo
+\-c 
+.PP
+.TP
+Snoop errors as they occur for "ssh" processes,
+#
+.B errinfo
+\-n ssh
+PP
+.TP
+Snoop errors for PID 81 only,
+#
+.B errinfo
+\-p 81
+.PP
+.SH FIELDS
+.TP
+EXEC
+Program name (truncated)
+.TP
+SYSCALL
+System call name
+.TP
+ERR
+Value of errno
+.TP
+DESC
+Description of errno message
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+errinfo will run forever until Ctrl\-C is hit. 
+.SH FILES
+.TP
+/usr/include/sys/errno.h
+Contains the full descriptions for the error numbers.
+.PP
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/execsnoop.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/execsnoop.1m
new file mode 100644
index 0000000..51a03c9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/execsnoop.1m
@@ -0,0 +1,108 @@
+.TH execsnoop 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+execsnoop \- snoop new process execution. Uses DTrace.
+.SH SYNOPSIS
+.B execsnoop
+[\-a|\-A|\-ejhsvZ] [\-c command]
+.SH DESCRIPTION
+execsnoop prints details of new processes as they are executed.
+Details such as UID, PID and argument listing are printed out.
+
+This program is very useful to examine short lived processes that would
+not normally appear in a prstat or "ps -ef" listing. Sometimes 
+applications will run hundreds of short lived processes in their 
+normal startup cycle, a behaviour that is easily monitored with execsnoop.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH OPTIONS
+.TP
+\-a
+print all data
+.TP
+\-A
+dump all data, space delimited
+.TP
+\-e
+safe output, parseable. This prevents the ARGS field containing "\\n"s,
+to assist postprocessing.
+.TP
+\-j
+print project ID
+.TP
+\-s
+print start time, us
+.TP
+\-v
+print start time, string
+.TP
+\-Z
+print zonename
+.TP
+\-c command
+command name to snoop
+.SH EXAMPLES
+.TP
+Default output, print processes as they are executed,
+# 
+.B execsnoop
+.TP
+Print human readable timestamps,
+# 
+.B execsnoop
+\-v 
+.TP
+Print zonename,
+#
+.B execsnoop
+\-Z
+.TP
+Snoop this command only,
+#
+.B execsnoop
+\-f ls
+.PP
+.SH FIELDS
+.TP
+UID
+User ID
+.TP
+PID
+Process ID
+.TP
+PPID
+Parent Process ID
+.TP
+COMM
+command name for the process
+.TP
+ARGS
+argument listing for the process
+.TP
+ZONE
+zonename
+.TP
+PROJ
+project ID
+.TP
+TIME
+timestamp for the exec event, us
+.TP
+STRTIME
+timestamp for the exec event, string
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+execsnoop will run forever until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/fddist.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/fddist.1m
new file mode 100644
index 0000000..f40eee9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/fddist.1m
@@ -0,0 +1,63 @@
+.TH fddist 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+fddist \- file descriptor usage distributions. Uses DTrace.
+.SH SYNOPSIS
+.B fddist [\-r|\-w]
+.SH DESCRIPTION
+This prints distributions for read and write events by file descriptor,
+by process. This can be used to determine which file descriptor a
+process is doing the most I/O with.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH OPTIONS
+.TP
+\-r
+reads only
+.TP
+\-w
+writes only
+.PP
+.SH EXAMPLES
+.TP
+Sample both read and write activity,
+# 
+.B fddist
+.TP
+Sample reads only,
+#
+.B fddist
+\-r
+.PP
+.SH FIELDS
+.TP
+EXEC
+process name
+.TP
+PID
+process ID
+.TP
+value
+file descriptor
+.TP
+count
+number of events
+.PP
+.SH BASED ON
+/usr/demo/dtrace/lquantize.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "Aggregations" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+fddist will sample until Ctrl\-C is hit. 
+.SH SEE ALSO
+dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/filebyproc.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/filebyproc.d.1m
new file mode 100644
index 0000000..05b9414
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/filebyproc.d.1m
@@ -0,0 +1,56 @@
+.TH filebyproc.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+filebyproc.d \- snoop opens by process name. Uses DTrace.
+.SH SYNOPSIS
+.B filebyproc.d
+.SH DESCRIPTION
+filebyproc.d is a DTrace OneLiner to print file pathnames as they are
+opened, including the name of the process calling the open.
+A line will be printed regardless of whether the open is actually
+successful or not.
+
+This is useful to learn which files applications are attempting to
+open, such as config files, database files, log files, etc.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+This prints new process name and pathnames until Ctrl\-C is hit.
+# 
+.B filebyproc.d
+.PP
+.SH FIELDS
+.TP
+CPU
+The CPU that recieved the event
+.TP
+ID
+A DTrace probe ID for the event
+.TP
+FUNCTION:NAME
+The DTrace probe name for the event
+.TP
+remaining fields
+The first is the name of the process, the second is the file pathname.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+filebyproc.d will run forever until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+opensnoop(1M), dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/fspaging.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/fspaging.d.1m
new file mode 100644
index 0000000..aa94ab6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/fspaging.d.1m
@@ -0,0 +1,88 @@
+.TH fspaging.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+fspaging.d \- file system read/write and paging tracing. Uses DTrace.
+.SH SYNOPSIS
+.B fspaging.d
+.SH DESCRIPTION
+This traces file related activity: system call reads and writes,
+vnode logical read and writes (fop), vnode putpage and getpage activity,
+and disk I/O. It can be used to examine the behaviour of each I/O
+layer, from the syscall interface to what the disk is doing. Behaviour
+such as read-ahead, and max I/O size breakup can be observed.
+
+This is a verbose version of fsrw.d, as this also traces paging activity.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Trace file system read/write/paging events,
+# 
+.B fspaging.d
+.PP
+.SH FIELDS
+.TP
+Event
+traced event (see EVENTS below)
+.TP
+Device
+device, for disk I/O
+.TP
+RW
+either Read or Write
+.TP
+Size
+size of I/O in bytes
+.TP
+Offset
+offset of I/O in kilobytes
+.TP
+Path
+path to file on disk
+.PP
+.SH EVENTS
+.TP
+sc-read
+system call read
+.TP
+sc-write
+system call write
+.TP
+fop_read
+logical read
+.TP
+fop_write
+logical write
+.TP
+fop_getpage
+logical get page
+.TP
+fop_putpage
+logical put page
+.TP
+disk_io
+physical disk I/O
+.TP
+disk_ra
+physical disk I/O, read ahead
+.PP
+.SH IDEA
+Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+fspaging.d will trace until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+fsrw.d(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/fsrw.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/fsrw.d.1m
new file mode 100644
index 0000000..b8f423a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/fsrw.d.1m
@@ -0,0 +1,80 @@
+.TH fsrw.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+fsrw.d \- file system read/write event tracing. Uses DTrace.
+.SH SYNOPSIS
+.B fsrw.d
+.SH DESCRIPTION
+This traces file related activity: system call reads and writes,
+vnode logical read and writes (fop), and disk I/O. It can be used
+to examine the behaviour of each I/O layer, from the syscall
+interface to what the disk is doing. Behaviour such as read-ahead, and
+max I/O size breakup can be observed.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Trace file system read/write events,
+# 
+.B fsrw.d
+.PP
+.SH FIELDS
+.TP
+Event
+traced event (see EVENTS below)
+.TP
+Device
+device, for disk I/O
+.TP
+RW
+either Read or Write
+.TP
+Size
+size of I/O in bytes
+.TP
+Offset
+offset of I/O in kilobytes
+.TP
+Path
+path to file on disk
+.PP
+.SH EVENTS
+.TP
+sc-read
+system call read
+.TP
+sc-write
+system call write
+.TP
+fop_read
+logical read
+.TP
+fop_write
+logical write
+.TP
+disk_io
+physical disk I/O
+.TP
+disk_ra
+physical disk I/O, read ahead
+.PP
+.SH IDEA
+Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+fsrw.d will trace until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+fspaging.d(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/guess.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/guess.d.1m
new file mode 100644
index 0000000..73f4414
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/guess.d.1m
@@ -0,0 +1,37 @@
+.TH guess.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+guess.d \- guessing game. Uses DTrace.
+.SH SYNOPSIS
+.B guess.d
+.SH DESCRIPTION
+This is written to demonstrate this language versus the same program
+written in other languages.
+
+See http://www.brendangregg.com/guessinggame.html
+
+It exists in the DTraceToolkit as a curiosity, rather than something
+actually useful.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+Play the game,
+# 
+.B guess.d
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+guess.d will only exit when you win the game.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/hotkernel.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/hotkernel.1m
new file mode 100644
index 0000000..ba9f6d8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/hotkernel.1m
@@ -0,0 +1,39 @@
+.TH hotkernel 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+hotkernel - sample on-CPU kernel-level functions and modules.
+.SH SYNOPSIS
+.B hotkernel
+[\-hm]
+.SH DESCRIPTION
+This samples the on-CPU function at 1001 Hertz, for a simple yet
+effective kernel-level profiling tool for sampling exclusive function time.
+The output will identify which function is on the CPU the most - which is
+the hottest. See Notes/ALLexclusive_notes.txt for an explanation of
+exclusive time.
+.SH OS
+Solaris
+.SH STABILITY
+stable - Written using Perl and DTrace (Solaris 10 03/05)
+.SH EXAMPLES
+.TP
+Sample kernel functions,
+# 
+.B hotkernel
+.PP
+.TP
+Sample kernel modules,
+#
+.B hotkernel
+\-m
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+hotkernel will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M), hotuser(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/hotspot.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/hotspot.d.1m
new file mode 100644
index 0000000..894dde2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/hotspot.d.1m
@@ -0,0 +1,51 @@
+.TH hotspot.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+hotspot.d \- print disk event by location. Uses DTrace.
+.SH SYNOPSIS
+.B hotspot.d
+.SH DESCRIPTION
+hotspot.d is a simple DTrace script to determine if disk activity is 
+occuring in the one place - a "hotspot". This helps us understand the 
+system's usage of a disk, it does not imply that the existance or not 
+of a hotspot is good or bad (often may be good, less seeking).
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B hotspot.d
+.PP
+.SH FIELDS
+.TP
+Disk
+disk instance name
+.TP
+Major
+driver major number
+.TP
+Minor
+driver minor number
+.TP
+value
+location of disk event, megabytes
+.TP
+count
+number of events
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+hotspot.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/hotuser.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/hotuser.1m
new file mode 100644
index 0000000..b8f45a7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/hotuser.1m
@@ -0,0 +1,44 @@
+.TH hotuser 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+hotuser - sample on-CPU user-level functions and libraries.
+.SH SYNOPSIS
+.B hotuser
+[\-hl] { \-c command | \-p PID }
+.SH DESCRIPTION
+This samples the on-CPU function at 1001 Hertz, for a simple yet
+effective user-level profiling tool for sampling exclusive function time.
+The output will identify which function is on the CPU the most - which
+is the hottest. See Notes/ALLexclusive_notes.txt for an explanation of
+exclusive time.
+.SH OS
+Solaris
+.SH STABILITY
+stable - Written using Perl and DTrace (Solaris 10 03/05)
+.SH EXAMPLES
+.TP
+Sample user functions from PID 81,
+# 
+.B hotuser
+\-p 81
+.TP
+Sample user libraries from PID 81,
+#
+.B hotuser
+\-lp 81
+.TP
+Sample Xorg,
+#
+.B hotuser
+`pgrep \-n Xorg`
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+hotuser will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M), hotkernel(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/httpdstat.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/httpdstat.d.1m
new file mode 100644
index 0000000..7d26188
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/httpdstat.d.1m
@@ -0,0 +1,67 @@
+.TH httpdstat.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+httpdstat.d \- realtime httpd statistics. Uses DTrace.
+.SH SYNOPSIS
+.B httpdstat.d
+[interval [count]]
+.SH DESCRIPTION
+This prints connection statistics for "httpd" processes, such as those
+from an Apache web server.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+Print statistics every second,
+# 
+.B httpdstat.d
+.TP
+Print every 5 seconds, 6 times,
+#
+.B httpdstat.d
+5 6
+.PP
+.SH FIELDS
+.TP
+TIME
+time, string
+.TP
+NUM
+number of connections
+.TP
+GET
+number of GETs
+.TP
+POST
+number of POSTs
+.TP
+HEAD
+number of HEADs
+.TP
+TRACE
+number of TRACEs
+.PP
+.SH NOTES
+All statistics are printed as a value per interval.
+
+This version does not process subsequent operations on keepalives.
+.PP
+.SH IDEA
+Ryan Matteson
+(who first wrote a solution to this).
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+httpdstat.d will run until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/icmpstat.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/icmpstat.d.1m
new file mode 100644
index 0000000..e925aaa
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/icmpstat.d.1m
@@ -0,0 +1,47 @@
+.TH icmpstat.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+icmpstat.d \- print ICMP statistics. Uses DTrace.
+.SH SYNOPSIS
+.B icmpstat.d
+.SH DESCRIPTION
+icmpstat.d is a DTrace program to print ICMP statistics every second,
+retrieved from the MIB provider. This is a simple script to demonstrate the 
+ability to trace ICMP events.
+
+The ICMP statistics are documented in the mib2_icmp struct
+in /usr/include/inet/mib2.h; and also in the mib provider
+chapter of the DTrace Guide, found at 
+http://docs.sun.com/db/doc/817-6223.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the mib provider.
+.SH EXAMPLES
+.TP
+Print statistics every second,
+# 
+.B icmpstat.d
+.PP
+.SH FIELDS
+.TP
+STATISTIC
+ICMP statistic name
+.TP
+VALUE
+total of statistic during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+icmpstat.d will run forever until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/intbycpu.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/intbycpu.d.1m
new file mode 100644
index 0000000..985c87c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/intbycpu.d.1m
@@ -0,0 +1,48 @@
+.TH intbycpu.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+intbycpu.d \- interrupts by CPU. Uses DTrace.
+.SH SYNOPSIS
+.B intbycpu.d
+.SH DESCRIPTION
+intbycpu.d is based on a DTrace OneLiner to a report of the number of 
+interrupts by CPU.
+
+The intrstat(1M) command can be used for further analysis
+of interrputs.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sdt provider interrupt probes.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B intbycpu.d
+.PP
+.SH FIELDS
+.TP
+CPU
+This is the CPU id.
+.TP
+INTERRUPTS
+This is the number of interrputs received in the sample.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+intbycpu.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+intrstat(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/intoncpu.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/intoncpu.d.1m
new file mode 100644
index 0000000..99f680f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/intoncpu.d.1m
@@ -0,0 +1,42 @@
+.TH intoncpu.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+intoncpu.d \- print interrput on-cpu usage. Uses DTrace.
+.SH SYNOPSIS
+.B intoncpu.d
+.SH DESCRIPTION
+This prints a distribution of the on-cpu time for interrput threads.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sdt provider interrupt probes.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B intoncpu.d
+.PP
+.SH FIELDS
+.TP
+value
+Time interrupt thread was on-cpu, ns
+.TP
+count
+Number of occurrences of at least this time
+.PP
+.SH BASED ON
+/usr/demo/dtrace/intr.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "sdt Provider" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+intoncpu.d will sample until Ctrl\-C is hit.
+.SH SEE ALSO
+intrstat(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/inttimes.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/inttimes.d.1m
new file mode 100644
index 0000000..3e9ef89
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/inttimes.d.1m
@@ -0,0 +1,43 @@
+.TH inttimes.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+inttimes.d \- print interrput on-cpu time total. Uses DTrace.
+.SH SYNOPSIS
+.B inttimes.d
+.SH DESCRIPTION
+This prints the total time each driver instance has spent servicing
+interrupts.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sdt provider interrupt probes.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B inttimes.d
+.PP
+.SH FIELDS
+.TP
+DEVICE
+instance name of the device driver
+.TP
+TIME (ns)
+sum of time spent servicing interrupt (nanoseconds)
+.PP
+.SH BASED ON
+/usr/demo/dtrace/intr.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "sdt Provider" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+inttimes.d will sample until Ctrl\-C is hit.
+.SH SEE ALSO
+intrstat(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/iofile.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/iofile.d.1m
new file mode 100644
index 0000000..daead18
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/iofile.d.1m
@@ -0,0 +1,49 @@
+.TH iofile.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+iofile.d \- I/O wait time by file and process. Uses DTrace.
+.SH SYNOPSIS
+.B iofile.d
+.SH DESCRIPTION
+This prints the total I/O wait times for each filename by process.
+This can help determine why an application is performing poorly by
+identifying which file they are waiting on, and the total times.
+Both disk and NFS I/O are measured.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B iofile.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+TIME
+total wait time for disk events, us
+.TP
+FILE
+file pathname
+.PP
+.SH BASED ON
+/usr/demo/dtrace/iocpu.d
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+iofile.d will sample until Ctrl\-C is hit. 
+.SH SEE ALSO
+iosnoop(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/iofileb.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/iofileb.d.1m
new file mode 100644
index 0000000..e58776e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/iofileb.d.1m
@@ -0,0 +1,46 @@
+.TH iofileb.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+iofileb.d \- I/O bytes by file and process. Uses DTrace.
+.SH SYNOPSIS
+.B iofileb.d
+.SH DESCRIPTION
+This prints a summary of requested disk activity by pathname,
+providing totals of the I/O events in bytes. It is a companion to the
+iofile.d script - which prints in terms of I/O wait time, not bytes.
+I/O wait time is a better metric for understanding performance issues.
+Both disk and NFS I/O are measured.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B iofileb.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+KB
+kilobytes of disk I/O
+.TP
+FILE
+file pathname
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+iofileb.d will sample until Ctrl\-C is hit. 
+.SH SEE ALSO
+iofile.d(1M), iosnoop(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/iopattern.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/iopattern.1m
new file mode 100644
index 0000000..526c942
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/iopattern.1m
@@ -0,0 +1,112 @@
+.TH iopattern 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+iopattern \- print disk I/O pattern. Uses DTrace.
+.SH SYNOPSIS
+.B iopattern
+[\-v] [\-d device] [\-f filename] [\-m mount_point] [interval [count]]
+.SH DESCRIPTION
+This prints details on the I/O access pattern for the disks, such as
+percentage of events that were of a random or sequential nature.
+By default totals for all disks are printed.
+
+An event is considered random when the heads seek. This program prints
+the percentage of events that are random. The size of the seek is not
+measured - it's either random or not.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH OPTIONS
+.TP
+\-v
+print timestamp, string
+.TP
+\-d device
+instance name to snoop (eg, dad0)
+.TP
+\-f filename
+full pathname of file to snoop
+.TP
+\-m mount_point
+mountpoint for filesystem to snoop
+.SH EXAMPLES
+.TP
+Default output, print I/O summary every 1 second,
+# 
+.B iopattern
+.PP
+.TP
+Print 10 second samples,
+# 
+.B iopattern
+10
+.PP
+.TP
+Print 12 x 5 second samples,
+#
+.B iopattern
+5 12
+.PP
+.TP
+Snoop events on the root filesystem only,
+#
+.B iopattern
+\-m /
+.PP
+.SH FIELDS
+.TP
+%RAN
+percentage of events of a random nature
+.TP
+%SEQ
+percentage of events of a sequential nature
+.TP
+COUNT
+number of I/O events
+.TP
+MIN
+minimum I/O event size
+.TP
+MAX
+maximum I/O event size
+.TP
+AVG
+average I/O event size
+.TP
+KR
+total kilobytes read during sample
+.TP
+KW
+total kilobytes written during sample
+.TP
+DEVICE
+device name
+.TP
+MOUNT
+mount point
+.TP
+FILE
+filename (basename) for I/O operation
+.TP
+TIME
+timestamp, string
+.PP
+.SH IDEA
+Ryan Matteson
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+iopattern will run forever until Ctrl\-C is hit, or the
+specified count is reached.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iosnoop(1M), iotop(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/iopending.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/iopending.1m
new file mode 100644
index 0000000..fd85c93
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/iopending.1m
@@ -0,0 +1,89 @@
+.TH iopending 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+iopending \- plot number of pending disk events. Uses DTrace.
+.SH SYNOPSIS
+.B iopending
+[\-c] [\-d device] [\-f filename] [\-m mount_point] [interval [count]]
+.SH DESCRIPTION
+This samples the number of disk events that are pending and plots a
+distribution graph. By doing this the
+"serialness" or "parallelness" of disk behaviour can be distinguished.
+A high occurance of a pending value of more than 1 is an indication of
+saturation.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH OPTIONS
+.TP
+\-c
+clear screen
+.TP
+\-d device
+instance name to snoop (eg, dad0)
+.TP
+\-f filename
+full pathname of file to snoop
+.TP
+\-m mount_point
+mountpoint for filesystem to snoop
+.SH EXAMPLES
+.TP
+Default output, print I/O summary every 1 second,
+# 
+.B iopending
+.PP
+.TP
+Print 10 second samples,
+# 
+.B iopending
+10
+.PP
+.TP
+Print 12 x 5 second samples,
+#
+.B iopending
+5 12
+.PP
+.TP
+Snoop events on the root filesystem only,
+#
+.B iopending
+\-m /
+.PP
+.SH FIELDS
+.TP
+value
+number of pending events, 0 == idle
+.TP
+count
+number of samples @ 1000 Hz
+.TP
+load
+1 min load average
+.TP
+disk_r
+total disk read Kb for sample
+.TP
+disk_w
+total disk write Kb for sample
+.PP
+.SH IDEA
+Dr Rex di Bona
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+iopending will run forever until Ctrl\-C is hit, or the
+specified count is reached.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iosnoop(1M), iotop(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/iosnoop.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/iosnoop.1m
new file mode 100644
index 0000000..1a4fa02
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/iosnoop.1m
@@ -0,0 +1,167 @@
+.TH iosnoop 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+iosnoop \- snoop I/O events as they occur. Uses DTrace.
+.SH SYNOPSIS
+.B iosnoop
+[\-a|\-A|\-Deghinostv] [\-d device] [\-f filename] [\-m mount_point]
+[\-n name] [\-p PID]
+.SH DESCRIPTION
+iosnoop prints I/O events as they happen, with useful details such
+as UID, PID, block number, size, filename, etc.
+
+This is useful to determine the process responsible for 
+using the disks, as well as details on what activity the process
+is requesting. Behaviour such as random or sequential I/O can
+be observed by reading the block numbers.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH OPTIONS
+.TP
+\-a
+print all data
+.TP
+\-A
+dump all data, space delimited
+.TP
+\-D
+print time delta, us (elapsed)
+.TP
+\-e
+print device name
+.TP
+\-i
+print device instance
+.TP
+\-n
+print major and minor numbers
+.TP
+\-o
+print disk delta time, us
+.TP
+\-s
+print start time, us
+.TP
+\-t
+print completion time, us
+.TP
+\-v
+print completion time, string
+.TP
+\-d device
+instance name to snoop (eg, dad0)
+.TP
+\-f filename
+full pathname of file to snoop
+.TP
+\-m mount_point
+mountpoint for filesystem to snoop
+.TP
+\-n name
+process name
+.TP
+\-p PID
+process ID
+.PP
+.SH EXAMPLES
+.TP
+Default output, print I/O activity as it occurs,
+# 
+.B iosnoop
+.PP
+.TP
+Print human readable timestamps,
+# 
+.B iosnoop
+\-v 
+.PP
+.TP
+Print major and minor numbers,
+#
+.B iosnoop
+\-n
+.PP
+.TP
+Snoop events on the root filesystem only,
+#
+.B iosnoop
+\-m /
+.PP
+.SH FIELDS
+.TP
+UID
+User ID
+.TP
+PID
+Process ID
+.TP
+PPID
+Parent Process ID
+.TP
+COMM
+command name for the process
+.TP
+ARGS
+argument listing for the process
+.TP
+SIZE
+size of the operation, bytes
+.TP
+BLOCK
+disk block for the operation (location. relative to this filesystem.
+more useful with the -n option to print major and minor numbers)
+.TP
+STIME
+timestamp for the disk request, us
+.TP
+TIME
+timestamp for the disk completion, us
+.TP
+DELTA
+elapsed time from request to completion, us (this is the elapsed 
+time from the disk request (strategy) to the disk completion (iodone))
+.TP
+DTIME
+time for disk to complete request, us (this is the time for the 
+disk to complete that event since it's last event (time between iodones),
+or, the time to the strategy if the disk had been idle)
+.TP
+STRTIME
+timestamp for the disk completion, string
+.TP
+DEVICE
+device name
+.TP
+INS
+device instance number
+.TP
+D
+direction, Read or Write
+.TP
+MOUNT
+mount point
+.TP
+FILE
+filename (basename) for I/O operation
+.PP
+.SH NOTES
+When filtering on PID or process name, be aware that poor disk event
+times may be due to events that have been filtered away, for example
+another process that may be seeking the disk heads elsewhere.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+iosnoop will run forever until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iotop(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/iotop.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/iotop.1m
new file mode 100644
index 0000000..dcb117a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/iotop.1m
@@ -0,0 +1,154 @@
+.TH iotop 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+iotop \- display top disk I/O events by process. Uses DTrace.
+.SH SYNOPSIS
+.B iotop
+[\-C] [\-D|\-o|\-P] [\-j|\-Z] [\-d device] [\-f filename]
+[\-m mount_point] [\-t top] [interval [count]]
+.SH DESCRIPTION
+iotop tracks disk I/O by process, and prints a summary report that
+is refreshed every interval.
+
+This is measuring disk events that have made it past system caches.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH OPTIONS
+.TP
+\-C
+don't clear the screen
+.TP
+\-D
+print delta times - elapsed, us
+.TP
+\-j
+print project ID
+.TP
+\-o
+print disk delta times, us
+.TP
+\-P
+print %I/O (disk delta times)
+.TP
+\-Z
+print zone ID
+.TP
+\-d device
+instance name to snoop (eg, dad0)
+.TP
+\-f filename
+full pathname of file to snoop
+.TP
+\-m mount_point
+mountpoint for filesystem to snoop
+.TP
+\-t top
+print top number only
+.PP
+.SH EXAMPLES
+.TP
+Default output, print summary every 5 seconds
+# 
+.B iotop
+.PP
+.TP
+One second samples,
+# 
+.B iotop
+1
+.PP
+.TP
+print %I/O (time based),
+#
+.B iotop
+\-P
+.PP
+.TP
+Snoop events on the root filesystem only,
+#
+.B iotop
+\-m /
+.TP
+Print top 20 lines only,
+#
+.B iotop
+\-t 20
+.TP
+Print 12 x 5 second samples, scrolling,
+#
+.B iotop
+\-C 5 12
+.PP
+.SH FIELDS
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+PPID
+parent process ID
+.TP
+PROJ
+project ID
+.TP
+ZONE
+zone ID
+.TP
+CMD
+command name for the process
+.TP
+DEVICE
+device name
+.TP
+MAJ
+device major number
+.TP
+MIN
+device minor number
+.TP
+D
+direction, Read or Write
+.TP
+BYTES
+total size of operations, bytes
+.TP
+ELAPSED
+total elapsed times from request to completion, us (this is the elapsed 
+time from the disk request (strategy) to the disk completion (iodone))
+.TP
+DISKTIME
+total times for disk to complete request, us (this is the time for the 
+disk to complete that event since it's last event (time between iodones),
+or, the time to the strategy if the disk had been idle)
+.TP
+%I/O
+percent disk I/O, based on time (DISKTIME)
+.TP
+load
+1 minute load average
+.TP
+disk_r
+total disk read Kb for sample
+.TP
+disk_w
+total disk write Kb for sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+iotop will run forever until Ctrl\-C is hit, or the specified
+interval is reached.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iosnoop(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_calldist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_calldist.d.1m
new file mode 100644
index 0000000..a074bbc
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_calldist.d.1m
@@ -0,0 +1,48 @@
+.TH j_calldist.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_calldist.d - measure Java elapsed times for different types of operation.
+.SH SYNOPSIS
+.B j_calldist.d
+[top]	
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0). Method calls are only visible when using the
+flag "+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile
+
+The "top" optional argument will truncate the output for each report
+section to that many lines, with a default of 10.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_calldist.d
+.PP
+.SH FIELDS
+.TP
+1
+Process ID
+.TP
+2
+Type of call (method/gc)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_calldist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_calls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_calls.d.1m
new file mode 100644
index 0000000..5bdaaa3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_calls.d.1m
@@ -0,0 +1,57 @@
+.TH j_calls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_calls.d - count Java calls (method/...) using DTrace.
+.SH SYNOPSIS
+.B j_calls.d
+
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0). Method calls and object allocation are only
+visible when using the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+
+TYPEs:
+cload		class load
+method		method call
+mcompile	method compile
+mload		compiled method load
+oalloc		object alloc
+thread		thread start
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_calls.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (see below)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_calls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_calltime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_calltime.d.1m
new file mode 100644
index 0000000..ec16dfc
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_calltime.d.1m
@@ -0,0 +1,51 @@
+.TH j_calltime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_calltime.d - measure Java elapsed times for different types of operation.
+.SH SYNOPSIS
+.B j_calltime.d
+[top]	
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0). Method calls are only visible when using the
+flag "+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile
+
+The "top" optional argument will truncate the output for each report
+section to that many lines, with a default of 10.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_calltime.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (method/gc/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total elapsed time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_calltime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_classflow.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_classflow.d.1m
new file mode 100644
index 0000000..3d360a2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_classflow.d.1m
@@ -0,0 +1,63 @@
+.TH j_classflow.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_classflow.d - trace a Java class method flow using DTrace.
+.SH SYNOPSIS
+.B j_classflow.d
+classname	
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+
+This watches Java method entries and returns, and indents child
+method calls.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_classflow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+PID
+Process ID
+.TP
+CLASS.METHOD
+Java class and method name
+.SH LEGEND
+.TP
+\->
+method entry
+.TP
+<\-
+method return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+Changes in TID will appear to shuffle output, as we change from one thread
+depth to the next. See Docs/Notes/ALLjavaflow.txt for additional notes.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_classflow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_cpudist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_cpudist.d.1m
new file mode 100644
index 0000000..17443d45
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_cpudist.d.1m
@@ -0,0 +1,48 @@
+.TH j_cpudist.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_cpudist.d - measure Java on-CPU times for different types of operation.
+.SH SYNOPSIS
+.B j_cpudist.d
+[top]	
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0). Method calls are only visible when using the
+flag "+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile
+
+The "top" optional argument will truncate the output for each report
+section to that many lines, with a default of 10.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_cpudist.d
+.PP
+.SH FIELDS
+.TP
+1
+Process ID
+.TP
+2
+Type of call (method/gc)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_cpudist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_cputime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_cputime.d.1m
new file mode 100644
index 0000000..2a1eb6b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_cputime.d.1m
@@ -0,0 +1,51 @@
+.TH j_cputime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_cputime.d - measure Java on-CPU times for different types of operation.
+.SH SYNOPSIS
+.B j_cputime.d
+[top]	
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0). Method calls are only visible when using the
+flag "+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile
+
+The "top" optional argument will truncate the output for each report
+section to that many lines, with a default of 10.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_cputime.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (method/gc/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total on-CPU time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_cputime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_events.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_events.d.1m
new file mode 100644
index 0000000..8f61d8f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_events.d.1m
@@ -0,0 +1,46 @@
+.TH j_events.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_events.d - count Java events using DTrace.
+.SH SYNOPSIS
+.B j_events.d
+
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0). Some events such as method calls are only
+visible when using the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_events.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+EVENT
+Event name (DTrace probe name)
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_events.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_flow.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_flow.d.1m
new file mode 100644
index 0000000..8130d02
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_flow.d.1m
@@ -0,0 +1,63 @@
+.TH j_flow.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_flow.d - snoop Java execution showing method flow using DTrace.
+.SH SYNOPSIS
+.B j_flow.d
+
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+
+This watches Java method entries and returns, and indents child
+method calls.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_flow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+PID
+Process ID
+.TP
+CLASS.METHOD
+Java class and method name
+.SH LEGEND
+.TP
+\->
+method entry
+.TP
+<\-
+method return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+Changes in TID will appear to shuffle output, as we change from one thread
+depth to the next. See Docs/Notes/ALLjavaflow.txt for additional notes.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_flow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_flowtime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_flowtime.d.1m
new file mode 100644
index 0000000..29f6f83
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_flowtime.d.1m
@@ -0,0 +1,69 @@
+.TH j_flowtime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_flowtime.d - snoop Java execution with method flow and delta times.
+.SH SYNOPSIS
+.B j_flowtime.d
+
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+
+This watches Java method entries and returns, and indents child
+method calls.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_flowtime.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+TID
+Thread ID
+.TP
+TIME(us)
+Time since boot (us)
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+CLASS.METHOD
+Java class and method name
+.SH LEGEND
+.TP
+\->
+method entry
+.TP
+<\-
+method return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+Changes in TID will appear to shuffle output, as we change from one thread
+depth to the next. See Docs/Notes/ALLjavaflow.txt for additional notes.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_flowtime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_methodcalls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_methodcalls.d.1m
new file mode 100644
index 0000000..767013a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_methodcalls.d.1m
@@ -0,0 +1,45 @@
+.TH j_methodcalls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_methodcalls.d - count Java method calls DTrace.
+.SH SYNOPSIS
+.B j_methodcalls.d
+
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_methodcalls.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+COUNT
+Number of calls during sample
+.TP
+CLASS.METHOD
+Java class and method name
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_methodcalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_objnew.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_objnew.d.1m
new file mode 100644
index 0000000..ffd4896
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_objnew.d.1m
@@ -0,0 +1,45 @@
+.TH j_objnew.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_objnew.d - report Java object allocation using DTrace.
+.SH SYNOPSIS
+.B j_objnew.d
+
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_objnew.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+OBJS
+Number of objects created
+.TP
+CLASS.METHOD
+Java class and method name
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_objnew.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_package.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_package.d.1m
new file mode 100644
index 0000000..9ebd56b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_package.d.1m
@@ -0,0 +1,44 @@
+.TH j_package.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_package.d - count Java class loads by package using DTrace.
+.SH SYNOPSIS
+.B j_package.d
+
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0).
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_package.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+LOADS
+Class loads during trace
+.TP
+PACKAGE
+Package name from class
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_package.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_profile.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_profile.d.1m
new file mode 100644
index 0000000..e6b06fb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_profile.d.1m
@@ -0,0 +1,52 @@
+.TH j_profile.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_profile.d - sample stack traces with Java translations using DTrace.
+.SH SYNOPSIS
+.SH DESCRIPTION
+This samples stack traces for the process specified. This stack trace
+will cross the JVM and system libraries, and insert translations for Java
+stack frames where appropriate. This is best explained with an example
+stack frame output,
+
+Func_loop.func_c()V
+Func_loop.func_b()V
+Func_loop.func_a()V
+Func_loop.main([Ljava/lang/String;)V
+StubRoutines (1)
+libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHan
+libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmetho
+libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJ
+libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_j
+libjvm.so`jni_CallStaticVoidMethod+0x15d
+java`JavaMain+0xd30
+libc.so.1`_thr_setup+0x52
+libc.so.1`_lwp_start
+101
+
+The lines at the top are Java frames, followed by the JVM (libjvm.so).
+The JVM symbols may be translated by passing the output through c++filt.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_profile.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_profile.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_stat.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_stat.d.1m
new file mode 100644
index 0000000..612a680
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_stat.d.1m
@@ -0,0 +1,68 @@
+.TH j_stat.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_stat.d - Java operation stats using DTrace.
+.SH SYNOPSIS
+.B j_stat.d
+[interval [count]]
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0). Method calls and object allocation are only
+visible when using the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+
+The numbers are counts for the interval specified. The default interval
+is 1 second.
+
+If you see a count in "EXECS" but not in the other columns, then your
+Java software is probably not running with the DTrace hotspot provider.
+
+If you see counts in "CLOAD" but not in "METHODS", then you Java
+software probably isn't running with "+ExtendedDTraceProbes".
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_stat.d
+.PP
+.SH FIELDS
+.TP
+EXEC/s
+Java programs executed per second, including
+those without Java provider support
+.TP
+METHOD/s
+Methods called, per second
+.TP
+OBJNEW/s
+Objects created, per second
+.TP
+CLOAD/s
+Class loads, per second
+.TP
+EXCP/s
+Exceptions raised, per second
+.TP
+RESC/s
+Rescues, per second
+.TP
+GC/s
+Garbage collects, per second
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_stat.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_syscalls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_syscalls.d.1m
new file mode 100644
index 0000000..faa0d15
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_syscalls.d.1m
@@ -0,0 +1,48 @@
+.TH j_syscalls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_syscalls.d - count Java methods and syscalls using DTrace.
+.SH SYNOPSIS
+.B j_syscalls.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This traces Java methods if the hotspot provider exists (1.6.0) and
+the flag "+ExtendedDTraceProbes" is used. eg,
+java -XX:+ExtendedDTraceProbes classfile
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_syscalls.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (method/syscall)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_syscalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_syscolors.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_syscolors.d.1m
new file mode 100644
index 0000000..0f20516
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_syscolors.d.1m
@@ -0,0 +1,65 @@
+.TH j_syscolors.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_syscolors.d - trace Java method flow plus syscalls, in color.
+.SH SYNOPSIS
+.B j_syscolors.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This traces Java methods if the hotspot provider exists (1.6.0) and
+the flag "+ExtendedDTraceProbes" is used. eg,
+java -XX:+ExtendedDTraceProbes classfile
+
+This watches Java method entries and returns, and indents child
+method calls.
+
+If the flow appears to jump, check the TID column - the JVM may have
+switched to another thread.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_syscolors.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+TID
+Thread ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+TYPE
+Type of call (func/syscall)
+.TP
+NAME
+Java method or syscall name
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+Changes in TID will appear to shuffle output, as we change from one thread
+depth to the next. See Docs/Notes/ALLjavaflow.txt for additional notes.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_syscolors.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_thread.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_thread.d.1m
new file mode 100644
index 0000000..36a34f5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_thread.d.1m
@@ -0,0 +1,54 @@
+.TH j_thread.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_thread.d - snoop Java thread execution using DTrace.
+.SH SYNOPSIS
+.B j_thread.d
+
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0).
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_thread.d
+.PP
+.SH FIELDS
+.TP
+TIME
+Time string
+.TP
+PID
+Process ID
+.TP
+TID
+Thread ID
+.TP
+THREAD
+Thread name
+.SH LEGEND
+.TP
+=>
+thread start
+.TP
+<=
+thread end
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_thread.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/j_who.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/j_who.d.1m
new file mode 100644
index 0000000..201f9de
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/j_who.d.1m
@@ -0,0 +1,51 @@
+.TH j_who.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+j_who.d - trace Java calls by process using DTrace.
+.SH SYNOPSIS
+.B j_who.d
+
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0).
+
+The argument list is truncated at 55 characters (up to 80 is easily
+available). To easily read the full argument list, use other system tools;
+on Solaris use "pargs PID".
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_who.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID of Java
+.TP
+UID
+User ID of the owner
+.TP
+CALLS
+Number of calls made (a measure of activity)
+.TP
+ARGS
+Process name and arguments
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_who.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/js_calldist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/js_calldist.d.1m
new file mode 100644
index 0000000..37875b2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/js_calldist.d.1m
@@ -0,0 +1,46 @@
+.TH js_calldist.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+js_calldist.d - measure JavaScript elapsed times for types of operation.
+.SH SYNOPSIS
+.B js_calldist.d
+
+.SH DESCRIPTION
+This traces JavaScript activity from all browsers running on the system with
+JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_calldist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the JavaScript program
+.TP
+2
+Type of call (func/obj-new)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_calldist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/js_calls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/js_calls.d.1m
new file mode 100644
index 0000000..a381427
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/js_calls.d.1m
@@ -0,0 +1,49 @@
+.TH js_calls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+js_calls.d - count JavaScript calls using DTrace.
+.SH SYNOPSIS
+.B js_calls.d
+
+.SH DESCRIPTION
+This traces activity from all browsers on the system that are
+running with JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_calls.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the JavaScript program
+.TP
+TYPE
+Type of call (func/obj-new/...)
+.TP
+NAME
+Descriptive name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_calls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/js_calltime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/js_calltime.d.1m
new file mode 100644
index 0000000..115c9d9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/js_calltime.d.1m
@@ -0,0 +1,49 @@
+.TH js_calltime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+js_calltime.d - measure JavaScript elapsed times for types of operation.
+.SH SYNOPSIS
+.B js_calltime.d
+
+.SH DESCRIPTION
+This traces JavaScript activity from all browsers running on the system with
+JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_calltime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the JavaScript program
+.TP
+TYPE
+Type of call (func/obj-new/gc/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total elapsed time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_calltime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/js_cpudist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/js_cpudist.d.1m
new file mode 100644
index 0000000..a5a1243
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/js_cpudist.d.1m
@@ -0,0 +1,46 @@
+.TH js_cpudist.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+js_cpudist.d - measure JavaScript on-CPU times for types of operation.
+.SH SYNOPSIS
+.B js_cpudist.d
+
+.SH DESCRIPTION
+This traces JavaScript activity from all browsers running on the system with
+JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_cpudist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the JavaScript program
+.TP
+2
+Type of call (func/obj-new)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_cpudist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/js_cputime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/js_cputime.d.1m
new file mode 100644
index 0000000..63fbeb1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/js_cputime.d.1m
@@ -0,0 +1,49 @@
+.TH js_cputime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+js_cputime.d - measure JavaScript on-CPU times for types of operation.
+.SH SYNOPSIS
+.B js_cputime.d
+
+.SH DESCRIPTION
+This traces JavaScript activity from all browsers running on the system with
+JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_cputime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the JavaScript program
+.TP
+TYPE
+Type of call (func/obj-new/gc/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total on-CPU time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_cputime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/js_execs.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/js_execs.d.1m
new file mode 100644
index 0000000..c06ca89
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/js_execs.d.1m
@@ -0,0 +1,46 @@
+.TH js_execs.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+js_execs.d - JavaScript execute snoop using DTrace.
+.SH SYNOPSIS
+.B js_execs.d
+
+.SH DESCRIPTION
+This traces activity from all browsers on the system that are
+running with JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_execs.d
+.PP
+.SH FIELDS
+.TP
+TIME
+Time of event
+.TP
+FILE
+Filename of the JavaScript program
+.TP
+LINENO
+Line number in filename
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_execs.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/js_flow.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/js_flow.d.1m
new file mode 100644
index 0000000..3fb2694
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/js_flow.d.1m
@@ -0,0 +1,59 @@
+.TH js_flow.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+js_flow.d - snoop JavaScript execution showing function flow using DTrace.
+.SH SYNOPSIS
+.B js_flow.d
+
+.SH DESCRIPTION
+This traces activity from all browsers on the system that are running
+with JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_flow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this function belongs to
+.TP
+FUNC
+Function name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_flow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/js_flowinfo.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/js_flowinfo.d.1m
new file mode 100644
index 0000000..cd7003b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/js_flowinfo.d.1m
@@ -0,0 +1,68 @@
+.TH js_flowinfo.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+js_flowinfo.d - JavaScript function flow with info using DTrace.
+.SH SYNOPSIS
+.B js_flowinfo.d
+
+.SH DESCRIPTION
+This traces activity from all browsers on the system that are running
+with JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_flowinfo.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the JavScript program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (func)
+.TP
+FUNC
+Function name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_flowinfo.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/js_flowtime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/js_flowtime.d.1m
new file mode 100644
index 0000000..7c6cea3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/js_flowtime.d.1m
@@ -0,0 +1,62 @@
+.TH js_flowtime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+js_flowtime.d - JavaScript function flow with delta times using DTrace.
+.SH SYNOPSIS
+.B js_flowtime.d
+
+.SH DESCRIPTION
+This traces activity from all browsers on the system that are running
+with JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_flowtime.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this function belongs to
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FUNC
+Function name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_flowtime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/js_objcpu.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/js_objcpu.d.1m
new file mode 100644
index 0000000..133ae47
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/js_objcpu.d.1m
@@ -0,0 +1,36 @@
+.TH js_objcpu.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+js_objcpu.d - measure JavaScript object creation on-CPU time using DTrace.
+.SH SYNOPSIS
+.B js_objcpu.d
+
+.SH DESCRIPTION
+This traces JavaScript activity from all browsers running on the system
+with JavaScript provider support.
+
+Class names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_objcpu.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_objcpu.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/js_objgc.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/js_objgc.d.1m
new file mode 100644
index 0000000..df40a22
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/js_objgc.d.1m
@@ -0,0 +1,60 @@
+.TH js_objgc.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+js_objgc.d - trace JavaScript Object GC using DTrace.
+.SH SYNOPSIS
+.B js_objgc.d
+
+.SH DESCRIPTION
+This traces JavaScript activity from all running browers on the system
+which support the JavaScript DTrace provider.
+
+This script provides information on which objects are not being garbage
+collected, an issue which causes the browser to steadily leak memory.
+We trace object creation (+1) and destruction (-1), and provide a
+summary each second of the running tally of the object class and
+originating filename. If over the period of several minutes an object
+type is still steadily increasing, then that would be of interest.
+Be patient, depending on the rate of object creation it can take over
+ten minutes for garbage collect to kick in.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_objgc.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename that contained the function
+.TP
+CLASS
+Class to which this new object belongs
+.TP
+TOTAL
+Object entropy (positive == uncollected)
+.SH NOTES
+
+\- it is possible that you will see negative entropy. That happens
+when you begin tracing after some objects have already been created,
+and then trace their destruction.
+\- there are other Things that GC handles, other than Objects; extra
+probes can be added to trace them, should the need arise.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_objgc.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/js_objnew.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/js_objnew.d.1m
new file mode 100644
index 0000000..c1d7cff
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/js_objnew.d.1m
@@ -0,0 +1,46 @@
+.TH js_objnew.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+js_objnew.d - count JavaScript object creation using DTrace.
+.SH SYNOPSIS
+.B js_objnew.d
+
+.SH DESCRIPTION
+This traces JavaScript activity from all browsers running on the system
+with JavaScript provider support.
+
+Filename and class names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_objnew.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the JavaScript program
+.TP
+CLASS
+Class of new object
+.TP
+COUNT
+Number of object creations during tracing
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_objnew.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/js_stat.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/js_stat.d.1m
new file mode 100644
index 0000000..e58289e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/js_stat.d.1m
@@ -0,0 +1,52 @@
+.TH js_stat.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+js_stat.d - JavaScript operation stats using DTrace.
+.SH SYNOPSIS
+.B js_stat.d
+[interval [count]]
+.SH DESCRIPTION
+This traces activity from all browsers on the system that are
+running with JavaScript provider support.
+
+The numbers are counts for the interval specified. The default interval
+is 1 second.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_stat.d
+.PP
+.SH FIELDS
+.TP
+EXEC/s
+JavaScript programs executed per second
+.TP
+FUNCS/s
+Functions called, per second
+.TP
+OBJNEW/s
+Objects created, per second
+.TP
+OBJFRE/s
+Objects freed (finalize), per second
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_stat.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/js_who.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/js_who.d.1m
new file mode 100644
index 0000000..46a4259
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/js_who.d.1m
@@ -0,0 +1,49 @@
+.TH js_who.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+js_who.d - trace JavaScript function execution by process using DTrace.
+.SH SYNOPSIS
+.B js_who.d
+
+.SH DESCRIPTION
+This traces JavaScript activity from all browsers on the system that are
+running with JavaScript provider support.
+
+Filenames are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_who.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID of JavaScript
+.TP
+UID
+User ID of the owner
+.TP
+FUNCS
+Number of function calls
+.TP
+FILE
+Pathname of the JavaScript program
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_who.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/kill.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/kill.d.1m
new file mode 100644
index 0000000..e1a4396
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/kill.d.1m
@@ -0,0 +1,53 @@
+.TH kill.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+kill.d \- snoop process signals as they occur. Uses DTrace.
+.SH SYNOPSIS
+.B kill.d
+.SH DESCRIPTION
+kill.d is a simple DTrace program to print details of process 
+signals as they are sent, such as the PID source and destination, 
+signal number and result.
+
+This program can be used to determine which process is sending
+signals to which other process.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+Default output, print process signals as they are sent.
+# 
+.B kill.d
+.PP
+.SH FIELDS
+.TP
+FROM
+source PID
+.TP
+COMMAND
+source command name
+.TP
+TO
+destination PID
+.TP
+SIG
+destination signal ("9" for a kill -9)
+.TP
+RESULT
+result of signal (-1 is for failure)
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+kill.d will run forever until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/kstat_types.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/kstat_types.d.1m
new file mode 100644
index 0000000..771ca0f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/kstat_types.d.1m
@@ -0,0 +1,50 @@
+.TH kstat_types.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+kstat_types.d \- Trace kstat reads with type info. Uses DTrace.
+.SH SYNOPSIS
+.B kstat_types.d
+.SH DESCRIPTION
+kstat is the Kernel Statistics framework, which is used by tools
+such as vmstat, iostat, mpstat and sar. Try running vmstat while
+kstat_types.d is tracing - you should see details of the kstat
+reads performed.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Trace kstat reads as they occur,
+# 
+.B kstat_types.d
+.PP
+.SH FIELDS
+.TP
+CMD
+command name
+.TP
+CLASS
+kstat class (ks_class)
+.TP
+TYPE
+kstat type as a string (ks_type)
+.TP
+MOD:INS:NAME
+kstat module:instance:name
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+kstat_types.d will trace until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), kstat(1M), kstat(3KSTAT)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/lastwords.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/lastwords.1m
new file mode 100644
index 0000000..9c386e5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/lastwords.1m
@@ -0,0 +1,56 @@
+.TH lastwords 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+lastwords \- print syscalls before exit. Uses DTrace.
+.SH SYNOPSIS
+.B lastwords command
+.SH DESCRIPTION
+This prints the last few system calls for processes matching
+the given name, when they exit. This makes use of a ring buffer
+so that the impact on the system is minimised.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall and proc providers.
+.SH EXAMPLES
+.TP
+Catch last few syscalls for dying netscape processes,
+# 
+.B lastwords netscape
+.PP
+.SH FIELDS
+.TP
+TIME
+time of syscall return, ns
+.TP
+PID
+process ID
+.TP
+EXEC
+process name (execname)
+.TP
+SYSCALL
+system call
+.TP
+RETURN
+return value for the system call
+.TP
+ERR
+errno for the system call
+.PP
+.SH BASED ON
+/usr/demo/dtrace/ring.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "Buffers and Buffering" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+lastwords will sample until a command with that name exits. 
+.SH SEE ALSO
+dtruss(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/loads.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/loads.d.1m
new file mode 100644
index 0000000..77a2c97
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/loads.d.1m
@@ -0,0 +1,38 @@
+.TH loads.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+loads.d \- print load averages. Uses DTrace.
+.SH SYNOPSIS
+.B loads.d
+.SH DESCRIPTION
+These are the same load averages that the "uptime" command prints.
+The purpose of this script is to demonstrate fetching these values
+from the DTrace language.
+
+The first field is the 1 minute average, the second is the 5 minute,
+and the third is the 15 minute average. The value represents the average
+number of runnable threads in the system, a value higher than your
+CPU (core/hwthread) count may be a sign of CPU saturation.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - uses kernel symbols, which may change for a future version
+of this OS.
+.SH EXAMPLES
+.TP
+Print load averages,
+# 
+.B loads.d
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+uptime(1), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/lockbydist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/lockbydist.d.1m
new file mode 100644
index 0000000..68e29f2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/lockbydist.d.1m
@@ -0,0 +1,54 @@
+.TH lockbydist.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+lockbydist.d \- lock distrib. by process name. Uses DTrace.
+.SH SYNOPSIS
+.B lockbydist.d
+.SH DESCRIPTION
+lockbydist.d is a DTrace OneLiner to a report the time threads have
+spent blocked on adaptive mutexes, by process name. 
+
+A distribution is printed to illustrate the number of blocks at 
+different lengths in time. This helps us identify if there are many
+short blocks, or fewer large blocks.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the lockstat provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B lockbydist.d
+.PP
+.SH FIELDS
+.TP
+process name
+The process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+value
+The blocked time in nanoseconds
+.TP
+count
+The number of occurrences that were at least this size 
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+lockbydist.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+lockstat(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/lockbyproc.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/lockbyproc.d.1m
new file mode 100644
index 0000000..a95b789
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/lockbyproc.d.1m
@@ -0,0 +1,47 @@
+.TH lockbyproc.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+lockbyproc.d \- lock time by process name. Uses DTrace.
+.SH SYNOPSIS
+.B lockbyproc.d
+.SH DESCRIPTION
+lockbyproc.d is a DTrace OneLiner to a report the total time threads
+have spent blocked on adaptive mutexes, by process name.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the lockstat provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B lockbyproc.d
+.PP
+.SH FIELDS
+.TP
+first field
+This is the process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+second field
+This is the total length of time blocked, in nanoseconds.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+lockbyproc.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+lockstat(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/minfbypid.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/minfbypid.d.1m
new file mode 100644
index 0000000..092c6ec
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/minfbypid.d.1m
@@ -0,0 +1,46 @@
+.TH minfbypid.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+minfbypid.d \- minor faults by process name. Uses DTrace.
+.SH SYNOPSIS
+.B minfbypid.d
+.SH DESCRIPTION
+minfbypid.d is a DTrace OneLiner to a report the number of minor
+faults by process name.
+
+This is based on a script from DExplorer.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the vminfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B minfbypid.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+MINFAULTS
+number of minor faults in this sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+minfbypid.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/minfbyproc.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/minfbyproc.d.1m
new file mode 100644
index 0000000..134f22d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/minfbyproc.d.1m
@@ -0,0 +1,47 @@
+.TH minfbyproc.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+minfbyproc.d \- minor faults by process name. Uses DTrace.
+.SH SYNOPSIS
+.B minfbyproc.d
+.SH DESCRIPTION
+minfbyproc.d is a DTrace OneLiner to a report the number of minor
+faults by process name.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the vminfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B minfbyproc.d
+.PP
+.SH FIELDS
+.TP
+first field
+The process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+second field
+The number minor faults
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+minfbyproc.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/mmapfiles.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/mmapfiles.d.1m
new file mode 100644
index 0000000..a3997a3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/mmapfiles.d.1m
@@ -0,0 +1,42 @@
+.TH mmapfiles.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+mmapfiles.d \- mmap'd files by process. Uses DTrace.
+.SH SYNOPSIS
+.B mmapfiles.d
+.SH DESCRIPTION
+This prints statistics on the pathnames that were mmap'd by processes.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B mmapfiles.d
+.PP
+.SH FIELDS
+.TP
+MMAPS
+number of mmaps
+.TP
+CMD
+process name
+.TP
+PATHNAME
+pathname of mmap'd file
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+mmapfiles.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/modcalls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/modcalls.d.1m
new file mode 100644
index 0000000..2b93506
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/modcalls.d.1m
@@ -0,0 +1,50 @@
+.TH modcalls.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+modcalls.d \- kernel function calls by module. Uses DTrace.
+.SH SYNOPSIS
+.B modcalls.d
+.SH DESCRIPTION
+modcalls.d is a DTrace OneLiner to a report of the number of 
+kernel function calls by module.
+
+This script may be useful to determine whether drivers are "thinking" when
+troubleshooting driver issues.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Any
+.SH STABILITY
+stable - while this script uses the unstable fbt provider, it does so
+in a stable way.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B modcalls.d
+.PP
+.SH FIELDS
+.TP
+first field
+This is the module name, or kernel driver name. if a name is
+unfamiliar to you there may be a man page to explain what it is.
+.TP
+second field
+This is the number of function calls by this module.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+modcalls.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/newproc.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/newproc.d.1m
new file mode 100644
index 0000000..0ea90b8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/newproc.d.1m
@@ -0,0 +1,54 @@
+.TH newproc.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+newproc.d \- snoop new processes. Uses DTrace.
+.SH SYNOPSIS
+.B newproc.d
+.SH DESCRIPTION
+newproc.d is a DTrace OneLiner to snoop new processes as they are run.
+The argument listing is printed.
+
+This is useful to identify short lived processes that are usually
+difficult to spot using traditional tools.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the proc provider.
+.SH EXAMPLES
+.TP
+This prints new processes until Ctrl\-C is hit.
+# 
+.B newproc.d
+.PP
+.SH FIELDS
+.TP
+CPU
+The CPU that recieved the event
+.TP
+ID
+A DTrace probe ID for the event
+.TP
+FUNCTION:NAME
+The DTrace probe name for the event
+.TP
+remaining fields
+These contains the argument listing for the new process
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+newproc.d will run forever until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+execsnoop(1M), dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/nfswizard.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/nfswizard.d.1m
new file mode 100644
index 0000000..34c4fb4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/nfswizard.d.1m
@@ -0,0 +1,36 @@
+.TH nfswizard.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+nfswizard.d \- nfs client activity wizard. Uses DTrace.
+.SH SYNOPSIS
+.B nfswizard.d
+.SH DESCRIPTION
+This examines activity caused by NFS client processes on the same server
+that you are running this script on. A detailed report is generated
+to explain various details of NFS client activity, including response
+times and file access.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.PP
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH EXAMPLES
+.TP
+Sample NFS client activity, then print a report after Ctrl\-C,
+# 
+.B nfswizard.d
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+nfswizard.d will sample activity until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/opensnoop.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/opensnoop.1m
new file mode 100644
index 0000000..1bc9c36
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/opensnoop.1m
@@ -0,0 +1,139 @@
+.TH opensnoop 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+opensnoop \- snoop file opens as they occur. Uses DTrace.
+.SH SYNOPSIS
+.B opensnoop
+[\-a|\-A|\-ceghsvxZ] [\-f pathname] [\-n name] [\-p PID]
+.SH DESCRIPTION
+opensnoop tracks file opens. As a process issues a file open, details
+such as UID, PID and pathname are printed out. 
+
+The returned file descriptor is printed,
+a value of -1 indicates an error. This can be useful
+for troubleshooting to determine if appliacions are attempting to
+open files that do not exist. 
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH OPTIONS
+.TP
+\-a
+print all data
+.TP
+\-A
+dump all data, space delimited
+.TP
+\-c
+print current working directory of process
+.TP
+\-e
+print errno value
+.TP
+\-g
+print full command arguments
+.TP
+\-s
+print start time, us
+.TP
+\-v
+print start time, string
+.TP
+\-x
+only print failed opens
+.TP
+\-Z
+print zonename
+.TP
+\-f pathname
+file pathname to snoop
+.TP
+\-n name
+process name to snoop
+.TP
+\-p PID
+process ID to snoop
+.PP
+.SH EXAMPLES
+.TP
+Default output, print file opens by process as they occur,
+# 
+.B opensnoop
+.PP
+.TP
+Print human readable timestamps,
+# 
+.B opensnoop
+\-v 
+.PP
+.TP
+See error codes,
+#
+.B opensnoop
+\-e
+.PP
+.TP
+Snoop this file only,
+#
+.B opensnoop
+\-f /etc/passwd
+.PP
+.SH FIELDS
+.TP
+ZONE
+Zone name
+.TP
+UID
+User ID
+.TP
+PID
+Process ID
+.TP
+PPID
+Parent Process ID
+.TP
+FD
+File Descriptor (-1 is error)
+.TP
+ERR
+errno value (see /usr/include/sys/errno.h)
+.TP
+CWD
+current working directory of process
+.TP
+PATH
+pathname for file open
+.TP
+COMM
+command name for the process
+.TP
+ARGS
+argument listing for the process
+.TP
+TIME
+timestamp for the open event, us
+.TP
+STRTIME
+timestamp for the open event, string
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+opensnoop will run forever until Ctrl\-C is hit. 
+.SH BUGS
+occasionally the pathname for the file open cannot be read
+and the following error will be seen,
+
+dtrace: error on enabled probe ID 6 (...): invalid address
+
+this is normal behaviour.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pathopens.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pathopens.d.1m
new file mode 100644
index 0000000..8a09849
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pathopens.d.1m
@@ -0,0 +1,38 @@
+.TH pathopens.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pathopens.d \- full pathnames opened ok count. Uses DTrace.
+.SH SYNOPSIS
+.B pathopens.d
+.SH DESCRIPTION
+This program prints a count of the number of times files have been
+successfully opened. This is somewhat special in that the full pathname
+is calculated, even if the file open referred to a relative pathname.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B pathopens.d
+.PP
+.SH FIELDS
+.TP
+PATHNAME
+full pathname
+.TP
+COUNT
+number of successful opens
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+pathopens.d will sample until Ctrl\-C is hit.
+.SH SEE ALSO
+opensnoop(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pfilestat.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pfilestat.1m
new file mode 100644
index 0000000..6e65d10
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pfilestat.1m
@@ -0,0 +1,87 @@
+.TH pfilestat 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pfilestat \- show I/O latency break down by FD. Uses DTrace.
+.SH SYNOPSIS
+.B pfilestat [\-r|\-w] pid
+.SH DESCRIPTION
+This prints I/O statistics for each file descriptor within a process.
+In particular, the time break down during read() and write() events is
+measured.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH OPTIONS
+.TP
+\-r
+reads only
+.TP
+\-w
+writes only
+.TP
+pid
+process ID to examine
+.PP
+.SH EXAMPLES
+.TP
+Sample both read and write activity for PID 81,
+# 
+.B pfilestat 81
+.TP
+Sample reads only for PID 81,
+#
+.B pfilestat
+\-r 81
+.PP
+.SH FIELDS
+.TP
+STATE
+microstate. see STATES below.
+.TP
+FDUM
+file Descriptor ID
+.TP
+Time
+percentage of wallclock time in each STATE
+.TP
+File
+Name of file, if known
+.PP
+.SH STATES
+.TP
+read
+Time spent during the execution of the read() syscall.
+.TP
+write
+Time spent during the execution of the write() syscall.
+.TP
+waitcpu
+Latency spent waiting to be scheduled after becoming runnable.
+.TP
+running
+Process running user-mode code.
+.TP
+sleep-r
+Process sleeping on reads.
+.TP
+sleep-w
+Process sleeping on writes.
+.PP
+.SH DOCUMENTATION
+pfilestat is discussed and demonstrated in Solaris Internals 2nd edition,
+volume 2. 
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+pfilestat will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Richard McDougall
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pgpginbypid.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pgpginbypid.d.1m
new file mode 100644
index 0000000..4c3e36b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pgpginbypid.d.1m
@@ -0,0 +1,47 @@
+.TH pgpginbypid.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pgpginbypid.d \- pages paged in by PID. Uses DTrace.
+.SH SYNOPSIS
+.B pgpginbypid.d
+.SH DESCRIPTION
+pgpginbypid.d reports the rumber of pages paged in from the disks
+by process ID. This is an indicator that processes are reading
+from the disks.
+
+This is based on a script from DExplorer.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the vminfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B pgpginbypid.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+PAGES
+number of pages paged in
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+pgpginbypid.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iosnoop(1m), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pgpginbyproc.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pgpginbyproc.d.1m
new file mode 100644
index 0000000..e6cf7fe4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pgpginbyproc.d.1m
@@ -0,0 +1,50 @@
+.TH pgpginbyproc.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pgpginbyproc.d \- pages pagedin by process name. Uses DTrace.
+.SH SYNOPSIS
+.B pgpginbyproc.d
+.SH DESCRIPTION
+pgpginbyproc.d is a DTrace OneLiner to a report the number of pages
+paged in by process name.
+
+This may be one way to help identify the process responsible for
+causing heavy read traffic to the disks.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the vminfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B pgpginbyproc.d
+.PP
+.SH FIELDS
+.TP
+first field
+The process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+second field
+The number of pages paged in
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+pgpginbyproc.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iosnoop(1m), dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/php_calldist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/php_calldist.d.1m
new file mode 100644
index 0000000..0e1e3f7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/php_calldist.d.1m
@@ -0,0 +1,49 @@
+.TH php_calldist.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+php_calldist.d - measure PHP elapsed times for functions.
+.SH SYNOPSIS
+.B php_calldist.d
+
+.SH DESCRIPTION
+This traces PHP activity from all programs running on the system with
+PHP provider support.
+
+This script prints distribution plots of elapsed time for PHP
+operations. Use php_calltime.d for summary reports.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_calldist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the PHP program
+.TP
+2
+Type of call (func)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_calldist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/php_calltime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/php_calltime.d.1m
new file mode 100644
index 0000000..7dc7e44
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/php_calltime.d.1m
@@ -0,0 +1,49 @@
+.TH php_calltime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+php_calltime.d - measure PHP elapsed times for functions.
+.SH SYNOPSIS
+.B php_calltime.d
+
+.SH DESCRIPTION
+This traces PHP activity from all programs running on the system with
+PHP provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_calltime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the PHP program
+.TP
+TYPE
+Type of call (func/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total elapsed time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_calltime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/php_cpudist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/php_cpudist.d.1m
new file mode 100644
index 0000000..f290514
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/php_cpudist.d.1m
@@ -0,0 +1,49 @@
+.TH php_cpudist.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+php_cpudist.d - measure PHP on-CPU times for functions.
+.SH SYNOPSIS
+.B php_cpudist.d
+
+.SH DESCRIPTION
+This traces PHP activity from all programs running on the system with
+PHP provider support.
+
+This script prints distribution plots of elapsed time for PHP
+operations. Use php_cputime.d for summary reports.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_cpudist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the PHP program
+.TP
+2
+Type of call (func)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_cpudist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/php_cputime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/php_cputime.d.1m
new file mode 100644
index 0000000..5c97926
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/php_cputime.d.1m
@@ -0,0 +1,49 @@
+.TH php_cputime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+php_cputime.d - measure PHP on-CPU times for functions.
+.SH SYNOPSIS
+.B php_cputime.d
+
+.SH DESCRIPTION
+This traces PHP activity from all programs running on the system with
+PHP provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_cputime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the PHP program
+.TP
+TYPE
+Type of call (func/total)
+.TP
+NAME
+Name of call (function name)
+.TP
+TOTAL
+Total on-CPU time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_cputime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/php_flow.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/php_flow.d.1m
new file mode 100644
index 0000000..2282f87
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/php_flow.d.1m
@@ -0,0 +1,60 @@
+.TH php_flow.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+php_flow.d - snoop PHP execution showing function flow.
+.SH SYNOPSIS
+.B php_flow.d
+
+.SH DESCRIPTION
+This traces PHP activity from all PHP programs on the system
+running with PHP provider support.
+
+This watches PHP function entries and returns, and indents child
+function calls.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_flow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this function belongs to
+.TP
+FUNC
+Function name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_flow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/php_flowinfo.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/php_flowinfo.d.1m
new file mode 100644
index 0000000..a136a0c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/php_flowinfo.d.1m
@@ -0,0 +1,68 @@
+.TH php_flowinfo.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+php_flowinfo.d - snoop PHP function flow with info using DTrace.
+.SH SYNOPSIS
+.B php_flowinfo.d
+
+.SH DESCRIPTION
+This traces activity from all PHP programs on the system that are
+running with PHP provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_flowinfo.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the PHP program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (func)
+.TP
+FUNC
+PHP function
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_flowinfo.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/php_flowtime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/php_flowtime.d.1m
new file mode 100644
index 0000000..4f27773
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/php_flowtime.d.1m
@@ -0,0 +1,65 @@
+.TH php_flowtime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+php_flowtime.d - snoop PHP functions with flow and delta times.
+.SH SYNOPSIS
+.B php_flowtime.d
+
+.SH DESCRIPTION
+This traces shell activity from PHP programs on the system that are
+running with PHP provider support.
+
+This watches PHP function entries and returns, and indents child
+function calls.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_flowtime.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this function belongs to
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FUNC
+PHP function name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_flowtime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/php_funccalls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/php_funccalls.d.1m
new file mode 100644
index 0000000..ed5e346
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/php_funccalls.d.1m
@@ -0,0 +1,43 @@
+.TH php_funccalls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+php_funccalls.d - measure PHP function calls using DTrace.
+.SH SYNOPSIS
+.B php_funccalls.d
+
+.SH DESCRIPTION
+This traces PHP activity from all running programs on the system
+which support the PHP DTrace provider.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_funccalls.d
+.PP
+.SH FIELDS
+.TP
+FUNC
+PHP function name
+.TP
+CALLS
+Function calls during this sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_funccalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/php_malloc.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/php_malloc.d.1m
new file mode 100644
index 0000000..107df38
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/php_malloc.d.1m
@@ -0,0 +1,39 @@
+.TH php_malloc.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+php_malloc.d - PHP libc malloc analysis.
+.SH SYNOPSIS
+.B php_malloc.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This is an expiremental script to identify who is calling malloc() for
+memory allocation, and to print distribution plots of the requested bytes.
+If a malloc() occured while in a PHP function, then that function is
+identified as responsible; else the caller of malloc() is identified as
+responsible - which will be a function from the PHP engine.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_malloc.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_malloc.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/php_syscalls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/php_syscalls.d.1m
new file mode 100644
index 0000000..885ad46
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/php_syscalls.d.1m
@@ -0,0 +1,54 @@
+.TH php_syscalls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+php_syscalls.d - count PHP function calls and syscalls using DTrace.
+.SH SYNOPSIS
+.B php_syscalls.d
+
+.SH DESCRIPTION
+This traces syscalls that occured during a PHP function call.
+
+Filename and function names are printed if available.
+The filename for syscalls may be printed as "php", if the program
+was invoked using the form "php filename" rather than running the
+program with an interpreter line.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_syscalls.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+FILE
+Filename of the PHP program
+.TP
+TYPE
+Type of call (func/syscall)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_syscalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/php_syscolors.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/php_syscolors.d.1m
new file mode 100644
index 0000000..5b71073
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/php_syscolors.d.1m
@@ -0,0 +1,61 @@
+.TH php_syscolors.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+php_syscolors.d - trace PHP function flow plus syscalls, in color.
+.SH SYNOPSIS
+.B php_syscolors.d
+
+.SH DESCRIPTION
+This watches PHP function entries and returns, and indents child
+function calls.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_syscolors.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the PHP program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (func/syscall)
+.TP
+NAME
+PHP function or syscall name
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_syscolors.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/php_who.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/php_who.d.1m
new file mode 100644
index 0000000..9065bf2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/php_who.d.1m
@@ -0,0 +1,49 @@
+.TH php_who.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+php_who.d - trace PHP function execution by process using DTrace.
+.SH SYNOPSIS
+.B php_who.d
+
+.SH DESCRIPTION
+This traces PHP activity from all PHP programs on the system that are
+running with PHP provider support.
+
+Filenames are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_who.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID of PHP
+.TP
+UID
+User ID of the owner
+.TP
+FUNCS
+Number of function calls
+.TP
+FILE
+Pathname of the PHP program
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_who.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pidpersec.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pidpersec.d.1m
new file mode 100644
index 0000000..edb485e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pidpersec.d.1m
@@ -0,0 +1,42 @@
+.TH pidpersec.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pidpersec.d \- print new PIDs per sec. Uses DTrace.
+.SH SYNOPSIS
+.B pidpersec.d
+.SH DESCRIPTION
+This script prints the number of new processes created per second.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the proc provider.
+.SH EXAMPLES
+.TP
+Print PID statistics per second,
+# 
+.B pidpersec.d
+.PP
+.SH FIELDS
+.TP
+TIME
+time, as a string
+.TP
+LASTPID
+last PID created
+.TP
+PID/s
+Number of processes created per second
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+pidpersec.d will run until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+execsnoop(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pl_calldist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_calldist.d.1m
new file mode 100644
index 0000000..a9f6baf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_calldist.d.1m
@@ -0,0 +1,49 @@
+.TH pl_calldist.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pl_calldist.d - measure Perl elapsed times for subroutines.
+.SH SYNOPSIS
+.B pl_calldist.d
+
+.SH DESCRIPTION
+This traces Perl activity from all programs running on the system with
+Perl provider support.
+
+This script prints distribution plots of elapsed time for Perl subroutines.
+Use pl_calltime.d for summary reports.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_calldist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the Perl program
+.TP
+2
+Type of call (sub)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_calldist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pl_calltime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_calltime.d.1m
new file mode 100644
index 0000000..6f20f64
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_calltime.d.1m
@@ -0,0 +1,49 @@
+.TH pl_calltime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pl_calltime.d - measure Perl elapsed times for subroutines.
+.SH SYNOPSIS
+.B pl_calltime.d
+
+.SH DESCRIPTION
+This traces Perl activity from all programs running on the system with
+Perl provider support.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_calltime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Perl program
+.TP
+TYPE
+Type of call (sub/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total elapsed time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_calltime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pl_cpudist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_cpudist.d.1m
new file mode 100644
index 0000000..26290ea
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_cpudist.d.1m
@@ -0,0 +1,49 @@
+.TH pl_cpudist.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pl_cpudist.d - measure Perl on-CPU times for subroutines.
+.SH SYNOPSIS
+.B pl_cpudist.d
+
+.SH DESCRIPTION
+This traces Perl activity from all programs running on the system with
+Perl provider support.
+
+This script prints distribution plots of elapsed time for Perl subrotines.
+Use pl_cputime.d for summary reports.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_cpudist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the Perl program
+.TP
+2
+Type of call (sub)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_cpudist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pl_cputime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_cputime.d.1m
new file mode 100644
index 0000000..560139a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_cputime.d.1m
@@ -0,0 +1,49 @@
+.TH pl_cputime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pl_cputime.d - measure Perl on-CPU times for subroutines.
+.SH SYNOPSIS
+.B pl_cputime.d
+
+.SH DESCRIPTION
+This traces Perl activity from all programs running on the system with
+Perl provider support.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_cputime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Perl program
+.TP
+TYPE
+Type of call (sub/total)
+.TP
+NAME
+Name of call (subroutine name)
+.TP
+TOTAL
+Total on-CPU time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_cputime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pl_flow.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_flow.d.1m
new file mode 100644
index 0000000..225582b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_flow.d.1m
@@ -0,0 +1,60 @@
+.TH pl_flow.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pl_flow.d - snoop Perl execution showing subroutine flow.
+.SH SYNOPSIS
+.B pl_flow.d
+
+.SH DESCRIPTION
+This traces Perl activity from all Perl programs on the system
+running with Perl provider support.
+
+This watches Perl subroutine entries and returns, and indents child
+subroutine calls.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_flow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this subroutine belongs to
+.TP
+SUB
+Subroutine name
+.SH LEGEND
+.TP
+\->
+subroutine entry
+.TP
+<\-
+subroutine return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_flow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pl_flowinfo.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_flowinfo.d.1m
new file mode 100644
index 0000000..7eccbe46
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_flowinfo.d.1m
@@ -0,0 +1,68 @@
+.TH pl_flowinfo.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pl_flowinfo.d - snoop Perl subroutine flow with info using DTrace.
+.SH SYNOPSIS
+.B pl_flowinfo.d
+
+.SH DESCRIPTION
+This traces activity from all Perl programs on the system that are
+running with Perl provider support.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_flowinfo.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the Perl program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (sub)
+.TP
+SUB
+Perl subroutine
+.SH LEGEND
+.TP
+\->
+subroutine entry
+.TP
+<\-
+subroutine return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_flowinfo.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pl_flowtime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_flowtime.d.1m
new file mode 100644
index 0000000..30b2e56
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_flowtime.d.1m
@@ -0,0 +1,65 @@
+.TH pl_flowtime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pl_flowtime.d - snoop Perl subroutines with flow and delta times.
+.SH SYNOPSIS
+.B pl_flowtime.d
+
+.SH DESCRIPTION
+This traces shell activity from Perl programs on the system that are
+running with Perl provider support.
+
+This watches Perl subroutine entries and returns, and indents child
+subroutine calls.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_flowtime.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this subroutine belongs to
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+SUB
+Perl subroutine name
+.SH LEGEND
+.TP
+\->
+method entry
+.TP
+<\-
+method return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_flowtime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pl_malloc.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_malloc.d.1m
new file mode 100644
index 0000000..dd3673a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_malloc.d.1m
@@ -0,0 +1,39 @@
+.TH pl_malloc.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pl_malloc.d - Perl libc malloc analysis.
+.SH SYNOPSIS
+.B pl_malloc.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This is an expiremental script to identify who is calling malloc() for
+memory allocation, and to print distribution plots of the requested bytes.
+If a malloc() occured while in a Perl subroutine, then that subroutine is
+identified as responsible; else the caller of malloc() is identified as
+responsible - which will be a function from the Perl engine.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_malloc.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_malloc.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pl_subcalls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_subcalls.d.1m
new file mode 100644
index 0000000..c542db5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_subcalls.d.1m
@@ -0,0 +1,43 @@
+.TH pl_subcalls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pl_subcalls.d - measure Perl subroutine calls using DTrace.
+.SH SYNOPSIS
+.B pl_subcalls.d
+
+.SH DESCRIPTION
+This traces Perl activity from all running programs on the system
+which support the Perl DTrace provider.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_subcalls.d
+.PP
+.SH FIELDS
+.TP
+SUB
+Perl subroutine name
+.TP
+CALLS
+Subroutine calls during this sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_subcalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pl_syscalls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_syscalls.d.1m
new file mode 100644
index 0000000..a7c9fd8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_syscalls.d.1m
@@ -0,0 +1,49 @@
+.TH pl_syscalls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pl_syscalls.d - count Perl subroutine calls and syscalls using DTrace.
+.SH SYNOPSIS
+.B pl_syscalls.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+Filename and subroutine names are printed if available.
+The filename for syscalls may be printed as "perl", if the program
+was invoked using the form "perl filename" rather than running the
+program with an interpreter line.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_syscalls.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Perl program
+.TP
+TYPE
+Type of call (sub/syscall)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_syscalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pl_syscolors.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_syscolors.d.1m
new file mode 100644
index 0000000..c7ea11f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_syscolors.d.1m
@@ -0,0 +1,61 @@
+.TH pl_syscolors.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pl_syscolors.d - trace Perl subroutine flow plus syscalls, in color.
+.SH SYNOPSIS
+.B pl_syscolors.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This watches Perl subroutine entries and returns, and indents child
+subroutine calls.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_syscolors.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the Perl program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (sub/syscall)
+.TP
+NAME
+Perl subroutine or syscall name
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_syscolors.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pl_who.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_who.d.1m
new file mode 100644
index 0000000..d4d4105
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pl_who.d.1m
@@ -0,0 +1,49 @@
+.TH pl_who.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pl_who.d - trace Perl subroutine execution by process using DTrace.
+.SH SYNOPSIS
+.B pl_who.d
+
+.SH DESCRIPTION
+This traces Perl activity from all Perl programs on the system that are
+running with Perl provider support.
+
+Filenames are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_who.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID of Perl
+.TP
+UID
+User ID of the owner
+.TP
+SUBS
+Number of subroutine calls
+.TP
+FILE
+Pathname of the Perl program
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_who.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/priclass.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/priclass.d.1m
new file mode 100644
index 0000000..51b42c9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/priclass.d.1m
@@ -0,0 +1,66 @@
+.TH priclass.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+priclass.d \- priority distribution by scheduling class. Uses DTrace.
+.SH SYNOPSIS
+.B priclass.d
+.SH DESCRIPTION
+This is a simple DTrace script that samples at 1000 Hz the current
+thread's scheduling class and priority. A distribution plot is printed.
+
+With priorities, the higher the priority the better chance the thread
+has of being scheduled.
+
+This idea came from the script /usr/demo/dtrace/pri.d, which
+produces similar output for priority changes, not samples.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B priclass.d
+.PP
+.SH FIELDS
+.TP
+value
+process priority
+.TP
+count
+number of samples of at least this priority
+.PP
+.SH SCHEDULING CLASSES
+.TP
+TS
+time sharing
+.TP
+IA
+interactive
+.TP
+RT
+real time
+.TP
+SYS
+system
+.TP
+FSS
+fair share scheduler
+.PP
+.SH BASED ON
+/usr/demo/dtrace/pri.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "profile Provider" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+priclass.d will sample until Ctrl\-C is hit.
+.SH SEE ALSO
+pridist.d(1M), dispadmin(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/pridist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/pridist.d.1m
new file mode 100644
index 0000000..511bfb2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/pridist.d.1m
@@ -0,0 +1,55 @@
+.TH pridist.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+pridist.d \- process priority distribution. Uses DTrace.
+.SH SYNOPSIS
+.B pridist.d
+.SH DESCRIPTION
+This is a simple DTrace script that samples at 1000 Hz which process
+is on the CPUs, and what the priority is. A distribution plot is printed.
+
+With priorities, the higher the priority the better chance the process
+(actually, thread) has of being scheduled.
+
+This idea came from the script /usr/demo/dtrace/profpri.d, which
+produces similar output for one particular PID.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B pridist.d
+.PP
+.SH FIELDS
+.TP
+CMD
+process name
+.TP
+PID
+process ID
+.TP
+value
+process priority
+.TP
+count
+number of samples of at least this priority
+.PP
+.SH BASED ON
+/usr/demo/dtrace/profpri.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "profile Provider" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+pridist.d will sample until Ctrl\-C is hit.
+.SH SEE ALSO
+dispadmin(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/procsystime.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/procsystime.1m
new file mode 100644
index 0000000..ce2dde8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/procsystime.1m
@@ -0,0 +1,108 @@
+.TH procsystime 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+procsystime \- analyse system call times. Uses DTrace.
+.SH SYNOPSIS
+.B procsystime
+[\-acehoT] [ -p PID | -n name | command ]
+.SH DESCRIPTION
+procsystime prints details on system call times for processes,
+both the elapsed times and on-cpu times can be printed.
+
+The elapsed times are interesting, to help identify syscalls
+that take some time to complete (during which the process may
+have slept). CPU time helps us identify syscalls that
+are consuming CPU cycles to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH OPTIONS
+.TP
+\-a
+print all data
+.TP
+\-c
+print syscall counts
+.TP
+\-e
+print elapsed times, ns
+.TP
+\-o
+print CPU times, ns
+.TP
+\-T
+print totals
+.TP
+\-p PID
+examine this PID
+.TP
+\-n name
+examine processes which have this name
+.SH EXAMPLES
+.TP
+Print elapsed times for PID 1871,
+# 
+.B procsystime
+\-p 1871
+.PP
+.TP
+Print elapsed times for processes called "tar",
+# 
+.B procsystime
+\-n tar 
+.PP
+.TP
+Print CPU times for "tar" processes,
+#
+.B procsystime
+\-on tar
+.PP
+.TP
+Print syscall counts for "tar" processes,
+#
+.B procsystime
+\-cn tar
+.PP
+.TP
+Print elapsed and CPU times for "tar" processes,
+#
+.B procsystime
+\-eon tar
+.PP
+.TP
+print all details for "bash" processes,
+#
+.B procsystime
+\-aTn bash
+.PP
+.TP
+run and print details for "df -h",
+#
+.B procsystime
+df \-h
+.PP
+.SH FIELDS
+.TP
+SYSCALL
+System call name
+.TP
+TIME (ns)
+Total time, nanoseconds
+.TP
+COUNT
+Number of occurrences
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+procsystime will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtruss(1M), dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/putnexts.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/putnexts.d.1m
new file mode 100644
index 0000000..5b684ab
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/putnexts.d.1m
@@ -0,0 +1,27 @@
+.TH putnexts.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+putnexts.d - 
+.SH SYNOPSIS
+.SH DESCRIPTION
+
+.SH OS
+Solaris
+.SH STABILITY
+stable - 
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B putnexts.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+putnexts.d will run until Ctrl-C is hit.
+.SH AUTHOR
+
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/py_calldist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/py_calldist.d.1m
new file mode 100644
index 0000000..a858899
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/py_calldist.d.1m
@@ -0,0 +1,49 @@
+.TH py_calldist.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+py_calldist.d - measure Python elapsed times for functions.
+.SH SYNOPSIS
+.B py_calldist.d
+
+.SH DESCRIPTION
+This traces Python activity from all programs running on the system with
+Python provider support.
+
+This script prints distribution plots of elapsed time for Python
+operations. Use py_calltime.d for summary reports.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_calldist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the Python program
+.TP
+2
+Type of call (func)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_calldist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/py_calltime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/py_calltime.d.1m
new file mode 100644
index 0000000..abddecf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/py_calltime.d.1m
@@ -0,0 +1,49 @@
+.TH py_calltime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+py_calltime.d - measure Python elapsed times for functions.
+.SH SYNOPSIS
+.B py_calltime.d
+
+.SH DESCRIPTION
+This traces Python activity from all programs running on the system with
+Python provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_calltime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Python program
+.TP
+TYPE
+Type of call (func/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total elapsed time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_calltime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/py_cpudist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/py_cpudist.d.1m
new file mode 100644
index 0000000..3c04c36
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/py_cpudist.d.1m
@@ -0,0 +1,49 @@
+.TH py_cpudist.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+py_cpudist.d - measure Python on-CPU times for functions.
+.SH SYNOPSIS
+.B py_cpudist.d
+
+.SH DESCRIPTION
+This traces Python activity from all programs running on the system with
+Python provider support.
+
+This script prints distribution plots of elapsed time for Python
+operations. Use py_cputime.d for summary reports.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_cpudist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the Python program
+.TP
+2
+Type of call (func)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_cpudist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/py_cputime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/py_cputime.d.1m
new file mode 100644
index 0000000..7c3a560
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/py_cputime.d.1m
@@ -0,0 +1,49 @@
+.TH py_cputime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+py_cputime.d - measure Python on-CPU times for functions.
+.SH SYNOPSIS
+.B py_cputime.d
+
+.SH DESCRIPTION
+This traces Python activity from all programs running on the system with
+Python provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_cputime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Python program
+.TP
+TYPE
+Type of call (func/total)
+.TP
+NAME
+Name of call (function name)
+.TP
+TOTAL
+Total on-CPU time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_cputime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/py_flow.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/py_flow.d.1m
new file mode 100644
index 0000000..5c4df30
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/py_flow.d.1m
@@ -0,0 +1,60 @@
+.TH py_flow.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+py_flow.d - snoop Python execution showing function flow.
+.SH SYNOPSIS
+.B py_flow.d
+
+.SH DESCRIPTION
+This traces Python activity from all Python programs on the system
+running with Python provider support.
+
+This watches Python function entries and returns, and indents child
+function calls.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_flow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this function belongs to
+.TP
+FUNC
+Function name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_flow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/py_flowinfo.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/py_flowinfo.d.1m
new file mode 100644
index 0000000..d46d0f8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/py_flowinfo.d.1m
@@ -0,0 +1,68 @@
+.TH py_flowinfo.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+py_flowinfo.d - snoop Python function flow with info using DTrace.
+.SH SYNOPSIS
+.B py_flowinfo.d
+
+.SH DESCRIPTION
+This traces activity from all Python programs on the system that are
+running with Python provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_flowinfo.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the Python program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (func)
+.TP
+FUNC
+Python function
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_flowinfo.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/py_flowtime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/py_flowtime.d.1m
new file mode 100644
index 0000000..f2778e4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/py_flowtime.d.1m
@@ -0,0 +1,65 @@
+.TH py_flowtime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+py_flowtime.d - snoop Python functions with flow and delta times.
+.SH SYNOPSIS
+.B py_flowtime.d
+
+.SH DESCRIPTION
+This traces shell activity from Python programs on the system that are
+running with Python provider support.
+
+This watches Python function entries and returns, and indents child
+function calls.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_flowtime.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this function belongs to
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FUNC
+Python function name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_flowtime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/py_funccalls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/py_funccalls.d.1m
new file mode 100644
index 0000000..35f9346
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/py_funccalls.d.1m
@@ -0,0 +1,43 @@
+.TH py_funccalls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+py_funccalls.d - measure Python function calls using DTrace.
+.SH SYNOPSIS
+.B py_funccalls.d
+
+.SH DESCRIPTION
+This traces Python activity from all running programs on the system
+which support the Python DTrace provider.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_funccalls.d
+.PP
+.SH FIELDS
+.TP
+FUNC
+Python function name
+.TP
+CALLS
+Function calls during this sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_funccalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/py_malloc.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/py_malloc.d.1m
new file mode 100644
index 0000000..8996f17
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/py_malloc.d.1m
@@ -0,0 +1,39 @@
+.TH py_malloc.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+py_malloc.d - Python libc malloc analysis.
+.SH SYNOPSIS
+.B py_malloc.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This is an expiremental script to identify who is calling malloc() for
+memory allocation, and to print distribution plots of the requested bytes.
+If a malloc() occured while in a Python function, then that function is
+identified as responsible; else the caller of malloc() is identified as
+responsible - which will be a function from the Python engine.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_malloc.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_malloc.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/py_mallocstk.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/py_mallocstk.d.1m
new file mode 100644
index 0000000..ef52d68
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/py_mallocstk.d.1m
@@ -0,0 +1,33 @@
+.TH py_mallocstk.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+py_mallocstk.d - Python libc malloc analysis with full stack traces.
+.SH SYNOPSIS
+.B py_mallocstk.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_mallocstk.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_mallocstk.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/py_profile.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/py_profile.d.1m
new file mode 100644
index 0000000..2e23ba2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/py_profile.d.1m
@@ -0,0 +1,54 @@
+.TH py_profile.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+py_profile.d - sample stack traces with Python translations using DTrace.
+.SH SYNOPSIS
+.B py_profile.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This samples stack traces for the process specified. This stack trace
+will cross the Python engine and system libraries, and insert 
+translations for Python stack frames where appropriate. This is best
+explained with an example stack frame output,
+
+libpython2.4.so.1.0`PyEval_EvalFrame+0x2fbf
+[ ./func_loop.py:5 (func_c) ]
+libpython2.4.so.1.0`fast_function+0xa8
+libpython2.4.so.1.0`call_function+0xda
+libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+[ ./func_loop.py:11 (func_b) ]
+libpython2.4.so.1.0`fast_function+0xa8
+libpython2.4.so.1.0`call_function+0xda
+libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+[ ./func_loop.py:14 (func_a) ]
+libpython2.4.so.1.0`fast_function+0xa8
+libpython2.4.so.1.0`call_function+0xda
+libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+[ ./func_loop.py:16 (?) ]
+
+The lines in square brackets are the native Python frames, the rest
+are the Python engine.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_profile.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_profile.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/py_syscalls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/py_syscalls.d.1m
new file mode 100644
index 0000000..9ea7b8a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/py_syscalls.d.1m
@@ -0,0 +1,49 @@
+.TH py_syscalls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+py_syscalls.d - count Python function calls and syscalls using DTrace.
+.SH SYNOPSIS
+.B py_syscalls.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+Filename and function names are printed if available.
+The filename for syscalls may be printed as "python", if the program
+was invoked using the form "python filename" rather than running the
+program with an interpreter line.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_syscalls.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Python program
+.TP
+TYPE
+Type of call (func/syscall)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_syscalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/py_syscolors.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/py_syscolors.d.1m
new file mode 100644
index 0000000..bd2d621
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/py_syscolors.d.1m
@@ -0,0 +1,61 @@
+.TH py_syscolors.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+py_syscolors.d - trace Python function flow plus syscalls, in color.
+.SH SYNOPSIS
+.B py_syscolors.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This watches Python function entries and returns, and indents child
+function calls.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_syscolors.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the Python program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (func/syscall)
+.TP
+NAME
+Python function or syscall name
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_syscolors.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/py_who.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/py_who.d.1m
new file mode 100644
index 0000000..1801afd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/py_who.d.1m
@@ -0,0 +1,49 @@
+.TH py_who.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+py_who.d - trace Python function execution by process using DTrace.
+.SH SYNOPSIS
+.B py_who.d
+
+.SH DESCRIPTION
+This traces Python activity from all Python programs on the system that are
+running with Python provider support.
+
+Filenames are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_who.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID of Python
+.TP
+UID
+User ID of the owner
+.TP
+FUNCS
+Number of function calls
+.TP
+FILE
+Pathname of the Python program
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_who.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_calldist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_calldist.d.1m
new file mode 100644
index 0000000..f3fe118
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_calldist.d.1m
@@ -0,0 +1,49 @@
+.TH rb_calldist.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_calldist.d - measure Ruby elapsed times for types of operation.
+.SH SYNOPSIS
+.B rb_calldist.d
+
+.SH DESCRIPTION
+This traces Ruby activity from all programs running on the system with
+Ruby provider support.
+
+This script prints distribution plots of elapsed time for Ruby
+operations. Use rb_calltime.d for summary reports.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_calldist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the Ruby program
+.TP
+2
+Type of call (method/obj-new/gc)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_calldist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_calls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_calls.d.1m
new file mode 100644
index 0000000..b0901e4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_calls.d.1m
@@ -0,0 +1,49 @@
+.TH rb_calls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_calls.d - count Ruby calls using DTrace.
+.SH SYNOPSIS
+.B rb_calls.d
+
+.SH DESCRIPTION
+This traces activity from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_calls.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Ruby program
+.TP
+TYPE
+Type of call (method/obj-new/...)
+.TP
+NAME
+Descriptive name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_calls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_calltime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_calltime.d.1m
new file mode 100644
index 0000000..72b1f42
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_calltime.d.1m
@@ -0,0 +1,49 @@
+.TH rb_calltime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_calltime.d - measure Ruby elapsed times for types of operation.
+.SH SYNOPSIS
+.B rb_calltime.d
+
+.SH DESCRIPTION
+This traces Ruby activity from all programs running on the system with
+Ruby provider support.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_calltime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Ruby program
+.TP
+TYPE
+Type of call (method/obj-new/gc/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total elapsed time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_calltime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_cpudist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_cpudist.d.1m
new file mode 100644
index 0000000..d95616f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_cpudist.d.1m
@@ -0,0 +1,49 @@
+.TH rb_cpudist.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_cpudist.d - measure Ruby on-CPU times for types of operation.
+.SH SYNOPSIS
+.B rb_cpudist.d
+
+.SH DESCRIPTION
+This traces Ruby activity from all programs running on the system with
+Ruby provider support.
+
+This script prints distribution plots of elapsed time for Ruby
+operations. Use rb_cputime.d for summary reports.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_cpudist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the Ruby program
+.TP
+2
+Type of call (method/obj-new/gc)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_cpudist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_cputime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_cputime.d.1m
new file mode 100644
index 0000000..fa19da1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_cputime.d.1m
@@ -0,0 +1,49 @@
+.TH rb_cputime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_cputime.d - measure Ruby on-CPU times for types of operation.
+.SH SYNOPSIS
+.B rb_cputime.d
+
+.SH DESCRIPTION
+This traces Ruby activity from all programs running on the system with
+Ruby provider support.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_cputime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Ruby program
+.TP
+TYPE
+Type of call (method/obj-new/gc/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total on-CPU time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_cputime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_flow.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_flow.d.1m
new file mode 100644
index 0000000..7ff47c3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_flow.d.1m
@@ -0,0 +1,59 @@
+.TH rb_flow.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_flow.d - snoop Ruby execution showing method flow using DTrace.
+.SH SYNOPSIS
+.B rb_flow.d
+
+.SH DESCRIPTION
+This traces activity from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_flow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this method belongs to
+.TP
+CLASS::METHOD
+Ruby classname and method
+.SH LEGEND
+.TP
+\->
+method entry
+.TP
+<\-
+method return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_flow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_flowinfo.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_flowinfo.d.1m
new file mode 100644
index 0000000..787cc58
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_flowinfo.d.1m
@@ -0,0 +1,68 @@
+.TH rb_flowinfo.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_flowinfo.d - snoop Ruby function (method) flow with info using DTrace.
+.SH SYNOPSIS
+.B rb_flowinfo.d
+
+.SH DESCRIPTION
+This traces activity from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_flowinfo.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the Ruby program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (method)
+.TP
+NAME
+Ruby class and method name
+.SH LEGEND
+.TP
+\->
+method entry
+.TP
+<\-
+method return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_flowinfo.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_flowtime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_flowtime.d.1m
new file mode 100644
index 0000000..ddac580
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_flowtime.d.1m
@@ -0,0 +1,62 @@
+.TH rb_flowtime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_flowtime.d - snoop Ruby function (method) flow using DTrace.
+.SH SYNOPSIS
+.B rb_flowtime.d
+
+.SH DESCRIPTION
+This traces activity from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_flowtime.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this method belongs to
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+CLASS::METHOD
+Ruby class and method name
+.SH LEGEND
+.TP
+\->
+method entry
+.TP
+<\-
+method return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_flowtime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_funccalls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_funccalls.d.1m
new file mode 100644
index 0000000..cc6feb4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_funccalls.d.1m
@@ -0,0 +1,46 @@
+.TH rb_funccalls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_funccalls.d - count Ruby function (method) calls using DTrace.
+.SH SYNOPSIS
+.B rb_funccalls.d
+
+.SH DESCRIPTION
+This traces activity from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_funccalls.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Ruby program
+.TP
+METHOD
+Method name
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_funccalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_lines.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_lines.d.1m
new file mode 100644
index 0000000..19f2b3b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_lines.d.1m
@@ -0,0 +1,46 @@
+.TH rb_lines.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_lines.d - trace Ruby line execution by process using DTrace.
+.SH SYNOPSIS
+.B rb_who.d
+
+.SH DESCRIPTION
+This traces Ruby activity from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Filenames are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_lines.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Ruby program
+.TP
+LINE
+Line number
+.TP
+COUNT
+Number of times a line was executed
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_lines.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_malloc.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_malloc.d.1m
new file mode 100644
index 0000000..3cf3213
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_malloc.d.1m
@@ -0,0 +1,47 @@
+.TH rb_malloc.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_malloc.d - Ruby operations and libc malloc statistics.
+.SH SYNOPSIS
+.B rb_malloc.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_malloc.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the Ruby program
+.TP
+2
+Type of operation (method/objnew/startup)
+.TP
+3
+Name of operation
+.SH WARNING
+This script is not 100% accurate; This prints libc malloc() byte
+distributions by "recent" Ruby operation, which we hope will be usually
+relevant. This is an experimental script that may be improved over time.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_malloc.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_objcpu.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_objcpu.d.1m
new file mode 100644
index 0000000..7e53300
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_objcpu.d.1m
@@ -0,0 +1,36 @@
+.TH rb_objcpu.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_objcpu.d - measure Ruby object creation on-CPU time using DTrace.
+.SH SYNOPSIS
+.B rb_objcpu.d
+
+.SH DESCRIPTION
+This traces Ruby activity from all programs running on the system with
+Ruby provider support.
+
+Class names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_objcpu.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_objcpu.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_objnew.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_objnew.d.1m
new file mode 100644
index 0000000..206632b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_objnew.d.1m
@@ -0,0 +1,46 @@
+.TH rb_objnew.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_objnew.d - count Ruby object creation using DTrace.
+.SH SYNOPSIS
+.B rb_objnew.d
+
+.SH DESCRIPTION
+This traces Ruby activity from all programs running on the system with
+Ruby provider support.
+
+Filename and class names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_objnew.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Ruby program
+.TP
+CLASS
+Class of new object
+.TP
+COUNT
+Number of object creations during tracing
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_objnew.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_stat.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_stat.d.1m
new file mode 100644
index 0000000..82d2304
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_stat.d.1m
@@ -0,0 +1,66 @@
+.TH rb_stat.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_stat.d - Ruby operation stats using DTrace.
+.SH SYNOPSIS
+.B rb_stat.d
+[interval [count]]
+.SH DESCRIPTION
+This traces activity from all Ruby programs on the system that are
+running with Ruby provider support.
+
+The numbers are counts for the interval specified. The default interval
+is 1 second.
+
+If you see a count in "EXECS" but not in the other columns, then your
+Ruby software is probably not running with the DTrace Ruby provider.
+See Ruby/Readme.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_stat.d
+.PP
+.SH FIELDS
+.TP
+EXEC/s
+Ruby programs executed per second, including
+those without Ruby provider support
+.TP
+METHOD/s
+Methods called, per second
+.TP
+OBJNEW/s
+Objects created, per second
+.TP
+OBJFRE/s
+Objects freed, per second
+.TP
+RAIS/s
+Raises, per second
+.TP
+RESC/s
+Rescues, per second
+.TP
+GC/s
+Garbage collects, per second
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_stat.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_syscalls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_syscalls.d.1m
new file mode 100644
index 0000000..95b74ae
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_syscalls.d.1m
@@ -0,0 +1,49 @@
+.TH rb_syscalls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_syscalls.d - count Ruby calls and syscalls using DTrace.
+.SH SYNOPSIS
+.B rb_syscalls.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+Filename and method names are printed if available.
+The filename for syscalls may be printed as "ruby", if the program
+was invoked using the form "ruby filename" rather than running the
+program with an interpreter line.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_syscalls.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Ruby program
+.TP
+TYPE
+Type of call (method/syscall)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_syscalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_syscolors.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_syscolors.d.1m
new file mode 100644
index 0000000..9382941
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_syscolors.d.1m
@@ -0,0 +1,61 @@
+.TH rb_syscolors.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_syscolors.d - trace Ruby method flow plus syscalls, in color.
+.SH SYNOPSIS
+.B rb_syscolors.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This watches Ruby method entries and returns, and indents child
+function calls.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_syscolors.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the Ruby program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (method/line/syscall)
+.TP
+NAME
+Ruby method or syscall name
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_syscolors.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rb_who.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_who.d.1m
new file mode 100644
index 0000000..e17983d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rb_who.d.1m
@@ -0,0 +1,49 @@
+.TH rb_who.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rb_who.d - trace Ruby line execution by process using DTrace.
+.SH SYNOPSIS
+.B rb_who.d
+
+.SH DESCRIPTION
+This traces Ruby activity from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Filenames are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_who.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID of Ruby
+.TP
+UID
+User ID of the owner
+.TP
+LINES
+Number of times a line was executed
+.TP
+FILE
+Pathname of the Ruby program
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_who.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/readbytes.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/readbytes.d.1m
new file mode 100644
index 0000000..c4d3ae4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/readbytes.d.1m
@@ -0,0 +1,47 @@
+.TH readbytes.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+readbytes.d \- read bytes by process name. Uses DTrace.
+.SH SYNOPSIS
+.B readbytes.d
+.SH DESCRIPTION
+readbytes.d is a DTrace OneLiner to a report of the number of 
+bytes read by process name.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B readbytes.d
+.PP
+.SH FIELDS
+.TP
+first field
+This is the process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+second field
+This is the number of bytes read.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+readbytes.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/readdist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/readdist.d.1m
new file mode 100644
index 0000000..93c0836
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/readdist.d.1m
@@ -0,0 +1,54 @@
+.TH readdist.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+readdist.d \- read distrib. by process name. Uses DTrace.
+.SH SYNOPSIS
+.B readdist.d
+.SH DESCRIPTION
+readdist.d is a DTrace OneLiner to a report the read size and
+number of occurrences as a frequency distribution by process name.
+
+This can be useful to identify the behaviour of processes
+that are doing reads. Are they using many small reads, or 
+fewer large reads.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B readdist.d
+.PP
+.SH FIELDS
+.TP
+process name
+The process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+value
+The size in bytes
+.TP
+count
+The number of occurrences that were at least this size 
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+readdist.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rfileio.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rfileio.d.1m
new file mode 100644
index 0000000..5dfd53d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rfileio.d.1m
@@ -0,0 +1,41 @@
+.TH rfileio.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rfileio.d \- read file I/O stats, with cache miss rate. Uses DTrace.
+.SH SYNOPSIS
+.B rfileio.d
+.SH DESCRIPTION
+This script provides statistics on the number of reads and the bytes
+read from filesystems (logical), and the number of bytes read from
+disk (physical). A summary is printed every five seconds by file.
+
+A total miss-rate is also provided for the file system cache.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Print a summary of activity every five seconds.
+# 
+.B rfileio.d
+.PP
+.SH IDEA
+Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+rfileio.d will run until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+rfsio.d(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rfsio.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rfsio.d.1m
new file mode 100644
index 0000000..356ff01
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rfsio.d.1m
@@ -0,0 +1,41 @@
+.TH rfsio.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rfsio.d \- read FS I/O stats, with cache miss rate. Uses DTrace.
+.SH SYNOPSIS
+.B rfsio.d
+.SH DESCRIPTION
+This script provides statistics on the number of reads and the bytes
+read from filesystems (logical), and the number of bytes read from
+disk (physical). A summary is printed every five seconds by filesystem.
+
+A total miss-rate is also provided for the file system cache.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Print a summary of activity every five seconds.
+# 
+.B rfsio.d
+.PP
+.SH IDEA
+Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+rfsio.d will run until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+rfileio.d(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/runocc.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/runocc.d.1m
new file mode 100644
index 0000000..3d2b994
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/runocc.d.1m
@@ -0,0 +1,46 @@
+.TH runocc.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+runocc.d \- run queue occupancy by CPU. Uses DTrace.
+.SH SYNOPSIS
+.B runocc.d
+.SH DESCRIPTION
+This prints the dispatcher run queue occupancy by CPU each second.
+A consistant run queue occupancy is a sign of CPU saturation.
+
+The value is similar to that seen in "sar -q", however this is
+calculated in a more accurate manner - sampling at 1000 Hertz.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable.
+.SH EXAMPLES
+.TP
+Print %runocc by CPU every second,
+# 
+.B runocc.d
+.PP
+.SH FIELDS
+.TP
+CPU
+cpu ID
+.TP
+%runocc
+percent run queue occupancy, sampled at 1000 Hertz
+.PP
+.SH SEE ALSO
+Solaris Internals 2nd Ed, vol 2, CPU chapter
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+runocc.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rwbbypid.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rwbbypid.d.1m
new file mode 100644
index 0000000..68bfdb6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rwbbypid.d.1m
@@ -0,0 +1,48 @@
+.TH rwbbypid.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rwbbypid.d \- read/write bytes by PID. Uses DTrace.
+.SH SYNOPSIS
+.B rwbbypid.d
+.SH DESCRIPTION
+This script tracks the bytes read and written at the syscall level
+by processes, printing the totals in a report. This is tracking the
+successful number of bytes read or written.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B rwbbypid.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+DIR
+direction, Read or Write
+.TP
+BYTES
+total bytes
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+rwbbypid.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+rwbypid.d(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rwbypid.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rwbypid.d.1m
new file mode 100644
index 0000000..444ef7e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rwbypid.d.1m
@@ -0,0 +1,48 @@
+.TH rwbypid.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rwbypid.d \- read/write calls by PID. Uses DTrace.
+.SH SYNOPSIS
+.B rwbypid.d
+.SH DESCRIPTION
+This script tracks the number of reads and writes at the syscall level
+by processes, printing the totals in a report. This matches reads
+and writes whether they succeed or not.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B rwbypid.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+DIR
+direction, Read or Write
+.TP
+COUNT
+total calls
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+rwbypid.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+rwbbypid.d(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rwbytype.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rwbytype.d.1m
new file mode 100644
index 0000000..6c343a5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rwbytype.d.1m
@@ -0,0 +1,54 @@
+.TH rwbytype.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rwbytype.d \- read/write bytes by vnode type. Uses DTrace.
+.SH SYNOPSIS
+.B rwbytype.d
+.SH DESCRIPTION
+This program identifies the vnode type of read/write activity - whether
+that is for regular files, sockets, character special devices, etc. This
+is measuring at the application level, so file activity may well be 
+cached by the system.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B rwbytype.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+VNODE
+vnode type (describes I/O type)
+.TP
+DIR
+direction, Read or Write
+.TP
+BYTES
+total bytes
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+rwbytype.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+rwbypid.d(1M), rwbbypid.d(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rwsnoop.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rwsnoop.1m
new file mode 100644
index 0000000..330debb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rwsnoop.1m
@@ -0,0 +1,104 @@
+.TH rwsnoop 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rwsnoop \- snoop read/write events. Uses DTrace.
+.SH SYNOPSIS
+.B rwsnoop
+[\-jPtvZ] [\-n name] [\-p PID]
+.SH DESCRIPTION
+This is measuring reads and writes at the application level. This
+matches the syscalls read, write, pread and pwrite.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH OPTIONS
+.TP
+\-j
+print project ID
+.TP
+\-P
+print parent process ID
+.TP
+\-t
+print timestamp, us
+.TP
+\-v
+print time, string
+.TP
+\-Z
+print zone ID
+.TP
+\-n name
+process name to track
+.TP
+\-p PID
+PID to track
+.PP
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rwsnoop
+.TP
+Print zone ID,
+# 
+.B rwsnoop
+-\Z
+.TP
+Monitor processes named "bash",
+#
+.B rwsnoop
+\-n bash
+.PP
+.SH FIELDS
+.TP
+TIME
+timestamp, us
+.TP
+TIMESTR
+time, string
+.TP
+ZONE
+zone ID
+.TP
+PROJ
+project ID
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+PPID
+parent process ID
+.TP
+CMD
+command name for the process
+.TP
+D
+direction, Read or Write
+.TP
+BYTES
+total bytes during sample
+.TP
+FILE
+filename, if file based. 
+Reads and writes that are not file based, for example with sockets, will
+print "<unknown>" as the filename.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+rwsnoop will run forever until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+rwtop(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/rwtop.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/rwtop.1m
new file mode 100644
index 0000000..89f1a25
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/rwtop.1m
@@ -0,0 +1,115 @@
+.TH rwtop 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+rwtop \- display top read/write bytes process. Uses DTrace.
+.SH SYNOPSIS
+.B rwtop
+[\-Cc] [\-j|\-Z] [\-n name] [\-p PID]
+[\-t top] [interval [count]]
+.SH DESCRIPTION
+This is measuring reads and writes at the application level. 
+This matches read and write system calls.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo provider.
+.SH OPTIONS
+.TP
+\-C
+don't clear the screen
+.TP
+\-c
+print counts
+.TP
+\-j
+print project ID
+.TP
+\-Z
+print zone ID
+.TP
+\-n name
+process name to track
+.TP
+\-p PID
+PID to track
+.TP
+\-t top
+print top number only
+.PP
+.SH EXAMPLES
+.TP
+Default output, print summary every 5 seconds
+# 
+.B rwtop
+.PP
+.TP
+One second samples,
+# 
+.B rwtop
+1
+.TP
+Print top 10 lines only,
+#
+.B rwtop
+\-t 10
+.TP
+Monitor processes named "bash",
+#
+.B rwtop
+\-n bash
+.TP
+Print 12 x 5 second samples, scrolling,
+#
+.B rwtop
+\-C 5 12
+.PP
+.SH FIELDS
+.TP
+PROJ
+project ID
+.TP
+ZONE
+zone ID
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+PPID
+parent process ID
+.TP
+CMD
+command name for the process
+.TP
+D
+direction, Read or Write
+.TP
+BYTES
+total bytes during sample
+.TP
+load
+1 minute load average
+.TP
+app_r
+total read Kb for sample
+.TP
+app_w
+total write Kb for sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+rwtop will run forever until Ctrl\-C is hit, or the specified
+interval is reached.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iotop(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sampleproc.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sampleproc.1m
new file mode 100644
index 0000000..4b62e32
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sampleproc.1m
@@ -0,0 +1,55 @@
+.TH sampleproc 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sampleproc \- sample processes on the CPUs. Uses DTrace.
+.SH SYNOPSIS
+.B sampleproc [hertz]
+.SH DESCRIPTION
+This program samples which process is on each CPU, at a particular
+configurable rate. This can be used as an estimate for which process
+is consuming the most CPU time.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - uses the ncpus_online kernel symbol.
+.SH EXAMPLES
+.TP
+Sample at 100 hertz,
+# 
+.B sampleproc 
+.TP
+Sample at 400 hertz,
+# 
+.B sampleproc
+400
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+COMMAND
+command name
+.TP
+COUNT
+number of samples
+.TP
+PERCENT
+percent of CPU usage
+.PP
+.SH BASED ON
+/usr/demo/dtrace/prof.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "profile Provider" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+sampleproc will sample until Ctrl\-C is hit. 
+.SH SEE ALSO
+dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sar-c.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sar-c.d.1m
new file mode 100644
index 0000000..0846aef
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sar-c.d.1m
@@ -0,0 +1,62 @@
+.TH sar\-c.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sar\-c.d \- sar \-c demo in DTrace. Uses DTrace.
+.SH SYNOPSIS
+.B sar\-c.d
+.SH DESCRIPTION
+This has been written to demonstrate fetching the same data as sar \-c
+from DTrace. This program is intended as a starting point for other
+DTrace scripts, by beginning with familiar statistics.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall and sysinfo providers.
+.SH EXAMPLES
+.TP
+Print system call counts every second,
+# 
+.B sar\-c.d
+.PP
+.SH FIELDS
+.TP
+scall/s
+System calls
+.TP
+sread/s
+reads
+.TP
+swrit/s
+writes
+.TP
+fork/s
+forks
+.TP
+exec/s
+execs
+.TP
+rchar/s
+read characters
+.TP
+wchar/s
+write characters
+.PP
+.SH IDEA
+David Rubio, who also wrote the original.
+.PP
+.SH NOTES
+As this program does not use Kstat, there is no summary since boot line.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+sar\-c.d will run until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+sar(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/seeksize.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/seeksize.d.1m
new file mode 100644
index 0000000..450b65c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/seeksize.d.1m
@@ -0,0 +1,51 @@
+.TH seeksize.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+seeksize.d \- print disk event seek report. Uses DTrace.
+.SH SYNOPSIS
+.B seeksize.d
+.SH DESCRIPTION
+seeksize.d is a simple DTrace program to print a report of disk
+event seeks by process. 
+
+This can be used to identify whether processes are accessing the
+disks in a "random" or "sequential" manner. Sequential is often
+desirable, indicated by mostly zero length seeks.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B seeksize.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+command and argument list
+.TP
+value
+distance in disk blocks (sectors)
+.TP
+count
+number of I/O operations
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+seeksize.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iosnoop(1M), bitesize.d(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/setuids.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/setuids.d.1m
new file mode 100644
index 0000000..b382630
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/setuids.d.1m
@@ -0,0 +1,53 @@
+.TH setuids.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+setuids.d \- snoop setuid calls as they occur. Uses DTrace.
+.SH SYNOPSIS
+.B setuids.d
+.SH DESCRIPTION
+setuids.d is a simple DTrace program to print details of setuid
+calls, where a process assumes a different UID. These are usually
+related to login events.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+Default output, print setuids as they occur,
+# 
+.B setuids.d
+.PP
+.SH FIELDS
+.TP
+UID
+user ID (from)
+.TP
+SUID
+set user ID (to)
+.TP
+PPID
+parent process ID
+.TP
+PID
+process ID
+.TP
+PCMD
+parent command
+.TP
+CMD
+command (with arguments)
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+setuids.d will run forever until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), bsmconv(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sh_calldist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_calldist.d.1m
new file mode 100644
index 0000000..3b2748b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_calldist.d.1m
@@ -0,0 +1,49 @@
+.TH sh_calldist.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sh_calldist.d - measure Bourne shell elapsed times for types of operation.
+.SH SYNOPSIS
+.B sh_calldist.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+This script prints distribution plots of elapsed time for shell
+operations. Use sh_calltime.d for summary reports.
+
+Filename and call names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_calldist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the shell or shellscript
+.TP
+2
+Type of call (func/builtin/cmd)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_calldist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sh_calls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_calls.d.1m
new file mode 100644
index 0000000..f61229b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_calls.d.1m
@@ -0,0 +1,49 @@
+.TH sh_calls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sh_calls.d - count Bourne calls (func/builtin/cmd/subsh) using DTrace.
+.SH SYNOPSIS
+.B sh_calls.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_calls.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the shell or shellscript
+.TP
+TYPE
+Type of call (func/builtin/cmd/subsh)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_calls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sh_calltime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_calltime.d.1m
new file mode 100644
index 0000000..72b845d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_calltime.d.1m
@@ -0,0 +1,49 @@
+.TH sh_calltime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sh_calltime.d - measure Bourne shell elapsed times for types of operation.
+.SH SYNOPSIS
+.B sh_calltime.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+Filename and call names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_calltime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the shell or shellscript
+.TP
+TYPE
+Type of call (func/builtin/cmd/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total elapsed time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_calltime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sh_cpudist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_cpudist.d.1m
new file mode 100644
index 0000000..34c9df7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_cpudist.d.1m
@@ -0,0 +1,49 @@
+.TH sh_cpudist.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sh_cpudist.d - measure Bourne shell on-CPU times for types of operation.
+.SH SYNOPSIS
+.B sh_cpudist.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+This script prints distribution plots of on-CPU time for shell
+operations. Use sh_cputime.d for summary reports.
+
+Filename and call names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_cpudist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the shell or shellscript
+.TP
+2
+Type of call (func/builtin/cmd)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_cpudist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sh_cputime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_cputime.d.1m
new file mode 100644
index 0000000..41bc3e7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_cputime.d.1m
@@ -0,0 +1,49 @@
+.TH sh_cputime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sh_cputime.d - measure Bourne shell on-CPU times for types of operation.
+.SH SYNOPSIS
+.B sh_cputime.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+Filename and call names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_cputime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the shell or shellscript
+.TP
+TYPE
+Type of call (func/builtin/cmd/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total on-CPU time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_cputime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sh_flow.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_flow.d.1m
new file mode 100644
index 0000000..2e49b9b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_flow.d.1m
@@ -0,0 +1,66 @@
+.TH sh_flow.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sh_flow.d - snoop Bourne shell execution showing function flow using DTrace.
+.SH SYNOPSIS
+.B sh_flow.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+This watches shell function entries and returns, and indents child
+function calls. Shell builtins are also printed.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_flow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this function belongs to
+.TP
+NAME
+Shell function, builtin or command name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.TP
+>
+builtin
+.TP
+|
+external command
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_flow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sh_flowinfo.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_flowinfo.d.1m
new file mode 100644
index 0000000..27bf617
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_flowinfo.d.1m
@@ -0,0 +1,62 @@
+.TH sh_flowinfo.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sh_flowinfo.d - snoop Bourne shell flow with additional info.
+.SH SYNOPSIS
+.B sh_flowinfo.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+This watches shell function entries and returns, and indents child
+function calls. Shell builtins and external commands are also printed.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_flowinfo.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the shell script
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (func/builtin/cmd/subsh)
+.TP
+NAME
+Shell function, builtin or command name
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_flowinfo.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sh_flowtime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_flowtime.d.1m
new file mode 100644
index 0000000..00365dd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_flowtime.d.1m
@@ -0,0 +1,76 @@
+.TH sh_flowtime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sh_flowtime.d - snoop Bourne shell execution with flow and delta times.
+.SH SYNOPSIS
+.B sh_flowtime.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+This watches shell function entries and returns, and indents child
+function calls. Shell builtins are also printed.
+
+DELTAs:
+->		previous line to the start of this function
+<-		previous line to the end of this function
+>		previous line to the end of this builtin
+|		previous line to the end of this command
+
+See sh_flowinfo.d for more verbose and more straightforward delta times.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_flowtime.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this function belongs to
+.TP
+NAME
+Shell function or builtin name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.TP
+>
+builtin
+.TP
+|
+external command
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_flowtime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sh_lines.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_lines.d.1m
new file mode 100644
index 0000000..bca6a81
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_lines.d.1m
@@ -0,0 +1,46 @@
+.TH sh_lines.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sh_lines.d - trace Bourne shell line execution using DTrace.
+.SH SYNOPSIS
+.B sh_lines.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+Filenames are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_lines.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the shell or shellscript
+.TP
+LINE
+Line number
+.TP
+COUNT
+Number of times a line was executed
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_lines.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sh_pidcolors.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_pidcolors.d.1m
new file mode 100644
index 0000000..f8cdb93
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_pidcolors.d.1m
@@ -0,0 +1,70 @@
+.TH sh_pidcolors.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sh_pidcolors.d - Demonstration of deeper DTrace Bourne shell analysis.
+.SH SYNOPSIS
+.B sh_pidcolors.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This extends sh_syscolors.d by including some "pid" provider tracing
+as a starting point for deeper analysis. Currently it adds the probes,
+
+pid$target:a.out:e*:entry,
+pid$target:a.out:e*:return
+
+which means, all functions from the /usr/bin/sh binary that begin with
+the letter "e". This adds about 34 probes. Customise it to whichever
+parts of /usr/bin/sh or the system libraries you are interested in.
+
+The filename for syscalls may be printed as the shell name, if the
+script was invoked using the form "shell filename" rather than running
+the script with an interpreter line.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_pidcolors.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the shell script
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (func/builtin/cmd/line/shell)
+.TP
+NAME
+Shell function, builtin or command name
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_pidcolors.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sh_stat.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_stat.d.1m
new file mode 100644
index 0000000..3e7f355
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_stat.d.1m
@@ -0,0 +1,59 @@
+.TH sh_stat.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sh_stat.d - Bourne shell operation stats using DTrace.
+.SH SYNOPSIS
+.B sh_stat.d
+[interval [count]]
+.SH DESCRIPTION
+This traces activity from all sh processes on the system that are running
+with sh provider support.
+
+The numbers are counts for the interval specified. The default interval
+is 1 second.
+
+If you see a count in "EXECS" but not in the other columns, then sh
+scripts may be running without the DTrace sh provider. See Shell/Readme.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_stat.d
+.PP
+.SH FIELDS
+.TP
+EXEC/s
+Bourne shells executed per second, including
+those without sh provider support
+.TP
+FUNC/s
+Functions called, per second
+.TP
+BLTIN/s
+Builtins called, per second
+.TP
+SUB-SH/s
+Sub-shells called, per second
+.TP
+CMD/s
+External commands called, per second
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_stat.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sh_syscalls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_syscalls.d.1m
new file mode 100644
index 0000000..2e8981f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_syscalls.d.1m
@@ -0,0 +1,49 @@
+.TH sh_syscalls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sh_syscalls.d - count Bourne calls and syscalls using DTrace.
+.SH SYNOPSIS
+.B sh_syscalls.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+Filename and function names are printed if available.
+The filename for syscalls may be printed as the shell name, if the
+script was invoked using the form "shell filename" rather than running
+the script with an interpreter line.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_syscalls.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the shell or shellscript
+.TP
+TYPE
+Type of call (func/builtin/cmd/syscall)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_syscalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sh_syscolors.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_syscolors.d.1m
new file mode 100644
index 0000000..8dad803
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_syscolors.d.1m
@@ -0,0 +1,63 @@
+.TH sh_syscolors.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sh_syscolors.d - trace Bourne shell flow plus syscalls, in color.
+.SH SYNOPSIS
+.B sh_syscolors.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This watches shell function entries and returns, and indents child
+function calls. Shell builtins, commands and lines are also printed.
+
+The filename for syscalls may be printed as the shell name, if the
+script was invoked using the form "shell filename" rather than running
+the script with an interpreter line.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_syscolors.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the shell script
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (func/builtin/cmd/line/shell)
+.TP
+NAME
+Shell function, builtin or command name
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_syscolors.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sh_wasted.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_wasted.d.1m
new file mode 100644
index 0000000..d4c38dd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_wasted.d.1m
@@ -0,0 +1,49 @@
+.TH sh_wasted.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sh_wasted.d - measure Bourne shell elapsed times for "wasted" commands.
+.SH SYNOPSIS
+.B sh_wasted.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This script measures "wasted" commands - those which are called externally
+but are in fact builtins to the shell. Ever seen a script which calls
+/usr/bin/echo needlessly? This script measures that cost.
+
+Filename and call names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_wasted.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the shell or shellscript
+.TP
+NAME
+Name of call
+.TP
+TIME
+Total elapsed time for calls (us)
+.SH IDEA
+Mike Shapiro
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_wasted.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sh_who.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_who.d.1m
new file mode 100644
index 0000000..f0f3e63
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sh_who.d.1m
@@ -0,0 +1,49 @@
+.TH sh_who.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sh_who.d - trace Bourne shell line execution by process using DTrace.
+.SH SYNOPSIS
+.B sh_who.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+Filenames are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_who.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID of the shell
+.TP
+UID
+User ID of the owner
+.TP
+LINES
+Number of times a line was executed
+.TP
+FILE
+Pathname of the shell or shellscript
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_who.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/shellsnoop.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/shellsnoop.1m
new file mode 100644
index 0000000..d7b47a5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/shellsnoop.1m
@@ -0,0 +1,99 @@
+.TH shellsnoop 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+shellsnoop \- snoop live shell activity. Uses DTrace.
+.SH SYNOPSIS
+.B shellsnoop
+[\-hqsv] [\-p PID] [\-u UID]
+.SH DESCRIPTION
+A program to print read/write details from shells,
+such as keystrokes and command outputs.
+
+This program sounds somewhat dangerous (snooping keystrokes), but is
+no more so than /usr/bin/truss, and both need root or dtrace privileges to
+run. In fact, less dangerous, as we only print visible text (not password
+text, for example). Having said that, it goes without saying that this
+program shouldn't be used for breeching privacy of other users.
+
+This was written as a tool to demonstrate the capabilities of DTrace.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - this script uses the syscall provider.
+.SH OPTIONS
+.TP
+\-q
+quiet, only print data
+.TP
+\-s
+include start time, us
+.TP
+\-v
+include start time, string
+.TP
+\-p PID
+PID to snoop
+.TP
+\-u UID
+user ID to snoop
+.PP
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B shellsnoop
+.TP
+human readable timestamps,
+# 
+.B shellsnoop
+\-v
+.TP
+watch this PID only,
+#
+.B shellsnoop
+\-p 1892
+.TP
+watch this PID data only,
+#
+.B shellsnoop
+\-qp 1892
+.PP
+.SH FIELDS
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+PPID
+parent process ID
+.TP
+COMM
+command name
+.TP
+DIR
+direction (R read, W write)
+.TP
+TEXT
+text contained in the read/write
+.TP
+TIME
+timestamp for the command, us
+.TP
+STRTIME
+timestamp for the command, string
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+shellsnoop will run forever until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/shortlived.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/shortlived.d.1m
new file mode 100644
index 0000000..f1f686c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/shortlived.d.1m
@@ -0,0 +1,37 @@
+.TH shortlived.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+shortlived.d \- check short lived process time. Uses DTrace.
+.SH SYNOPSIS
+.B shortlived.d
+.SH DESCRIPTION
+shortlived.d is a DTrace program to measure the time consumed by
+short lived processes. 
+
+Many short lived processes can be a burden on the system, and may be
+the cause of performance problems. This program can help identify
+that case.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall and proc providers.
+.SH EXAMPLES
+.TP
+This prints a report after Ctrl\-C has been hit,
+# 
+.B shortlived.d
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+shortlived.d will run until Ctrl\-C is hit to end the sample. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sigdist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sigdist.d.1m
new file mode 100644
index 0000000..38b8e91
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sigdist.d.1m
@@ -0,0 +1,50 @@
+.TH sigdist.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sigdist.d \- signal distribution by process. Uses DTrace.
+.SH SYNOPSIS
+.B sigdist.d
+.SH DESCRIPTION
+This is a simple DTrace script that prints the number of signals
+recieved by process and signal number. This script is also available
+as /usr/demo/dtrace/sig.d, where it originates.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the proc provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B sigdist.d
+.PP
+.SH FIELDS
+.TP
+SENDER
+process name of sender
+.TP
+RECIPIENT
+process name of target
+.TP
+SIG
+signal number, see signal(3head)
+.TP
+COUNT
+number of signals sent
+.PP
+.SH BASED ON
+/usr/demo/dtrace/sig.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "proc Provider" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+sigdist.d will sample until Ctrl\-C is hit.
+.SH SEE ALSO
+kill.d(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/stacksize.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/stacksize.d.1m
new file mode 100644
index 0000000..ad6305b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/stacksize.d.1m
@@ -0,0 +1,42 @@
+.TH stacksize.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+stacksize.d \- measure stack size for running threads. Uses DTrace.
+.SH SYNOPSIS
+.B stacksize.d
+.SH DESCRIPTION
+This samples the user stack size by process name, and prints a 
+distribution plot so that the average stack size can be easily
+identified.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sched provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B stacksize.d
+.PP
+.SH FIELDS
+.TP
+value
+size of the user stack
+.TP
+count
+number of samples at this size
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+stacksize.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Jonathan Adams
+.SH SEE ALSO
+pmap(1), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/statsnoop.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/statsnoop.1m
new file mode 100644
index 0000000..383b271
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/statsnoop.1m
@@ -0,0 +1,140 @@
+.TH statsnoop 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+statsnoop \- snoop file stats as they occur. Uses DTrace.
+.SH SYNOPSIS
+.B statsnoop
+[\-a|\-A|\-ceghsvxZ] [\-f pathname] [\-n name] [\-p PID]
+.SH DESCRIPTION
+statsnoop traces the stat variety of syscalls.
+As a process issues a file stat, details
+such as UID, PID and pathname are printed out. 
+
+The returned file descriptor is printed,
+a value of -1 indicates an error. This can be useful
+for troubleshooting to determine if appliacions are attempting to
+stat files that do not exist. 
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH OPTIONS
+.TP
+\-a
+print all data
+.TP
+\-A
+dump all data, space delimited
+.TP
+\-c
+print current working directory of process
+.TP
+\-e
+print errno value
+.TP
+\-g
+print full command arguments
+.TP
+\-s
+print start time, us
+.TP
+\-v
+print start time, string
+.TP
+\-x
+only print failed stats
+.TP
+\-Z
+print zonename
+.TP
+\-f pathname
+file pathname to snoop
+.TP
+\-n name
+process name to snoop
+.TP
+\-p PID
+process ID to snoop
+.PP
+.SH EXAMPLES
+.TP
+Default output, print file stats by process as they occur,
+# 
+.B statsnoop
+.PP
+.TP
+Print human readable timestamps,
+# 
+.B statsnoop
+\-v 
+.PP
+.TP
+See error codes,
+#
+.B statsnoop
+\-e
+.PP
+.TP
+Snoop this file only,
+#
+.B statsnoop
+\-f /etc/passwd
+.PP
+.SH FIELDS
+.TP
+ZONE
+Zone name
+.TP
+UID
+User ID
+.TP
+PID
+Process ID
+.TP
+PPID
+Parent Process ID
+.TP
+FD
+File Descriptor (-1 is error)
+.TP
+ERR
+errno value (see /usr/include/sys/errno.h)
+.TP
+CWD
+current working directory of process
+.TP
+PATH
+pathname for file stat
+.TP
+COMM
+command name for the process
+.TP
+ARGS
+argument listing for the process
+.TP
+TIME
+timestamp for the stat event, us
+.TP
+STRTIME
+timestamp for the stat event, string
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+statsnoop will run forever until Ctrl\-C is hit. 
+.SH BUGS
+occasionally the pathname for the file stat cannot be read
+and the following error will be seen,
+
+dtrace: error on enabled probe ID 6 (...): invalid address
+
+this is normal behaviour.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/swapinfo.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/swapinfo.d.1m
new file mode 100644
index 0000000..8c35ec3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/swapinfo.d.1m
@@ -0,0 +1,88 @@
+.TH swapinfo.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+swapinfo.d \- print virtual memory info. Uses DTrace.
+.SH SYNOPSIS
+.B swapinfo.d
+.SH DESCRIPTION
+Prints swap usage details for RAM and disk based swap.
+
+This script is UNDER CONSTRUCTION, check for newer versions.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - uses various kernel symbols.
+.SH FIELDS
+.TP
+RAM Total
+Total RAM installed
+.TP
+RAM Unusable
+RAM consumed by the OBP and TSBs
+.TP
+RAM Kernel
+Kernel resident in RAM (and usually locked)
+.TP
+RAM Locked
+Locked memory pages from swap (Anon)
+.TP
+RAM Used
+anon + exec + file pages used
+.TP
+RAM Free
+free memory + page cache free
+.TP
+Disk Total
+Total disk swap configured
+.TP
+Disk Resv
+Disk swap allocated + reserved
+.TP
+Disk Avail
+Disk swap available for reservation
+.TP
+Swap Total
+Total Virtual Memory usable
+.TP
+Swap Resv
+VM allocated + reserved
+.TP
+Swap Avail
+VM available for reservation
+.TP
+Swap MinFree
+VM kept free from reservations
+.PP
+.SH EXAMPLES
+.TP
+Print info,
+# 
+.B swapinfo.d
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH ADDITIONAL RESOURCES
+swapstat - K9Toolkit
+
+vmstat 1 2; swap -s; echo ::memstat | mdb -k
+
+RMCmem - The MemTool Package
+
+RICHPse - The SE Toolkit
+
+"Clearing up swap space confusion" Unix Insider, Adrian Cockcroft
+
+"Solaris Internals", Jim Mauro, Richard McDougall
+
+/usr/include/vm/anon.h, /usr/include/sys/systm.h
+
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/sysbypid.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/sysbypid.d.1m
new file mode 100644
index 0000000..c601a9d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/sysbypid.d.1m
@@ -0,0 +1,50 @@
+.TH sysbypid.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+sysbypid.d \- system stats by PID. Uses DTrace.
+.SH SYNOPSIS
+.B sysbypid.d
+.SH DESCRIPTION
+sysbypid.d is a simple DTrace program to print System
+statistics by process.
+
+The system statistics are documented in the cpu_sysinfo struct
+in the /usr/include/sys/sysinfo.h file; and also in the sysinfo provider
+chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo provider.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B sysbypid.d
+.PP
+.SH FIELDS
+.TP
+EXEC
+process name
+.TP
+PID
+process ID
+.TP
+VM
+Virtual Memory statistic
+.TP
+VALUE
+Value by which statistic was incremented
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+sysbypid.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), vmstat(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/syscallbypid.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/syscallbypid.d.1m
new file mode 100644
index 0000000..2f8b9e3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/syscallbypid.d.1m
@@ -0,0 +1,50 @@
+.TH syscallbypid.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+syscallbypid.d \- syscalls by process ID. Uses DTrace.
+.SH SYNOPSIS
+.B syscallbypid.d
+.SH DESCRIPTION
+This reports the number of each type of system call made by PID.
+This is useful to identify which process is causing the most 
+system calls.
+
+This is based on a script from DExplorer.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B syscallbypid.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+SYSCALL
+system call name
+.TP
+COUNT
+number of system calls made in this sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+syscallbypid.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+procsystime(1M), dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/syscallbyproc.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/syscallbyproc.d.1m
new file mode 100644
index 0000000..ddd5cc8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/syscallbyproc.d.1m
@@ -0,0 +1,50 @@
+.TH syscallbyproc.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+syscallbyproc.d \- syscalls by process name. Uses DTrace.
+.SH SYNOPSIS
+.B syscallbyproc.d
+.SH DESCRIPTION
+syscallbyproc.d is a DTrace OneLiner to a report of the number of 
+system calls made by process name. 
+
+This is useful to identify which process is causing the most 
+system calls.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Any
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B syscallbyproc.d
+.PP
+.SH FIELDS
+.TP
+first field
+This is the process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+second field
+This is the count, the number of system calls made.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+syscallbyproc.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+procsystime(1M), dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/syscallbysysc.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/syscallbysysc.d.1m
new file mode 100644
index 0000000..bb8c3b8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/syscallbysysc.d.1m
@@ -0,0 +1,47 @@
+.TH syscallbysysc.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+syscallbysysc.d \- syscalls by syscall. Uses DTrace.
+.SH SYNOPSIS
+.B syscallbysysc.d
+.SH DESCRIPTION
+syscallbysysc.d is a DTrace OneLiner to a report of the number of 
+each type of system call made.
+
+This is useful to identify which system call is the most common.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Any
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B syscallbysysc.d
+.PP
+.SH FIELDS
+.TP
+first field
+This is the system call type. Most have man pages in section 2.
+.TP
+second field
+This is the count, the number of occurrances for this system call.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+syscallbysysc.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+procsystime(1M), dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_calldist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_calldist.d.1m
new file mode 100644
index 0000000..6211941
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_calldist.d.1m
@@ -0,0 +1,47 @@
+.TH tcl_calldist.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcl_calldist.d - measure Tcl elapsed time for different types of operation.
+.SH SYNOPSIS
+.B tcl_calldist.d
+[top]	
+eg,
+tcl_calldist.d	# default, truncate to 10 lines
+tcl_calldist.d 25	# truncate each report section to 25 lines
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_calldist.d
+.PP
+.SH FIELDS
+.TP
+1
+Process ID
+.TP
+2
+Type of call (proc/cmd/total)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_calldist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_calls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_calls.d.1m
new file mode 100644
index 0000000..478fb12
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_calls.d.1m
@@ -0,0 +1,68 @@
+.TH tcl_calls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcl_calls.d - count Tcl calls (proc/cmd) using DTrace.
+.SH SYNOPSIS
+.B tcl_calls.d
+
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+TYPEs:
+proc		procedure
+cmd		command
+
+PORTIONS: Copyright (c) 2007 Brendan Gregg.
+
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License, Version 1.0 only
+(the "License").  You may not use this file except in compliance
+with the License.
+
+You can obtain a copy of the license at Docs/cddl1.txt
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+CDDL HEADER END
+
+09-Sep-2007	Brendan Gregg	Created this.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_calls.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (see below)
+.TP
+NAME
+Name of proc or cmd call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_calls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_calltime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_calltime.d.1m
new file mode 100644
index 0000000..a291159
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_calltime.d.1m
@@ -0,0 +1,50 @@
+.TH tcl_calltime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcl_calltime.d - measure Tcl elapsed times for different types of operation.
+.SH SYNOPSIS
+.B tcl_calltime.d
+[top]	
+eg,
+tcl_calltime.d	# default, truncate to 10 lines
+tcl_calltime.d 25	# truncate each report section to 25 lines
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_calltime.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (proc/cmd/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total elapsed time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_calltime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_cpudist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_cpudist.d.1m
new file mode 100644
index 0000000..ebe1a15
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_cpudist.d.1m
@@ -0,0 +1,47 @@
+.TH tcl_cpudist.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcl_cpudist.d - measure Tcl on-CPU time for different types of operation.
+.SH SYNOPSIS
+.B tcl_cpudist.d
+[top]	
+eg,
+tcl_cpudist.d		# default, truncate to 10 lines
+tcl_cpudist.d 25	# truncate each report section to 25 lines
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_cpudist.d
+.PP
+.SH FIELDS
+.TP
+1
+Process ID
+.TP
+2
+Type of call (proc/cmd/total)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_cpudist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_cputime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_cputime.d.1m
new file mode 100644
index 0000000..34b9b91
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_cputime.d.1m
@@ -0,0 +1,50 @@
+.TH tcl_cputime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcl_cputime.d - measure Tcl on-CPU times for different types of operation.
+.SH SYNOPSIS
+.B tcl_cputime.d
+[top]	
+eg,
+tcl_cputime.d		# default, truncate to 10 lines
+tcl_cputime.d 25	# truncate each report section to 25 lines
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_cputime.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (proc/cmd/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total on-CPU time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_cputime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_flow.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_flow.d.1m
new file mode 100644
index 0000000..e00218a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_flow.d.1m
@@ -0,0 +1,66 @@
+.TH tcl_flow.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcl_flow.d - snoop Tcl execution showing procedure flow using DTrace.
+.SH SYNOPSIS
+.B tcl_flow.d
+
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+This watches Tcl method entries and returns, and indents child
+method calls.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_flow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+PID
+Process ID
+.TP
+CALL
+Tcl command or procedure name
+.SH LEGEND
+.TP
+\->
+procedure entry
+.TP
+<\-
+procedure return
+.TP
+>
+command entry
+.TP
+<
+command return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_flow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_flowtime.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_flowtime.d.1m
new file mode 100644
index 0000000..2663527
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_flowtime.d.1m
@@ -0,0 +1,69 @@
+.TH tcl_flowtime.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcl_flowtime.d - snoop Tcl execution showing procedure flow and delta times.
+.SH SYNOPSIS
+.B tcl_flowtime.d
+
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+This watches Tcl method entries and returns, and indents child
+method calls.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_flowtime.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+TIME(us)
+Time since boot, us
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+CALL
+Tcl command or procedure name
+.SH LEGEND
+.TP
+\->
+procedure entry
+.TP
+<\-
+procedure return
+.TP
+>
+command entry
+.TP
+<
+command return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_flowtime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_ins.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_ins.d.1m
new file mode 100644
index 0000000..e25da72
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_ins.d.1m
@@ -0,0 +1,50 @@
+.TH tcl_calls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcl_calls.d - count Tcl calls (method/...) using DTrace.
+.SH SYNOPSIS
+.B tcl_calls.d
+
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+TYPEs:
+inst		instruction
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_calls.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (see below)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_calls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_insflow.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_insflow.d.1m
new file mode 100644
index 0000000..5e2477b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_insflow.d.1m
@@ -0,0 +1,69 @@
+.TH tcl_insflow.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcl_insflow.d - snoop Tcl execution showing procedure flow and delta times.
+.SH SYNOPSIS
+.B tcl_insflow.d
+
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+This watches Tcl method entries and returns, and indents child
+method calls.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_insflow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+TIME(us)
+Time since boot, us
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+TYPE
+Type of call (proc/cmd/inst)
+.TP
+CALL
+Tcl command or procedure name
+.SH LEGEND
+.TP
+proc
+procedure
+.TP
+cmd
+command
+.TP
+inst
+instruction
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_insflow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_proccalls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_proccalls.d.1m
new file mode 100644
index 0000000..805ea82
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_proccalls.d.1m
@@ -0,0 +1,44 @@
+.TH tcl_methodcalls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcl_methodcalls.d - count Tcl method calls DTrace.
+.SH SYNOPSIS
+.B tcl_methodcalls.d
+
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_methodcalls.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+COUNT
+Number of calls during sample
+.TP
+PROCEDURE
+Tcl procedure name
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_methodcalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_procflow.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_procflow.d.1m
new file mode 100644
index 0000000..79132fa
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_procflow.d.1m
@@ -0,0 +1,60 @@
+.TH tcl_procflow.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcl_procflow.d - snoop Tcl execution showing procedure flow using DTrace.
+.SH SYNOPSIS
+.B tcl_procflow.d
+
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+This watches Tcl method entries and returns, and indents child
+method calls.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_procflow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+PID
+Process ID
+.TP
+PROCEDURE
+Tcl procedure name
+.SH LEGEND
+.TP
+\->
+proc entry
+.TP
+<\-
+proc return
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_procflow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_stat.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_stat.d.1m
new file mode 100644
index 0000000..ac08dd1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_stat.d.1m
@@ -0,0 +1,61 @@
+.TH tcl_stat.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcl_stat.d - Tcl operation stats using DTrace.
+.SH SYNOPSIS
+.B tcl_stat.d
+[interval [count]]
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+The numbers are counts for the interval specified. The default interval
+is 1 second.
+
+If you see a count in "EXECS" but not in the other columns, then you
+may have older Tcl software that does not have the integrated DTrace
+provider (or newer software where the provider has changed).
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_stat.d
+.PP
+.SH FIELDS
+.TP
+EXEC/s
+Tcl programs executed per second, including
+those without Tcl provider support
+.TP
+PROC/s
+Procedures called, per second
+.TP
+CMD/s
+Commands created, per second
+.TP
+OBJNEW/s
+Objects created, per second
+.TP
+OBJFRE/s
+Objects freed, per second
+.TP
+OP/s
+Bytecode operations, per second
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_stat.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_syscalls.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_syscalls.d.1m
new file mode 100644
index 0000000..91f544e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_syscalls.d.1m
@@ -0,0 +1,47 @@
+.TH tcl_syscalls.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcl_syscalls.d - count Tcl calls and syscalls using DTrace.
+.SH SYNOPSIS
+.B tcl_syscalls.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_syscalls.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (method/syscall)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_syscalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_syscolors.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_syscolors.d.1m
new file mode 100644
index 0000000..d01dfd0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_syscolors.d.1m
@@ -0,0 +1,59 @@
+.TH tcl_syscolors.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcl_syscolors.d - trace Tcl program flow plus syscalls, in color.
+.SH SYNOPSIS
+.B tcl_syscolors.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+This watches Tcl method entries and returns, and indents child
+method calls.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_syscolors.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+TID
+Thread ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+TYPE
+Type of call (proc/cmd/syscall)
+.TP
+NAME
+Tcl proc/cmd or syscall name
+.SH WARNING
+Watch the first column carefully, it prints the CPU-id. If it
+changes, then it is very likely that the output has been shuffled.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_syscolors.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_who.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_who.d.1m
new file mode 100644
index 0000000..f76a202
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcl_who.d.1m
@@ -0,0 +1,54 @@
+.TH tcl_who.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcl_who.d - trace Tcl calls by process using DTrace.
+.SH SYNOPSIS
+.B tcl_who.d
+
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+Calls is a measure of activity, and is a count of the procedures and
+commands that Tcl called.
+
+The argument list is truncated at 55 characters (up to 80 is easily
+available). To easily read the full argument list, use other system tools;
+on Solaris use "pargs PID".
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_who.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID of Tcl
+.TP
+UID
+User ID of the owner
+.TP
+CALLS
+Number of calls made (proc + cmd)
+.TP
+ARGS
+Process name and arguments
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_who.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcpsnoop.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcpsnoop.1m
new file mode 100644
index 0000000..eb956a5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcpsnoop.1m
@@ -0,0 +1,116 @@
+.TH tcpsnoop 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcpsnoop \- snoop TCP network packets by process. Uses DTrace.
+.SH SYNOPSIS
+.B tcpsnoop
+[\-a|hjsvZ] [\-n name] [\-p pid]
+.SH DESCRIPTION
+This analyses TCP network packets and prints the responsible PID and UID,
+plus standard details such as IP address and port. This captures traffic
+of newly created TCP connections that were established while this program
+was running. It can help identify which processes is causing TCP traffic.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris 10 3/05
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH OPTIONS
+.TP
+\-a
+print all data
+.TP
+\-j
+print project ID
+.TP
+\-s
+print time, us
+.TP
+\-v
+print time, string
+.TP
+\-Z
+print zone ID
+.TP
+\-n name
+command name to snoop
+.TP
+\-p PID
+process ID to snoop
+.PP
+.SH EXAMPLES
+.TP
+Default output, snoop TCP network packets with details,
+# 
+.B tcpsnoop
+.TP
+Print human readable timestamps,
+#
+.B tcpsnoop
+\-v
+.TP
+Print zonename,
+#
+.B tcpsnoop
+\-Z
+.TP
+Print sshd traffic only,
+#
+.B tcpsnoop
+\-n sshd
+.PP
+.SH FIELDS
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+CMD
+command name
+.TP
+LADDR
+local IP address
+.TP
+RADDR
+remote IP address
+.TP
+LPORT
+local port number
+.TP
+RPORT
+remote port number
+.TP
+DR
+direction
+.TP
+SIZE
+packet size, bytes
+.TP
+TIME
+timestamp, us
+.TP
+STRTIME
+human readable timestamp, string
+.TP
+ZONE
+zone ID
+.TP
+PROJ
+project ID
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+tcpsnoop will print traffic until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+tcptop(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcpsnoop.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcpsnoop.d.1m
new file mode 100644
index 0000000..8ff005c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcpsnoop.d.1m
@@ -0,0 +1,68 @@
+.TH tcpsnoop.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcpsnoop.d \- snoop TCP network packets by process. DTrace.
+.SH SYNOPSIS
+.B tcpsnoop.d
+.SH DESCRIPTION
+This analyses TCP network packets and prints the responsible PID and UID,
+plus standard details such as IP address and port. This captures traffic
+of newly created TCP connections that were established while this program
+was running. It can help identify which processes is causing TCP traffic.
+
+This is a DTrace only version of "tcpsnoop" - an enhanced program that 
+provides command line options.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris 10 3/05
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Default output, snoop TCP network packets with details,
+# 
+.B tcpsnoop.d
+.PP
+.SH FIELDS
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+CMD
+command name
+.TP
+LADDR
+local IP address
+.TP
+RADDR
+remote IP address
+.TP
+LPORT
+local port number
+.TP
+RPORT
+remote port number
+.TP
+DR
+direction
+.TP
+SIZE
+packet size, bytes
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+tcpsnoop.d will print traffic until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+tcpsnoop(1M), tcptop(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcpsnoop_snv.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcpsnoop_snv.1m
new file mode 100644
index 0000000..e3a1e42
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcpsnoop_snv.1m
@@ -0,0 +1,116 @@
+.TH tcpsnoop 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcpsnoop \- snoop TCP network packets by process. Uses DTrace.
+.SH SYNOPSIS
+.B tcpsnoop
+[\-a|hjsvZ] [\-n name] [\-p pid]
+.SH DESCRIPTION
+This analyses TCP network packets and prints the responsible PID and UID,
+plus standard details such as IP address and port. This captures traffic
+of newly created TCP connections that were established while this program
+was running. It can help identify which processes is causing TCP traffic.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris Nevada / OpenSolaris, circa late 2007
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH OPTIONS
+.TP
+\-a
+print all data
+.TP
+\-j
+print project ID
+.TP
+\-s
+print time, us
+.TP
+\-v
+print time, string
+.TP
+\-Z
+print zone ID
+.TP
+\-n name
+command name to snoop
+.TP
+\-p PID
+process ID to snoop
+.PP
+.SH EXAMPLES
+.TP
+Default output, snoop TCP network packets with details,
+# 
+.B tcpsnoop
+.TP
+Print human readable timestamps,
+#
+.B tcpsnoop
+\-v
+.TP
+Print zonename,
+#
+.B tcpsnoop
+\-Z
+.TP
+Print sshd traffic only,
+#
+.B tcpsnoop
+\-n sshd
+.PP
+.SH FIELDS
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+CMD
+command name
+.TP
+LADDR
+local IP address
+.TP
+RADDR
+remote IP address
+.TP
+LPORT
+local port number
+.TP
+RPORT
+remote port number
+.TP
+DR
+direction
+.TP
+SIZE
+packet size, bytes
+.TP
+TIME
+timestamp, us
+.TP
+STRTIME
+human readable timestamp, string
+.TP
+ZONE
+zone ID
+.TP
+PROJ
+project ID
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+tcpsnoop will print traffic until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+tcptop(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcpsnoop_snv.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcpsnoop_snv.d.1m
new file mode 100644
index 0000000..a78e333
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcpsnoop_snv.d.1m
@@ -0,0 +1,68 @@
+.TH tcpsnoop.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcpsnoop.d \- snoop TCP network packets by process. DTrace.
+.SH SYNOPSIS
+.B tcpsnoop.d
+.SH DESCRIPTION
+This analyses TCP network packets and prints the responsible PID and UID,
+plus standard details such as IP address and port. This captures traffic
+of newly created TCP connections that were established while this program
+was running. It can help identify which processes is causing TCP traffic.
+
+This is a DTrace only version of "tcpsnoop" - an enhanced program that 
+provides command line options.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris Nevada / OpenSolaris, circa late 2007
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Default output, snoop TCP network packets with details,
+# 
+.B tcpsnoop.d
+.PP
+.SH FIELDS
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+CMD
+command name
+.TP
+LADDR
+local IP address
+.TP
+RADDR
+remote IP address
+.TP
+LPORT
+local port number
+.TP
+RPORT
+remote port number
+.TP
+DR
+direction
+.TP
+SIZE
+packet size, bytes
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+tcpsnoop.d will print traffic until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+tcpsnoop(1M), tcptop(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcpstat.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcpstat.d.1m
new file mode 100644
index 0000000..c5b049b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcpstat.d.1m
@@ -0,0 +1,58 @@
+.TH tcpstat.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcpstat.d \- print TCP statistics. Uses DTrace.
+.SH SYNOPSIS
+.B tcpstat.d
+.SH DESCRIPTION
+tcpstat.d is a DTrace program to print TCP statistics every second,
+retrieved from the MIB provider.
+
+This program can be used to help identify how utilised the network 
+interfaces may be, as well as TCP transmission errors.
+
+The TCP statistics are documented in the mib2_tcp struct
+in /usr/include/inet/mib2.h; and also in the mib provider
+chapter of the DTrace Guide, found at 
+http://docs.sun.com/db/doc/817-6223.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the mib provider.
+.SH EXAMPLES
+.TP
+Print statistics every second,
+# 
+.B tcpstat.d
+.PP
+.SH FIELDS
+.TP
+TCP_out
+TCP bytes sent
+.TP
+TCP_outRe
+TCP bytes retransmitted
+.TP
+TCP_in
+TCP bytes received
+.TP
+TCP_inDup
+TCP bytes received duplicated
+.TP
+TCP_inUn
+TCP bytes received out of order
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+tcpstat.d will run forever until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+nicstat(1M), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcptop.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcptop.1m
new file mode 100644
index 0000000..6741ccc
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcptop.1m
@@ -0,0 +1,111 @@
+.TH tcptop 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcptop \- display top TCP network packets by process. Uses DTrace.
+.SH SYNOPSIS
+.B tcptop
+[-Ch] [-j|-Z] [interval [count]]
+.SH DESCRIPTION
+This analyses TCP network packets and prints the responsible PID and UID,
+plus standard details such as IP address and port. This captures traffic
+of newly created TCP connections that were established while this program
+was running. It can help identify which processes is causing TCP traffic.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris 10 3/05
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH OPTIONS
+.TP
+\-C
+don't clear the screen
+.TP
+\-j
+print project IDs
+.TP
+\-Z
+print zone IDs
+.TP
+interval
+sample seconds between refreshing the screen
+.TP
+count
+number of samples
+.PP
+.SH EXAMPLES
+.TP
+Print a report every 5 seconds,
+# 
+.B tcptop
+.TP
+Don't clear the screen, scrolling output,
+#
+.B tcptop
+\-C
+.TP
+Print project IDs,
+#
+.B tcptop
+\-j
+.TP
+Print zone IDs,
+#
+.B tcptop
+\-Z
+.PP
+.SH FIELDS
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+CMD
+command name
+.TP
+LADDR
+local IP address
+.TP
+RADDR
+remote IP address
+.TP
+LPORT
+local port number
+.TP
+RPORT
+remote port number
+.TP
+SIZE
+packet size, bytes
+.TP
+load
+1 minute load average
+.TP
+TCPin
+total TCP inbound payload data
+.TP
+TCPout
+total TCP outbound payload data
+.TP
+ZONE
+zone ID
+.TP
+PROJ
+project ID
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+tcptop will print reports until Ctrl\-C is hit, or the specified
+count is reached.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+tcpsnoop(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcptop_snv.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcptop_snv.1m
new file mode 100644
index 0000000..13597e6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcptop_snv.1m
@@ -0,0 +1,111 @@
+.TH tcptop 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcptop \- display top TCP network packets by process. Uses DTrace.
+.SH SYNOPSIS
+.B tcptop
+[-Ch] [-j|-Z] [interval [count]]
+.SH DESCRIPTION
+This analyses TCP network packets and prints the responsible PID and UID,
+plus standard details such as IP address and port. This captures traffic
+of newly created TCP connections that were established while this program
+was running. It can help identify which processes is causing TCP traffic.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris Nevada / OpenSolaris, circa late 2007
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH OPTIONS
+.TP
+\-C
+don't clear the screen
+.TP
+\-j
+print project IDs
+.TP
+\-Z
+print zone IDs
+.TP
+interval
+sample seconds between refreshing the screen
+.TP
+count
+number of samples
+.PP
+.SH EXAMPLES
+.TP
+Print a report every 5 seconds,
+# 
+.B tcptop
+.TP
+Don't clear the screen, scrolling output,
+#
+.B tcptop
+\-C
+.TP
+Print project IDs,
+#
+.B tcptop
+\-j
+.TP
+Print zone IDs,
+#
+.B tcptop
+\-Z
+.PP
+.SH FIELDS
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+CMD
+command name
+.TP
+LADDR
+local IP address
+.TP
+RADDR
+remote IP address
+.TP
+LPORT
+local port number
+.TP
+RPORT
+remote port number
+.TP
+SIZE
+packet size, bytes
+.TP
+load
+1 minute load average
+.TP
+TCPin
+total TCP inbound payload data
+.TP
+TCPout
+total TCP outbound payload data
+.TP
+ZONE
+zone ID
+.TP
+PROJ
+project ID
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+tcptop will print reports until Ctrl\-C is hit, or the specified
+count is reached.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+tcpsnoop(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/tcpwdist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/tcpwdist.d.1m
new file mode 100644
index 0000000..435a6f434
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/tcpwdist.d.1m
@@ -0,0 +1,60 @@
+.TH tcpwdist.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+tcpwdist.d \- simple TCP write dist by process. Uses DTrace.
+.SH SYNOPSIS
+.B tcpwdist.d
+.SH DESCRIPTION
+This measures the size of writes from applications to the TCP level, which
+may well be much larger than the MTU size (this is application writes not
+packet writes). It can help identify which process is creating network
+traffic, and the size of the writes by that application. It uses a simple
+probe that produces meaningful output for most protocols.
+
+Tracking TCP activity by process is complex for a number of reasons,
+the greatest is that inbound TCP traffic is asynchronous to the process.
+The easiest TCP traffic to match is writes, which this script demonstrates.
+However there are still issues - for an inbound telnet connection the
+writes are associated with the command, for example "ls -l", not something
+meaningful such as "in.telnetd".
+
+Scripts that match TCP traffic properly include tcpsnoop and tcptop.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B tcpwdist.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+command and argument list
+.TP
+value
+TCP write payload size in bytes
+.TP
+count
+number of writes
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+tcpwdist.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+tcpsnoop(1M), tcptop(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/threaded.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/threaded.d.1m
new file mode 100644
index 0000000..1722339
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/threaded.d.1m
@@ -0,0 +1,50 @@
+.TH threaded.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+threaded.d \- sample multi-threaded CPU usage. Uses DTrace.
+.SH SYNOPSIS
+.B threaded.d
+.SH DESCRIPTION
+This measures thread IDs as a process runs across multiple CPUs.
+It is a simple script that can help determine if a multi-threaded
+application is effectively using it's threads, or if the threads have
+serialised. See the example file in Docs/Examples/threaded_example.txt
+for a demonstration.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Any
+.SH STABILITY
+stable.
+.SH EXAMPLES
+.TP
+This runs until Ctrl\-C is hit.
+# 
+.B threaded.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+value
+thread ID
+.TP
+count
+number of samples
+.PP
+.SH SEE ALSO
+prstat \-L
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+threaded.d will run until Ctrl\-C is hit.
+.SH SEE ALSO
+dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/topsyscall.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/topsyscall.1m
new file mode 100644
index 0000000..cb0d98b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/topsyscall.1m
@@ -0,0 +1,73 @@
+.TH topsyscall 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+topsyscall \- top syscalls by syscall name. Uses DTrace.
+.SH SYNOPSIS
+.B topsyscall
+[-Cs] [interval [count]]
+.SH DESCRIPTION
+This program continually prints a report of the top system calls,
+and refreshes the display every 1 second or as specified at the
+command line.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - uses the hp_avenrun kernel symbol.
+.SH OPTIONS
+.TP
+\-C
+don't clear the screen
+.TP
+\-s
+print per second values
+.PP
+.SH EXAMPLES
+.TP
+Default output, 1 second updates,
+# 
+.B topsyscall
+.TP
+Print every 5 seconds,
+#
+.B topsyscall
+5
+.TP
+Print a scrolling output,
+#
+.B topsyscall
+\-C
+.PP
+.SH FIELDS
+.TP
+load avg
+load averages, see uptime(1)
+.TP
+syscalls
+total syscalls in this interval
+.TP
+syscalls/s
+syscalls per second
+.TP
+SYSCALL
+system call name
+.TP
+COUNT
+total syscalls in this interval
+.TP
+COUNT/s
+syscalls per second
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+topsyscall will run until Ctrl\-C is hit, or the specified
+interval is reached.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), prstat(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/topsysproc.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/topsysproc.1m
new file mode 100644
index 0000000..a0289ca
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/topsysproc.1m
@@ -0,0 +1,75 @@
+.TH topsysproc 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+topsysproc \- top syscalls by process name. Uses DTrace.
+.SH SYNOPSIS
+.B topsysproc
+[-Cs] [interval [count]]
+.SH DESCRIPTION
+This program continually prints a report of the number of system calls
+by process name, and refreshes the display every 1 second or as specified
+at the command line. Similar data can be fetched with "prstat -m".
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - uses the hp_avenrun kernel symbol.
+.SH OPTIONS
+.TP
+\-C
+don't clear the screen
+.TP
+\-s
+print per second values
+.PP
+.SH EXAMPLES
+.TP
+Default output, 1 second updates,
+# 
+.B topsysproc
+.TP
+Print every 5 seconds,
+#
+.B topsysproc
+5
+.TP
+Print a scrolling output,
+#
+.B topsysproc
+\-C
+.PP
+.SH FIELDS
+.TP
+load avg
+load averages, see uptime(1)
+.TP
+syscalls
+total syscalls in this interval
+.TP
+syscalls/s
+syscalls per second
+.TP
+PROCESS
+process name
+.TP
+COUNT
+total syscalls in this interval
+.TP
+COUNT/s
+syscalls per second
+.PP
+.SH NOTES
+There may be several PIDs with the same process name.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+topsysproc will run until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), prstat(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/udpstat.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/udpstat.d.1m
new file mode 100644
index 0000000..d14f7f8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/udpstat.d.1m
@@ -0,0 +1,55 @@
+.TH udpstat.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+udpstat.d \- print UDP statistics. Uses DTrace.
+.SH SYNOPSIS
+.B udpstat.d
+.SH DESCRIPTION
+udpstat.d is a DTrace program to print UDP statistics every second,
+retrieved from the MIB provider.
+
+The UDP statistics are documented in the mib2_tcp struct
+in /usr/include/inet/mib2.h; and also in the mib provider
+chapter of the DTrace Guide, found at 
+http://docs.sun.com/db/doc/817-6223.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the mib provider.
+.SH EXAMPLES
+.TP
+Print statistics every second,
+# 
+.B udpstat.d
+.PP
+.SH FIELDS
+.TP
+UDP_out
+UDP datagrams sent
+.TP
+UDP_outErr
+UDP datagrams errored on send
+.TP
+UDP_in
+UDP datagrams received
+.TP
+UDP_inErr
+UDP datagrams undeliverable
+.TP
+UDP_noPort
+UDP datagrams received to closed ports
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+udpstat.d will run forever until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/uname-a.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/uname-a.d.1m
new file mode 100644
index 0000000..64430d5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/uname-a.d.1m
@@ -0,0 +1,35 @@
+.TH uname\-a.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+uname\-a.d \- "uname \-a" demo in DTrace. Uses DTrace.
+.SH SYNOPSIS
+.B uname\-a.d
+.SH DESCRIPTION
+This has been written to demonstrate fetching the "uname -a" info
+from a DTrace script, which turns out to be all kernel variables.
+This is intended as a starting point for other DTrace scripts, by
+beginning with familiar statistics.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - uses various kernel symbols.
+.SH EXAMPLES
+.TP
+Print system call counts every second,
+# 
+.B uname\-c.d
+.PP
+.SH FIELDS
+See uname(1) manpage for documentation.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+uname(1), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/vmbypid.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/vmbypid.d.1m
new file mode 100644
index 0000000..e483f90
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/vmbypid.d.1m
@@ -0,0 +1,50 @@
+.TH vmbypid.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+vmbypid.d \- virtual memory stats by PID. Uses DTrace.
+.SH SYNOPSIS
+.B vmbypid.d
+.SH DESCRIPTION
+vmbypid.d is a simple DTrace program to print Virtual Memory
+statistics by process.
+
+The virtual memory statistics are documented in the cpu_vminfo struct
+in the /usr/include/sys/sysinfo.h file; and also in the vminfo provider
+chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the vminfo provider.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B vmbypid.d
+.PP
+.SH FIELDS
+.TP
+EXEC
+process name
+.TP
+PID
+process ID
+.TP
+VM
+Virtual Memory statistic
+.TP
+VALUE
+Value by which statistic was incremented
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+vmbypid.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), vmstat(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/vmstat-p.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/vmstat-p.d.1m
new file mode 100644
index 0000000..dff1410
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/vmstat-p.d.1m
@@ -0,0 +1,85 @@
+.TH vmstat-p.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+vmstat-p.d \- vmstat -p demo in DTrace. Uses DTrace.
+.SH SYNOPSIS
+.B vmstat-p.d
+.SH DESCRIPTION
+This has been written to demonstrate fetching similar data as vmstat
+from DTrace. This program is intended as a starting point for other
+DTrace scripts, by beginning with familiar statistics.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - uses various kernel symbols.
+.SH EXAMPLES
+.TP
+Print virtual memory statistics every second,
+# 
+.B vmstat-p.d
+.PP
+.SH FIELDS
+.TP
+swap
+virtual memory free, Kbytes
+.TP
+free
+free RAM, Kbytes
+.TP
+re
+page reclaims, Kbytes
+.TP
+mf
+minor faults, Kbytes
+.TP
+sr
+scan rate, pages
+.TP
+epi
+executable page ins, Kbytes
+.TP
+epo
+executable page outs, Kbytes
+.TP
+epf
+executable frees, Kbytes
+.TP
+api
+anonymous page ins, Kbytes
+.TP
+apo
+anonymous page outs, Kbytes
+.TP
+apf
+anonymous frees, Kbytes
+.TP
+fpi
+filesystem page ins, Kbytes
+.TP
+fpo
+filesystem page outs, Kbytes
+.TP
+fpf
+filesystem frees, Kbytes
+.PP
+.SH NOTES
+Most of the statistics are in units of kilobytes, unlike the
+original vmstat command which sometimes uses page counts.
+
+As this program does not use Kstat, there is no summary since boot line.
+
+Free RAM is both free free + cache free.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+vmstat-p.d will run until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+vmstat(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/vmstat.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/vmstat.d.1m
new file mode 100644
index 0000000..a743f09
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/vmstat.d.1m
@@ -0,0 +1,79 @@
+.TH vmstat.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+vmstat.d \- vmstat demo in DTrace. Uses DTrace.
+.SH SYNOPSIS
+.B vmstat.d
+.SH DESCRIPTION
+This has been written to demonstrate fetching the same data as vmstat
+from DTrace. This program is intended as a starting point for other
+DTrace scripts, by beginning with familiar statistics.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - uses various kernel symbols.
+.SH EXAMPLES
+.TP
+Print virtual memory statistics every second,
+# 
+.B vmstat.d
+.PP
+.SH FIELDS
+.TP
+w
+swapped out light weight processes
+.TP
+swap
+virtual memory free, Kbytes
+.TP
+free
+free RAM, Kbytes
+.TP
+re
+page reclaims, Kbytes
+.TP
+mf
+minor faults, Kbytes
+.TP
+pi
+page ins, Kbytes
+.TP
+po
+page outs, Kbytes
+.TP
+fr
+pages freed, Kbytes
+.TP
+sr
+scan rate, pages
+.TP
+in
+interrupts, number
+.TP
+sy
+system calls, number
+.TP
+cs
+context switches, number
+.PP
+.SH NOTES
+Most of the statistics are in units of kilobytes, unlike the
+original vmstat command which sometimes uses page counts.
+
+As this program does not use Kstat, there is no summary since boot line.
+
+Free RAM is both free free + cache free.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+vmstat.d will run until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+vmstat(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/vopstat.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/vopstat.1m
new file mode 100644
index 0000000..a0b1cdc
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/vopstat.1m
@@ -0,0 +1,77 @@
+.TH vopstat 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+vopstat \- vnode interface statistics. Uses DTrace.
+.SH SYNOPSIS
+.B vopstat [\-t] [/mountname]
+.SH DESCRIPTION
+This will either produce summary reports of vnode statistics, or
+trace activity.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH OPTIONS
+.TP
+\-t
+trace activity as it occurs
+.TP
+/mountname
+examine this FS only
+.PP
+.SH EXAMPLES
+.TP
+default output, summary each 5 secs,
+# 
+.B vopstat
+.TP
+only examine /var,
+#
+.B vopstat
+/var
+.TP
+trace activity to /var,
+#
+.B vopstat
+\-t /var
+.PP
+.SH FIELDS
+.TP
+Count
+number of calls
+.TP
+mSeconds
+total of elapsed times
+.TP
+Event
+vop call name
+.TP
+Device
+device instance name
+.TP
+Path
+full pathname to file
+.TP
+RW
+Read or Write
+.TP
+Size
+size in bytes, if available
+.TP
+Offset
+offset in bytes, if available
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+vopstat will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Richard McDougall
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/weblatency.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/weblatency.d.1m
new file mode 100644
index 0000000..043053b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/weblatency.d.1m
@@ -0,0 +1,63 @@
+.TH weblatency.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+weblatency.d \- website latency statistics. Uses DTrace.
+.SH SYNOPSIS
+.B weblatency.d
+.SH DESCRIPTION
+This prints statistics for hostnames that browers have set GET requests 
+for, in particular latency by hostname.
+
+The latency measured is from the browser sending the GET
+request to when the browser begins to recieve the response. It
+is an overall response time for the client, and encompasses
+connection speed delays, DNS lookups, proxy delays, and web server
+response time.
+
+This is written as an experimental tool, and may not work at all with
+your browser.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - depends on browser implementation.
+.SH EXAMPLES
+.TP
+Print report after Ctrl-C is hit,
+# 
+.B weblatency.d
+.PP
+.SH FIELDS
+.TP
+HOST
+hostname from URL
+.TP
+NUM
+number of GETs
+.TP
+AVGTIME(ms)
+Average time for response, ms
+.TP
+MAXTIME(ms)
+Maximum time for response, ms
+.PP
+.SH NOTES
+See the source code for the "BROWSER" variable, which sets the browser
+to trace (currently set to "mozilla-bin").
+.PP
+.SH IDEA
+Bryan Cantrill (who wrote an elegant version for Sol 10 update 1)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+weblatency.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/whatexec.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/whatexec.d.1m
new file mode 100644
index 0000000..d385c53
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/whatexec.d.1m
@@ -0,0 +1,53 @@
+.TH whatexec.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+whatexec.d \- Examine the type of files exec'd. Uses DTrace.
+.SH SYNOPSIS
+.B whatexec.d
+.SH DESCRIPTION
+This prints the first four chacacters of files that are executed.
+This traces the kernel function findexec_by_hdr(), which checks for
+a known magic number in the file's header.
+
+The idea came from a demo I heard about from the UK, where a
+"blue screen of death" was displayed for "MZ" files (although I
+haven't seen the script or the demo).
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Trace execs as they occur,
+# 
+.B whatexec.d
+.PP
+.SH FIELDS
+.TP
+PEXEC
+parent command name
+.TP
+EXEC
+pathname to file exec'd
+.TP
+OK
+is type runnable, Y/N
+.TP
+TYPE
+first four characters from file
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+whatexec.d will trace until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/woof.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/woof.d.1m
new file mode 100644
index 0000000..1f7e73a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/woof.d.1m
@@ -0,0 +1,46 @@
+.TH woof.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+woof.d \- Bark for new processes. Needs /dev/audio. Uses DTrace.
+.SH SYNOPSIS
+.B woof.d &
+.SH DESCRIPTION
+This is an audio alert daemon for process creation. It is a virtual dog which
+barks when it sees new processes. If many processes are being created
+quickly, it will bark a lot (and become a nuisance - not just the noise, 
+but also from consuming too much CPU).
+
+This exists in the DTraceToolkit more for entertainment than 
+practicality.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the proc provider, /usr/bin/audioplay, and bark.au.
+.SH EXAMPLES
+.TP
+Run the dog,
+# 
+.B woof.d &
+.TP
+Hear the dog,
+$ find /etc -type f -exec grep localhost {} +
+.TP
+Drive the dog crazy,
+$ find /etc -type f -exec grep localhost {} \\;
+.PP
+.SH NOTES
+Beware of the dog!
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+woof.d will exit on Ctrl-C.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+sdtaudiocontrol(1), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/wpm.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/wpm.d.1m
new file mode 100644
index 0000000..e5385b7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/wpm.d.1m
@@ -0,0 +1,34 @@
+.TH wpm.d 1m   "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+wpm.d - Measure words per minute of typing.
+.SH SYNOPSIS
+.B wpm.d
+commandname
+eg,
+wpm.d bash
+wpm.d vim
+.SH DESCRIPTION
+This script assumes that keystrokes arrive one at a time on STDIN. This
+isn't the case for all processes that read keyboard input (eg, sh).
+.SH OS
+Solaris
+.SH STABILITY
+stable - Written in DTrace (Solaris 10 3/05).
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B wpm.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+wpm.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/writebytes.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/writebytes.d.1m
new file mode 100644
index 0000000..2a98292
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/writebytes.d.1m
@@ -0,0 +1,47 @@
+.TH writebytes.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+writebytes.d \- write bytes by process name. Uses DTrace.
+.SH SYNOPSIS
+.B writebytes.d
+.SH DESCRIPTION
+writebytes.d is a DTrace OneLiner to a report of the number of 
+bytes write by process name.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B writebytes.d
+.PP
+.SH FIELDS
+.TP
+first field
+This is the process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+second field
+This is the number of bytes write.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+writebytes.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/writedist.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/writedist.d.1m
new file mode 100644
index 0000000..5bcb2e6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/writedist.d.1m
@@ -0,0 +1,54 @@
+.TH writedist.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+writedist.d \- write distrib. by process name. Uses DTrace.
+.SH SYNOPSIS
+.B writedist.d
+.SH DESCRIPTION
+writedist.d is a DTrace OneLiner to a report the write size and
+number of occurrences as a frequency distribution by process name.
+
+This can be useful to identify the behaviour of processes
+that are doing writes. Are they using many small writes, or 
+fewer large writes.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B writedist.d
+.PP
+.SH FIELDS
+.TP
+process name
+The process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+value
+The size in bytes
+.TP
+count
+The number of occurrences that were at least this size 
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+writedist.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/xcallsbypid.d.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/xcallsbypid.d.1m
new file mode 100644
index 0000000..564915a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/xcallsbypid.d.1m
@@ -0,0 +1,46 @@
+.TH xcallsbypid.d 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+xcallsbypid.d \- CPU cross calls by PID. Uses DTrace.
+.SH SYNOPSIS
+.B xcallsbypid.d
+.SH DESCRIPTION
+xcallsbypid.d reports the number of CPU cross calls by process name
+and process ID. Cross calls occur when a CPU requests another CPU to
+do work on it's behalf. A great number of these can be a burden
+on the system.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B xcallsbypid.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+XCALLS
+number cross calls
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+xcallsbypid.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+mpstat(1m), dtrace(1M)
+
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/xvmstat.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/xvmstat.1m
new file mode 100644
index 0000000..4096216
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/xvmstat.1m
@@ -0,0 +1,104 @@
+.TH xvmstat 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+xvmstat \- extended vmstat demo in DTrace. Uses DTrace.
+.SH SYNOPSIS
+.B xvmstat
+[interval [count]]
+.SH DESCRIPTION
+This has been written to demonstrate fetching similar data as vmstat
+from DTrace, with a few extra fields.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - needs various kernel symbols.
+.SH EXAMPLES
+.TP
+Print virtual memory statistics every second,
+# 
+.B xvmstat
+.TP
+Print every 5 seconds, 6 times,
+#
+.B xvmstat
+5 6
+.PP
+.SH FIELDS
+.TP
+w
+swapped out LWPs, number
+.TP
+swap
+virtual memory free, Mb
+.TP
+free
+free RAM, Mb
+.TP
+re
+page reclaims, pages
+.TP
+maj
+major faults, pages
+.TP
+mf
+minor faults, pages
+.TP
+cow
+copy-on-write faults, pages
+.TP
+pro
+protection faults, pages
+sr
+scan rate, pages
+.TP
+epi
+executable page ins, pages
+.TP
+epo
+executable page outs, pages
+.TP
+epf
+executable frees, pages
+.TP
+api
+anonymous page ins, pages
+.TP
+apo
+anonymous page outs, pages
+.TP
+apf
+anonymous frees, pages
+.TP
+fpi
+filesystem page ins, pages
+.TP
+fpo
+filesystem page outs, pages
+.TP
+fpf
+filesystem frees, pages
+.PP
+.SH NOTES
+Most of the statistics are in units of pages, unlike the
+original vmstat command which sometimes uses kilobytes.
+
+All page values are per second values.
+
+As this program does not use Kstat, there is no summary since boot line.
+
+Free RAM is both free free + cache free.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+xvmstat will run until Ctrl\-C is hit, or until the count argument
+has been satisfied.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+vmstat(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Man/man1m/zvmstat.1m b/external/cddl/dtracetoolkit/dist/Man/man1m/zvmstat.1m
new file mode 100644
index 0000000..5f97d41
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Man/man1m/zvmstat.1m
@@ -0,0 +1,101 @@
+.TH zvmstat 1m  "$Date: 2015/09/30 22:01:09 $" "USER COMMANDS"
+.SH NAME
+zvmstat \- print vmstat style info per Zone. Uses DTrace.
+.SH SYNOPSIS
+.B zvmstat
+[\-t] [interval [count]]
+.SH DESCRIPTION
+This program must be run from the global zone as root.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall and vminfo providers.
+.SH OPTIONS
+.TP
+\-t
+Print timestamps, string
+.TP
+interval
+Duration for each sample, seconds. default is 1.
+.TP
+count
+Number of samples. default is 1.
+.PP
+.SH EXAMPLES
+.TP
+Print virtual memory statistics every second,
+# 
+.B zvmstat
+.TP
+Print every 5 seconds, 6 times,
+#
+.B zvmstat
+5 6
+.PP
+.SH FIELDS
+.TP
+ZONE
+zonename
+.TP
+re
+page reclaims, pages
+.TP
+mf
+minor faults, pages
+.TP
+fr
+pages freed, pages
+.TP
+sr
+scan rate, pages
+.TP
+epi
+executable page ins, pages
+.TP
+epo
+executable page outs, pages
+.TP
+epf
+executable frees, pages
+.TP
+api
+anonymous page ins, pages
+.TP
+apo
+anonymous page outs, pages
+.TP
+apf
+anonymous frees, pages
+.TP
+fpi
+filesystem page ins, pages
+.TP
+fpo
+filesystem page outs, pages
+.TP
+fpf
+filesystem frees, pages
+.PP
+.SH NOTES
+Most of the statistics are in units of pages, unlike the
+original vmstat command which sometimes uses kilobytes.
+
+All page values are a total for the sample duration.
+
+As this program does not use Kstat, there is no summary since boot line.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+zvmstat will run until Ctrl\-C is hit, or until the count argument
+has been satisfied.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+vmstat(1M), dtrace(1M)
diff --git a/external/cddl/dtracetoolkit/dist/Mem/Readme b/external/cddl/dtracetoolkit/dist/Mem/Readme
new file mode 100644
index 0000000..c4f7e3d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Mem/Readme
@@ -0,0 +1,3 @@
+Mem - Memory based analysis
+
+   These scripts analyse memory and virtual memory related activity.
diff --git a/external/cddl/dtracetoolkit/dist/Mem/anonpgpid.d b/external/cddl/dtracetoolkit/dist/Mem/anonpgpid.d
new file mode 100755
index 0000000..782c2c1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Mem/anonpgpid.d
@@ -0,0 +1,75 @@
+#!/usr/sbin/dtrace -Cs
+/*
+ * anonpgpid.d - anonymous memory paging info by process on CPU.
+ *               Written using DTrace (Solaris 10 3/05).
+ *
+ * This scripts may help identify which processes are affected by a system
+ * with low memory, which is paging to the physical swap device. A report
+ * of the process on the CPU when paging occured is printed.
+ *
+ * $Id: anonpgpid.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	anonpgpid.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		CMD		Process name
+ *		D		Direction, Read or Write
+ *		BYTES		Total bytes during sample
+ *
+ * NOTES:
+ *
+ * This program is currently an approximation - often the process when writing
+ * pages to swap will be "pageout" the pageout scanner, or "rcapd" the
+ * resource capping daemon.
+ *
+ * THANKS: James Dickens
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * TODO:
+ *
+ * Track processes accurately. This is a little difficult - anonpgout
+ * occurs asynchronously to the process, and events related to this don't
+ * point back to the process.
+ *
+ * Author: Brendan Gregg  [Sydney, Australia]
+ *
+ * 25-Jul-2005	Brendan Gregg	Created this.
+ * 18-Feb-2006	   "      "	Last update.
+ */
+
+#include <sys/vnode.h>
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+fbt::pageio_setup:entry
+/((args[2]->v_flag & (VISSWAP | VSWAPLIKE)) != 0)/
+{
+	@total[pid, execname, args[3] & B_READ ? "R" : "W"] = sum(arg1);
+}
+
+dtrace:::END
+{
+	printf("%6s %-16s %1s %s\n", "PID", "CMD", "D", "BYTES");
+	printa("%6d %-16s %1s %@d\n", @total);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Mem/minfbypid.d b/external/cddl/dtracetoolkit/dist/Mem/minfbypid.d
new file mode 100755
index 0000000..53d87db
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Mem/minfbypid.d
@@ -0,0 +1,57 @@
+#!/usr/sbin/dtrace -s
+/*
+ * minfbypid.d - minor faults by PID.
+ *               Written using DTrace (Solaris 10 3/05)
+ *
+ * This program prints a report of minor faults by PID. Minor faults are
+ * an indiction of memory consumption. This script could be used to help
+ * determine which process was consuming the most memory during the sample.
+ *
+ * $Id: minfbypid.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	minfbypid.d		# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		process name
+ *		MINFAULTS	number of minor faults
+ *
+ * This is based on a script from DExplorer.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+vminfo:::as_fault
+{
+	@mem[pid, execname] = sum(arg0);
+}
+
+dtrace:::END
+{
+	printf("%6s %-16s %16s\n", "PID", "CMD", "MINFAULTS");
+	printa("%6d %-16s %@16d\n", @mem);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Mem/minfbyproc.d b/external/cddl/dtracetoolkit/dist/Mem/minfbyproc.d
new file mode 100755
index 0000000..526185e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Mem/minfbyproc.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * minfbyproc.d - minor faults by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: minfbyproc.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ */
+
+vminfo:::as_fault { @mem[execname] = sum(arg0); }
diff --git a/external/cddl/dtracetoolkit/dist/Mem/pgpginbypid.d b/external/cddl/dtracetoolkit/dist/Mem/pgpginbypid.d
new file mode 100755
index 0000000..ca2abfd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Mem/pgpginbypid.d
@@ -0,0 +1,53 @@
+#!/usr/sbin/dtrace -s
+/*
+ * pgpginbypid.d - pages paged in by PID.
+ *                 Writen using DTrace (Solaris 10 3/05).
+ *
+ * $Id: pgpginbypid.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	pgpginbypid.d		# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ * 		CMD		process name
+ *		PAGES		number of pages paged in
+ *
+ * This is based on a script from DExplorer.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+vminfo:::pgpgin
+{
+	@pg[pid, execname] = sum(arg0);
+}
+
+dtrace:::END
+{
+	printf("%6s %-16s %16s\n", "PID", "CMD", "PAGES");
+	printa("%6d %-16s %@16d\n", @pg);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Mem/pgpginbyproc.d b/external/cddl/dtracetoolkit/dist/Mem/pgpginbyproc.d
new file mode 100755
index 0000000..1ea1bb8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Mem/pgpginbyproc.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * pgpginbyproc.d - pages paged in by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: pgpginbyproc.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ */
+
+vminfo:::pgpgin { @pg[execname] = sum(arg0); }
diff --git a/external/cddl/dtracetoolkit/dist/Mem/swapinfo.d b/external/cddl/dtracetoolkit/dist/Mem/swapinfo.d
new file mode 100755
index 0000000..0239fdc
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Mem/swapinfo.d
@@ -0,0 +1,149 @@
+#!/usr/sbin/dtrace -s
+/*
+ * swapinfo.d - print virtual memory info (swap).
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * Prints swap usage details for RAM and disk based swap.
+ * This script is UNDER CONSTRUCTION, check for newer versions.
+ *
+ * $Id: swapinfo.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:       swapinfo.d	(check for newer versions)
+ *
+ * FIELDS:
+ *              RAM Total       Total RAM installed
+ *              RAM Unusable    RAM consumed by the OBP and TSBs
+ *              RAM Kernel      Kernel resident in RAM (and usually locked)
+ *              RAM Locked      Locked memory pages from swap (Anon)
+ *              RAM Used        anon + exec + file pages used
+ *              RAM Free        free memory + page cache free
+ *              Disk Total      Total disk swap configured
+ *              Disk Resv       Disk swap allocated + reserved
+ *              Disk Avail      Disk swap available for reservation
+ *              Swap Total      Total Virtual Memory usable
+ *              Swap Resv       VM allocated + reserved
+ *              Swap Avail      VM available for reservation
+ *              Swap MinFree    VM kept free from reservations
+ *
+ * SEE ALSO: swapinfo - K9Toolkit, http://www.brendangregg.com/k9toolkit.html
+ *           vmstat 1 2; swap -s; echo ::memstat | mdb -k
+ *           RMCmem - The MemTool Package
+ *           RICHPse - The SE Toolkit
+ *           "Clearing up swap space confusion" Unix Insider, Adrian Cockcroft
+ *           "Solaris Internals", Jim Mauro, Richard McDougall
+ *           /usr/include/vm/anon.h, /usr/include/sys/systm.h
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * Author: Brendan Gregg  [Sydney, Australia]
+ *
+ * 11-Jun-2005  Brendan Gregg   Created this.
+ * 24-Apr-2006	   "	  "	Improved disk measurements; changed terms.
+ * 24-Apr-2006	   "	  "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option bufsize=16k
+
+inline int DEBUG = 0;
+
+dtrace:::BEGIN
+{
+	/* Debug stats */
+	this->ani_max = `k_anoninfo.ani_max;
+	this->ani_phys_resv = `k_anoninfo.ani_phys_resv;
+	this->ani_mem_resv = `k_anoninfo.ani_mem_resv;
+	this->ani_locked = `k_anoninfo.ani_locked_swap;
+	this->availrmem = `availrmem;
+
+	/* RAM stats */
+	this->ram_total = `physinstalled;
+	this->unusable  = `physinstalled - `physmem;
+	this->locked    = `pages_locked;
+	this->ram_used  = `availrmem - `freemem;
+	this->freemem   = `freemem;
+	this->kernel    = `physmem - `pages_locked - `availrmem;
+
+	/* Disk stats */
+	this->disk_total = `k_anoninfo.ani_max;
+	this->disk_resv = `k_anoninfo.ani_phys_resv;
+	this->disk_avail = this->disk_total - this->disk_resv;
+
+	/* Total Swap stats */
+	this->minfree = `swapfs_minfree;
+	this->reserve = `swapfs_reserve;
+	/* this is TOTAL_AVAILABLE_SWAP from /usr/include/vm/anon.h, */
+	this->swap_total = `k_anoninfo.ani_max +
+	    (`availrmem - `swapfs_minfree > 0 ?
+	    `availrmem - `swapfs_minfree : 0);
+	/* this is CURRENT_TOTAL_AVAILABLE_SWAP from /usr/include/vm/anon.h, */
+	this->swap_avail = `k_anoninfo.ani_max - `k_anoninfo.ani_phys_resv +
+	    (`availrmem - `swapfs_minfree > 0 ?
+	    `availrmem - `swapfs_minfree : 0);
+	this->swap_resv = this->swap_total - this->swap_avail;
+
+	/* Convert to Mbytes */
+	this->ani_phys_resv *= `_pagesize;  this->ani_phys_resv /= 1048576;
+	this->ani_mem_resv *= `_pagesize;  this->ani_mem_resv /= 1048576;
+	this->ani_locked *= `_pagesize;  this->ani_locked /= 1048576;
+	this->ani_max	*= `_pagesize;  this->ani_max	/= 1048576;
+	this->availrmem	*= `_pagesize;  this->availrmem	/= 1048576;
+	this->ram_total	*= `_pagesize;  this->ram_total	/= 1048576;
+	this->unusable	*= `_pagesize;  this->unusable	/= 1048576;
+	this->kernel	*= `_pagesize;  this->kernel	/= 1048576;
+	this->locked	*= `_pagesize;  this->locked	/= 1048576;
+	this->ram_used	*= `_pagesize;  this->ram_used	/= 1048576;
+	this->freemem	*= `_pagesize;  this->freemem	/= 1048576;
+	this->disk_total *= `_pagesize; this->disk_total /= 1048576;
+	this->disk_resv	*= `_pagesize;  this->disk_resv	/= 1048576;
+	this->disk_avail *= `_pagesize;  this->disk_avail /= 1048576;
+	this->swap_total *= `_pagesize; this->swap_total /= 1048576;
+	this->swap_avail *= `_pagesize;  this->swap_avail /= 1048576;
+	this->swap_resv	*= `_pagesize;  this->swap_resv	/= 1048576;
+	this->minfree	*= `_pagesize;  this->minfree	/= 1048576;
+	this->reserve	*= `_pagesize;  this->reserve	/= 1048576;
+
+	/* Print debug */
+	DEBUG ? printf("DEBUG   availrmem %5d MB\n", this->availrmem) : 1;
+	DEBUG ? printf("DEBUG     freemem %5d MB\n", this->freemem) : 1;
+	DEBUG ? printf("DEBUG     ani_max %5d MB\n", this->ani_max) : 1;
+	DEBUG ? printf("DEBUG ani_phys_re %5d MB\n", this->ani_phys_resv) : 1;
+	DEBUG ? printf("DEBUG  ani_mem_re %5d MB\n", this->ani_mem_resv) : 1;
+	DEBUG ? printf("DEBUG  ani_locked %5d MB\n", this->ani_locked) : 1;
+	DEBUG ? printf("DEBUG     reserve %5d MB\n", this->reserve) : 1;
+	DEBUG ? printf("\n") : 1;
+
+	/* Print report */
+	printf("RAM  _______Total %5d MB\n", this->ram_total);
+	printf("RAM      Unusable %5d MB\n", this->unusable);
+	printf("RAM        Kernel %5d MB\n", this->kernel);
+	printf("RAM        Locked %5d MB\n", this->locked);
+	printf("RAM          Used %5d MB\n", this->ram_used);
+	printf("RAM          Free %5d MB\n", this->freemem);
+	printf("\n");
+	printf("Disk _______Total %5d MB\n", this->disk_total);
+	printf("Disk         Resv %5d MB\n", this->disk_resv);
+	printf("Disk        Avail %5d MB\n", this->disk_avail);
+	printf("\n");
+	printf("Swap _______Total %5d MB\n", this->swap_total);
+	printf("Swap         Resv %5d MB\n", this->swap_resv);
+	printf("Swap        Avail %5d MB\n", this->swap_avail);
+	printf("Swap    (Minfree) %5d MB\n", this->minfree);
+
+	DEBUG ? printf("\nNow run other commands for confirmation.\n") : 1;
+	! DEBUG ? exit(0) : 1;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Mem/vmbypid.d b/external/cddl/dtracetoolkit/dist/Mem/vmbypid.d
new file mode 100755
index 0000000..7c7437a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Mem/vmbypid.d
@@ -0,0 +1,54 @@
+#!/usr/sbin/dtrace -s
+/*
+ * vmbypid.d - print vminfo events by process. DTrace.
+ *
+ * $Id: vmbypid.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	vmbypid.d
+ *
+ * FIELDS:
+ *		EXEC	Process name
+ *		PID	Process ID
+ * 		VM	Virtual Memory statistic (/usr/include/sys/sysinfo.h)
+ *		VALUE	Value by which statistic was incremented
+ *
+ * The virtual memory statistics are documented in the cpu_vminfo struct
+ * in the /usr/include/sys/sysinfo.h file; and also in the vminfo provider
+ * chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 14-May-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+vminfo:::
+{
+	@VM[execname, pid, probename] = sum(arg0);
+}
+
+dtrace:::END {
+	printf("%16s %8s %22s %8s\n", "EXEC", "PID", "VM", "VALUE");
+	printa("%16s %8d %22s %@8d\n", @VM);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Mem/vmstat-p.d b/external/cddl/dtracetoolkit/dist/Mem/vmstat-p.d
new file mode 100755
index 0000000..eb420b7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Mem/vmstat-p.d
@@ -0,0 +1,155 @@
+#!/usr/sbin/dtrace -s
+/*
+ * vmstat-p.d - vmstat -p demo in DTrace.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * This has been written to demonstrate fetching similar data as vmstat
+ * from DTrace. This program is intended as a starting point for other
+ * DTrace scripts, by beginning with familiar statistics.
+ *
+ * $Id: vmstat-p.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	vmstat-p.d
+ *
+ * FIELDS:
+ *		swap	virtual memory free	Kbytes
+ *		free	free RAM		Kbytes
+ *		re	page reclaims		Kbytes
+ *		mf	minor faults		Kbytes
+ *		sr	scan rate		pages
+ *		epi	executable page ins	Kbytes
+ *		epo	executable page outs	Kbytes
+ *		epf	executable frees	Kbytes
+ *		api	anonymous page ins	Kbytes
+ *		apo	anonymous page outs	Kbytes
+ *		apf	anonymous frees		Kbytes
+ *		fpi	filesystem page ins	Kbytes
+ *		fpo	filesystem page outs	Kbytes
+ *		fpf	filesystem frees	Kbytes
+ *
+ * NOTES:
+ *	Most of the statistics are in units of kilobytes, unlike the
+ *	original vmstat command which sometimes uses page counts.
+ *	As this program does not use Kstat, there is no summary since
+ *	boot line. Free RAM is both free free + cache free.
+ *
+ * SEE ALSO:	vmstat(1M)
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 11-Jun-2005  Brendan Gregg   Created this.
+ * 08-Jan-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+inline int SCREEN = 21;
+
+/*
+ * Initialise variables
+ */
+dtrace:::BEGIN
+{
+	pi = 0; po = 0; re = 0; sr = 0; mf = 0; fr = 0;
+	sy = 0; in = 0; cs = 0; maj = 0; cow = 0; pro = 0;
+	epi = 0; epo = 0; epf = 0; api = 0; apo = 0; apf = 0;
+	fpi = 0; fpo = 0; fpf = 0;
+	lines = SCREEN + 1;
+}
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN,
+tick-1sec
+/lines++ > SCREEN/
+{
+	printf("%14s %13s %16s %14s %13s\n",
+	    "memory", "page", "executable", "anonymous", "filesystem");
+	printf("%9s %7s %5s %4s %3s ",
+	    "swap", "free", "re", "mf", "sr");
+	printf("%4s %4s %4s %4s %4s %4s %4s %4s %4s\n",
+	    "epi", "epo", "epf", "api", "apo", "apf", "fpi", "fpo", "fpf");
+	lines = 0;
+}
+
+/*
+ * Probe events
+ */
+vminfo:::pgrec	   { re += arg0; }
+vminfo:::scan	   { sr += arg0; }
+vminfo:::as_fault  { mf += arg0; }
+vminfo:::execpgin  { epi += arg0; }
+vminfo:::execpgout { epo += arg0; }
+vminfo:::execfree  { epf += arg0; }
+vminfo:::anonpgin  { api += arg0; }
+vminfo:::anonpgout { apo += arg0; }
+vminfo:::anonfree  { apf += arg0; }
+vminfo:::fspgin    { fpi += arg0; }
+vminfo:::fspgout   { fpo += arg0; }
+vminfo:::fsfree    { fpf += arg0; }
+
+/*
+ * Print output line
+ */
+profile:::tick-1sec
+{
+	/* fetch free mem */
+	this->free = `freemem;
+
+	/*
+	 * fetch free swap
+	 *
+	 * free swap is described in /usr/include/vm/anon.h as,
+	 * MAX(ani_max - ani_resv, 0) + (availrmem - swapfs_minfree)
+	 */
+	this->ani_max = `k_anoninfo.ani_max;
+	this->ani_resv = `k_anoninfo.ani_phys_resv + `k_anoninfo.ani_mem_resv;
+	this->swap = (this->ani_max - this->ani_resv > 0 ?
+	    this->ani_max - this->ani_resv : 0) + `availrmem - `swapfs_minfree;
+
+	/* fetch w */
+	this->w = `nswapped;
+
+	/* convert to Kbytes */
+	epi *= `_pagesize / 1024;
+	epo *= `_pagesize / 1024;
+	epf *= `_pagesize / 1024;
+	api *= `_pagesize / 1024;
+	apo *= `_pagesize / 1024;
+	apf *= `_pagesize / 1024;
+	fpi *= `_pagesize / 1024;
+	fpo *= `_pagesize / 1024;
+	fpf *= `_pagesize / 1024;
+	re  *= `_pagesize / 1024;
+	sr  *= `_pagesize / 1024;
+	mf  *= `_pagesize / 1024;
+	this->swap *= `_pagesize / 1024;
+	this->free *= `_pagesize / 1024;
+
+	/* print line */
+	printf("%9d %7d %5d %4d %3d ",
+	    this->swap, this->free, re, mf, sr);
+	printf("%4d %4d %4d %4d %4d %4d %4d %4d %4d\n",
+	    epi, epo, epf, api, apo, apf, fpi, fpo, fpf);
+
+	/* clear counters */
+	pi = 0; po = 0; re = 0; sr = 0; mf = 0; fr = 0;
+	sy = 0; in = 0; cs = 0; maj = 0; cow = 0; pro = 0;
+	epi = 0; epo = 0; epf = 0; api = 0; apo = 0; apf = 0;
+	fpi = 0; fpo = 0; fpf = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Mem/vmstat.d b/external/cddl/dtracetoolkit/dist/Mem/vmstat.d
new file mode 100755
index 0000000..89e5b4a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Mem/vmstat.d
@@ -0,0 +1,137 @@
+#!/usr/sbin/dtrace -s
+/*
+ * vmstat.d - vmstat demo in DTrace.
+ *            Written using DTrace (Solaris 10 3/05).
+ *
+ * This has been written to demonstrate fetching the same data as vmstat
+ * from DTrace. This program is intended as a starting point for other
+ * DTrace scripts, by beginning with familiar statistics.
+ *
+ * $Id: vmstat.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	vmstat.d
+ *
+ * FIELDS:
+ *		w	swapped out LWPs	number
+ *		swap	virtual memory free	Kbytes
+ *		free	free RAM		Kbytes
+ *		re	page reclaims		Kbytes
+ *		mf	minor faults		Kbytes
+ *		pi	page ins		Kbytes
+ *		po	page outs		Kbytes
+ *		fr	pages freed		Kbytes
+ *		sr	scan rate		pages
+ *		in	interrupts		number
+ *		sy	system calls		number
+ *		cs	context switches	number
+ *
+ * NOTES:
+ *  Most of the statistics are in units of kilobytes, unlike the
+ *  original vmstat command which sometimes uses page counts.
+ *  As this program does not use Kstat, there is no summary since boot line.
+ *  Free RAM is both free free + cache free.
+ *
+ * SEE ALSO:	vmstat(1M)
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 11-Jun-2005  Brendan Gregg   Created this.
+ * 08-Jan-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+inline int SCREEN = 21;
+
+/*
+ * Initialise variables
+ */
+dtrace:::BEGIN
+{
+	pi = 0; po = 0; re = 0; sr = 0; mf = 0; fr = 0;
+	sy = 0; in = 0; cs = 0;
+	lines = SCREEN + 1;
+}
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/lines++ > SCREEN/
+{
+	printf(" %1s %10s %8s %5s %5s %4s %4s %4s %4s %5s %6s %4s\n",
+	    "w", "swap", "free", "re", "mf", "pi", "po", "fr", "sr",
+	    "in", "sy", "cs");
+	lines = 0;
+}
+
+/*
+ * Probe events
+ */
+vminfo:::pgpgin   { pi += arg0; }
+vminfo:::pgpgout  { po += arg0; }
+vminfo:::pgrec    { re += arg0; }
+vminfo:::scan	  { sr += arg0; }
+vminfo:::as_fault { mf += arg0; }
+vminfo:::dfree    { fr += arg0; }
+
+syscall:::entry		{ sy++; }
+sdt:::interrupt-start	{ in++; }
+sched::resume:on-cpu	{ cs++; }
+
+/*
+ * Print output line
+ */
+profile:::tick-1sec
+{
+	/* fetch free mem */
+	this->free = `freemem;
+
+	/*
+	 * fetch free swap
+	 *
+	 * free swap is described in /usr/include/vm/anon.h as,
+	 * MAX(ani_max - ani_resv, 0) + (availrmem - swapfs_minfree)
+	 */
+	this->ani_max = `k_anoninfo.ani_max;
+	this->ani_resv = `k_anoninfo.ani_phys_resv + `k_anoninfo.ani_mem_resv;
+	this->swap = (this->ani_max - this->ani_resv > 0 ?
+	    this->ani_max - this->ani_resv : 0) + `availrmem - `swapfs_minfree;
+
+	/* fetch w */
+	this->w = `nswapped;
+
+	/* convert to Kbytes */
+	pi *= `_pagesize / 1024;
+	po *= `_pagesize / 1024;
+	re *= `_pagesize / 1024;
+	sr *= `_pagesize / 1024;
+	mf *= `_pagesize / 1024;
+	fr *= `_pagesize / 1024;
+	this->swap *= `_pagesize / 1024;
+	this->free *= `_pagesize / 1024;
+
+	/* print line */
+	printf(" %1d %10d %8d %5d %5d %4d %4d %4d %4d %5d %6d %4d\n",
+	    this->w, this->swap, this->free, re, mf, pi, po, fr, sr,
+	    in, sy, cs);
+
+	/* clear counters */
+	pi = 0; po = 0; re = 0; sr = 0; mf = 0; fr = 0;
+	sy = 0; in = 0; cs = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Mem/xvmstat b/external/cddl/dtracetoolkit/dist/Mem/xvmstat
new file mode 100755
index 0000000..fa5fd6e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Mem/xvmstat
@@ -0,0 +1,217 @@
+#!/usr/bin/sh
+#
+# xvmstat - extended vmstat demo in DTrace.
+#           Written using DTrace (Solaris 10 3/05).
+#
+# This has been written to demonstrate fetching similar data as vmstat
+# from DTrace, with a few extra fields.
+#
+# $Id: xvmstat,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# USAGE:	xvmstat [interval [count]]
+#
+# FIELDS: 
+#		w	swapped out LWPs	number
+#		swap	virtual memory free	Mbytes
+#		free	free RAM		Mbytes
+#		re	page reclaims		pages/sec
+#		maj	major faults		pages/sec
+#		mf	minor faults		pages/sec
+#		cow	copy-on-write faults	pages/sec
+#		pro	protection faults	pages/sec
+#		sr	scan rate		pages/sec
+#		epi	executable page ins	pages/sec
+#		epo	executable page outs	pages/sec
+#		epf	executable frees	pages/sec
+#		api	anonymous page ins	pages/sec
+#		apo	anonymous page outs	pages/sec
+#		apf	anonymous frees		pages/sec
+#		fpi	filesystem page ins	pages/sec
+#		fpo	filesystem page outs	pages/sec
+#		fpf	filesystem frees	pages/sec
+#
+# NOTES: 
+# - Most of the statistics are in units of pages, unlike the
+#   original vmstat command which sometimes uses kilobytes. 
+# - As this program does not use Kstat, there is no summary since boot line.
+# - Free RAM is both free free + cache free.
+#
+# SEE ALSO:	vmstat(1M)
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 12-Jun-2005	Brendan Gregg	Created this.
+# 01-Mar-2006	   "      "	Last update.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default values
+interval=1; count=-1
+
+### check arguments
+if [ "$1" = "-h" -o "$1" = "--help" ]; then
+	cat <<-END >&2
+	USAGE: xvmstat [interval [count]]
+	       xvmstat          # 1 second samples, infinite
+	  eg,
+	       xvmstat 1        # print every 1 second
+	       xvmstat 5 6      # print every 5 seconds, 6 times
+	END
+	exit 1
+fi
+
+### argument logic
+if [ "$1" -gt 0 ]; then
+        interval=$1; count=-1; shift
+fi
+if [ "$1" -gt 0 ]; then
+        count=$1; shift
+fi
+if [ $interval -eq 0 ]; then
+	interval=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$count';
+ inline int SCREEN = 21;
+
+ /*
+  * Initialise variables
+  */
+ dtrace:::BEGIN
+ {
+	re = 0; sr = 0; mf = 0; maj = 0; cow = 0; pro = 0;
+	epi = 0; epo = 0; epf = 0; api = 0; apo = 0; apf = 0;
+	fpi = 0; fpo = 0; fpf = 0;
+	lines = SCREEN + 1;
+	counts = COUNTER;
+	secs = INTERVAL;
+	first = 1;
+ }
+
+ profile:::tick-1sec
+ {
+        secs--;
+ }
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN,
+ profile:::tick-1sec
+ /first || (secs == 0 && lines > SCREEN)/
+ {
+	printf("%2s %6s %5s %5s %3s %4s %3s %3s %3s ",
+	    "w", "swap", "free", "re", "maj", "mf", "cow", "pro", "sr");
+	printf("%3s %3s %3s %3s %3s %3s %3s %3s %3s\n",
+	    "epi", "epo", "epf", "api", "apo", "apf", "fpi", "fpo", "fpf");
+	lines = 0;
+	first = 0;
+ }
+
+ /*
+  * Probe events
+  */
+ vminfo:::pgrec      { re += arg0; }
+ vminfo:::scan       { sr += arg0; }
+ vminfo:::as_fault   { mf += arg0; }
+ vminfo:::execpgin   { epi += arg0; }
+ vminfo:::execpgout  { epo += arg0; }
+ vminfo:::execfree   { epf += arg0; }
+ vminfo:::anonpgin   { api += arg0; }
+ vminfo:::anonpgout  { apo += arg0; }
+ vminfo:::anonfree   { apf += arg0; }
+ vminfo:::fspgin     { fpi += arg0; }
+ vminfo:::fspgout    { fpo += arg0; }
+ vminfo:::fsfree     { fpf += arg0; }
+ vminfo:::maj_fault  { maj += arg0; }
+ vminfo:::cow_fault  { cow += arg0; }
+ vminfo:::prot_fault { pro += arg0; }
+
+ /* 
+  * Print output line
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* fetch free mem */
+	this->free = `freemem;
+
+	/*
+	 * fetch free swap
+	 *
+	 * free swap is described in /usr/include/vm/anon.h as,
+	 * MAX(ani_max - ani_resv, 0) + (availrmem - swapfs_minfree)
+	 */
+	this->ani_max = `k_anoninfo.ani_max;
+	this->ani_resv = `k_anoninfo.ani_phys_resv + `k_anoninfo.ani_mem_resv;
+	this->swap = (this->ani_max - this->ani_resv > 0 ?
+	    this->ani_max - this->ani_resv : 0) + `availrmem - `swapfs_minfree;
+
+	/* fetch w */
+	this->w = `nswapped;
+
+	/* convert to Mbytes */
+	this->swap *= `_pagesize; this->swap /= 1048576;
+	this->free *= `_pagesize; this->free /= 1048576;
+
+	/* convert to per second values */
+	re  /= INTERVAL; maj /= INTERVAL; mf  /= INTERVAL;
+	cow /= INTERVAL; pro /= INTERVAL; sr  /= INTERVAL;
+	epi /= INTERVAL; epo /= INTERVAL; epf /= INTERVAL;
+	api /= INTERVAL; apo /= INTERVAL; apf /= INTERVAL;
+	fpi /= INTERVAL; fpo /= INTERVAL; fpf /= INTERVAL;
+
+	/* print line */
+	printf("%2d %6d %5d %5d %3d %4d %3d %3d %3d ",
+	    this->w, this->swap, this->free, re, maj, mf, cow, pro, sr);
+	printf("%3d %3d %3d %3d %3d %3d %3d %3d %3d\n",
+	    epi, epo, epf, api, apo, apf, fpi, fpo, fpf);
+
+	/* clear counters */
+	re = 0; sr = 0; mf = 0; maj = 0; cow = 0; pro = 0;
+	epi = 0; epo = 0; epf = 0; api = 0; apo = 0; apf = 0;
+	fpi = 0; fpo = 0; fpf = 0;
+
+	/* process counts */
+	secs = INTERVAL;
+	counts--;
+	lines++;
+ }
+
+ /*
+  * End
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Misc/Readme b/external/cddl/dtracetoolkit/dist/Misc/Readme
new file mode 100644
index 0000000..2b77f60
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Misc/Readme
@@ -0,0 +1,5 @@
+Extra - Extra DTrace scripts
+
+   These are scripts that fall into no other category. They probably aren't
+   very useful, and are here as a particular coding example rather than
+   a useful tool.
diff --git a/external/cddl/dtracetoolkit/dist/Misc/guess.d b/external/cddl/dtracetoolkit/dist/Misc/guess.d
new file mode 100755
index 0000000..81f2916
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Misc/guess.d
@@ -0,0 +1,118 @@
+#!/usr/sbin/dtrace -wqs
+/*
+ * guess.d - guessing game in D (DTrace)
+ *
+ * $Id: guess.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: guess.d
+ *
+ * SEE: http://www.brendangregg.com/guessinggame.html
+ *
+ * This is written to demonstrate this language versus the same program
+ * written in other languages.
+ *
+ * 11-May-2005	Brendan Gregg	Created this.
+ */
+
+inline string scorefile = "highscores_d";
+
+dtrace:::BEGIN
+{
+	printf("guess.d - Guess a number between 1 and 100\n\n");
+	num = 1;
+	state = 1;
+
+	/* Generate random number */
+	answer = (rand() % 100) + 1;
+	answer = answer > 0 ? answer : - answer;
+}
+
+syscall::write:entry
+/state == 1 && pid == $pid/
+{
+	state = 2;
+	printf("Enter guess %d: ", num);
+	system("read guess");
+	pos = 0;
+}
+
+syscall::read:entry
+/state == 2 && ppid == $pid && arg0 == 3/
+{
+	self->inguess = 1;
+	self->buf = arg1;
+}
+
+syscall::read:return
+/self->inguess/
+{
+	key = copyin(self->buf, arg0);
+	keys[pos] = *(char *)key;
+	self->buf = 0;
+	pos++;
+}
+
+syscall::read:return
+/self->inguess && keys[pos-1] == '\n'/
+{
+	pos -= 2;
+	fac = 1;
+	guess = fac * (keys[pos] - '0');
+	pos--;
+	fac *= 10;
+	guess = pos >= 0 ? guess + fac * (keys[pos] - '0') : guess;
+	pos--;
+	fac *= 10;
+	guess = pos >= 0 ? guess + fac * (keys[pos] - '0') : guess;
+	self->doneguess = 1;
+}
+
+syscall::read:return
+/self->inguess/
+{
+	self->inguess = 0;
+}
+
+/* Play game */
+syscall::read:return
+/self->doneguess && guess == answer/
+{
+	printf("Correct! That took %d guesses.\n\n", num);
+	self->doneguess = 0;
+	state = 3;
+	printf("Please enter your name: ");
+	system("/usr/bin/read name");
+}
+
+syscall::read:return
+/self->doneguess && guess != answer/
+{
+	num++;
+
+	printf("%s...\n", guess < answer ? "Higher" : "Lower");
+
+	printf("Enter guess %d: ", num);
+	system("read line");
+	pos = 0;
+}
+
+syscall::read:entry
+/state == 3 && curthread->t_procp->p_parent->p_ppid == $pid && arg0 == 0/
+{
+	self->inname = 1;
+	self->buf = arg1;
+}
+
+/* Save high score */
+syscall::read:return
+/self->inname/
+{
+	self->inname = 0;
+	name = stringof(copyin(self->buf, arg0 - 1));
+	system("echo %s %d >> %s", name, num, scorefile);
+
+	/* Print high scores */
+	printf("\nPrevious high scores,\n");
+	system("cat %s", scorefile);
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Misc/woof.d b/external/cddl/dtracetoolkit/dist/Misc/woof.d
new file mode 100755
index 0000000..aec00ea
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Misc/woof.d
@@ -0,0 +1,63 @@
+#!/usr/sbin/dtrace -s
+/*
+ * woof.d - Bark whenever new processes appear. Needs /dev/audio.
+ *          Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: woof.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:       woof.d &
+ *
+ * SEE ALSO:    /usr/dt/bin/sdtaudiocontrol     # to set volume
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 14-Aug-2006	Brendan Gregg	Created this.
+ * 14-Aug-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option destructive
+#pragma D option switchrate=10hz
+
+inline int SCREEN_OUTPUT = 0;	/* Set to 1 for screen output */
+
+/* barks prevents woof.d from barking too much (up to 20 barks/second) */
+int barks;
+
+dtrace:::BEGIN
+{
+	SCREEN_OUTPUT ? trace("Beware of the dog!\n") : 1;
+}
+
+/*
+ * Call the shell to run a background audioplay command (cat > /dev/audio
+ * doesn't always work). One problem this creates is a feedback loop,
+ * where we bark at our own barks, or at other dogs barks; entertaining
+ * as this is, it can really slog the system and has been avoided by
+ * checking our ancestory.
+ */
+proc:::exec-success
+/!progenyof($pid) && barks++ < 2/
+{
+	SCREEN_OUTPUT ? trace("Woof! ") : 1;
+	system("audioplay /usr/share/audio/samples/au/bark.au &");
+}
+
+profile:::tick-10hz
+{
+	barks = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Misc/wpm.d b/external/cddl/dtracetoolkit/dist/Misc/wpm.d
new file mode 100755
index 0000000..1779c26
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Misc/wpm.d
@@ -0,0 +1,143 @@
+#!/usr/sbin/dtrace -s
+/*
+ * wpm.d - Measure words per minute of typing.
+ *         Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: wpm.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:       wpm.d commandname
+ *   eg,
+ *		wpm.d bash
+ *		wpm.d vim
+ *
+ * This script assumes that keystrokes arrive one at a time on STDIN. This
+ * isn't the case for all processes that read keyboard input (eg, sh).
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 05-Aug-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+#pragma D option defaultargs
+
+inline int STDIN = 0;
+
+enum tracing_state {
+	BEGIN,
+	TRACING
+};
+
+dtrace:::BEGIN
+/$$1 == ""/
+{
+	trace("USAGE: wpm.d commandname\n");
+	trace("  eg,\n");
+	trace("       wpm.d bash\n");
+	trace("       wpm.d vim\n");
+	exit(1);
+}
+
+dtrace:::BEGIN
+{
+	state = BEGIN;
+	keys = 0;
+	words = 0;
+	wordsize = 0;
+	countdown = 5;
+	last = 0;
+	printf("Measuring will start in : %2d seconds", countdown);
+}
+
+profile:::tick-1sec
+/--countdown >= 0/
+{
+	printf("\b\b\b\b\b\b\b\b\b\b%2d seconds", countdown);
+}
+
+profile:::tick-1sec
+/state == BEGIN && countdown == -1/
+{
+	state = TRACING;
+	countdown = 60;
+	printf("\nMeasuring will stop in  : %2d seconds", countdown);
+}
+
+syscall::read:entry
+/state == TRACING && execname == $$1 && arg0 == STDIN/
+{
+	self->buf = arg1;
+}
+
+syscall::read:return
+/self->buf && last/
+{
+	this->elapsed = (timestamp - last) / 1000000;
+	@dist = quantize(this->elapsed);
+	@avg = avg(this->elapsed);
+	@min = min(this->elapsed);
+	@max = max(this->elapsed);
+}
+
+syscall::read:return
+/self->buf/
+{
+	keys++;
+	wordsize++;
+	this->key = stringof(copyin(self->buf, arg0));
+	last = timestamp;
+}
+
+syscall::read:return
+/self->buf && (this->key == " " || this->key == "\n" || this->key == "\r") &&
+    wordsize == 1/
+{
+	/* recurring space */
+	wordsize = 0;
+	self->buf = 0;
+}
+
+syscall::read:return
+/self->buf && (this->key == " " || this->key == "\n" || this->key == "\r")/
+{
+	words++;
+	@sizes = lquantize(wordsize - 1, 0, 32, 1);
+	wordsize = 0;
+}
+
+syscall::read:return
+/self->buf/
+{
+	self->buf = 0;
+}
+
+profile:::tick-1sec
+/state == TRACING && countdown == -1/
+{
+	printf("\n\nCharacters typed : %d\n", keys);
+	printf("Words per minute : %d\n\n", words);
+
+	printa("Minimum keystroke latency : %@d ms\n", @min);
+	printa("Average keystroke latency : %@d ms\n", @avg);
+	printa("Maximum keystroke latency : %@d ms\n\n", @max);
+
+	printa("Word size distribution (letters),\n%@d\n", @sizes);
+	printa("Keystroke latency distribution (ms),\n%@d\n", @dist);
+
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Net/Readme b/external/cddl/dtracetoolkit/dist/Net/Readme
new file mode 100644
index 0000000..3a53744
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Net/Readme
@@ -0,0 +1,4 @@
+Net - Network based analysis
+
+   These scripts analyse activity of the network interfaces, the TCP/IP
+   stack, socket activity, etc.
diff --git a/external/cddl/dtracetoolkit/dist/Net/connections b/external/cddl/dtracetoolkit/dist/Net/connections
new file mode 100755
index 0000000..c25870a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Net/connections
@@ -0,0 +1,178 @@
+#!/usr/bin/ksh
+#
+# connections - print inbound TCP connections by process.
+#               Written in DTrace (Solaris 10 3/05).
+#
+# This displays the PID and command name of the processes accepting 
+# connections, along with the source IP address and destination port number.
+#
+# $Id: connections,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# USAGE:	connections [-htvZ]
+#
+#		-t		# print timestamps, us
+#		-v		# print timestamps, string
+#		-Z		# print zonename
+#	eg,
+#		connections -v	# snoop connections with times
+#
+# FIELDS:
+#		UID		user ID of the server
+#		PID		process ID for the server
+#		CMD		server command name
+#		TIME		timestamp, us
+#		TIMESTR		timestamp, string
+#		PORT		server port
+#		IP_SOURCE	source IP of the client, written in IPv4 style
+#		ZONE		zonename
+#
+# SEE ALSO:	snoop 'tcp[13:1] = 0x02'	# snoop new connections
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# TODO: IPv6
+#
+# 10-Apr-2004	Brendan Gregg	Created this.
+# 23-May-2004	   "      "  	Fixed issues on SPARC.
+# 08-May-2005	   "      "  	Updated for newer Solaris 10.
+# 17-Jun-2005	   "      "	Rewrote, changed probes, wrapped in sh.
+# 04-Dec-2005	   "	  "	Changed tcp_accept_finish -> sotpi_accept
+# 20-Apr-2006	   "	  "	Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+# 20-Apr-2006	   "	  "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_time=0; opt_timestr=0; opt_zone=0
+
+### Process options
+while getopts htvZ name
+do
+	case $name in
+	t)      opt_time=1 ;;
+	v)      opt_timestr=1 ;;
+	Z)      opt_zone=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: connections [-htvZ]
+			   -t              # print timestamps, us
+			   -v              # print timestamps, string
+			   -Z              # print zonename
+		  eg,
+		       connections -v      # snoop connections with times
+		END
+		exit 1
+	esac
+done
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -C -s <( print -r '
+#include <sys/file.h>
+#include <sys/types.h>
+#include <sys/byteorder.h>
+#include <sys/socket.h>
+#include <sys/socketvar.h>
+
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+
+ inline int OPT_time    = '$opt_time';
+ inline int OPT_timestr = '$opt_timestr';
+ inline int OPT_zone    = '$opt_zone';
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+        /* print optional headers */
+        OPT_time    ? printf("%-14s ", "TIME") : 1;
+        OPT_timestr ? printf("%-20s ", "TIMESTR") : 1;
+	OPT_zone    ? printf("%-10s ", "ZONE") : 1;
+
+	/* print header */
+	printf("%5s %5s %-12s %4s %5s %s\n",
+	    "UID", "PID", "CMD", "TYPE", "PORT", "IP_SOURCE");
+ }
+
+ /*
+  * TCP Process inbound connections
+  *
+  * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+  * renamed to SS_DIRECT around build 31.
+  */
+ fbt:sockfs:sotpi_accept:entry
+ /(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+ {
+	self->sop = args[0];
+ }
+
+ fbt:sockfs:sotpi_create:return
+ /self->sop/
+ {
+	self->nsop = (struct sonode *)arg1;
+ }
+
+
+ /*
+  * Probe TCP connections
+  */
+ fbt:sockfs:sotpi_accept:return
+ /self->nsop/
+ {
+	/* fetch connection details */
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	this->connp = (conn_t *)this->tcpp->tcp_connp;
+
+#if defined(_BIG_ENDIAN)
+	this->port0 = this->connp->u_port.tcpu_ports.tcpu_lport;
+#else
+	this->port0 = BSWAP_16(this->connp->u_port.tcpu_ports.tcpu_lport);
+#endif
+	this->rem12 = 
+	    (uint8_t)this->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->rem13 =
+	    (uint8_t)this->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->rem14 =
+	    (uint8_t)this->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->rem15 =
+	    (uint8_t)this->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+
+        /* print optional fields */
+        OPT_time    ? printf("%-14d ", timestamp/1000) : 1;
+        OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone    ? printf("%-10s ", zonename) : 1;
+
+	/* print output line */
+	printf("%5d %5d %-12s %4s %5d %d.%d.%d.%d\n",
+	    uid, pid, execname, "tcp", this->port0, 
+	    this->rem12, this->rem13, this->rem14, this->rem15);
+ }
+
+ fbt:sockfs:sotpi_accept:return
+ {
+	self->nsop = 0;
+	self->sop = 0;
+ }
+')
+
diff --git a/external/cddl/dtracetoolkit/dist/Net/icmpstat.d b/external/cddl/dtracetoolkit/dist/Net/icmpstat.d
new file mode 100755
index 0000000..82167fb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Net/icmpstat.d
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -s
+/*
+ * icmpstat.d - print ICMP statistics. Uses DTrace.
+ *
+ * This prints ICMP statistics every second, retrieved from the MIB provider.
+ * This is a simple script to demonstrate the ability to trace ICMP events.
+ *
+ * $Id: icmpstat.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	icmpstat.d
+ *
+ * FIELDS:
+ *		STATISTIC		ICMP statistic name
+ *		VALUE			total of statistic during sample
+ *
+ * The above ICMP statistics are documented in the mib2_icmp struct
+ * in the /usr/include/inet/mib2.h file; and also in the mib provider
+ * chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 25-Jul-2005	Brendan Gregg	Created this.
+ * 25-Jul-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Save Data
+ */
+mib:::icmp*
+{
+	@icmp[probename] = sum(arg0);
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+{
+	printf("%Y,\n\n", walltimestamp);
+	printf("%32s %8s\n", "STATISTIC", "VALUE");
+	printa("%32s %@8d\n", @icmp);
+	printf("\n");
+
+	trunc(@icmp);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Net/tcpsnoop b/external/cddl/dtracetoolkit/dist/Net/tcpsnoop
new file mode 100755
index 0000000..9c6c178
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Net/tcpsnoop
@@ -0,0 +1,581 @@
+#!/usr/bin/ksh
+#
+# tcpsnoop - snoop TCP network packets by process. 
+#            Written using DTrace (Solaris 10 3/05)
+#
+# This analyses TCP network packets and prints the responsible PID and UID,
+# plus standard details such as IP address and port. This captures traffic
+# of newly created TCP connections that were established while this program
+# was running. It can help identify which processes is causing TCP traffic.
+#
+# WARNING: This script may only work on Solaris 10 3/05, since it uses the
+# fbt provider to trace the raw operation of a specific version of the kernel.
+# In the future, a 'stable' network provider should exist which will allow
+# this to be written for that and subsequent versions of the kernel. In the
+# meantime, check for other versions of this script in the /Net directory,
+# and read the Notes/ALLfbt_notes.txt for more background on fbt.
+#
+# $Id: tcpsnoop,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# USAGE:       tcpsnoop [-a|hjsvZ] [-n name] [-p pid]
+#
+#		-a             # print all data
+#		-j             # print project ID
+#		-s             # print time, us
+#		-v             # print time, string
+#		-Z             # print zone ID
+#		-n name        # command name to snoop
+#		-p pid         # PID to snoop
+#	eg,
+#		tcpsnoop -v              # human readable timestamps
+#		tcpsnoop -Z              # print zonename
+#		tcpsnoop -n sshd         # snoop sshd traffic only
+#
+# FIELDS:
+#		UID     	user ID
+#		PID     	process ID
+#		CMD     	command
+#		LADDR		local IP address
+#		RADDR		remote IP address
+#		LPORT		local port number
+#		RPORT		remote port number
+#		DR      	direction
+#		SIZE    	packet size, bytes
+#		TIME    	timestamp, us
+#		STRTIME    	human readable timestamp, string
+#		ZONE    	zone ID
+#		PROJ    	project ID
+#
+# SEE ALSO: snoop -rS
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# TODO: IPv6
+#
+# CODE:
+#  The FILTER syntax matches on packets rather than initial 
+#  connections, so that it can follow inetd connections properly.
+#
+# 09-Jul-2004  Brendan Gregg	Created this.
+# 12-Mar-2005     "      "	Changed probes, size info now printed.
+# 02-Jul-2005     "      "	Many more probes. Renamed "tcpsnoop.d".
+# 04-Jul-2005     "      "	Now wrapped in shell, called "tcpsnoop".
+# 03-Dec-2005	  "	 "	Fixed tcp_accept_finish bug, now 100% correct
+#				execname. Thanks Kias Belgaied for expertise.
+# 20-Apr-2006     "      "      Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+# 20-Apr-2006     "      "      Last update.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_name=0; opt_time=0; opt_timestr=0; filter=0; pname=.
+opt_zone=0; opt_proj=0; opt_pid=0; pid=0
+
+### process options
+while getopts ahjsvZn:p: name
+do
+	case $name in
+	a)      opt_time=1; opt_timestr=1; opt_zone=1; opt_proj=1 ;;
+	n)      opt_name=1; pname=$OPTARG ;;
+	p)      opt_pid=1; pid=$OPTARG ;;
+	j)      opt_proj=1 ;;
+	s)      opt_time=1 ;;
+	v)      opt_timestr=1 ;;
+	Z)      opt_zone=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: tcpsnoop [-a|hjsvZ] [-n name] [-p pid]
+		       tcpsnoop                # default output
+		                -a             # print all data
+		                -j             # print project ID
+		                -s             # print start time, us
+		                -v             # print start time, string
+		                -Z             # print zonename
+		                -n name        # command name to snoop
+		                -p pid         # PID to snoop
+		  eg,
+		      tcpsnoop -v              # human readable timestamps
+		      tcpsnoop -Z              # print zonename
+		      tcpsnoop -n sshd         # snoop sshd traffic only
+		END
+		exit 1
+	esac
+done
+
+### option logic
+if (( opt_name || opt_pid )); then
+	filter=1
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -Cs <( print -r '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_name    = '$opt_name';
+ inline int OPT_pid     = '$opt_pid';
+ inline int OPT_time    = '$opt_time';
+ inline int OPT_timestr = '$opt_timestr';
+ inline int OPT_zone    = '$opt_zone';
+ inline int OPT_proj    = '$opt_proj';
+ inline int PID         = '$pid';
+ inline int FILTER      = '$filter';
+ inline string NAME     = "'$pname'";
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+#include <sys/socket.h>
+#include <sys/socketvar.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* print optional headers */
+	OPT_time    ? printf("%-14s ", "TIME") : 1;
+	OPT_timestr ? printf("%-20s ", "STRTIME") : 1;
+	OPT_zone    ? printf("%4s ", "ZONE") : 1;
+	OPT_proj    ? printf("%4s ", "PROJ") : 1;
+
+	/* print main headers */
+	printf("%5s %6s %-15s %5s %2s %-15s %5s %5s %s\n",
+	    "UID", "PID", "LADDR", "LPORT", "DR", "RADDR", "RPORT", 
+	    "SIZE", "CMD");
+}
+
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+	OPT_proj ? tproj[(int)self->connp] = curpsinfo->pr_projid : 1;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+	tproj[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+/FILTER == 0/
+{
+	this->queuep = (queue_t *)`tcp_g_q; /* ` */
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+	self->zoneid = this->connp->conn_zoneid;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+/FILTER == 0/
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->proj = 0;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+	self->zoneid = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+        self->dir = "->";
+        self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+        self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+        self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "<-";
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+	self->dir = "->";
+}
+
+fbt:ip:tcp_connect:return
+/(self->connp) &&
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* this packet occured before connp was fully established */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+}
+
+fbt:sockfs:sotpi_accept:return
+/(self->connp) &&
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* these packets occured before connp was fully established */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "<-";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * Print output
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/(self->ok == 2) && 
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* print optional fields */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+
+	/* print output line */
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/* 
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/* 
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->dir = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+	self->zoneid = 0;
+	self->proj = 0;
+}
+')
diff --git a/external/cddl/dtracetoolkit/dist/Net/tcpsnoop.d b/external/cddl/dtracetoolkit/dist/Net/tcpsnoop.d
new file mode 100755
index 0000000..9650b5b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Net/tcpsnoop.d
@@ -0,0 +1,424 @@
+#!/usr/sbin/dtrace -Cs
+/*
+ * tcpsnoop.d - snoop TCP network packets by process.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * This analyses TCP network packets and prints the responsible PID and UID,
+ * plus standard details such as IP address and port. This captures traffic
+ * of newly created TCP connections that were established while this program
+ * was running. It can help identify which processes is causing TCP traffic.
+ *
+ * WARNING: This script may only work on Solaris 10 3/05, since it uses the
+ * fbt provider to trace the raw operation of a specific version of the kernel.
+ * In the future, a 'stable' network provider should exist which will allow
+ * this to be written for that and subsequent versions of the kernel. In the
+ * meantime, check for other versions of this script in the /Net directory,
+ * and read the Notes/ALLfbt_notes.txt for more background on fbt.
+ *
+ * $Id: tcpsnoop.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:       tcpsnoop.d
+ *
+ * FIELDS:
+ *		UID     	user ID
+ *		PID     	process ID
+ *		CMD     	command
+ *		LADDR		local IP address
+ *		RADDR		remote IP address
+ *		LPORT		local port number
+ *		RPORT		remote port number
+ *		DR      	direction
+ *		SIZE    	packet size, bytes
+ *
+ * SEE ALSO: snoop -rS
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * Author: Brendan Gregg  [Sydney, Australia]
+ *
+ * TODO: IPv6
+ *
+ * 09-Jul-2004  Brendan Gregg   Created this.
+ * 12-Mar-2005     "      "	Changed probes, size info now printed.
+ * 02-Jul-2005     "      "	Many more probes. Renamed "tcpsnoop.d".
+ * 03-Dec-2005	   "	  "	Fixed tcp_accept_finish bug, now 100% correct
+ *				execname. Thanks Kias Belgaied for expertise.
+ * 20-Apr-2006	   "	  "	Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+ * 20-Apr-2006	   "	  "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* print main headers */
+	printf("%5s %6s %-15s %5s %2s %-15s %5s %5s %s\n",
+	    "UID", "PID", "LADDR", "LPORT", "DR", "RADDR", "RPORT",
+	    "SIZE", "CMD");
+}
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+{
+	this->queuep = (queue_t *)`tcp_g_q; /* ` */
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "->";
+	self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+	self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "<-";
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->size = 54;	/* should check trailers */
+	self->dir = "->";
+	/* this packet occured before connp was fully established */
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->size = 54;	/* should check trailers */
+	/* these packets occured before connp was fully established */
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * Print output
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/self->ok == 2/
+{
+	/* print output line */
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/*
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->dir = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Net/tcpsnoop_snv b/external/cddl/dtracetoolkit/dist/Net/tcpsnoop_snv
new file mode 100755
index 0000000..2054a0e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Net/tcpsnoop_snv
@@ -0,0 +1,583 @@
+#!/usr/bin/ksh
+#
+# tcpsnoop_snv - snoop TCP network packets by process. 
+#                Written using DTrace (Solaris Nevada)
+#
+# This analyses TCP network packets and prints the responsible PID and UID,
+# plus standard details such as IP address and port. This captures traffic
+# of newly created TCP connections that were established while this program
+# was running. It can help identify which processes is causing TCP traffic.
+#
+# WARNING: This script may only work on Solaris Nevada and OpenSolaris
+# of the late 2007 vintage, since it uses the fbt provider to trace the raw
+# operation of a specific version of the kernel. In the future, a 'stable'
+# network provider should exist which will allow this to be written for that
+# and subsequent versions of the kernel. In the meantime, check for other
+# versions of this script in the /Net directory, and read the
+# Notes/ALLfbt_notes.txt for more background on fbt.
+#
+# $Id: tcpsnoop_snv,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# USAGE:       tcpsnoop [-a|hjsvZ] [-n name] [-p pid]
+#
+#		-a             # print all data
+#		-j             # print project ID
+#		-s             # print time, us
+#		-v             # print time, string
+#		-Z             # print zone ID
+#		-n name        # command name to snoop
+#		-p pid         # PID to snoop
+#	eg,
+#		tcpsnoop -v              # human readable timestamps
+#		tcpsnoop -Z              # print zonename
+#		tcpsnoop -n sshd         # snoop sshd traffic only
+#
+# FIELDS:
+#		UID     	user ID
+#		PID     	process ID
+#		CMD     	command
+#		LADDR		local IP address
+#		RADDR		remote IP address
+#		LPORT		local port number
+#		RPORT		remote port number
+#		DR      	direction
+#		SIZE    	packet size, bytes
+#		TIME    	timestamp, us
+#		STRTIME    	human readable timestamp, string
+#		ZONE    	zone ID
+#		PROJ    	project ID
+#
+# SEE ALSO: snoop -rS
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# TODO: IPv6
+#
+# CODE:
+#  The FILTER syntax matches on packets rather than initial 
+#  connections, so that it can follow inetd connections properly.
+#
+# 09-Jul-2004  Brendan Gregg	Created this.
+# 12-Mar-2005     "      "	Changed probes, size info now printed.
+# 02-Jul-2005     "      "	Many more probes. Renamed "tcpsnoop.d".
+# 04-Jul-2005     "      "	Now wrapped in shell, called "tcpsnoop".
+# 03-Dec-2005	  "	 "	Fixed tcp_accept_finish bug, now 100% correct
+#				execname. Thanks Kias Belgaied for expertise.
+# 20-Apr-2006     "      "      Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+# 20-Apr-2006     "      "      Last update.
+# 30-Sep-2007	   "	  "	Bumped this for recent OpenSolaris/Nevada.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_name=0; opt_time=0; opt_timestr=0; filter=0; pname=.
+opt_zone=0; opt_proj=0; opt_pid=0; pid=0
+
+### process options
+while getopts ahjsvZn:p: name
+do
+	case $name in
+	a)      opt_time=1; opt_timestr=1; opt_zone=1; opt_proj=1 ;;
+	n)      opt_name=1; pname=$OPTARG ;;
+	p)      opt_pid=1; pid=$OPTARG ;;
+	j)      opt_proj=1 ;;
+	s)      opt_time=1 ;;
+	v)      opt_timestr=1 ;;
+	Z)      opt_zone=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: tcpsnoop [-a|hjsvZ] [-n name] [-p pid]
+		       tcpsnoop                # default output
+		                -a             # print all data
+		                -j             # print project ID
+		                -s             # print start time, us
+		                -v             # print start time, string
+		                -Z             # print zonename
+		                -n name        # command name to snoop
+		                -p pid         # PID to snoop
+		  eg,
+		      tcpsnoop -v              # human readable timestamps
+		      tcpsnoop -Z              # print zonename
+		      tcpsnoop -n sshd         # snoop sshd traffic only
+		END
+		exit 1
+	esac
+done
+
+### option logic
+if (( opt_name || opt_pid )); then
+	filter=1
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -Cs <( print -r '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_name    = '$opt_name';
+ inline int OPT_pid     = '$opt_pid';
+ inline int OPT_time    = '$opt_time';
+ inline int OPT_timestr = '$opt_timestr';
+ inline int OPT_zone    = '$opt_zone';
+ inline int OPT_proj    = '$opt_proj';
+ inline int PID         = '$pid';
+ inline int FILTER      = '$filter';
+ inline string NAME     = "'$pname'";
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+#include <sys/socket.h>
+#include <sys/socketvar.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* print optional headers */
+	OPT_time    ? printf("%-14s ", "TIME") : 1;
+	OPT_timestr ? printf("%-20s ", "STRTIME") : 1;
+	OPT_zone    ? printf("%4s ", "ZONE") : 1;
+	OPT_proj    ? printf("%4s ", "PROJ") : 1;
+
+	/* print main headers */
+	printf("%5s %6s %-15s %5s %2s %-15s %5s %5s %s\n",
+	    "UID", "PID", "LADDR", "LPORT", "DR", "RADDR", "RPORT", 
+	    "SIZE", "CMD");
+}
+
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+	OPT_proj ? tproj[(int)self->connp] = curpsinfo->pr_projid : 1;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+	tproj[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+/FILTER == 0/
+{
+	this->queuep = args[7]->tcps_g_q;
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+	self->zoneid = this->connp->conn_zoneid;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+/FILTER == 0/
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->proj = 0;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+	self->zoneid = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+        self->dir = "->";
+        self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+        self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+        self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "<-";
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+	self->dir = "->";
+}
+
+fbt:ip:tcp_connect:return
+/(self->connp) &&
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* this packet occured before connp was fully established */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+}
+
+fbt:sockfs:sotpi_accept:return
+/(self->connp) &&
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* these packets occured before connp was fully established */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "<-";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * Print output
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/(self->ok == 2) && 
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* print optional fields */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+
+	/* print output line */
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/* 
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/* 
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->dir = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+	self->zoneid = 0;
+	self->proj = 0;
+}
+')
diff --git a/external/cddl/dtracetoolkit/dist/Net/tcpsnoop_snv.d b/external/cddl/dtracetoolkit/dist/Net/tcpsnoop_snv.d
new file mode 100755
index 0000000..cdc7ab0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Net/tcpsnoop_snv.d
@@ -0,0 +1,426 @@
+#!/usr/sbin/dtrace -Cs
+/*
+ * tcpsnoop_snv.d - snoop TCP network packets by process.
+ *                  Written using DTrace (Solaris Nevada)
+ *
+ * This analyses TCP network packets and prints the responsible PID and UID,
+ * plus standard details such as IP address and port. This captures traffic
+ * of newly created TCP connections that were established while this program
+ * was running. It can help identify which processes is causing TCP traffic.
+ *
+ * WARNING: This script may only work on Solaris Nevada and OpenSolaris
+ * of the late 2007 vintage, since it uses the fbt provider to trace the raw
+ * operation of a specific version of the kernel. In the future, a 'stable'
+ * network provider should exist which will allow this to be written for that
+ * and subsequent versions of the kernel. In the meantime, check for other
+ * versions of this script in the /Net directory, and read the
+ * Notes/ALLfbt_notes.txt for more background on fbt.
+ *
+ * $Id: tcpsnoop_snv.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:       tcpsnoop.d
+ *
+ * FIELDS:
+ *		UID     	user ID
+ *		PID     	process ID
+ *		CMD     	command
+ *		LADDR		local IP address
+ *		RADDR		remote IP address
+ *		LPORT		local port number
+ *		RPORT		remote port number
+ *		DR      	direction
+ *		SIZE    	packet size, bytes
+ *
+ * SEE ALSO: snoop -rS
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * Author: Brendan Gregg  [Sydney, Australia]
+ *
+ * TODO: IPv6
+ *
+ * 09-Jul-2004  Brendan Gregg   Created this.
+ * 12-Mar-2005     "      "	Changed probes, size info now printed.
+ * 02-Jul-2005     "      "	Many more probes. Renamed "tcpsnoop.d".
+ * 03-Dec-2005	   "	  "	Fixed tcp_accept_finish bug, now 100% correct
+ *				execname. Thanks Kias Belgaied for expertise.
+ * 20-Apr-2006	   "	  "	Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+ * 20-Apr-2006	   "	  "	Last update.
+ * 30-Sep-2007	   "	  "	Bumped this for recent OpenSolaris/Nevada.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* print main headers */
+	printf("%5s %6s %-15s %5s %2s %-15s %5s %5s %s\n",
+	    "UID", "PID", "LADDR", "LPORT", "DR", "RADDR", "RPORT",
+	    "SIZE", "CMD");
+}
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+{
+	this->queuep = args[7]->tcps_g_q;
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "->";
+	self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+	self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "<-";
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->size = 54;	/* should check trailers */
+	self->dir = "->";
+	/* this packet occured before connp was fully established */
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->size = 54;	/* should check trailers */
+	/* these packets occured before connp was fully established */
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * Print output
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/self->ok == 2/
+{
+	/* print output line */
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/*
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->dir = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Net/tcpstat.d b/external/cddl/dtracetoolkit/dist/Net/tcpstat.d
new file mode 100755
index 0000000..cb1cee5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Net/tcpstat.d
@@ -0,0 +1,91 @@
+#!/usr/sbin/dtrace -s
+/*
+ * tcpstat.d - print TCP statistics. Uses DTrace.
+ *
+ * This prints TCP statistics every second, retrieved from the MIB provider.
+ *
+ * $Id: tcpstat.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	tcpstat.d
+ *
+ * FIELDS:
+ *		TCP_out		TCP bytes sent
+ *		TCP_outRe	TCP bytes retransmitted
+ *		TCP_in		TCP bytes received
+ *		TCP_inDup	TCP bytes received duplicated
+ *		TCP_inUn	TCP bytes received out of order
+ *
+ * The above TCP statistics are documented in the mib2_tcp struct
+ * in the /usr/include/inet/mib2.h file; and also in the mib provider
+ * chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 15-May-2005  Brendan Gregg   Created this.
+ * 15-May-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Declare Globals
+ */
+dtrace:::BEGIN
+{
+	TCP_out = 0; TCP_outRe = 0;
+	TCP_in = 0; TCP_inDup = 0; TCP_inUn = 0;
+	LINES = 20; line = 0;
+}
+
+/*
+ * Print Header
+ */
+profile:::tick-1sec { line--; }
+
+profile:::tick-1sec
+/line <= 0 /
+{
+	printf("%11s %11s %11s %11s %11s\n",
+	    "TCP_out", "TCP_outRe", "TCP_in", "TCP_inDup", "TCP_inUn");
+
+	line = LINES;
+}
+
+/*
+ * Save Data
+ */
+mib:::tcpOutDataBytes		{ TCP_out += arg0;   }
+mib:::tcpRetransBytes		{ TCP_outRe += arg0; }
+mib:::tcpInDataInorderBytes	{ TCP_in += arg0;    }
+mib:::tcpInDataDupBytes		{ TCP_inDup += arg0; }
+mib:::tcpInDataUnorderBytes	{ TCP_inUn += arg0;  }
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+{
+	printf("%11d %11d %11d %11d %11d\n",
+	    TCP_out, TCP_outRe, TCP_in, TCP_inDup, TCP_inUn);
+
+	/* clear values */
+	TCP_out   = 0;
+	TCP_outRe = 0;
+	TCP_in    = 0;
+	TCP_inDup = 0;
+	TCP_inUn  = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Net/tcptop b/external/cddl/dtracetoolkit/dist/Net/tcptop
new file mode 100755
index 0000000..dc9983f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Net/tcptop
@@ -0,0 +1,579 @@
+#!/usr/bin/ksh
+#
+# tcptop - display top TCP network packets by process. 
+#          Written using DTrace (Solaris 10 3/05)
+#
+# This analyses TCP network packets and prints the responsible PID and UID,
+# plus standard details such as IP address and port. This captures traffic
+# of newly created TCP connections that were established while this program
+# was running. It can help identify which processes is causing TCP traffic.
+#
+# WARNING: This script may only work on Solaris 10 3/05, since it uses the
+# fbt provider to trace the raw operation of a specific version of the kernel.
+# In the future, a 'stable' network provider should exist which will allow
+# this to be written for that and subsequent versions of the kernel. In the
+# meantime, check for other versions of this script in the /Net directory,
+# and read the Notes/ALLfbt_notes.txt for more background on fbt.
+#
+# $Id: tcptop,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# USAGE:	tcptop [-Ch] [-j|-Z] [interval [count]]
+#
+#		-C		# don't clear the screen
+#		-j		# print project IDs
+#		-Z		# print zone IDs
+#
+# FIELDS:
+#		UID     	user ID
+#		PID     	process ID
+#		CMD     	command
+#		LADDR		local IP address
+#		RADDR		remote IP address
+#		LPORT		local port number
+#		RPORT		remote port number
+#		SIZE    	packet size, bytes
+#		load		1 min load average
+#		TCPin		TCP inbound payload data
+#		TCPout		TCP outbound payload data
+#		ZONE    	zone ID
+#		PROJ    	project ID
+#
+# SEE ALSO:	tcpsnoop
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# ToDo: IPv6
+#
+# 05-Jul-2005  Brendan Gregg	Created this.
+# 03-Dec-2005	  "	 "	Fixed tcp_accept_finish bug, now 100% correct
+#				execname. Thanks Kias Belgaied for expertise.
+# 20-Apr-2006     "      "      Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+# 20-Apr-2006     "      "      Last update.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_def=1; opt_clear=1; opt_zone=0; opt_proj=0; interval=5; count=-1
+
+### process options
+while getopts ChjZ name
+do
+	case $name in
+	C)      opt_clear=0 ;;
+	j)      opt_proj=1; opt_def=0 ;;
+	Z)      opt_zone=1; opt_def=0 ;;
+	h|?)    cat <<-END >&2
+		USAGE: tcptop [-h] [-j|-Z] [interval [count]]
+		       tcptop                  # default output
+		                -C             # don't clear the screen
+		                -j             # print project ID
+		                -Z             # print zonename
+		  eg,
+		      tcptop                   # default is 5 sec interval
+		      tcptop 2                 # 2 second interval
+		      tcptop -C 1 10           # 10 x 1 sec samples, no clear
+		END
+		exit 1
+	esac
+done
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_proj && opt_zone )); then
+	opt_proj=0
+fi
+if (( opt_clear )); then
+	clearstr=`clear`
+else
+	clearstr=.
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -Cs <( print -r '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_def   = '$opt_def';
+ inline int OPT_zone  = '$opt_zone';
+ inline int OPT_proj  = '$opt_proj';
+ inline int OPT_clear = '$opt_clear';
+ inline int INTERVAL  = '$interval';
+ inline int COUNTER   = '$count';
+ inline string CLEAR  = "'$clearstr'";
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+#include <sys/socket.h>
+#include <sys/socketvar.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* starting values */
+        counts = COUNTER;
+        secs = INTERVAL;
+	TCP_out = 0;
+	TCP_in = 0;
+
+	printf("Tracing... Please wait.\n");
+}
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+	OPT_proj ? tproj[(int)self->connp] = curpsinfo->pr_projid : 1;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+	tproj[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+{
+	this->queuep = (queue_t *)`tcp_g_q; /* ` */
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+	self->zoneid = this->connp->conn_zoneid;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->proj = 0;
+	self->size = 54 * 2;	/* should check trailers */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+        self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+        self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+        self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+
+	/* this packet occured before connp was fully established */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54 * 3;	/* should check trailers */
+
+	/* these packets occured before connp was fully established */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/*
+ * TCP Save data
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/self->ok == 2/ 
+{
+	/* save r+w data*/
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/* 
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/* 
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+	self->zoneid = 0;
+	self->proj = 0;
+}
+
+/*
+ * TCP Systemwide Stats
+ */
+mib:::tcpOutDataBytes       { TCP_out += args[0]; }
+mib:::tcpRetransBytes       { TCP_out += args[0]; }
+mib:::tcpInDataInorderBytes { TCP_in  += args[0]; }
+mib:::tcpInDataDupBytes     { TCP_in  += args[0]; }
+mib:::tcpInDataUnorderBytes { TCP_in  += args[0]; }
+
+/*
+ * Timer
+ */
+profile:::tick-1sec
+{
+        secs--;
+}
+
+/*
+ * Print Report
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+        /* fetch 1 min load average */
+        this->load1a  = `hp_avenrun[0] / 65536;
+        this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+
+	/* convert TCP counters to Kbytes */
+	TCP_out /= 1024;
+	TCP_in  /= 1024;
+
+	/* print status */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+        printf("%Y,  load: %d.%02d,  TCPin: %6d KB,  TCPout: %6d KB\n\n",
+            walltimestamp, this->load1a, this->load1b, TCP_in, TCP_out);
+
+	/* print headers */
+	OPT_def  ? printf(" UID ") : 1;
+	OPT_proj ? printf("PROJ ") : 1;
+	OPT_zone ? printf("ZONE ") : 1;
+        printf("%6s %-15s %5s %-15s %5s %9s %s\n",
+	    "PID", "LADDR", "LPORT", "RADDR", "RPORT", "SIZE", "NAME");
+
+	/* print data */
+        printa("%4d %6d %-15s %5d %-15s %5d %@9d %s\n", @out);
+	printf("\n");
+
+	/* clear data */
+        trunc(@out);
+	TCP_in = 0;
+	TCP_out = 0;
+        secs = INTERVAL;
+        counts--;
+}
+
+/*
+ * End of program
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}
+
+/*
+ * Cleanup for Ctrl-C
+ */
+dtrace:::END
+{
+        trunc(@out);
+}
+')
diff --git a/external/cddl/dtracetoolkit/dist/Net/tcptop_snv b/external/cddl/dtracetoolkit/dist/Net/tcptop_snv
new file mode 100755
index 0000000..39d141d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Net/tcptop_snv
@@ -0,0 +1,581 @@
+#!/usr/bin/ksh
+#
+# tcptop_snv - display top TCP network packets by process. 
+#              Written using DTrace (Solaris Nevada)
+#
+# This analyses TCP network packets and prints the responsible PID and UID,
+# plus standard details such as IP address and port. This captures traffic
+# of newly created TCP connections that were established while this program
+# was running. It can help identify which processes is causing TCP traffic.
+#
+# WARNING: This script may only work on Solaris Nevada and OpenSolaris
+# of the late 2007 vintage, since it uses the fbt provider to trace the raw
+# operation of a specific version of the kernel. In the future, a 'stable'
+# network provider should exist which will allow this to be written for that
+# and subsequent versions of the kernel. In the meantime, check for other
+# versions of this script in the /Net directory, and read the
+# Notes/ALLfbt_notes.txt for more background on fbt.
+#
+# $Id: tcptop_snv,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# USAGE:	tcptop [-Ch] [-j|-Z] [interval [count]]
+#
+#		-C		# don't clear the screen
+#		-j		# print project IDs
+#		-Z		# print zone IDs
+#
+# FIELDS:
+#		UID     	user ID
+#		PID     	process ID
+#		CMD     	command
+#		LADDR		local IP address
+#		RADDR		remote IP address
+#		LPORT		local port number
+#		RPORT		remote port number
+#		SIZE    	packet size, bytes
+#		load		1 min load average
+#		TCPin		TCP inbound payload data
+#		TCPout		TCP outbound payload data
+#		ZONE    	zone ID
+#		PROJ    	project ID
+#
+# SEE ALSO:	tcpsnoop
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# ToDo: IPv6
+#
+# 05-Jul-2005  Brendan Gregg	Created this.
+# 03-Dec-2005	  "	 "	Fixed tcp_accept_finish bug, now 100% correct
+#				execname. Thanks Kias Belgaied for expertise.
+# 20-Apr-2006     "      "      Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+# 20-Apr-2006     "      "      Last update.
+# 30-Sep-2007	   "	  "	Bumped this for recent OpenSolaris/Nevada.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_def=1; opt_clear=1; opt_zone=0; opt_proj=0; interval=5; count=-1
+
+### process options
+while getopts ChjZ name
+do
+	case $name in
+	C)      opt_clear=0 ;;
+	j)      opt_proj=1; opt_def=0 ;;
+	Z)      opt_zone=1; opt_def=0 ;;
+	h|?)    cat <<-END >&2
+		USAGE: tcptop [-h] [-j|-Z] [interval [count]]
+		       tcptop                  # default output
+		                -C             # don't clear the screen
+		                -j             # print project ID
+		                -Z             # print zonename
+		  eg,
+		      tcptop                   # default is 5 sec interval
+		      tcptop 2                 # 2 second interval
+		      tcptop -C 1 10           # 10 x 1 sec samples, no clear
+		END
+		exit 1
+	esac
+done
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_proj && opt_zone )); then
+	opt_proj=0
+fi
+if (( opt_clear )); then
+	clearstr=`clear`
+else
+	clearstr=.
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -Cs <( print -r '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_def   = '$opt_def';
+ inline int OPT_zone  = '$opt_zone';
+ inline int OPT_proj  = '$opt_proj';
+ inline int OPT_clear = '$opt_clear';
+ inline int INTERVAL  = '$interval';
+ inline int COUNTER   = '$count';
+ inline string CLEAR  = "'$clearstr'";
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+#include <sys/socket.h>
+#include <sys/socketvar.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* starting values */
+        counts = COUNTER;
+        secs = INTERVAL;
+	TCP_out = 0;
+	TCP_in = 0;
+
+	printf("Tracing... Please wait.\n");
+}
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+	OPT_proj ? tproj[(int)self->connp] = curpsinfo->pr_projid : 1;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+	tproj[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+{
+	this->queuep = args[7]->tcps_g_q;
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+	self->zoneid = this->connp->conn_zoneid;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->proj = 0;
+	self->size = 54 * 2;	/* should check trailers */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+        self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+        self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+        self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+
+	/* this packet occured before connp was fully established */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54 * 3;	/* should check trailers */
+
+	/* these packets occured before connp was fully established */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/*
+ * TCP Save data
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/self->ok == 2/ 
+{
+	/* save r+w data*/
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/* 
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/* 
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+	self->zoneid = 0;
+	self->proj = 0;
+}
+
+/*
+ * TCP Systemwide Stats
+ */
+mib:::tcpOutDataBytes       { TCP_out += args[0]; }
+mib:::tcpRetransBytes       { TCP_out += args[0]; }
+mib:::tcpInDataInorderBytes { TCP_in  += args[0]; }
+mib:::tcpInDataDupBytes     { TCP_in  += args[0]; }
+mib:::tcpInDataUnorderBytes { TCP_in  += args[0]; }
+
+/*
+ * Timer
+ */
+profile:::tick-1sec
+{
+        secs--;
+}
+
+/*
+ * Print Report
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+        /* fetch 1 min load average */
+        this->load1a  = `hp_avenrun[0] / 65536;
+        this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+
+	/* convert TCP counters to Kbytes */
+	TCP_out /= 1024;
+	TCP_in  /= 1024;
+
+	/* print status */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+        printf("%Y,  load: %d.%02d,  TCPin: %6d KB,  TCPout: %6d KB\n\n",
+            walltimestamp, this->load1a, this->load1b, TCP_in, TCP_out);
+
+	/* print headers */
+	OPT_def  ? printf(" UID ") : 1;
+	OPT_proj ? printf("PROJ ") : 1;
+	OPT_zone ? printf("ZONE ") : 1;
+        printf("%6s %-15s %5s %-15s %5s %9s %s\n",
+	    "PID", "LADDR", "LPORT", "RADDR", "RPORT", "SIZE", "NAME");
+
+	/* print data */
+        printa("%4d %6d %-15s %5d %-15s %5d %@9d %s\n", @out);
+	printf("\n");
+
+	/* clear data */
+        trunc(@out);
+	TCP_in = 0;
+	TCP_out = 0;
+        secs = INTERVAL;
+        counts--;
+}
+
+/*
+ * End of program
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}
+
+/*
+ * Cleanup for Ctrl-C
+ */
+dtrace:::END
+{
+        trunc(@out);
+}
+')
diff --git a/external/cddl/dtracetoolkit/dist/Net/tcpwdist.d b/external/cddl/dtracetoolkit/dist/Net/tcpwdist.d
new file mode 100755
index 0000000..1e11500
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Net/tcpwdist.d
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -s
+/*
+ * tcpwdist.d - simple TCP write distribution by process.
+ *              Written in DTrace (Solaris 10 3/05).
+ *
+ * This measures the size of writes from applications to the TCP level, which
+ * may well be much larger than the MTU size (this is application writes not
+ * packet writes). It can help identify which process is creating network
+ * traffic, and the size of the writes by that application. It uses a simple
+ * probe that produces meaningful output for most protocols.
+ *
+ * Tracking TCP activity by process is complex for a number of reasons,
+ * the greatest is that inbound TCP traffic is asynchronous to the process.
+ * The easiest TCP traffic to match is writes, which this script demonstrates.
+ * However there are still issues - for an inbound telnet connection the
+ * writes are associated with the command, for example "ls -l", not something
+ * meaningful such as "in.telnetd".
+ *
+ * Scripts that match TCP traffic properly include tcpsnoop and tcptop.
+ *
+ * $Id: tcpwdist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:       tcpwdist.d          # wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID	process ID
+ *		CMD	command and argument list
+ *		value	TCP write payload size in bytes
+ *		count	number of writes
+ *
+ * SEE ALSO:	tcpsnoop, tcptop
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Jul-2004	Brendan Gregg	Created this.
+ * 14-Jun-2005	   "      "	Rewrote this as tcpwdist.d.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/*
+ * Process TCP Write
+ */
+fbt:ip:tcp_output:entry
+{
+	/* fetch details */
+	this->size = msgdsize(args[1]);
+
+	/* store details */
+	@Size[pid, curpsinfo->pr_psargs] = quantize(this->size);
+}
+
+/*
+ * Print final report
+ */
+dtrace:::END
+{
+	printa(" PID: %-6d CMD: %S\n%@d\n", @Size);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Net/udpstat.d b/external/cddl/dtracetoolkit/dist/Net/udpstat.d
new file mode 100755
index 0000000..48ab0db
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Net/udpstat.d
@@ -0,0 +1,92 @@
+#!/usr/sbin/dtrace -s
+/*
+ * udpstat.d - print UDP statistics. Uses DTrace.
+ *
+ * This prints UDP statistics every second, retrieved from the MIB provider.
+ *
+ * $Id: udpstat.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	udpstat.d
+ *
+ * FIELDS:
+ *		UDP_out		UDP datagrams sent
+ *		UDP_outErr	UDP datagrams errored on send
+ *		UDP_in		UDP datagrams received
+ *		UDP_inErr	UDP datagrams undeliverable
+ *		UDP_noPort	UDP datagrams received to closed ports
+ *
+ * The above UDP statistics are documented in the mib2_udp struct
+ * in the /usr/include/inet/mib2.h file; and also in the mib provider
+ * chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 25-Jul-2005  Brendan Gregg   Created this.
+ * 25-Jul-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Declare Globals
+ */
+dtrace:::BEGIN
+{
+	UDP_in = 0; UDP_out = 0;
+	UDP_inErr = 0; UDP_outErr = 0; UDP_noPort = 0;
+	LINES = 20; line = 0;
+}
+
+/*
+ * Print Header
+ */
+profile:::tick-1sec { line--; }
+
+profile:::tick-1sec
+/line <= 0 /
+{
+	printf("%11s %11s %11s %11s %11s\n",
+	    "UDP_out", "UDP_outErr", "UDP_in", "UDP_inErr", "UDP_noPort");
+
+	line = LINES;
+}
+
+/*
+ * Save Data
+ */
+mib:::udp*InDatagrams	{ UDP_in += arg0;	}
+mib:::udp*OutDatagrams	{ UDP_out += arg0;	}
+mib:::udpInErrors	{ UDP_inErr += arg0;	}
+mib:::udpInCksumErrs	{ UDP_inErr += arg0;	}
+mib:::udpOutErrors	{ UDP_outErr += arg0;	}
+mib:::udpNoPorts	{ UDP_noPort += arg0;	}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+{
+	printf("%11d %11d %11d %11d %11d\n",
+	    UDP_out, UDP_outErr, UDP_in, UDP_inErr, UDP_noPort);
+
+	/* clear values */
+	UDP_out		= 0;
+	UDP_outErr	= 0;
+	UDP_in		= 0;
+	UDP_inErr	= 0;
+	UDP_noPort	= 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Notes/ALLcolors_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/ALLcolors_notes.txt
new file mode 100644
index 0000000..a220036
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/ALLcolors_notes.txt
@@ -0,0 +1,127 @@
+**************************************************************************
+* The following are additional notes on all programs that print a colorized
+* ("colourised") output, *color*.d.
+*
+* $Id: ALLcolors_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+* The colors aren't working, I see rubbish characters
+
+Try using a terminal that supports colors, such as gnome-terminal or dtterm.
+
+The following text should test the spectrum of colors for your terminal.
+Read this using "more" or "cat" (not "less" or "vim") to check if your
+terminal will print colors, and what they will look like:
+
+	Color		Test String		Dark Background
+	---------------------------------------------------------
+	black		[30mcolor test[0m		[30;40mcolor test[0m
+	red		[31mcolor test[0m		[31;40mcolor test[0m
+	green		[32mcolor test[0m		[32;40mcolor test[0m
+	yellow		[33mcolor test[0m		[33;40mcolor test[0m
+	blue		[34mcolor test[0m		[34;40mcolor test[0m
+	magenta		[35mcolor test[0m		[35;40mcolor test[0m
+	cyan		[36mcolor test[0m		[36;40mcolor test[0m
+	white		[37mcolor test[0m		[37;40mcolor test[0m
+
+and now for a test of attributes:
+
+	Color		Bold			Faint
+	---------------------------------------------------------
+	black		[1;30mcolor test[0m		[2;30mcolor test[0m
+	red		[1;31mcolor test[0m		[2;31mcolor test[0m
+	green		[1;32mcolor test[0m		[2;32mcolor test[0m
+	yellow		[1;33mcolor test[0m		[2;33mcolor test[0m
+	blue		[1;34mcolor test[0m		[2;34mcolor test[0m
+	magenta		[1;35mcolor test[0m		[2;35mcolor test[0m
+	cyan		[1;36mcolor test[0m		[2;36mcolor test[0m
+	white		[1;37mcolor test[0m		[2;37mcolor test[0m
+
+
+* Why so much green and violet in the toolkit scripts?
+
+As DTrace can examine the entire software stack, it is conceivable that
+your script could print events from many different layers each with their
+own color. Color scripts in the DTraceToolkit generally start by tracing
+two layers, with extra layers added by the end user as needed (you). The
+general plan is:
+
+	Software Layer		Example	Provider	Color
+	-------------------------------------------------------
+	Dynamic Language	perl			violet
+	User Library		pid:libperl		blue
+	OS Library		pid:libc		cyan
+	System Calls		syscall			green
+	Kernel and Drivers	fbt			red
+
+How these colors will look will depend on your terminal software. Useful
+variations can be made, for example using red/bold for kernel abstraction
+providers (io, vminfo, ...); and red/faint for raw kernel tracing (fbt).
+
+The color examples in this toolkit usually trace the syscall and dynamic
+language layers, hense the green and violet.
+
+
+* I don't like the choosen terminal colors / your colors suck
+
+It should be easy to customize them by tweaking the script. I've tried
+to use the following convention for declaring colors in D scripts:
+
+   dtrace:::BEGIN
+   {
+           color_shell = "\033[2;35m";             /* violet, faint */
+           color_line = "\033[1;35m";              /* violet, bold */
+           color_syscall = "\033[2;32m";           /* green, faint */
+           color_off = "\033[0m";                  /* default */
+   }
+
+That way, printf() statements can print these string variables to turn
+on and off colors, as needed. These strings contain an escape sequence to
+inform your terminal software to change the output color. Customizations
+can be made by tweaking the variables; refer to documentation for your
+terminal software to see what numbers will print what colors.
+
+For my terminal (dtterm), the numbers are (from dtterm(5)):
+
+	Attributes
+
+		1	bold
+		2	faint
+
+	Forground colors
+
+		30	black
+		31	red
+		32	green
+		33	yellow
+		34	blue
+		35	magenta
+		36	cyan
+		37	white
+
+	Background colors
+
+		40	black
+		41	red
+		...	etc, as above
+
+
+* I'd like to use this colored output on a website.
+
+The easiest way would be to change the script to output HTML rather than
+escape sequences. eg:
+
+   dtrace:::BEGIN
+   {
+           color_shell = "<font color=\"#FFAAFF\">";     /* violet, faint */
+           color_line = "<font color=\"#FF44FF\">";      /* violet, bold */
+           color_syscall = "<font color=\"#44CC44\">";   /* green, faint */
+           color_off = "</font>";                        /* default */
+   }
+
+Other tweaks can be made to either print the output in a <pre> tagged block;
+or as seperate lines ending in <br> along with changing the font to be
+fixed width.
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/ALLelapsed_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/ALLelapsed_notes.txt
new file mode 100644
index 0000000..9956987
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/ALLelapsed_notes.txt
@@ -0,0 +1,46 @@
+**************************************************************************
+* The following are notes for all scripts that measure elapsed time.
+*
+* $Id: ALLelapsed_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What is "elapsed" time?
+
+Elapsed time is the absolute time from one point to another. This time
+includes everything that happened between these points, including 
+off-CPU time due to other system events such as I/O, scheduling,
+interrupts, etc. It also includes the small overheads of DTrace itself.
+
+Elapsed times are useful for identifying where latencies are, since
+regardless of their nature (CPU, I/O, ...), they will be visible in
+elapsed time.
+
+Since elapsed times don't filter out anything, they are suseptible to
+"noise" - random system events that are unrelated to the analysis target.
+For that reason, it may be best to take several measurements of elapsed
+time and take the average (or run your workload several times and let
+DTrace take the average).
+
+See Notes/ALLoncpu_notes.txt for a description of a different time
+measurement, "on-CPU" time.
+
+
+* How is "elapsed" time measured?
+
+In DTrace, the following template provides elapsed time as "this->elapsed",
+
+   <start-probe>
+   {
+	   self->start = timestamp;
+   }
+   
+   <end-probe>
+   {
+	   this->elapsed = timestamp - self->start;
+	   self->start = 0;
+	   ...
+   }
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/ALLexclusive_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/ALLexclusive_notes.txt
new file mode 100644
index 0000000..cdb8429
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/ALLexclusive_notes.txt
@@ -0,0 +1,78 @@
+**************************************************************************
+* Notes for all scripts that print exclusive function times (or method,
+* or subroutine).
+*
+* $Id: ALLexclusive_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What is "exclusive" function time?
+
+This is the time of function execution, from when the function begins to
+when it completes, excluding the time spent executing any child function.
+
+Exclusive function time can be calculated like this,
+
+   exclusive function time = time(function end) - time(function start) - 
+                             time(total child exclusive time)
+
+To do this, the DTrace script needs to keep trace of child function execution
+time, so that it can be subtracted from the parent execution time.
+
+Consider this Bourne shell program,
+     1  #!./sh
+     2  
+     3  func_c()
+     4  {
+     5          echo "Function C"
+     6          sleep 1
+     7  }
+     8  
+     9  func_b()
+    10  {
+    11          echo "Function B"
+    12          sleep 1
+    13          func_c
+    14  }
+    15  
+    16  func_a()
+    17  {
+    18          echo "Function A"
+    19          sleep 1
+    20          func_b
+    21  }
+    22  
+    23  func_a
+
+func_a() calls func_b() which calls func_c(). Tracing the flow using
+sh_flowtime.d shows,
+
+# ./sh_flowtime.d | cat -n
+     1    C TIME(us)         FILE             DELTA(us) -- NAME
+     2    0 3052991099265    func_abc.sh              2 -> func_a
+     3    0 3052991099324    func_abc.sh             59   > echo
+     4    0 3052992111638    func_abc.sh        1012314   | sleep
+     5    0 3052992111678    func_abc.sh             39   -> func_b
+     6    0 3052992111729    func_abc.sh             51     > echo
+     7    0 3052993121633    func_abc.sh        1009903     | sleep
+     8    0 3052993121693    func_abc.sh             60     -> func_c
+     9    0 3052993121745    func_abc.sh             52       > echo
+    10    0 3052994131634    func_abc.sh        1009888       | sleep
+    11    0 3052994131685    func_abc.sh             50     <- func_c
+    12    0 3052994131699    func_abc.sh             14   <- func_b
+    13    0 3052994131707    func_abc.sh              7 <- func_a
+
+the output of DTrace was piped through "cat -n" to enumerate the lines.
+
+Exclusive function time for func_a() in the above output would be the
+time from line 2 to line 13 minus the time from line 5 to 12 to subtract
+the time spent in both func_b() and func_c(). Or, you could say that
+exclusive time for func_a() is the time from lines 2 to 4.
+
+Looking back at the code, exclusive time for func_a() is the time spent
+in code lines 18 and 19 (and not line 20).
+
+See Notes/ALLinclusive_notes.txt for details on "inclusive" function time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/ALLfbt_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/ALLfbt_notes.txt
new file mode 100644
index 0000000..73ac973
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/ALLfbt_notes.txt
@@ -0,0 +1,77 @@
+**************************************************************************
+* The following are notes for any script that uses the "fbt" provider.
+* To identify these scripts, check the "STABILITY" section of the script's
+* man page, or try grepping for "fbt" on the script.
+*
+* $Id: ALLfbt_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+What is the "fbt" provider?...
+
+* A DTrace library of probes that instruments raw kernel function calls.
+* An "unstable" provider; meaning, scripts written using "fbt" are not
+  guarenteed to work on future versions of the OS - including after
+  patching the kernel.
+
+In a perfect world...
+
+* None of the DTraceToolkit scripts would use the "fbt" provider; instead
+  they would all use stable providers such as "proc", "sched", "io", etc.
+* All the DTraceToolkit scripts would run on any system that supports DTrace.
+
+In the real world...
+
+* Not all stable providers exist yet. Many are in development, such as
+  stable networking providers.
+* In the meantime, useful tools such as "tcpsnoop" and "tcptop" can
+  only be written using the unstable "fbt" provider (and these scripts have
+  broken several times due to kernel changes since they were first written).
+* "fbt" provider based scripts,
+	- only run on a particular OS (eg, Solaris)
+	- may only run on a particular version of an OS (eg, Solaris 10 3/05)
+	- are likely to break for future OS releases (eg, Solaris 10 6/06)
+* "fbt" provider based scripts also make the impossible possible, albiet
+  in a very unstable way, as a temporary solution while stable providers
+  are still in development.
+* Once stable providers exist, "fbt" scripts can be rewritten to use them;
+  however these new scripts will only run on newer OS builds that support
+  the stable providers. (in other words, this won't help you if you remain
+  on Solaris 10 6/06; you'll need to upgrade, or survive with "fbt").
+* Only some of the DTraceToolkit scripts use "fbt", and only a portion of
+  those have encountered stability issues - so this issue is limited.
+
+The "fbt" provider exports raw kernel implementation, which isn't guarenteed
+to be stable nor should it ever be (to do so would freeze kernel development
+and bug fixes). The only practical solution is the development and
+integration of stable providers (although that doesn't help people who keep
+running older versions of the OS).
+
+More harm than good?...
+
+Is the inclusion of these "fbt" scripts more harm than good? Consider,
+
+* the good,
+	- shows what is possible with DTrace
+	- should help a number of people solve specific performance issues,
+	  on systems where they run
+	- a customer who really wants these scripts but on an OS version
+	  where they don't work, have at least the source as a starting
+	  point (and in some cases, the fix was trivial)
+
+* the bad,
+	- teases and frustrates people who find these scripts don't work
+	  on their OS
+
+To minimise this issue, only a small number of "fbt" scripts have been
+included, and they have been documented (see their man page) as unstable.
+
+Can I help?...
+
+If you really like an "fbt" based script and would like to keep using it
+in a stable way, it may help to raise that with your vendor (Sun for Solaris,
+Apple for MacOS). Sun has OpenSolaris forums, such as dtrace-discuss, which
+are read by their engineers and the public.
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/ALLflow_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/ALLflow_notes.txt
new file mode 100644
index 0000000..1b2d899
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/ALLflow_notes.txt
@@ -0,0 +1,64 @@
+**************************************************************************
+* Notes for all scripts that print a function or method flow.
+*
+* $Id: ALLflow_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What is a flow?
+
+Output that has some meaningful indent, such as function flow indented by
+stack depth. eg,
+
+   # ./pl_flow.d 
+     C TIME(us)          FILE             -- SUB
+     0 2963130861619     func_abc.pl      -> func_a
+     0 2963131870998     func_abc.pl        -> func_b
+     0 2963132871121     func_abc.pl          -> func_c
+     0 2963133881150     func_abc.pl          <- func_c
+     0 2963133881166     func_abc.pl        <- func_b
+     0 2963133881174     func_abc.pl      <- func_a
+   ^C
+
+
+* The output looks shuffled?
+
+Eg,
+
+   # ./pl_flow.d 
+     C TIME(us)          FILE             -- SUB
+     0 2963130861619     func_abc.pl      -> func_a
+     0 2963131870998     func_abc.pl        -> func_b
+     0 2963132871121     func_abc.pl          -> func_c
+     0 2963133881166     func_abc.pl        <- func_b
+     0 2963133881174     func_abc.pl      <- func_a
+     1 2963133881150     func_abc.pl          <- func_c
+   ^C
+
+Yes, this is shuffled. DTrace has been designed with a number of important
+goals in mind - including minimising the enabled performance overhead. To do
+this, per-CPU kernel buffers have been used to collect output, which are
+(currently) dumped in sequence by /usr/sbin/dtrace whenever it wakes
+up ("switchrate" tunable). So, on multi-CPU servers, there is always the
+possibility that any DTrace script can print out-of-order data.
+
+To deal with this behaviour, the flow scripts may,
+
+- print a "C" CPU column. If this changes from one line to the next then
+  the output is probably shuffled around that point. This is why the "C"
+  column appears in these flow scripts.
+- print a "TIME(us)" column. You can eyeball this for shuffles, or just
+  post sort the dtrace output.
+
+Now have a closer look at the pl_flow.d output above. The change in C 
+indicates that a shuffle may have happened, and the out-of-order TIME(us)
+shows that it did happen.
+
+It is possible that DTrace will be enhanced to always sort output before
+printing, and this behaviour is no longer an issue.
+
+See "The output seems shuffled?" in Notes/ALLsnoop_notes.txt for more
+notes on this behaviour.
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/ALLinclusive_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/ALLinclusive_notes.txt
new file mode 100644
index 0000000..7d6f8b0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/ALLinclusive_notes.txt
@@ -0,0 +1,74 @@
+**************************************************************************
+* Notes for all scripts that print inclusive function times (or method,
+* or subroutine).
+*
+* $Id: ALLinclusive_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What is "inclusive" function time?
+
+This is the time of function execution, from when the function begins to
+when it completes. This includes the times from all child functions called.
+
+Inclusive function time is calculated in a very simple way,
+
+   inclusive function time = time(function end) - time(function start)
+
+Consider this Bourne shell program,
+
+     1  #!./sh
+     2  
+     3  func_c()
+     4  {
+     5          echo "Function C"
+     6          sleep 1
+     7  }
+     8  
+     9  func_b()
+    10  {
+    11          echo "Function B"
+    12          sleep 1
+    13          func_c
+    14  }
+    15  
+    16  func_a()
+    17  {
+    18          echo "Function A"
+    19          sleep 1
+    20          func_b
+    21  }
+    22  
+    23  func_a
+
+func_a() calls func_b() which calls func_c(). Tracing the flow using
+sh_flowtime.d shows,
+
+# ./sh_flowtime.d | cat -n
+     1    C TIME(us)         FILE             DELTA(us) -- NAME
+     2    0 3052991099265    func_abc.sh              2 -> func_a
+     3    0 3052991099324    func_abc.sh             59   > echo
+     4    0 3052992111638    func_abc.sh        1012314   | sleep
+     5    0 3052992111678    func_abc.sh             39   -> func_b
+     6    0 3052992111729    func_abc.sh             51     > echo
+     7    0 3052993121633    func_abc.sh        1009903     | sleep
+     8    0 3052993121693    func_abc.sh             60     -> func_c
+     9    0 3052993121745    func_abc.sh             52       > echo
+    10    0 3052994131634    func_abc.sh        1009888       | sleep
+    11    0 3052994131685    func_abc.sh             50     <- func_c
+    12    0 3052994131699    func_abc.sh             14   <- func_b
+    13    0 3052994131707    func_abc.sh              7 <- func_a
+
+the output of DTrace was piped through "cat -n" to enumerate the lines.
+
+Inclusive function time for func_a() in the above output would be the
+time from line 2 to line 13. This inclusive time includes the time
+for both func_b() and func_c().
+
+Looking back at the code, inclusive time for func_a() is the time spent
+in code lines 18, 19 and 20.
+
+See Notes/ALLexclusive_notes.txt for details on "exclusive" function time.
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/ALLjava_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/ALLjava_notes.txt
new file mode 100644
index 0000000..6fc1ac3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/ALLjava_notes.txt
@@ -0,0 +1,35 @@
+**************************************************************************
+* Notes for all scripts that trace Java using the hotspot provider.
+*
+* $Id: ALLjava_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+* I see "drops"
+
+If you see the following output,
+   
+   dtrace: 2547 drops on CPU 0
+
+This means that JVM events (usually methods) were executed too quickly for
+DTrace to keep up, and as a safety measure DTrace has let events slip by.
+This means, at least, that the output is missing lines. At worst, the
+output may contain corrupted values (time deltas between events that were
+dropped).
+
+If you see drops, you should first ask yourself whether you need to be
+tracing such frequent events at all - is there another way to get the same
+data?  For example, see the j_profile.d script, which uses a different
+technique (sampling) than most of the other Java scripts (tracing).
+
+You can try tweaking DTrace tunables to prevent DTrace from dropping events.
+A key tunable is "bufsize", and can be set in scripts like so,
+
+   #pragma D option bufsize=32m
+
+That line means that 32 Mbytes will be allocated to the DTrace primary
+buffer per-CPU (how depends on bufpolicy). If you have many CPUs, say 8,
+then the above line means that 256 Mbytes (32 * 8) will be allocated as a
+buffer while your D script is running. 
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/ALLoncpu_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/ALLoncpu_notes.txt
new file mode 100644
index 0000000..38f6971
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/ALLoncpu_notes.txt
@@ -0,0 +1,42 @@
+**************************************************************************
+* The following are notes for all scripts that measure on-CPU times.
+*
+* $Id: ALLoncpu_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What is "on-CPU" time?
+
+This is the time that a thread spent running on a CPU. It does not include
+time spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy,
+since they measure how much CPU time has been consumed by that thread.
+
+On-CPU times are also less susceptible to system "noise" than elapsed times,
+since much of the noise will be filtered out. DTrace itself also tries
+to subtract the small overheads of DTrace from the on-CPU time, to improve
+the accuracy of this time.
+
+See Notes/ALLelapsed_notes.txt for a description of a different time
+measurement, "elapsed" time.
+
+
+* How is "on-CPU" time measured?
+
+In DTrace, the following template provides on-CPU time as "this->oncpu",
+
+   <start-probe>
+   {
+	   self->vstart = vtimestamp;
+   }
+   
+   <end-probe>
+   {
+	   this->oncpu = vtimestamp - self->vstart;
+	   self->vstart = 0;
+	   ...
+   }
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/ALLoverhead.txt b/external/cddl/dtracetoolkit/dist/Notes/ALLoverhead.txt
new file mode 100644
index 0000000..5291afe
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/ALLoverhead.txt
@@ -0,0 +1,96 @@
+**************************************************************************
+* The following are notes regarding the overheads of running DTrace.
+*
+* $Id: ALLoverhead.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+The following are notes regarding the overheads of running DTrace.
+
+* What are the overheads of running DTrace?
+
+Often negligible.
+
+It depends what the DTrace script does, in particular, the frequency of
+events that it is tracing.
+
+The following tips should explain what the overheads probably are,
+
+- if your script traces less than 1000 events per second, then the overhead
+  is probably negligible. ie, less than 0.1% CPU.
+- if your script traces more than 100,000 events per second, then the
+  overhead will start to be significant. If you are tracing kernel events,
+  then perhaps this could be 10% per CPU. If you are tracing user land
+  application events, then the overhead can be greater than 30% per CPU.
+- if your script produes pages of output, then the CPU cost of drawing
+  this output to the screen and rendering the fonts is usually far greater
+  than DTrace itself. Redirect the output of DTrace to a file in /tmp
+  ("-o" or ">").
+- a ballpark figure for the overhead of a DTrace probe would be 500 ns.
+  This can be much less (kernel only), or much more (many user to kerel
+  copyin()s); I've provided it to give you a very rough idea. Of course,
+  as CPUs become faster, this overhead will become smaller.
+
+If overheads are a concern - then perform tests to measure their magnitude
+for both your workload and the scripts applied, such as benchmarks with
+and without DTrace running. Also read the scripts you are using, and
+consider how frequent the probes will fire, and if you can customise the
+script to reduce the frequency of probes.
+
+For example, scripts that trace,
+
+	pid$target:::entry,
+	pid$target:::return
+
+would usually cause significant performance overhead, since they fire two
+probes for every function called (and can easily reach 100,000 per second).
+You could reduce this by modifying the script to only trace the libraries
+you are interested in. For example, if you were only interested in
+libsocket and libnsl, then change the above lines wherever they appeared to,
+
+	pid$target:libsocket::entry,
+	pid$target:libsocket::return,
+	pid$target:libnsl::entry,
+	pid$target:libnsl::return
+
+and you may notice the overheads are significantly reduced (especially anytime
+you drop libc and libdl). To go further, only list functions of interest,
+
+	pid$target:libsocket:connect:entry,
+	pid$target:libsocket:connect:return,
+	pid$target:libsocket:listen:entry,
+	pid$target:libsocket:listen:return,
+	[...]
+
+There are additional notes in Docs/Faq about the DTraceToolkit's scripts
+and performance overhead.
+
+
+* When are the overheads a problem?
+
+When they are significant (due to frequent events), and you are tracing
+in a production environment that is sensitive to additional CPU load.
+
+Overheads should be considered if you are measuring times (delta, elapsed,
+on-CPU, etc) for performance analysis. In practise, overheads aren't
+that much of a problem -- the script will either identify your issues
+correctly (great), or not (keep looking). Any it is usually easy to quickly
+confirm what DTrace does find by using other tools, or by hacking quick
+code changes. You might be using DTrace output that you know has a
+significant margin of error - but that becomes moot after you prove that
+the performance fix works through benchmarking a quick fix.
+
+At the end of the day, if DTrace helps find real measurable performance wins
+(and it should), then it has been successful.
+
+
+* When are overheads not a problem?
+
+When the script is not tracing extreamly frequent events.
+
+Also, when you are in development and tracing events for troubleshooting
+purposes (args to functions, for example), DTrace overheads are usually 
+not an issue at all.
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/ALLperl_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/ALLperl_notes.txt
new file mode 100644
index 0000000..aebe157
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/ALLperl_notes.txt
@@ -0,0 +1,44 @@
+**************************************************************************
+* The following are notes for all the Perl tracing scripts,
+*
+* $Id: ALLperl_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* Where did those "BEGIN" subroutine calls come from?
+
+The following counts subroutines from the example program, Code/Perl/hello.pl,
+
+   # pl_subcalls.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    FILE                             SUB                                 CALLS
+
+no subroutines were called, so there is no data to output.
+
+Now a similar program is traced, Code/Perl/hello_strict.pl, which uses
+the "strict" pragma,
+
+   # pl_subcalls.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    FILE                             SUB                                 CALLS
+    hello_strict.pl                  BEGIN                                   1
+    strict.pm                        bits                                    1
+    strict.pm                        import                                  1
+
+not only were functions from "strict.pm" traced, but a "BEGIN" function
+ran from the "hello_strict.pl" program - which doesn't appear to use "BEGIN",
+
+   # cat -n ../Code/Perl/hello_strict.pl
+        1  #!./perl -w
+        2  
+        3  use strict;
+        4  
+        5  print "Hello World!\n";
+
+Perl appears to add a BEGIN block to process the "use" keyword. This makes
+some degree of sense.
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/ALLsnoop_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/ALLsnoop_notes.txt
new file mode 100644
index 0000000..8b5c6ab
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/ALLsnoop_notes.txt
@@ -0,0 +1,94 @@
+**************************************************************************
+* The following are additional notes on ALL of the *snoop programs (such as
+* execsnoop, iosnoop, ..., and dapptrace, dtruss).
+*
+* $Id: ALLsnoop_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* The output seems shuffled?
+
+Beware - due to the (current) way DTrace works, on multi-CPU systems there
+is no guarentee that if you print traced events the output is in the same
+order that the events occured.
+
+This is because events details are placed in kernel per-CPU buffers, and then
+dumped in sequence by the DTrace consumer (/usr/sbin/dtrace) whenever it
+wakes up ("switchrate" tunable). The DTrace consumer reads and prints the
+buffers one by one, it doesn't combine them and sort them. 
+
+To demonstrate this,
+
+   # dtrace -n 'profile:::profile-3hz { trace(timestamp); }'
+   dtrace: description 'profile-3hz ' matched 1 probe
+   CPU     ID                    FUNCTION:NAME
+     0  41241                     :profile-3hz  1898015274778547
+     0  41241                     :profile-3hz  1898015608118262
+     0  41241                     :profile-3hz  1898015941430060
+     1  41241                     :profile-3hz  1898015275499014
+     1  41241                     :profile-3hz  1898015609173485
+     1  41241                     :profile-3hz  1898015942505828
+     2  41241                     :profile-3hz  1898015275351257
+     2  41241                     :profile-3hz  1898015609180861
+     2  41241                     :profile-3hz  1898015942512708
+     3  41241                     :profile-3hz  1898015274803528
+     3  41241                     :profile-3hz  1898015608120522
+     3  41241                     :profile-3hz  1898015941449884
+   ^C
+
+If you read the timestamps carefully, you'll see that they aren't quite
+in chronological order. If you look at the CPU column while reading the
+timestamps, the way DTrace works should become clear.
+
+Most of the snoop tools have a switchrate of 10hz, so events may be shuffled
+within a tenth of a second - not hugely noticable.
+
+This isn't really a problem anyway. If you must have the output in the correct
+order, find the switch that prints timestamps and then sort the output.
+As an example,
+
+   # iosnoop -t > out.iosnoop
+   ^C
+   # sort -n out.iosnoop
+   
+   TIME             UID   PID D    BLOCK   SIZE       COMM PATHNAME
+   183710958520       0  3058 W 10507848   4096       sync /var/log/pool/poold
+   183710990358       0  3058 W  6584858   1024       sync /etc/motd
+   183711013469       0  3058 W    60655   9216       sync <none>
+   183711020149       0  3058 W    60673   1024       sync <none>
+
+All shell-wrapped scripts should have some way to print timestamps, and
+many DTrace-only scripts print timestamps by default. If you find a script
+that doesn't print timestamps, it should be trivial for you to add an
+extra column.
+
+To add a microsecond-since-boot time column to a script, try adding this
+before every printf() you find,
+
+	printf("%-16d ", timestamp / 1000);
+
+except for the header line, where you can add this,
+
+	printf("%-16s ", "TIME(us)");
+
+Now you will be able to post sort the script output on the TIME(us) column.
+
+In practise, I find post sorting the output a little annoying at times,
+and use a couple of other ways to prevent shuffling from happening in the
+first place:
+
+- offline all CPUs but one when running flow scripts. Naturally, you
+  probably don't want to do this on production servers, this is a trick
+  that may be handy for when developing on workstations or laptops. Bear
+  in mind that if you are trying to DTrace certain issues, such as
+  multi-thread locking contention, then offlining most CPUs may eliminate
+  the issue you are trying to observe.
+- pbind the target process of interest to a single CPU. Most OSes provide
+  a way to glue a process to a single CPU; Solaris has both pbind and psrset.
+
+Another way to solve this problem would be to enhance DTrace to always print
+in-order output. Maybe this will be done one day; maybe by the time you
+are reading this it has already been done?
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/Readme b/external/cddl/dtracetoolkit/dist/Notes/Readme
new file mode 100644
index 0000000..99a1807
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/Readme
@@ -0,0 +1,21 @@
+Notes - Discussion about tools and their output
+
+   This directory contains files that provide deeper discussions about
+   tools and their output.
+
+   Files are either named,
+
+	ALL*_notes.txt	- notes that cover a collection of tools
+	*_notes.txt	- notes that cover a specific tool
+
+   These files are exist as an informal place to dump "stuff". This might
+   range from caveats to bear in mind when interpreting tool output, to
+   general or bizzare knowledge. Tool documentation is placed in,
+
+	/Man		- formal man pages
+	/Examples	- demos and how to read the output
+	*.d		- implementation notes within the code itself
+	/Notes		- everything else
+
+   Many of the scripts and man pages refer to files in this directory.
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/cputimes_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/cputimes_notes.txt
new file mode 100644
index 0000000..456ece3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/cputimes_notes.txt
@@ -0,0 +1,138 @@
+**************************************************************************
+* The following are additional notes on the cputimes command.
+*
+* $Id: cputimes_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* How cputimes works
+
+cputimes measures time consumed by the kernel, idle therads and processes,
+by tracking the activity of the schedular. In particular we track on-cpu
+and off-cpu events for kernel therads, measuring the timestamps at each event.
+
+
+* Why cputimes?
+
+If you are interested in how much time processes are consuming, the data 
+given by "prstat" or "prstat -m" is fine. However there is no easy way to 
+see kernel consumed time, which is the idea behind cputimes.
+
+
+* What does it mean?
+
+The output shows categories of threads by the sum of time, in nanoseconds.
+
+A nanosecond is 10^-9, or 0.000000001 of a second. This program uses
+nanoseconds as units, but does not have nanosecond accuracy. It would be 
+reasonable to assume that this has microsecond accuracy (10^-6), so in 
+practise ignore the last three digits of the times.
+
+The sections reported are,
+
+PROCESSES - the sum of all the process time on the CPU. 
+KERNEL - the sum of the time spent in the kernel.
+IDLE - the time the kernel spent in the idle thread, waiting for some work.
+
+If your system isn't doing much, then the idle time will be quite large. If
+your system is running many applications, then there may be no idle time
+at all - instead most of the time appearing under processes.
+
+
+* When is there a problem?
+
+Expect to see most of the time in processes or idle, depending on how busy 
+your server is. Seeing a considerable amout of time in kernel would 
+definately be interesting.
+
+The kernel generally doesn't use much CPU time, usually less than 5%. 
+If it were using more, that may indicate heavy activity from an interrupt 
+thread, or activity caused by DTrace. 
+
+For example,
+
+   # cputimes 1
+   2005 Apr 27 23:49:32,
+            THREADS        TIME (ns)
+               IDLE         28351679
+             KERNEL        436022725
+            PROCESS        451304688
+
+In this sample the kernel is using a massive amount of the CPUs, around 47%.
+This sample was taken during heavy network utilisation, the time consumed 
+by the TCP/IP and network driver threads (and DTrace). The "intrstat" command
+could be used for further analysis of the interrupt threads responsible
+for servicing the network interface.
+
+
+* Problems with cputimes
+
+The way cputimes measures schedular activity turns out to be a lot of work. 
+There are many scheduling events per second where one thread steps onto a 
+CPU and another leaves. It turns out that cputimes itself causes some degree 
+of kernel load.
+
+Here we run 1 cputimes,
+
+   # cputimes 1
+   2005 May 15 12:00:41,
+            THREADS        TIME (ns)
+             KERNEL         12621985
+            PROCESS        982751579
+   2005 May 15 12:00:42,
+            THREADS        TIME (ns)
+             KERNEL         12267577
+            PROCESS        983513765
+   [...]
+
+Now a second cputimes is run at the same time,
+
+   # cputimes 1
+   2005 May 15 12:02:06,
+            THREADS        TIME (ns)
+             KERNEL         17366426
+            PROCESS        978804165
+   2005 May 15 12:02:07,
+            THREADS        TIME (ns)
+             KERNEL         17614829
+            PROCESS        978671601
+   [...]
+
+And now a third,
+
+   # cputimes 1
+   2005 May 15 12:03:09,
+            THREADS        TIME (ns)
+             KERNEL         21303089
+            PROCESS        974925124
+   2005 May 15 12:03:10,
+            THREADS        TIME (ns)
+             KERNEL         21222992
+            PROCESS        975152727
+   [...]
+
+Each extra cputimes is consuming an extra 4 to 5 ms of the CPU as kernel time.
+Around 0.5%. This can be used as an estimate of the kernel load caused by 
+running cputimes, and a similar strategy could be used to measure the kernel 
+load of other DTrace scripts.
+
+However the following CPU characteristics must be taken into consideration,
+
+   # psrinfo -v
+   Status of virtual processor 0 as of: 05/15/2005 12:06:05
+     on-line since 04/30/2005 13:32:32.
+     The i386 processor operates at 867 MHz,
+           and has an i387 compatible floating point processor.
+
+as well as the type of activity that was also running on the system, which
+cputimes was monitoring (frequency of scheduling events).
+
+A system with a slower CPU will use a larger proportion of kernel time to
+perform the same tasks. Also, a system that is context switching more 
+(switching between different processes) is likely to consume more kernel time
+as well.
+
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/dappprof_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/dappprof_notes.txt
new file mode 100644
index 0000000..945106b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/dappprof_notes.txt
@@ -0,0 +1,14 @@
+**************************************************************************
+* The following are extra notes on the dappprof command.
+*
+* $Id: dappprof_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* Can I trust the elapsed and on-cpu times?
+
+See the documentation for this point in the dtruss_notes.txt file.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/dapptrace_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/dapptrace_notes.txt
new file mode 100644
index 0000000..56e0ca8
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/dapptrace_notes.txt
@@ -0,0 +1,19 @@
+**************************************************************************
+* The following are extra notes on the dapptrace command.
+*
+* $Id: dapptrace_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* Can I trust the elapsed and on-cpu times?
+
+See the documentation for this point in the dtruss_notes.txt file.
+
+
+
+* The output appears shuffled?
+
+Read the answer to this in ALLsnoop_notes.txt.
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/dtruss_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/dtruss_notes.txt
new file mode 100644
index 0000000..bdc6253
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/dtruss_notes.txt
@@ -0,0 +1,97 @@
+**************************************************************************
+* The following are additional notes on the dtruss program.
+*
+* $Id: dtruss_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* Can I trust the elapsed and on-cpu times?
+
+Firstly, lets see dtruss do something cool,
+
+   # dtruss -eo -n bash
+   PID/LWP    ELAPSD    CPU SYSCALL(args)           = return
+    6215/1:       57     37 write(0x2, "h\0", 0x1)          = 1 0
+    6215/1:   357210     45 read(0x0, "e\0", 0x1)           = 1 0
+    6215/1:       53     37 write(0x2, "e\0", 0x1)          = 1 0
+    6215/1:   359510     46 read(0x0, "l\0", 0x1)           = 1 0
+    6215/1:       57     42 write(0x2, "l\0", 0x1)          = 1 0
+    6215/1:   166495     47 read(0x0, "l\0", 0x1)           = 1 0
+    6215/1:       56     40 write(0x2, "l\0", 0x1)          = 1 0
+    6215/1:   346076     44 read(0x0, "o\0", 0x1)           = 1 0
+    6215/1:       54     38 write(0x2, "o\0", 0x1)          = 1 0
+    6215/1:   349852     45 read(0x0, " \0", 0x1)           = 1 0
+    6215/1:       54     39 write(0x2, " \0", 0x1)          = 1 0
+
+In the above, the slow elapsed times for reads are due to the process context
+switching off the CPU while we wait for the next keystroke. For example,
+the second line shows an on-CPU time of 45 us and an elapsed time of 357210 us.
+In fact, the elapsed times are equal to the inter-keystroke delays.
+
+
+What about the writes? Their elapsed times are longer than the on-CPU times 
+also. Did we context switch off for them too? ... Lets run a different demo,
+
+   # dtruss -eo date
+    ELAPSD    CPU SYSCALL(args)             = return
+   Mon Jul 25 21:41:40 EST 2005
+        44     23 resolvepath("/usr/bin/date\0", 0x80476CC, 0x3FF)          = 13 0
+        10      1 sysconfig(0x6, 0xB25A1, 0xFEC1D444)               = 4096 0
+        36     28 resolvepath("/usr/lib/ld.so.1\0", 0x80476CC, 0x3FF)              = 12 0
+        18      9 xstat(0x2, 0x8047FEB, 0x8047AF8)          = 0 0
+        25     16 open("/var/ld/ld.config\0", 0x0, 0x0)             = -1 Err#2
+        27     18 xstat(0x2, 0xD27FBF38, 0x80473B0)                 = 0 0
+        17      9 resolvepath("/lib/libc.so.1\0", 0x8047438, 0x3FF)                = 14 0
+        21     13 open("/lib/libc.so.1\0", 0x0, 0x0)                = 3 0
+        30     22 mmap(0x10000, 0x1000, 0x5)                = -763559936 0
+        15      6 mmap(0x10000, 0xCE000, 0x0)               = -764411904 0
+        24     16 mmap(0xD2700000, 0xB5A45, 0x5)            = -764411904 0
+        21     12 mmap(0xD27C6000, 0x5EB3, 0x3)             = -763600896 0
+        18      9 mmap(0xD27CC000, 0x15C0, 0x3)             = -763576320 0
+        14      5 munmap(0xD27B6000, 0x10000)               = 0 0
+       186    176 memcntl(0xD2700000, 0x1B8D8, 0x4)                 = 0 0
+        17      7 close(0x3)                = 0 0
+   [...]
+
+For every syscall, the elapsed time is around 10 us (microseconds) slower
+than the on-cpu time. These aren't micro context switches, this is due to
+DTrace slowing down the program! The more closely we measure something the
+more we effect it. (See Heisenberg's uncertainty principle).
+
+Ok, so for the above output we can tell that each elapsed time is around 10 us
+longer than it should be. That's fine, since it's fairly consistant and not
+a huge difference. This is an x86 server with a 867 MHz CPU. 
+
+
+Now lets try the same on an Ultra 5 with a 360 MHz CPU,
+
+   # dtruss -eo date
+    ELAPSD    CPU SYSCALL(args)             = return
+       216    142 resolvepath("/usr/bin/date\0", 0xFFBFF338, 0x3FF)                = 13 0
+       234    187 resolvepath("/usr/lib/ld.so.1\0", 0xFFBFF338, 0x3FF)             = 12 0
+       113     67 stat("/usr/bin/date\0", 0xFFBFF818, 0xFFBFFFEB)           = 0 0
+       136     90 open("/var/ld/ld.config\0", 0x0, 0x0)             = -1 Err#2
+       107     61 stat("/opt/onbld/lib/libc.so.1\0", 0xFFBFF330, 0xFFBFF55C)       = -1 Err#2
+        98     54 stat("/opt/SUNWspro/lib/libc.so.1\0", 0xFFBFF330, 0xFFBFF55C)    = -1 Err#2
+        96     53 stat("/opt/SUNWmlib/lib/libc.so.1\0", 0xFFBFF330, 0xFFBFF55C)    = -1 Err#2
+        97     54 stat("/usr/sfw/lib/libc.so.1\0", 0xFFBFF330, 0xFFBFF55C)         = -1 Err#2
+        96     53 stat("/lib/libc.so.1\0", 0xFFBFF330, 0xFFBFF55C)          = 0 0
+       134     92 resolvepath("/lib/libc.so.1\0", 0xFFBFEF30, 0x3FF)               = 14 0
+       109     69 open("/lib/libc.so.1\0", 0x0, 0x0)                = 3 0
+       177    132 mmap(0x10000, 0x2000, 0x5)                = -12976128 0
+   [...]
+
+Now the time difference is around 40 us, and fairly consistant.
+
+
+This difference is find so long as we bear it in mind. Or, run DTrace
+on faster servers where the difference is much less.
+
+
+
+* The output appears shuffled?
+
+Read the answer to this in ALLsnoop_notes.txt.
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/iosnoop_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/iosnoop_notes.txt
new file mode 100644
index 0000000..ea59413
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/iosnoop_notes.txt
@@ -0,0 +1,99 @@
+**************************************************************************
+* The following are additional notes on the iosnoop program.
+*
+* $Id: iosnoop_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What does the output represent?
+
+The output is disk events - I/O operations that cause the disk to physically
+read or write data. The output is not application I/O events which may be
+absorbed by memory caches - many of which will be. The output really is
+physical disk events.
+
+iosnoop uses probes from the "io" provider - which traces the block device
+driver before disk events happen. disk events. The stack goes like this,
+
+       application
+         |
+         V
+       syscall
+         |
+         V
+       vfs
+         |
+         V
+       ufs/zfs/...
+         |
+         V
+       block device driver
+         |
+         V
+       physical device driver
+         |
+         V
+       disk
+
+Due to caching (after vfs) few events will make it to the disk for iosnoop
+to see. If you want to trace all I/O activity, try using syscall provider
+based scripts first.
+
+
+* What do the elapsed and delta times mean?
+
+Glad you asked!
+
+The times may *not* be as useful as they appear. I should also add that 
+this quickly becomes a very complex topic,
+
+There are two different delta times reported. -D prints the
+elapsed time from the disk request (strategy) to the disk completion
+iodone); -o prints the time for the disk to complete that event
+since it's last event (time between iodones, or since idle->strategy).
+
+The elapsed time is equivalent to the response time from the application
+request to the application completion. The delta time resembles the
+service time for this request (resembles means it will be generally 
+correct, but not 100% accurate). The service time is the the time for the
+disk to complete the request, after it has travelled through any bus or
+queue.
+
+buuuttt.... you need to think carefully about what these times mean before 
+jumping to conclusions. For example,
+
+   You troubleshoot an application by running iosnoop and filtering 
+   on your application's PID. You notice large times for the disk events
+   (responce, service, for this example it doesn't matter). 
+   Does this mean there is a problem with that application?
+   What could be happening is that a different application is also using
+   the disks at the same time, and is causing the disk heads to seek to
+   elsewhere on the disk surface - increasing both service and response time.
+
+hmmm! so you can't just look at one application, one set of numbers, and
+understand fully what is going on. 
+
+But it gets worse. Disks implement "tagged queueing", where events in the
+queue are reshuffeled to promote "elevator seeking" of the disk heads (this
+reduces head seeking). So the time for a disk event can be effected not
+just by the previous event (and previous location the heads had seeked to), 
+but the surrounding events that enter the queue.
+
+So the good and the bad. The good news is that iosnoop makes it easy to
+fetch disk event data on a live system, the bad news is that understanding
+all the data is not really easy.
+
+For further information on disk measurements see,
+
+   "How do disks really work?" - Adrian Cockcroft, SunWorld Online, June 1996
+   "Sun Performance and Tuning" - Adrian Cockcroft, Richard Pettit
+   "Solaris Internals" - Richard McDougall, Jim Mauro
+
+
+
+* The output appears shuffled?
+
+Read the answer to this in ALLsnoop_notes.txt.
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/iotop_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/iotop_notes.txt
new file mode 100644
index 0000000..9899cec
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/iotop_notes.txt
@@ -0,0 +1,48 @@
+**************************************************************************
+* The following are additional notes on the iotop program.
+*
+* $Id: iotop_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* When using -P, how can a process exceed 100% I/O?
+
+These percentages are based on disk time. They are in terms of a single disk.
+
+200% could mean 2 disks @ 100%, or 4 @ 50%, or some such combination.
+
+I could have capped it at 100% by dividing by disk count. I didn't. Disk
+utilisation is an asymmetric resource (unlike CPUs, which are (mostly)
+symmetric), so it's unfair to divide by all the disks capacity as an
+application cannot use every disks capacity (eg, writing to a /opt disk only).
+
+Would it be wise to report utilisation as 10% of overall capacity, if it
+could mean that 1 disk was SATURATED out of ten? A value of 10% could
+understate the problem.
+
+Instead I add the utilisations and don't divide. 1 disk saturated out of 10
+would be reported as 100% utilisation. This has the danger of overstating
+the problem (consider all ten disks at 10% utilisation, this would also be
+reported as 100%). 
+
+Nothing is perfect when you are summarising to a single value!
+
+
+
+* Beware of overcounting metadevices, such as SVM and Veritas.
+
+The current version of iotop reports on anything the kernel believes to be
+a block disk device. A problem happens when a metadevice contains physical
+disk devices, and iotop reports on activity to both the metadevice and
+the physical devices, which overcounts activity.
+
+Consider a metadevice that contains two physical disks which are both
+running at 100% utilised. iotop -P may report 300% utilisation, which is
+200% for the disks + 100% for the metadevice. We'd probably want to see
+a value of 200%, not 300%. Eliminating the counting of metadevices in DTrace
+isn't easy (without inelegant "hardwiring" of device types), however I do
+intend to find a way to fix this in future versions.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Notes/procsystime_notes.txt b/external/cddl/dtracetoolkit/dist/Notes/procsystime_notes.txt
new file mode 100644
index 0000000..df7be11
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Notes/procsystime_notes.txt
@@ -0,0 +1,14 @@
+**************************************************************************
+* The following are extra notes on the procsystime command.
+*
+* $Id: procsystime_notes.txt,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* Can I trust the elapsed and on-cpu times?
+
+See the documentation for this point in the dtruss_notes.txt file.
+
+
diff --git a/external/cddl/dtracetoolkit/dist/Perl/Readme b/external/cddl/dtracetoolkit/dist/Perl/Readme
new file mode 100644
index 0000000..36fcab5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Perl/Readme
@@ -0,0 +1,38 @@
+Perl - DTracing Perl
+
+   These scripts trace the Perl programming language, and require a version
+   of Perl to be built with the DTrace probes patch applied.
+
+   The Perl DTrace provider was originally written by Alan Burlison, and
+   later rewritten by Richard Dawe. These scripts were written and tested
+   with Richard's patch to perl, which can be found in the comments on
+   Alan's original blog entry,
+
+	http://blogs.sun.com/alanbur/entry/dtrace_and_perl
+   
+   To get this and these scripts working, the rough steps are,
+
+	1. Download and extract perl 5.8.8 (www.cpan.org)
+	2. Download Richard's patch
+	3. Apply Richard's patch (gpatch -p1 -i patchfile)
+	4. sh Configure
+	5. make perldtrace.h
+	6. /usr/sbin/dtrace -h -s perldtrace.d -o perldtrace.h
+	7. make
+
+   If things go awry, you might find help by asking on the
+   dtrace-discuss@opensolaris.org mailing list.
+
+   Since the DTrace Perl provider may be developed further, there is a chance
+   that it has changed slightly by the time you are reading this, causing
+   these scripts to either break or behave oddly. Firstly, check for newer
+   versions of the DTraceToolkit; if it hasn't been updated and you need
+   to use these scripts immediately, then updating them shouldn't take
+   too long. The following was the state of the provider when these scripts
+   were written - check for changes and update the scripts accordingly,
+
+	provider perl {
+	    probe sub-entry(subroutine, file, lineno)
+	    probe sub-return(subroutine, file, lineno)
+	};
+
diff --git a/external/cddl/dtracetoolkit/dist/Perl/pl_calldist.d b/external/cddl/dtracetoolkit/dist/Perl/pl_calldist.d
new file mode 100755
index 0000000..7c577c0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Perl/pl_calldist.d
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_calldist.d - measure Perl elapsed times for subroutines.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_calldist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Perl activity from all programs running on the system with
+ * Perl provider support.
+ *
+ * USAGE: pl_calldist.d 	# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Perl subroutines.
+ * Use pl_calltime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Perl program
+ *		2		Type of call (sub)
+ *		3		Name of call
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->sub[self->depth] = timestamp;
+}
+
+perl*:::sub-return
+/self->sub[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->sub[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->sub[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@types_incl[this->file, "sub", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "sub", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive subroutine elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive subroutine elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Perl/pl_calltime.d b/external/cddl/dtracetoolkit/dist/Perl/pl_calltime.d
new file mode 100755
index 0000000..e5e4c17
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Perl/pl_calltime.d
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_calltime.d - measure Perl elapsed times for subroutines.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_calltime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Perl activity from all programs running on the system with
+ * Perl provider support.
+ *
+ * USAGE: pl_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Perl program
+ *		TYPE		Type of call (sub/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->sub[self->depth] = timestamp;
+}
+
+perl*:::sub-return
+/self->sub[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->sub[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->sub[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "sub", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "sub", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "sub", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive subroutine elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive subroutine elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Perl/pl_cpudist.d b/external/cddl/dtracetoolkit/dist/Perl/pl_cpudist.d
new file mode 100755
index 0000000..3ff34b5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Perl/pl_cpudist.d
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_cpudist.d - measure Perl on-CPU times for subroutines.
+ *                Written for the Perl DTrace provider.
+ *
+ * $Id: pl_cpudist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Perl activity from all programs running on the system with
+ * Perl provider support.
+ *
+ * USAGE: pl_cpudist.d 		# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Perl subrotines.
+ * Use pl_cputime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Perl program
+ *		2		Type of call (sub)
+ *		3		Name of call
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->sub[self->depth] = vtimestamp;
+}
+
+perl*:::sub-return
+/self->sub[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->sub[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->sub[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@types_incl[this->file, "sub", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "sub", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive subroutine on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive subroutine on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Perl/pl_cputime.d b/external/cddl/dtracetoolkit/dist/Perl/pl_cputime.d
new file mode 100755
index 0000000..ae5cf2c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Perl/pl_cputime.d
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_cputime.d - measure Perl on-CPU times for subroutines.
+ *                Written for the Perl DTrace provider.
+ *
+ * $Id: pl_cputime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Perl activity from all programs running on the system with
+ * Perl provider support.
+ *
+ * USAGE: pl_cputime.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Perl program
+ *		TYPE		Type of call (sub/total)
+ *		NAME		Name of call (subroutine name)
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->sub[self->depth] = vtimestamp;
+}
+
+perl*:::sub-return
+/self->sub[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->sub[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->sub[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "sub", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "sub", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "sub", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive subroutine on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive subroutine on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Perl/pl_flow.d b/external/cddl/dtracetoolkit/dist/Perl/pl_flow.d
new file mode 100755
index 0000000..21ad77a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Perl/pl_flow.d
@@ -0,0 +1,70 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_flow.d - snoop Perl execution showing subroutine flow.
+ *             Written for the Solaris Perl DTrace provider.
+ *
+ * $Id: pl_flow.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Perl activity from all Perl programs on the system
+ * running with Perl provider support.
+ *
+ * USAGE: pl_flow.d			# hit Ctrl-C to end
+ *
+ * This watches Perl subroutine entries and returns, and indents child
+ * subroutine calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this subroutine belongs to
+ *		SUB		Subroutine name
+ *
+ * LEGEND:
+ *		->		subroutine entry
+ *		<-		subroutine return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s -- %s\n", "C", "TIME(us)", "FILE", "SUB");
+}
+
+perl*:::sub-entry
+{
+	printf("%3d %-16d %-16s %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg1)), self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+}
+
+perl*:::sub-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg1)), self->depth * 2, "", copyinstr(arg0));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Perl/pl_flowinfo.d b/external/cddl/dtracetoolkit/dist/Perl/pl_flowinfo.d
new file mode 100755
index 0000000..065a3d2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Perl/pl_flowinfo.d
@@ -0,0 +1,86 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_flowinfo.d - snoop Perl subroutine flow with info using DTrace.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_flowinfo.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Perl programs on the system that are
+ * running with Perl provider support.
+ *
+ * USAGE: pl_flowinfo.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Perl program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (sub)
+ *		SUB		Perl subroutine
+ *
+ * LEGEND:
+ *		->		subroutine entry
+ *		<-		subroutine return
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "SUB");
+}
+
+perl*:::sub-entry,
+perl*:::sub-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+perl*:::sub-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg1)), arg2, "sub", self->depth * 2, "",
+	    copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+perl*:::sub-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s<- %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg1)), arg2, "sub", self->depth * 2, "",
+	    copyinstr(arg0));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Perl/pl_flowtime.d b/external/cddl/dtracetoolkit/dist/Perl/pl_flowtime.d
new file mode 100755
index 0000000..05da29a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Perl/pl_flowtime.d
@@ -0,0 +1,88 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_flowtime.d - snoop Perl subroutines with flow and delta times.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_flowtime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces shell activity from Perl programs on the system that are
+ * running with Perl provider support.
+ *
+ * USAGE: pl_flowtime.d			# hit Ctrl-C to end
+ *
+ * This watches Perl subroutine entries and returns, and indents child
+ * subroutine calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this subroutine belongs to
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		SUB		Perl subroutine name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+self int last;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s %9s  -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "SUB");
+}
+
+perl*:::sub-entry,
+perl*:::sub-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+perl*:::sub-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg1)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+perl*:::sub-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %9d %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg1)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Perl/pl_malloc.d b/external/cddl/dtracetoolkit/dist/Perl/pl_malloc.d
new file mode 100755
index 0000000..c01ccfe
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Perl/pl_malloc.d
@@ -0,0 +1,81 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_malloc.d - Perl libc malloc analysis.
+ *               Written for the Perl DTrace provider.
+ *
+ * $Id: pl_malloc.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This is an expiremental script to identify who is calling malloc() for
+ * memory allocation, and to print distribution plots of the requested bytes.
+ * If a malloc() occured while in a Perl subroutine, then that subroutine is
+ * identified as responsible; else the caller of malloc() is identified as
+ * responsible - which will be a function from the Perl engine.
+ *
+ * USAGE: pl_malloc.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl$target:::sub-entry
+{
+	self->file = basename(copyinstr(arg1));
+	self->name = copyinstr(arg0);
+}
+
+perl$target:::sub-return
+{
+	self->file = 0;
+	self->name = 0;
+}
+
+pid$target:libc:malloc:entry
+/self->file != NULL/
+{
+	@malloc_sub_size[self->file, self->name] = sum(arg0);
+	@malloc_sub_dist[self->file, self->name] = quantize(arg0);
+}
+
+pid$target:libc:malloc:entry
+/self->name == NULL/
+{
+	@malloc_lib_size[usym(ucaller)] = sum(arg0);
+	@malloc_lib_dist[usym(ucaller)] = quantize(arg0);
+}
+
+
+dtrace:::END
+{
+	printf("\nPerl malloc byte distributions by engine caller,\n\n");
+	printa("   %A, total bytes = %@d %@d\n", @malloc_lib_size,
+	    @malloc_lib_dist);
+
+	printf("\nPerl malloc byte distributions by Perl file and ");
+	printf("subroutine,\n\n");
+	printa("   %s, %s, bytes total = %@d %@d\n", @malloc_sub_size,
+	    @malloc_sub_dist);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Perl/pl_subcalls.d b/external/cddl/dtracetoolkit/dist/Perl/pl_subcalls.d
new file mode 100755
index 0000000..451e14b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Perl/pl_subcalls.d
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_subcalls.d - measure Perl subroutine calls using DTrace.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_subcalls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Perl activity from all running programs on the system
+ * which support the Perl DTrace provider.
+ *
+ * USAGE: pl_subcalls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *              FILE		Filename that contained the subroutine
+ *		SUB		Perl subroutine name
+ *		CALLS		Subroutine calls during this sample
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	@subs[basename(copyinstr(arg1)), copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-32s %-32s %8s\n", "FILE", "SUB", "CALLS");
+	printa(" %-32s %-32s %@8d\n", @subs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Perl/pl_syscalls.d b/external/cddl/dtracetoolkit/dist/Perl/pl_syscalls.d
new file mode 100755
index 0000000..7489d3d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Perl/pl_syscalls.d
@@ -0,0 +1,65 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_syscalls.d - count Perl subroutine calls and syscalls using DTrace.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_syscalls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: pl_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Perl program
+ *		TYPE		Type of call (sub/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and subroutine names are printed if available.
+ * The filename for syscalls may be printed as "perl", if the program
+ * was invoked using the form "perl filename" rather than running the
+ * program with an interpreter line.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+self string filename;
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl$target:::sub-entry
+{
+	@calls[basename(copyinstr(arg1)), "sub", copyinstr(arg0)] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[basename(execname), "syscall", probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf("\nCalls for PID %d,\n\n", $target);
+	printf(" %-32s %-10s %-22s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa(" %-32s %-10s %-22s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Perl/pl_syscolors.d b/external/cddl/dtracetoolkit/dist/Perl/pl_syscolors.d
new file mode 100755
index 0000000..285bbcd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Perl/pl_syscolors.d
@@ -0,0 +1,119 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_syscolors.d - trace Perl subroutine flow plus syscalls, in color.
+ *                  Written for the Perl DTrace provider.
+ *
+ * $Id: pl_syscolors.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: pl_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches Perl subroutine entries and returns, and indents child
+ * subroutine calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Perl program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (sub/syscall)
+ *		NAME		Perl subroutine or syscall name
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	/*
+	 * The following are terminal color escape sequences.
+	 * Change them to whatever you prefer, eg HTML font tags.
+	 */
+        color_perl = "\033[2;35m";		/* violet, faint */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+perl$target:::sub-entry,
+perl$target:::sub-return,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+perl$target:::sub-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_perl,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "sub",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+perl$target:::sub-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_perl,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "sub",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Perl/pl_who.d b/external/cddl/dtracetoolkit/dist/Perl/pl_who.d
new file mode 100755
index 0000000..e49ba36
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Perl/pl_who.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_who.d - trace Perl subroutine execution by process using DTrace.
+ *            Written for the Perl DTrace provider.
+ *
+ * $Id: pl_who.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Perl activity from all Perl programs on the system that are
+ * running with Perl provider support.
+ *
+ * USAGE: pl_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of Perl
+ *		UID		User ID of the owner
+ *		SUBS		Number of subroutine calls
+ *		FILE		Pathname of the Perl program
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	@lines[pid, uid, copyinstr(arg1)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %s\n", "PID", "UID", "SUBS", "FILE");
+	printa("   %6d %6d %@6d %s\n", @lines);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Php/Readme b/external/cddl/dtracetoolkit/dist/Php/Readme
new file mode 100644
index 0000000..5c9101f2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Php/Readme
@@ -0,0 +1,39 @@
+Php - DTracing PHP
+
+   These scripts trace the PHP programming language, and require the PHP 
+   DTrace extension module to be installed and enabled.
+
+   The PHP DTrace provider was written by Wes Furlong, and is available
+   for download both as source and in binary form. The easiest instructions
+   are currently at,
+
+	http://blogs.sun.com/shanti/entry/dtrace_support_for_php
+
+   which were written for Solaris and the coolstack distribution of PHP.
+   The steps are roughly,
+
+	1. Download the extension library from the URL above
+	2. Copy the library to your php/extensions/* directory
+	3. Edit your php.ini and add,
+		extension="dtrace.so"
+
+   The website with the PHP DTrace provider source is,
+
+	http://pecl.php.net/package/DTrace
+
+   Here you can fetch the source to build the library yourself, especially
+   if Solaris binaries from the previous URL aren't going to work for you.
+
+   Since the DTrace PHP provider may be developed further, there is a chance
+   that it has changed slightly by the time you are reading this, causing
+   these scripts to either break or behave oddly. Firstly, check for newer
+   versions of the DTraceToolkit; if it hasn't been updated and you need
+   to use these scripts immediately, then updating them shouldn't take
+   too long. The following was the state of the provider when these scripts
+   were written - check for changes and update the scripts accordingly,
+
+	provider php {
+	    probe function-entry(function, file, lineno)
+	    probe function-return(function, file, lineno)
+	};
+
diff --git a/external/cddl/dtracetoolkit/dist/Php/php_calldist.d b/external/cddl/dtracetoolkit/dist/Php/php_calldist.d
new file mode 100755
index 0000000..279ed79
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Php/php_calldist.d
@@ -0,0 +1,83 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_calldist.d - measure PHP elapsed times for functions.
+ *                  Written for the PHP DTrace provider.
+ *
+ * $Id: php_calldist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces PHP activity from all programs running on the system with
+ * PHP provider support.
+ *
+ * USAGE: php_calldist.d 	# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for PHP
+ * operations. Use php_calltime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the PHP program
+ *		2		Type of call (func)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+php*:::function-return
+/arg0 && self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Php/php_calltime.d b/external/cddl/dtracetoolkit/dist/Php/php_calltime.d
new file mode 100755
index 0000000..567615e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Php/php_calltime.d
@@ -0,0 +1,90 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_calltime.d - measure PHP elapsed times for functions.
+ *                  Written for the PHP DTrace provider.
+ *
+ * $Id: php_calltime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces PHP activity from all programs running on the system with
+ * PHP provider support.
+ *
+ * USAGE: php_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the PHP program
+ *		TYPE		Type of call (func/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+php*:::function-return
+/arg0 && self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Php/php_cpudist.d b/external/cddl/dtracetoolkit/dist/Php/php_cpudist.d
new file mode 100755
index 0000000..f7ea8da
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Php/php_cpudist.d
@@ -0,0 +1,83 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_cpudist.d - measure PHP on-CPU times for functions.
+ *                 Written for the PHP DTrace provider.
+ *
+ * $Id: php_cpudist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces PHP activity from all programs running on the system with
+ * PHP provider support.
+ *
+ * USAGE: php_cpudist.d 		# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for PHP
+ * operations. Use php_cputime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the PHP program
+ *		2		Type of call (func)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+php*:::function-return
+/arg0 && self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Php/php_cputime.d b/external/cddl/dtracetoolkit/dist/Php/php_cputime.d
new file mode 100755
index 0000000..e25528f2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Php/php_cputime.d
@@ -0,0 +1,90 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_cputime.d - measure PHP on-CPU times for functions.
+ *                 Written for the PHP DTrace provider.
+ *
+ * $Id: php_cputime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces PHP activity from all programs running on the system with
+ * PHP provider support.
+ *
+ * USAGE: php_cputime.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the PHP program
+ *		TYPE		Type of call (func/total)
+ *		NAME		Name of call (function name)
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+php*:::function-return
+/arg0 && self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Php/php_flow.d b/external/cddl/dtracetoolkit/dist/Php/php_flow.d
new file mode 100755
index 0000000..7693938
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Php/php_flow.d
@@ -0,0 +1,72 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_flow.d - snoop PHP execution showing function flow.
+ *              Written for the PHP DTrace provider.
+ *
+ * $Id: php_flow.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces PHP activity from all PHP programs on the system
+ * running with PHP provider support.
+ *
+ * USAGE: php_flow.d			# hit Ctrl-C to end
+ *
+ * This watches PHP function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		FUNC		Function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s -- %s\n", "C", "TIME(us)", "FILE", "FUNC");
+}
+
+php*:::function-entry
+/arg0/
+{
+	printf("%3d %-16d %-16s %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg1)), self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+}
+
+php*:::function-return
+/arg0/
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg1)), self->depth * 2, "", copyinstr(arg0));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Php/php_flowinfo.d b/external/cddl/dtracetoolkit/dist/Php/php_flowinfo.d
new file mode 100755
index 0000000..ef91b5b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Php/php_flowinfo.d
@@ -0,0 +1,88 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_flowinfo.d - snoop PHP function flow with info using DTrace.
+ *                  Written for the PHP DTrace provider.
+ *
+ * $Id: php_flowinfo.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all PHP programs on the system that are
+ * running with PHP provider support.
+ *
+ * USAGE: php_flowinfo.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the PHP program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func)
+ *		FUNC		PHP function
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%s %6s/%-4s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "TID",
+	    "DELTA(us)", "FILE", "LINE", "TYPE", "FUNC");
+}
+
+php*:::function-entry,
+php*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+php*:::function-entry
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%d %6d/%-4d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid, tid,
+	    this->delta, basename(copyinstr(arg1)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+php*:::function-return
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%d %6d/%-4d %10d  %16s:%-4d %-8s %*s<- %s\n", cpu, pid, tid,
+	    this->delta, basename(copyinstr(arg1)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Php/php_flowtime.d b/external/cddl/dtracetoolkit/dist/Php/php_flowtime.d
new file mode 100755
index 0000000..bcd8480
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Php/php_flowtime.d
@@ -0,0 +1,91 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_flowtime.d - snoop PHP functions with flow and delta times.
+ *                  Written for the PHP DTrace provider.
+ *
+ * $Id: php_flowtime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces shell activity from PHP programs on the system that are
+ * running with PHP provider support.
+ *
+ * USAGE: php_flowtime.d			# hit Ctrl-C to end
+ *
+ * This watches PHP function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FUNC		PHP function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+self int last;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s %9s  -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "FUNC");
+}
+
+php*:::function-entry,
+php*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+php*:::function-entry
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg1)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+php*:::function-return
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %9d %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg1)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Php/php_funccalls.d b/external/cddl/dtracetoolkit/dist/Php/php_funccalls.d
new file mode 100755
index 0000000..e43ebad
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Php/php_funccalls.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_funccalls.d - measure PHP function calls using DTrace.
+ *                   Written for the PHP DTrace provider.
+ *
+ * $Id: php_funccalls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces PHP activity from all running programs on the system
+ * which support the PHP DTrace provider.
+ *
+ * USAGE: php_funccalls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *              FILE		Filename that contained the function
+ *		FUNC		PHP function name
+ *		CALLS		Function calls during this sample
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	@funcs[basename(copyinstr(arg1)), copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-32s %-32s %8s\n", "FILE", "FUNC", "CALLS");
+	printa(" %-32s %-32s %@8d\n", @funcs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Php/php_malloc.d b/external/cddl/dtracetoolkit/dist/Php/php_malloc.d
new file mode 100755
index 0000000..f5439f3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Php/php_malloc.d
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_malloc.d - PHP libc malloc analysis.
+ *                Written for the PHP DTrace provider.
+ *
+ * $Id: php_malloc.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This is an expiremental script to identify who is calling malloc() for
+ * memory allocation, and to print distribution plots of the requested bytes.
+ * If a malloc() occured while in a PHP function, then that function is
+ * identified as responsible; else the caller of malloc() is identified as
+ * responsible - which will be a function from the PHP engine.
+ *
+ * USAGE: php_malloc.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php$target:::function-entry
+/arg0/
+{
+	self->file = basename(copyinstr(arg1));
+	self->name = copyinstr(arg0);
+}
+
+php$target:::function-return
+{
+	self->file = 0;
+	self->name = 0;
+}
+
+pid$target:libc:malloc:entry
+/self->file != NULL/
+{
+	@malloc_func_size[self->file, self->name] = sum(arg1);
+	@malloc_func_dist[self->file, self->name] = quantize(arg1);
+}
+
+pid$target:libc:malloc:entry
+/self->name == NULL/
+{
+	@malloc_lib_size[usym(ucaller)] = sum(arg1);
+	@malloc_lib_dist[usym(ucaller)] = quantize(arg1);
+}
+
+
+dtrace:::END
+{
+	printf("\nPHP malloc byte distributions by engine caller,\n\n");
+	printa("   %A, total bytes = %@d %@d\n", @malloc_lib_size,
+	    @malloc_lib_dist);
+
+	printf("\nPHP malloc byte distributions by PHP file and ");
+	printf("function,\n\n");
+	printa("   %s, %s, bytes total = %@d %@d\n", @malloc_func_size,
+	    @malloc_func_dist);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Php/php_syscalls.d b/external/cddl/dtracetoolkit/dist/Php/php_syscalls.d
new file mode 100755
index 0000000..1b8da8e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Php/php_syscalls.d
@@ -0,0 +1,75 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_syscalls.d - count PHP function calls and syscalls using DTrace.
+ *                  Written for the PHP DTrace provider.
+ *
+ * This traces syscalls that occured during a PHP function call.
+ *
+ * $Id: php_syscalls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: php_syscalls.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		FILE		Filename of the PHP program
+ *		TYPE		Type of call (func/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and function names are printed if available.
+ * The filename for syscalls may be printed as "php", if the program
+ * was invoked using the form "php filename" rather than running the
+ * program with an interpreter line.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	@calls[pid, basename(copyinstr(arg1)), "func", copyinstr(arg0)] =
+	    count();
+	self->php++;
+}
+
+php*:::function-return
+/arg0/
+{
+	self->php -= self->php == 0 ? 0 : 1;
+}
+
+syscall:::entry
+/self->php > 0/
+{
+	@calls[pid, basename(execname), "syscall", probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-6s  %-26s %-10s %-22s %8s\n", "PID", "FILE", "TYPE", "NAME",
+	    "COUNT");
+	printa(" %-6d  %-26s %-10s %-22s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Php/php_syscolors.d b/external/cddl/dtracetoolkit/dist/Php/php_syscolors.d
new file mode 100755
index 0000000..c13d8af
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Php/php_syscolors.d
@@ -0,0 +1,116 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_syscolors.d - trace PHP function flow plus syscalls, in color.
+ *                   Written for the PHP DTrace provider.
+ *
+ * $Id: php_syscolors.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: php_syscolors.d	# hit Ctrl-C to end
+ *
+ * This watches PHP function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the PHP program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func/syscall)
+ *		NAME		PHP function or syscall name
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+        color_php = "\033[2;35m";		/* violet, faint */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	self->depth = 0;
+	printf("%s %6s/%-4s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "TID",
+	    "DELTA(us)", "FILE", "LINE", "TYPE", "NAME");
+}
+
+php*:::function-entry,
+php*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+php*:::function-entry
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d/%-4d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_php,
+	    cpu, pid, tid, this->delta, basename(copyinstr(arg1)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg0), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+php*:::function-return
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg1), "::"), copyinstr(arg0));
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d/%-4d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_php,
+	    cpu, pid, tid, this->delta, basename(copyinstr(arg1)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg0), color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/self->last/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d/%-4d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, tid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/self->last/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d/%-4d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, tid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Php/php_who.d b/external/cddl/dtracetoolkit/dist/Php/php_who.d
new file mode 100755
index 0000000..eb77ae7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Php/php_who.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_who.d - trace PHP function execution by process using DTrace.
+ *             Written for the PHP DTrace provider.
+ *
+ * $Id: php_who.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces PHP activity from all PHP programs on the system that are
+ * running with PHP provider support.
+ *
+ * USAGE: php_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of PHP
+ *		UID		User ID of the owner
+ *		FUNCS		Number of function calls
+ *		FILE		Pathname of the PHP program
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+{
+	@lines[pid, uid, copyinstr(arg1)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %s\n", "PID", "UID", "FUNCS", "FILE");
+	printa("   %6d %6d %@6d %s\n", @lines);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Proc/Readme b/external/cddl/dtracetoolkit/dist/Proc/Readme
new file mode 100644
index 0000000..acc3634
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/Readme
@@ -0,0 +1,3 @@
+Proc - Process based analysis
+
+   This would include activity by PID, and syscall analysis.
diff --git a/external/cddl/dtracetoolkit/dist/Proc/crash.d b/external/cddl/dtracetoolkit/dist/Proc/crash.d
new file mode 100755
index 0000000..520c7b4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/crash.d
@@ -0,0 +1,181 @@
+#!/usr/sbin/dtrace -Cs
+/*
+ * crash.d - Crashed Application info.
+ *           Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: crash.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * When applications crash via a SIGSEGV or SIGBUS, a report of the
+ * process state is printed out.
+ *
+ * USAGE:       crash.d
+ *
+ * FIELDS:
+ *              Type		Signal type
+ *              Program		Execname of process
+ *              Agrs		Argument listing of process
+ *              PID		Process ID
+ *              TID		Thread ID
+ *              LWPs		Number of Light Weight Processes
+ *              PPID		Parent Process ID
+ *              UID		User ID
+ *              GID		Group ID
+ *              TaskID		Task ID
+ *              ProjID		Project ID
+ *              PoolID		Pool ID
+ *              ZoneID		Zone ID
+ *              zone		Zone name
+ *              CWD		Current working directory
+ *              errno		Error number of last syscall
+ *
+ * SEE ALSO: mdb, pstack, coreadm
+ *           app_crash.d - Greg Nakhimovsky & Morgan Herrington
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 29-May-2005  Brendan Gregg   Created this.
+ * 24-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option destructive
+
+dtrace:::BEGIN
+{
+	printf("Waiting for crashing applications...\n");
+}
+
+/*
+ * Print Report Header
+ */
+proc:::signal-send
+/(args[2] == SIGBUS || args[2] == SIGSEGV) && pid == args[1]->pr_pid/
+{
+	stop();
+	self->elapsed = timestamp - curthread->t_procp->p_mstart;
+	self->crash = 1;
+
+	printf("\n-----------------------------------------------------\n");
+	printf("CRASH DETECTED at %Y\n", walltimestamp);
+	printf("-----------------------------------------------------\n");
+	printf("Type:    %s\n", args[2] == SIGBUS ? "SIGBUS" : "SIGSEGV");
+	printf("Program: %s\n", execname);
+	printf("Args:    %S\n", curpsinfo->pr_psargs);
+	printf("PID:     %d\n", pid);
+	printf("TID:     %d\n", tid);
+	printf("LWPs:    %d\n", curthread->t_procp->p_lwpcnt);
+	printf("PPID:    %d\n", ppid);
+	printf("UID:     %d\n", uid);
+	printf("GID:     %d\n", gid);
+	printf("TaskID:  %d\n", curpsinfo->pr_taskid);
+	printf("ProjID:  %d\n", curpsinfo->pr_projid);
+	printf("PoolID:  %d\n", curpsinfo->pr_poolid);
+	printf("ZoneID:  %d\n", curpsinfo->pr_zoneid);
+	printf("zone:    %s\n", zonename);
+	printf("CWD:     %s\n", cwd);
+	printf("errno:   %d\n", errno);
+
+	printf("\nUser Stack Backtrace,");
+	ustack();
+
+	printf("\nKernel Stack Backtrace,");
+	stack();
+}
+
+/*
+ * Print Java Details
+ */
+proc:::signal-send
+/self->crash && execname == "java"/
+{
+	printf("\nJava Stack Backtrace,");
+	jstack();
+}
+
+/*
+ * Print Ancestors
+ */
+proc:::signal-send
+/self->crash/
+{
+	printf("\nAnsestors,\n");
+	self->level = 1;
+	self->procp = curthread->t_procp;
+	self->ptr = self->procp;
+}
+
+/* ancestory un-rolled loop, reverse order, 6 deep */
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+
+/*
+ * Print Report Footer
+ */
+proc:::signal-send
+/self->crash/
+{
+
+	printf("\nTimes,\n");
+	printf("    User:    %d ticks\n", self->procp->p_utime);
+	printf("    Sys:     %d ticks\n", self->procp->p_stime);
+	printf("    Elapsed: %d ms\n", self->elapsed/1000000);
+
+	printf("\nSizes,\n");
+	printf("    Heap:   %d bytes\n", self->procp->p_brksize);
+	printf("    Stack:  %d bytes\n", self->procp->p_stksize);
+
+	self->ptr = 0;
+	self->procp = 0;
+	self->crash = 0;
+	self->level = 0;
+	self->elapsed = 0;
+	system("/usr/bin/prun %d", pid);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Proc/creatbyproc.d b/external/cddl/dtracetoolkit/dist/Proc/creatbyproc.d
new file mode 100755
index 0000000..eca7513
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/creatbyproc.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * creatbyproc.d - file creat()s by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: creatbyproc.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ */
+
+syscall::creat*:entry { printf("%s %s", execname, copyinstr(arg0)); }
diff --git a/external/cddl/dtracetoolkit/dist/Proc/dappprof b/external/cddl/dtracetoolkit/dist/Proc/dappprof
new file mode 100755
index 0000000..4b3a735
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/dappprof
@@ -0,0 +1,239 @@
+#!/usr/bin/sh
+#
+# dappprof - profile user and library function usage.
+#            Written using DTrace (Solaris 10 3/05).
+#
+# The default output traces user functions as they are called. Options
+#  can be used to examine libraries and timestamps.
+#
+# $Id: dappprof,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# USAGE: dappprof [-acehoTU] [-u lib] { -p PID | command }
+#
+#          -p PID          # examine this PID
+#          -a              # print all details
+#          -c              # print call counts
+#          -e              # print elapsed times (us)
+#          -o              # print on cpu times (us)
+#          -T              # print totals
+#          -u lib          # trace this library instead
+#          -U              # trace all libraries + user functions
+#          -b bufsize      # dynamic variable buf size (default is "4m")
+#  eg,
+#       dappprof df -h       # run and examine the "df -h" command
+#       dappprof -p 1871     # examine PID 1871
+#
+# The elapsed times are interesting, to help identify calls that take
+#  some time to complete (during which the process may have context
+#  switched off the CPU). 
+#
+# SEE ALSO: dapptrace      # DTraceToolkit
+#           dtruss         # DTraceToolkit
+#           apptrace           
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 16-May-2005   Brendan Gregg   Created this.
+# 17-Jul-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_totals=0; opt_pid=0; pid=0; opt_lib=0; lib=""
+opt_elapsed=0; opt_cpu=0; opt_counts=0; opt_liball=0
+opt_command=0; command=""; opt_buf=0; buf="4m"
+
+### Process options
+while getopts ab:cehop:Tu:U name
+do
+        case $name in
+        a)      opt_liball=1; opt_counts=1; opt_elapsed=1; opt_cpu=1 
+		opt_totals=1 ;;
+	b)	opt_buf=1; buf=$OPTARG ;;
+        p)      opt_pid=1; pid=$OPTARG ;;
+        u)      opt_lib=1; lib=$OPTARG ;;
+        U)      opt_liball=1 ;; 
+	c)	opt_counts=1 ;;
+	e)	opt_elapsed=1 ;;
+	o)	opt_cpu=1 ;;
+	T)	opt_totals=1 ;;
+        h|?)    cat <<-END >&2
+		USAGE: dappprof [-cehoTU] [-u lib] { -p PID | command }
+
+		          -p PID          # examine this PID
+		          -a              # print all details
+		          -c              # print syscall counts
+		          -e              # print elapsed times (us)
+		          -o              # print on cpu times
+		          -T              # print totals
+		          -u lib          # trace this library instead
+		          -U              # trace all libraries + user funcs
+		          -b bufsize      # dynamic variable buf size
+		   eg,
+		       dappprof df -h       # run and examine "df -h"
+		       dappprof -p 1871     # examine PID 1871
+		       dappprof -ap 1871    # print all data
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+### Option logic
+if [ $opt_pid -eq 0 ]; then
+	opt_command=1
+	if [ "$*" = "" ]; then
+		$0 -h
+		exit
+	fi
+	command="$*"
+fi
+if [ $opt_elapsed -eq 0 -a $opt_cpu -eq 0 -a $opt_counts -eq 0 ]; then
+        opt_elapsed=1;
+fi
+
+
+### Probe logic
+if [ $opt_liball -eq 1 ]; then
+	probe_entry='pid$target:::entry'
+	probe_return='pid$target:::return'
+elif [ $opt_lib -eq 1 ]; then
+	probe_entry='pid$target:'$lib'::entry'
+	probe_return='pid$target:'$lib'::return'
+else
+ 	probe_entry='pid$target:a.out::entry'
+ 	probe_return='pid$target:a.out::return'
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+
+### Define D Script
+dtrace='
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_command   = '$opt_command';
+ inline int OPT_liball    = '$opt_liball';
+ inline int OPT_elapsed   = '$opt_elapsed';
+ inline int OPT_cpu       = '$opt_cpu';
+ inline int OPT_counts    = '$opt_counts';
+ inline int OPT_totals    = '$opt_totals';
+ inline int OPT_pid       = '$opt_pid';
+ inline int PID           = '$pid';
+ inline string NAME       = "'$pname'";
+
+ dtrace:::BEGIN 
+ /! OPT_command/
+ {
+	printf("Tracing... Hit Ctrl-C to end...\n");
+ }
+
+ /*
+  * Save syscall entry info
+  */
+ '$probe_entry'
+ {
+        /* set function depth */
+        this->fdepth = ++fdepth[probefunc];
+
+	/* set start details */
+	self->start[probefunc,this->fdepth] = timestamp;
+	self->vstart[probefunc,this->fdepth] = vtimestamp;
+
+	/* count occurances */
+	OPT_counts && OPT_liball ? @Counts[probemod,probefunc] = count() : 1;
+	OPT_counts && ! OPT_liball ? @Counts[probefunc] = count() : 1;
+	OPT_counts && OPT_totals && OPT_liball ? 
+	    @Counts["TOTAL:",""] = count() : 1;
+	OPT_counts && OPT_totals && ! OPT_liball ? 
+	    @Counts["TOTAL:"] = count() : 1;
+ }
+
+ /*
+  * Print return data
+  */
+ /* print 3 arg output - default */
+ '$probe_return'
+ /self->start[probefunc,fdepth[probefunc]]/
+ {
+        /* fetch function depth */
+        this->fdepth = fdepth[probefunc];
+
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start[probefunc,this->fdepth];
+	self->start[probefunc,this->fdepth] = 0;
+	this->cpu = vtimestamp - self->vstart[probefunc,this->fdepth];
+	self->vstart[probefunc,this->fdepth] = 0;
+
+	/* save elapsed times */
+	OPT_elapsed && OPT_liball ? 
+	    @Elapsed[probemod,probefunc] = sum(this->elapsed) : 1;
+	OPT_elapsed && ! OPT_liball ? 
+	    @Elapsed[probefunc] = sum(this->elapsed) : 1;
+	OPT_elapsed && OPT_totals && OPT_liball ? 
+	    @Elapsed["TOTAL:",""] = sum(this->elapsed) : 1;
+	OPT_elapsed && OPT_totals && ! OPT_liball ? 
+	    @Elapsed["TOTAL:"] = sum(this->elapsed) : 1;
+
+	/* save cpu times */
+	OPT_cpu && OPT_liball ? @CPU[probemod,probefunc] = sum(this->cpu) : 1;
+	OPT_cpu && ! OPT_liball ? @CPU[probefunc] = sum(this->cpu) : 1;
+	OPT_cpu && OPT_totals && OPT_liball ? 
+	    @CPU["TOTAL:",""] = sum(this->cpu) : 1;
+	OPT_cpu && OPT_totals && ! OPT_liball ? 
+	    @CPU["TOTAL:"] = sum(this->cpu) : 1;
+	
+ }
+
+ /* print counts */
+ dtrace:::END
+ {
+	/* print counts */
+	OPT_counts ? printf("\n%-49s %16s\n","CALL","COUNT") : 1;
+	OPT_counts && OPT_liball ? printa("%-16s %-32s %@16d\n",@Counts) : 1;
+	OPT_counts && ! OPT_liball ? printa("%-49s %@16d\n",@Counts) : 1;
+
+	/* print elapsed times */
+	OPT_elapsed ? printf("\n%-49s %16s\n","CALL","ELAPSED") : 1;
+	OPT_elapsed && OPT_liball ? printa("%-16s %-32s %@16d\n",@Elapsed) : 1;
+	OPT_elapsed && ! OPT_liball ? printa("%-49s %@16d\n",@Elapsed) : 1;
+
+	/* print cpu times */
+	OPT_cpu ? printf("\n%-49s %16s\n","CALL","CPU") : 1;
+	OPT_cpu && OPT_liball ? printa("%-16s %-32s %@16d\n",@CPU) : 1;
+	OPT_cpu && ! OPT_liball ? printa("%-49s %@16d\n",@CPU) : 1;
+ }
+'
+
+### Run DTrace
+if [ $opt_command -eq 1 ]; then
+	/usr/sbin/dtrace -x dynvarsize=$buf -x evaltime=exec -n "$dtrace" \
+	    -c "$command" >&2
+else
+	/usr/sbin/dtrace -x dynvarsize=$buf -n "$dtrace" -p "$pid" >&2
+fi
+
diff --git a/external/cddl/dtracetoolkit/dist/Proc/dapptrace b/external/cddl/dtracetoolkit/dist/Proc/dapptrace
new file mode 100755
index 0000000..b954a10
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/dapptrace
@@ -0,0 +1,259 @@
+#!/usr/bin/sh
+#
+# dapptrace - trace user and library function usage.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# The default output traces user functions as they are called. Options
+#  can be used to examine libraries and timestamps.
+#
+# $Id: dapptrace,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# USAGE: dapptrace [-acdeFlhoU] [-u lib] { -p PID | command }
+#
+#          -p PID          # examine this PID
+#          -a              # print all details
+#          -c              # print call counts
+#          -d              # print relative timestamps (us)
+#          -e              # print elapsed times (us)
+#          -F              # print flow indentation
+#          -l              # print pid/lwpid per line
+#          -o              # print on cpu times (us)
+#          -u lib          # trace this library instead
+#          -U              # trace all libraries + user functions
+#          -b bufsize      # dynamic variable buf size (default is "4m")
+#  eg,
+#       dapptrace df -h       # run and examine the "df -h" command
+#       dapptrace -p 1871     # examine PID 1871
+#       dapptrace -Fp 1871    # print using flow indents
+#       dapptrace -eop 1871   # print elapsed and CPU times
+#
+# The elapsed times are interesting, to help identify calls that take
+#  some time to complete (during which the process may have context
+#  switched off the CPU). 
+#
+# SEE ALSO: dappprof       # DTraceToolkit
+#           dtruss         # DTraceToolkit
+#           apptrace
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 16-May-2005   Brendan Gregg   Created this.
+# 17-Jul-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_pid=0; pid=0; opt_indent=0; opt_lib=0; lib=""
+opt_elapsed=0; opt_cpu=0; opt_counts=0; 
+opt_relative=0; opt_printid=0; opt_liball=0
+opt_command=0; command=""; opt_buf=0; buf="4m"
+
+### Process options
+while getopts ab:cdeFhlop:u:U name
+do
+        case $name in
+        a)      opt_liball=1; opt_counts=1; opt_relative=1; opt_elapsed=1
+		opt_indent=1; opt_printid=1; opt_cpu=1 ;; 
+	b)	opt_buf=1; buf=$OPTARG ;;
+        p)      opt_pid=1; pid=$OPTARG ;;
+        u)      opt_lib=1; lib=$OPTARG ;;
+        U)      opt_liball=1 ;; 
+	c)	opt_counts=1 ;;
+	d)	opt_relative=1 ;;
+	e)	opt_elapsed=1 ;;
+	F)	opt_indent=1 ;;
+	l)	opt_printid=1 ;;
+	o)	opt_cpu=1 ;;
+        h|?)    cat <<-END >&2
+		USAGE: dapptrace [-acdeholFLU] [-u lib] { -p PID | command }
+
+		          -p PID          # examine this PID
+		          -a              # print all details
+		          -c              # print syscall counts
+		          -d              # print relative times (us)
+		          -e              # print elapsed times (us)
+		          -F              # print flow indentation
+		          -l              # print pid/lwpid
+		          -o              # print CPU on cpu times
+		          -u lib          # trace this library instead
+		          -U              # trace all libraries + user funcs
+		          -b bufsize      # dynamic variable buf size
+		   eg,
+		       dapptrace df -h       # run and examine "df -h"
+		       dapptrace -p 1871     # examine PID 1871
+		       dapptrace -Fp 1871    # print using flow indents
+		       dapptrace -eop 1871   # print elapsed and CPU times
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+### Option logic
+if [ $opt_pid -eq 0 ]; then
+	opt_command=1
+	if [ "$*" = "" ]; then
+		$0 -h
+		exit
+	fi
+	command="$*"
+fi
+
+### Probe logic
+if [ $opt_liball -eq 1 ]; then
+	probe_entry='pid$target:::entry'
+	probe_return='pid$target:::return'
+elif [ $opt_lib -eq 1 ]; then
+	probe_entry='pid$target:'$lib'::entry'
+	probe_return='pid$target:'$lib'::return'
+else
+ 	probe_entry='pid$target:a.out::entry'
+ 	probe_return='pid$target:a.out::return'
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+
+### Define D Script
+dtrace='
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_command   = '$opt_command';
+ inline int OPT_liball    = '$opt_liball';
+ inline int OPT_indent    = '$opt_indent';
+ inline int OPT_printid   = '$opt_printid';
+ inline int OPT_relative  = '$opt_relative';
+ inline int OPT_elapsed   = '$opt_elapsed';
+ inline int OPT_cpu       = '$opt_cpu';
+ inline int OPT_counts    = '$opt_counts';
+ inline int OPT_pid       = '$opt_pid';
+ inline int PID           = '$pid';
+ inline string NAME       = "'$pname'";
+
+ dtrace:::BEGIN 
+ {
+	/* print header */
+	OPT_printid  ? printf("%-8s  ","PID/LWP") : 1;
+	OPT_relative ? printf("%8s ","RELATIVE") : 1;
+	OPT_elapsed  ? printf("%7s ","ELAPSD") : 1;
+	OPT_cpu      ? printf("%6s ","CPU") : 1;
+	printf("CALL(args) \t\t = return\n");
+
+	/* indent depth */
+	depth = 0;
+ }
+
+ /*
+  * Save syscall entry info
+  */
+ '$probe_entry'
+ {
+	/* set function depth */
+	this->fdepth = ++fdepth[probefunc];
+	depth += 2;
+
+	/* set start details */
+	self->start[probefunc,this->fdepth] = timestamp;
+	self->vstart[probefunc,this->fdepth] = vtimestamp;
+
+	/* count occurances */
+	OPT_counts && OPT_liball ? @Counts[probemod,probefunc] = count() : 1;
+	OPT_counts && ! OPT_liball ? @Counts[probefunc] = count() : 1;
+
+	/* print optional fields */
+	OPT_printid  ? printf("%5d/%d:  ",pid,tid) : 1;
+	OPT_relative ? printf("%8d ",vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("      . ") : 1;
+	OPT_cpu      ? printf("     . ") : 1;
+	OPT_indent   ? printf("%*s",depth,"") : 1;
+
+	/* print main data */
+	printf("-> ");
+	OPT_liball ? printf("%s:",probemod) : 1;
+	printf("%s(0x%X, 0x%X, 0x%X)\t\t\n",probefunc,arg0,arg1,arg2);
+
+ }
+
+ /*
+  * Print return data
+  */
+ /* print 3 arg output - default */
+ '$probe_return'
+ /self->start[probefunc,fdepth[probefunc]]/
+ {
+	/* fetch function depth */
+	this->fdepth = fdepth[probefunc];
+
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start[probefunc,this->fdepth];
+	self->start[probefunc,this->fdepth] = 0;
+	this->cpu = vtimestamp - self->vstart[probefunc,this->fdepth];
+	self->vstart[probefunc,this->fdepth] = 0;
+
+	/* print optional fields */
+	OPT_printid  ? printf("%5d/%d:  ",pid,tid) : 1;
+	OPT_relative ? printf("%8d ",vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ",this->elapsed/1000) : 1;
+	OPT_cpu      ? printf("%6d ",this->cpu/1000) : 1;
+	OPT_indent   ? printf("%*s",depth,"") : 1;
+
+	/* print main data */
+	printf("<- ");
+	OPT_liball ? printf("%s:",probemod) : 1;
+	printf("%s = %d\n",probefunc,(int)arg0);
+	depth -= 2;
+	fdepth[probefunc]--;
+ }
+
+ /* reset indent depth */
+ profile:::tick-1sec
+ {
+	/* 
+	 * some probes generated by the pid provider have entries
+ 	 * but not returns. this is a klude to fix that problem. this
+	 * also explains fdepth[probefunc] rather than a single depth.
+	 */
+	depth = 0;
+ }
+
+ /* print counts */
+ dtrace:::END
+ {
+	OPT_counts ? printf("\n%-49s %16s\n","CALL","COUNT") : 1;
+	OPT_counts && OPT_liball ? printa("%-16s %-32s %@16d\n",@Counts) : 1;
+	OPT_counts && ! OPT_liball ? printa("%-49s %@16d\n",@Counts) : 1;
+ }
+'
+
+### Run DTrace
+if [ $opt_command -eq 1 ]; then
+	/usr/sbin/dtrace -x dynvarsize=$buf -x evaltime=exec -n "$dtrace" \
+	    -c "$command" >&2
+else
+	/usr/sbin/dtrace -x dynvarsize=$buf -n "$dtrace" -p "$pid" >&2
+fi
+
diff --git a/external/cddl/dtracetoolkit/dist/Proc/fddist b/external/cddl/dtracetoolkit/dist/Proc/fddist
new file mode 100755
index 0000000..3850df3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/fddist
@@ -0,0 +1,116 @@
+#!/usr/bin/sh
+#
+# fddist - file descriptor usage distributions.
+#          Written using DTrace (Solaris 10 3/05).
+#
+# This prints distributions for read and write events by file descriptor,
+# by process. This can be used to determine which file descriptor a 
+# process is doing the most I/O with.
+#
+# $Id: fddist,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# USAGE:        fddist [-r|-w]      # hit Ctrl-C to end sample
+#
+# FIELDS:
+#               EXEC       process name
+#               PID        process ID
+#               value      file descriptor
+#               count      number of events
+#
+# BASED ON: /usr/demo/dtrace/lquantize.d
+#
+# SEE ALSO:
+#           DTrace Guide "Aggregations" chapter (docs.sun.com)
+#
+# PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 09-Jun-2005   Brendan Gregg   Created this.
+# 20-Apr-2006	   "      "	Last update.
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_read=0; opt_write=0
+
+### Process options
+while getopts hrw name
+do
+	case $name in
+	r)      opt_read=1 ;;
+	w)      opt_write=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: fddist [-r|-w] 
+		              -r        # reads only
+		              -w        # writes only
+		  eg,
+		       fddist           # default, r+w counts
+		       fddist -r        # read count only
+		END
+		exit 1
+	esac
+done
+shift `expr $OPTIND - 1`
+
+### Option logic
+if [ $opt_read -eq 0 -a $opt_write -eq 0 ]; then
+	opt_read=1; opt_write=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ inline int OPT_read   = '$opt_read';
+ inline int OPT_write  = '$opt_write';
+ inline int FDMAX      = 255;
+
+ /* print header */
+ dtrace:::BEGIN
+ {
+	printf("Tracing ");
+	OPT_read && OPT_write ? printf("reads and writes") : 1;
+	OPT_read && ! OPT_write ? printf("reads") : 1;
+	! OPT_read && OPT_write ? printf("writes") : 1;
+	printf("... Hit Ctrl-C to end.\n");
+ }
+
+ /* sample reads */
+ syscall::*read*:entry
+ /OPT_read/
+ {
+	@Count[execname, pid] = lquantize(arg0, 0, FDMAX, 1);
+ }
+
+ /* sample writes */
+ syscall::*write*:entry
+ /OPT_write/
+ {
+	@Count[execname, pid] = lquantize(arg0, 0, FDMAX, 1);
+ }
+
+ /* print report */
+ dtrace:::END
+ {
+	printa("EXEC: %-16s PID: %d\n%@d\n",@Count);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Proc/filebyproc.d b/external/cddl/dtracetoolkit/dist/Proc/filebyproc.d
new file mode 100755
index 0000000..25da70e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/filebyproc.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * filebyproc.d - snoop files opened by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: filebyproc.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ */
+
+syscall::open*:entry { printf("%s %s", execname, copyinstr(arg0)); }
diff --git a/external/cddl/dtracetoolkit/dist/Proc/kill.d b/external/cddl/dtracetoolkit/dist/Proc/kill.d
new file mode 100755
index 0000000..ea650ee
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/kill.d
@@ -0,0 +1,63 @@
+#!/usr/sbin/dtrace -qs
+/*
+ * kill.d - watch process signals as they are sent (eg, kill -9).
+ *          Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: kill.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:       kill.d
+ *
+ * FIELDS:
+ *              FROM     source PID
+ *              COMMAND  source command name
+ *              TO       destination PID
+ *              SIG      destination signal ("9" for a kill -9)
+ *              RESULT   result of signal (-1 is for failure)
+ *
+ * SEE ALSO: Chapter 25, Solaris Dynamic Tracing Guide, docs.sun.com,
+ *           for a solution using proc:::signal-send.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-May-2004  Brendan Gregg   Created this.
+ * 28-Jun-2005	   "      "	Last update.
+ */
+
+dtrace:::BEGIN
+{
+	/* Print header */
+	printf("%5s %12s %5s %-6s %s\n",
+	    "FROM", "COMMAND", "SIG", "TO", "RESULT");
+}
+
+syscall::kill:entry
+{
+	/* Record target PID and signal */
+	self->target = arg0;
+	self->signal = arg1;
+}
+
+syscall::kill:return
+{
+	/* Print source, target, and result */
+	printf("%5d %12s %5d %-6d %d\n",
+	    pid, execname, self->signal, self->target, (int)arg0);
+
+	/* Cleanup memory */
+	self->target = 0;
+	self->signal = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Proc/lastwords b/external/cddl/dtracetoolkit/dist/Proc/lastwords
new file mode 100755
index 0000000..d74336d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/lastwords
@@ -0,0 +1,90 @@
+#!/usr/bin/ksh
+#
+# lastwords - print last few syscalls for dying processes.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# $Id: lastwords,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# This prints the last few system calls for processes matching
+# the given name, when they exit. This makes use of a ring buffer
+# so that the impact on the system is minimised.
+#
+# USAGE: lastwords command
+#    eg,
+#        lastwords netscape
+#
+# FIELDS:
+#           TIME     Time of syscall return, ns
+#           PID      Process ID
+#           EXEC     Process name (execname)
+#           SYSCALL  System call
+#           RETURN   Return value for system call
+#           ERR      errno for system call
+#
+# BASED ON: /usr/demo/dtrace/ring.d
+#
+# SEE ALSO: DTrace Guide "Buffers and Buffering" chapter (docs.sun.com)
+#           dtruss (DTraceToolkit)
+#
+# PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 09-Jun-2005	Brendan Gregg	Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+### Usage
+function usage
+{
+	cat <<-END >&2
+	USAGE: lastwords command
+	   eg,
+	       lastwords netscape
+	END
+	exit 1
+}
+
+### Process arguments
+if (( $# != 1 )); then
+        usage
+fi
+command=$1
+
+print "Tracing... Waiting for $command to exit..."
+
+### Run DTrace
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+ #pragma D option bufpolicy=ring
+ #pragma D option bufsize=16k
+
+ syscall:::return
+ /execname == $$1/
+ {
+	/* buffer syscall details */
+	printf("%-18d %5d %12s %12s %10x %3d\n",
+	    timestamp,pid,execname,probefunc,(int)arg0,errno);
+ }
+
+ proc::proc_exit:exit
+ /execname == $$1/
+ {
+	/* print, erm, footer */
+	printf("%-18s %5s %12s %12s %10s %3s\n",
+	    "TIME","PID","EXEC","SYSCALL","RETURN","ERR");
+	exit(0);
+ }
+' "$command"
diff --git a/external/cddl/dtracetoolkit/dist/Proc/mmapfiles.d b/external/cddl/dtracetoolkit/dist/Proc/mmapfiles.d
new file mode 100755
index 0000000..06b0bdc
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/mmapfiles.d
@@ -0,0 +1,62 @@
+#!/usr/sbin/dtrace -s
+/*
+ * mmapfiles.d - mmap'd files by process.
+ *               Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: mmapfiles.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:       mmapfiles.d    # hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		MMAPS		number of mmaps
+ *		CMD		process name
+ *		PATHNAME	pathname of mmap'd file
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 18-Oct-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+syscall::mmap:entry
+/(int)arg4 > 0/
+{
+	/*
+	 * Fetch filename
+	 */
+	this->filep = curthread->t_procp->p_user.u_finfo.fi_list[arg4].uf_file;
+	this->vnodep = this->filep != 0 ? this->filep->f_vnode : 0;
+	self->vpath = this->vnodep ? (this->vnodep->v_path != 0 ?
+	    cleanpath(this->vnodep->v_path) : "<unknown>") : "<unknown>";
+
+	/* Store Details */
+	@hits[execname, self->vpath] = count();
+}
+
+dtrace:::END
+{
+	/* Print Details */
+	printf("%5s %-16s %s\n", "MMAPS", "CMD", "PATHNAME");
+	printa("%@5d %-16s %s\n", @hits);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Proc/newproc.d b/external/cddl/dtracetoolkit/dist/Proc/newproc.d
new file mode 100755
index 0000000..d30645a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/newproc.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * newproc.d - snoop new processes as they are executed. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: newproc.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ */
+
+proc:::exec-success { trace(curpsinfo->pr_psargs); }
diff --git a/external/cddl/dtracetoolkit/dist/Proc/pathopens.d b/external/cddl/dtracetoolkit/dist/Proc/pathopens.d
new file mode 100755
index 0000000..ed8ee74
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/pathopens.d
@@ -0,0 +1,100 @@
+#!/usr/sbin/dtrace -s
+/*
+ * pathopens.d - full pathnames opened successfully count.
+ *               Written using DTrace (Solaris 10 3/05)
+ *
+ * This program prints a count of the number of times files have been
+ * successfully opened. This is somewhat special in that the full pathname
+ * is calculated, even if the file open referred to a relative pathname.
+ *
+ * $Id: pathopens.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	fileopens.d
+ *
+ * FIELDS:
+ *		PATHNAME	full pathname
+ *		COUNT		number of successful opens
+ *
+ * Similar to a script from DExplorer.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 12-Jan-2006	   "	  "	Fixed known error.
+ * 20-Apr-2006	   "	  "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+syscall::open*:entry
+{
+	self->pathp = arg0;
+	self->ok = 1;
+}
+
+syscall::open*:return
+/self->ok && arg0 != -1/
+{
+	self->file = copyinstr(self->pathp);
+	self->char0 = copyin(self->pathp, 1);
+
+	/* fetch current working directory */
+	this->path = curthread->t_procp->p_user.u_cdir->v_path;
+
+	/*
+	 * Make the full pathname
+	 *
+	 * This routine takes the cwd and the filename, and generates a
+	 * full pathname. Sometimes the filename is absolute, so we must
+	 * ignore the cwd. This also checks if the cwd ends in an
+	 * unnecessary '/'.
+	 */
+	this->len = strlen(this->path);
+	self->join = *(char *)(this->path + this->len - 1) == '/' ?  "" : "/";
+	self->dir = strjoin(cwd, self->join);
+	self->dir = *(char *)self->char0 == '/' ? "" : self->dir;
+	self->full = strjoin(self->dir, self->file);
+
+	/* save to aggregation */
+	@num[self->full] = count();
+
+	/* cleanup */
+	self->join  = 0;
+	self->full  = 0;
+	self->dir   = 0;
+	self->file  = 0;
+	self->char0 = 0;
+}
+
+syscall::open*:return
+/self->ok/
+{
+	/* cleanup */
+	self->ok    = 0;
+	self->pathp = 0;
+}
+
+dtrace:::END
+{
+	printf("%6s %s\n", "COUNT", "PATHNAME");
+	printa("%@6d %s\n", @num);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Proc/pfilestat b/external/cddl/dtracetoolkit/dist/Proc/pfilestat
new file mode 100755
index 0000000..345db42
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/pfilestat
@@ -0,0 +1,282 @@
+#!/usr/bin/sh
+#
+# pfilestat
+#
+# This prints I/O statistics for each file descriptor within a process.
+# In particular, the time break down during read() and write() events is
+# measured.
+#
+# $Id: pfilestat,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# USAGE:        pfilestat [-r|-w] pid
+#
+# FIELDS:
+#               STATE      microstate: running, sleeping, waitcpu, read, write
+#               FDUM       File Descriptor ID
+#               Time       Percentage of wallclock time in each STATE
+#               File       Name of file, if known
+# 
+# COPYRIGHT: Copyright (c) 2006 Richard McDougall.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# ToDo:
+#	Trace readv() and writev().
+#
+# 20-Feb-2006   Richard McDougall	created this.
+# 24-Feb-2006   Brendan Gregg		tweaked code.
+# 20-Mar-2006      "      " 		tweaked code.
+# 20-Mar-2006      "      " 		last update.
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_read=0; opt_write=0
+
+### Process options
+while getopts hrw name
+do
+	case $name in
+	r)      opt_read=1 ;;
+	w)      opt_write=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: pfilestat [-r|-w] pid
+		              -r           # reads only
+		              -w           # writes only
+		  eg,
+		       pfilestat pid       # default, r+w counts
+		       pfilestat -r pid    # read count only
+		END
+		exit 1
+	esac
+done
+shift `expr $OPTIND - 1`
+
+PID=$1
+clearstr=`clear`
+
+if [ -z "$PID" ]
+then
+	echo "Must supply pid"
+	exit 1
+fi
+
+### Option logic
+if [ $opt_read -eq 0 -a $opt_write -eq 0 ]; then
+	opt_read=1; opt_write=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ inline string CLEAR   = "'$clearstr'";
+ inline int OPT_read   = '$opt_read';
+ inline int OPT_write  = '$opt_write';
+ inline int PID        = '$PID';
+
+ unsigned long long totaltime;
+ unsigned long long totalbytes;
+
+ enum runstate {
+	READ,
+	WRITE,
+	OTHER
+ };
+
+ /* print header */
+ dtrace:::BEGIN
+ {
+	printf("Tracing ");
+	OPT_read && OPT_write ? printf("reads and writes") : 1;
+	OPT_read && ! OPT_write ? printf("reads") : 1;
+	! OPT_read && OPT_write ? printf("writes") : 1;
+	printf("...");
+	totaltime = 0;
+	totalbytes = 0;
+	last = timestamp;
+	stamp = timestamp;
+ }
+
+ /* sample reads */
+ syscall::read:entry,
+ syscall::pread*:entry
+ /pid == PID && OPT_read/
+ {
+	runstate = READ;
+	@logical["running", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+
+	self->fd = arg0 + 1;
+ }
+
+ fbt::fop_read:entry,
+ fbt::fop_write:entry
+ /self->fd/
+ {
+	self->path = args[0]->v_path == 0 ? "<none>" : 
+	    cleanpath(args[0]->v_path);
+ }
+
+ syscall::read:return,
+ syscall::pread*:return
+ /pid == PID && OPT_read/
+ {
+	runstate = OTHER;
+	this->bytes = (int)arg0 > 0 ? (int)arg0 : 0;
+	@logical["read", self->fd - 1, self->path] = sum(timestamp - last);
+	@bytes["read", self->fd - 1, self->path] = sum(this->bytes);
+	totalbytes += this->bytes;
+	totaltime += timestamp - last;
+	last = timestamp;
+	self->path = 0;
+	self->fd = 0;
+ }
+
+
+ /* sample writes */
+ syscall::write:entry,
+ syscall::pwrite*:entry
+ /pid == PID && OPT_write/
+ {
+	runstate = WRITE;
+	@logical["running", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+
+	self->fd = (int)arg0 + 1;
+ }
+
+ syscall::write:return,
+ syscall::pwrite*:return
+ /pid == PID && OPT_write/
+ {
+	runstate = OTHER;
+	this->bytes = (int)arg0 > 0 ? (int)arg0 : 0;
+	@logical["write", self->fd - 1, self->path] = sum(timestamp - last);
+	@bytes["write", self->fd - 1, self->path] = sum(this->bytes);
+	totalbytes += this->bytes;
+	totaltime += timestamp - last;
+	last = timestamp;
+	self->path = 0;
+	self->fd = 0;
+ }
+
+ sched:::on-cpu
+ /pid == PID/
+ {
+	@logical["waitcpu", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+
+ sched:::off-cpu
+ /pid == PID/
+ {
+	@logical["running", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::sleep
+ /pid == PID/
+ {
+	@logical["running", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::wakeup
+ /args[1]->pr_pid == PID && runstate == OTHER/
+ {
+	@logical["sleep", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::wakeup
+ /args[1]->pr_pid == PID && runstate == READ/
+ {
+	@logical["sleep-r", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::wakeup
+ /args[1]->pr_pid == PID && runstate == WRITE/
+ {
+	@logical["sleep-w", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::enqueue
+ /args[1]->pr_pid == PID/
+ {
+	@logical["waitcpu", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::dequeue
+ /args[1]->pr_pid == PID/
+ {
+	@logical["waitcpu", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ /* print report */
+ profile:::tick-5s
+ {
+	printf("%s", CLEAR);
+	normalize(@logical, totaltime / 100);
+	trunc(@logical, 10);
+	printf("%10s %7s %9s %-44s\n", "STATE", "FDNUM", "Time", "Filename");
+	printa("%10s %7d %@8d%% %-44.44s\n", @logical);
+	trunc(@logical);
+
+	delta = timestamp - stamp;
+	stamp = timestamp;
+	normalize(@bytes, (1024 * delta) / 1000000000);
+	trunc(@bytes, 10);
+	printf("\n%10s %7s %9s %-44s\n", "STATE", "FDNUM", "KB/s",
+	    "Filename");
+	printa("%10s %7d %@9d %-44.44s\n", @bytes);
+	trunc(@bytes);
+
+	printf("\nTotal event time (ms): %d   Total Mbytes/sec: %d\n",
+	    totaltime / 1000000,
+	    (totalbytes * 1000000000) / (delta * 1048576));
+
+	totaltime = 0;
+	totalbytes = 0;
+	last = timestamp;
+ }
+
+ dtrace:::END
+ {
+	trunc(@logical);
+	trunc(@bytes);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Proc/pidpersec.d b/external/cddl/dtracetoolkit/dist/Proc/pidpersec.d
new file mode 100755
index 0000000..cb760c0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/pidpersec.d
@@ -0,0 +1,57 @@
+#!/usr/sbin/dtrace -s
+/*
+ * pidpersec.d - print new PIDs per sec.
+ *               Written using DTrace (Solaris 10 3/05)
+ *
+ * This script prints the number of new processes created per second.
+ *
+ * $Id: pidpersec.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: pidpersec.d
+ *
+ * FIELDS:
+ *
+ *          TIME        Time, as a string
+ *          LASTPID     Last PID created
+ *          PID/s       Number of processes created per second
+ *
+ * SEE ALSO: execsnoop
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Jun-2005  Brendan Gregg   Created this.
+ * 09-Jun-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("%-22s %6s\n", "TIME", "PID/s");
+	pids = 0;
+}
+
+proc:::exec-success
+{
+	pids++;
+}
+
+profile:::tick-1sec
+{
+	printf("%-22Y %6d\n", walltimestamp, pids);
+	pids = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Proc/readbytes.d b/external/cddl/dtracetoolkit/dist/Proc/readbytes.d
new file mode 100755
index 0000000..9b99d2c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/readbytes.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * readbytes.d - read bytes by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: readbytes.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ */
+
+sysinfo:::readch { @bytes[execname] = sum(arg0); }
diff --git a/external/cddl/dtracetoolkit/dist/Proc/readdist.d b/external/cddl/dtracetoolkit/dist/Proc/readdist.d
new file mode 100755
index 0000000..dc6f24d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/readdist.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * readdist.d - read distribution by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: readdist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ */
+
+sysinfo:::readch { @dist[execname] = quantize(arg0); }
diff --git a/external/cddl/dtracetoolkit/dist/Proc/rwbbypid.d b/external/cddl/dtracetoolkit/dist/Proc/rwbbypid.d
new file mode 100755
index 0000000..4fa883b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/rwbbypid.d
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -s
+/*
+ * rwbbypid.d - read/write bytes by PID.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * This script tracks the bytes read and written at the syscall level
+ * by processes, printing the totals in a report. This is tracking the
+ * successful number of bytes read or written.
+ *
+ * $Id: rwbbypid.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	rwbbypid.d		# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		process name
+ *		DIR		direction, Read or Write
+ *		BYTES		total bytes
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sysinfo:::readch
+{
+	@bytes[pid, execname, "R"] = sum(arg0);
+}
+
+sysinfo:::writech
+{
+	@bytes[pid, execname, "W"] = sum(arg0);
+}
+
+dtrace:::END
+{
+	printf("%6s %-24s %4s %16s\n", "PID", "CMD", "DIR", "BYTES");
+	printa("%6d %-24s %4s %@16d\n", @bytes);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Proc/rwbypid.d b/external/cddl/dtracetoolkit/dist/Proc/rwbypid.d
new file mode 100755
index 0000000..b7fcd8f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/rwbypid.d
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -s
+/*
+ * rwbypid.d - read/write calls by PID.
+ *             Written using DTrace (Solaris 10 3/05)
+ *
+ * This script tracks the number of reads and writes at the syscall level
+ * by processes, printing the totals in a report. This matches reads
+ * and writes whether they succeed or not.
+ *
+ * $Id: rwbypid.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	rwbypid.d			# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		process name
+ *		DIR		Read or Write
+ *		COUNT		total calls
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+syscall::*read*:entry
+{
+	@calls[pid, execname, "R"] = sum(arg0);
+}
+
+syscall::*write*:entry
+{
+	@calls[pid, execname, "W"] = sum(arg0);
+}
+
+dtrace:::END
+{
+	printf("%6s %-24s %4s %8s\n", "PID", "CMD", "DIR", "COUNT");
+	printa("%6d %-24s %4s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Proc/rwbytype.d b/external/cddl/dtracetoolkit/dist/Proc/rwbytype.d
new file mode 100755
index 0000000..d7e90fd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/rwbytype.d
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -s
+/*
+ * rwbytype.d - read/write bytes by vnode type.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * This program identifies the vnode type of read/write activity - whether
+ * that is for regular files, sockets, character special devices, etc.
+ *
+ * $Id: rwbytype.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:       rwbytype.d    # hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		number of rwbytype
+ *		CMD		process name
+ *		VTYPE		vnode type (describes I/O type)
+ *		DIR		direction (Read/Write)
+ *		BYTES		bytes transferred
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 18-Oct-2005  Brendan Gregg   Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+typedef struct vtype2str {
+	string code;
+};
+
+translator struct vtype2str < int T > {
+	/* the order has been picked for performance reasons */
+	code =
+	    T == 1 ? "reg"   :
+	    T == 9 ? "sock"  :
+	    T == 4 ? "chr"   :
+	    T == 6 ? "fifo"  :
+	    T == 8 ? "proc"  :
+	    T == 2 ? "dir"   :
+	    T == 3 ? "blk"   :
+	    T == 5 ? "lnk"   :
+	    T == 7 ? "door"  :
+	    T == 10 ? "port" :
+	    T == 11 ? "bad"  : "non";
+};
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+fbt::fop_read:entry,
+fbt::fop_write:entry
+{
+	self->type = xlate <struct vtype2str *>(args[0]->v_type)->code;
+	self->size = args[1]->uio_resid;
+	self->uiop = args[1];
+}
+
+fbt::fop_read:return
+/self->uiop/
+{
+	this->resid = self->uiop->uio_resid;
+	@bytes[pid, execname, self->type, "R"] = sum(self->size - this->resid);
+	self->type = 0;
+	self->size = 0;
+	self->uiop = 0;
+}
+
+/* this is delibrately redundant code for performance reasons */
+fbt::fop_write:return
+/self->uiop/
+{
+	this->resid = self->uiop->uio_resid;
+	@bytes[pid, execname, self->type, "W"] = sum(self->size - this->resid);
+	self->type = 0;
+	self->size = 0;
+	self->uiop = 0;
+}
+
+dtrace:::END
+{
+	printf("%-6s %-16s %6s %4s %9s\n",
+	    "PID", "CMD", "VTYPE", "DIR", "BYTES");
+	printa("%-6d %-16s %6s %4s %@9d\n", @bytes);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Proc/sampleproc b/external/cddl/dtracetoolkit/dist/Proc/sampleproc
new file mode 100755
index 0000000..01b3487
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/sampleproc
@@ -0,0 +1,105 @@
+#!/usr/bin/ksh
+#
+# sampleproc - sample processes on the CPUs.
+#              Written using DTrace (Solaris 10 3/05).
+#
+# This program samples which process is on each CPU, at a particular
+# configurable rate. This can be used as an estimate for which process
+# is consuming the most CPU time.
+#
+# $Id: sampleproc,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+# 
+# USAGE:	sampleproc [hertz]	# hit Ctrl-C to end sample
+#
+# FIELDS:
+#		PID        Process ID
+#		COMMAND    Command name
+#		COUNT      Number of samples
+#		PERCENT    Percent of CPU usage
+#
+# BASED ON: /usr/demo/dtrace/prof.d
+#
+# SEE ALSO:
+#           DTrace Guide "profile Provider" chapter (docs.sun.com)
+#
+# PORTIONS: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 09-Jun-2005   Brendan Gregg   Created this.
+# 09-Jul-2005	   "      "	Last update.
+
+### Usage
+function usage
+{
+        cat <<-END >&2
+	USAGE: sampleproc [hertz]
+	   eg,
+	       sampleproc               # defaults to 100 hertz
+	       sampleproc 1000          # 1000 hertz
+	END
+	exit 1
+}
+
+### Process arguments
+if (( $# == 0 )); then
+        hertz=100
+elif (( $# == 1 )); then
+	hertz=$1
+	if [[ "$hertz" = *[a-zA-Z]* ]]; then
+		print "ERROR2: $hertz hertz is invalid." >&2
+		exit 2
+	fi
+	if (( hertz > 5000 )); then
+		print "ERROR3: $hertz hertz is too fast (max 5000)." >&2
+		exit 3
+	fi
+	if (( hertz < 1 )); then
+		print "ERROR4: $hertz hertz is too low (min 1)." >&2
+		exit 4
+	fi
+else
+	usage
+fi
+
+### Run DTrace
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ dtrace:::BEGIN
+ {
+	printf("Sampling at %d hertz... Hit Ctrl-C to end.\n",$1);
+	self->start = timestamp;
+ }
+
+ profile:::profile-$1
+ {
+	@Proc[pid, execname] = count();
+	@BigProc[pid, execname] = sum(1000); /* dont ask */
+ }
+
+ dtrace:::END
+ {
+	this->end = timestamp;
+
+	printf("%5s %-20s %10s\n", "PID", "CMD", "COUNT");
+	printa("%5d %-20s %10@d\n", @Proc);
+
+	normalize(@BigProc, 
+	    ((`ncpus_online * $1 * (this->end - self->start))/100000000));
+	printf("\n%5s %-20s %10s\n", "PID", "CMD", "PERCENT");
+	printa("%5d %-20s %10@d\n", @BigProc);
+ }
+' $hertz
diff --git a/external/cddl/dtracetoolkit/dist/Proc/shortlived.d b/external/cddl/dtracetoolkit/dist/Proc/shortlived.d
new file mode 100755
index 0000000..20252c5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/shortlived.d
@@ -0,0 +1,118 @@
+#!/usr/sbin/dtrace -qs
+/*
+ * shortlived.d - determine time spent by short lived processes.
+ *                Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: shortlived.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:    shortlived.d	# wait, then hit Ctrl-C
+ *
+ * Applications that run many short lived processes can cause load
+ * on the system that is difficult to identify - the processes
+ * aren't sampled in time by programs such as prstat. This program
+ * illustrates how much time was spent processing those extra
+ * processes, and a table of process name by total times for each.
+ *
+ * SEE ALSO: execsnoop
+ *
+ * Notes:
+ * - The measurements are minimum values, not all of the overheads
+ *   caused by process generation and destruction are measured (DTrace
+ *   can do so, but the script would become seriously complex).
+ * - The summary values are accurate, the by program and by PPID values
+ *   are usually slightly smaller due to rounding errors.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 22-Apr-2005  Brendan Gregg   Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+/*
+ * Start
+ */
+dtrace:::BEGIN
+{
+	/* save start time */
+	start = timestamp;
+
+	/* this is time spent on shortlived processes */
+	procs = 0;
+
+	/* print header */
+	printf("Tracing... Hit Ctrl-C to stop.\n");
+}
+
+/*
+ * Measure parent fork time
+ */
+syscall::*fork*:entry
+{
+	/* save start of fork */
+	self->fork = vtimestamp;
+}
+syscall::*fork*:return
+/arg0 != 0 && self->fork/
+{
+	/* record elapsed time for the fork syscall */
+	this->elapsed = vtimestamp - self->fork;
+	procs += this->elapsed;
+	self->fork = 0;
+}
+
+/*
+ * Measure child processes time
+ */
+syscall::*fork*:return
+/arg0 == 0/
+{
+	/* save start of child process */
+	self->start = vtimestamp;
+
+	/* memory cleanup */
+	self->fork = 0;
+}
+proc:::exit
+/self->start/
+{
+	/* record elapsed time for process execution */
+	this->elapsed = vtimestamp - self->start;
+	procs += this->elapsed;
+
+	/* sum elapsed by process name and ppid */
+	@Times_exec[execname] = sum(this->elapsed/1000000);
+	@Times_ppid[ppid] = sum(this->elapsed/1000000);
+
+	/* memory cleanup */
+	self->start = 0;
+}
+
+/*
+ * Print report
+ */
+dtrace:::END
+{
+	this->total = timestamp - start;
+	printf("short lived processes: %6d.%03d secs\n",
+	    procs/1000000000, (procs%1000000000)/1000000);
+	printf("total sample duration: %6d.%03d secs\n",
+	    this->total/1000000000, (this->total%1000000000)/1000000);
+	printf("\nTotal time by process name,\n");
+	printa("%18s %@12d ms\n", @Times_exec);
+	printf("\nTotal time by PPID,\n");
+	printa("%18d %@12d ms\n", @Times_ppid);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Proc/sigdist.d b/external/cddl/dtracetoolkit/dist/Proc/sigdist.d
new file mode 100755
index 0000000..7a94ee9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/sigdist.d
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -s
+/*
+ * sigdist.d - signal distribution by process name.
+ *             Written using DTrace (Solaris 10 3/05)
+ *
+ * This is a simple DTrace script that prints the number of signals
+ * recieved by process and signal number. This script is also available
+ * as /usr/demo/dtrace/sig.d, where it originates.
+ *
+ * $Id: sigdist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: 	sigdist.d	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		SENDER		process name of sender
+ *		RECIPIENT	process name of target
+ *		SIG		signal number, see signal(3head)
+ *		COUNT		number of signals sent
+ *
+ * BASED ON: /usr/demo/dtrace/sig.d
+ *
+ * SEE ALSO: DTrace Guide "proc Provider" chapter (docs.sun.com)
+ *           kill.d(1M)
+ *
+ * PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+proc:::signal-send
+{
+	@Count[execname, stringof(args[1]->pr_fname), args[2]] = count();
+}
+
+dtrace:::END
+{
+	printf("%16s %16s %6s %6s\n", "SENDER", "RECIPIENT", "SIG", "COUNT");
+	printa("%16s %16s %6d %6@d\n", @Count);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Proc/stacksize.d b/external/cddl/dtracetoolkit/dist/Proc/stacksize.d
new file mode 100755
index 0000000..4ce84b7
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/stacksize.d
@@ -0,0 +1,95 @@
+#!/usr/sbin/dtrace -s
+/*
+ * stacksize.d - measure stack size for running threads.
+ *               Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: stacksize.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:       stacksize.d              # hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		value		size of the user stack
+ *		count		number of samples at this size
+ *
+ * SEE ALSO:    pmap(1)
+ *
+ * COPYRIGHT: Copyright (c) 2006 Jonathan Adams
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 16-Feb-2006	Jonathan Adams	Created this.
+ * 16-Feb-2006     "      "	Last update.
+ */
+
+#pragma D option quiet
+
+this uintptr_t stkinfoptr;
+this uintptr_t stkptr;
+
+dtrace:::BEGIN
+{
+	trace("Sampling... Hit Ctrl-C to end\n");
+}
+
+sched:::on-cpu, profile:::profile-997
+{
+	this->stkinfoptr = 0;
+	this->stkptr = 0;
+}
+
+sched:::on-cpu, profile:::profile-997
+/execname != "sched"/
+{
+	this->stkinfoptr = curthread->t_lwp->lwp_ustack;
+	this->stkptr = (uintptr_t)0;
+}
+
+sched:::on-cpu, profile:::profile-997
+/this->stkinfoptr != 0 && curpsinfo->pr_dmodel == PR_MODEL_ILP32/
+{
+	this->stkinfo32 = (stack32_t *)copyin(this->stkinfoptr,
+	    sizeof (stack32_t));
+	this->stktop = (uintptr_t)this->stkinfo32->ss_sp +
+	    this->stkinfo32->ss_size;
+	this->stkptr = (uintptr_t)uregs[R_SP];
+}
+
+sched:::on-cpu, profile:::profile-997
+/this->stkinfoptr != 0 && curpsinfo->pr_dmodel == PR_MODEL_LP64/
+{
+	this->stkinfo = (stack_t *)copyin(this->stkinfoptr,
+	    sizeof (stack_t));
+	this->stktop = (uintptr_t)this->stkinfo->ss_sp +
+	    this->stkinfo->ss_size;
+	this->stkptr = (uintptr_t)uregs[R_SP];
+}
+
+sched:::on-cpu, profile:::profile-997
+/this->stkptr != 0/
+{
+	@sizes[execname] = quantize(this->stktop - this->stkptr);
+}
+
+dtrace:::ERROR
+{
+	@errors[execname] = count();
+}
+
+dtrace:::END
+{
+	printa(@sizes);
+	printf("\nErrors:\n");
+	printa("    %@d %s\n", @errors);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Proc/sysbypid.d b/external/cddl/dtracetoolkit/dist/Proc/sysbypid.d
new file mode 100755
index 0000000..87ce8ce
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/sysbypid.d
@@ -0,0 +1,53 @@
+#!/usr/sbin/dtrace -s
+/*
+ * sysbypid.d - print sysinfo events by process.
+ *		Uses DTrace (Solaris 10 3/05).
+ *
+ * $Id: sysbypid.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: sysbypid.d
+ *
+ * FIELDS:
+ *		EXEC	Process name
+ *		PID	Process ID
+ * 		SYS	System statistic (see /usr/include/sys/sysinfo.h)
+ *		VALUE	Value by which statistic was incremented
+ *
+ * The virtual memory statistics are documented in the cpu_sysinfo struct
+ * in the /usr/include/sys/sysinfo.h file; and also in the sysinfo provider
+ * chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 14-May-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN {
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sysinfo::: {
+	@Sys[execname, pid, probename] = sum(arg0);
+}
+
+dtrace:::END {
+	printf("%16s %8s %22s %8s\n", "EXEC", "PID", "SYS", "VALUE");
+	printa("%16s %8d %22s %@8d\n", @Sys);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Proc/syscallbypid.d b/external/cddl/dtracetoolkit/dist/Proc/syscallbypid.d
new file mode 100755
index 0000000..2e45f77
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/syscallbypid.d
@@ -0,0 +1,54 @@
+#!/usr/sbin/dtrace -s
+/*
+ * syscallbypid.d - report on syscalls by PID.
+ *                  Written using DTrace (Solaris 10 3/05)
+ *
+ * $Id: syscallbypid.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	syscallbypid.d			# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		process name
+ *		SYSCALL		syscall name
+ *		COUNT		number of syscalls for this PID
+ *
+ * This is based on a script from DExplorer.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 15-May-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+syscall:::entry
+{
+	@num[pid, execname, probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf("%6s %-24s %-24s %8s\n", "PID", "CMD", "SYSCALL", "COUNT");
+	printa("%6d %-24s %-24s %@8d\n", @num);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Proc/syscallbyproc.d b/external/cddl/dtracetoolkit/dist/Proc/syscallbyproc.d
new file mode 100755
index 0000000..da8d2b2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/syscallbyproc.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * syscallbyproc.d - report on syscalls by process name . DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: syscallbyproc.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ */
+
+syscall:::entry { @num[execname] = count(); }
diff --git a/external/cddl/dtracetoolkit/dist/Proc/threaded.d b/external/cddl/dtracetoolkit/dist/Proc/threaded.d
new file mode 100755
index 0000000..88aebb2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/threaded.d
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -s
+/*
+ * threaded.d - sample multi-threaded CPU usage.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * This measures thread IDs as a process runs across multiple CPUs.
+ * It is a simple script that can help determine if a multi-threaded
+ * application is effectively using it's threads, or if the threads have
+ * serialised. See the example file in Docs/Examples/threaded_example.txt
+ * for a demonstration.
+ *
+ * $Id: threaded.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	threaded.d
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		process name
+ *		value		thread ID
+ *		count		number of samples
+ *
+ * SEE ALSO:	prstat -L
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * Author: Brendan Gregg  [Sydney, Australia]
+ *
+ * 25-Jul-2005	Brendan Gregg	Created this.
+ * 25-Jul-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Sample at 100 Hertz
+ */
+profile:::profile-100
+/pid != 0/
+{
+	@sample[pid, execname] = lquantize(tid, 0, 128, 1);
+}
+
+/*
+ * Print output every 1 second
+ */
+profile:::tick-1sec
+{
+	printf("%Y,\n", walltimestamp);
+	printa("\n     PID: %-8d CMD: %s\n%@d", @sample);
+	printf("\n");
+	trunc(@sample);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Proc/topsysproc b/external/cddl/dtracetoolkit/dist/Proc/topsysproc
new file mode 100755
index 0000000..d860321
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/topsysproc
@@ -0,0 +1,121 @@
+#!/usr/bin/sh
+#
+# topsysproc - display top syscalls by process name.
+#              Written using DTrace (Solaris 10 3/05).
+#
+# This program continually prints a report of the number of system calls
+# by process name, and refreshes the display every 1 second or as specified
+# at the command line. Similar data can be fetched with "prstat -m".
+#
+# $Id: topsysproc,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# USAGE:        topsysproc [interval]
+#
+# FIELDS:
+#		load avg   load averages, see uptime(1)
+#		syscalls   total number of syscalls in this interval
+#		PROCESS    process name
+#		COUNT      number of occurances in this interval
+#
+# NOTE: There may be several PIDs with the same process name.
+#
+# SEE ALSO:     prstat(1M)
+#
+# INSPIRATION:  top(1) by William LeFebvre
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 13-Jun-2005	Brendan Gregg	Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+#
+#  Check options
+#
+if [ "$1" = "-h" -o "$1" = "--help" ]; then
+	cat <<-END
+	USAGE: topsysproc [interval]
+	   eg,
+	       topsysproc            # default, 1 second updates
+	       topsysproc 5          # 5 second updates
+	END
+	exit 1
+fi
+interval=1
+if [ "$1" -gt 0 ]; then
+	interval=$1
+fi
+
+#
+#  Run DTrace
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+ #pragma D option destructive
+
+ /* constants */
+ inline int INTERVAL = '$interval';
+ inline int SCREEN   = 20;
+
+ /* variables */
+ dtrace:::BEGIN
+ {
+	secs = 0;
+	printf("Tracing... Please wait.\n");
+ }
+
+ /* record syscall event */
+ syscall:::entry
+ {
+	@Name[execname] = count();
+	@Total = count();
+ }
+
+ /* update screen */
+ profile:::tick-1sec
+ /++secs >= INTERVAL/
+ {
+        /* fetch load averages */
+        this->load1a  = `hp_avenrun[0] / 65536;
+        this->load5a  = `hp_avenrun[1] / 65536;
+        this->load15a = `hp_avenrun[2] / 65536;
+        this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+        this->load5b  = ((`hp_avenrun[1] % 65536) * 100) / 65536;
+        this->load15b = ((`hp_avenrun[2] % 65536) * 100) / 65536;
+
+	/* clear screen */
+	system("clear");
+
+        /* print load average */
+        printf("%Y, load average: %d.%02d, %d.%02d, %d.%02d",
+            walltimestamp, this->load1a, this->load1b, this->load5a,
+            this->load5b, this->load15a, this->load15b);
+
+	/* print syscall count */
+	printa("   syscalls: %@d\n",@Total);
+
+	/* print report */
+	trunc(@Name, SCREEN);
+	printf("\n   %-25s %12s\n", "PROCESS", "COUNT");
+	printa("   %-25s %@12d\n", @Name);
+
+	/* reset variables */
+	trunc(@Name);
+	clear(@Total);
+	secs = 0;
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/Proc/writebytes.d b/external/cddl/dtracetoolkit/dist/Proc/writebytes.d
new file mode 100755
index 0000000..9ffe401
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/writebytes.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * writebytes.d - write bytes by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: writebytes.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ */
+
+sysinfo:::writech { @bytes[execname] = sum(arg0); }
diff --git a/external/cddl/dtracetoolkit/dist/Proc/writedist.d b/external/cddl/dtracetoolkit/dist/Proc/writedist.d
new file mode 100755
index 0000000..c42276f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Proc/writedist.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * writedist.d - write distribution by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: writedist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ */
+
+sysinfo:::writech { @dist[execname] = quantize(arg0); }
diff --git a/external/cddl/dtracetoolkit/dist/Python/Readme b/external/cddl/dtracetoolkit/dist/Python/Readme
new file mode 100644
index 0000000..f183c74
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Python/Readme
@@ -0,0 +1,28 @@
+Python - DTracing Python
+
+   These scripts trace the Python programming language, and require a version
+   of Python which has been built with DTrace probes.
+
+   The Python DTrace provider was originally written by John Levon, and
+   was integrated into Solaris Nevada in build 65. If you are on a different
+   OS with DTrace and would like to use these scripts, you could download
+   Python and the Python DTrace provider patch listed in the comments here,
+
+	http://blogs.sun.com/levon/entry/python_and_dtrace_in_build
+
+   You will need patch and build Python for these probes to work.
+   Or, check if a pre-built package is available someone on opensolaris.org.
+
+   Since the DTrace Python provider may be developed further, there is a chance
+   that it has changed slightly by the time you are reading this, causing
+   these scripts to either break or behave oddly. Firstly, check for newer
+   versions of the DTraceToolkit; if it hasn't been updated and you need
+   to use these scripts immediately, then updating them shouldn't take
+   too long. The following was the state of the provider when these scripts
+   were written - check for changes and update the scripts accordingly,
+
+	provider python {
+	    probe function-entry(file, subroutine, lineno)
+	    probe function-return(file, subroutine, lineno)
+	};
+
diff --git a/external/cddl/dtracetoolkit/dist/Python/py_calldist.d b/external/cddl/dtracetoolkit/dist/Python/py_calldist.d
new file mode 100755
index 0000000..f69ed6d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Python/py_calldist.d
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_calldist.d - measure Python elapsed times for functions.
+ *                 Written for the Python DTrace provider.
+ *
+ * $Id: py_calldist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Python activity from all programs running on the system with
+ * Python provider support.
+ *
+ * USAGE: py_calldist.d 	# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Python
+ * operations. Use py_calltime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Python program
+ *		2		Type of call (func)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+python*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Python/py_calltime.d b/external/cddl/dtracetoolkit/dist/Python/py_calltime.d
new file mode 100755
index 0000000..030ac91
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Python/py_calltime.d
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_calltime.d - measure Python elapsed times for functions.
+ *                 Written for the Python DTrace provider.
+ *
+ * $Id: py_calltime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Python activity from all programs running on the system with
+ * Python provider support.
+ *
+ * USAGE: py_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Python program
+ *		TYPE		Type of call (func/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+python*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Python/py_cpudist.d b/external/cddl/dtracetoolkit/dist/Python/py_cpudist.d
new file mode 100755
index 0000000..2e4df47
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Python/py_cpudist.d
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_cpudist.d - measure Python on-CPU times for functions.
+ *                Written for the Python DTrace provider.
+ *
+ * $Id: py_cpudist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Python activity from all programs running on the system with
+ * Python provider support.
+ *
+ * USAGE: py_cpudist.d 		# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Python
+ * operations. Use py_cputime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Python program
+ *		2		Type of call (func)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+python*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Python/py_cputime.d b/external/cddl/dtracetoolkit/dist/Python/py_cputime.d
new file mode 100755
index 0000000..194c6ea
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Python/py_cputime.d
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_cputime.d - measure Python on-CPU times for functions.
+ *                Written for the Python DTrace provider.
+ *
+ * $Id: py_cputime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Python activity from all programs running on the system with
+ * Python provider support.
+ *
+ * USAGE: py_cputime.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Python program
+ *		TYPE		Type of call (func/total)
+ *		NAME		Name of call (function name)
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+python*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Python/py_flow.d b/external/cddl/dtracetoolkit/dist/Python/py_flow.d
new file mode 100755
index 0000000..6a03305
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Python/py_flow.d
@@ -0,0 +1,70 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_flow.d - snoop Python execution showing function flow.
+ *             Written for the Python DTrace provider.
+ *
+ * $Id: py_flow.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Python activity from all Python programs on the system
+ * running with Python provider support.
+ *
+ * USAGE: py_flow.d			# hit Ctrl-C to end
+ *
+ * This watches Python function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		FUNC		Function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s -- %s\n", "C", "TIME(us)", "FILE", "FUNC");
+}
+
+python*:::function-entry
+{
+	printf("%3d %-16d %-16s %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+	self->depth++;
+}
+
+python*:::function-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Python/py_flowinfo.d b/external/cddl/dtracetoolkit/dist/Python/py_flowinfo.d
new file mode 100755
index 0000000..6ee30e2
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Python/py_flowinfo.d
@@ -0,0 +1,86 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_flowinfo.d - snoop Python function flow with info using DTrace.
+ *                 Written for the Python DTrace provider.
+ *
+ * $Id: py_flowinfo.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Python programs on the system that are
+ * running with Python provider support.
+ *
+ * USAGE: py_flowinfo.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Python program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func)
+ *		FUNC		Python function
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "FUNC");
+}
+
+python*:::function-entry,
+python*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+python*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg0)), arg2, "func", self->depth * 2, "",
+	    copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+python*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s<- %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg0)), arg2, "func", self->depth * 2, "",
+	    copyinstr(arg1));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Python/py_flowtime.d b/external/cddl/dtracetoolkit/dist/Python/py_flowtime.d
new file mode 100755
index 0000000..f7f7c96
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Python/py_flowtime.d
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_flowtime.d - snoop Python functions with flow and delta times.
+ *                 Written for the Python DTrace provider.
+ *
+ * $Id: py_flowtime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces shell activity from Python programs on the system that are
+ * running with Python provider support.
+ *
+ * USAGE: py_flowtime.d			# hit Ctrl-C to end
+ *
+ * This watches Python function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FUNC		Python function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+self int last;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s %9s  -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "FUNC");
+}
+
+python*:::function-entry,
+python*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+python*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), this->delta, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+python*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %9d %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), this->delta, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Python/py_funccalls.d b/external/cddl/dtracetoolkit/dist/Python/py_funccalls.d
new file mode 100755
index 0000000..8d75cce
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Python/py_funccalls.d
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_funccalls.d - measure Python function calls using DTrace.
+ *                  Written for the Python DTrace provider.
+ *
+ * $Id: py_funccalls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Python activity from all running programs on the system
+ * which support the Python DTrace provider.
+ *
+ * USAGE: py_funccalls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *              FILE		Filename that contained the function
+ *		FUNC		Python function name
+ *		CALLS		Function calls during this sample
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	@funcs[basename(copyinstr(arg0)), copyinstr(arg1)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-32s %-32s %8s\n", "FILE", "FUNC", "CALLS");
+	printa(" %-32s %-32s %@8d\n", @funcs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Python/py_malloc.d b/external/cddl/dtracetoolkit/dist/Python/py_malloc.d
new file mode 100755
index 0000000..9a48260
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Python/py_malloc.d
@@ -0,0 +1,81 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_malloc.d - Python libc malloc analysis.
+ *               Written for the Python DTrace provider.
+ *
+ * $Id: py_malloc.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This is an expiremental script to identify who is calling malloc() for
+ * memory allocation, and to print distribution plots of the requested bytes.
+ * If a malloc() occured while in a Python function, then that function is
+ * identified as responsible; else the caller of malloc() is identified as
+ * responsible - which will be a function from the Python engine.
+ *
+ * USAGE: py_malloc.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python$target:::function-entry
+{
+	self->file = basename(copyinstr(arg0));
+	self->name = copyinstr(arg1);
+}
+
+python$target:::function-return
+{
+	self->file = 0;
+	self->name = 0;
+}
+
+pid$target:libc:malloc:entry
+/self->file != NULL/
+{
+	@malloc_func_size[self->file, self->name] = sum(arg0);
+	@malloc_func_dist[self->file, self->name] = quantize(arg0);
+}
+
+pid$target:libc:malloc:entry
+/self->name == NULL/
+{
+	@malloc_lib_size[usym(ucaller)] = sum(arg0);
+	@malloc_lib_dist[usym(ucaller)] = quantize(arg0);
+}
+
+
+dtrace:::END
+{
+	printf("\nPython malloc byte distributions by engine caller,\n\n");
+	printa("   %A, total bytes = %@d %@d\n", @malloc_lib_size,
+	    @malloc_lib_dist);
+
+	printf("\nPython malloc byte distributions by Python file and ");
+	printf("function,\n\n");
+	printa("   %s, %s, bytes total = %@d %@d\n", @malloc_func_size,
+	    @malloc_func_dist);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Python/py_mallocstk.d b/external/cddl/dtracetoolkit/dist/Python/py_mallocstk.d
new file mode 100755
index 0000000..2bc61fd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Python/py_mallocstk.d
@@ -0,0 +1,49 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_mallocstk.d - Python libc malloc analysis with full stack traces.
+ *                  Written for the Python DTrace provider.
+ *
+ * $Id: py_mallocstk.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: py_mallocstk.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+/* tune as desired, */
+#pragma D option jstackframes=64
+#pragma D option jstackstrsize=1024
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+pid$target:libc:malloc:entry
+{
+	@mallocs[jstack()] = quantize(arg0);
+}
+
+dtrace:::END
+{
+	printf("\nPython malloc byte distributions by stack trace,\n\n");
+	printa(@mallocs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Python/py_profile.d b/external/cddl/dtracetoolkit/dist/Python/py_profile.d
new file mode 100755
index 0000000..b734bda
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Python/py_profile.d
@@ -0,0 +1,79 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * py_profile.d - sample stack traces with Python translations using DTrace.
+ *                Written for the Python DTrace provider.
+ *
+ * $Id: py_profile.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: py_profile.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This samples stack traces for the process specified. This stack trace
+ * will cross the Python engine and system libraries, and insert 
+ * translations for Python stack frames where appropriate. This is best
+ * explained with an example stack frame output,
+ *
+ *            libpython2.4.so.1.0`PyEval_EvalFrame+0x2fbf
+ *              [ ./func_loop.py:5 (func_c) ]
+ *            libpython2.4.so.1.0`fast_function+0xa8
+ *            libpython2.4.so.1.0`call_function+0xda
+ *            libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ *              [ ./func_loop.py:11 (func_b) ]
+ *            libpython2.4.so.1.0`fast_function+0xa8
+ *            libpython2.4.so.1.0`call_function+0xda
+ *            libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ *              [ ./func_loop.py:14 (func_a) ]
+ *            libpython2.4.so.1.0`fast_function+0xa8
+ *            libpython2.4.so.1.0`call_function+0xda
+ *            libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ *              [ ./func_loop.py:16 (?) ]
+ *
+ * The lines in square brackets are the native Python frames, the rest
+ * are the Python engine.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option jstackstrsize=1024
+
+/*
+ * Tunables
+ */
+#define DEPTH	10		/* stack depth, frames */
+#define RATE	1001		/* sampling rate, Hertz */
+#define TOP	25		/* number of stacks to output */
+
+dtrace:::BEGIN
+{
+	printf("Sampling %d-level stacks at %d Hertz... Hit Ctrl-C to end.\n",
+	    DEPTH, RATE);
+}
+
+profile-RATE
+/pid == $target/
+{
+	@stacks[jstack(DEPTH)] = count();
+}
+
+dtrace:::END
+{
+	trunc(@stacks, TOP);
+	printf("Top %d most frequently sampled stacks,\n", TOP);
+	printa(@stacks);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Python/py_syscalls.d b/external/cddl/dtracetoolkit/dist/Python/py_syscalls.d
new file mode 100755
index 0000000..5e86523
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Python/py_syscalls.d
@@ -0,0 +1,63 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_syscalls.d - count Python function calls and syscalls using DTrace.
+ *                 Written for the Python DTrace provider.
+ *
+ * $Id: py_syscalls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: py_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Python program
+ *		TYPE		Type of call (func/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and function names are printed if available.
+ * The filename for syscalls may be printed as "python", if the program
+ * was invoked using the form "python filename" rather than running the
+ * program with an interpreter line.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python$target:::function-entry
+{
+	@calls[basename(copyinstr(arg0)), "func", copyinstr(arg1)] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[basename(execname), "syscall", probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf("\nCalls for PID %d,\n\n", $target);
+	printf(" %-32s %-10s %-22s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa(" %-32s %-10s %-22s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Python/py_syscolors.d b/external/cddl/dtracetoolkit/dist/Python/py_syscolors.d
new file mode 100755
index 0000000..fa3d16f
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Python/py_syscolors.d
@@ -0,0 +1,116 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_syscolors.d - trace Python function flow plus syscalls, in color.
+ *                  Written for the Python DTrace provider.
+ *
+ * $Id: py_syscolors.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: py_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches Python function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Python program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func/syscall)
+ *		NAME		Python function or syscall name
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+        color_python = "\033[2;35m";		/* violet, faint */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	self->depth = 0;
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+python$target:::function-entry,
+python$target:::function-return,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+python$target:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_python,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+python$target:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_python,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Python/py_who.d b/external/cddl/dtracetoolkit/dist/Python/py_who.d
new file mode 100755
index 0000000..226a9e3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Python/py_who.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_who.d - trace Python function execution by process using DTrace.
+ *            Written for the Python DTrace provider.
+ *
+ * $Id: py_who.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Python activity from all Python programs on the system that are
+ * running with Python provider support.
+ *
+ * USAGE: py_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of Python
+ *		UID		User ID of the owner
+ *		FUNCS		Number of function calls
+ *		FILE		Pathname of the Python program
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	@lines[pid, uid, copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %s\n", "PID", "UID", "FUNCS", "FILE");
+	printa("   %6d %6d %@6d %s\n", @lines);
+}
diff --git a/external/cddl/dtracetoolkit/dist/README b/external/cddl/dtracetoolkit/dist/README
new file mode 100644
index 0000000..739d367
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/README
@@ -0,0 +1,91 @@
+Guide - Guide to the DTraceToolkit
+
+    How to get started, and a table of contents.
+
+QuickStart
+
+	1. The top most useful scripts are in this directory.
+	2. Try running them with "-h". Eg, "./execsnoop -h".
+	3. Read Docs/Contents for a full list of scripts.
+
+QuickStart-by-Screenshot
+
+	1. Look through the examples in the Examples directory until
+	   you see an output you like
+	2. Find the script and run it
+	3. Look for its man page in Man
+
+Not-so-QuickStart
+	
+	1. Welcome!
+	2. Check the Table of Contents below to become famaliar with the
+	   directory structure of the DTraceToolkit.
+	3. See Docs/Faq for any initial questions.
+	4. Read Docs/Contents for a list of scripts.
+	5. Read Docs/Readme to see where scripts are documented.
+	6. Check Docs/Links for further DTrace.
+	7. Once famaliar with the toolkit, the following may be useful to
+	   add to your shell initialisation file,
+		PATH=$PATH:/opt/DTT/Bin
+		MANPATH=$MANPATH:/opt/DTT/Man
+	   in this case assuming the toolkit was installed in /opt/DTT.
+
+Installation
+
+	1. Run ./install
+	   This will replace any existing version of the DTraceToolkit
+	   with this one. It will prompt. Final install location is
+	   printed by this install script.
+
+Table of Contents
+
+   DTraceToolkit-X.XX/
+	Bin/			Symlinks to all the scripts
+	Apps/			Application specific scripts
+	Cpu/			Scripts for CPU analysis
+	Code/			Example code to practise on
+	Disk/			Scripts for disk I/O analysis
+	Docs/			Documentation
+	   Contents		Command list for the Toolkit
+	   Faq			Frequently asked questions
+	   Links		Further DTrace links
+	   Readme		Readme for using the docs
+	Examples/		Examples of command usage
+	Guide			This file!
+	Include/		DTrace include files
+	Java/			Scripts for tracing Java
+	JavaScript/		Scripts for tracing JavaScript
+	Kernel/			Scripts for kernel analysis
+	License			The CDDL license
+	Locks/			Scripts for lock analysis
+	Man/			Man pages
+	   man1m/		Man pages for the Toolkit commands
+	Mem/			Scripts for memory analysis
+	Misc/			Misc scripts
+	Net/			Scripts for network analysis
+	Notes/			Notes on Toolkit commands
+	Perl/			Scripts for tracing Perl
+	Php/			Scripts for tracing Php
+	Proc/			Scripts for process analysis
+	Python/			Scripts for tracing Python
+	Ruby/			Scripts for tracing Ruby
+	Shell/			Scripts for tracing Shell languages
+	Snippits/		Snippits of D scripting
+	System/			Scripts for system analysis
+	Tcl/			Scripts for tracing Tcl
+	User/			Scripts for user based activity analysis
+	Zones/			Scripts for analysis by zone
+	Version			DTraceToolkit version
+	install			Install script, use for installs only
+
+When you type ls in the DTraceToolkit, you will be looking at the top ten 
+or so most useful scripts plus the top level directories. Other scripts have
+been placed in meaningful subdirectories, such as Disk, Kernel, Proc, etc.
+
+An optional Bin directory has been provided that links to all the scripts.
+
+The DTraceToolkit is released under the CDDL license. It's the same open
+source license that OpenSolaris has been released under.
+
+Thank you for using the DTraceToolkit!
+
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/Readme b/external/cddl/dtracetoolkit/dist/Ruby/Readme
new file mode 100644
index 0000000..9dc3cc3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/Readme
@@ -0,0 +1,31 @@
+Ruby - DTracing Ruby
+
+   These scripts trace activity of the Ruby programming language, and
+   require the DTrace Ruby provider written by Joyent.
+
+   Currently, the DTrace Ruby provider is a seperate download either in
+   patch, source or binary form. Start with the "Ruby DTrace" link on
+   http://dtrace.joyent.com/, and after getting a version running, the
+   scripts in this directory should work.
+
+   Since the DTrace Ruby provider is under development, there is a chance
+   that it has changed slightly by the time you are reading this, causing
+   these scripts to either break or behave oddly. Firstly, check for newer
+   versions of the DTraceToolkit; if it hasn't been updated and you need
+   to use these scripts immediately, then updating them shouldn't take
+   too long. The following was the state of the provider when these scripts
+   were written - check for changes and update the scripts accordingly,
+
+	provider ruby {
+	    probe function-entry(class, method, file, lineno);
+	    probe function-return(class, method, file, lineno);
+	    probe raise(errinfo, file, lineno);
+	    probe rescue(file, lineno);
+	    probe line(file, lineno);
+	    probe gc-begin();
+	    probe gc-end();
+	    probe object-create-start(object, file, lineno);
+	    probe object-create-done(object, file, lineno);
+	    probe object-free(object);
+	};
+
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_calldist.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_calldist.d
new file mode 100755
index 0000000..c21f612
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_calldist.d
@@ -0,0 +1,120 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_calldist.d - measure Ruby elapsed times for types of operation.
+ *                 Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_calldist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_calldist.d 	# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Ruby
+ * operations. Use rb_calltime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Ruby program
+ *		2		Type of call (method/obj-new/gc)
+ *		3		Name of call
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+ruby*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg2));
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+ruby*:::object-create-start
+{
+	self->object = timestamp;
+}
+
+ruby*:::object-create-done
+/self->object/
+{
+	this->elapsed = timestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg1));
+	this->file = this->file != NULL ? this->file : ".";
+
+	@types[this->file, "obj-new", copyinstr(arg0)] =
+	    quantize(this->elapsed / 1000);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+ruby*:::gc-begin
+{
+	self->gc = timestamp;
+}
+
+ruby*:::gc-end
+/self->gc/
+{
+	this->elapsed = timestamp - self->gc;
+	self->gc = 0;
+
+	@types[".", "gc", "-"] = quantize(this->elapsed / 1000);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("\nElapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("\nExclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_calls.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_calls.d
new file mode 100755
index 0000000..df35542
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_calls.d
@@ -0,0 +1,87 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_calls.d - count Ruby calls using DTrace.
+ *              Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_calls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_calls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		TYPE		Type of call (method/obj-new/...)
+ *		NAME		Descriptive name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+        printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+        @calls[basename(copyinstr(arg2)), "method", this->name] = count();
+}
+
+ruby*:::object-create-start
+{
+	this->name = copyinstr(arg0);
+	this->filename = basename(copyinstr(arg1));
+	this->filename = this->filename != NULL ? this->filename : ".";
+        @calls[this->filename, "obj-new", this->name] = count();
+}
+
+ruby*:::object-free
+{
+	this->name = copyinstr(arg0);
+        @calls[".", "obj-free", this->name] = count();
+}
+
+ruby*:::gc-begin
+{
+        @calls[".", "gc", "begin"] = count();
+}
+
+ruby*:::raise
+{
+	this->name = copyinstr(arg0);
+        @calls[basename(copyinstr(arg1)), "raise", this->name] = count();
+}
+
+ruby*:::rescue
+{
+        @calls[basename(copyinstr(arg0)), "rescue", "-"] = count();
+}
+
+dtrace:::END
+{
+        printf(" %-24s %-10s %-30s %8s\n", "FILE", "TYPE", "NAME", "CALLS");
+        printa(" %-24s %-10s %-30s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_calltime.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_calltime.d
new file mode 100755
index 0000000..e1dc7de
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_calltime.d
@@ -0,0 +1,129 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_calltime.d - measure Ruby elapsed times for types of operation.
+ *                 Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_calltime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		TYPE		Type of call (method/obj-new/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+ruby*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg2));
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+ruby*:::object-create-start
+{
+	self->object = timestamp;
+}
+
+ruby*:::object-create-done
+/self->object/
+{
+	this->elapsed = timestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg1));
+	this->file = this->file != NULL ? this->file : ".";
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "obj-new", this->name] = count();
+	@types[this->file, "obj-new", this->name] = sum(this->elapsed);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+ruby*:::gc-begin
+{
+	self->gc = timestamp;
+}
+
+ruby*:::gc-end
+/self->gc/
+{
+	this->elapsed = timestamp - self->gc;
+	self->gc = 0;
+	@num[".", "gc", "-"] = count();
+	@types[".", "gc", "-"] = sum(this->elapsed);
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nElapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_cpudist.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_cpudist.d
new file mode 100755
index 0000000..de953cd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_cpudist.d
@@ -0,0 +1,120 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_cpudist.d - measure Ruby on-CPU times for types of operation.
+ *                Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_cpudist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_cpudist.d 		# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Ruby
+ * operations. Use rb_cputime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Ruby program
+ *		2		Type of call (method/obj-new/gc)
+ *		3		Name of call
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+ruby*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg2));
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+ruby*:::object-create-start
+{
+	self->object = vtimestamp;
+}
+
+ruby*:::object-create-done
+/self->object/
+{
+	this->oncpu = vtimestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg1));
+	this->file = this->file != NULL ? this->file : ".";
+
+	@types[this->file, "obj-new", copyinstr(arg0)] =
+	    quantize(this->oncpu / 1000);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+ruby*:::gc-begin
+{
+	self->gc = vtimestamp;
+}
+
+ruby*:::gc-end
+/self->gc/
+{
+	this->oncpu = vtimestamp - self->gc;
+	self->gc = 0;
+
+	@types[".", "gc", "-"] = quantize(this->oncpu / 1000);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+dtrace:::END
+{
+	printf("\nOn-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("\nExclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_cputime.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_cputime.d
new file mode 100755
index 0000000..f7ca507
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_cputime.d
@@ -0,0 +1,129 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_cputime.d - measure Ruby on-CPU times for types of operation.
+ *                Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_cputime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_cputime.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		TYPE		Type of call (method/obj-new/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+ruby*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg2));
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+ruby*:::object-create-start
+{
+	self->object = vtimestamp;
+}
+
+ruby*:::object-create-done
+/self->object/
+{
+	this->oncpu = vtimestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg1));
+	this->file = this->file != NULL ? this->file : ".";
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "obj-new", this->name] = count();
+	@types[this->file, "obj-new", this->name] = sum(this->oncpu);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+ruby*:::gc-begin
+{
+	self->gc = vtimestamp;
+}
+
+ruby*:::gc-end
+/self->gc/
+{
+	this->oncpu = vtimestamp - self->gc;
+	self->gc = 0;
+	@num[".", "gc", "-"] = count();
+	@types[".", "gc", "-"] = sum(this->oncpu);
+	self->exclude[self->depth] += this->oncpu;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nElapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_flow.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_flow.d
new file mode 100755
index 0000000..cd71f64
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_flow.d
@@ -0,0 +1,72 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_flow.d - snoop Ruby execution showing method flow using DTrace.
+ *             Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_flow.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_flow.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this method belongs to
+ *		CLASS::METHOD	Ruby classname and method
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * Filename and method names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-22s -- %s\n", "C", "TIME(us)", "FILE",
+	    "CLASS::METHOD");
+}
+
+ruby*:::function-entry
+{
+	printf("%3d %-16d %-22s %*s-> %s::%s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg2)), self->depth * 2, "", copyinstr(arg0),
+	    copyinstr(arg1));
+	self->depth++;
+}
+
+ruby*:::function-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-22s %*s<- %s::%s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg2)), self->depth * 2, "", copyinstr(arg0),
+	    copyinstr(arg1));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_flowinfo.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_flowinfo.d
new file mode 100755
index 0000000..64b06f4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_flowinfo.d
@@ -0,0 +1,88 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_flowinfo.d - snoop Ruby function (method) flow with info using DTrace.
+ *                 Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_flowinfo.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_flowinfo.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Ruby program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (method)
+ *		NAME		Ruby class and method name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * Filename and method names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+ruby*:::function-entry,
+ruby*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+ruby*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg2)), arg3, "method", self->depth * 2, "",
+	    this->name);
+	self->depth++;
+	self->last = timestamp;
+}
+
+ruby*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s<- %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg2)), arg3, "method", self->depth * 2, "",
+	    this->name);
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_flowtime.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_flowtime.d
new file mode 100755
index 0000000..7933f0b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_flowtime.d
@@ -0,0 +1,84 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_flowtime.d - snoop Ruby function (method) flow using DTrace.
+ *                 Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_flowtime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_flowtime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this method belongs to
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		CLASS::METHOD	Ruby class and method name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * Filename and method names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s %9s -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "CLASS::METHOD");
+}
+
+ruby*:::function-entry,
+ruby*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+ruby*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s-> %s::%s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg2)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0), copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+ruby*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %9d %*s<- %s::%s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg2)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0), copyinstr(arg1));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_funccalls.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_funccalls.d
new file mode 100755
index 0000000..fd4a785
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_funccalls.d
@@ -0,0 +1,57 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_funccalls.d - count Ruby function (method) calls using DTrace.
+ *                  Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_funccalls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_funccalls.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		METHOD		Method name
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+        printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+        @funcs[basename(copyinstr(arg2)), copyinstr(arg0), copyinstr(arg1)] =
+	    count();
+}
+
+dtrace:::END
+{
+        printf(" %-32.32s %-16s %-16s %8s\n", "FILE", "CLASS", "METHOD",
+	    "CALLS");
+        printa(" %-32.32s %-16s %-16s %@8d\n", @funcs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_lines.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_lines.d
new file mode 100755
index 0000000..7daf47a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_lines.d
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_lines.d - trace Ruby line execution by process using DTrace.
+ *              Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_lines.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Ruby activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		LINE		Line number
+ *		COUNT		Number of times a line was executed
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::line
+{
+	@calls[basename(copyinstr(arg0)), arg1] = count();
+}
+
+dtrace:::END
+{
+	printf(" %32s:%-6s %10s\n", "FILE", "LINE", "COUNT");
+	printa(" %32s:%-6d %@10d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_malloc.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_malloc.d
new file mode 100755
index 0000000..aadbd32
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_malloc.d
@@ -0,0 +1,80 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_malloc.d - Ruby operations and libc malloc statistics.
+ *               Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_malloc.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * WARNING: This script is not 100% accurate; This prints libc malloc() byte
+ * distributions by "recent" Ruby operation, which we hope will be usually
+ * relevant. This is an experimental script that may be improved over time.
+ *
+ * USAGE: rb_malloc.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		1		Filename of the Ruby program
+ *		2		Type of operation (method/objnew/startup)
+ *		3		Name of operation
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+self string filename;
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby$target:::function-entry
+{
+	self->file = basename(copyinstr(arg2));
+	self->type = "method";
+	self->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+}
+
+ruby$target:::object-create-start
+{
+	self->file = basename(copyinstr(arg1));
+	self->type = "objnew";
+	self->name = copyinstr(arg0);
+}
+
+pid$target:libc:malloc:entry
+/self->file != NULL/
+{
+	@mallocs[self->file, self->type, self->name] = quantize(arg0);
+}
+
+pid$target:libc:malloc:entry
+/self->file == NULL/
+{
+	@mallocs["ruby", "startup", "-"] = quantize(arg0);
+}
+
+
+dtrace:::END
+{
+	printf("Ruby malloc byte distributions by recent Ruby operation,\n");
+	printa("   %s, %s, %s %@d\n", @mallocs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_objcpu.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_objcpu.d
new file mode 100755
index 0000000..b215f55
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_objcpu.d
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_objcpu.d - measure Ruby object creation on-CPU time using DTrace.
+ *               Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_objcpu.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_objcpu.d	 	# hit Ctrl-C to end
+ *
+ * Class names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::object-create-start
+{
+	self->vstart = vtimestamp;
+}
+
+ruby*:::object-create-done
+/self->vstart/
+{
+	this->oncpu = vtimestamp - self->vstart;
+	@total = sum(this->oncpu);
+	@dist[copyinstr(arg0)] = quantize(this->oncpu / 1000);
+	self->vstart = 0;
+}
+
+dtrace:::END
+{
+	normalize(@total, 1000000);
+	printa("Total object creation on-CPU time (ms): %@d\n\n", @total);
+	printf("Object creation on-CPU time distributions (us),\n");
+	printa(@dist);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_objnew.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_objnew.d
new file mode 100755
index 0000000..c7b0e60
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_objnew.d
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_objnew.d - count Ruby object creation using DTrace.
+ *               Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_objnew.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_objnew.d	 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		CLASS		Class of new object
+ *		COUNT		Number of object creations during tracing
+ *
+ * Filename and class names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::object-create-done
+{
+	@objs[basename(copyinstr(arg1)), copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-24s %-36s %8s\n", "FILE", "CLASS", "COUNT");
+	printa(" %-24.24s %-36s %@8d\n", @objs);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_stat.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_stat.d
new file mode 100755
index 0000000..47f527e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_stat.d
@@ -0,0 +1,146 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_stat.d - Ruby operation stats using DTrace.
+ *             Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_stat.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_stat.d [interval [count]]
+ *
+ * FIELDS:
+ *		EXEC/s		Ruby programs executed per second, including
+ *				those without Ruby provider support
+ *		METHOD/s	Methods called, per second
+ *		OBJNEW/s	Objects created, per second
+ *		OBJFRE/s	Objects freed, per second
+ *		RAIS/s		Raises, per second
+ *		RESC/s		Rescues, per second
+ *		GC/s		Garbage collects, per second
+ *
+ * The numbers are counts for the interval specified. The default interval
+ * is 1 second.
+ *
+ * If you see a count in "EXECS" but not in the other columns, then your
+ * Ruby software is probably not running with the DTrace Ruby provider.
+ * See Ruby/Readme.
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+dtrace:::BEGIN
+{
+	execs = methods = objnew = objfree = gc = raised = rescue = 0;
+	lines = SCREEN + 1;
+	interval = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	secs = interval;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %8s %8s %8s %8s %6s %6s %6s\n", "TIME", "EXEC/s",
+	    "METHOD/s", "OBJNEW/s", "OBJFRE/s", "RAIS/s", "RESC/s", "GC/s");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Tally Data
+ */
+proc:::exec-success
+/execname == "ruby"/
+{
+	execs++;
+}
+
+ruby*:::function-entry
+{
+	methods++;
+}
+
+ruby*:::object-create-start
+{
+	objnew++;
+}
+
+ruby*:::object-free
+{
+	objfree++;
+}
+
+ruby*:::raise
+{
+	raised++;
+}
+
+ruby*:::rescue
+{
+	rescue++;
+}
+
+ruby*:::gc-begin
+{
+	gc++;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %8d %8d %8d %8d %6d %6d %6d\n", walltimestamp,
+	    execs / interval, methods / interval, objnew / interval,
+	    objfree / interval, raised / interval, rescue / interval,
+	    gc / interval);
+	execs = methods = objnew = objfree = gc = raised = rescue = 0;
+	secs = interval;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_syscalls.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_syscalls.d
new file mode 100755
index 0000000..6a6e4ba
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_syscalls.d
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_syscalls.d - count Ruby calls and syscalls using DTrace.
+ *                 Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_syscalls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: rb_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		TYPE		Type of call (method/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and method names are printed if available.
+ * The filename for syscalls may be printed as "ruby", if the program
+ * was invoked using the form "ruby filename" rather than running the
+ * program with an interpreter line.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+self string filename;
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby$target:::function-entry
+{
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	@calls[basename(copyinstr(arg2)), "method", this->name] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[basename(execname), "syscall", probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf("\nCalls for PID %d,\n\n", $target);
+	printf(" %-32s %-10s %-22s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa(" %-32s %-10s %-22s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_syscolors.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_syscolors.d
new file mode 100755
index 0000000..a728cc6
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_syscolors.d
@@ -0,0 +1,133 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_syscolors.d - trace Ruby method flow plus syscalls, in color.
+ *                  Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_syscolors.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: rb_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches Ruby method entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Ruby program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (method/line/syscall)
+ *		NAME		Ruby method or syscall name
+ *
+ * Filename and method names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	/*
+	 * The following are terminal color escape sequences.
+	 * Change them to whatever you prefer, eg HTML font tags.
+	 */
+        color_ruby = "\033[2;35m";		/* violet, faint */
+        color_line = "\033[1;35m";		/* violet, bold */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+ruby$target:::function-entry,
+ruby$target:::function-return,
+ruby$target:::line,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+ruby$target:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_ruby,
+	    cpu, pid, this->delta, basename(copyinstr(arg2)), arg3, "method",
+	    self->depth * 2, "", this->name, color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+ruby$target:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	self->depth--;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_ruby,
+	    cpu, pid, this->delta, basename(copyinstr(arg2)), arg3, "method",
+	    self->depth * 2, "", this->name, color_off);
+	self->last = timestamp;
+}
+
+ruby$target:::line
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-- %s\n", color_line,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg1, "line",
+	    self->depth * 2, "", color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth--;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Ruby/rb_who.d b/external/cddl/dtracetoolkit/dist/Ruby/rb_who.d
new file mode 100755
index 0000000..ecd889e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Ruby/rb_who.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_who.d - trace Ruby line execution by process using DTrace.
+ *            Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_who.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces Ruby activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of Ruby
+ *		UID		User ID of the owner
+ *		LINES		Number of times a line was executed
+ *		FILE		Pathname of the Ruby program
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::line
+{
+	@lines[pid, uid, copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %10s %s\n", "PID", "UID", "LINES", "FILE");
+	printa("   %6d %6d %@10d %s\n", @lines);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Shell/Readme b/external/cddl/dtracetoolkit/dist/Shell/Readme
new file mode 100644
index 0000000..9bf96ff
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Shell/Readme
@@ -0,0 +1,35 @@
+Shell - DTracing Shell Scripting
+
+   These scripts trace activity of various shell programming languages,
+   and make use of specific shell DTrace providers, which are either
+   integrated or available for download from the shells page listed below.
+   Each script has a prefix to make the shell language clear. 
+
+	http://www.opensolaris.org/os/community/dtrace/shells/
+
+   sh - the Bourne Shell. This provider was written by Alan Hargreaves and
+   is currently available both as a diff and in binary form from the shells
+   page.
+
+   Since the DTrace Shell providers are under development, there is a chance
+   that they have changed slightly by the time you are reading this, causing
+   these scripts to either break or behave oddly. Firstly, check for newer
+   versions of the DTraceToolkit; if it hasn't been updated and you need
+   to use these scripts immediately, then updating them shouldn't take
+   too long. The following was the state of the providers when these scripts
+   were written - check for changes and update the scripts accordingly,
+
+	provider sh {
+	    probe function-entry(file, function, lineno);
+	    probe function-return(file, function, rval);
+	    probe builtin-entry(file, function, lineno);
+	    probe builtin-return(file, function, rval);
+	    probe command-entry(file, function, lineno);
+	    probe command-return(file, function, rval);
+	    probe script-start(file);
+	    probe script-done(file, rval);
+	    probe subshell-entry(file, childpid);
+	    probe subshell-return(file, rval);
+	    probe line(file, lineno);
+	};
+
diff --git a/external/cddl/dtracetoolkit/dist/Shell/sh_calldist.d b/external/cddl/dtracetoolkit/dist/Shell/sh_calldist.d
new file mode 100755
index 0000000..888f30b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Shell/sh_calldist.d
@@ -0,0 +1,119 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_calldist.d - measure Bourne shell elapsed times for types of operation.
+ *                 Written for the sh DTrace provider.
+ *
+ * $Id: sh_calldist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_calldist.d 	# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for shell
+ * operations. Use sh_calltime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the shell or shellscript
+ *		2		Type of call (func/builtin/cmd)
+ *		3		Name of call
+ *
+ * Filename and call names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+sh*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+sh*:::builtin-entry
+{
+	self->builtin = timestamp;
+}
+
+sh*:::builtin-return
+/self->builtin/
+{
+	this->elapsed = timestamp - self->builtin;
+	self->builtin = 0;
+
+	@types[basename(copyinstr(arg0)), "builtin", copyinstr(arg1)] =
+	    quantize(this->elapsed / 1000);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+sh*:::command-entry
+{
+	self->command = timestamp;
+}
+
+sh*:::command-return
+/self->command/
+{
+	this->elapsed = timestamp - self->command;
+	self->command = 0;
+
+	@types[basename(copyinstr(arg0)), "cmd", copyinstr(arg1)] =
+	    quantize(this->elapsed / 1000);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("Elapsed times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("Exclusive function elapsed times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("Inclusive function elapsed times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Shell/sh_calls.d b/external/cddl/dtracetoolkit/dist/Shell/sh_calls.d
new file mode 100755
index 0000000..c462a4b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Shell/sh_calls.d
@@ -0,0 +1,72 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_calls.d - count Bourne calls (func/builtin/cmd/subsh) using DTrace.
+ *              Written for the sh DTrace provider.
+ *
+ * $Id: sh_calls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_calls.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		TYPE		Type of call (func/builtin/cmd/subsh)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::function-entry
+{
+	@calls[basename(copyinstr(arg0)), "func", copyinstr(arg1)] = count();
+}
+
+sh*:::builtin-entry
+{
+	@calls[basename(copyinstr(arg0)), "builtin", copyinstr(arg1)] = count();
+}
+
+sh*:::command-entry
+{
+	@calls[basename(copyinstr(arg0)), "cmd", copyinstr(arg1)] = count();
+}
+
+sh*:::subshell-entry
+/arg1 != 0/
+{
+	@calls[basename(copyinstr(arg0)), "subsh", "-"] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-22s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa(" %-22s %-10s %-32s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Shell/sh_calltime.d b/external/cddl/dtracetoolkit/dist/Shell/sh_calltime.d
new file mode 100755
index 0000000..2c9ac31
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Shell/sh_calltime.d
@@ -0,0 +1,136 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_calltime.d - measure Bourne shell elapsed times for types of operation.
+ *                 Written for the sh DTrace provider.
+ *
+ * $Id: sh_calltime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		TYPE		Type of call (func/builtin/cmd/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and call names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+sh*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+sh*:::builtin-entry
+{
+	self->builtin = timestamp;
+}
+
+sh*:::builtin-return
+/self->builtin/
+{
+	this->elapsed = timestamp - self->builtin;
+	self->builtin = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "builtin", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types[this->file, "builtin", this->name] = sum(this->elapsed);
+	@types["-", "total", "-"] = sum(this->elapsed);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+sh*:::command-entry
+{
+	self->command = timestamp;
+}
+
+sh*:::command-return
+/self->command/
+{
+	this->elapsed = timestamp - self->command;
+	self->command = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "cmd", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types[this->file, "cmd", this->name] = sum(this->elapsed);
+	@types["-", "total", "-"] = sum(this->elapsed);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("\nCounts,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nElapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Shell/sh_cpudist.d b/external/cddl/dtracetoolkit/dist/Shell/sh_cpudist.d
new file mode 100755
index 0000000..7d5f968
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Shell/sh_cpudist.d
@@ -0,0 +1,142 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_cpudist.d - measure Bourne shell on-CPU times for types of operation.
+ *                Written for the sh DTrace provider.
+ *
+ * $Id: sh_cpudist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_cpudist.d 		# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of on-CPU time for shell
+ * operations. Use sh_cputime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the shell or shellscript
+ *		2		Type of call (func/builtin/cmd)
+ *		3		Name of call
+ *
+ * Filename and call names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::function-entry
+{
+	self->depth++;
+	self->function[self->depth] = vtimestamp;
+	self->exclude[self->depth] = 0;
+}
+
+sh*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+sh*:::builtin-entry
+{
+	self->builtin = vtimestamp;
+}
+
+sh*:::builtin-return
+/self->builtin/
+{
+	this->oncpu = vtimestamp - self->builtin;
+	self->builtin = 0;
+
+	@types[basename(copyinstr(arg0)), "builtin", copyinstr(arg1)] =
+	    quantize(this->oncpu / 1000);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+sh*:::command-entry
+{
+	incmd[pid] = basename(copyinstr(arg0));
+	depth[pid] = self->depth;
+}
+
+sh*:::command-return
+{
+	incmd[pid] = 0;
+}
+
+proc:::exec-success
+{
+	/*
+	 * Due to thread timing after fork(), this probe can fire before
+	 * sh*:::command-entry has, which means we can't predicate this
+	 * exec() away just yet. Store the vtimestamp in case it is needed.
+	 */
+	self->command = vtimestamp;
+}
+
+proc:::exit
+/incmd[ppid] == NULL/
+{
+	self->command = 0;
+}
+
+proc:::exit
+/incmd[ppid] != NULL/
+{
+	this->oncpu = vtimestamp - self->command;
+	self->command = 0;
+
+	@types[incmd[ppid], "cmd", execname] = quantize(this->oncpu / 1000);
+
+	self->exclude[depth[ppid]] += this->oncpu;
+	incmd[ppid] = 0;
+	depth[ppid] = 0;
+}
+
+dtrace:::END
+{
+	printf("On-CPU times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("Exclusive function on-CPU times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("Inclusive function on-CPU times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Shell/sh_cputime.d b/external/cddl/dtracetoolkit/dist/Shell/sh_cputime.d
new file mode 100755
index 0000000..83484cf
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Shell/sh_cputime.d
@@ -0,0 +1,158 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_cputime.d - measure Bourne shell on-CPU times for types of operation.
+ *                Written for the sh DTrace provider.
+ *
+ * $Id: sh_cputime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_cputime.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		TYPE		Type of call (func/builtin/cmd/total)
+ *		NAME		Name of call
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and call names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::function-entry
+{
+	self->depth++;
+	self->function[self->depth] = vtimestamp;
+	self->exclude[self->depth] = 0;
+}
+
+sh*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+sh*:::builtin-entry
+{
+	self->builtin = vtimestamp;
+}
+
+sh*:::builtin-return
+/self->builtin/
+{
+	this->oncpu = vtimestamp - self->builtin;
+	self->builtin = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "builtin", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types[this->file, "builtin", this->name] = sum(this->oncpu);
+	@types["-", "total", "-"] = sum(this->oncpu);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+sh*:::command-entry
+{
+	incmd[pid] = basename(copyinstr(arg0));
+	depth[pid] = self->depth;
+}
+
+sh*:::command-return
+{
+	incmd[pid] = 0;
+}
+
+proc:::exec-success
+{
+	/*
+	 * Due to thread timing after fork(), this probe can fire before
+	 * sh*:::command-entry has, which means we can't predicate this
+	 * exec() away just yet. Store the vtimestamp in case it is needed.
+	 */
+	self->command = vtimestamp;
+}
+
+proc:::exit
+/incmd[ppid] == NULL/
+{
+	self->command = 0;
+}
+
+proc:::exit
+/incmd[ppid] != NULL/
+{
+	this->oncpu = vtimestamp - self->command;
+	self->command = 0;
+
+	@num[incmd[ppid], "cmd", execname] = count();
+	@num["-", "total", "-"] = count();
+	@types[incmd[ppid], "cmd", execname] = sum(this->oncpu);
+	@types["-", "total", "-"] = sum(this->oncpu);
+
+	self->exclude[depth[ppid]] += this->oncpu;
+	incmd[ppid] = 0;
+	depth[ppid] = 0;
+}
+
+dtrace:::END
+{
+	printf("\nCounts,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nOn-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Shell/sh_flow.d b/external/cddl/dtracetoolkit/dist/Shell/sh_flow.d
new file mode 100755
index 0000000..4c8e9e1b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Shell/sh_flow.d
@@ -0,0 +1,85 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_flow.d - snoop Bourne shell execution showing function flow using DTrace.
+ *             Written for the sh DTrace provider.
+ *
+ * $Id: sh_flow.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_flow.d			# hit Ctrl-C to end
+ *
+ * This watches shell function entries and returns, and indents child
+ * function calls. Shell builtins are also printed.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		NAME		Shell function, builtin or command name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *		>		builtin
+ *		|		external command
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	self->depth = 0;
+	printf("%3s %-16s %-16s -- %s\n", "C", "TIME(us)", "FILE", "NAME");
+}
+
+sh*:::function-entry
+{
+	printf("%3d %-16d %-16s %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+	self->depth++;
+}
+
+sh*:::function-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+}
+
+sh*:::builtin-entry
+{
+	printf("%3d %-16d %-16s %*s> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+}
+
+sh*:::command-entry
+{
+	printf("%3d %-16d %-16s %*s| %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Shell/sh_flowinfo.d b/external/cddl/dtracetoolkit/dist/Shell/sh_flowinfo.d
new file mode 100755
index 0000000..f4b31ad
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Shell/sh_flowinfo.d
@@ -0,0 +1,152 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_flowinfo.d - snoop Bourne shell flow with additional info.
+ *                 Written for the sh DTrace provider.
+ *
+ * $Id: sh_flowinfo.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_flowinfo.d			# hit Ctrl-C to end
+ *
+ * This watches shell function entries and returns, and indents child
+ * function calls. Shell builtins and external commands are also printed.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the shell script
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func/builtin/cmd/subsh)
+ *		NAME		Shell function, builtin or command name
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	self->depth = 0;
+	printf("%3s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+sh*:::function-entry,
+sh*:::function-return,
+sh*:::builtin-entry,
+sh*:::builtin-return,
+sh*:::command-entry,
+sh*:::command-return,
+sh*:::subshell-entry,
+sh*:::subshell-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+sh*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s<- %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "func", self->depth * 2,
+	    "", copyinstr(arg1));
+	self->last = timestamp;
+}
+
+sh*:::builtin-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), arg2, "builtin",
+	    self->depth * 2, "", copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh*:::builtin-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s<- %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "builtin",
+	    self->depth * 2, "", copyinstr(arg1));
+	self->last = timestamp;
+}
+
+sh*:::command-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), arg2, "cmd",
+	    self->depth * 2, "", copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh*:::command-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s<- %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "cmd",
+	    self->depth * 2, "", copyinstr(arg1));
+	self->last = timestamp;
+}
+
+sh*:::subshell-entry
+/arg1 != 0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s-> pid %d\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "subsh",
+	    self->depth * 2, "", arg1);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh*:::subshell-return
+/self->last/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s<- = %d\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "subsh",
+	    self->depth * 2, "", arg1);
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Shell/sh_flowtime.d b/external/cddl/dtracetoolkit/dist/Shell/sh_flowtime.d
new file mode 100755
index 0000000..bbeb2ea
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Shell/sh_flowtime.d
@@ -0,0 +1,118 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_flowtime.d - snoop Bourne shell execution with flow and delta times.
+ *                 Written for the sh DTrace provider.
+ *
+ * $Id: sh_flowtime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_flowtime.d			# hit Ctrl-C to end
+ *
+ * This watches shell function entries and returns, and indents child
+ * function calls. Shell builtins are also printed.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		NAME		Shell function or builtin name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *		 >		builtin
+ *		 |		external command
+ *
+ * DELTAs:
+ *		->		previous line to the start of this function
+ *		<-		previous line to the end of this function
+ *		>		previous line to the end of this builtin
+ *		|		previous line to the end of this command
+ *
+ * See sh_flowinfo.d for more verbose and more straightforward delta times.
+ *
+ * Filename and function names are printed if available.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+self uint64_t last;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s %9s -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "NAME");
+}
+
+sh*:::function-entry,
+sh*:::function-return,
+sh*:::builtin-return,
+sh*:::command-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+sh*:::function-entry
+{
+	this->elapsed = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), this->elapsed, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh*:::function-return
+{
+	this->elapsed = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %9d %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), this->elapsed, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->last = timestamp;
+}
+
+sh*:::builtin-return
+{
+	this->elapsed = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), this->elapsed, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->last = timestamp;
+}
+
+sh*:::command-return
+{
+	this->elapsed = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s| %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), this->elapsed, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Shell/sh_lines.d b/external/cddl/dtracetoolkit/dist/Shell/sh_lines.d
new file mode 100755
index 0000000..bb44652
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Shell/sh_lines.d
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_lines.d - trace Bourne shell line execution using DTrace.
+ *              Written for the sh DTrace provider.
+ *
+ * $Id: sh_lines.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_lines.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		LINE		Line number
+ *		COUNT		Number of times a line was executed
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::line
+{
+	@calls[basename(copyinstr(arg0)), arg1] = count();
+}
+
+dtrace:::END
+{
+	printf(" %32s:%-6s %10s\n", "FILE", "LINE", "COUNT");
+	printa(" %32s:%-6d %@10d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Shell/sh_pidcolors.d b/external/cddl/dtracetoolkit/dist/Shell/sh_pidcolors.d
new file mode 100755
index 0000000..992881c
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Shell/sh_pidcolors.d
@@ -0,0 +1,203 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_pidcolors.d - Demonstration of deeper DTrace Bourne shell analysis.
+ *                  Written for the sh DTrace provider.
+ *
+ * $Id: sh_pidcolors.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: sh_pidcolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This extends sh_syscolors.d by including some "pid" provider tracing
+ * as a starting point for deeper analysis. Currently it adds the probes,
+ *
+ *	pid$target:a.out:e*:entry,
+ *	pid$target:a.out:e*:return
+ *
+ * which means, all functions from the /usr/bin/sh binary that begin with
+ * the letter "e". This adds about 34 probes. Customise it to whichever
+ * parts of /usr/bin/sh or the system libraries you are interested in.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the shell script
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func/builtin/cmd/line/shell)
+ *		NAME		Shell function, builtin or command name
+ *
+ * The filename for syscalls may be printed as the shell name, if the
+ * script was invoked using the form "shell filename" rather than running
+ * the script with an interpreter line.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+        color_shell = "\033[2;35m";		/* violet, faint */
+        color_line = "\033[1;35m";		/* violet, bold */
+        color_lib = "\033[2;34m";		/* blue, faint */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+sh$target:::function-entry,
+sh$target:::function-return,
+sh$target:::builtin-entry,
+sh$target:::command-entry,
+syscall:::entry,
+syscall:::return,
+/* Customize Here, */
+pid$target:a.out:e*:entry,
+pid$target:a.out:e*:return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+sh$target:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::builtin-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "builtin",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::builtin-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "builtin",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::command-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "cmd",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::command-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "cmd",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::line
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-- %s\n", color_line,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg1, "line",
+	    self->depth * 2, "", color_off);
+	self->last = timestamp;
+}
+
+/* Customise Here, */
+pid$target:a.out:e*:entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_lib,
+	    cpu, pid, this->delta, basename(execname), "sh",
+	    self->depth * 2, "", probefunc, color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+/* Customise Here, */
+pid$target:a.out:e*:return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_lib,
+	    cpu, pid, this->delta, basename(execname), "sh",
+	    self->depth * 2, "", probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, basename(execname), "syscall",
+	    self->depth * 2, "", probefunc, color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, basename(execname), "syscall",
+	    self->depth * 2, "", probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Shell/sh_stat.d b/external/cddl/dtracetoolkit/dist/Shell/sh_stat.d
new file mode 100755
index 0000000..e1e6a73
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Shell/sh_stat.d
@@ -0,0 +1,133 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_stat.d - Bourne shell operation stats using DTrace.
+ *             Written for the sh DTrace provider.
+ *
+ * $Id: sh_stat.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all sh processes on the system that are running
+ * with sh provider support.
+ *
+ * USAGE: sh_stat.d [interval [count]]
+ *
+ * FIELDS:
+ *		EXEC/s		Bourne shells executed per second, including
+ *				those without sh provider support
+ *		FUNC/s		Functions called, per second
+ *		BLTIN/s		Builtins called, per second
+ *		SUB-SH/s	Sub-shells called, per second
+ *		CMD/s		External commands called, per second
+ *
+ * The numbers are counts for the interval specified. The default interval
+ * is 1 second.
+ *
+ * If you see a count in "EXECS" but not in the other columns, then sh
+ * scripts may be running without the DTrace sh provider. See Shell/Readme.
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+dtrace:::BEGIN
+{
+	execs = funcs = builtins = subs = cmds = 0;
+	lines = SCREEN + 1;
+	interval = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	secs = interval;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %8s %8s %8s %8s %8s\n", "TIME", "EXEC/s", "FUNCS/s",
+	    "BLTINS/s", "SUB-SH/s", "CMD/s");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Tally Data
+ */
+proc:::exec-success
+/execname == "sh"/
+{
+	execs++;
+}
+
+sh*:::function-entry
+{
+	funcs++;
+}
+
+sh*:::builtin-entry
+{
+	builtins++;
+}
+
+sh*:::subshell-entry
+/arg0 != 0/
+{
+	subs++;
+}
+
+sh*:::command-entry
+{
+	cmds++;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %8d %8d %8d %8d %8d\n", walltimestamp, execs / interval,
+	    funcs / interval, builtins / interval, subs / interval,
+	    cmds / interval);
+	execs = funcs = builtins = subs = cmds = 0;
+	secs = interval;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Shell/sh_syscalls.d b/external/cddl/dtracetoolkit/dist/Shell/sh_syscalls.d
new file mode 100755
index 0000000..3a5ccc9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Shell/sh_syscalls.d
@@ -0,0 +1,83 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_syscalls.d - count Bourne calls and syscalls using DTrace.
+ *                 Written for the sh DTrace provider.
+ *
+ * $Id: sh_syscalls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: sh_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		TYPE		Type of call (func/builtin/cmd/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and function names are printed if available.
+ * The filename for syscalls may be printed as the shell name, if the
+ * script was invoked using the form "shell filename" rather than running
+ * the script with an interpreter line.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+self string filename;
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh$target:::function-entry,
+sh$target:::builtin-entry,
+sh$target:::command-entry
+/self->filename == NULL/
+{
+	self->filename = basename(copyinstr(arg0));
+}
+
+sh$target:::function-entry
+{
+	@calls[self->filename, "func", copyinstr(arg1)] = count();
+}
+
+sh$target:::builtin-entry
+{
+	@calls[self->filename, "builtin", copyinstr(arg1)] = count();
+}
+
+sh$target:::command-entry
+{
+	@calls[self->filename, "cmd", copyinstr(arg1)] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[basename(execname), "syscall", probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf("\nCalls for PID %d,\n\n", $target);
+	printf(" %-32s %-10s %-22s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa(" %-32s %-10s %-22s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Shell/sh_syscolors.d b/external/cddl/dtracetoolkit/dist/Shell/sh_syscolors.d
new file mode 100755
index 0000000..c279911
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Shell/sh_syscolors.d
@@ -0,0 +1,169 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_syscolors.d - trace Bourne shell flow plus syscalls, in color.
+ *                  Written for the sh DTrace provider.
+ *
+ * $Id: sh_syscolors.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: sh_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches shell function entries and returns, and indents child
+ * function calls. Shell builtins, commands and lines are also printed.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the shell script
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func/builtin/cmd/line/shell)
+ *		NAME		Shell function, builtin or command name
+ *
+ * The filename for syscalls may be printed as the shell name, if the
+ * script was invoked using the form "shell filename" rather than running
+ * the script with an interpreter line.
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+        color_shell = "\033[2;35m";		/* violet, faint */
+        color_line = "\033[1;35m";		/* violet, bold */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+sh$target:::function-entry,
+sh$target:::function-return,
+sh$target:::builtin-entry,
+sh$target:::command-entry,
+sh$target:::line,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+sh$target:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::builtin-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "builtin",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::builtin-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "builtin",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::command-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "cmd",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::command-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "cmd",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::line
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-- %s\n", color_line,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg1, "line",
+	    self->depth * 2, "", color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, basename(execname), "syscall",
+	    self->depth * 2, "", probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, basename(execname), "syscall",
+	    self->depth * 2, "", probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Shell/sh_wasted.d b/external/cddl/dtracetoolkit/dist/Shell/sh_wasted.d
new file mode 100755
index 0000000..5b19b97
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Shell/sh_wasted.d
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_wasted.d - measure Bourne shell elapsed times for "wasted" commands.
+ *               Written for the sh DTrace provider.
+ *
+ * $Id: sh_wasted.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: sh_wasted.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This script measures "wasted" commands - those which are called externally
+ * but are in fact builtins to the shell. Ever seen a script which calls
+ * /usr/bin/echo needlessly? This script measures that cost.
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		NAME		Name of call
+ *		TIME		Total elapsed time for calls (us)
+ *
+ * IDEA: Mike Shapiro
+ *
+ * Filename and call names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	isbuiltin["echo"] = 1;
+	isbuiltin["test"] = 1;
+	/* add builtins here */
+
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	self->start = timestamp;
+}
+
+sh$target:::command-entry
+{
+	self->command = timestamp;
+}
+
+sh$target:::command-return
+{
+	this->elapsed = timestamp - self->command;
+	this->path = copyinstr(arg1);
+	this->cmd = basename(this->path);
+}
+
+sh$target:::command-return
+/self->command && !isbuiltin[this->cmd]/
+{
+	@types_cmd[basename(copyinstr(arg0)), this->path] = sum(this->elapsed);
+	self->command = 0;
+}
+
+sh$target:::command-return
+/self->command/
+{
+	@types_wasted[basename(copyinstr(arg0)), this->path] =
+	    sum(this->elapsed);
+	self->command = 0;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
+
+dtrace:::END
+{
+	this->elapsed = (timestamp - self->start) / 1000;
+	printf("Script duration: %d us\n", this->elapsed);
+
+	normalize(@types_cmd, 1000);
+	printf("\nExternal command elapsed times,\n");
+	printf("   %-30s %-22s %8s\n", "FILE", "NAME", "TIME(us)");
+	printa("   %-30s %-22s %@8d\n", @types_cmd);
+
+	normalize(@types_wasted, 1000);
+	printf("\nWasted command elapsed times,\n");
+	printf("   %-30s %-22s %8s\n", "FILE", "NAME", "TIME(us)");
+	printa("   %-30s %-22s %@8d\n", @types_wasted);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Shell/sh_who.d b/external/cddl/dtracetoolkit/dist/Shell/sh_who.d
new file mode 100755
index 0000000..5b64267
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Shell/sh_who.d
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_who.d - trace Bourne shell line execution by process using DTrace.
+ *            Written for the sh DTrace provider.
+ *
+ * $Id: sh_who.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_who.d	 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of the shell
+ *		UID		User ID of the owner
+ *		LINES		Number of times a line was executed
+ *		FILE		Pathname of the shell or shellscript
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::line
+{
+	@lines[pid, uid, copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %s\n", "PID", "UID", "LINES", "FILE");
+	printa("   %6d %6d %@6d %s\n", @lines);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Snippits/Readme b/external/cddl/dtracetoolkit/dist/Snippits/Readme
new file mode 100644
index 0000000..b54dc77
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Snippits/Readme
@@ -0,0 +1,11 @@
+Snippits - DTrace code snippits
+
+   This directory has useful snippits of D scripting in seperate files.
+
+   When coding in DTrace, I frequently refer to the same chunks of code
+   from the same scripts, when I need to do certain things that I have
+   solved in the past. I also refer other people to them when asked.
+   This directory is a library for such "snippits" of code.
+
+   This directory does not contain runnable DTrace scripts.
+
diff --git a/external/cddl/dtracetoolkit/dist/Snippits/fd2pathname.txt b/external/cddl/dtracetoolkit/dist/Snippits/fd2pathname.txt
new file mode 100644
index 0000000..b056e13
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Snippits/fd2pathname.txt
@@ -0,0 +1,32 @@
+You have a file descriptor (probably from a syscall), and you want the
+corresponding pathname.
+
+If you are on newer versions of DTrace, there is the fds[] array,
+
+# dtrace -n 'syscall::read:entry { @[fds[arg0].fi_pathname] = count(); }'
+dtrace: description 'syscall::read:entry ' matched 1 probe
+^C
+
+  /etc/minor_perm                                                   2
+  /etc/mnttab                                                       2
+  /etc/motd                                                         2
+  /etc/magic                                                        4
+  /usr/sbin/clri                                                    5
+  /devices/pseudo/clone@0:ptm                                       6
+  /sbin/mount                                                       6
+  /dev/pts/28                                                       7
+  /devices/pseudo/consms@0:mouse                                   31
+  /devices/pseudo/conskbd@0:kbd                                    47
+  <unknown>                                                       351
+
+easy.
+
+but if you are on an older version of DTrace, try this to convert from
+this->fd to self->vpath,
+
+        this->filep =
+	    curthread->t_procp->p_user.u_finfo.fi_list[this->fd].uf_file;
+        this->vnodep = this->filep != 0 ? this->filep->f_vnode : 0;
+        self->vpath = this->vnodep ? (this->vnodep->v_path != 0 ?
+            cleanpath(this->vnodep->v_path) : "<unknown>") : "<unknown>";
+
diff --git a/external/cddl/dtracetoolkit/dist/System/Readme b/external/cddl/dtracetoolkit/dist/System/Readme
new file mode 100644
index 0000000..3d739da
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/System/Readme
@@ -0,0 +1,3 @@
+System - System based analysis
+
+   This would include measuring system wide activity.
diff --git a/external/cddl/dtracetoolkit/dist/System/sar-c.d b/external/cddl/dtracetoolkit/dist/System/sar-c.d
new file mode 100755
index 0000000..40c4530
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/System/sar-c.d
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -s
+/*
+ * sar-c.d - sar -c demo in DTrace.
+ *           Written using DTrace (Solaris 10 3/05).
+ *
+ * This has been written to demonstrate fetching similar data as sar -c
+ * from DTrace. This program is intended as a starting point for other
+ * DTrace scripts, by beginning with familiar statistics.
+ *
+ * $Id: sar-c.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	sar-c.d
+ *
+ * FIELDS:
+ *		scall/s		System calls
+ *		sread/s		reads
+ *		swrit/s		writes
+ *		fork/s		forks
+ *		exec/s		execs
+ *		rchar/s		read characters
+ *		wchar/s		write characters
+ *
+ * IDEA: David Rubio, who also wrote the original.
+ *
+ * NOTES:
+ *  As this program does not use Kstat, there is no summary since boot line.
+ *
+ * SEE ALSO:	sar(1)
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 12-Jun-2005  Brendan Gregg   Created this.
+ * 12-Jun-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+inline int SCREEN = 21;
+
+/*
+ * Initialise variables
+ */
+dtrace:::BEGIN
+{
+	scall = 0; sread = 0; swrit = 0; fork = 0; exec = 0;
+	rchar = 0; wchar = 0;
+	lines = SCREEN + 1;
+}
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN,
+tick-1sec
+/lines++ > SCREEN/
+{
+	printf("%-20s %7s %7s %7s %7s %7s %8s %8s\n",
+	    "Time", "scall/s", "sread/s", "swrit/s", "fork/s",
+	    "exec/s", "rchar/s", "wchar/s");
+	lines = 0;
+}
+
+/*
+ * Probe events
+ */
+syscall:::entry    { scall++; }
+sysinfo:::sysread  { sread++; }
+sysinfo:::syswrite { swrit++; }
+sysinfo:::sysfork  { fork++;  }
+sysinfo:::sysvfork { fork++;  }
+sysinfo:::sysexec  { exec++;  }
+sysinfo:::readch   { rchar += arg0; }
+sysinfo:::writech  { wchar += arg0; }
+
+/*
+ * Print output line
+ */
+profile:::tick-1sec
+{
+	/* print line */
+	printf("%20Y %7d %7d %7d %4d.00 %4d.00 %8d %8d\n",
+	    walltimestamp, scall, sread, swrit, fork, exec, rchar, wchar);
+
+	/* clear counters */
+	scall = 0; sread = 0; swrit = 0; fork = 0; exec = 0;
+	rchar = 0; wchar = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/System/syscallbysysc.d b/external/cddl/dtracetoolkit/dist/System/syscallbysysc.d
new file mode 100755
index 0000000..33be6d1
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/System/syscallbysysc.d
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * syscallbysysc.d - report on syscalls by syscall. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: syscallbysysc.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ */
+
+syscall:::entry { @num[probefunc] = count(); }
diff --git a/external/cddl/dtracetoolkit/dist/System/topsyscall b/external/cddl/dtracetoolkit/dist/System/topsyscall
new file mode 100755
index 0000000..144d086
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/System/topsyscall
@@ -0,0 +1,184 @@
+#!/usr/bin/ksh
+#
+# topsyscall - display top syscalls by syscall name.
+#              Written using DTrace (Solaris 10 3/05).
+#
+# This program continually prints a report of the top system calls,
+# and refreshes the display every 1 second or as specified at the
+# command line.
+#
+# $Id: topsyscall,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# USAGE:        topsyscall [-Cs] [interval [count]]
+#
+#		    -C		# don't clear the screen
+#		    -s		# print per second values
+#
+# FIELDS:
+#		load avg	load averages, see uptime(1)
+#		syscalls	total syscalls in this interval
+#		syscalls/s	syscalls per second
+#		SYSCALL		system call name
+#		COUNT		total syscalls in this interval
+#		COUNT/s		syscalls per second
+#
+# INSPIRATION:  top(1) by William LeFebvre
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 13-Jun-2005	Brendan Gregg	Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+count=-1; interval=1; opt_persec=0; opt_clear=1
+
+### Process options
+while getopts Chs name
+do
+        case $name in
+        C)      opt_clear=0 ;;
+        s)      opt_persec=1 ;;
+        h|?)    cat <<-END >&2
+		USAGE: topsyscall [-s] [interval [count]]
+		           -C          # don't clear the screen
+		           -s          # print per second values
+		   eg,
+		       topsyscall      # default, 1 second updates
+		       topsyscall 5    # 5 second updates
+		END
+		exit 1
+        esac
+done
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_clear )); then
+        clearstr=`clear`
+else
+        clearstr=.
+fi
+
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+ #pragma D option destructive
+
+ /* constants */
+ inline int OPT_clear  = '$opt_clear';
+ inline int OPT_persec = '$opt_persec';
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$count';
+ inline int SCREEN     = 20;
+ inline string CLEAR   = "'$clearstr'";
+
+ /* variables */
+ dtrace:::BEGIN
+ {
+	secs = INTERVAL;
+	counts = COUNTER;
+	printf("Tracing... Please wait.\n");
+ }
+
+ /* record syscall event */
+ syscall:::entry
+ {
+	@Name[probefunc] = count();
+	@Total = count();
+ }
+
+ /* timer */
+ profile:::tick-1sec
+ {
+        secs--;
+ }
+
+ /* update screen */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+        /* fetch load averages */
+        this->load1a  = `hp_avenrun[0] / 65536;
+        this->load5a  = `hp_avenrun[1] / 65536;
+        this->load15a = `hp_avenrun[2] / 65536;
+        this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+        this->load5b  = ((`hp_avenrun[1] % 65536) * 100) / 65536;
+        this->load15b = ((`hp_avenrun[2] % 65536) * 100) / 65536;
+
+	/* clear screen */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+
+        /* print load average */
+        printf("%Y, load average: %d.%02d, %d.%02d, %d.%02d",
+            walltimestamp, this->load1a, this->load1b, this->load5a,
+            this->load5b, this->load15a, this->load15b);
+
+	/* calculate per second values if needed */
+	OPT_persec ? normalize(@Total, INTERVAL) : 1;
+	OPT_persec ? normalize(@Name, INTERVAL) : 1;
+
+	/* print syscall count */
+	printf("   %s: ", OPT_persec ? "syscalls/s" : "syscalls");
+	printa("%@d\n",@Total);
+
+	/* print report */
+	trunc(@Name, SCREEN);
+	printf("\n   %-25s %12s\n", "SYSCALL", 
+	    OPT_persec ? "COUNT/s" : "COUNT");
+	printa("   %-25s %@12d\n", @Name);
+	printf("\n");
+
+	/* reset variables */
+	trunc(@Name);
+	clear(@Total);
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /*
+  * End of program
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+
+ /*
+  * Cleanup for Ctrl-C
+  */
+ dtrace:::END
+ {
+	trunc(@Name);
+	trunc(@Total);
+ }
+'
+
diff --git a/external/cddl/dtracetoolkit/dist/System/uname-a.d b/external/cddl/dtracetoolkit/dist/System/uname-a.d
new file mode 100755
index 0000000..27ded90
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/System/uname-a.d
@@ -0,0 +1,53 @@
+#!/usr/sbin/dtrace -s
+/*
+ * uname-a.d - "uname -a" demo in DTrace.
+ *             Written using DTrace (Solaris 10 3/05).
+ *
+ * This has been written to demonstrate fetching the "uname -a" info
+ * from a DTrace script, which turns out to be all kernel variables.
+ * This is intended as a starting point for other DTrace scripts, by
+ * beginning with familiar statistics.
+ *
+ * $Id: uname-a.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	uname-a.d
+ *
+ * FIELDS:	See uname(1) manpage for documentation.
+ *
+ * SEE ALSO:	uname
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * 24-Jul-2005	Brendan Gregg	Created this.
+ * 24-Jul-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option bufsize=8k
+
+/* print system info */
+dtrace:::BEGIN
+{
+	printf("%s %s %s %s %s %s %s",
+	    `utsname.sysname,
+	    `utsname.nodename,
+	    `utsname.release,
+	    `utsname.version,
+	    `utsname.machine,
+	    `architecture,
+	    `platform);
+
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Tcl/Readme b/external/cddl/dtracetoolkit/dist/Tcl/Readme
new file mode 100644
index 0000000..68c7352
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Tcl/Readme
@@ -0,0 +1,39 @@
+Tcl - DTracing Tcl Programs
+
+   These scripts trace activity of the Tcl programming language, making use
+   of the Tcl DTrace provider which was integrated into the Tcl source in
+   version tcl8.4.16. See the Tcl DTrace wiki page for details:
+
+	http://wiki.tcl.tk/19923
+
+   This provider was written by Daniel Steffen and is currently available
+   by downloading and compiling the Tcl source with the --enable-dtrace
+   option to configure.
+
+   Since the DTrace Tcl provider could be developed a little further, there is
+   a chance that it has changed slightly by the time you are reading this,
+   causing these scripts to either break or behave oddly. Firstly, check for
+   newer versions of the DTraceToolkit; if it hasn't been updated and you need
+   to use these scripts immediately, then updating them shouldn't take
+   too long. The following was the state of the provider when these scripts
+   were written - check for changes and update the scripts accordingly,
+
+	provider tcl {
+	    probe proc-entry(procname, argc, argv);
+	    probe proc-return(procname, retcode);
+	    probe proc-result(procname, retcode, retval, retobj);
+	    probe proc-args(procname, args, ...);
+	    probe cmd-entry(cmdname, argc, argv);
+	    probe cmd-return(cmdname, retval);
+	    probe cmd-args(procname, args, ...);
+	    probe inst-start(instname, depth, stackobj);
+	    probe inst-done(instname, depth, stackobj);
+	    probe obj-create(object);
+	    probe obj-free(object);
+	    proobe tcl-probe(strings, ...);
+	};
+
+   Update: it looks like two new probes have recently been added to the
+   provider: proc-info and cmd-info. I'll need to update these scripts to
+   make use of these new probes.
+
diff --git a/external/cddl/dtracetoolkit/dist/Tcl/tcl_calldist.d b/external/cddl/dtracetoolkit/dist/Tcl/tcl_calldist.d
new file mode 100755
index 0000000..806c347
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Tcl/tcl_calldist.d
@@ -0,0 +1,111 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * tcl_calldist.d - measure Tcl elapsed time for different types of operation.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_calldist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: tcl_calldist.d [top]	# hit Ctrl-C to end
+ *    eg,
+ *        tcl_calldist.d	# default, truncate to 10 lines
+ *        tcl_calldist.d 25	# truncate each report section to 25 lines
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * FIELDS:
+ *		1		Process ID
+ *		2		Type of call (proc/cmd/total)
+ *		3		Name of call
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+tcl*:::proc-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->proc[self->depth] = timestamp;
+}
+
+tcl*:::proc-return
+/self->proc[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->proc[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->proc[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@types_incl[pid, "proc", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[pid, "proc", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+tcl*:::cmd-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->cmd[self->depth] = timestamp;
+}
+
+tcl*:::cmd-return
+/self->cmd[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->cmd[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->cmd[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@types_incl[pid, "cmd", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[pid, "cmd", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	trunc(@types_excl, top);
+	printf("\nTop %d exclusive elapsed times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	printf("\nTop %d inclusive elapsed times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Tcl/tcl_calls.d b/external/cddl/dtracetoolkit/dist/Tcl/tcl_calls.d
new file mode 100755
index 0000000..c01efb0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Tcl/tcl_calls.d
@@ -0,0 +1,63 @@
+#!/usr/sbin/dtrace -ZCs
+/*
+ * tcl_calls.d - count Tcl calls (proc/cmd) using DTrace.
+ *               Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_calls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_calls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (see below)
+ *		NAME		Name of proc or cmd call
+ *		COUNT		Number of calls during sample
+ *
+ * TYPEs:
+ *		proc		procedure
+ *		cmd		command
+ *
+ * PORTIONS: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+tcl*:::proc-entry
+{
+	@calls[pid, "proc", copyinstr(arg0)] = count();
+}
+
+tcl*:::cmd-entry
+{
+	@calls[pid, "cmd", copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s %-8s %-52s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa(" %6d %-8s %-52s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Tcl/tcl_calltime.d b/external/cddl/dtracetoolkit/dist/Tcl/tcl_calltime.d
new file mode 100755
index 0000000..f786601
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Tcl/tcl_calltime.d
@@ -0,0 +1,123 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * tcl_calltime.d - measure Tcl elapsed times for different types of operation.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_calltime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: tcl_calltime.d [top]	# hit Ctrl-C to end
+ *    eg,
+ *        tcl_calltime.d	# default, truncate to 10 lines
+ *        tcl_calltime.d 25	# truncate each report section to 25 lines
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (proc/cmd/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+tcl*:::proc-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->proc[self->depth] = timestamp;
+}
+
+tcl*:::proc-return
+/self->proc[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->proc[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->proc[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@num[pid, "proc", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "proc", this->name] = sum(this->elapsed_incl);
+	@types_excl[pid, "proc", this->name] = sum(this->elapsed_excl);
+	@types_excl[0, "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+tcl*:::cmd-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->cmd[self->depth] = timestamp;
+}
+
+tcl*:::cmd-return
+/self->cmd[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->cmd[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->cmd[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@num[pid, "cmd", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "cmd", this->name] = sum(this->elapsed_incl);
+	@types_excl[pid, "cmd", this->name] = sum(this->elapsed_excl);
+	@types_excl[0, "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	trunc(@num, top);
+	printf("\nTop %d counts,\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa("   %6d %-10s %-48s %@8d\n", @num);
+
+	trunc(@types_excl, top);
+	normalize(@types_excl, 1000);
+	printf("\nTop %d exclusive elapsed times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	normalize(@types_incl, 1000);
+	printf("\nTop %d inclusive elapsed times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Tcl/tcl_cpudist.d b/external/cddl/dtracetoolkit/dist/Tcl/tcl_cpudist.d
new file mode 100755
index 0000000..33e77f0
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Tcl/tcl_cpudist.d
@@ -0,0 +1,111 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * tcl_cpudist.d - measure Tcl on-CPU time for different types of operation.
+ *                 Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_cpudist.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: tcl_cpudist.d [top]	# hit Ctrl-C to end
+ *    eg,
+ *        tcl_cpudist.d		# default, truncate to 10 lines
+ *        tcl_cpudist.d 25	# truncate each report section to 25 lines
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * FIELDS:
+ *		1		Process ID
+ *		2		Type of call (proc/cmd/total)
+ *		3		Name of call
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+tcl*:::proc-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->proc[self->depth] = vtimestamp;
+}
+
+tcl*:::proc-return
+/self->proc[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->proc[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->proc[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@types_incl[pid, "proc", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[pid, "proc", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+tcl*:::cmd-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->cmd[self->depth] = vtimestamp;
+}
+
+tcl*:::cmd-return
+/self->cmd[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->cmd[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->cmd[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@types_incl[pid, "cmd", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[pid, "cmd", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	trunc(@types_excl, top);
+	printf("\nTop %d exclusive on-CPU times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	printf("\nTop %d inclusive on-CPU times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Tcl/tcl_cputime.d b/external/cddl/dtracetoolkit/dist/Tcl/tcl_cputime.d
new file mode 100755
index 0000000..a0ac536
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Tcl/tcl_cputime.d
@@ -0,0 +1,123 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * tcl_cputime.d - measure Tcl on-CPU times for different types of operation.
+ *                 Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_cputime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE: tcl_cputime.d [top]	# hit Ctrl-C to end
+ *    eg,
+ *        tcl_cputime.d		# default, truncate to 10 lines
+ *        tcl_cputime.d 25	# truncate each report section to 25 lines
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (proc/cmd/total)
+ *		NAME		Name of call
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+tcl*:::proc-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->proc[self->depth] = vtimestamp;
+}
+
+tcl*:::proc-return
+/self->proc[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->proc[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->proc[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@num[pid, "proc", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "proc", this->name] = sum(this->oncpu_incl);
+	@types_excl[pid, "proc", this->name] = sum(this->oncpu_excl);
+	@types_excl[0, "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+tcl*:::cmd-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->cmd[self->depth] = vtimestamp;
+}
+
+tcl*:::cmd-return
+/self->cmd[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->cmd[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->cmd[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@num[pid, "cmd", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "cmd", this->name] = sum(this->oncpu_incl);
+	@types_excl[pid, "cmd", this->name] = sum(this->oncpu_excl);
+	@types_excl[0, "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	trunc(@num, top);
+	printf("\nTop %d counts,\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa("   %6d %-10s %-48s %@8d\n", @num);
+
+	trunc(@types_excl, top);
+	normalize(@types_excl, 1000);
+	printf("\nTop %d exclusive on-CPU times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	normalize(@types_incl, 1000);
+	printf("\nTop %d inclusive on-CPU times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_incl);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Tcl/tcl_flow.d b/external/cddl/dtracetoolkit/dist/Tcl/tcl_flow.d
new file mode 100755
index 0000000..cadf85b
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Tcl/tcl_flow.d
@@ -0,0 +1,86 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_flow.d - snoop Tcl execution showing procedure flow using DTrace.
+ *              Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_flow.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_flow.d		# hit Ctrl-C to end
+ *
+ * This watches Tcl method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		PID		Process ID
+ *		CALL		Tcl command or procedure name
+ *
+ * LEGEND:
+ *		->		procedure entry
+ *		<-		procedure return
+ *		 >		command entry
+ *		 <		command return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s -- %s\n", "C", "PID", "TIME(us)", "CALL");
+}
+
+tcl*:::proc-entry
+{
+	printf("%3d %6d %-16d %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+}
+
+tcl*:::proc-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+}
+
+tcl*:::cmd-entry
+{
+	printf("%3d %6d %-16d %*s > %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+}
+
+tcl*:::cmd-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %*s < %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Tcl/tcl_flowtime.d b/external/cddl/dtracetoolkit/dist/Tcl/tcl_flowtime.d
new file mode 100755
index 0000000..fb236d5
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Tcl/tcl_flowtime.d
@@ -0,0 +1,105 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_flowtime.d - snoop Tcl execution showing procedure flow and delta times.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_flowtime.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_flowtime.d		# hit Ctrl-C to end
+ *
+ * This watches Tcl method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		TIME(us)	Time since boot, us
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		CALL		Tcl command or procedure name
+ *
+ * LEGEND:
+ *		->		procedure entry
+ *		<-		procedure return
+ *		 >		command entry
+ *		 <		command return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s %9s -- %s\n", "C", "PID", "TIME(us)",
+	    "DELTA(us)", "CALL");
+}
+
+tcl*:::proc-entry,
+tcl*:::proc-return,
+tcl*:::cmd-entry,
+tcl*:::cmd-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+tcl*:::proc-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %-16d %9d %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+tcl*:::proc-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %9d %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}
+
+tcl*:::cmd-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %-16d %9d %*s > %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+tcl*:::cmd-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %9d %*s < %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Tcl/tcl_ins.d b/external/cddl/dtracetoolkit/dist/Tcl/tcl_ins.d
new file mode 100755
index 0000000..82e2bb4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Tcl/tcl_ins.d
@@ -0,0 +1,57 @@
+#!/usr/sbin/dtrace -ZCs
+/*
+ * tcl_ins.d - count Tcl instructions using DTrace.
+ *             Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_ins.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_calls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (see below)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * TYPEs:
+ *		inst		instruction
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+tcl*:::inst-start
+{
+	@calls[pid, "inst", copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s %-8s %-52s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa(" %6d %-8s %-52s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Tcl/tcl_insflow.d b/external/cddl/dtracetoolkit/dist/Tcl/tcl_insflow.d
new file mode 100755
index 0000000..b25337a
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Tcl/tcl_insflow.d
@@ -0,0 +1,123 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_insflow.d - snoop Tcl execution showing procedure flow and delta times.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_insflow.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_insflow.d		# hit Ctrl-C to end
+ *
+ * This watches Tcl method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		TIME(us)	Time since boot, us
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		TYPE		Type of call (proc/cmd/inst)
+ *		CALL		Tcl command or procedure name
+ *
+ * LEGEND:
+ *		proc		procedure
+ *		cmd		command
+ *		inst		instruction
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s %9s %5s -- %s\n", "C", "PID", "TIME(us)",
+	    "DELTA(us)", "TYPE", "CALL");
+}
+
+tcl*:::proc-entry,
+tcl*:::proc-return,
+tcl*:::cmd-entry,
+tcl*:::cmd-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+tcl*:::proc-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %-16d %9d %5s %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "proc", self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+tcl*:::proc-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %9d %5s %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "proc", self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}
+
+tcl*:::cmd-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %-16d %9d %5s %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "cmd", self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+tcl*:::cmd-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %9d %5s %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "cmd", self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}
+
+tcl*:::inst-start
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %-16d %9d %5s %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "inst", self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+tcl*:::inst-done
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %9d %5s %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "inst", self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Tcl/tcl_proccalls.d b/external/cddl/dtracetoolkit/dist/Tcl/tcl_proccalls.d
new file mode 100755
index 0000000..25afd48
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Tcl/tcl_proccalls.d
@@ -0,0 +1,53 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_methodcalls.d - count Tcl method calls DTrace.
+ *                     Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_proccalls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_methodcalls.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		COUNT		Number of calls during sample
+ *		PROCEDURE	Tcl procedure name
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+tcl*:::proc-entry
+{
+	@calls[pid, copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s %8s %s\n", "PID", "COUNT", "PROCEDURE");
+	printa(" %6d %@8d %s\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Tcl/tcl_procflow.d b/external/cddl/dtracetoolkit/dist/Tcl/tcl_procflow.d
new file mode 100755
index 0000000..f9a45eb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Tcl/tcl_procflow.d
@@ -0,0 +1,70 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_procflow.d - snoop Tcl execution showing procedure flow using DTrace.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_procflow.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_procflow.d	# hit Ctrl-C to end
+ *
+ * This watches Tcl method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		PID		Process ID
+ *		PROCEDURE	Tcl procedure name
+ *
+ * LEGEND:
+ *		->		proc entry
+ *		<-		proc return
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s -- %s\n", "C", "PID", "TIME(us)", "PROCEDURE");
+}
+
+tcl*:::proc-entry
+{
+	printf("%3d %6d %-16d %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+}
+
+tcl*:::proc-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+}
diff --git a/external/cddl/dtracetoolkit/dist/Tcl/tcl_stat.d b/external/cddl/dtracetoolkit/dist/Tcl/tcl_stat.d
new file mode 100755
index 0000000..ff675ef
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Tcl/tcl_stat.d
@@ -0,0 +1,137 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_stat.d - Tcl operation stats using DTrace.
+ *            Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_stat.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_stat.d [interval [count]]
+ *
+ * FIELDS:
+ *		EXEC/s		Tcl programs executed per second, including
+ *				those without Tcl provider support
+ *		PROC/s		Procedures called, per second
+ *		CMD/s		Commands created, per second
+ *		OBJNEW/s	Objects created, per second
+ *		OBJFRE/s	Objects freed, per second
+ *		OP/s		Bytecode operations, per second
+ *
+ * The numbers are counts for the interval specified. The default interval
+ * is 1 second.
+ *
+ * If you see a count in "EXECS" but not in the other columns, then you
+ * may have older Tcl software that does not have the integrated DTrace
+ * provider (or newer software where the provider has changed).
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+dtrace:::BEGIN
+{
+	execs = procs = cmds = objnew = objfree = ops = 0;
+	lines = SCREEN + 1;
+	interval = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	secs = interval;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %6s %8s %8s %8s %8s %8s\n", "TIME", "EXEC/s",
+	    "PROC/s", "CMD/s", "OBJNEW/s", "OBJFRE/s", "OP/s");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Tally Data
+ */
+proc:::exec-success
+/execname == "tcl" || execname == "tclsh"/
+{
+	execs++;
+}
+
+tcl*:::proc-entry
+{
+	procs++;
+}
+
+tcl*:::cmd-entry
+{
+	cmds++;
+}
+
+tcl*:::obj-create
+{
+	objnew++;
+}
+
+tcl*:::obj-free
+{
+	objfree++;
+}
+
+tcl*:::inst-start
+{
+	ops++;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %6d %8d %8d %8d %8d %8d\n", walltimestamp,
+	    execs / interval, procs / interval, cmds / interval,
+	    objnew / interval, objfree / interval, ops / interval);
+	execs = procs = cmds = objnew = objfree = ops = 0;
+	secs = interval;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Tcl/tcl_syscalls.d b/external/cddl/dtracetoolkit/dist/Tcl/tcl_syscalls.d
new file mode 100755
index 0000000..47025c3
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Tcl/tcl_syscalls.d
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_syscalls.d - count Tcl calls and syscalls using DTrace.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_syscalls.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (method/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+tcl$target:::proc-entry
+{
+	@calls[pid, "proc", copyinstr(arg0)] = count();
+}
+
+tcl$target:::cmd-entry
+{
+	@calls[pid, "cmd", copyinstr(arg0)] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[pid, "syscall", probefunc] = count();
+}
+
+
+dtrace:::END
+{
+	printf(" %6s %-8s %-52s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa(" %6d %-8s %-52s %@8d\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Tcl/tcl_syscolors.d b/external/cddl/dtracetoolkit/dist/Tcl/tcl_syscolors.d
new file mode 100755
index 0000000..d368dc9
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Tcl/tcl_syscolors.d
@@ -0,0 +1,139 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_syscolors.d - trace Tcl program flow plus syscalls, in color.
+ *                   Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_syscolors.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches Tcl method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		TID		Thread ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		TYPE		Type of call (proc/cmd/syscall)
+ *		NAME		Tcl proc/cmd or syscall name
+ *
+ * WARNING: Watch the first column carefully, it prints the CPU-id. If it
+ * changes, then it is very likely that the output has been shuffled.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+        color_tcl = "\033[2;35m";		/* violet, faint */
+        color_line = "\033[1;35m";		/* violet, bold */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%3s %6s %9s %-8s -- %s\n", "C", "PID", "DELTA(us)", "TYPE",
+	    "NAME");
+}
+
+tcl$target:::method-entry,
+tcl$target:::method-return,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+tcl$target:::proc-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d %9d %-8s %*s-> %s%s\n", color_tcl, cpu,
+	    pid, this->delta, "proc", self->depth * 2, "", copyinstr(arg0),
+	    color_off);
+	self->depth++;
+	self->depthlast = self->depth;
+	self->last = timestamp;
+}
+
+tcl$target:::proc-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%3d %6d %9d %-8s %*s<- %s%s\n", color_tcl, cpu,
+	    pid, this->delta, "proc", self->depth * 2, "", copyinstr(arg0),
+	    color_off);
+	self->depthlast = self->depth;
+	self->last = timestamp;
+}
+
+tcl$target:::cmd-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d %9d %-8s %*s-> %s%s\n", color_tcl, cpu,
+	    pid, this->delta, "cmd", self->depth * 2, "", copyinstr(arg0),
+	    color_off);
+	self->depth++;
+	self->depthlast = self->depth;
+	self->last = timestamp;
+}
+
+tcl$target:::cmd-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%3d %6d %9d %-8s %*s<- %s%s\n", color_tcl, cpu,
+	    pid, this->delta, "cmd", self->depth * 2, "", copyinstr(arg0),
+	    color_off);
+	self->depthlast = self->depth;
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d %9d %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "syscall", self->depthlast * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d %9d %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "syscall", self->depthlast * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
diff --git a/external/cddl/dtracetoolkit/dist/Tcl/tcl_who.d b/external/cddl/dtracetoolkit/dist/Tcl/tcl_who.d
new file mode 100755
index 0000000..560c807
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Tcl/tcl_who.d
@@ -0,0 +1,62 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_who.d - trace Tcl calls by process using DTrace.
+ *           Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_who.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of Tcl
+ *		UID		User ID of the owner
+ *		CALLS		Number of calls made (proc + cmd)
+ *		ARGS		Process name and arguments
+ *
+ * Calls is a measure of activity, and is a count of the procedures and
+ * commands that Tcl called.
+ *
+ * The argument list is truncated at 55 characters (up to 80 is easily
+ * available). To easily read the full argument list, use other system tools;
+ * on Solaris use "pargs PID".
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+tcl*:::proc-entry,
+tcl*:::cmd-entry
+{
+	@calls[pid, uid, curpsinfo->pr_psargs] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %-55s\n", "PID", "UID", "CALLS", "ARGS");
+	printa("   %6d %6d %@6d %-55.55s\n", @calls);
+}
diff --git a/external/cddl/dtracetoolkit/dist/User/Readme b/external/cddl/dtracetoolkit/dist/User/Readme
new file mode 100644
index 0000000..d737125
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/User/Readme
@@ -0,0 +1,3 @@
+User - User based analysis
+
+   This would include activity by UID.
diff --git a/external/cddl/dtracetoolkit/dist/User/setuids.d b/external/cddl/dtracetoolkit/dist/User/setuids.d
new file mode 100755
index 0000000..1c27260
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/User/setuids.d
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -s
+/*
+ * setuids.d - snoop setuid calls. This can examine user logins.
+ *             Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: setuids.d,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+ *
+ * USAGE:	setuids.d
+ *
+ * FIELDS:
+ *		UID	user ID (from)
+ *		SUID	set user ID (to)
+ *		PPID	parent process ID
+ *		PID	process ID
+ *		PCMD	parent command
+ *		CMD	command (full arguments)
+ *
+ * SEE ALSO: BSM auditing
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-May-2004	Brendan Gregg	Created this.
+ * 08-May-2005	   "      " 	Used modern variable builtins.
+ * 28-Jul-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("%5s %5s %5s %5s %-12s %s\n",
+	    "UID", "SUID", "PPID", "PID", "PCMD", "CMD");
+}
+
+/*
+ * Save values
+ */
+syscall::setuid:entry
+{
+	self->uid = uid;
+	self->suid = arg0;
+	self->ok = 1;
+}
+
+/*
+ * Print output on success
+ */
+syscall::setuid:return
+/arg0 == 0 && self->ok/
+{
+	printf("%5d %5d %5d %5d %-12s %S\n",
+	    self->uid, self->suid, ppid, pid,
+	    curthread->t_procp->p_parent->p_user.u_comm,
+	    curpsinfo->pr_psargs);
+}
+
+/*
+ * Cleanup
+ */
+syscall::setuid:return
+{
+	self->uid = 0;
+	self->suid = 0;
+	self->ok = 0;
+}
diff --git a/external/cddl/dtracetoolkit/dist/Version b/external/cddl/dtracetoolkit/dist/Version
new file mode 100644
index 0000000..261c823
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Version
@@ -0,0 +1 @@
+DTraceToolkit version 0.99, 30-Sep-2007
diff --git a/external/cddl/dtracetoolkit/dist/Zones/Readme b/external/cddl/dtracetoolkit/dist/Zones/Readme
new file mode 100644
index 0000000..578e720
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Zones/Readme
@@ -0,0 +1,3 @@
+Zones - Zones based analysis
+
+   This would include activity by Zone.
diff --git a/external/cddl/dtracetoolkit/dist/Zones/zvmstat b/external/cddl/dtracetoolkit/dist/Zones/zvmstat
new file mode 100755
index 0000000..66c6d53
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/Zones/zvmstat
@@ -0,0 +1,277 @@
+#!/usr/bin/ksh
+#
+# zvmstat - print vmstat style info per Zone.
+#           This uses DTrace (Solaris 10 3/05).
+#
+# This program must be run from the global zone as root.
+#
+# $Id: zvmstat,v 1.1.1.1 2015/09/30 22:01:09 christos Exp $
+#
+# USAGE: 	zvmstat [-ht] [interval [count]]
+#
+#		zvmstat         # default output
+#			-t      # print times
+#  eg,
+#		zvmstat 1       # print every 1 second
+#		zvmstat 10 5    # print 5 x 10 second samples
+#		zvmstat -t 5    # print every 5 seconds with time
+#
+#
+# FIELDS:
+#		re		page reclaims
+#		mf		minor faults
+#		fr		pages freed
+#		sr		scan rate
+#		epi		executable pages paged in
+#		epo		executable pages paged out
+#		epf		executable pages freed
+#		api		anonymous pages paged in
+#		apo		anonymous pages paged out
+#		apf		anonymous pages freed
+#		fpi		filesystem pages paged in
+#		fpo		filesystem pages paged out
+#		fpf		filesystem pages freed
+#
+# NOTES: 
+# - Zone status should really be provided by Kstat, which currently
+#   provides system wide values, per CPU and per processor set, but not per
+#   zone. DTrace can fill this role in the meantime until Kstat supports zones.
+# - First output does not contain summary since boot.
+#
+# SEE ALSO: prstat -Z
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# BUGS:
+# - First output may not contain all zones due to how loops are achieved.
+#   Check for newer versions.
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 11-May-2005   Brendan Gregg   Created this.
+# 26-Jul-2005	   "      "	Improved code.
+# 08-Jan-2006	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_time=0; interval=1; counts=1
+
+### process options
+while getopts ht name
+do
+	case $name in
+	t)      opt_time=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: zvmstat [-ht] [interval [count]]
+		       zvmstat         # default output
+		               -t      # print times
+		   eg,
+		       zvmstat 1       # print every 1 second
+		       zvmstat 10 5    # print 5 x 10 second samples
+		       zvmstat -t 5    # print every 5 seconds with time
+		END
+		exit 1
+	esac
+done
+shift $(( OPTIND - 1 ))
+
+### option logic
+if (( "0$1" > 0 )); then
+        interval=$1; counts=-1; shift
+fi
+if (( "0$1" > 0 )); then
+        counts=$1; shift
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+dtrace -n '
+ #pragma D option quiet
+ #pragma D option destructive
+ #pragma D option switchrate=10
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_time   = '$opt_time';
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$counts';
+
+ /* 
+  * Initialise variables
+  */
+ dtrace:::BEGIN 
+ {
+	secs = INTERVAL; 
+	counts = COUNTER;
+	zonemax = 0;
+	listing = 1;
+	re[""] = 0; pi[""] = 0; po[""] = 0;
+	mf[""] = 0; sr[""] = 0; fr[""] = 0;
+	epi[""] = 0; epo[""] = 0; epf[""] = 0;
+	api[""] = 0; apo[""] = 0; apf[""] = 0;
+	fpi[""] = 0; fpo[""] = 0; fpf[""] = 0;
+ }
+
+ /*
+  * Build zonelist array
+  *
+  * Here we want the output of a command to be saved into an array
+  * inside dtrace. This is done by running the command, sending the
+  * output to /dev/null, and by probing its write syscalls from dtrace. 
+  *
+  * This is an example of a "scraper".
+  */
+
+ /*
+  * List zones
+  */
+ dtrace:::BEGIN 
+ {
+	/* run zoneadm */
+	system("/usr/sbin/zoneadm list > /dev/null; echo END > /dev/null");
+ }
+
+ /*
+  * Scrape zone listing
+  */
+ syscall::write:entry
+ /listing && (execname == "zoneadm") && 
+ (curthread->t_procp->p_parent->p_ppid == $pid)/
+ {
+	/* read zoneadm output */
+	zonelist[zonemax] = stringof(copyin(arg1, arg2 - 1));
+
+	/* increment max number of zones */
+	zonemax++;
+ }
+
+ /*
+  * Finish scraping zones
+  */
+ syscall::write:entry
+ /listing && (execname == "sh") && (ppid == $pid)/
+ {
+	/*
+	 * this end tag lets us know our zonelist has finished.
+	 * thanks A. Packer.
+	 */
+	listing = stringof(copyin(arg1, arg2 - 1)) == "END" ? 0 : 1;
+ }
+
+ /*
+  * Record vminfo counters
+  */
+ vminfo:::pgrec      { re[zonename] += arg0; }
+ vminfo:::as_fault   { mf[zonename] += arg0; }
+ vminfo:::scan       { sr[zonename] += arg0; }
+ vminfo:::execpgin   { epi[zonename] += arg0; }
+ vminfo:::execpgout  { epo[zonename] += arg0; }
+ vminfo:::execfree   { epf[zonename] += arg0; fr[zonename] += arg0; }
+ vminfo:::anonpgin   { api[zonename] += arg0; }
+ vminfo:::anonpgout  { apo[zonename] += arg0; }
+ vminfo:::anonfree   { apf[zonename] += arg0; fr[zonename] += arg0; }
+ vminfo:::fspgin     { fpi[zonename] += arg0; }
+ vminfo:::fspgout    { fpo[zonename] += arg0; }
+ vminfo:::fsfree     { fpf[zonename] += arg0; fr[zonename] += arg0; }
+
+ /*
+  * Timer
+  */
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /*
+  * Check for exit
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+
+ /*
+  * Print header line
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* set counters */
+	secs = INTERVAL;
+	counts--;
+	zonei = 0;
+
+	/* print time */
+	OPT_time ? printf("\n%Y,\n",walltimestamp) : 1;
+
+	/* print output line */
+	printf("%10s %4s %5s %4s %5s %4s %4s %4s %4s %4s %4s %4s %4s %4s\n",
+	    "ZONE", "re", "mf", "fr", "sr", "epi", "epo", "epf", "api", "apo",
+	    "apf", "fpi", "fpo", "fpf");
+
+	/* ensure zone writes are triggered */
+	printf(" \b");
+ }
+
+ /*
+  * Print zone status line
+  *
+  * This is a fairly interesting function in that it loops over the keys in 
+  * an associative array and prints out the values. DTrace cant really do 
+  * loops, and generally doesnt need to. We "cheat" by generating writes
+  * in the above probe which in turn trigger the probe below which 
+  * contains the contents of each loop. Dont do this at home! We are
+  * supposed to use aggreagations instead, wherever possible.
+  *
+  * This is an example of a "feedback loop".
+  */
+ syscall::write:return
+ /pid == $pid && zonei < zonemax/
+ {
+	/* fetch zonename */
+	self->zone = zonelist[zonei];
+
+	/* print output */
+	printf("%10s %4d %5d %4d %5d %4d %4d %4d %4d %4d %4d %4d %4d %4d\n",
+	    self->zone, re[self->zone], mf[self->zone], fr[self->zone],
+	    sr[self->zone], epi[self->zone], epo[self->zone],
+	    epf[self->zone], api[self->zone], apo[self->zone],
+	    apf[self->zone], fpi[self->zone], fpo[self->zone],
+	    fpf[self->zone]);
+	
+	/* clear values */
+	re[self->zone] = 0; mf[self->zone] = 0; fr[self->zone] = 0;
+	sr[self->zone] = 0; epi[self->zone] = 0; epo[self->zone] = 0;
+	epf[self->zone] = 0; api[self->zone] = 0; apo[self->zone] = 0;
+	apf[self->zone] = 0; fpi[self->zone] = 0; fpo[self->zone] = 0;
+	fpf[self->zone] = 0;
+	self->zone = 0;
+	
+	/* go to next zone */
+	zonei++;
+ }
+'
+
diff --git a/external/cddl/dtracetoolkit/dist/dexplorer b/external/cddl/dtracetoolkit/dist/dexplorer
new file mode 100755
index 0000000..4d04216
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/dexplorer
@@ -0,0 +1,547 @@
+#!/usr/bin/ksh
+#
+# dexplorer - DTrace system explorer, runs a collection of scripts.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# This program automatically runs a collection of DTrace scripts to examine
+# many areas of the system, and places the output in a meaningful directory
+# structure that is tar'd and gzip'd.
+#
+# $Id: dexplorer,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE:	dexplorer [-yDT] [-d outputdir] [-i interval]
+#
+#                  -q              # quiet mode
+#                  -y              # "yes", don't prompt for confirmation
+#                  -D              # don't delete output dir
+#                  -T              # don't create output tar.gz
+#                  -d outputdir    # output directory
+#                  -i interval     # interval for each sample
+#    eg,
+#               dexplorer          # default is 5 second samples
+#               dexplorer -y -i30  # no prompting, with 30 second samples
+#
+# SEE ALSO:	DTraceToolkit
+#
+# THANKS: David Visser, et all. for the idea and encouragement.
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# CODE:
+#
+#  This is currently a monolithic script, and while it contains only
+#  a few dozen straigftforward DTrace scripts I think it's desirable to
+#  keep it that way. The scripts themselves have designed to be very
+#  generic (eg, switching on all sdt:::), and are aggregations to keep a 
+#  limit on the size of the output.
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 23-Jun-2005	Brendan Gregg	Created this.
+# 28-Jun-2005	   "      "	Last update.
+
+#
+#  Default variables
+#
+interval=5				# time of each sample
+verbose=1				# print screen output
+prompt=1				# prompt before run
+tar=1					# create tar file
+delete=1				# delete output dirs
+dtrace=/usr/sbin/dtrace			# path to dtrace
+root=.					# default output dir
+PATH=/usr/bin:/usr/sbin			# safe path
+dir=de_`uname -n`_`date +%Y%m%d%H%M`	# OUTPUT FILENAME
+samples=20				# max number of tests
+current=0				# current sample
+
+#
+#  Process options
+#
+while getopts d:hi:qyDT name
+do
+	case $name in
+	d)      root=$OPTARG ;;
+	i)      interval=$OPTARG ;;
+	q)      verbose=0 ;;
+	y)      prompt=0 ;;
+	D)      delete=0 ;;
+	T)      tar=0 ;;
+	h|?)    cat <<-END >&2
+		USAGE: dexplorer [-qyDT] [-d outputdir] [-i interval]
+		 
+		        -q               # quiet mode
+		        -y               # "yes", don't prompt for confirmation
+		        -D               # don't delete output dir
+		        -T               # don't create output tar.gz
+		        -d outputdir     # output directory
+		        -i interval      # interval for each sample
+		   eg,
+		       dexplorer         # default is 5 second samples
+		       dexplorer -y -i30 # no prompting, with 30 second samples
+		END
+		exit 1
+	esac
+done
+shift $(( OPTIND - 1 ))
+
+#
+#  Confirm path
+#
+if [[ "$prompt" == "1" ]] ; then
+	if [[ "$root" == "." ]]; then
+		print "Output dir will be the current dir ($PWD)."
+	else
+		print "Output dir will be $root"
+	fi
+	print -n "Hit enter for yes, or type path: "
+	read ans junk
+	if [[ "$ans" == [yY] || "$ans" == [yY]es ]]; then
+		print "WARNING: I didn't ask for \"$ans\"!"
+		print "\tI was asking for the path or just enter."
+		print "\tignoring \"$ans\"..."
+	fi
+	if [[ "$ans" != "" ]]; then
+		root=$ans
+		print "Output is now $root."
+	fi
+fi
+
+#
+#  Sanity checks
+#
+if [[ "$interval" == *[a-zA-Z]* ]]; then
+	print "ERROR2: Invalid interval $interval.\n"
+	print "Please use a number of seconds."
+	exit 2
+fi
+if (( ${#interval} < 1 )); then
+	print "ERROR3: Length of interval $interval too short.\n"
+	print "Minimum 1 second."
+	exit 3
+fi
+if [[ ! -d "$root" ]]; then
+	print "ERROR4: Output directory \"$root\" does not exist.\n"
+	print "Perhaps try a mkdir first?"
+	print "or use an existing dir, eg \"/tmp\""
+	exit 4
+fi
+if [[ ! -w "$root" ]]; then
+	print "ERROR5: Can't write to output directory \"$root\".\n"
+	print "Are you logged in as root?"
+	print "Perhaps try another directory, eg \"/tmp\""
+	exit 5
+fi
+if [[ `$dtrace -b1k -qn 'BEGIN { trace(pid); exit(0); }'` == "" ]]; then
+	print "ERROR6: Unable to run dtrace!\n"
+	print "Perhaps this is a permission problem? Try running as root."
+	exit 6
+fi
+
+# calculate total time
+(( total = interval * samples ))
+if (( total > 180 )); then
+	(( total = total / 60 ))
+	total="$total minutes"
+else
+	total="$total seconds"
+fi
+
+#
+#  Common Functions
+#
+function decho {
+	if (( verbose )); then print "$*"; fi
+}
+clean="sed /^\$/d"
+header='dtrace:::BEGIN {
+		printf("%Y, ", walltimestamp);
+		printf("%s %s %s %s %s, ", `utsname.sysname, `utsname.nodename,
+		    `utsname.release, `utsname.version, `utsname.machine);
+		printf("%d secs\n",'$interval');
+	}
+	profile:::tick-'$interval'sec { exit(0); }
+	'
+function dstatus {
+	if (( verbose )); then 
+		(( percent = current * 100 / samples ))
+		printf "%3d%% $*\n" $percent
+		(( current = current + 1 ))
+	fi
+}
+
+########################################
+#  START                               #
+########################################
+
+#
+#  Make dirs
+#
+err=0
+cd $root
+(( err = err + $? ))
+mkdir $dir
+(( err = err + $? ))
+cd $dir
+(( err = err + $? ))
+base1=${PWD##*/}
+base2=${dir##*/}
+if [[ "$base1" != "$base2" || "$err" != "0" ]]; then
+	print "ERROR7: tried to mkdir $dir from $root, but something failed.\n"
+	print "Check directories before rerunning."
+	exit 7
+fi
+mkdir Cpu
+mkdir Disk
+mkdir Mem
+mkdir Net
+mkdir Proc
+mkdir Info
+
+#
+#  Create Log
+#
+decho "Starting dexplorer ver 0.76."
+decho "Sample interval is $interval seconds. Total run is > $total."
+( print "dexplorer ver 0.76\n------------------"
+print -n "System: "
+uname -a
+print -n "Start:  "
+date ) > log
+
+#
+#  Capture Standard Info
+#
+args='pid,ppid,uid,gid,projid,zoneid,pset,pri,nice,'
+args=$args'class,vsz,rss,time,pcpu,pmem,args'
+uname -a > Info/uname-a		# System
+psrinfo -v > Info/psrinfo-v	# CPU
+prtconf > Info/prtconf		# Memory (+ devices)
+df -k > Info/df-k		# Disk
+ifconfig -a > Info/ifconfig-a	# Network
+ps -eo $args > Info/ps-o	# Processes
+uptime > Info/uptime		# Load
+
+#
+#  Cpu Tests, DTrace
+#
+
+dstatus "Interrupts by CPU..."
+$dtrace -qn "$header"'
+	sdt:::interrupt-start { @num[cpu] = count(); }
+	dtrace:::END
+	{ 
+		printf("%-16s %16s\n", "CPU", "INTERRUPTS");
+		printa("%-16d %@16d\n", @num);
+	}
+' | $clean > Cpu/interrupt_by_cpu
+
+dstatus "Interrupt times..."
+$dtrace -qn "$header"'
+	sdt:::interrupt-start { self->ts = vtimestamp; }
+	sdt:::interrupt-complete
+	/self->ts && arg0 != 0/
+	{
+		this->devi = (struct dev_info *)arg0;
+		self->name = this->devi != 0 ?
+		    stringof(`devnamesp[this->devi->devi_major].dn_name) : "?";
+		this->inst = this->devi != 0 ? this->devi->devi_instance : 0;
+		@num[self->name, this->inst] = sum(vtimestamp - self->ts);
+		self->name = 0;
+	}
+	sdt:::interrupt-complete { self->ts = 0; }
+	dtrace:::END
+	{ 
+		printf("%11s    %16s\n", "DEVICE", "TIME (ns)");
+		printa("%10s%-3d %@16d\n", @num);
+	}
+' | $clean > Cpu/interrupt_time
+
+dstatus "Dispatcher queue length by CPU..."
+$dtrace -qn "$header"'
+	profile:::profile-1000
+	{
+		this->num = curthread->t_cpu->cpu_disp->disp_nrunnable;
+		@length[cpu] = lquantize(this->num, 0, 100, 1);
+	}
+	dtrace:::END { printa(" CPU %d%@d\n", @length); }
+' | $clean > Cpu/dispqlen_by_cpu
+
+dstatus "Sdt counts..."
+$dtrace -qn "$header"'
+	sdt:::{ @num[probefunc, probename] = count(); }
+	dtrace:::END
+	{ 
+		printf("%-32s %-32s %10s\n", "FUNC", "NAME", "COUNT");
+		printa("%-32s %-32s %@10d\n", @num);
+	}
+' | $clean > Cpu/sdt_count
+
+#
+#  Disk Tests, DTrace
+#
+
+dstatus "Pages paged in by process..."
+$dtrace -qn "$header"'
+	vminfo:::pgpgin { @pg[pid, execname] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %16s\n", "PID", "CMD", "PAGES");
+		printa("%6d %-16s %@16d\n", @pg);
+	}
+' | $clean > Disk/pgpgin_by_process
+
+dstatus "Files opened successfully count..."
+$dtrace -qn "$header"'
+	syscall::open*:entry { self->file = copyinstr(arg0); self->ok = 1; }
+	syscall::open*:return /self->ok && arg0 != -1/ 
+	{ 
+		@num[self->file] = count();
+	}
+	syscall::open*:return /self->ok/ { self->file = 0; self->ok = 0; }
+	dtrace:::END
+	{ 
+		printf("%-64s %8s\n", "FILE", "COUNT");
+		printa("%-64s %@8d\n", @num);
+	}
+' | $clean > Disk/fileopen_count
+
+dstatus "Disk I/O size distribution by process..."
+$dtrace -qn "$header"'
+	io:::start { @size[pid, execname] = quantize(args[0]->b_bcount); }
+' | $clean > Disk/sizedist_by_process
+
+#
+#  Mem Tests, DTrace
+#
+
+dstatus "Minor faults by process..."
+$dtrace -qn "$header"'
+	vminfo:::as_fault { @mem[pid, execname] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %16s\n", "PID", "CMD", "MINFAULTS");
+		printa("%6d %-16s %@16d\n", @mem);
+	}
+' | $clean > Mem/minf_by_process
+
+
+dstatus "Vminfo data by process..."
+$dtrace -qn "$header"'
+	vminfo::: { @data[pid, execname, probename] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %-16s %16s\n",
+		    "PID", "CMD", "STATISTIC", "VALUE");
+		printa("%6d %-16s %-16s %@16d\n", @data);
+	}
+' | $clean > Mem/vminfo_by_process
+
+#
+#  Net Tests, DTrace
+#
+
+dstatus "Mib data by mib statistic..."
+$dtrace -qn "$header"'
+	mib::: { @data[probename] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%-32s %16s\n", "STATISTIC", "VALUE");
+		printa("%-32s %@16d\n", @data);
+	}
+' | $clean > Net/mib_data
+
+dstatus "TCP write bytes by process..."
+$dtrace -qn "$header"'
+	fbt:ip:tcp_output:entry
+	{
+		this->size = msgdsize(args[1]);
+		@size[pid, execname] = sum(this->size);
+	}
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %12s\n", "PID", "CMD", "BYTES");
+		printa("%6d %-16s %@12d\n", @size);
+	}
+' | $clean > Net/tcpw_by_process
+
+#
+#  Proc Tests, DTrace
+#
+
+dstatus "Sample process @ 1000 Hz..."
+$dtrace -qn "$header"'
+	profile:::profile-1000
+	{
+		@num[pid, curpsinfo->pr_psargs] = count();
+	}
+	dtrace:::END
+	{ 
+		printf("%6s %12s %s\n", "PID", "SAMPLES", "ARGS");
+		printa("%6d %@12d %S\n", @num);
+	}
+' | $clean > Proc/sample_process
+
+dstatus "Syscall count by process..."
+$dtrace -qn "$header"'
+	syscall:::entry { @num[pid, execname, probefunc] = count(); }
+	dtrace:::END
+	{ 
+		printf("%6s %-24s %-24s %8s\n",
+		    "PID", "CMD", "SYSCALL", "COUNT");
+		printa("%6d %-24s %-24s %@8d\n", @num);
+	}
+' | $clean > Proc/syscall_by_process
+
+dstatus "Syscall count by syscall..."
+$dtrace -qn "$header"'
+	syscall:::entry { @num[probefunc] = count(); }
+	dtrace:::END
+	{ 
+		printf("%-32s %16s\n", "SYSCALL", "COUNT");
+		printa("%-32s %@16d\n", @num);
+	}
+' | $clean > Proc/syscall_count
+
+dstatus "Read bytes by process..."
+$dtrace -qn "$header"'
+	sysinfo:::readch { @bytes[pid, execname] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %16s\n", "PID", "CMD", "BYTES");
+		printa("%6d %-16s %@16d\n", @bytes);
+	}
+' | $clean > Proc/readb_by_process
+
+dstatus "Write bytes by process..."
+$dtrace -qn "$header"'
+	sysinfo:::writech { @bytes[pid, execname] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %16s\n", "PID", "CMD", "BYTES");
+		printa("%6d %-16s %@16d\n", @bytes);
+	}
+' | $clean > Proc/writeb_by_process
+
+dstatus "Sysinfo counts by process..."
+$dtrace -qn "$header"'
+	sysinfo::: { @num[pid, execname, probename] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %-16s %16s\n", 
+		    "PID", "CMD", "STATISTIC", "COUNT");
+		printa("%6d %-16s %-16s %@16d\n", @num);
+	}
+' | $clean > Proc/sysinfo_by_process
+
+dstatus "New process counts with arguments..."
+$dtrace -qn "$header"'
+	proc:::exec-success
+	{
+		@num[pid, ppid, curpsinfo->pr_psargs] = count();
+	}
+	dtrace:::END
+	{ 
+		printf("%6s %6s %8s %s\n", "PID", "PPID", "COUNT", "ARGS");
+		printa("%6d %6d %@8d %S\n", @num);
+	}
+' | $clean > Proc/newprocess_count
+
+dstatus "Signal counts..."
+$dtrace -qn "$header"'
+	proc:::signal-send { 
+		@num[execname,args[2],stringof(args[1]->pr_fname)] = count();
+	}
+	dtrace:::END
+	{ 
+		printf("%-16s %-8s %-16s %8s\n",
+		    "FROM", "SIG", "TO", "COUNT");
+		printa("%-16s %-8d %-16s %@8d\n", @num);
+	}
+' | $clean > Proc/signal_count
+
+dstatus "Syscall error counts..."
+$dtrace -qn "$header"'
+	syscall:::return /(int)arg0 == -1/
+	{
+		@num[pid, execname, probefunc, errno] = count();
+	}
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %-32s %-6s %8s\n",
+		    "PID", "CMD", "SYSCALL", "ERRNO", "COUNT");
+		printa("%6d %-16s %-32s %-6d %@8d\n", @num);
+	}
+' | $clean > Proc/syscall_errors
+
+
+###########
+#  Done
+#
+( print -n "End:    "
+date ) >> log
+decho "100% Done."
+if (( tar )); then
+	cd ..
+	tar cf $dir.tar $dir
+	gzip $dir.tar
+	decho "File is $dir.tar.gz"
+fi
+if (( delete && tar )); then
+	cd $dir
+	# this could be all an "rm -r $dir", but since it will be run 
+	# as root on production servers - lets be analy cautious,
+	rm Cpu/interrupt_by_cpu
+	rm Cpu/interrupt_time
+	rm Cpu/dispqlen_by_cpu
+	rm Cpu/sdt_count
+	rm Disk/pgpgin_by_process
+	rm Disk/fileopen_count
+	rm Disk/sizedist_by_process
+	rm Mem/minf_by_process
+	rm Mem/vminfo_by_process
+	rm Net/mib_data
+	rm Net/tcpw_by_process
+	rm Proc/sample_process
+	rm Proc/syscall_by_process
+	rm Proc/syscall_count
+	rm Proc/readb_by_process
+	rm Proc/writeb_by_process
+	rm Proc/sysinfo_by_process
+	rm Proc/newprocess_count
+	rm Proc/signal_count
+	rm Proc/syscall_errors
+	rmdir Cpu
+	rmdir Disk
+	rmdir Mem
+	rmdir Net
+	rmdir Proc
+	rm Info/uname-a
+	rm Info/psrinfo-v
+	rm Info/prtconf
+	rm Info/df-k
+	rm Info/ifconfig-a
+	rm Info/ps-o
+	rm Info/uptime
+	rmdir Info
+	rm log
+	cd ..
+	rmdir $dir
+else
+	decho "Directory is $dir"
+fi
+
diff --git a/external/cddl/dtracetoolkit/dist/dtruss b/external/cddl/dtracetoolkit/dist/dtruss
new file mode 100755
index 0000000..0a1c062
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/dtruss
@@ -0,0 +1,464 @@
+#!/bin/sh
+#
+# dtruss - print process system call time details.
+#          Written using DTrace (Solaris 10 3/05).
+#
+# $Id: dtruss,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE: dtruss [-acdeflhoLs] [-t syscall] { -p PID | -n name | command }
+#
+#		-p PID		# examine this PID
+#		-n name		# examine this process name
+#		-t syscall	# examine this syscall only
+#		-a		# print all details
+#		-c		# print system call counts
+#		-d		# print relative timestamps (us)
+#		-e		# print elapsed times (us)
+#		-f		# follow children as they are forked
+#		-l		# force printing of pid/lwpid per line
+#		-o		# print on cpu times (us)
+#		-s		# print stack backtraces
+#		-L		# don't print pid/lwpid per line
+#		-b bufsize	# dynamic variable buf size (default is "4m")
+#  eg,
+#		dtruss df -h	# run and examine the "df -h" command
+#		dtruss -p 1871	# examine PID 1871
+#		dtruss -n tar	# examine all processes called "tar"
+#		dtruss -f test.sh	# run test.sh and follow children
+#
+# See the man page dtruss(1M) for further details.
+#
+# SEE ALSO: procsystime    # DTraceToolkit
+#           dapptrace      # DTraceToolkit
+#           truss
+#
+# COPYRIGHT: Copyright (c) 2005, 2006, 2007 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# TODO: Track signals, more output formatting.
+#
+# 29-Apr-2005   Brendan Gregg   Created this.
+# 09-May-2005      "      " 	Fixed evaltime (thanks Adam L.)
+# 16-May-2005	   "      "	Added -t syscall tracing.
+# 17-Jun-2005	   "      "	Added -s stack backtraces.
+# 17-Jun-2005	   "      "	Last update.
+# 29-Jun-2007	   "      "	Used progenyof() (thanks Aaron Gutman).
+# 06-Aug-2007	   "      "	Various updates.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_pid=0; opt_name=0; pid=0; pname="."; opt_elapsed=0; opt_cpu=0
+opt_counts=0; opt_relative=0; opt_printid=0; opt_follow=0; opt_command=0
+command=""; opt_buf=0; buf="4m"; opt_trace=0; trace="."; opt_stack=0
+
+### Process options
+while getopts ab:cdefhln:op:st:L name
+do
+        case $name in
+	b)	opt_buf=1; buf=$OPTARG ;;
+        p)      opt_pid=1; pid=$OPTARG ;;
+        n)      opt_name=1; pname=$OPTARG ;;
+        t)      opt_trace=1; trace=$OPTARG ;;
+	a)	opt_counts=1; opt_relative=1; opt_elapsed=1; opt_follow=1
+		opt_printid=1; opt_cpu=1 ;;
+	c)	opt_counts=1 ;;
+	d)	opt_relative=1 ;;
+	e)	opt_elapsed=1 ;;
+	f)	opt_follow=1 ;;
+	l)	opt_printid=1 ;;
+	o)	opt_cpu=1 ;;
+	L)	opt_printid=-1 ;;
+	s)	opt_stack=-1 ;;
+        h|?)    cat <<-END >&2
+		USAGE: dtruss [-acdefholLs] [-t syscall] { -p PID | -n name | command }
+
+		          -p PID          # examine this PID
+		          -n name         # examine this process name
+		          -t syscall      # examine this syscall only
+		          -a              # print all details
+		          -c              # print syscall counts
+		          -d              # print relative times (us)
+		          -e              # print elapsed times (us)
+		          -f              # follow children (-p or cmd only)
+		          -l              # force printing pid/lwpid
+		          -o              # print on cpu times
+		          -s              # print stack backtraces
+		          -L              # don't print pid/lwpid
+		          -b bufsize      # dynamic variable buf size
+		   eg,
+		       dtruss df -h       # run and examine "df -h"
+		       dtruss -p 1871     # examine PID 1871
+		       dtruss -n tar      # examine all processes called "tar"
+		       dtruss -f test.sh  # run test.sh and follow children
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+### Option logic
+if [ $opt_pid -eq 0 -a $opt_name -eq 0 ]; then
+	opt_command=1
+	if [ "$*" = "" ]; then
+		$0 -h
+		exit
+	fi
+	command="$*"	# yes, I meant $*!
+fi
+if [ $opt_follow -eq 1 -o $opt_name -eq 1 ]; then
+	if [ $opt_printid -ne -1 ]; then
+		opt_printid=1
+	else
+		opt_printid=0
+	fi
+fi
+if [ $opt_follow -eq 1 -a $opt_name -eq 1 ]; then
+	echo "ERROR: -f option cannot be used with -n (use -p or cmd instead)."
+	exit 1
+fi
+
+### Option translation
+if [ "$trace" = "exec" ]; then trace="exece"; fi
+if [ "$trace" = "time" ]; then trace="gtime"; fi
+if [ "$trace" = "exit" ]; then trace="rexit"; fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+
+### Define D Script
+dtrace='
+#pragma D option quiet
+#pragma D option switchrate=10
+ 
+/*
+ * Command line arguments
+ */
+inline int OPT_command   = '$opt_command';
+inline int OPT_follow    = '$opt_follow';
+inline int OPT_printid   = '$opt_printid';
+inline int OPT_relative  = '$opt_relative';
+inline int OPT_elapsed   = '$opt_elapsed';
+inline int OPT_cpu       = '$opt_cpu';
+inline int OPT_counts    = '$opt_counts';
+inline int OPT_pid       = '$opt_pid';
+inline int OPT_name      = '$opt_name';
+inline int OPT_trace     = '$opt_trace';
+inline int OPT_stack     = '$opt_stack';
+inline string NAME       = "'$pname'";
+inline string TRACE      = "'$trace'";
+
+dtrace:::BEGIN 
+{
+	/* print header */
+	OPT_printid  ? printf("%-9s  ", "PID/LWP") : 1;
+	OPT_relative ? printf("%8s ", "RELATIVE") : 1;
+	OPT_elapsed  ? printf("%7s ", "ELAPSD") : 1;
+	OPT_cpu      ? printf("%6s ", "CPU") : 1;
+	printf("SYSCALL(args) \t\t = return\n");
+}
+
+/*
+ * Save syscall entry info
+ */
+syscall:::entry
+/((OPT_command || OPT_pid) && pid == $target) || 
+ (OPT_name && execname == NAME) ||
+ (OPT_follow && progenyof($target))/
+{
+	/* set start details */
+	self->start = timestamp;
+	self->vstart = vtimestamp;
+	self->arg0 = arg0;
+	self->arg1 = arg1;
+	self->arg2 = arg2;
+
+	/* count occurances */
+	OPT_counts == 1 ? @Counts[probefunc] = count() : 1;
+}
+
+/*
+ * Follow children
+ */
+syscall::fork*:return
+/(OPT_follow && progenyof($target)) && (!OPT_trace || (TRACE == probefunc))/
+{
+	/* print output */
+	self->code = errno == 0 ? "" : "Err#";
+	OPT_printid  ? printf("%6d/%d:  ", pid, tid) : 1;
+	OPT_relative ? printf("%8d:  ", vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d:  ", 0) : 1;
+	OPT_cpu      ? printf("%6d ", 0) : 1;
+	printf("%s(0x%X, 0x%X, 0x%X)\t\t = %d %s%d\n", probefunc,
+	    self->arg0, self->arg1, self->arg2, (int)arg0, self->code,
+	    (int)errno);
+}
+
+/*
+ * Check for syscall tracing
+ */
+syscall:::entry
+/OPT_trace && probefunc != TRACE/
+{
+	/* drop info */
+	self->start = 0;
+	self->vstart = 0;
+	self->arg0 = 0;
+	self->arg1 = 0;
+	self->arg2 = 0;
+}
+
+/*
+ * Print return data
+ */
+
+/*
+ * The following code is written in an intentionally repetative way.
+ * The first versions had no code redundancies, but performed badly during
+ * benchmarking. The priority here is speed, not cleverness. I know there
+ * are many obvious shortcuts to this code, I have tried them. This style has
+ * shown in benchmarks to be the fastest (fewest probes fired, fewest actions).
+ */
+
+/* print 3 args, return as hex */
+syscall::sigprocmask:return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start;
+	self->start = 0;
+	this->cpu = vtimestamp - self->vstart;
+	self->vstart = 0;
+	self->code = errno == 0 ? "" : "Err#";
+ 
+	/* print optional fields */
+	OPT_printid  ? printf("%6d/%d:  ", pid, tid) : 1;
+	OPT_relative ? printf("%8d ", vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ", this->elapsed/1000) : 1;
+	OPT_cpu ? printf("%6d ", this->cpu/1000) : 1;
+ 
+	/* print main data */
+	printf("%s(0x%X, 0x%X, 0x%X)\t\t = 0x%X %s%d\n", probefunc,
+	    (int)self->arg0, self->arg1, self->arg2, (int)arg0,
+	    self->code, (int)errno);
+	OPT_stack ? ustack()    : 1;
+	OPT_stack ? trace("\n") : 1;
+	self->arg0 = 0;
+	self->arg1 = 0;
+	self->arg2 = 0;
+}
+
+/* print 3 args, arg0 as a string */
+syscall::access*:return,
+syscall::stat*:return, 
+syscall::lstat*:return, 
+syscall::readlink*:return,
+syscall::open*:return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start;
+	self->start = 0;
+	this->cpu = vtimestamp - self->vstart;
+	self->vstart = 0;
+	self->code = errno == 0 ? "" : "Err#";
+ 
+	/* print optional fields */
+	OPT_printid  ? printf("%6d/%d:  ", pid, tid) : 1;
+	OPT_relative ? printf("%8d ", vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ", this->elapsed/1000) : 1;
+	OPT_cpu      ? printf("%6d ", this->cpu/1000) : 1;
+ 
+	/* print main data */
+	printf("%s(\"%S\", 0x%X, 0x%X)\t\t = %d %s%d\n", probefunc,
+	    copyinstr(self->arg0), self->arg1, self->arg2, (int)arg0,
+	    self->code, (int)errno);
+	OPT_stack ? ustack()    : 1;
+	OPT_stack ? trace("\n") : 1;
+	self->arg0 = 0;
+	self->arg1 = 0;
+	self->arg2 = 0;
+}
+
+/* print 3 args, arg1 as a string */
+syscall::write:return,
+syscall::pwrite:return,
+syscall::*read*:return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start;
+	self->start = 0;
+	this->cpu = vtimestamp - self->vstart;
+	self->vstart = 0;
+	self->code = errno == 0 ? "" : "Err#";
+ 
+	/* print optional fields */
+	OPT_printid  ? printf("%6d/%d:  ", pid, tid) : 1;
+	OPT_relative ? printf("%8d ", vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ", this->elapsed/1000) : 1;
+	OPT_cpu      ? printf("%6d ", this->cpu/1000) : 1;
+ 
+	/* print main data */
+	printf("%s(0x%X, \"%S\", 0x%X)\t\t = %d %s%d\n", probefunc, self->arg0,
+	    stringof(copyin(self->arg1, self->arg2)), self->arg2, (int)arg0,
+	    self->code, (int)errno);
+	OPT_stack ? ustack()    : 1;
+	OPT_stack ? trace("\n") : 1;
+	self->arg0 = 0;
+	self->arg1 = 0;
+	self->arg2 = 0;
+}
+
+/* print 0 arg output */
+syscall::*fork*:return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start;
+	self->start = 0;
+	this->cpu = vtimestamp - self->vstart;
+	self->vstart = 0;
+	self->code = errno == 0 ? "" : "Err#";
+ 
+	/* print optional fields */
+	OPT_printid  ? printf("%6d/%d:  ", pid, tid) : 1;
+	OPT_relative ? printf("%8d ", vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ", this->elapsed/1000) : 1;
+	OPT_cpu      ? printf("%6d ", this->cpu/1000) : 1;
+ 
+	/* print main data */
+	printf("%s()\t\t = %d %s%d\n", probefunc,
+	    (int)arg0, self->code, (int)errno);
+	OPT_stack ? ustack()    : 1;
+	OPT_stack ? trace("\n") : 1;
+	self->arg0 = 0;
+	self->arg1 = 0;
+	self->arg2 = 0;
+}
+
+/* print 1 arg output */
+syscall::close:return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start;
+	self->start = 0;
+	this->cpu = vtimestamp - self->vstart;
+	self->vstart = 0;
+	self->code = errno == 0 ? "" : "Err#";
+ 
+	/* print optional fields */
+	OPT_printid  ? printf("%6d/%d:  ", pid, tid) : 1;
+	OPT_relative ? printf("%8d ", vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ", this->elapsed/1000) : 1;
+	OPT_cpu      ? printf("%6d ", this->cpu/1000) : 1;
+ 
+	/* print main data */
+	printf("%s(0x%X)\t\t = %d %s%d\n", probefunc, self->arg0,
+	    (int)arg0, self->code, (int)errno);
+	OPT_stack ? ustack()    : 1;
+	OPT_stack ? trace("\n") : 1;
+	self->arg0 = 0;
+	self->arg1 = 0;
+	self->arg2 = 0;
+}
+
+/* print 2 arg output */
+syscall::utimes:return,
+syscall::munmap:return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start;
+	self->start = 0;
+	this->cpu = vtimestamp - self->vstart;
+	self->vstart = 0;
+	self->code = errno == 0 ? "" : "Err#";
+ 
+	/* print optional fields */
+	OPT_printid  ? printf("%6d/%d:  ", pid, tid) : 1;
+	OPT_relative ? printf("%8d ", vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ", this->elapsed/1000) : 1;
+	OPT_cpu      ? printf("%6d ", this->cpu/1000) : 1;
+ 
+	/* print main data */
+	printf("%s(0x%X, 0x%X)\t\t = %d %s%d\n", probefunc, self->arg0,
+	    self->arg1, (int)arg0, self->code, (int)errno);
+	OPT_stack ? ustack()    : 1;
+	OPT_stack ? trace("\n") : 1;
+	self->arg0 = 0;
+	self->arg1 = 0;
+	self->arg2 = 0;
+}
+
+/* print 3 arg output - default */
+syscall:::return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start;
+	self->start = 0;
+	this->cpu = vtimestamp - self->vstart;
+	self->vstart = 0;
+	self->code = errno == 0 ? "" : "Err#";
+ 
+	/* print optional fields */
+	OPT_printid  ? printf("%6d/%d:  ", pid, tid) : 1;
+	OPT_relative ? printf("%8d ", vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ", this->elapsed/1000) : 1;
+	OPT_cpu      ? printf("%6d ", this->cpu/1000) : 1;
+ 
+	/* print main data */
+	printf("%s(0x%X, 0x%X, 0x%X)\t\t = %d %s%d\n", probefunc, self->arg0,
+	    self->arg1, self->arg2, (int)arg0, self->code, (int)errno);
+	OPT_stack ? ustack()    : 1;
+	OPT_stack ? trace("\n") : 1;
+	self->arg0 = 0;
+	self->arg1 = 0;
+	self->arg2 = 0;
+}
+
+/* program exited */
+proc:::exit
+/(OPT_command || OPT_pid) && pid == $target/
+{
+	exit(0);
+}
+
+/* print counts */
+dtrace:::END
+{
+	OPT_counts == 1 ? printf("\n%-32s %16s\n", "CALL", "COUNT") : 1;
+	OPT_counts == 1 ? printa("%-32s %@16d\n", @Counts) : 1;
+}
+'
+
+### Run DTrace
+if [ $opt_command -eq 1 ]; then
+	/usr/sbin/dtrace -x dynvarsize=$buf -x evaltime=exec -n "$dtrace" \
+	    -c "$command" >&2
+elif [ $opt_pid -eq 1 ]; then
+	/usr/sbin/dtrace -x dynvarsize=$buf -n "$dtrace" -p "$pid" >&2
+else
+	/usr/sbin/dtrace -x dynvarsize=$buf -n "$dtrace" >&2
+fi
diff --git a/external/cddl/dtracetoolkit/dist/dvmstat b/external/cddl/dtracetoolkit/dist/dvmstat
new file mode 100755
index 0000000..5fe2412
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/dvmstat
@@ -0,0 +1,250 @@
+#!/usr/bin/sh
+#
+# dvmstat - vmstat by PID/name/command.
+#           Written using DTrace (Solaris 10 3/05).
+#
+# This program provides vmstat like data for one particular PID, a 
+# process name, or when running a command. It prints statistics
+# every second.
+#
+# $Id: dvmstat,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE:	dvmstat { -p PID | -n name | command }
+#  eg,
+#		dvmstat -p 1871       # examine PID 1871
+#		dvmstat -n tar        # examine processes called "tar"
+#		dvmstat df -h         # run and examine "df -h"
+#
+# FIELDS: 
+#		re	page reclaims		Kbytes
+#		maj	major faults		Kbytes
+#		mf	minor faults		Kbytes
+#		fr	page frees		Kbytes
+#		epi	executable page ins	Kbytes
+#		epo	executable page out	Kbytes
+#		api	anonymous page ins	Kbytes
+#		apo	anonymous page outs	Kbytes
+#		fpi	filesystem page ins	Kbytes
+#		fpo	filesystem page outs	Kbytes
+#		sy	system calls		number
+#
+# SEE ALSO:	vmstat(1M)
+#
+# NOTES:
+#
+# When using dvmstat to run a command - if the command takes some time
+# to execute, dvmstat will print output every second. If the command runs
+# in less than a second, then the only one line of output will be printed.
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 12-Jun-2005	Brendan Gregg	Created this.
+# 08-Jan-2006	   "      "	Last update.
+# 
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_pid=0; opt_name=0; pid=0; pname="."; opt_command=0; command=""
+
+### Process options
+while getopts hn:p: name
+do
+        case $name in
+        p)      opt_pid=1; pid=$OPTARG ;;
+        n)      opt_name=1; pname=$OPTARG ;;
+        h|?)    cat <<-END >&2
+		USAGE: dvmstat [-h] { -p PID | -n name | command }
+		           -p PID          # examine this PID
+		           -n name         # examine this process name
+		  eg,
+		       dvmstat -p 1871     # examine PID 1871
+		       dvmstat -n tar      # examine processes called "tar"
+		       dvmstat df -h       # run and examine "df -h"
+		END
+                exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+
+### Option logic
+if [ $opt_pid -eq 0 -a $opt_name -eq 0 ]; then
+        opt_command=1
+        if [ "$*" = "" ]; then
+                $0 -h
+                exit
+        fi
+        command="$*"
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+dtrace='
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_pid      = '$opt_pid';
+ inline int OPT_name     = '$opt_name';
+ inline int OPT_command  = '$opt_command';
+ inline int PID          = '$pid';
+ inline string NAME      = "'$pname'";
+ inline string COMMAND   = "'$command'";
+ inline int SCREEN       = 21;
+
+ /*
+  * Initialise variables
+  */
+ dtrace:::BEGIN
+ {
+	epi = 0; epo = 0; api = 0; apo = 0; fpi = 0; fpo = 0;
+	re = 0; mf = 0; maj = 0; fr = 0; sy = 0;
+	lines = SCREEN + 1;
+	header = 0;
+ }
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN,
+ dtrace:::END,
+ profile:::tick-1sec
+ /(OPT_command && probename == "END") || 
+  (!(OPT_command && probename == "BEGIN") && lines++ > SCREEN)/
+ {
+	printf("%6s %5s %5s %4s %4s %4s %4s %4s %4s %4s %6s\n",
+	    "re", "maj", "mf", "fr", "epi", "epo", "api", "apo", 
+	    "fpi", "fpo", "sy");
+	lines = 0;
+ }
+
+ /*
+  * Probe events
+  *
+  * this intentionally does not use an associative array for storing data,
+  * for reasons of performance.
+  */
+
+ vminfo:::execpgin
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { epi += arg0; }
+
+ vminfo:::execpgout
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { epo += arg0; }
+
+ vminfo:::anonpgin
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { api += arg0; }
+
+ vminfo:::anonpgout
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { apo += arg0; }
+
+ vminfo:::fspgin
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { fpi += arg0; }
+
+ vminfo:::fspgout
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { fpo += arg0; }
+
+ vminfo:::pgrec
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { re += arg0; }
+
+ vminfo:::as_fault
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { mf += arg0; }
+
+ vminfo:::maj_fault
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { maj += arg0; }
+
+ vminfo:::dfree
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { fr += arg0; }
+
+ syscall:::entry
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { sy++; }
+
+ /* 
+  * Print output line
+  */
+ profile:::tick-1sec,
+ dtrace:::END
+ {
+	/* convert to Kbytes */
+	re  *= `_pagesize / 1024;
+	maj *= `_pagesize / 1024;
+	mf  *= `_pagesize / 1024;
+	fr  *= `_pagesize / 1024;
+	epi *= `_pagesize / 1024;
+	epo *= `_pagesize / 1024;
+	api *= `_pagesize / 1024;
+	apo *= `_pagesize / 1024;
+	fpi *= `_pagesize / 1024;
+	fpo *= `_pagesize / 1024;
+
+	/* print line */
+	printf("%6d %5d %5d %4d %4d %4d %4d %4d %4d %4d %6d\n",
+	    re, maj, mf, fr, epi, epo, api, apo, fpi, fpo, sy);
+
+	/* clear counters */
+	epi = 0; epo = 0; api = 0; apo = 0; fpi = 0; fpo = 0;
+	re = 0; mf = 0; maj = 0; fr = 0; sy = 0;
+ }
+'
+
+### Run DTrace
+if [ $opt_command -eq 1 ]; then
+        /usr/sbin/dtrace -n "$dtrace" -x evaltime=exec -c "$command" >&2
+else
+        /usr/sbin/dtrace -n "$dtrace" >&2
+fi
+
diff --git a/external/cddl/dtracetoolkit/dist/errinfo b/external/cddl/dtracetoolkit/dist/errinfo
new file mode 100755
index 0000000..bf87adb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/errinfo
@@ -0,0 +1,180 @@
+#!/usr/bin/perl
+#
+# errinfo - report on syscall failures and print errno error messages.
+#	    Written using Perl and DTrace (Solaris 10 03/05)
+#
+# When system calls fail, an errno variable is set to convay a meaningful
+# message to the end user - so long as the program does something with it
+# (eg, "ls" printing "No such file or directory"). This program fetches
+# and prints details for all syscall failures along with their message,
+# whether the failing program is already printing this info or not.
+#
+# $Id: errinfo,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE:	errinfo [-ch] [-p PID] [-n name]
+#
+#		-c		# counts - aggregate style
+#		-p PID		# examine this PID only
+#		-n name		# examine processes with this name only
+#	eg,
+#		errinfo			# default output - snoop event style
+#		errinfo -n ssh		# examine "ssh" processes only
+#		errinfo -cn ssh		# examine "ssh" using counts
+#
+# FIELDS:
+#		EXEC		Program name (truncated)
+#		SYSCALL		System call name
+#		ERR		Value of errno
+#		DESC		Description of errno message
+#
+# SEE ALSO:	/usr/include/sys/errno.h
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 18-Apr-2005   Brendan Gregg   Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+use Getopt::Std;
+
+#
+#  Defaults
+#
+$FILTER = "";
+$COUNT = 0;
+
+#
+#  Command line arguments
+#
+&Usage() if $ARGV[0] eq "--help";
+getopts('ch:n:p:') || &Usage();
+&Usage() if $opt_h;
+$COUNT = 1 if $opt_c;
+$FILTER = "&& execname == \"$opt_n\"" if defined $opt_n;
+$FILTER = "&& pid == $opt_p" if defined $opt_p;
+
+#
+#  Load errno descriptions
+#
+open(ERRNO,"/usr/include/sys/errno.h") || die "ERROR1: reading errno.h: $!\n";
+while (chomp($line = <ERRNO>)) {
+	next unless $line =~ /^#define/;
+	($errno,$desc) = $line =~ /^#define\s+\S+\s+(\d+)\s+\/\*(.*)\*\//;
+	$Errno{$errno} = $desc;
+}
+close ERRNO;
+
+#
+#  Declare DTrace script
+#
+ if ($COUNT) {		# aggregate style
+$dtrace = <<END;
+/usr/sbin/dtrace -n '
+	#pragma D option quiet
+	syscall:::return 
+	/errno != 0 && pid != \$pid $FILTER/ 
+	{ 
+		\@Errs[execname, probefunc, errno] = count(); 
+	}
+	dtrace:::END {
+		printa("%s %s %d %\@d\\n", \@Errs);
+	}'
+END
+ } else {		# snoop style
+$dtrace = <<END; 
+/usr/sbin/dtrace -n '
+	#pragma D option quiet
+	#pragma D option switchrate=5hz
+	syscall:::return 
+	/errno != 0 && pid != \$pid $FILTER/ 
+	{ 
+		printf("%s %s %d\\n", execname, probefunc, errno); 
+	}'
+END
+ }
+
+#
+#  Cleanup on signals
+#
+$SIG{INT} = \&Cleanup_Signal;    # Ctrl-C
+$SIG{QUIT} = \&Cleanup_Signal;   # Ctrl-\
+$SIG{TERM} = \&Cleanup_Signal;   # TERM
+
+#
+#  Run DTrace, process output
+#
+
+if ($COUNT) {
+	print STDERR "Tracing... Hit Ctrl-C to end.\n";
+	$header = 1;
+} else {
+	printf("%16s %16s %4s  %s\n","EXEC","SYSCALL","ERR","DESC");
+}
+
+### Open DTrace
+open(DTRACE,"$dtrace |") || die "ERROR2: Can't start dtrace (perms?): $!\n";
+
+### Process DTrace output
+while (chomp($line = <DTRACE>)) {
+
+	### Print count header
+	if ($COUNT && $header) {
+		printf("\n%16s %16s %4s %6s  %s\n",
+		 "EXEC","SYSCALL","ERR","COUNT","DESC");
+		$header = 0;
+	}
+
+	### Split data
+	($execname,$syscall,$errno,$counts) = split(' ',$line);
+	next if $errno eq "";
+
+	### Fetch errno description
+	$desc = $Errno{$errno};
+
+	### Print output line
+	if ($COUNT) {
+		printf("%16s %16s %4d %6d %s\n",
+		 $execname,$syscall,$errno,$counts,$desc);
+	} else {
+		printf("%16s %16s %4d %s\n",$execname,$syscall,$errno,$desc);
+	}
+}
+close(DTRACE);
+
+#
+#  Triggered by signals
+#
+sub Cleanup_Signal {
+}
+
+#
+#  Usage message
+#
+sub Usage {
+        print STDERR "USAGE: errinfo [-ch] [-p PID] [-n name]\n";
+	print STDERR <<ENDUSAGE;
+     eg,
+       errinfo       # default output - snoop event style
+          -c         # counts - aggregate style
+          -p 871     # examine PID 871 only
+          -n ssh     # examine processes with the name "ssh" only
+          -cn ssh    # examine "ssh" using counts
+ENDUSAGE
+        exit(1);
+}
diff --git a/external/cddl/dtracetoolkit/dist/execsnoop b/external/cddl/dtracetoolkit/dist/execsnoop
new file mode 100755
index 0000000..205f28d
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/execsnoop
@@ -0,0 +1,167 @@
+#!/bin/sh
+#
+# execsnoop - snoop process execution as it occurs.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# $Id: execsnoop,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE:	execsnoop [-a|-A|-ehsvJ] [-c command]
+#
+#		execsnoop	# default output
+#
+#		-a		# print all data
+#		-A		# dump all data, space delimited
+#		-e		# safe output - parseable
+#		-s		# print start time, us
+#		-v		# print start time, string
+#		-J		# print jail ID
+#		-c command	# command name to snoop
+#	eg,
+#		execsnoop -v		# human readable timestamps
+#		execsnoop -J		# print jail ID
+#		execsnoop -c ls		# snoop ls commands only
+#
+# The parseable output ensures that the ARGS field doesn't contain
+# any "\n"s, which normally sometimes can - and would wreck postprocessing.
+#
+# FIELDS:
+#		UID		User ID
+#		PID		Process ID
+#		PPID		Parent Process ID
+#		COMM		command name for the process
+#		ARGS		argument listing for the process
+#		JAIL ID		Jail ID	
+#		TIME		timestamp for the command, us
+#		STRTIME		timestamp for the command, string
+#
+# SEE ALSO: BSM auditing.
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 27-Mar-2004	Brendan Gregg	Created this.
+# 21-Jan-2005	   "	  "	Wrapped in sh to provide options.
+# 08-May-2005 	   "      "	Rewritten for performance.
+# 14-May-2005 	   "      "	Added zonename.
+# 02-Jul-2005 	   "      "	Added projid, safe printing.
+# 11-Sep-2005	   "      "	Increased switchrate.
+# 11-Sep-2005	   "      "	Last update.
+# 
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_dump=0; opt_cmd=0; opt_time=0; opt_timestr=0; filter=0; command=.
+opt_jailid=0; opt_safe=0
+
+### process options
+while getopts aAc:ehsvJ name
+do
+	case $name in
+	a)	opt_time=1; opt_timestr=1; opt_jailid=1 ;;
+	A)	opt_dump=1 ;;
+	c)	opt_cmd=1; command=$OPTARG ;;
+	e)	opt_safe=1 ;;
+	s)	opt_time=1 ;;
+	v)	opt_timestr=1 ;;
+	J)	opt_jailid=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: execsnoop [-a|-A|-ehjsvJ] [-c command]
+		       execsnoop                # default output
+		                -a              # print all data
+		                -A              # dump all data, space delimited
+		                -e              # safe output, parseable
+		                -s              # print start time, us
+		                -v              # print start time, string
+		                -J              # print jail ID 
+		                -c command      # command name to snoop
+		  eg,
+		        execsnoop -v            # human readable timestamps
+		        execsnoop -J		# print jail ID 
+		        execsnoop -c ls         # snoop ls commands only
+		END
+		exit 1
+	esac
+done
+
+### option logic
+if [ $opt_dump -eq 1 ]; then
+	opt_time=0; opt_timestr=0; opt_jailid=0
+fi
+if [ $opt_cmd -eq 1 ]; then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_dump 	= '$opt_dump';
+ inline int OPT_cmd 	= '$opt_cmd';
+ inline int OPT_time 	= '$opt_time';
+ inline int OPT_timestr	= '$opt_timestr';
+ inline int OPT_jailid  = '$opt_jailid';
+ inline int OPT_safe 	= '$opt_safe';
+ inline int FILTER 	= '$filter';
+ inline string COMMAND 	= "'$command'";
+ 
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+ 
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	/* print optional headers */
+ 	OPT_time    ? printf("%-14s ", "TIME") : 1;
+ 	OPT_timestr ? printf("%-20s ", "STRTIME") : 1;
+ 	OPT_jailid    ? printf("%-10s ", "JAIL ID") : 1;
+
+	/* print main headers */
+	OPT_dump    ? printf("%s %s %s %s %s %s %s\n",
+	    "TIME", "JAIL ID", "UID", "PID", "PPID", "COMM", "ARGS") :
+	    printf("%5s %6s %6s %s\n", "UID", "PID", "PPID", "ARGS");
+ }
+
+ /*
+  * Print exec event
+  */
+ syscall::execve:return
+ /(FILTER == 0) || (OPT_cmd == 1 && COMMAND == execname)/ 
+ {
+	/* print optional fields */
+ 	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_jailid ? printf("%-10d ", curpsinfo->pr_jailid) : 1;
+
+	/* print main data */
+	OPT_dump ? printf("%d %d %d %d %d %s ", timestamp/1000,
+	    curpsinfo->pr_jailid, uid, pid, ppid, execname) :
+	    printf("%5d %6d %6d ", uid, pid, ppid);
+	OPT_safe ? printf("%S\n", curpsinfo->pr_psargs) :
+	    printf("%s\n", curpsinfo->pr_psargs);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/hotkernel b/external/cddl/dtracetoolkit/dist/hotkernel
new file mode 100755
index 0000000..ba68775
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/hotkernel
@@ -0,0 +1,125 @@
+#!/usr/bin/perl -w
+#
+# hotkernel - sample on-CPU kernel-level functions and modules.
+#             Written using Perl and DTrace (Solaris 10 03/05)
+#
+# This samples the on-CPU function at 1001 Hertz, for a simple yet
+# effective kernel-level profiling tool for sampling exclusive function time.
+# The output will identify which function is on the CPU the most - which is
+# the hottest. See Notes/ALLexclusive_notes.txt for an explanation of
+# exclusive time.
+#
+# $Id: hotkernel,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE:        hotkernel [-hm]
+#
+#		-h              # help
+#		-m              # match modules, not functions
+#       eg,
+#		hotkernel       # sample kernel functions
+#		hotkernel -m    # sample kernel modules
+#
+# FIELDS:
+#		FUNCTION        Function name
+#		MODULE          Module name
+#		COUNT           Number of samples
+#		PCNT            Percentage of total samples
+#
+# COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 29-Jun-2006	Brendan Gregg	Created this.
+# 29-Jun-2006	   "      "	Last update.
+#
+
+use strict;
+use Getopt::Std;
+
+#
+# Command Line Arguments
+#
+my $args;
+usage() if defined $ARGV[0] and $ARGV[0] eq "--help";
+getopts('hm') or usage();
+usage() if defined $main::opt_h and $main::opt_h;
+my $mods = defined $main::opt_m and $main::opt_m ? 1 : 0;
+
+#
+# Cleanup on signals
+#
+$SIG{INT} = \&cleanupsig;    # Ctrl-C
+$SIG{QUIT} = \&cleanupsig;   # Ctrl-\
+$SIG{TERM} = \&cleanupsig;   # TERM
+
+#
+# Declare DTrace script
+#
+my $dtrace = <<END;
+/usr/sbin/dtrace -n '
+	#pragma D option quiet
+	profile:::profile-1001hz
+	/arg0/
+	{
+		\@pc[arg0] = count();
+	}
+	dtrace:::END
+	{
+		printa("%a %\@d\\n", \@pc);
+	}
+'
+END
+
+#
+# Run DTrace, process output
+#
+my %Count;
+my $total;
+open DTRACE, "$dtrace |" or die "ERROR1: Can't run dtrace (perms?): $!\n";
+print "Sampling... Hit Ctrl-C to end.\n";
+while (my $line = <DTRACE>) {
+    next if $line =~ /^\s*$/;
+    my ($addr, $count) = split ' ', $line;
+    my ($name, $offset) = split /\+/, $addr;
+    next if $name eq "0x0";
+    $name =~ s/\`.*// if $mods;
+    $Count{$name} += $count;
+    $total += $count;
+}
+close DTRACE;
+
+#
+# Print final report
+#
+printf "\n%-52s %8s %6s\n", $mods ? "MODULE" : "FUNCTION", "COUNT", "PCNT";
+foreach my $name (sort { $Count{$a} <=> $Count{$b} } keys %Count) {
+    printf "%-52s %8d %5.1f%%\n", $name, $Count{$name},
+                                  100 * $Count{$name} / ($total ? $total : 1);
+}
+
+#
+# Subroutines
+#
+sub cleanupsig {
+}
+sub usage {
+    print STDERR "USAGE: hotkernel [-hm]\n";
+    print STDERR "   eg,\n";
+    print STDERR "       hotkernel       # sample kernel functions\n";
+    print STDERR "       hotkernel -m    # sample kernel modules\n";
+    exit 1;
+}
diff --git a/external/cddl/dtracetoolkit/dist/hotuser b/external/cddl/dtracetoolkit/dist/hotuser
new file mode 100755
index 0000000..8077944
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/hotuser
@@ -0,0 +1,139 @@
+#!/usr/bin/perl -w
+#
+# hotuser - sample on-CPU user-level functions and libraries.
+#           Written using Perl and DTrace (Solaris 10 03/05)
+#
+# This samples the on-CPU function at 1001 Hertz, for a simple yet
+# effective user-level profiling tool for sampling exclusive function time.
+# The output will identify which function is on the CPU the most - which
+# is the hottest. See Notes/ALLexclusive_notes.txt for an explanation of
+# exclusive time.
+#
+# $Id: hotuser,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE:        hotuser [-hl] { -c command | -p PID }
+#
+#		-h              # help
+#		-l              # match libraries, not functions
+#		-p PID          # examine this PID
+#		-c command      # run and examine this command
+#       eg,
+#		hotuser -p 81   # sample user functions from PID 81
+#		hotuser -lp 81  # sample user libraries from PID 81
+#		hotuser -p `pgrep -n Xorg`	# sample Xorg
+#
+# FIELDS:
+#		FUNCTION        Function name
+#		LIBRARY         Library name
+#		COUNT           Number of samples
+#		PCNT            Percentage of total samples
+#
+# COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 29-Jun-2006	Brendan Gregg	Created this.
+# 29-Jun-2006	   "      "	Last update.
+#
+
+use strict;
+use Getopt::Std;
+
+#
+# Command Line Arguments
+#
+my $args;
+usage() if defined $ARGV[0] and $ARGV[0] eq "--help";
+getopts('c:hlp:') or usage();
+usage() if defined $main::opt_h and $main::opt_h;
+my $libs = defined $main::opt_l and $main::opt_l ? 1 : 0;
+if (defined $main::opt_c) {
+    $args = "-c $main::opt_c";
+}
+elsif (defined $main::opt_p) {
+    $args = "-p $main::opt_p";
+}
+else {
+    usage();
+}
+
+#
+# Cleanup on signals
+#
+$SIG{INT} = \&cleanupsig;    # Ctrl-C
+$SIG{QUIT} = \&cleanupsig;   # Ctrl-\
+$SIG{TERM} = \&cleanupsig;   # TERM
+
+#
+# Declare DTrace script
+#
+my $dtrace = <<END;
+/usr/sbin/dtrace -n '
+	#pragma D option quiet
+	profile:::profile-1001hz
+	/pid == \$target/ 
+	{
+		\@pc[arg1] = count();
+	}
+	dtrace:::END
+	{
+		printa("OUT: %A %\@d\\n", \@pc);
+	}
+' '$args'
+END
+
+#
+# Run DTrace, process output
+#
+my %Count;
+my $total;
+open DTRACE, "$dtrace |" or die "ERROR1: Can't run dtrace (perms?): $!\n";
+print "Sampling... Hit Ctrl-C to end.\n";
+while (my $line = <DTRACE>) {
+    next if $line =~ /^\s*$/;
+    next if $line !~ /^OUT: /;
+    my ($tag, $addr, $count) = split ' ', $line;
+    my ($name, $offset) = split /\+/, $addr;
+    next if $name eq "0x0";
+    $name =~ s/\`.*// if $libs;
+    $Count{$name} += $count;
+    $total += $count;
+}
+close DTRACE;
+
+#
+# Print final report
+#
+printf "\n%-52s %8s %6s\n", $libs ? "LIBRARY" : "FUNCTION", "COUNT", "PCNT";
+foreach my $name (sort { $Count{$a} <=> $Count{$b} } keys %Count) {
+    printf "%-52s %8d %5.1f%%\n", $name, $Count{$name},
+                                  100 * $Count{$name} / ($total ? $total : 1);
+}
+
+#
+# Subroutines
+#
+sub cleanupsig {
+}
+sub usage {
+    print STDERR "USAGE: hotuser [-hl] { -c command | -p PID }\n";
+    print STDERR "   eg,\n";
+    print STDERR "       hotuser -p 81     # sample user funcs for PID 81\n";
+    print STDERR "       hotuser -lp 81    # sample user libs for PID 81\n";
+    print STDERR "       hotuser -p `pgrep -n Xorg`     # sample Xorg\n";
+    exit 1;
+}
diff --git a/external/cddl/dtracetoolkit/dist/install b/external/cddl/dtracetoolkit/dist/install
new file mode 100755
index 0000000..1962c46
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/install
@@ -0,0 +1,151 @@
+#!/usr/bin/ksh
+#
+# install - installer for the DTraceToolkit
+#
+# This is a fairly simple script, most of it is error checking.
+# All the script does is copy the DTraceToolkit files to another directory,
+# with various checks. The user could have copied the files themselves, this
+# script doesn't do anything special to them. It's really here in case
+# people extrace the toolkit and go looking for an installer.
+#
+# 15-May-2005	Brendan Gregg	Created this.
+
+DEBUG=0		# print debug data
+TEETH=1		# does this script have teeth
+SLEEP=1		# pause on messages
+PATH=/usr/bin
+
+### Ensure we know where we are,
+dir=${0%/*}
+cd $dir
+(( DEBUG )) && print "DEBUG: dir $dir"
+
+### Print welcome,
+print "DTraceToolkit Installation\n---------------------------"
+cat Version
+print "\nhit Ctrl-C any time you wish to quit.\n\n"
+
+### Fetch location,
+print -n "Enter target directory for installation [/opt/DTT]: "
+read loc junk
+if [[ "$loc" == "" ]]; then loc="/opt/DTT"; fi
+print ""
+(( DEBUG )) && print "DEBUG: loc $loc"
+
+### Sanity check,
+if print "$loc" | grep '^[./]*$' > /dev/null; then 
+	print "ERROR1: Location \"$loc\" is ambiguous.\n."
+	(( SLEEP )) && sleep 1
+	print ".\tTry a full path, like \"/opt/DTT\"\n."
+	print ".\tSorry!\n"
+	exit 1
+fi
+
+### Evilness check,
+if print "$loc" | grep '[^a-zA-Z0-9_.-/]' > /dev/null; then 
+	print "ERROR2: Sorry, location \"$loc\" contains bad characters.\n."
+	(( SLEEP )) && sleep 1
+	print ".\tTry a path like \"/opt/DTT\"\n."
+	print ".\tSorry!\n"
+	exit 2
+fi
+
+### Process location,
+basename=${loc%/*}
+nodename=${loc##*/}
+if [[ "$basename" == "" ]]; then basename="/"; fi
+(( DEBUG )) && print "DEBUG: basename $basename"
+(( DEBUG )) && print "DEBUG: nodename $nodename"
+
+### Check parent dir exists,
+if [[ ! -d "$basename" ]]; then
+	print "ERROR3: Parent directory \"$basename\" does not exist!\n."
+	(( SLEEP )) && sleep 1
+	print ".\tI'm not sure what you want me to do here, if you were"
+	print ".\tserious about the above parent directory - then run"
+	print ".\ta \"mkdir -p $basename\" first, then rerun this script.\n."
+	print ".\tSorry!\n"
+	exit 3
+fi
+
+### Check parent dir perms,
+if [[ ! -w "$basename" ]]; then
+	print "ERROR4: Can't write to parent directory \"$basename\"!\n."
+	(( SLEEP )) && sleep 1
+	print ".\tSince I can't write to this directory, I can't install the"
+	print ".\tDTraceToolkit. You are currently logged in as,\n."
+	id | sed 's/^/.		/'
+	print ".\n.\tand the directory has permissions,\n."
+	ls -ld "$basename" | awk '{ print ".\t\t",$1,$2,$3,$4,"..." }'
+	owner=`ls -ld "$basename" | awk '{ print $3 }'`
+	print ".\n.\tMaybe you need to run \"su - $owner\" first?\n."
+	print ".\tSorry!\n"
+	exit 4
+fi
+
+### Check if toolkit is already installed,
+if [[ -d "$loc" ]]; then
+	print "Warning: Possible old version of the DTraceToolkit found."
+	print "\tThis will DELETE the files in $loc, then install the toolkit."
+	(( SLEEP )) && sleep 1
+	if [[ ! -f "$loc/Version" ]]; then
+		print "\nWARNING: $loc doesn't look like an old DTraceToolkit!"
+		(( SLEEP )) && sleep 1
+	fi
+	print -n "\nContinue (will run \"rm -rf $loc\"). Are you sure (y/N)?: "
+	read ans junk
+	if [[ "$ans" != "y" ]]; then
+		print "\nExiting..."
+		exit 5
+	fi
+	if (( TEETH )); then
+		rm -rf "$loc"
+	else
+		print COMMAND: rm -rf \"$loc\"
+	fi
+fi
+
+### Make new toolkit dir,
+print "\nMaking directory \"$loc\"...\n"
+if (( TEETH )); then
+	mkdir -p "$loc"
+else
+	print COMMAND: mkdir -p \"$loc\"
+fi
+if [[ ! -d "$loc" || ! -w "$loc" ]]; then
+	print "ERROR6: Creation of \"$loc\" failed.\n."
+	(( SLEEP )) && sleep 1
+	print ".\tCheck directory location and try again.\n."
+	print ".\tSorry!\n"
+	exit 6
+fi
+
+### Copy files across,
+print "\nCopying DTraceToolkit files...\n"
+if (( TEETH )); then
+	tar cf - . | (cd "$loc"; tar xvf -)
+else 
+	print COMMAND: "tar cf - . | (cd \"$loc\"; tar xvf -)"
+fi
+error=$?
+if [[ ! -f "$loc/install" ]]; then error=1; fi
+if (( error )); then
+	print "ERROR7: Failure during copy.\n."
+	(( SLEEP )) && sleep 1
+	print ".\tCheck source \"$dir\" and destination \"$loc\", then"
+	print ".\ttry again.\n."
+	print ".\tSorry!\n"
+	exit 7
+fi
+
+### Delete installer,
+if (( TEETH )); then
+	rm "$loc/install"
+else
+	print COMMAND: rm \"$loc/install\"
+fi
+
+### Finished,
+print "\nFinished.\n"
+print "Installed to \"$loc\". See $loc/Guide for how to get started.\n"
+
diff --git a/external/cddl/dtracetoolkit/dist/iopattern b/external/cddl/dtracetoolkit/dist/iopattern
new file mode 100755
index 0000000..765d56e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/iopattern
@@ -0,0 +1,277 @@
+#!/usr/bin/ksh
+#
+# iopattern - print disk I/O pattern.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# This prints details on the I/O access pattern for the disks, such as
+# percentage of events that were of a random or sequential nature.
+# By default totals for all disks are printed.
+#
+# $Id: iopattern,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE:	iopattern [-v] [-d device] [-f filename] [-m mount_point] 
+#			  [interval [count]]
+#
+#		       -v       	# print timestamp, string
+#		       -d device	# instance name to snoop (eg, dad0)
+#		       -f filename	# full pathname of file to snoop
+#		       -m mount_point	# this FS only (will skip raw events)
+#  eg,
+#		iopattern   	# default output, 1 second intervals
+#		iopattern 10  	# 10 second samples
+#		iopattern 5 12	# print 12 x 5 second samples
+#	        iopattern -m /  # snoop events on filesystem / only
+# 	
+# FIELDS:
+#		%RAN  		percentage of events of a random nature
+#		%SEQ 	 	percentage of events of a sequential nature
+#		COUNT		number of I/O events
+#		MIN		minimum I/O event size
+#		MAX		maximum I/O event size
+#		AVG		average I/O event size
+#		KR		total kilobytes read during sample
+#		KW		total kilobytes written during sample
+#		DEVICE		device name
+#		MOUNT		mount point
+#		FILE		filename
+#		TIME		timestamp, string
+# 
+# NOTES:
+#
+#  An event is considered random when the heads seek. This program prints
+#  the percentage of events that are random. The size of the seek is not
+#  measured - it's either random or not.
+#
+# SEE ALSO: iosnoop, iotop
+# 
+# IDEA: Ryan Matteson
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 25-Jul-2005	Brendan Gregg	Created this.
+# 25-Jul-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_device=0; opt_file=0; opt_mount=0; opt_time=0
+filter=0; device=.; filename=.; mount=.; interval=1; count=-1
+
+### process options
+while getopts d:f:hm:v name
+do
+	case $name in
+	d)	opt_device=1; device=$OPTARG ;;
+	f)	opt_file=1; filename=$OPTARG ;;
+	m)	opt_mount=1; mount=$OPTARG ;;
+	v)	opt_time=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: iopattern [-v] [-d device] [-f filename] [-m mount_point]
+		                 [interval [count]]
+ 
+		                -v              # print timestamp
+		                -d device       # instance name to snoop 
+		                -f filename     # snoop this file only
+		                -m mount_point  # this FS only 
+		   eg,
+		        iopattern         # default output, 1 second samples
+		        iopattern 10      # 10 second samples
+		        iopattern 5 12    # print 12 x 5 second samples
+		        iopattern -m /    # snoop events on filesystem / only
+		END
+		exit 1
+	esac
+done
+
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_device || opt_mount || opt_file )); then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_time 	= '$opt_time';
+ inline int OPT_device 	= '$opt_device';
+ inline int OPT_mount 	= '$opt_mount';
+ inline int OPT_file 	= '$opt_file';
+ inline int INTERVAL 	= '$interval';
+ inline int COUNTER 	= '$count';
+ inline int FILTER 	= '$filter';
+ inline string DEVICE 	= "'$device'";
+ inline string FILENAME = "'$filename'";
+ inline string MOUNT 	= "'$mount'";
+ 
+ #pragma D option quiet
+
+ int last_loc[string];
+
+ /*
+  * Program start
+  */
+ dtrace:::BEGIN 
+ {
+        /* starting values */
+	diskcnt = 0;
+	diskmin = 0;
+	diskmax = 0;
+	diskran = 0;
+	diskr = 0;
+	diskw = 0;
+        counts = COUNTER;
+        secs = INTERVAL;
+	LINES = 20;
+	line = 0;
+	last_event[""] = 0;
+ }
+
+ /*
+  * Print header
+  */
+ profile:::tick-1sec
+ /line <= 0 /
+ {
+	/* print optional headers */
+	OPT_time   ? printf("%-20s ", "TIME")  : 1;
+	OPT_device ? printf("%-9s ", "DEVICE") : 1;
+	OPT_mount  ? printf("%-12s ", "MOUNT") : 1;
+	OPT_file   ? printf("%-12s ", "FILE") : 1;
+
+	/* print header */
+	printf("%4s %4s %6s %6s %6s %6s %6s %6s\n",
+	    "%RAN", "%SEQ", "COUNT", "MIN", "MAX", "AVG", "KR", "KW");
+
+	line = LINES;
+ }
+
+ /*
+  * Check event is being traced
+  */
+ io:genunix::done
+ { 
+	/* default is to trace unless filtering */
+	self->ok = FILTER ? 0 : 1;
+
+	/* check each filter */
+	(OPT_device == 1 && DEVICE == args[1]->dev_statname)? self->ok = 1 : 1;
+	(OPT_file == 1 && FILENAME == args[2]->fi_pathname) ? self->ok = 1 : 1;
+	(OPT_mount == 1 && MOUNT == args[2]->fi_mount)  ? self->ok = 1 : 1;
+ }
+
+ /*
+  * Process and Print completion
+  */
+ io:genunix::done
+ /self->ok/
+ {
+	/*
+	 * Save details
+	 */
+	this->loc = args[0]->b_blkno * 512;
+	this->pre = last_loc[args[1]->dev_statname];
+	diskr += args[0]->b_flags & B_READ ? args[0]->b_bcount : 0;
+	diskw += args[0]->b_flags & B_READ ? 0 : args[0]->b_bcount;
+	diskran += this->pre == this->loc ? 0 : 1;
+	diskcnt++;
+	diskmin = diskmin == 0 ? args[0]->b_bcount :
+	    (diskmin > args[0]->b_bcount ? args[0]->b_bcount : diskmin);
+	diskmax = diskmax < args[0]->b_bcount ? args[0]->b_bcount : diskmax;
+
+	/* save disk location */
+	last_loc[args[1]->dev_statname] = this->loc + args[0]->b_bcount;
+
+	/* cleanup */
+	self->ok = 0;
+ }
+
+ /*
+  * Timer
+  */
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /*
+  * Print Output
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* calculate diskavg */
+	diskavg = diskcnt > 0 ? (diskr + diskw) / diskcnt : 0;
+
+	/* convert counters to Kbytes */
+	diskr /= 1024;
+	diskw /= 1024;
+
+	/* convert to percentages */
+	diskran = diskcnt == 0 ? 0 : (diskran * 100) / diskcnt;
+	diskseq = diskcnt == 0 ? 0 : 100 - diskran;
+
+	/* print optional fields */
+	OPT_time   ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_device ? printf("%-9s ", DEVICE) : 1;
+	OPT_mount  ? printf("%-12s ", MOUNT) : 1;
+	OPT_file   ? printf("%-12s ", FILENAME) : 1;
+
+	/* print data */
+	printf("%4d %4d %6d %6d %6d %6d %6d %6d\n",
+	    diskran, diskseq, diskcnt, diskmin, diskmax, diskavg,
+	    diskr, diskw);
+
+	/* clear data */
+	diskmin = 0;
+	diskmax = 0;
+	diskcnt = 0;
+	diskran = 0;
+	diskr = 0;
+	diskw = 0;
+
+	secs = INTERVAL;
+	counts--;
+	line--;
+ }
+
+ /*
+  * End of program
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/iosnoop b/external/cddl/dtracetoolkit/dist/iosnoop
new file mode 100755
index 0000000..c4e49cb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/iosnoop
@@ -0,0 +1,367 @@
+#!/usr/bin/sh
+#
+# iosnoop - A program to print disk I/O events as they happen, with useful
+#           details such as UID, PID, filename, command, etc. 
+#           Written using DTrace (Solaris 10 3/05).
+#
+# This is measuring disk events that have made it past system caches.
+#
+# $Id: iosnoop,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE: 	iosnoop [-a|-A|-DeghiNostv] [-d device] [-f filename] 
+#			[-m mount_point] [-n name] [-p PID]
+#
+#		iosnoop		# default output
+#
+#		-a		# print all data (mostly)
+#		-A		# dump all data, space delimited
+#		-D		# print time delta, us (elapsed)
+#		-e		# print device name
+#		-g		# print command arguments
+#		-i		# print device instance
+#		-N		# print major and minor numbers
+#		-o		# print disk delta time, us 
+#		-s		# print start time, us
+#		-t 		# print completion time, us
+#		-v		# print completion time, string
+#		-d device	# instance name to snoop (eg, dad0)
+#		-f filename	# full pathname of file to snoop
+#		-m mount_point	# this FS only (will skip raw events)
+#		-n name		# this process name only
+#		-p PID		# this PID only
+#  eg,
+#		iosnoop -v	# human readable timestamps
+#		iosnoop -N	# print major and minor numbers
+#		iosnoop -m /	# snoop events on the root filesystem only
+# 	
+# FIELDS:
+#		UID		user ID
+#		PID		process ID
+#		PPID		parennt process ID
+#		COMM		command name for the process
+#		ARGS		argument listing for the process
+#		SIZE		size of operation, bytes
+#		BLOCK		disk block for the operation (location)
+#		STIME	 	timestamp for the disk request, us
+#		TIME		timestamp for the disk completion, us
+#		DELTA		elapsed time from request to completion, us
+#		DTIME		time for disk to complete request, us
+#		STRTIME		timestamp for the disk completion, string
+#		DEVICE  	device name
+#		INS     	device instance number
+#		D		direction, Read or Write
+#		MOUNT		mount point
+#		FILE		filename (basename) for io operation
+# 
+# NOTE:
+# - There are two different delta times reported. -D prints the
+#   elapsed time from the disk request (strategy) to the disk completion
+#   (iodone); -o prints the time for the disk to complete that event 
+#   since it's last event (time between iodones), or, the time to the 
+#   strategy if the disk had been idle. 
+# - When filtering on PID or process name, be aware that poor disk event
+#   times may be due to events that have been filtered away, for example
+#   another process that may be seeking the disk heads elsewhere.
+#
+# SEE ALSO: BigAdmin: DTrace, http://www.sun.com/bigadmin/content/dtrace
+#	    Solaris Dynamic Tracing Guide, http://docs.sun.com
+#	    DTrace Tools, http://www.brendangregg.com/dtrace.html
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 12-Mar-2004	Brendan Gregg	Created this, build 51.
+# 23-May-2004	   "	  "	Fixed mntpt bug.
+# 10-Oct-2004	   "      "	Rewritten to use the io provider, build 63.
+# 04-Jan-2005	   "	  "	Wrapped in sh to provide options.
+# 08-May-2005	   "      "	Rewritten for perfromance.
+# 15-Jul-2005	   "      "	Improved DTIME calculation.
+# 25-Jul-2005	   "      "	Added -p, -n. Improved code.
+# 17-Sep-2005	   "      "	Increased switchrate.
+# 17-Sep-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_dump=0; opt_device=0; opt_delta=0; opt_devname=0; opt_file=0; opt_args=0; 
+opt_mount=0; opt_start=0 opt_end=0; opt_endstr=0; opt_ins=0; opt_nums=0
+opt_dtime=0; filter=0; device=.; filename=.; mount=.; pname=.; pid=0
+opt_name=0; opt_pid=0
+
+### process options
+while getopts aAd:Def:ghim:Nn:op:stv name
+do
+	case $name in
+	a)	opt_devname=1; opt_args=1; opt_endstr=1; opt_nums=1 ;;
+	A)	opt_dump=1 ;;
+	d)	opt_device=1; device=$OPTARG ;;
+	D)	opt_delta=1 ;;
+	e)	opt_devname=1 ;;
+	f)	opt_file=1; filename=$OPTARG ;;
+	g)	opt_args=1 ;;
+	i)	opt_ins=1 ;;
+	N)	opt_nums=1 ;;
+	n)	opt_name=1; pname=$OPTARG ;;
+	o)	opt_dtime=1 ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	m)	opt_mount=1; mount=$OPTARG ;;
+	s)	opt_start=1 ;;
+	t)	opt_end=1 ;;
+	v)	opt_endstr=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: iosnoop [-a|-A|-DeghiNostv] [-d device] [-f filename]
+		               [-m mount_point] [-n name] [-p PID]
+		       iosnoop          # default output
+		                -a      # print all data (mostly)
+		                -A      # dump all data, space delimited
+		                -D      # print time delta, us (elapsed)
+		                -e      # print device name
+		                -g      # print command arguments
+		                -i      # print device instance
+		                -N      # print major and minor numbers
+		                -o      # print disk delta time, us
+		                -s      # print start time, us
+		                -t      # print completion time, us
+		                -v      # print completion time, string
+		                -d device       # instance name to snoop 
+		                -f filename     # snoop this file only
+		                -m mount_point  # this FS only 
+		                -n name         # this process name only 
+		                -p PID          # this PID only 
+		   eg,
+		        iosnoop -v      # human readable timestamps
+		        iosnoop -N      # print major and minor numbers
+		        iosnoop -m /    # snoop events on filesystem / only
+		END
+		exit 1
+	esac
+done
+
+### option logic
+if [ $opt_dump -eq 1 ]; then
+	opt_delta=0; opt_devname=0; opt_args=2; opt_start=0; 
+	opt_end=0; opt_endstr=0; opt_nums=0; opt_ins=0; opt_dtime=0
+fi
+if [ $opt_device -eq 1 -o $opt_file -eq 1 -o $opt_mount -eq 1 -o \
+    $opt_name -eq 1 -o $opt_pid -eq 1 ]; then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_dump 	= '$opt_dump';
+ inline int OPT_device 	= '$opt_device';
+ inline int OPT_delta 	= '$opt_delta';
+ inline int OPT_devname = '$opt_devname';
+ inline int OPT_file 	= '$opt_file';
+ inline int OPT_args 	= '$opt_args';
+ inline int OPT_ins  	= '$opt_ins';
+ inline int OPT_nums  	= '$opt_nums';
+ inline int OPT_dtime 	= '$opt_dtime';
+ inline int OPT_mount 	= '$opt_mount';
+ inline int OPT_start 	= '$opt_start';
+ inline int OPT_pid 	= '$opt_pid';
+ inline int OPT_name 	= '$opt_name';
+ inline int OPT_end 	= '$opt_end';
+ inline int OPT_endstr 	= '$opt_endstr';
+ inline int FILTER 	= '$filter';
+ inline int PID 	= '$pid';
+ inline string DEVICE 	= "'$device'";
+ inline string FILENAME = "'$filename'";
+ inline string MOUNT 	= "'$mount'";
+ inline string NAME 	= "'$pname'";
+ 
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	last_event[""] = 0;
+
+	/* print optional headers */
+ 	OPT_start   ? printf("%-14s ","STIME")   : 1;
+ 	OPT_end     ? printf("%-14s ","TIME")    : 1;
+ 	OPT_endstr  ? printf("%-20s ","STRTIME") : 1;
+ 	OPT_devname ? printf("%-7s ","DEVICE")   : 1;
+ 	OPT_ins     ? printf("%-3s ","INS")      : 1;
+ 	OPT_nums    ? printf("%-3s %-3s ","MAJ","MIN") : 1;
+ 	OPT_delta   ? printf("%-10s ","DELTA")   : 1;
+ 	OPT_dtime   ? printf("%-10s ","DTIME")   : 1;
+
+	/* print main headers */
+	OPT_dump ? 
+	    printf("%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s\n",
+ 	    "TIME", "STIME", "DELTA", "DEVICE", "INS", "MAJ", "MIN", "UID",
+	    "PID", "PPID", "D", "BLOCK", "SIZE", "MOUNT", "FILE", "PATH",
+	    "COMM","ARGS") :
+ 	    printf("%5s %5s %1s %8s %6s ", "UID", "PID", "D", "BLOCK", "SIZE");
+	OPT_args == 0 ? printf("%10s %s\n", "COMM", "PATHNAME") : 1;
+ 	OPT_args == 1 ? printf("%28s %s\n", "PATHNAME", "ARGS") : 1;
+ }
+
+ /*
+  * Check event is being traced
+  */
+ io:genunix::start
+ { 
+	/* default is to trace unless filtering, */
+	self->ok = FILTER ? 0 : 1;
+
+	/* check each filter, */
+	(OPT_device == 1 && DEVICE == args[1]->dev_statname)? self->ok = 1 : 1;
+	(OPT_file == 1 && FILENAME == args[2]->fi_pathname) ? self->ok = 1 : 1;
+	(OPT_mount == 1 && MOUNT == args[2]->fi_mount) ? self->ok = 1 : 1;
+	(OPT_name == 1 && NAME == execname) ? self->ok = 1 : 1;
+	(OPT_pid == 1 && PID == pid) ? self->ok = 1 : 1;
+ }
+
+ /*
+  * Reset last_event for disk idle -> start
+  * this prevents idle time being counted as disk time.
+  */
+ io:genunix::start
+ /! pending[args[1]->dev_statname]/
+ {
+	/* save last disk event */
+	last_event[args[1]->dev_statname] = timestamp;
+ }
+
+ /*
+  * Store entry details
+  */
+ io:genunix::start
+ /self->ok/
+ {
+	/* these are used as a unique disk event key, */
+ 	this->dev = args[0]->b_edev;
+ 	this->blk = args[0]->b_blkno;
+
+	/* save disk event details, */
+ 	start_uid[this->dev, this->blk] = uid;
+ 	start_pid[this->dev, this->blk] = pid;
+ 	start_ppid[this->dev, this->blk] = ppid;
+ 	start_args[this->dev, this->blk] = (char *)curpsinfo->pr_psargs;
+ 	start_comm[this->dev, this->blk] = execname;
+ 	start_time[this->dev, this->blk] = timestamp;
+
+	/* increase disk event pending count */
+	pending[args[1]->dev_statname]++;
+
+	self->ok = 0;
+ }
+
+ /*
+  * Process and Print completion
+  */
+ io:genunix::done
+ /start_time[args[0]->b_edev, args[0]->b_blkno]/
+ {
+	/* decrease disk event pending count */
+	pending[args[1]->dev_statname]--;
+
+	/*
+	 * Process details
+	 */
+
+ 	/* fetch entry values */
+ 	this->dev = args[0]->b_edev;
+ 	this->blk = args[0]->b_blkno;
+ 	this->suid = start_uid[this->dev, this->blk];
+ 	this->spid = start_pid[this->dev, this->blk];
+ 	this->sppid = start_ppid[this->dev, this->blk];
+ 	self->sargs = (int)start_args[this->dev, this->blk] == 0 ? 
+ 	    "" : start_args[this->dev, this->blk];
+ 	self->scomm = start_comm[this->dev, this->blk];
+ 	this->stime = start_time[this->dev, this->blk];
+	this->etime = timestamp; /* endtime */
+	this->delta = this->etime - this->stime;
+	this->dtime = last_event[args[1]->dev_statname] == 0 ? 0 :
+	    timestamp - last_event[args[1]->dev_statname];
+
+ 	/* memory cleanup */
+ 	start_uid[this->dev, this->blk]  = 0;
+ 	start_pid[this->dev, this->blk]  = 0;
+ 	start_ppid[this->dev, this->blk] = 0;
+ 	start_args[this->dev, this->blk] = 0;
+ 	start_time[this->dev, this->blk] = 0;
+ 	start_comm[this->dev, this->blk] = 0;
+ 	start_rw[this->dev, this->blk]   = 0;
+
+	/*
+	 * Print details
+	 */
+
+	/* print optional fields */
+ 	OPT_start   ? printf("%-14d ", this->stime/1000) : 1;
+ 	OPT_end     ? printf("%-14d ", this->etime/1000) : 1;
+ 	OPT_endstr  ? printf("%-20Y ", walltimestamp) : 1;
+ 	OPT_devname ? printf("%-7s ", args[1]->dev_statname) : 1;
+ 	OPT_ins     ? printf("%3d ", args[1]->dev_instance) : 1;
+ 	OPT_nums    ? printf("%3d %3d ",
+	    args[1]->dev_major, args[1]->dev_minor) : 1;
+ 	OPT_delta   ? printf("%-10d ", this->delta/1000) : 1;
+ 	OPT_dtime   ? printf("%-10d ", this->dtime/1000) : 1;
+
+	/* print main fields */
+	OPT_dump ? 
+ 	    printf("%d %d %d %s %d %d %d %d %d %d %s %d %d %s %s %s %s %S\n",
+ 	    this->etime/1000, this->stime/1000, this->delta/1000,
+ 	    args[1]->dev_statname, args[1]->dev_instance, args[1]->dev_major,
+	    args[1]->dev_minor, this->suid, this->spid, this->sppid, 
+	    args[0]->b_flags & B_READ ? "R" : "W", 
+	    args[0]->b_blkno, args[0]->b_bcount, args[2]->fi_mount,
+	    args[2]->fi_name, args[2]->fi_pathname, self->scomm, self->sargs) :
+ 	    printf("%5d %5d %1s %8d %6d ",
+ 	    this->suid, this->spid, args[0]->b_flags & B_READ ? "R" : "W",
+	    args[0]->b_blkno, args[0]->b_bcount);
+	OPT_args == 0 ? printf("%10s %s\n", self->scomm, args[2]->fi_pathname)
+	    : 1;
+ 	OPT_args == 1 ? printf("%28s %S\n",
+	    args[2]->fi_pathname, self->sargs) : 1;
+
+	/* save last disk event */
+	last_event[args[1]->dev_statname] = timestamp;
+
+	/* cleanup */
+	self->scomm = 0;
+	self->sargs = 0;
+ }
+
+ /*
+  * Prevent pending from underflowing
+  * this can happen if this program is started during disk events.
+  */
+ io:genunix::done
+ /pending[args[1]->dev_statname] < 0/
+ {
+	pending[args[1]->dev_statname] = 0;
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/iotop b/external/cddl/dtracetoolkit/dist/iotop
new file mode 100755
index 0000000..86063cd
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/iotop
@@ -0,0 +1,422 @@
+#!/bin/ksh
+#
+# iotop - display top disk I/O events by process.
+#         Written using DTrace (Solaris 10 3/05).
+#
+# This is measuring disk events that have made it past system caches.
+#
+# $Id: iotop,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE:	iotop [-C] [-D|-o|-P] [-j|-Z] [-d device] [-f filename] 
+#		      [-m mount_point] [-t top] [interval [count]]
+#
+#		iotop   	# default output, 5 second intervals
+#
+#		-C		# don't clear the screen
+#		-D		# print delta times, elapsed, us
+#		-j		# print project ID
+#		-o		# print disk delta times, us
+#		-P		# print %I/O (disk delta times)
+#		-Z		# print zone ID
+#		-d device	# instance name to snoop (eg, dad0)
+#		-f filename	# full pathname of file to snoop
+#		-m mount_point	# this FS only (will skip raw events)
+#		-t top		# print top number only
+#	eg,
+#		iotop 1  	# 1 second samples
+#		iotop -C	# don't clear the screen
+#		iotop -P	# print %I/O (time based)
+#		iotop -j	# print project IDs
+#		iotop -Z 	# print zone IDs
+#		iotop -t 20 	# print top 20 lines only
+#		iotop -C 5 12	# print 12 x 5 second samples
+# 	
+# FIELDS:
+#		UID		user ID
+#		PID		process ID
+#		PPID		parent process ID
+#		PROJ		project ID
+#		ZONE		zone ID
+#		CMD		process command name
+#		DEVICE  	device name
+#		MAJ     	device major number
+#		MIN     	device minor number
+#		D		direction, Read or Write
+#		BYTES		total size of operations, bytes
+#		ELAPSED		total elapsed from request to completion, us
+#		DISKTIME	total time for disk to complete request, us
+#		%I/O		percent disk I/O, based on time (DISKTIME)
+#		load		1 min load average
+#		disk_r		total disk read Kbytes for sample
+#		disk_w		total disk write Kbytes for sample
+# 
+# NOTE:
+# * There are two different delta times reported. -D prints the
+#   elapsed time from the disk request (strategy) to the disk completion
+#   (iodone); -o prints the time for the disk to complete that event 
+#   since it's last event (time between iodones), or, the time to the
+#   strategy if the disk had been idle. 
+# * The %I/O value can exceed 100%. It represents how busy a process is
+#   making the disks, in terms of a single disk. A value of 200% could 
+#   mean 2 disks are busy at 100%, or 4 disks at 50%...
+#
+# SEE ALSO: iosnoop
+#	    BigAdmin: DTrace, http://www.sun.com/bigadmin/content/dtrace
+#	    Solaris Dynamic Tracing Guide, http://docs.sun.com
+#	    DTrace Tools, http://www.brendangregg.com/dtrace.html
+#
+# INSPIRATION:  top(1) by William LeFebvre
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# KNOWN BUGS: 
+# - This can print errors while running on servers with Veritas volumes.
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 15-Jul-2005	Brendan Gregg	Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_device=0; opt_file=0; opt_mount=0; opt_clear=1; opt_proj=0; opt_zone=0
+opt_percent=0; opt_def=1; opt_bytes=1; filter=0; device=.; filename=.; mount=.
+opt_top=0; opt_elapsed=0; opt_dtime=0; interval=5; count=-1; top=0
+
+### process options
+while getopts CDd:f:hjm:oPt:Z name
+do
+	case $name in
+	C)	opt_clear=0 ;;
+	D)	opt_elapsed=1; opt_bytes=0 ;;
+	d)	opt_device=1; device=$OPTARG ;;
+	f)	opt_file=1; filename=$OPTARG ;;
+	j)	opt_proj=1; opt_def=0 ;;
+	m)	opt_mount=1; mount=$OPTARG ;;
+	o)	opt_dtime=1; opt_bytes=0 ;;
+	P)	opt_percent=1; opt_dtime=1; opt_bytes=0 ;;
+	t)	opt_top=1; top=$OPTARG ;;
+	Z)	opt_zone=1; opt_def=0 ;;
+	h|?)	cat <<-END >&2
+		USAGE: iotop [-C] [-D|-o|-P] [-j|-Z] [-d device] [-f filename]
+		             [-m mount_point] [-t top] [interval [count]]
+ 
+		                -C      # don't clear the screen
+		                -D      # print delta times, elapsed, us
+		                -j      # print project ID
+		                -o      # print disk delta times, us
+		                -P      # print %I/O (disk delta times)
+		                -Z      # print zone ID
+		                -d device       # instance name to snoop 
+		                -f filename     # snoop this file only
+		                -m mount_point  # this FS only 
+		                -t top  	# print top number only
+		   eg,
+		        iotop         # default output, 5 second samples
+		        iotop 1       # 1 second samples
+		        iotop -P      # print %I/O (time based)
+		        iotop -m /    # snoop events on filesystem / only
+		        iotop -t 20   # print top 20 lines only
+		        iotop -C 5 12 # print 12 x 5 second samples
+		END
+		exit 1
+	esac
+done
+
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_proj && opt_zone )); then
+        opt_proj=0
+fi
+if (( opt_elapsed && opt_dtime )); then
+        opt_elapsed=0
+fi
+if (( opt_device || opt_mount || opt_file )); then
+	filter=1
+fi
+if (( opt_clear )); then
+        clearstr=`clear`
+else
+        clearstr=.
+fi
+
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_def 	= '$opt_def';
+ inline int OPT_proj 	= '$opt_proj';
+ inline int OPT_zone 	= '$opt_zone';
+ inline int OPT_clear 	= '$opt_clear';
+ inline int OPT_bytes 	= '$opt_bytes';
+ inline int OPT_elapsed = '$opt_elapsed';
+ inline int OPT_dtime 	= '$opt_dtime';
+ inline int OPT_percent	= '$opt_percent';
+ inline int OPT_device 	= '$opt_device';
+ inline int OPT_mount 	= '$opt_mount';
+ inline int OPT_file 	= '$opt_file';
+ inline int OPT_top 	= '$opt_top';
+ inline int INTERVAL 	= '$interval';
+ inline int COUNTER 	= '$count';
+ inline int FILTER 	= '$filter';
+ inline int TOP 	= '$top';
+ inline string DEVICE 	= "'$device'";
+ inline string FILENAME = "'$filename'";
+ inline string MOUNT 	= "'$mount'";
+ inline string CLEAR 	= "'$clearstr'";
+ 
+ #pragma D option quiet
+
+ /* boost the following if you get "dynamic variable drops" */
+ #pragma D option dynvarsize=8m
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	last_event[""] = 0;
+
+        /* starting values */
+        counts = COUNTER;
+        secs = INTERVAL;
+        disk_r = 0;
+        disk_w = 0;
+
+        printf("Tracing... Please wait.\n");
+ }
+
+ /*
+  * Check event is being traced
+  */
+ io:genunix::start,
+ io:genunix::done 
+ { 
+	/* default is to trace unless filtering, */
+	this->ok = FILTER ? 0 : 1;
+
+	/* check each filter, */
+	(OPT_device == 1 && DEVICE == args[1]->dev_statname)? this->ok = 1 : 1;
+	(OPT_file == 1 && FILENAME == args[2]->fi_pathname) ? this->ok = 1 : 1;
+	(OPT_mount == 1 && MOUNT == args[2]->fi_mount)  ? this->ok = 1 : 1;
+ }
+
+ /*
+  * Reset last_event for disk idle -> start
+  * this prevents idle time being counted as disk time.
+  */
+ io:genunix::start
+ /! pending[args[1]->dev_statname]/
+ {
+	/* save last disk event */
+	last_event[args[1]->dev_statname] = timestamp;
+ }
+
+ /*
+  * Store entry details
+  */
+ io:genunix::start
+ /this->ok/
+ {
+	/* these are used as a unique disk event key, */
+ 	this->dev = args[0]->b_edev;
+ 	this->blk = args[0]->b_blkno;
+
+	/* save disk event details, */
+ 	start_uid[this->dev, this->blk] = uid;
+ 	start_pid[this->dev, this->blk] = pid;
+ 	start_ppid[this->dev, this->blk] = ppid;
+ 	start_comm[this->dev, this->blk] = execname;
+ 	start_time[this->dev, this->blk] = timestamp;
+ 	start_proj[this->dev, this->blk] = curpsinfo->pr_projid;
+ 	start_zone[this->dev, this->blk] = curpsinfo->pr_zoneid;
+ 	start_rw[this->dev, this->blk] = args[0]->b_flags & B_READ ? "R" : "W";
+	disk_r += args[0]->b_flags & B_READ ? args[0]->b_bcount : 0;
+	disk_w += args[0]->b_flags & B_READ ? 0 : args[0]->b_bcount;
+
+	/* increase disk event pending count */
+	pending[args[1]->dev_statname]++;
+ }
+
+ /*
+  * Process and Print completion
+  */
+ io:genunix::done
+ /this->ok/
+ {
+	/* decrease disk event pending count */
+	pending[args[1]->dev_statname]--;
+
+	/*
+	 * Process details
+	 */
+
+ 	/* fetch entry values */
+ 	this->dev = args[0]->b_edev;
+ 	this->blk = args[0]->b_blkno;
+ 	this->suid = start_uid[this->dev, this->blk];
+ 	this->spid = start_pid[this->dev, this->blk];
+ 	this->sppid = start_ppid[this->dev, this->blk];
+ 	this->sproj = start_proj[this->dev, this->blk];
+ 	this->szone = start_zone[this->dev, this->blk];
+ 	self->scomm = start_comm[this->dev, this->blk];
+ 	this->stime = start_time[this->dev, this->blk];
+	this->etime = timestamp; /* endtime */
+	this->elapsed = this->etime - this->stime;
+ 	self->rw = start_rw[this->dev, this->blk];
+	this->dtime = last_event[args[1]->dev_statname] == 0 ? 0 :
+	    timestamp - last_event[args[1]->dev_statname];
+
+ 	/* memory cleanup */
+ 	start_uid[this->dev, this->blk]  = 0;
+ 	start_pid[this->dev, this->blk]  = 0;
+ 	start_ppid[this->dev, this->blk] = 0;
+ 	start_time[this->dev, this->blk] = 0;
+ 	start_comm[this->dev, this->blk] = 0;
+ 	start_zone[this->dev, this->blk] = 0;
+ 	start_proj[this->dev, this->blk] = 0;
+ 	start_rw[this->dev, this->blk]   = 0;
+
+	/*
+	 * Choose statistic to track
+	 */
+	OPT_bytes   ? this->value = args[0]->b_bcount    : 1;
+	OPT_elapsed ? this->value = this->elapsed / 1000 : 1;
+	OPT_dtime   ? this->value = this->dtime / 1000   : 1;
+	
+	/*
+	 * Save details
+	 */
+	OPT_def ? @out[this->suid, this->spid, this->sppid, self->scomm,
+	    args[1]->dev_statname, args[1]->dev_major, args[1]->dev_minor,
+	    self->rw] = sum(this->value) : 1;
+	OPT_proj ? @out[this->sproj, this->spid, this->sppid, self->scomm,
+	    args[1]->dev_statname, args[1]->dev_major, args[1]->dev_minor,
+	    self->rw] = sum(this->value) : 1;
+	OPT_zone ? @out[this->szone, this->spid, this->sppid, self->scomm,
+	    args[1]->dev_statname, args[1]->dev_major, args[1]->dev_minor,
+	    self->rw] = sum(this->value) : 1;
+
+	/* save last disk event */
+	last_event[args[1]->dev_statname] = timestamp;
+
+	self->scomm = 0;
+	self->rw = 0;
+ }
+
+ /*
+  * Prevent pending from underflowing
+  * this can happen if this program is started during disk events.
+  */
+ io:genunix::done
+ /pending[args[1]->dev_statname] < 0/
+ {
+	pending[args[1]->dev_statname] = 0;
+ }
+
+ /*
+  * Timer
+  */
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /*
+  * Print Report
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* fetch 1 min load average */
+	this->load1a  = `hp_avenrun[0] / 65536;
+	this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+
+	/* convert counters to Kbytes */
+	disk_r /= 1024;
+	disk_w /= 1024;
+
+	/* print status */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+	printf("%Y,  load: %d.%02d,  disk_r: %6d KB,  disk_w: %6d KB\n\n",
+	    walltimestamp, this->load1a, this->load1b, disk_r, disk_w);
+
+	/* print headers */
+	OPT_def  ? printf("  UID ") : 1;
+	OPT_proj ? printf(" PROJ ") : 1;
+	OPT_zone ? printf(" ZONE ") : 1;
+	printf("%6s %6s %-16s %-7s %3s %3s %1s",
+	    "PID", "PPID", "CMD", "DEVICE", "MAJ", "MIN", "D");
+	OPT_bytes   ? printf(" %16s\n", "BYTES") : 1;
+	OPT_elapsed ? printf(" %16s\n", "ELAPSED") : 1;
+	OPT_dtime && ! OPT_percent  ? printf(" %16s\n", "DISKTIME") : 1;
+	OPT_dtime && OPT_percent    ? printf(" %6s\n", "%I/O") : 1;
+
+	/* truncate to top lines if needed */
+	OPT_top ? trunc(@out, TOP) : 1;
+
+	/* normalise to percentage if needed */
+	OPT_percent ? normalize(@out, INTERVAL * 10000) : 1;
+
+	/* print data */
+	! OPT_percent ? 
+	    printa("%5d %6d %6d %-16s %-7s %3d %3d %1s %16@d\n", @out) :
+	    printa("%5d %6d %6d %-16s %-7s %3d %3d %1s %6@d\n", @out);
+	printf("\n");
+
+	/* clear data */
+	trunc(@out);
+	disk_r = 0;
+	disk_w = 0;
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /*
+  * End of program
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+
+ /*
+  * Cleanup for Ctrl-C
+  */
+ dtrace:::END
+ {
+	trunc(@out);
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/opensnoop b/external/cddl/dtracetoolkit/dist/opensnoop
new file mode 100755
index 0000000..195e525
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/opensnoop
@@ -0,0 +1,244 @@
+#!/bin/sh
+#
+# opensnoop - snoop file opens as they occur.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# $Id: opensnoop,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE:	opensnoop [-a|-A|-ceghsvxZ] [-f pathname] [-n name] [-p PID]
+#
+#		opensnoop	# default output
+#
+#		-a		# print most data
+#		-A		# dump all data, space delimited
+#		-c		# print cwd of process
+#		-e		# print errno value
+#		-g		# print command arguments
+#		-s		# print start time, us
+#		-v		# print start time, string
+#		-x		# only print failed opens
+#		-Z		# print zonename
+#		-f pathname	# file pathname to snoop
+#		-n name		# command name to snoop
+#		-p PID		# process ID to snoop
+#	eg,
+#		opensnoop -v			# human readable timestamps
+#		opensnoop -e			# see error codes
+#		opensnoop -f /etc/passwd	# snoop this file only
+# 	
+# FIELDS:
+#		ZONE		Zone name
+#		UID		User ID
+#		PID		Process ID
+#		PPID		Parent Process ID
+#		FD		file descriptor (-1 for error)
+#		ERR		errno value (see /usr/include/sys/errno.h)
+#		CWD		print current working directory of process
+#		PATH		pathname for file open
+#		COMM		command name for the process
+#		ARGS		argument listing for the process
+#		TIME		timestamp for the open event, us
+#		STRTIME		timestamp for the open event, string
+#
+# SEE ALSO: truss, BSM auditing.
+#
+# COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 09-May-2004	Brendan Gregg	Created this.
+# 21-Jan-2005	   "	  "	Wrapped in sh to provide options.
+# 08-May-2005	   "      "	Rewritten for performance.
+# 14-May-2005	   "      "	Added errno.
+# 28-Jun-2005	   "      "	Added cwd, zonename.
+# 17-Sep-2005	   "      "	Increased switchrate, fixed page fault bug.
+# 16-Jan-2006	   "	  "	Added -n, -p.
+# 16-Jan-2006	   "	  "	Last update.
+# 
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_dump=0; opt_file=0; opt_time=0; opt_timestr=0; opt_args=0
+opt_zone=0; opt_cwd=0; opt_failonly=0; opt_err=0; filter=0; pathname=.
+opt_name=0; opt_pid=0; pname=.; pid=0
+
+### Process options
+while getopts aAcef:ghn:p:svxZ name
+do
+	case $name in
+	a)	opt_time=1; opt_timestr=1; opt_args=1; opt_err=1 ;;
+	A)	opt_dump=1 ;;
+	c)	opt_cwd=1 ;;
+	e)	opt_err=1 ;;
+	g)	opt_args=1 ;;
+	f)	opt_file=1; pathname=$OPTARG ;;
+	n)	opt_name=1; pname=$OPTARG ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	s)	opt_time=1 ;;
+	v)	opt_timestr=1 ;;
+	x)	opt_failonly=1 ;;
+	Z)	opt_zone=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: opensnoop [-a|-A|-ceghsvxZ] [-f pathname]
+		                 [-n name] [-p PID]
+		       opensnoop                # default output
+		                -a              # print most data
+		                -A              # dump all data, space delimited
+		                -c              # print cwd of process
+		                -e              # print errno value
+		                -g              # print command arguments
+		                -s              # print start time, us
+		                -v              # print start time, string
+		                -x              # only print failed opens
+		                -Z              # print zonename
+		                -f pathname	# pathname name to snoop
+		                -n name		# process name to snoop
+		                -p PID		# process ID to snoop
+		  eg,
+		       opensnoop -v             # human readable timestamps
+		       opensnoop -e             # see error codes
+		       opensnoop -f /etc/motd   # snoop this file only
+		END
+		exit 1
+	esac
+done
+
+### Option logic
+if [ $opt_dump -eq 1 ]; then
+	opt_zone=0; opt_cwd=0; opt_time=0; opt_timestr=0; opt_args=2 
+fi
+if [ $opt_name -eq 1 -o $opt_pid -eq 1 ]; then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_dump 	 = '$opt_dump';
+ inline int OPT_file 	 = '$opt_file';
+ inline int OPT_args 	 = '$opt_args';
+ inline int OPT_cwd	 = '$opt_cwd';
+ inline int OPT_err	 = '$opt_err';
+ inline int OPT_zone 	 = '$opt_zone';
+ inline int OPT_time 	 = '$opt_time';
+ inline int OPT_timestr	 = '$opt_timestr';
+ inline int OPT_failonly = '$opt_failonly';
+ inline int OPT_pid	 = '$opt_pid';
+ inline int OPT_name	 = '$opt_name';
+ inline int FILTER 	 = '$filter';
+ inline int PID		 = '$pid';
+ inline string PATHNAME	 = "'$pathname'";
+ inline string NAME	 = "'$pname'";
+ 
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+ 
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	/* 
+	 * ternary operators are used to improve performance. 
+	 * OPT_args is unusual in that it can have one of three values.
+	 */
+ 
+	/* print optional headers */
+ 	OPT_time ? printf("%-14s ", "TIME") : 1;
+ 	OPT_timestr ? printf("%-20s ", "STRTIME") : 1;
+ 	OPT_zone ? printf("%-10s ", "ZONE") : 1;
+
+	/* print dump headers */
+	OPT_dump ? printf("%s %s %s %s %s %s %s %s %s %s %s", "ZONE",
+	    "TIME", "UID", "PID", "PPID", "COMM", "FD", "ERR", "CWD", 
+	    "PATH", "ARGS") : printf("%5s %6s ","UID","PID");
+	
+	/* print main headers */
+	OPT_args == 0 ? printf("%-12s ", "COMM") : 1;
+	OPT_dump == 0 ? printf("%3s ", "FD") : 1;
+	OPT_err ? printf("%3s ", "ERR") : 1;
+	OPT_cwd ? printf("%-20s ", "CWD") : 1;
+	OPT_dump == 0 ? printf("%-20s ", "PATH") : 1;
+	OPT_args == 1 ? printf("%s", "ARGS") : 1;
+	printf("\n");
+ }
+
+ /*
+  * Print open event
+  */
+ syscall::open:entry
+ {
+	/* save pathname */
+	self->pathp = arg0;
+
+	/* default is to trace unless filtering */
+	self->ok = FILTER ? 0 : 1;
+
+	/* check each filter */
+	(OPT_name == 1 && NAME == execname) ? self->ok = 1 : 1;
+	(OPT_pid == 1 && PID == pid) ? self->ok = 1 : 1;
+	/* OPT_file is checked on return to ensure pathp is mapped */
+ }
+
+ syscall::open:return
+ /self->ok && (! OPT_failonly || (int)arg0 < 0) && 
+ ((OPT_file == 0) || (OPT_file == 1 && PATHNAME == copyinstr(self->pathp)))/
+ {
+	/* print optional fields */
+ 	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+ 	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+ 	OPT_zone ? printf("%-10s ", zonename) : 1;
+
+	/* print dump fields */
+	OPT_dump ? printf("%s %d %d %d %d %s %d %d %s %s %S", zonename,
+	    timestamp/1000, uid, pid, ppid, execname, (int)arg0, errno,
+	    cwd, copyinstr(self->pathp), curpsinfo->pr_psargs) :
+	    printf("%5d %6d ", uid, pid);
+
+	/* print main fields */
+	OPT_args == 0 ? printf("%-12s ", execname) : 1;
+	OPT_dump == 0 ? printf("%3d ", (int)arg0) : 1;
+	OPT_err ? printf("%3d ", errno) : 1;
+	OPT_cwd ? printf("%-20s ", cwd) : 1;
+	OPT_dump == 0 ? printf("%-20s ", copyinstr(self->pathp)) : 1;
+	OPT_args == 1 ? printf("%S", curpsinfo->pr_psargs) : 1;
+	printf("\n");
+
+	/* cleanup */
+	self->pathp = 0;
+	self->ok = 0;
+ }
+
+ /* 
+  * Cleanup 
+  */
+ syscall::open:return
+ /self->ok/
+ {
+	self->pathp = 0;
+	self->ok = 0;
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/procsystime b/external/cddl/dtracetoolkit/dist/procsystime
new file mode 100755
index 0000000..66d3d45
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/procsystime
@@ -0,0 +1,233 @@
+#!/bin/sh
+#
+# procsystime - print process system call time details.
+#               Written using DTrace (Solaris 10 3/05).
+#
+# $Id: procsystime,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE:	procsystime [-acehoT] [ -p PID | -n name | command ]
+#
+#		-p PID          # examine this PID
+#		-n name         # examine this process name
+#		-a              # print all details
+#		-c              # print syscall counts
+#		-e              # print elapsed times
+#		-o              # print CPU times
+#		-T              # print totals
+#         eg,
+#		procsystime -p 1871     # examine PID 1871
+#		procsystime -n tar      # examine processes called "tar"
+#		procsystime -aTn bash   # print all details for bash shells
+#		procsystime df -h       # run and examine "df -h"
+#
+# The elapsed times are interesting, to help identify syscalls that take
+# some time to complete (during which the process may have slept). CPU time
+# helps us identify syscalls that are consuming CPU cycles to run.
+#
+# FIELDS:
+#		SYSCALL         System call name
+#		TIME (ns)       Total time, nanoseconds
+#		COUNT           Number of occurrences
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 27-Apr-2005   Brendan Gregg   Created this.
+# 08-Jun-2005	   "      "	Added command option.
+# 22-Sep-2005	   "      "	Allowed systemwide tracing.
+# 22-Sep-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_filter=0; opt_pid=0; opt_name=0; pid=0; pname=".";
+opt_elapsed=0; opt_cpu=0; opt_counts=0; opt_totals=0
+opt_command=0; command="";
+
+### Process options
+while getopts acehn:op:T name
+do
+        case $name in
+        p)      opt_filter=1; opt_pid=1; pid=$OPTARG ;;
+        n)      opt_filter=1; opt_name=1; pname=$OPTARG ;;
+	a)	opt_totals=1; opt_elapsed=1; opt_cpu=1; opt_counts=1 ;;
+	e)	opt_elapsed=1 ;;
+	c)	opt_counts=1 ;;
+	o)	opt_cpu=1 ;;
+	T)	opt_totals=1 ;;
+        h|?)    cat <<-END >&2
+		USAGE: procsystime [-aceho] [ -p PID | -n name | command ]
+		                  -p PID          # examine this PID
+		                  -n name         # examine this process name
+		                  -a              # print all details
+		                  -e              # print elapsed times
+		                  -c              # print syscall counts
+		                  -o              # print CPU times
+		                  -T              # print totals
+		  eg,
+		       procsystime -p 1871     # examine PID 1871
+		       procsystime -n tar      # examine processes called "tar"
+		       procsystime -aTn bash   # print all details for bash
+		       procsystime df -h       # run and examine "df -h"
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+### Option logic
+if [ $opt_pid -eq 0 -a $opt_name -eq 0 -a "$*" != "" ]; then
+	opt_filter=1
+	opt_command=1
+	command="$*"
+fi
+if [ $opt_elapsed -eq 0 -a $opt_cpu -eq 0 -a $opt_counts -eq 0 ]; then
+	opt_elapsed=1;
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+dtrace='
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_elapsed  = '$opt_elapsed';
+ inline int OPT_cpu      = '$opt_cpu';
+ inline int OPT_counts   = '$opt_counts';
+ inline int OPT_filter   = '$opt_filter';
+ inline int OPT_pid      = '$opt_pid';
+ inline int OPT_name     = '$opt_name';
+ inline int OPT_totals   = '$opt_totals';
+ inline int OPT_command  = '$opt_command';
+ inline int PID          = '$pid';
+ inline string NAME      = "'$pname'";
+ inline string COMMAND   = "'$command'";
+
+ dtrace:::BEGIN 
+ {
+	self->start = 0;
+	self->vstart = 0;
+ }
+ dtrace:::BEGIN 
+ /! OPT_command/
+ {
+	printf("Tracing... Hit Ctrl-C to end...\n");
+ }
+
+ /*
+  * Set start timestamp and counts
+  */
+ syscall:::entry
+ /(! OPT_filter) ||
+  (OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ {
+	self->ok = 1;
+ }
+ syscall:::entry
+ /self->ok/
+ {
+	OPT_counts ? @Counts[probefunc] = count() : 1;
+	(OPT_counts && OPT_totals) ? @Counts["TOTAL:"] = count() : 1;
+	OPT_elapsed ? self->start = timestamp : 1;
+	OPT_cpu ? self->vstart = vtimestamp : 1;
+	self->ok = 0;
+ }
+
+ /*
+  * Calculate time deltas
+  */
+ syscall:::return
+ /self->start/
+ {
+	this->elapsed = timestamp - self->start;
+	@Elapsed[probefunc] = sum(this->elapsed);
+	OPT_totals ? @Elapsed["TOTAL:"] = sum(this->elapsed) : 1;
+	self->start = 0;
+ }
+ syscall:::return
+ /self->vstart/
+ {
+	this->cpu = vtimestamp - self->vstart;
+	@CPU[probefunc] = sum(this->cpu);
+	OPT_totals ? @CPU["TOTAL:"] = sum(this->cpu) : 1;
+	self->vstart = 0;
+ }
+
+ /*
+  * Elapsed time report
+  */
+ dtrace:::END 
+ /OPT_elapsed/
+ {
+	printf("\nElapsed Times for ");
+	OPT_pid ? printf("PID %d,\n\n",PID) : 1;
+	OPT_name ? printf("processes %s,\n\n",NAME) : 1;
+	OPT_command ? printf("command %s,\n\n",COMMAND) : 1;
+	(! OPT_filter) ? printf("all processes,\n\n") : 1;
+	printf("%16s %18s\n","SYSCALL","TIME (ns)");
+	printa("%16s %@18d\n",@Elapsed);
+ }
+
+ /*
+  * CPU time report
+  */
+ dtrace:::END 
+ /OPT_cpu/
+ {
+	printf("\nCPU Times for ");
+	OPT_pid ? printf("PID %d,\n\n",PID) : 1;
+	OPT_name ? printf("processes %s,\n\n",NAME) : 1;
+	OPT_command ? printf("command %s,\n\n",COMMAND) : 1;
+	(! OPT_filter) ? printf("all processes,\n\n") : 1;
+	printf("%16s %18s\n","SYSCALL","TIME (ns)");
+	printa("%16s %@18d\n",@CPU);
+ }
+
+ /*
+  * Syscall count report
+  */
+ dtrace:::END 
+ /OPT_counts/
+ {
+	printf("\nSyscall Counts for ");
+	OPT_pid ? printf("PID %d,\n\n",PID) : 1;
+	OPT_name ? printf("processes %s,\n\n",NAME) : 1;
+	OPT_command ? printf("command %s,\n\n",COMMAND) : 1;
+	(! OPT_filter) ? printf("all processes,\n\n") : 1;
+	printf("%16s %18s\n","SYSCALL","COUNT");
+	OPT_counts ? printa("%16s %@18d\n",@Counts) : 1;
+ }
+'
+
+### Run DTrace
+if [ $opt_command -eq 1 ]; then
+	/usr/sbin/dtrace -n "$dtrace" -x evaltime=exec -c "$command" >&2
+else
+	/usr/sbin/dtrace -n "$dtrace" >&2
+fi
+
diff --git a/external/cddl/dtracetoolkit/dist/rwsnoop b/external/cddl/dtracetoolkit/dist/rwsnoop
new file mode 100755
index 0000000..6e019fb
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/rwsnoop
@@ -0,0 +1,233 @@
+#!/bin/sh
+#
+# rwsnoop - snoop read/write events.
+#           Originally written using DTrace (Solaris 10 3/05).
+#
+# This is measuring reads and writes at the application level. This matches
+# the syscalls read, and write.
+#
+# $Id: rwsnoop,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE:	rwsnoop [-jPtvZ] [-n name] [-p pid]
+# 
+#		rwsnoop		# default output
+#
+#		-P		# print parent process ID
+#		-t		# print timestamp, us
+#		-v		# print time, string
+#		-J		# print jail ID
+#		-n name		# this process name only
+#		-p PID		# this PID only
+#	eg,
+#		rwsnoop -J		# print jail ID
+#		rwsnoop -n bash 	# monitor processes named "bash"
+#		rwsnoop > out.txt	# recommended
+#
+# NOTE:
+# 	rwsnoop usually prints plenty of output, which itself will cause
+#	more output. It can be better to redirect the output of rwsnoop
+#	to a file to prevent this.
+#
+# FIELDS:
+#		TIME		Timestamp, us
+#		TIMESTR		Time, string
+#		JAIL		JAIL ID
+#		UID		User ID
+#		PID		Process ID
+#		PPID		Parent Process ID
+#		CMD		Process name
+#		D		Direction, Read or Write
+#		BYTES		Total bytes during sample, -1 for error
+#		FILE		Filename, if file based
+#
+# Reads and writes that are not file based, for example with sockets, will
+# print "<unknown>" as the filename.
+#
+# SEE ALSO:	rwtop
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# TODO:
+#  Track readv and writev.
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 24-Jul-2005   Brendan Gregg   Created this.
+# 17-Sep-2005	   "      "	Increased switchrate.
+# 17-Sep-2005	   "      "	Last update.
+# 26-Jul-2014   George Neville-Neil	Port to FreeBSD
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_name=0; opt_pid=0; opt_jailid=0; opt_time=0; opt_timestr=0
+opt_bytes=1; filter=0; pname=.; pid=0; opt_ppid=0;
+
+### process options
+while getopts n:Pp:jtvZ name
+do
+	case $name in
+	n)	opt_name=1; pname=$OPTARG ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	P)	opt_ppid=1 ;;
+	t)	opt_time=1 ;;
+	v)	opt_timestr=1 ;;
+	J)	opt_jailid=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: rwsnoop [-jPtvZ] [-n name] [-p pid]
+ 
+		                -P       # print parent process ID
+		                -t       # print timestamp, us
+		                -v       # print time, string
+		                -J       # print jail ID
+		                -n name  # this process name only
+		                -p PID   # this PID only
+		   eg,
+		        rwsnoop          # default output
+		        rwsnoop -J       # print jail ID
+		        rwsnoop -n bash  # monitor processes named "bash"
+		END
+		exit 1
+	esac
+done
+
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [ $opt_name -ne 0 ]; then
+	filter=1
+fi
+
+if [ $opt_pid -ne 0 ]; then
+	filter=1
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_jailid 	= '$opt_jailid';
+ inline int OPT_bytes 	= '$opt_bytes';
+ inline int OPT_name 	= '$opt_name';
+ inline int OPT_ppid 	= '$opt_ppid';
+ inline int OPT_pid 	= '$opt_pid';
+ inline int OPT_time 	= '$opt_time';
+ inline int OPT_timestr	= '$opt_timestr';
+ inline int FILTER 	= '$filter';
+ inline int PID		= '$pid';
+ inline string NAME 	= "'$pname'";
+ 
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	/* print header */
+	OPT_time    ? printf("%-14s ", "TIME") : 1;
+	OPT_timestr ? printf("%-20s ", "TIMESTR") : 1;
+	OPT_jailid    ? printf("%5s ", "JAILID") : 1;
+	OPT_ppid    ? printf("%6s ", "PPID") : 1;
+	printf("%5s %6s %-12s %4s %1s %7s\n",
+	    "UID", "PID", "CMD", "FD", "D", "BYTES");
+ }
+
+ /*
+  * Check event is being traced
+  */
+ syscall::*read:entry,
+ syscall::*write:entry
+ /pid != $pid/
+ { 
+	/* default is to trace unless filtering, */
+	self->ok = FILTER ? 0 : 1;
+
+	/* check each filter, */
+	(OPT_name == 1 && NAME == execname)? self->ok = 1 : 1;
+	(OPT_pid == 1 && PID == pid) ? self->ok = 1 : 1;
+
+	/* save file descriptor */
+	self->fd = self->ok ? arg0 : 0;
+ }
+
+ /*
+  * Save read details
+  */
+ syscall::*read:return
+ /self->ok/
+ {
+	self->rw = "R";
+	self->size = arg0;
+ }
+
+ /*
+  * Save write details
+  */
+ syscall::*write:entry
+ /self->ok/
+ {
+	self->rw = "W";
+	self->size = arg2;
+ }
+
+ /*
+  * Process event
+  */
+ syscall::*read:return,
+ syscall::*write:entry
+ /self->ok/
+ {
+	/*
+	 * Fetch filename
+         * XXX Not yet implemented.
+	 */
+/*
+
+	this->filistp = curthread->t_procp->p_user.u_finfo.fi_list;
+	this->ufentryp = (uf_entry_t *)((uint64_t)this->filistp +
+	    (uint64_t)self->fd * (uint64_t)sizeof(uf_entry_t));
+	this->filep = this->ufentryp->uf_file;
+	this->vnodep = this->filep != 0 ? this->filep->f_vnode : 0;
+	self->vpath = this->vnodep ? (this->vnodep->v_path != 0 ? 
+	    cleanpath(this->vnodep->v_path) : "<unknown>") : "<unknown>";
+*/
+	/*
+	 * Print details
+	 */
+	OPT_time    ? printf("%-14d ", timestamp / 1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_jailid    ? printf("%5d ", curpsinfo->pr_jailid) : 1;
+	OPT_ppid    ? printf("%6d ", ppid) : 1;
+	printf("%5d %6d %-12.12s %4d %1s %7d\n",
+	    uid, pid, execname, self->fd, self->rw, (int)self->size);
+	
+	self->ok = 0;
+	self->fd = 0;
+	self->rw = 0;
+	self->size = 0;
+	self->vpath = 0;
+ }
+'
diff --git a/external/cddl/dtracetoolkit/dist/rwtop b/external/cddl/dtracetoolkit/dist/rwtop
new file mode 100755
index 0000000..4259ba4
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/rwtop
@@ -0,0 +1,292 @@
+#!/usr/bin/ksh
+#
+# rwtop - display top read/write bytes by process.
+#         Written using DTrace (Solaris 10 3/05).
+#
+# This is measuring reads and writes at the application level. This matches
+# read and write system calls.
+#
+# $Id: rwtop,v 1.1.1.1 2015/09/30 22:01:06 christos Exp $
+#
+# USAGE:	rwtop [-cC] [-j|-Z] [-n name] [-p pid]
+#		      [-t top] [interval [count]]
+# 
+#		rwtop		# default output, 5 second samples
+#
+#		-C		# don't clear the screen
+#		-c		# print counts
+#		-j		# print project ID
+#		-Z		# print zone ID
+#		-n name		# this process name only
+#		-p PID		# this PID only
+#		-t top		# print top number only
+#	eg,
+#		rwtop 1		# 1 second samples
+#		rwtop -t 10	# print top 10 only
+#		rwtop -n bash	# monitor processes named "bash"
+#		rwtop -C 5 12	# print 12 x 5 second samples
+#
+# FIELDS:
+#		ZONE		Zone ID
+#		PROJ		Project ID
+#		UID		User ID
+#		PID		Process ID
+#		PPID		Parent Process ID
+#		CMD		Process name
+#		D		Direction, Read or Write
+#		BYTES		Total bytes during sample
+#		app_r		total reads during sample, Kbytes
+#		app_w		total writes during sample, Kbytes
+#
+# SEE ALSO:	iotop
+#
+# INSPIRATION:  top(1) by William LeFebvre
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 24-Jul-2005   Brendan Gregg   Created this.
+# 20-Apr-2006	   "      "	Last update.
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_name=0; opt_pid=0; opt_clear=1; opt_proj=0; opt_zone=0
+opt_def=1; opt_bytes=1; filter=0; pname=.; pid=0
+opt_top=0; opt_count=0; interval=5; count=-1; top=0
+
+### process options
+while getopts Cchn:p:jt:Z name
+do
+	case $name in
+	C)	opt_clear=0 ;;
+	c)	opt_count=1; opt_bytes=0 ;;
+	n)	opt_name=1; pname=$OPTARG ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	j)	opt_proj=1; opt_def=0 ;;
+	t)	opt_top=1; top=$OPTARG ;;
+	Z)	opt_zone=1; opt_def=0 ;;
+	h|?)	cat <<-END >&2
+		USAGE: rwtop [-cC] [-j|-Z] [-n name] [-p pid]
+		             [-t top] [interval [count]]
+ 
+		                -C        # don't clear the screen
+		                -c        # print counts
+		                -j        # print project ID
+		                -Z        # print zone ID
+		                -n name   # this process name only
+		                -p PID    # this PID only
+		                -t top    # print top number only
+		   eg,
+		        rwtop          # default output, 5 second samples
+		        rwtop 1        # 1 second samples
+		        rwtop -t 10    # print top 10 only
+		        rwtop -n bash  # monitor processes named "bash"
+		        rwtop -C 5 12  # print 12 x 5 second samples
+		END
+		exit 1
+	esac
+done
+
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_proj && opt_zone )); then
+        opt_proj=0
+fi
+if (( opt_name || opt_pid )); then
+	filter=1
+fi
+if (( opt_clear )); then
+        clearstr=`clear`
+else
+        clearstr=.
+fi
+
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_def 	= '$opt_def';
+ inline int OPT_proj 	= '$opt_proj';
+ inline int OPT_zone 	= '$opt_zone';
+ inline int OPT_clear 	= '$opt_clear';
+ inline int OPT_bytes 	= '$opt_bytes';
+ inline int OPT_count	= '$opt_count';
+ inline int OPT_name 	= '$opt_name';
+ inline int OPT_pid 	= '$opt_pid';
+ inline int OPT_top 	= '$opt_top';
+ inline int INTERVAL 	= '$interval';
+ inline int COUNTER 	= '$count';
+ inline int FILTER 	= '$filter';
+ inline int TOP 	= '$top';
+ inline int PID		= '$pid';
+ inline string NAME 	= "'$pname'";
+ inline string CLEAR 	= "'$clearstr'";
+ 
+ #pragma D option quiet
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+        /* starting values */
+        counts = COUNTER;
+        secs = INTERVAL;
+        app_r = 0;
+        app_w = 0;
+
+        printf("Tracing... Please wait.\n");
+ }
+
+ /*
+  * Check event is being traced
+  */
+ sysinfo:::readch,
+ sysinfo:::writech
+ /pid != $pid/
+ { 
+	/* default is to trace unless filtering, */
+	this->ok = FILTER ? 0 : 1;
+
+	/* check each filter, */
+	(OPT_name == 1 && NAME == execname)? this->ok = 1 : 1;
+	(OPT_pid == 1 && PID == pid) ? this->ok = 1 : 1;
+ }
+
+ /*
+  * Increment tallys
+  */
+ sysinfo:::readch
+ /this->ok/
+ {
+	app_r += arg0;
+ }
+ sysinfo:::writech
+ /this->ok/
+ {
+	app_w += arg0;
+ }
+
+ /*
+  * Process event
+  */
+ sysinfo:::readch,
+ sysinfo:::writech
+ /this->ok/
+ {
+	/* choose statistic to track */
+	this->value = OPT_bytes ? arg0 : 1;
+	
+	/*
+	 * Save details
+	 */
+	OPT_def ? @out[uid, pid, ppid, execname,
+	    probename == "readch" ? "R" : "W"] = sum(this->value) : 1;
+	OPT_proj ? @out[curpsinfo->pr_projid, pid, ppid, execname,
+	    probename == "readch" ? "R" : "W"] = sum(this->value) : 1;
+	OPT_zone ? @out[curpsinfo->pr_zoneid, pid, ppid, execname,
+	    probename == "readch" ? "R" : "W"] = sum(this->value) : 1;
+
+	this->ok = 0;
+ }
+
+ /*
+  * Timer
+  */
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /*
+  * Print Report
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* fetch 1 min load average */
+	this->load1a  = `hp_avenrun[0] / 65536;
+	this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+
+	/* convert counters to Kbytes */
+	app_r /= 1024;
+	app_w /= 1024;
+
+	/* print status */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+	printf("%Y,  load: %d.%02d,  app_r: %6d KB,  app_w: %6d KB\n\n",
+	    walltimestamp, this->load1a, this->load1b, app_r, app_w);
+
+	/* print headers */
+	OPT_def  ? printf("  UID ") : 1;
+	OPT_proj ? printf(" PROJ ") : 1;
+	OPT_zone ? printf(" ZONE ") : 1;
+	printf("%6s %6s %-16s %1s",
+	    "PID", "PPID", "CMD", "D");
+	OPT_bytes ? printf(" %16s\n", "BYTES") : 1;
+	OPT_count ? printf(" %16s\n", "COUNT") : 1;
+
+	/* truncate to top lines if needed */
+	OPT_top ? trunc(@out, TOP) : 1;
+
+	/* print data */
+	printa("%5d %6d %6d %-16s %1s %16@d\n", @out);
+	printf("\n");
+
+	/* clear data */
+	trunc(@out);
+	app_r = 0;
+	app_w = 0;
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /*
+  * End of program
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+
+ /*
+  * Cleanup for Ctrl-C
+  */
+ dtrace:::END
+ {
+	trunc(@out);
+ }
+'
+
diff --git a/external/cddl/dtracetoolkit/dist/statsnoop b/external/cddl/dtracetoolkit/dist/statsnoop
new file mode 100755
index 0000000..6a7374e
--- /dev/null
+++ b/external/cddl/dtracetoolkit/dist/statsnoop
@@ -0,0 +1,273 @@
+#!/bin/sh
+#
+# statsnoop - snoop file stats as they occur.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# $Id: statsnoop,v 1.2 2015/10/07 02:22:29 christos Exp $
+#
+# USAGE:	statsnoop [-a|-A|-ceghlsvxZ] [-f pathname] [-t syscall]
+#		          [-n name] [-p PID]
+#
+#		statsnoop	# default output
+#
+#		-a		# print most data
+#		-A		# dump all data, space delimited
+#		-c		# print cwd of process
+#		-e		# print errno value
+#		-g		# print command arguments
+#		-l		# print syscall type
+#		-s		# print start time, us
+#		-v		# print start time, string
+#		-x		# only print failed stats
+#		-Z		# print zonename
+#		-f pathname	# file pathname to snoop
+#		-n name		# command name to snoop
+#		-p PID		# process ID to snoop
+#		-t syscall	# stat syscall to trace
+#	eg,
+#		statsnoop -v			# human readable timestamps
+#		statsnoop -S			# syscall type
+#		statsnoop -e			# see error codes
+#		statsnoop -f /etc/passwd	# snoop this file only
+# 	
+# FIELDS:
+#		ZONE		Zone name
+#		UID		User ID
+#		PID		Process ID
+#		PPID		Parent Process ID
+#		FD		file descriptor (-1 for error)
+#		ERR		errno value (see /usr/include/sys/errno.h)
+#		TYPE		syscall type
+#		CWD		current working directory of process
+#		PATH		pathname for file stat
+#		COMM		command name for the process
+#		ARGS		argument listing for the process
+#		TIME		timestamp for the stat event, us
+#		STRTIME		timestamp for the stat event, string
+#
+# SEE ALSO: truss, BSM auditing.
+#
+# COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 09-Sep-2007	Brendan Gregg	Created this.
+# 
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_dump=0; opt_file=0; opt_time=0; opt_timestr=0; opt_args=0
+opt_zone=0; opt_cwd=0; opt_failonly=0; opt_err=0; filter=0; pathname=.
+opt_name=0; opt_pid=0; opt_type=0; opt_trace=0; pname=.; pid=0; trace=.
+
+### Process options
+while getopts aAcef:ghln:p:st:vxZ name
+do
+	case $name in
+	a)	opt_time=1; opt_timestr=1; opt_args=1; opt_err=1 ;;
+	A)	opt_dump=1 ;;
+	c)	opt_cwd=1 ;;
+	e)	opt_err=1 ;;
+	g)	opt_args=1 ;;
+	f)	opt_file=1; pathname=$OPTARG ;;
+	l)	opt_type=1 ;;
+	n)	opt_name=1; pname=$OPTARG ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	s)	opt_time=1 ;;
+	t)	opt_trace=1; trace=$OPTARG ;;
+	v)	opt_timestr=1 ;;
+	x)	opt_failonly=1 ;;
+	Z)	opt_zone=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: statsnoop [-a|-A|-ceghlsvxZ] [-f pathname] [-t syscall]
+		                 [-n execname] [-p PID]
+		       statsnoop                # default output
+		                -a              # print most data
+		                -A              # dump all data, space delimited
+		                -c              # print cwd of process
+		                -e              # print errno value
+		                -g              # print command arguments
+		                -l              # print syscall type
+		                -s              # print start time, us
+		                -v              # print start time, string
+		                -x              # only print failed stats
+		                -Z              # print zonename
+		                -f pathname	# pathname name to snoop
+		                -n name		# process name to snoop
+		                -p PID		# process ID to snoop
+		                -t syscall	# stat syscall to trace
+		  eg,
+		       statsnoop -v             # human readable timestamps
+		       statsnoop -e             # see error codes
+		       statsnoop -f /etc/motd   # snoop this file only
+		END
+		exit 1
+	esac
+done
+
+### Option logic
+if [ $opt_dump -eq 1 ]; then
+	opt_zone=0; opt_cwd=0; opt_time=0; opt_timestr=0; opt_type=0
+	opt_args=2 
+fi
+if [ $opt_name -eq 1 -o $opt_pid -eq 1 -o $opt_trace -eq 1 ]; then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_dump 	 = '$opt_dump';
+ inline int OPT_file 	 = '$opt_file';
+ inline int OPT_args 	 = '$opt_args';
+ inline int OPT_cwd	 = '$opt_cwd';
+ inline int OPT_err	 = '$opt_err';
+ inline int OPT_zone 	 = '$opt_zone';
+ inline int OPT_time 	 = '$opt_time';
+ inline int OPT_timestr	 = '$opt_timestr';
+ inline int OPT_type	 = '$opt_type';
+ inline int OPT_failonly = '$opt_failonly';
+ inline int OPT_pid	 = '$opt_pid';
+ inline int OPT_name	 = '$opt_name';
+ inline int OPT_trace	 = '$opt_trace';
+ inline int FILTER 	 = '$filter';
+ inline int PID		 = '$pid';
+ inline string PATHNAME	 = "'$pathname'";
+ inline string NAME	 = "'$pname'";
+ inline string TRACE	 = "'$trace'";
+
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	/* print optional headers */
+ 	OPT_time ? printf("%-14s ", "TIME") : 1;
+ 	OPT_timestr ? printf("%-20s ", "STRTIME") : 1;
+ 	OPT_zone ? printf("%-10s ", "ZONE") : 1;
+
+	/* print dump headers */
+	OPT_dump ? printf("%s %s %s %s %s %s %s %s %s %s %s", "ZONE",
+	    "TIME", "UID", "PID", "PPID", "COMM", "FD", "ERR", "CWD", 
+	    "PATH", "ARGS") : printf("%5s %6s ","UID","PID");
+	
+	/* print main headers */
+	OPT_args == 0 ? printf("%-12s ", "COMM") : 1;
+	OPT_dump == 0 ? printf("%3s ", "FD") : 1;
+	OPT_err ? printf("%3s ", "ERR") : 1;
+	OPT_cwd ? printf("%-20s ", "CWD") : 1;
+	OPT_type ? printf("%-8s ", "TYPE") : 1;
+	OPT_dump == 0 ? printf("%-20s ", "PATH") : 1;
+	OPT_args == 1 ? printf("%s", "ARGS") : 1;
+	printf("\n");
+ }
+
+ /*
+  * Print stat event
+  */
+ syscall::stat:entry, 
+ syscall::lstat:entry,
+ syscall::fstat:entry
+ {
+	/* default is to trace unless filtering */
+	self->ok = FILTER ? 0 : 1;
+
+	/* check each filter */
+	(OPT_name == 1 && NAME == execname) ? self->ok = 1 : 1;
+	(OPT_pid == 1 && PID == pid) ? self->ok = 1 : 1;
+	(OPT_trace == 1 && TRACE == probefunc) ? self->ok = 1 : 1;
+ }
+
+ syscall::stat:entry,
+ syscall::lstat:entry
+ /self->ok/
+ {
+	self->pathp = arg0;
+ }
+
+ syscall::stat:return
+ syscall::lstat:return
+ /self->ok/
+ {
+	self->path = copyinstr(self->pathp);
+ }
+
+ syscall::fstat:return
+ /self->ok/
+ {
+	self->path = strjoin("fd=", lltostr(arg0));
+	/* curthread->l_proc->p_fd->fd_dt->dt_ff[arg0]; */
+ }
+
+ syscall::stat:return,
+ syscall::lstat:return,
+ syscall::fstat:return
+ /self->ok && (! OPT_failonly || (int)arg0 < 0) && 
+     ((OPT_file == 0) || (OPT_file == 1 && PATHNAME == copyinstr(self->pathp)))/
+ {
+	/* print optional fields */
+ 	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+ 	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+ 	OPT_zone ? printf("%-10s ", zonename) : 1;
+
+	/* print dump fields */
+	OPT_dump ? printf("%s %d %d %d %d %s %d %d %s %s %S", zonename,
+	    timestamp/1000, uid, pid, ppid, execname, (int)arg0, errno,
+	    cwd, self->path, curpsinfo->pr_psargs) :
+	    printf("%5d %6d ", uid, pid);
+
+	/* print main fields */
+	OPT_args == 0 ? printf("%-12.12s ", execname) : 1;
+	OPT_dump == 0 ? printf("%3d ", (int)arg0) : 1;
+	OPT_err ? printf("%3d ", errno) : 1;
+	OPT_cwd ? printf("%-20s ", cwd) : 1;
+	OPT_type ? printf("%-8s ", probefunc) : 1;
+	OPT_dump == 0 ? printf("%-20s ", self->path) : 1;
+/*	OPT_args == 1 ? printf("%S", curpsinfo->pr_psargs) : 1; */
+	printf("\n");
+
+	/* cleanup */
+	self->path = 0;
+	self->ok = 0;
+ }
+
+ /* 
+  * Cleanup 
+  */
+ syscall::stat:return,
+ syscall::lstat:return
+/*
+ syscall::fstat:return
+*/
+ /self->ok/
+ {
+	self->path = 0;
+	self->ok = 0;
+ }
+'
diff --git a/external/cddl/osnet/Makefile.inc b/external/cddl/osnet/Makefile.inc
index 6b0eec3..a7d5fb3 100644
--- a/external/cddl/osnet/Makefile.inc
+++ b/external/cddl/osnet/Makefile.inc
@@ -1,6 +1,8 @@
 # $FreeBSD: src/cddl/Makefile.inc,v 1.6.2.1 2009/08/03 08:13:06 kensmith Exp $
 
+WARNS?=5
 OSNETDIR=	${NETBSDSRCDIR}/external/cddl/osnet
 
 OPENSOLARIS_USR_DISTDIR=${OSNETDIR}/dist
 OPENSOLARIS_SYS_DISTDIR=${OSNETDIR}/dist
+CPPFLAGS+=-Wno-unknown-pragmas -Wno-sign-compare
diff --git a/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c b/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c
index bd5c441..81d4da4 100644
--- a/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c
+++ b/external/cddl/osnet/dev/dtrace/dtrace_ioctl.c
@@ -660,9 +660,14 @@ again:
 
 		if (pvp == NULL && error == 0) {
 			char name[NAME_MAX];
+			const char *provider;
+			if (strcmp(pvd->dtvd_name, "proc") == 0)
+				provider = "sdt";
+			else
+				provider = pvd->dtvd_name;
 
 			if (snprintf(name, sizeof name, "dtrace_%s",
-			    pvd->dtvd_name) < sizeof name) {
+			    provider) < sizeof name) {
 				error = module_autoload(name,
 				    MODULE_CLASS_MISC);
 				if (error == 0)
diff --git a/external/cddl/osnet/dev/dtrace/dtrace_modevent.c b/external/cddl/osnet/dev/dtrace/dtrace_modevent.c
index 9df0cd1..cd87a70 100644
--- a/external/cddl/osnet/dev/dtrace/dtrace_modevent.c
+++ b/external/cddl/osnet/dev/dtrace/dtrace_modevent.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_modevent.c,v 1.3 2010/03/13 22:31:15 christos Exp $	*/
+/*	$NetBSD: dtrace_modevent.c,v 1.4 2015/02/26 09:10:52 ozaki-r Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -29,6 +29,7 @@ static int
 dtrace_modcmd(modcmd_t cmd, void *data)
 {
 	int bmajor = -1, cmajor = -1;
+	int error;
 
 	switch (cmd) {
 	case MODULE_CMD_INIT:
@@ -36,8 +37,12 @@ dtrace_modcmd(modcmd_t cmd, void *data)
 		return devsw_attach("dtrace", NULL, &bmajor,
 		    &dtrace_cdevsw, &cmajor);
 	case MODULE_CMD_FINI:
-		dtrace_unload();
+		error = dtrace_unload();
+		if (error != 0)
+			return error;
 		return devsw_detach(NULL, &dtrace_cdevsw);
+	case MODULE_CMD_AUTOUNLOAD:
+		return EBUSY;
 	default:
 		return ENOTTY;
 	}
diff --git a/external/cddl/osnet/dev/dtrace/dtrace_unload.c b/external/cddl/osnet/dev/dtrace/dtrace_unload.c
index 0d9f9fa..7b43899 100644
--- a/external/cddl/osnet/dev/dtrace/dtrace_unload.c
+++ b/external/cddl/osnet/dev/dtrace/dtrace_unload.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_unload.c,v 1.5 2011/07/26 12:26:33 yamt Exp $	*/
+/*	$NetBSD: dtrace_unload.c,v 1.6 2015/02/26 09:10:52 ozaki-r Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -37,9 +37,7 @@ dtrace_unload()
 	mutex_enter(&dtrace_lock);
 	mutex_enter(&cpu_lock);
 
-	ASSERT(dtrace_opens == 0);
-
-	if (dtrace_helpers > 0) {
+	if (dtrace_opens > 0 || dtrace_helpers > 0) {
 		mutex_exit(&cpu_lock);
 		mutex_exit(&dtrace_lock);
 		mutex_exit(&dtrace_provider_lock);
diff --git a/external/cddl/osnet/dev/fbt/fbt.c b/external/cddl/osnet/dev/fbt/fbt.c
index c77bc99..aa3b7a6 100644
--- a/external/cddl/osnet/dev/fbt/fbt.c
+++ b/external/cddl/osnet/dev/fbt/fbt.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: fbt.c,v 1.16 2014/07/26 04:54:20 ryoon Exp $	*/
+/*	$NetBSD: fbt.c,v 1.18 2015/02/26 10:31:52 ozaki-r Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -2104,9 +2104,10 @@ fbt_unload(void)
 
 
 static int
-fbt_modcmd(modcmd_t cmd, void *data)
+dtrace_fbt_modcmd(modcmd_t cmd, void *data)
 {
 	int bmajor = -1, cmajor = -1;
+	int error;
 
 	switch (cmd) {
 	case MODULE_CMD_INIT:
@@ -2114,8 +2115,12 @@ fbt_modcmd(modcmd_t cmd, void *data)
 		return devsw_attach("fbt", NULL, &bmajor,
 		    &fbt_cdevsw, &cmajor);
 	case MODULE_CMD_FINI:
-		fbt_unload();
+		error = fbt_unload();
+		if (error != 0)
+			return error;
 		return devsw_detach(NULL, &fbt_cdevsw);
+	case MODULE_CMD_AUTOUNLOAD:
+		return EBUSY;
 	default:
 		return ENOTTY;
 	}
@@ -2127,4 +2132,4 @@ fbt_open(dev_t dev, int flags, int mode, struct lwp *l)
 	return (0);
 }
 
-MODULE(MODULE_CLASS_MISC, fbt, "dtrace");
+MODULE(MODULE_CLASS_MISC, dtrace_fbt, "dtrace");
diff --git a/external/cddl/osnet/dev/lockstat/lockstat.c b/external/cddl/osnet/dev/lockstat/lockstat.c
index e41d0ea..6370141 100644
--- a/external/cddl/osnet/dev/lockstat/lockstat.c
+++ b/external/cddl/osnet/dev/lockstat/lockstat.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: lockstat.c,v 1.3 2013/06/21 19:16:00 christos Exp $	*/
+/*	$NetBSD: lockstat.c,v 1.8 2015/03/09 01:42:26 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -19,225 +19,103 @@
  * information: Portions Copyright [yyyy] [name of copyright owner]
  *
  * CDDL HEADER END
- *
- * Portions Copyright (c) 2008-2009 Stacey Son <sson@FreeBSD.org> 
- *
- * $FreeBSD: src/sys/cddl/dev/lockstat/lockstat.c,v 1.2.2.1 2009/08/03 08:13:06 kensmith Exp $
- *
  */
-
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
-#include "opt_kdtrace.h"
-
 #include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: lockstat.c,v 1.8 2015/03/09 01:42:26 christos Exp $");
+
+#include <sys/types.h>
 #include <sys/param.h>
-#include <sys/systm.h>
 #include <sys/conf.h>
-#include <sys/kernel.h>
-#include <sys/limits.h>
-#include <sys/lock.h>
-#include <sys/linker.h>
+#include <sys/dtrace.h>
 #include <sys/module.h>
 #include <sys/mutex.h>
+#include <sys/systm.h>
+#include <sys/xcall.h>
+#include <sys/atomic.h>
 
-#include <sys/dtrace.h>
-#include <sys/lockstat.h>
-
-#if defined(__i386__) || defined(__amd64__) || defined(__arm__)
-#define LOCKSTAT_AFRAMES 1
-#else
-#error "architecture not supported"
-#endif
-
-static d_open_t lockstat_open;
-static void     lockstat_provide(void *, dtrace_probedesc_t *);
-static void     lockstat_destroy(void *, dtrace_id_t, void *);
-static void     lockstat_enable(void *, dtrace_id_t, void *);
-static void     lockstat_disable(void *, dtrace_id_t, void *);
-static void     lockstat_load(void *);
-static int     	lockstat_unload(void);
+#define NLOCKSTAT 1
+#include <dev/lockstat.h>
 
+#define	ASSERT	KASSERT
 
 typedef struct lockstat_probe {
-	char		*lsp_func;
-	char		*lsp_name;
+	const char	*lsp_func;
+	const char	*lsp_name;
 	int		lsp_probe;
 	dtrace_id_t	lsp_id;
-#ifdef __FreeBSD__
-	int		lsp_frame;
-#endif
 } lockstat_probe_t;
 
-#ifdef __FreeBSD__
-lockstat_probe_t lockstat_probes[] =
-{
-  /* Spin Locks */
-  { LS_MTX_SPIN_LOCK,	LSS_ACQUIRE,	LS_MTX_SPIN_LOCK_ACQUIRE,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_MTX_SPIN_LOCK, 	LSS_SPIN,	LS_MTX_SPIN_LOCK_SPIN,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_MTX_SPIN_UNLOCK,	LSS_RELEASE,	LS_MTX_SPIN_UNLOCK_RELEASE,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  /* Adaptive Locks */
-  { LS_MTX_LOCK,	LSA_ACQUIRE,	LS_MTX_LOCK_ACQUIRE,
-	  DTRACE_IDNONE, (LOCKSTAT_AFRAMES + 1) },
-  { LS_MTX_LOCK,	LSA_BLOCK,	LS_MTX_LOCK_BLOCK,
-	  DTRACE_IDNONE, (LOCKSTAT_AFRAMES + 1) },
-  { LS_MTX_LOCK,	LSA_SPIN,	LS_MTX_LOCK_SPIN,
-	  DTRACE_IDNONE, (LOCKSTAT_AFRAMES + 1) },
-  { LS_MTX_UNLOCK,	LSA_RELEASE,	LS_MTX_UNLOCK_RELEASE,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_MTX_TRYLOCK,	LSA_ACQUIRE,	LS_MTX_TRYLOCK_ACQUIRE,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  /* Reader/Writer Locks */
-  { LS_RW_RLOCK,	LSR_ACQUIRE,	LS_RW_RLOCK_ACQUIRE,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_RW_RLOCK,	LSR_BLOCK,	LS_RW_RLOCK_BLOCK,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_RW_RLOCK,	LSR_SPIN,	LS_RW_RLOCK_SPIN,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_RW_RUNLOCK,	LSR_RELEASE,	LS_RW_RUNLOCK_RELEASE,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_RW_WLOCK,	LSR_ACQUIRE,	LS_RW_WLOCK_ACQUIRE,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_RW_WLOCK,	LSR_BLOCK,	LS_RW_WLOCK_BLOCK,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_RW_WLOCK,	LSR_SPIN,	LS_RW_WLOCK_SPIN,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_RW_WUNLOCK,	LSR_RELEASE,	LS_RW_WUNLOCK_RELEASE,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_RW_TRYUPGRADE,	LSR_UPGRADE,   	LS_RW_TRYUPGRADE_UPGRADE,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_RW_DOWNGRADE,	LSR_DOWNGRADE, 	LS_RW_DOWNGRADE_DOWNGRADE,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  /* Shared/Exclusive Locks */
-  { LS_SX_SLOCK,	LSX_ACQUIRE,	LS_SX_SLOCK_ACQUIRE,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_SX_SLOCK,	LSX_BLOCK,	LS_SX_SLOCK_BLOCK,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_SX_SLOCK,	LSX_SPIN,	LS_SX_SLOCK_SPIN,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_SX_SUNLOCK,	LSX_RELEASE,	LS_SX_SUNLOCK_RELEASE,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_SX_XLOCK,	LSX_ACQUIRE,	LS_SX_XLOCK_ACQUIRE,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_SX_XLOCK,	LSX_BLOCK,	LS_SX_XLOCK_BLOCK,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_SX_XLOCK,	LSX_SPIN,	LS_SX_XLOCK_SPIN,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_SX_XUNLOCK,	LSX_RELEASE,	LS_SX_XUNLOCK_RELEASE,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_SX_TRYUPGRADE,	LSX_UPGRADE,	LS_SX_TRYUPGRADE_UPGRADE,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { LS_SX_DOWNGRADE,	LSX_DOWNGRADE,	LS_SX_DOWNGRADE_DOWNGRADE,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  /* Thread Locks */
-  { LS_THREAD_LOCK,	LST_SPIN,	LS_THREAD_LOCK_SPIN,
-	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
-  { NULL }
-};
-#else
-#error "OS not supported"
-#endif
-
-
-static struct cdevsw lockstat_cdevsw = {
-	.d_version	= D_VERSION,
-	.d_open		= lockstat_open,
-	.d_name		= "lockstat",
+lockstat_probe_t lockstat_probes[] = {
+	{ "mutex_spin", "spin",		LB_SPIN_MUTEX	| LB_SPIN,	0 },
+	{ "mutex_adaptive", "sleep",	LB_ADAPTIVE_MUTEX | LB_SLEEP1,	0 },
+	{ "mutex_adaptive", "spin",	LB_ADAPTIVE_MUTEX | LB_SPIN,	0 },
+	{ "rwlock", "sleep_writer",	LB_RWLOCK	| LB_SLEEP1,	0 },
+	{ "rwlock", "sleep_reader",	LB_RWLOCK	| LB_SLEEP2,	0 },
+	{ "rwlock", "spin",		LB_RWLOCK	| LB_SPIN,	0 },
+	{ "kernel", "spin",		LB_KERNEL_LOCK	| LB_SPIN,	0 },
+	{ "lwp", "spin",		LB_NOPREEMPT	| LB_SPIN,	0 },
+	{ NULL, NULL,			0,				0 },
 };
 
-static struct cdev		*lockstat_cdev; 
-static dtrace_provider_id_t 	lockstat_id;
+static dtrace_provider_id_t lockstat_id;
+static size_t lockstat_dtrace_count;
 
 /*ARGSUSED*/
-static void
+static int
 lockstat_enable(void *arg, dtrace_id_t id, void *parg)
 {
 	lockstat_probe_t *probe = parg;
 
-	ASSERT(!lockstat_probemap[probe->lsp_probe]);
-
-	lockstat_probemap[probe->lsp_probe] = id;
-#ifdef DOODAD
-	membar_producer();
-#endif
+	ASSERT(!lockstat_probemap[LS_COMPRESS(probe->lsp_probe)]);
 
-	lockstat_probe_func = dtrace_probe;
-#ifdef DOODAD
-	membar_producer();
+	lockstat_probemap[LS_COMPRESS(probe->lsp_probe)] = id;
+	if (lockstat_dtrace_count++ == 0) {
+		lockstat_dtrace_enabled = LB_DTRACE;
+		LOCKSTAT_ENABLED_UPDATE();
+	}
 
-	lockstat_hot_patch();
-	membar_producer();
-#endif
+	return 0;
 }
 
 /*ARGSUSED*/
 static void
-lockstat_disable(void *arg, dtrace_id_t id, void *parg)
+lockstat_disable(void *arg, dtrace_id_t id __unused, void *parg)
 {
 	lockstat_probe_t *probe = parg;
-	int i;
 
-	ASSERT(lockstat_probemap[probe->lsp_probe]);
+	ASSERT(lockstat_probemap[LS_COMPRESS(probe->lsp_probe)]);
 
-	lockstat_probemap[probe->lsp_probe] = 0;
-#ifdef DOODAD
-	lockstat_hot_patch();
-	membar_producer();
-#endif
-
-	/*
-	 * See if we have any probes left enabled.
-	 */
-	for (i = 0; i < LS_NPROBES; i++) {
-		if (lockstat_probemap[i]) {
-			/*
-			 * This probe is still enabled.  We don't need to deal
-			 * with waiting for all threads to be out of the
-			 * lockstat critical sections; just return.
-			 */
-			return;
-		}
+	if (--lockstat_dtrace_count == 0) {
+		lockstat_dtrace_enabled = 0;
+		LOCKSTAT_ENABLED_UPDATE();
 	}
 
-}
-
-/*ARGSUSED*/
-static int
-lockstat_open(struct cdev *dev __unused, int oflags __unused, 
-	      int devtype __unused, struct thread *td __unused)
-{
-	return (0);
+	lockstat_probemap[LS_COMPRESS(probe->lsp_probe)] = 0;
 }
 
 /*ARGSUSED*/
 static void
-lockstat_provide(void *arg, dtrace_probedesc_t *desc)
+lockstat_provide(void *arg, const dtrace_probedesc_t *desc)
 {
 	int i = 0;
 
 	for (i = 0; lockstat_probes[i].lsp_func != NULL; i++) {
 		lockstat_probe_t *probe = &lockstat_probes[i];
 
-		if (dtrace_probe_lookup(lockstat_id, "kernel",
-		    probe->lsp_func, probe->lsp_name) != 0)
+		if (dtrace_probe_lookup(lockstat_id, __UNCONST("kernel"),
+			__UNCONST(probe->lsp_func), __UNCONST(probe->lsp_name))
+		    != 0)
 			continue;
 
 		ASSERT(!probe->lsp_id);
-#ifdef __FreeBSD__
 		probe->lsp_id = dtrace_probe_create(lockstat_id,
-		    "kernel", probe->lsp_func, probe->lsp_name,
-		    probe->lsp_frame, probe);
-#else
-		probe->lsp_id = dtrace_probe_create(lockstat_id,
-		    "kernel", probe->lsp_func, probe->lsp_name,
-		    LOCKSTAT_AFRAMES, probe);
-#endif
+		    __UNCONST("kernel"), __UNCONST(probe->lsp_func),
+		    __UNCONST(probe->lsp_name), 1, probe);
 	}
 }
 
@@ -273,57 +151,96 @@ static dtrace_pops_t lockstat_pops = {
 };
 
 static void
-lockstat_load(void *dummy)
+lockstat_barrier_xc(void *arg0 __unused, void *arg1 __unused)
 {
-	/* Create the /dev/dtrace/lockstat entry. */
-	lockstat_cdev = make_dev(&lockstat_cdevsw, 0, UID_ROOT, GID_WHEEL, 0600,
-	    "dtrace/lockstat");
 
-	if (dtrace_register("lockstat", &lockstat_attr, DTRACE_PRIV_USER,
-	    NULL, &lockstat_pops, NULL, &lockstat_id) != 0)
-	        return;
+	membar_consumer();
 }
 
-static int
-lockstat_unload()
+typedef void (*dtrace_probe_func_t)(dtrace_id_t, uintptr_t, uintptr_t,
+    uintptr_t, uintptr_t, uintptr_t);
+
+static bool
+lockstat_cas_probe(dtrace_probe_func_t old, dtrace_probe_func_t new)
 {
-	int error = 0;
 
-	if ((error = dtrace_unregister(lockstat_id)) != 0)
-	    return (error);
+	ASSERT(kernconfig_is_held());
 
-	destroy_dev(lockstat_cdev);
+	if (lockstat_probe_func != old)
+		return false;
 
-	return (error);
+	lockstat_probe_func = new;
+	membar_producer();
+	xc_wait(xc_broadcast(0, lockstat_barrier_xc, NULL, NULL));
+	return true;
 }
 
-/* ARGSUSED */
 static int
-lockstat_modevent(module_t mod __unused, int type, void *data __unused)
+lockstat_init(void)
 {
-	int error = 0;
+	int error;
+	bool ok;
+
+	/* Install the probe function.  */
+	ok = lockstat_cas_probe(lockstat_probe_stub, dtrace_probe);
+	if (!ok) {
+		printf("dtrace_lockstat: lockstat probe already installed\n");
+		error = EEXIST;
+		goto fail0;
+	}
 
-	switch (type) {
-	case MOD_LOAD:
-		break;
+	/* Everything is in place.  Register a dtrace provider.  */
+	ASSERT(lockstat_id == 0);
+	error = dtrace_register("lockstat", &lockstat_attr, DTRACE_PRIV_USER,
+	    NULL, &lockstat_pops, NULL, &lockstat_id);
+	if (error) {
+		printf("dtrace_lockstat: failed to register dtrace provider"
+		    ": %d\n", error);
+		goto fail1;
+	}
+	/* Success!  */
+	return 0;
 
-	case MOD_UNLOAD:
-		break;
+fail1:	ok = lockstat_cas_probe(dtrace_probe, lockstat_probe_stub);
+	ASSERT(ok);
+fail0:	ASSERT(error);
+	return error;
+}
+
+static int
+lockstat_fini(void)
+{
+	int error;
+	bool ok __diagused;
+
+	error = dtrace_unregister(lockstat_id);
+	if (error) {
+		printf("dtrace_lockstat: failed to unregister dtrace provider"
+		    ": %d\n",
+		    error);
+		return error;
+	}
 
-	case MOD_SHUTDOWN:
-		break;
+	/* Unhook the probe.  */
+	ok = lockstat_cas_probe(dtrace_probe, lockstat_probe_stub);
+	ASSERT(ok);
 
+	/* Success!  */
+	return 0;
+}
+
+static int
+dtrace_lockstat_modcmd(modcmd_t cmd, void *data)
+{
+
+	switch (cmd) {
+	case MODULE_CMD_INIT:
+		return lockstat_init();
+	case MODULE_CMD_FINI:
+		return lockstat_fini();
 	default:
-		error = EOPNOTSUPP;
-		break;
+		return ENOTTY;
 	}
-	return (error);
 }
 
-SYSINIT(lockstat_load, SI_SUB_DTRACE_PROVIDER, SI_ORDER_ANY, lockstat_load, NULL);
-SYSUNINIT(lockstat_unload, SI_SUB_DTRACE_PROVIDER, SI_ORDER_ANY, lockstat_unload, NULL);
-
-DEV_MODULE(lockstat, lockstat_modevent, NULL);
-MODULE_VERSION(lockstat, 1);
-MODULE_DEPEND(lockstat, dtrace, 1, 1, 1);
-MODULE_DEPEND(lockstat, opensolaris, 1, 1, 1);
+MODULE(MODULE_CLASS_MISC, dtrace_lockstat, "dtrace");
diff --git a/external/cddl/osnet/dev/prototype.c b/external/cddl/osnet/dev/prototype.c
index 6c7f8c2..2989cab 100644
--- a/external/cddl/osnet/dev/prototype.c
+++ b/external/cddl/osnet/dev/prototype.c
@@ -1,146 +1,176 @@
-/*	$NetBSD: prototype.c,v 1.2 2010/02/21 01:46:32 darran Exp $	*/
+/*	$NetBSD: prototype.c,v 1.3 2015/03/09 03:43:02 riastradh Exp $	*/
 
-/*
- * This file is freeware. You are free to use it and add your own
- * license.
+/*-
+ * Copyright (c) 2015 The NetBSD Foundation, Inc.
+ * All rights reserved.
  *
- * $FreeBSD: src/sys/cddl/dev/prototype.c,v 1.1.4.1 2009/08/03 08:13:06 kensmith Exp $
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
  *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
  */
 
 #include <sys/cdefs.h>
+__RCSID("$NetBSD: prototype.c,v 1.3 2015/03/09 03:43:02 riastradh Exp $");
+
+#include <sys/types.h>
 #include <sys/param.h>
-#include <sys/systm.h>
 #include <sys/conf.h>
-#include <sys/kernel.h>
-#include <sys/module.h>
-
 #include <sys/dtrace.h>
+#include <sys/module.h>
+#include <sys/systm.h>
 
-static d_open_t	prototype_open;
-static int	prototype_unload(void);
-static void	prototype_getargdesc(void *, dtrace_id_t, void *, dtrace_argdesc_t *);
-static void	prototype_provide(void *, dtrace_probedesc_t *);
-static void	prototype_destroy(void *, dtrace_id_t, void *);
-static void	prototype_enable(void *, dtrace_id_t, void *);
-static void	prototype_disable(void *, dtrace_id_t, void *);
-static void	prototype_load(void *);
-
-static struct cdevsw prototype_cdevsw = {
-	.d_version	= D_VERSION,
-	.d_open		= prototype_open,
-	.d_name		= "prototype",
-};
-
-static dtrace_pattr_t prototype_attr = {
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
-};
-
-static dtrace_pops_t prototype_pops = {
-	prototype_provide,
-	NULL,
-	prototype_enable,
-	prototype_disable,
-	NULL,
-	NULL,
-	prototype_getargdesc,
-	NULL,
-	NULL,
-	prototype_destroy
-};
-
-static struct cdev		*prototype_cdev;
-static dtrace_provider_id_t	prototype_id;
+static dtrace_provider_id_t prototype_id;
 
 static void
-prototype_getargdesc(void *arg, dtrace_id_t id, void *parg, dtrace_argdesc_t *desc)
+prototype_enable(void *arg, dtrace_id_t id, void *parg)
 {
+	/* Enable the probe for id.  */
 }
 
 static void
-prototype_provide(void *arg, dtrace_probedesc_t *desc)
+prototype_disable(void *arg, dtrace_id_t id, void *parg)
 {
+	/* Disable the probe for id.  */
 }
 
 static void
-prototype_destroy(void *arg, dtrace_id_t id, void *parg)
+prototype_getargdesc(void *arg, dtrace_id_t id, void *parg,
+    dtrace_argdesc_t *desc)
 {
+	/* Get the argument descriptions for the probe id.  */
 }
 
-static void
-prototype_enable(void *arg, dtrace_id_t id, void *parg)
+static uint64_t
+prototype_getargval(void *arg, dtrace_id_t id, void *parg, int argno,
+    int aframes)
 {
+	/* Get the value for the argno'th argument to the probe id.  */
 }
 
 static void
-prototype_disable(void *arg, dtrace_id_t id, void *parg)
+prototype_provide(void *arg, const dtrace_probedesc_t *desc)
 {
+	/*
+	 * Create all probes for this provider.  Cookie passed to
+	 * dtrace_probe_create will be passed on to prototype_destroy.
+	 */
 }
 
 static void
-prototype_load(void *dummy)
+prototype_destroy(void *arg, dtrace_id_t id, void *parg)
 {
-	/* Create the /dev/dtrace/prototype entry. */
-	prototype_cdev = make_dev(&prototype_cdevsw, 0, UID_ROOT, GID_WHEEL, 0600,
-	    "dtrace/prototype");
-
-	if (dtrace_register("prototype", &prototype_attr, DTRACE_PRIV_USER,
-	    NULL, &prototype_pops, NULL, &prototype_id) != 0)
-		return;
+	/*
+	 * Destroy a probe for this provider.  parg is cookie that was
+	 * passed to dtrace_probe_create for this probe.
+	 */
 }
 
+static dtrace_pattr_t prototype_attr = {
+/* provider attributes */
+{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
+/* module attributes */
+{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
+/* function attributes */
+{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
+/* name attributes */
+{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
+/* arguments attributes */
+{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
+};
+
+static dtrace_pops_t prototype_pops = {
+	prototype_provide,
+	NULL,			/* provide_module (NYI) */
+	prototype_enable,
+	prototype_disable,
+	NULL,			/* suspend (NYI) */
+	NULL,			/* resume (NYI) */
+	prototype_getargdesc,	/* optional */
+	prototype_getargval,	/* optional */
+	NULL,			/* usermode permissions check */
+	prototype_destroy,
+};
 
 static int
-prototype_unload()
+prototype_init(void)
 {
-	int error = 0;
-
-	if ((error = dtrace_unregister(prototype_id)) != 0)
-		return (error);
+	int error;
+
+	/* Set up any necessary state, or fail. */
+
+	/* Register the dtrace provider.  */
+	KASSERT(prototype_id == 0);
+	error = dtrace_register("prototype", &prototype_attr, DTRACE_PRIV_USER,
+	    NULL, &prototype_pops, NULL, &prototype_id);
+	if (error) {
+		printf("dtrace_prototype: failed to register dtrace provider"
+		    ": %d\n", error);
+		goto fail0;
+	}
+	KASSERT(prototype_id != 0);
 
-	destroy_dev(prototype_cdev);
+	/* Success!  */
+	return 0;
 
-	return (error);
+fail0:	KASSERT(error);
+	return error;
 }
 
 static int
-prototype_modevent(module_t mod __unused, int type, void *data __unused)
+prototype_fini(void)
 {
-	int error = 0;
-
-	switch (type) {
-	case MOD_LOAD:
-		break;
-
-	case MOD_UNLOAD:
-		break;
-
-	case MOD_SHUTDOWN:
-		break;
-
-	default:
-		error = EOPNOTSUPP;
-		break;
-
+	int error;
+
+	/*
+	 * Deregister the dtrace provider, unless we already did but
+	 * something below failed.
+	 */
+	if (prototype_id != 0) {
+		error = dtrace_unregister(prototype_id);
+		if (error) {
+			printf("dtrace prototype"
+			    ": failed to unregister dtrace provider: %d\n",
+			    error);
+			return error;
+		}
+		prototype_id = 0;
 	}
 
-	return (error);
+	/* Tear down any necessary state, or fail.  */
+
+	/* Success!  */
+	return 0;
 }
 
 static int
-prototype_open(struct cdev *dev __unused, int oflags __unused, int devtype __unused, struct thread *td __unused)
+dtrace_prototype_modcmd(modcmd_t cmd, void *data)
 {
-	return (0);
-}
 
-SYSINIT(prototype_load, SI_SUB_DTRACE_PROVIDER, SI_ORDER_ANY, prototype_load, NULL);
-SYSUNINIT(prototype_unload, SI_SUB_DTRACE_PROVIDER, SI_ORDER_ANY, prototype_unload, NULL);
+	switch (cmd) {
+	case MODULE_CMD_INIT:
+		return prototype_init();
+	case MODULE_CMD_FINI:
+		return prototype_fini();
+	default:
+		return ENOTTY;
+	}
+}
 
-DEV_MODULE(prototype, prototype_modevent, NULL);
-MODULE_VERSION(prototype, 1);
-MODULE_DEPEND(prototype, dtrace, 1, 1, 1);
-MODULE_DEPEND(prototype, opensolaris, 1, 1, 1);
+MODULE(MODULE_CLASS_MISC, dtrace_prototype, "dtrace");
diff --git a/external/cddl/osnet/dev/sdt/sdt.c b/external/cddl/osnet/dev/sdt/sdt.c
index 3ebd4e5..98a71d9 100644
--- a/external/cddl/osnet/dev/sdt/sdt.c
+++ b/external/cddl/osnet/dev/sdt/sdt.c
@@ -1,74 +1,105 @@
-/*	$NetBSD: sdt.c,v 1.9 2014/07/26 04:54:20 ryoon Exp $	*/
-
-/*-
- * Copyright (c) 2010 The NetBSD Foundation, Inc.
- * All rights reserved.
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
  *
- * This code is derived from software contributed to The NetBSD Foundation
- * by CoyotePoint Systems, Inc. It was developed under contract to 
- * CoyotePoint by Darran Hunt.
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
+ * CDDL HEADER END
  *
+ * Portions Copyright 2006-2008 John Birrell jb@freebsd.org
+ *
+ * $FreeBSD: head/sys/cddl/dev/sdt/sdt.c 285703 2015-07-19 22:14:09Z markj $
  *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifdef _KERNEL_OPT
-#include "opt_dtrace.h"
-#endif
+/*
+ * This file contains a reimplementation of the statically-defined tracing (SDT)
+ * framework for DTrace. Probes and SDT providers are defined using the macros
+ * in sys/sdt.h, which append all the needed structures to linker sets. When
+ * this module is loaded, it iterates over all of the loaded modules and
+ * registers probes and providers with the DTrace framework based on the
+ * contents of these linker sets.
+ *
+ * A list of SDT providers is maintained here since a provider may span multiple
+ * modules. When a kernel module is unloaded, a provider defined in that module
+ * is unregistered only if no other modules refer to it. The DTrace framework is
+ * responsible for destroying individual probes when a kernel module is
+ * unloaded; in particular, probes may not span multiple kernel modules.
+ */
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: sdt.c,v 1.14 2015/10/02 17:13:32 christos Exp $");
 
 #include <sys/cdefs.h>
 #include <sys/param.h>
 #include <sys/systm.h>
+
 #include <sys/conf.h>
+#ifdef __FreeBSD__
+#include <sys/eventhandler.h>
+#endif
 #include <sys/kernel.h>
+#include <sys/limits.h>
+#ifdef __FreeBSD__
+#include <sys/linker.h>
+#include <sys/linker_set.h>
+#endif
+#include <sys/lock.h>
+#ifdef __FreeBSD__
+#include <sys/lockstat.h>
+#endif
+#include <sys/malloc.h>
 #include <sys/kmem.h>
 #include <sys/module.h>
 #include <sys/mutex.h>
-
-#include <sys/dtrace.h>
-
+#include <sys/queue.h>
 #define KDTRACE_HOOKS
 #include <sys/sdt.h>
 
-#undef SDT_DEBUG
-
-static dev_type_open(sdt_open);
+#include <sys/dtrace.h>
+#include <sys/dtrace_bsd.h>
 
-static int	sdt_unload(void);
+/* DTrace methods. */
 static void	sdt_getargdesc(void *, dtrace_id_t, void *, dtrace_argdesc_t *);
-static void	sdt_provide(void *, const dtrace_probedesc_t *);
+static void	sdt_provide_probes(void *, const dtrace_probedesc_t *);
 static void	sdt_destroy(void *, dtrace_id_t, void *);
 static int	sdt_enable(void *, dtrace_id_t, void *);
 static void	sdt_disable(void *, dtrace_id_t, void *);
-static void	sdt_load(void *);
 
-static const struct cdevsw sdt_cdevsw = {
-	sdt_open, noclose, noread, nowrite, noioctl,
-	nostop, notty, nopoll, nommap, nokqfilter, nodiscard,
-	D_OTHER
+static void	sdt_load(void);
+static int	sdt_unload(void);
+static void	sdt_create_provider(struct sdt_provider *);
+static void	sdt_create_probe(struct sdt_probe *);
+#ifdef __FreeBSD__
+static void	sdt_kld_load(void *, struct linker_file *);
+static void	sdt_kld_unload_try(void *, struct linker_file *, int *);
+#endif
+
+MALLOC_DECLARE(M_SDT);
+MALLOC_DEFINE(M_SDT, "SDT", "DTrace SDT providers");
+#define SDT_KASSERT(cond, msg)	KASSERT(cond)
+
+static dtrace_pattr_t sdt_attr = {
+{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
+{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
+{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
+{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
+{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
 };
 
 static dtrace_pops_t sdt_pops = {
-	sdt_provide,
+	sdt_provide_probes,
 	NULL,
 	sdt_enable,
 	sdt_disable,
@@ -77,400 +108,465 @@ static dtrace_pops_t sdt_pops = {
 	sdt_getargdesc,
 	NULL,
 	NULL,
-	sdt_destroy
+	sdt_destroy,
 };
 
-#ifdef notyet
-static struct cdev		*sdt_cdev;
+#ifdef __NetBSD__
+static int
+sdt_open(dev_t dev, int flags, int mode, struct lwp *l)
+{
+	return (0);
+}
+
+static const struct cdevsw sdt_cdevsw = {
+	sdt_open, noclose, noread, nowrite, noioctl,
+	nostop, notty, nopoll, nommap, nokqfilter, nodiscard,
+	D_OTHER
+};
 #endif
 
-/*
- * Provider and probe definitions 
- */
+static TAILQ_HEAD(, sdt_provider) sdt_prov_list;
 
-/*
- * proc provider
- */
+#ifdef __FreeBSD__
+eventhandler_tag	sdt_kld_load_tag;
+eventhandler_tag	sdt_kld_unload_try_tag;
+#endif
 
-/* declare all probes belonging to the provider */
-SDT_PROBE_DECLARE(proc,,,create);
-SDT_PROBE_DECLARE(proc,,,exec);
-SDT_PROBE_DECLARE(proc,,,exec_success);
-SDT_PROBE_DECLARE(proc,,,exec_failure);
-SDT_PROBE_DECLARE(proc,,,signal_send);
-SDT_PROBE_DECLARE(proc,,,signal_discard);
-SDT_PROBE_DECLARE(proc,,,signal_clear);
-SDT_PROBE_DECLARE(proc,,,signal_handle);
-SDT_PROBE_DECLARE(proc,,,lwp_create);
-SDT_PROBE_DECLARE(proc,,,lwp_start);
-SDT_PROBE_DECLARE(proc,,,lwp_exit);
-
-/* define the provider */
-static sdt_provider_t proc_provider = {
-	"proc",		/* provider name */
-	0,		/* registered ID - leave as 0 */
-	{
-		{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
-		{ DTRACE_STABILITY_PRIVATE,  DTRACE_STABILITY_PRIVATE,  DTRACE_CLASS_UNKNOWN },
-		{ DTRACE_STABILITY_PRIVATE,  DTRACE_STABILITY_PRIVATE,  DTRACE_CLASS_ISA },
-		{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
-		{ DTRACE_STABILITY_PRIVATE,  DTRACE_STABILITY_PRIVATE,  DTRACE_CLASS_ISA },
-	},
-
-	/* list all probes belonging to the provider */
-	{ 
-		&SDT_NAME(proc,,,create),
-		&SDT_NAME(proc,,,exec),
-		&SDT_NAME(proc,,,exec_success),
-		&SDT_NAME(proc,,,exec_failure),
-		&SDT_NAME(proc,,,signal_send),
-		&SDT_NAME(proc,,,signal_discard),
-		&SDT_NAME(proc,,,signal_clear),
-		&SDT_NAME(proc,,,signal_handle),
-		&SDT_NAME(proc,,,lwp_create),
-		&SDT_NAME(proc,,,lwp_start),
-		&SDT_NAME(proc,,,lwp_exit),
-		NULL				/* NULL terminated list */
-	}
-};
+#ifdef __NetBSD__
+static char *
+strdup(const char *s, const struct malloc_type *m)
+{
+	size_t l = strlen(s) + 1;
+	char *d = malloc(l, m, M_WAITOK);
+	memcpy(d, s, l);
+	return d;
+}
+#endif
 
-/* list of local providers to register with DTrace */
-static sdt_provider_t *sdt_providers[] = {
-	&proc_provider,
-	NULL		/* NULL terminated list */
-};
+static void
+sdt_create_provider(struct sdt_provider *prov)
+{
+	struct sdt_provider *curr, *newprov;
+
+	TAILQ_FOREACH(curr, &sdt_prov_list, prov_entry)
+		if (strcmp(prov->name, curr->name) == 0) {
+			/* The provider has already been defined. */
+			curr->sdt_refs++;
+			return;
+		}
 
-static sdt_provider_t **sdt_list = NULL;	/* registered provider list */
-static kmutex_t sdt_mutex;
-static int sdt_count = 0;	/* number of registered providers */
+	/*
+	 * Make a copy of prov so that we don't lose fields if its module is
+	 * unloaded but the provider isn't destroyed. This could happen with
+	 * a provider that spans multiple modules.
+	 */
+	newprov = malloc(sizeof(*newprov), M_SDT, M_WAITOK | M_ZERO);
+	newprov->name = strdup(prov->name, M_SDT);
+	prov->sdt_refs = newprov->sdt_refs = 1;
+
+	TAILQ_INSERT_TAIL(&sdt_prov_list, newprov, prov_entry);
+
+	(void)dtrace_register(newprov->name, &sdt_attr, DTRACE_PRIV_USER, NULL,
+	    &sdt_pops, NULL, (dtrace_provider_id_t *)&newprov->id);
+	prov->id = newprov->id;
+}
 
 static void
-sdt_getargdesc(void *arg, dtrace_id_t id, void *parg, dtrace_argdesc_t *desc)
+sdt_create_probe(struct sdt_probe *probe)
 {
-	sdt_probe_t *sprobe = parg;
+	struct sdt_provider *prov;
+	char mod[DTRACE_MODNAMELEN];
+	char func[DTRACE_FUNCNAMELEN];
+	char name[DTRACE_NAMELEN];
+	const char *from;
+	char *to;
+	size_t len;
+
+	TAILQ_FOREACH(prov, &sdt_prov_list, prov_entry)
+		if (strcmp(prov->name, probe->prov->name) == 0)
+			break;
 
-#ifdef SDT_DEBUG
-	printf("sdt: %s probe %d\n", __func__, id);
-	printf("%s: probe %d (%s:%s:%s:%s).%d\n",
-		__func__, id,
-		sprobe->provider,
-		sprobe->module,
-		sprobe->function,
-		sprobe->name,
-		desc->dtargd_ndx);
-#endif
+	SDT_KASSERT(prov != NULL, ("probe defined without a provider"));
 
-	/* provide up to 5 arguments  */
-	if ((desc->dtargd_ndx < SDT_MAX_ARGS) &&
-		(sprobe->argv[desc->dtargd_ndx] != NULL)) {
-		strncpy(desc->dtargd_native, sprobe->argv[desc->dtargd_ndx],
-			sizeof(desc->dtargd_native));
-		desc->dtargd_mapping = desc->dtargd_ndx;
-		if (sprobe->argx[desc->dtargd_ndx] != NULL) {
-			strncpy(desc->dtargd_xlate, sprobe->argx[desc->dtargd_ndx],
-			    sizeof(desc->dtargd_xlate));
-		}
-#ifdef SDT_DEBUG
-		printf("%s: probe %d (%s:%s:%s:%s).%d = %s\n",
-			__func__, id,
-			sprobe->provider,
-			sprobe->module,
-			sprobe->function,
-			sprobe->name,
-			desc->dtargd_ndx,
-			sprobe->argv[desc->dtargd_ndx]);
-#endif
-	} else {
-#ifdef SDT_DEBUG
-		printf("%s: probe %d (%s:%s:%s:%s).%d = NULL\n",
-			__func__, id,
-			sprobe->provider,
-			sprobe->module,
-			sprobe->function,
-			sprobe->name,
-			desc->dtargd_ndx);
-		desc->dtargd_ndx = DTRACE_ARGNONE;
+#ifdef __FreeBSD__
+	/* If no module name was specified, use the module filename. */
+	if (*probe->mod == 0) {
+		len = strlcpy(mod, probe->sdtp_lf->filename, sizeof(mod));
+		if (len > 3 && strcmp(mod + len - 3, ".ko") == 0)
+			mod[len - 3] = '\0';
+	} else
 #endif
+		strlcpy(mod, probe->mod, sizeof(mod));
+
+	/*
+	 * Unfortunately this is necessary because the Solaris DTrace
+	 * code mixes consts and non-consts with casts to override
+	 * the incompatibilies. On FreeBSD, we use strict warnings
+	 * in the C compiler, so we have to respect const vs non-const.
+	 */
+	strlcpy(func, probe->func, sizeof(func));
+
+	from = probe->name;
+	to = name;
+	for (len = 0; len < (sizeof(name) - 1) && *from != '\0';
+	    len++, from++, to++) {
+		if (from[0] == '_' && from[1] == '_') {
+			*to = '-';
+			from++;
+		} else
+			*to = *from;
 	}
+	*to = '\0';
+
+	if (dtrace_probe_lookup(prov->id, mod, func, name) != DTRACE_IDNONE)
+		return;
+
+	(void)dtrace_probe_create(prov->id, mod, func, name, 1, probe);
 }
 
+/*
+ * Probes are created through the SDT module load/unload hook, so this function
+ * has nothing to do. It only exists because the DTrace provider framework
+ * requires one of provide_probes and provide_module to be defined.
+ */
 static void
-sdt_provide(void *arg, const dtrace_probedesc_t *desc)
+sdt_provide_probes(void *arg, const dtrace_probedesc_t *desc)
 {
-	sdt_provider_t *sprov = arg;
-	int res;
-	int ind;
-	int num_probes = 0;
+}
 
-#ifdef SDT_DEBUG
-	if (desc == NULL) {
-		printf("sdt: provide null\n");
-	} else {
-		printf("sdt: provide %d %02x:%02x:%02x:%02x\n",
-		    desc->dtpd_id,
-		    desc->dtpd_provider[0],
-		    desc->dtpd_mod[0],
-		    desc->dtpd_func[0],
-		    desc->dtpd_name[0]);
-	}
-#endif
+static int
+sdt_enable(void *arg __unused, dtrace_id_t id, void *parg)
+{
+	struct sdt_probe *probe = parg;
 
-	for (ind = 0; sprov->probes[ind] != NULL; ind++) {
-	    	if (sprov->probes[ind]->created == 0) {
-			res = dtrace_probe_create(sprov->id,
-				sprov->probes[ind]->module,
-				sprov->probes[ind]->function,
-				sprov->probes[ind]->name,
-				0, sprov->probes[ind]);
-			sprov->probes[ind]->id = res;
 #ifdef SDT_DEBUG
-			printf("%s: dtrace_probe_create[%d] res=%d\n",
-				__func__, ind, res);
+	printf("sdt: %s\n", __func__);
 #endif
-			sprov->probes[ind]->created = 1;
-			num_probes++;
-		}
-	}
 
-#ifdef SDT_DEBUG
-	printf("sdt: %s num_probes %d\n", __func__, ind);
+	probe->id = id;
+#ifdef __FreeBSD__
+	probe->sdtp_lf->nenabled++;
+	if (strcmp(probe->prov->name, "lockstat") == 0)
+		lockstat_enabled++;
 #endif
-
+	return 1;
 }
 
 static void
-sdt_destroy(void *arg, dtrace_id_t id, void *parg)
+sdt_disable(void *arg __unused, dtrace_id_t id, void *parg)
 {
-	sdt_provider_t *sprov = arg;
-	int ind;
+	struct sdt_probe *probe = parg;
+
+	SDT_KASSERT(probe->sdtp_lf->nenabled > 0, ("no probes enabled"));
 
 #ifdef SDT_DEBUG
 	printf("sdt: %s\n", __func__);
 #endif
 
-	for (ind = 0; sprov->probes[ind] != NULL; ind++) {
-	    	if (sprov->probes[ind]->id == id) {
-#ifdef SDT_DEBUG
-		    	printf("%s: destroying probe %d (%s:%s:%s:%s)\n",
-				__func__, id,
-				sprov->probes[ind]->provider,
-				sprov->probes[ind]->module,
-				sprov->probes[ind]->function,
-				sprov->probes[ind]->name);
+#ifdef __FreeBSD__
+	if (strcmp(probe->prov->name, "lockstat") == 0)
+		lockstat_enabled--;
+	probe->sdtp_lf->nenabled--;
 #endif
-			sprov->probes[ind]->enabled = 0;
-			sprov->probes[ind]->created = 0;
-			sprov->probes[ind]->id = 0;
-			break;
-		}
-	}
+	probe->id = 0;
 }
 
-static int
-sdt_enable(void *arg, dtrace_id_t id, void *parg)
+static void
+sdt_getargdesc(void *arg, dtrace_id_t id, void *parg, dtrace_argdesc_t *desc)
 {
-	sdt_provider_t *sprov = arg;
-	int ind;
+	struct sdt_argtype *argtype;
+	struct sdt_probe *probe = parg;
 
 #ifdef SDT_DEBUG
-	printf("sdt: %s\n", __func__);
+	printf("sdt: %s probe %d\n", __func__, id);
+	printf("%s: probe %d (%s:%s:%s:%s).%d\n",
+		__func__, id,
+		probe->provider,
+		probe->module,
+		probe->function,
+		probe->name,
+		desc->dtargd_ndx);
 #endif
+	if (desc->dtargd_ndx >= probe->n_args) {
+		desc->dtargd_ndx = DTRACE_ARGNONE;
+		return;
+	}
 
-	for (ind = 0; sprov->probes[ind] != NULL; ind++) {
-	    	if (sprov->probes[ind]->id == id) {
-#ifdef SDT_DEBUG
-		    	printf("%s: enabling probe %d (%s:%s:%s:%s)\n",
-				__func__, id,
-				sprov->probes[ind]->provider,
-				sprov->probes[ind]->module,
-				sprov->probes[ind]->function,
-				sprov->probes[ind]->name);
-#endif
-			sprov->probes[ind]->enabled = 1;
-			break;
+	TAILQ_FOREACH(argtype, &probe->argtype_list, argtype_entry) {
+		if (desc->dtargd_ndx == argtype->ndx) {
+			desc->dtargd_mapping = desc->dtargd_ndx;
+			if (argtype->type == NULL) {
+				desc->dtargd_native[0] = '\0';
+				desc->dtargd_xlate[0] = '\0';
+				continue;
+			}
+			strlcpy(desc->dtargd_native, argtype->type,
+			    sizeof(desc->dtargd_native));
+			if (argtype->xtype != NULL)
+				strlcpy(desc->dtargd_xlate, argtype->xtype,
+				    sizeof(desc->dtargd_xlate));
 		}
 	}
+}
 
-	return 0;
+static void
+sdt_destroy(void *arg, dtrace_id_t id, void *parg)
+{
 }
 
+#ifdef __FreeBSD__
+/*
+ * Called from the kernel linker when a module is loaded, before
+ * dtrace_module_loaded() is called. This is done so that it's possible to
+ * register new providers when modules are loaded. The DTrace framework
+ * explicitly disallows calling into the framework from the provide_module
+ * provider method, so we cannot do this there.
+ */
 static void
-sdt_disable(void *arg, dtrace_id_t id, void *parg)
+sdt_kld_load(void *arg __unused, struct linker_file *lf)
 {
-	sdt_provider_t *sprov = arg;
-	int ind;
+	struct sdt_provider **prov, **begin, **end;
+	struct sdt_probe **probe, **p_begin, **p_end;
+	struct sdt_argtype **argtype, **a_begin, **a_end;
+
+	if (linker_file_lookup_set(lf, "sdt_providers_set", &begin, &end,
+	    NULL) == 0) {
+		for (prov = begin; prov < end; prov++)
+			sdt_create_provider(*prov);
+	}
 
-#ifdef SDT_DEBUG
-	printf("sdt: %s\n", __func__);
-#endif
+	if (linker_file_lookup_set(lf, "sdt_probes_set", &p_begin, &p_end,
+	    NULL) == 0) {
+		for (probe = p_begin; probe < p_end; probe++) {
+			(*probe)->sdtp_lf = lf;
+			sdt_create_probe(*probe);
+			TAILQ_INIT(&(*probe)->argtype_list);
+		}
+	}
 
-	for (ind = 0; sprov->probes[ind] != NULL; ind++) {
-	    	if (sprov->probes[ind]->id == id) {
-#ifdef SDT_DEBUG
-		    	printf("%s: disabling probe %d (%s:%s:%s:%s)\n",
-				__func__, id,
-				sprov->probes[ind]->provider,
-				sprov->probes[ind]->module,
-				sprov->probes[ind]->function,
-				sprov->probes[ind]->name);
-#endif
-			sprov->probes[ind]->enabled = 0;
-			break;
+	if (linker_file_lookup_set(lf, "sdt_argtypes_set", &a_begin, &a_end,
+	    NULL) == 0) {
+		for (argtype = a_begin; argtype < a_end; argtype++) {
+			(*argtype)->probe->n_args++;
+			TAILQ_INSERT_TAIL(&(*argtype)->probe->argtype_list,
+			    *argtype, argtype_entry);
 		}
 	}
 }
 
-int
-sdt_register(sdt_provider_t *prov)
+static void
+sdt_kld_unload_try(void *arg __unused, struct linker_file *lf, int *error)
 {
-	int ind;
-	int res;
-
-	/* make sure the provider is not already registered */
-	for (ind = 0; ind < sdt_count; ind++) {
-		if (strncmp(sdt_list[ind]->name, prov->name,
-		    SDT_MAX_NAME_SIZE) == 0) {
-			printf("sdt: provider %s already registered\n", prov->name);
-			return -1;
+	struct sdt_provider *prov, **curr, **begin, **end, *tmp;
+
+	if (*error != 0)
+		/* We already have an error, so don't do anything. */
+		return;
+	else if (linker_file_lookup_set(lf, "sdt_providers_set", &begin, &end,
+	    NULL))
+		/* No DTrace providers are declared in this file. */
+		return;
+
+	/*
+	 * Go through all the providers declared in this linker file and
+	 * unregister any that aren't declared in another loaded file.
+	 */
+	for (curr = begin; curr < end; curr++) {
+		TAILQ_FOREACH_SAFE(prov, &sdt_prov_list, prov_entry, tmp) {
+			if (strcmp(prov->name, (*curr)->name) != 0)
+				continue;
+
+			if (prov->sdt_refs == 1) {
+				if (dtrace_unregister(prov->id) != 0) {
+					*error = 1;
+					return;
+				}
+				TAILQ_REMOVE(&sdt_prov_list, prov, prov_entry);
+				free(prov->name, M_SDT);
+				free(prov, M_SDT);
+			} else
+				prov->sdt_refs--;
+			break;
 		}
 	}
+}
 
-	/* register the new provider */
-	if ((res = dtrace_register(prov->name, 
-			    &prov->attr, DTRACE_PRIV_USER,
-			    NULL, &sdt_pops, prov,
-			    &(prov->id))) != 0) {
-		printf("sdt: failed to register %s res = %d\n",
-			prov->name, res);
-		return -1;
-	}
+static int
+sdt_linker_file_cb(linker_file_t lf, void *arg __unused)
+{
 
-	sdt_list[sdt_count++] = prov;
+	sdt_kld_load(NULL, lf);
 
-	return 0;
+	return (0);
 }
+#endif
 
-int
-sdt_unregister(sdt_provider_t *prov)
+#ifdef __NetBSD__
+/*
+ * weak symbols don't work in kernel modules; link set end symbols are
+ * weak by default, so we kill that.
+ */
+#undef __weak
+#define __weak
+__link_set_decl(sdt_providers_set, struct std_provider);
+__link_set_decl(sdt_probes_set, struct std_probe);
+__link_set_decl(sdt_argtypes_set, struct sdt_argtype);
+
+/*
+ * Unfortunately we don't have linker set functions and event handlers
+ * to support loading and unloading probes in modules... Currently if
+ * modules have probes, if the modules are loaded when sdt is loaded
+ * they will work, but they will crash unloading.
+ */
+static void
+sdt_link_set_load(void)
 {
-	int ind;
-	int res;
-
-	/* find the provider reference */
-	for (ind = 0; ind < sdt_count; ind++) {
-		if (sdt_list[ind] == prov) {
-			res = dtrace_unregister(sdt_list[ind]->id);
-			if (res != 0) {
-				printf(
-				    "sdt: failed to unregister provider %s\n",
-				    sdt_list[ind]->name);
-			}
-			/* remove provider from list */
-			sdt_list[ind] = sdt_list[--sdt_count];
-			return 0;
-		}
+	struct sdt_provider * const *provider;
+	struct sdt_probe **probe;
+	struct sdt_argtype **argtype;
+
+	__link_set_foreach(provider, sdt_providers_set) {
+		sdt_create_provider(*provider);
 	}
 
-	/* provider not found */
-	printf("sdt: provider %s not found\n", prov->name);
+	__link_set_foreach(probe, sdt_probes_set) {
+		(*probe)->sdtp_lf = NULL;	// XXX: we don't support it
+		sdt_create_probe(*probe);
+		TAILQ_INIT(&(*probe)->argtype_list);
+	}
 
-	return 0;
+	__link_set_foreach(argtype, sdt_argtypes_set) {
+		(*argtype)->probe->n_args++;
+		TAILQ_INSERT_TAIL(&(*argtype)->probe->argtype_list,
+		    *argtype, argtype_entry);
+	}
 }
 
 static void
-sdt_load(void *dummy)
+sdt_link_set_unload(void)
 {
-	int ind;
-
-#ifdef SDT_DEBUG
-	printf("sdt: %s\n", __func__);
+	struct sdt_provider **curr, *prov, *tmp;
+
+	/*
+	 * Go through all the providers declared in this linker file and
+	 * unregister any that aren't declared in another loaded file.
+	 */
+	__link_set_foreach(curr, sdt_providers_set) {
+		TAILQ_FOREACH_SAFE(prov, &sdt_prov_list, prov_entry, tmp) {
+			if (strcmp(prov->name, (*curr)->name) != 0)
+				continue;
+
+			if (prov->sdt_refs == 1) {
+				if (dtrace_unregister(prov->id) != 0) {
+					return;
+				}
+				TAILQ_REMOVE(&sdt_prov_list, prov, prov_entry);
+				free(__UNCONST(prov->name), M_SDT);
+				free(prov, M_SDT);
+			} else
+				prov->sdt_refs--;
+			break;
+		}
+	}
+}
 #endif
 
-	sdt_init(dtrace_probe);
-
-	sdt_list = kmem_alloc(sizeof(sdt_provider_t *) * SDT_MAX_PROVIDER,
-	    KM_SLEEP);
 
-	mutex_init(&sdt_mutex, "sdt_mutex", MUTEX_DEFAULT, NULL);
+static void
+sdt_load(void)
+{
+	TAILQ_INIT(&sdt_prov_list);
 
-	sdt_count = 0;
+	sdt_init(dtrace_probe);
+#ifdef __FreeBSD__
+	/* Pick up probes from the kernel and already-loaded linker files. */
+	linker_file_foreach(sdt_linker_file_cb, NULL);
+#endif
+#ifdef __NetBSD__
+	sdt_link_set_load();
+#endif
+}
 
-	if (sdt_list == NULL) {
-		printf("sdt: failed to alloc provider list\n");
-		return;
-	}
+static int
+sdt_unload(void)
+{
+	struct sdt_provider *prov, *tmp;
+	int ret;
 
-	for (ind = 0; sdt_providers[ind] != NULL; ind++) {
-	    	if (sdt_count >= SDT_MAX_PROVIDER) {
-			printf("sdt: too many providers\n");
-			break;
-		}
-		sdt_register(sdt_providers[ind]);
+	sdt_exit();
 
-#ifdef SDT_DEBUG
-		printf("sdt: registered %s id = 0x%x\n",
-			sdt_providers[ind]->name,
-			sdt_providers[ind]->id);
+#ifdef __NetBSD__
+	sdt_link_set_unload();
 #endif
+	TAILQ_FOREACH_SAFE(prov, &sdt_prov_list, prov_entry, tmp) {
+		ret = dtrace_unregister(prov->id);
+		if (ret != 0)
+			return ret;
+		TAILQ_REMOVE(&sdt_prov_list, prov, prov_entry);
+		free(__UNCONST(prov->name), M_SDT);
+		free(prov, M_SDT);
 	}
-}
 
+	return 0;
+}
 
+#ifdef __FreeBSD__
 static int
-sdt_unload(void)
+sdt_modevent(module_t mod __unused, int type, void *data __unused)
 {
 	int error = 0;
-	int res = 0;
-	int ind;
 
-#ifdef SDT_DEBUG
-	printf("sdt: %s\n", __func__);
-#endif
+	switch (type) {
+	case MOD_LOAD:
+		sdt_load();
+		break;
 
-	for (ind = 0; ind < sdt_count; ind++) {
-		if ((res = dtrace_unregister(sdt_list[ind]->id)) != 0) {
-#ifdef SDT_DEBUG
-			printf("%s: failed to unregister %s error = %d\n",
-			    sdt_list[ind]->name, res);
-#endif
-			error = res;
-		} else {
-#ifdef SDT_DEBUG
-			printf("sdt: unregistered %s id = %d\n",
-			    sdt_list[ind]->name,
-			    sdt_list[ind]->id);
-#endif
-		}
+	case MOD_UNLOAD:
+		error = sdt_unload();
+		break;
+
+	case MOD_SHUTDOWN:
+		break;
+
+	default:
+		error = EOPNOTSUPP;
+		break;
 	}
 
-	kmem_free(sdt_list, sizeof(sdt_provider_t *) * SDT_MAX_PROVIDER);
-	mutex_destroy(&sdt_mutex);
-	sdt_exit();
 	return (error);
 }
 
+DEV_MODULE(sdt, sdt_modevent, NULL);
+MODULE_VERSION(sdt, 1);
+MODULE_DEPEND(sdt, dtrace, 1, 1, 1);
+MODULE_DEPEND(sdt, opensolaris, 1, 1, 1);
+#endif
+
+#ifdef __NetBSD__
 static int
-sdt_modcmd(modcmd_t cmd, void *data)
+dtrace_sdt_modcmd(modcmd_t cmd, void *data)
 {
 	int bmajor = -1, cmajor = -1;
+	int error;
 
 	switch (cmd) {
 	case MODULE_CMD_INIT:
-		sdt_load(NULL);
+		sdt_load();
 		return devsw_attach("sdt", NULL, &bmajor,
 		    &sdt_cdevsw, &cmajor);
 	case MODULE_CMD_FINI:
-		sdt_unload();
+		error = sdt_unload();
+		if (error != 0)
+			return error;
 		return devsw_detach(NULL, &sdt_cdevsw);
+	case MODULE_CMD_AUTOUNLOAD:
+		return EBUSY;
 	default:
-		return ENOTTY;
+		error = EOPNOTSUPP;
+		break;
 	}
+	return error;
 }
 
-static int
-sdt_open(dev_t dev, int flags, int mode, struct lwp *l)
-{
-	return (0);
-}
-
-MODULE(MODULE_CLASS_MISC, sdt, "dtrace");
+MODULE(MODULE_CLASS_MISC, dtrace_sdt, "dtrace");
+#endif
diff --git a/external/cddl/osnet/dev/systrace/systrace.c b/external/cddl/osnet/dev/systrace/systrace.c
index 1b06b82..7ebc89c 100644
--- a/external/cddl/osnet/dev/systrace/systrace.c
+++ b/external/cddl/osnet/dev/systrace/systrace.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: systrace.c,v 1.4 2014/01/12 17:49:30 riz Exp $	*/
+/*	$NetBSD: systrace.c,v 1.8 2015/09/24 14:26:44 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -38,9 +38,6 @@
 #include <sys/cpuvar.h>
 #include <sys/fcntl.h>
 #include <sys/filio.h>
-#ifdef __FreeBSD__
-#include <sys/kdb.h>
-#endif
 #include <sys/kernel.h>
 #include <sys/kmem.h>
 #include <sys/kthread.h>
@@ -53,44 +50,44 @@
 #include <sys/poll.h>
 #include <sys/proc.h>
 #include <sys/selinfo.h>
-#ifdef __FreeBSD__
-#include <sys/smp.h>
-#include <sys/sysproto.h>
-#include <sys/sysent.h>
-#endif
 #include <sys/syscallargs.h>
 #include <sys/uio.h>
 #include <sys/unistd.h>
 
 #include <sys/dtrace.h>
 
-#ifdef LINUX_SYSTRACE
-#include <linux.h>
-#include <linux_syscall.h>
-#include <linux_proto.h>
-#include <linux_syscallnames.c>
-#include <linux_systrace.c>
-extern struct sysent linux_sysent[];
-#define	DEVNAME		"dtrace/linsystrace"
-#define	PROVNAME	"linsyscall"
-#define	MAXSYSCALL	LINUX_SYS_MAXSYSCALL
-#define	SYSCALLNAMES	linux_syscallnames
-#define	SYSENT		linux_sysent
+#include "emultrace.h"
+
+#define	CONCAT(x,y)	__CONCAT(x,y)
+#define	STRING(s)	__STRING(s)
+
+#ifndef NATIVE
+extern const char	* const CONCAT(emulname,_syscallnames)[];
+extern const char	* const CONCAT(alt,CONCAT(emulname,_syscallnames))[];
+extern 	struct sysent 	CONCAT(emulname,_sysent)[];
+#define	MODNAME		CONCAT(dtrace_syscall_,emulname)
+#define	MODDEP		"dtrace_syscall,compat_" STRING(emulname)
+#define	MAXSYSCALL	CONCAT(EMULNAME,_SYS_MAXSYSCALL)
+#define	SYSCALLNAMES	CONCAT(emulname,_syscallnames)
+#define	ALTSYSCALLNAMES	CONCAT(alt,CONCAT(emulname,_syscallnames))
+#define	SYSENT		CONCAT(emulname,_sysent)
+#define	PROVNAME	STRING(emulname) "_syscall"
 #else
-/*
- * The syscall arguments are processed into a DTrace argument array
- * using a generated function. See sys/kern/makesyscalls.sh.
- */
-#include <sys/syscall.h>
-#include <kern/systrace_args.c>
 extern const char	* const syscallnames[];
-#define	DEVNAME		"dtrace/systrace"
-#define	PROVNAME	"syscall"
+extern const char	* const altsyscallnames[];
+#define	MODNAME		dtrace_syscall
+#define	MODDEP		"dtrace"
 #define	MAXSYSCALL	SYS_MAXSYSCALL
 #define	SYSCALLNAMES	syscallnames
+#define	ALTSYSCALLNAMES	altsyscallnames
 #define	SYSENT		sysent
+#define	PROVNAME	"syscall"
 #endif
 
+#define	MODCMD		CONCAT(MODNAME,_modcmd)
+#define EMUL		CONCAT(emul_,emulname)
+extern struct emul 	EMUL;
+
 #define	SYSTRACE_ARTIFICIAL_FRAMES	1
 
 #define	SYSTRACE_SHIFT			16
@@ -103,9 +100,6 @@ extern const char	* const syscallnames[];
 #error 1 << SYSTRACE_SHIFT must exceed number of system calls
 #endif
 
-#ifdef __FreeBSD__
-static d_open_t	systrace_open;
-#endif
 static int	systrace_unload(void);
 static void	systrace_getargdesc(void *, dtrace_id_t, void *, dtrace_argdesc_t *);
 static void	systrace_provide(void *, const dtrace_probedesc_t *);
@@ -114,23 +108,6 @@ static int	systrace_enable(void *, dtrace_id_t, void *);
 static void	systrace_disable(void *, dtrace_id_t, void *);
 static void	systrace_load(void *);
 
-#ifdef __FreeBSD__
-static struct cdevsw systrace_cdevsw = {
-	.d_version	= D_VERSION,
-	.d_open		= systrace_open,
-#ifdef LINUX_SYSTRACE
-	.d_name		= "linsystrace",
-#else
-	.d_name		= "systrace",
-#endif
-};
-#endif
-
-static union	{
-	const char	* const *p_constnames;
-	char		**pp_syscallnames;
-} uglyhack = { SYSCALLNAMES };
-
 static dtrace_pattr_t systrace_attr = {
 { DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
 { DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
@@ -152,12 +129,8 @@ static dtrace_pops_t systrace_pops = {
 	systrace_destroy
 };
 
-#ifdef __FreeBSD__
-static struct cdev		*systrace_cdev;
-#endif
 static dtrace_provider_id_t	systrace_id;
 
-#if !defined(LINUX_SYSTRACE)
 /*
  * Probe callback function.
  *
@@ -166,48 +139,41 @@ static dtrace_provider_id_t	systrace_id;
  *       compat syscall from something like Linux.
  */
 static void
-systrace_probe(u_int32_t id, int sysnum, struct sysent *se, void *params)
+systrace_probe(uint32_t id, register_t sysnum, const struct sysent *se,
+    const void *params, const register_t *ret, int error)
 {
-	int		n_args	= 0;
-	union systrace_probe_args_un	uargs[SYS_MAXSYSARGS];
+	size_t		n_args	= 0;
+	uintptr_t	uargs[SYS_MAXSYSARGS + 3];
 
-	/*
-	 * Check if this syscall has an argument conversion function
-	 * registered.
-	 */
-	if (se->sy_systrace_args_func != NULL)
-		/*
-		 * Convert the syscall parameters using the registered
-		 * function.
-		 */
-		(*se->sy_systrace_args_func)(sysnum, params, uargs, &n_args);
-	else
-		/*
-		 * Use the built-in system call argument conversion
-		 * function to translate the syscall structure fields
-		 * into the array of 64-bit values that DTrace 
-		 * expects.
-		 */
+	memset(uargs, 0, sizeof(uargs));
+	if (ret == NULL) {
+		/* entry syscall, convert params */
 		systrace_args(sysnum, params, uargs, &n_args);
-
+	} else {
+		/* return syscall, set values and params: */
+		uargs[0] = ret[0];
+		uargs[1] = ret[1];
+		uargs[2] = error;
+		systrace_args(sysnum, params, uargs + 3, &n_args);
+	}
 	/* Process the probe using the converted argments. */
-	dtrace_probe(id, uargs[0].u, uargs[1].u, uargs[2].u, uargs[3].u,
-		uargs[4].u);
+	/* XXX: fix for more arguments! */
+	dtrace_probe(id, uargs[0], uargs[1], uargs[2], uargs[3], uargs[4]);
 }
-#endif
 
 static void
 systrace_getargdesc(void *arg, dtrace_id_t id, void *parg, dtrace_argdesc_t *desc)
 {
 	int sysnum = SYSTRACE_SYSNUM((uintptr_t)parg);
-
-	systrace_setargdesc(sysnum, desc->dtargd_ndx, desc->dtargd_native,
-	    sizeof(desc->dtargd_native));
+	if (SYSTRACE_ISENTRY((uintptr_t)parg))
+		systrace_entry_setargdesc(sysnum, desc->dtargd_ndx, 
+		    desc->dtargd_native, sizeof(desc->dtargd_native));
+	else
+		systrace_return_setargdesc(sysnum, desc->dtargd_ndx, 
+		    desc->dtargd_native, sizeof(desc->dtargd_native));
 
 	if (desc->dtargd_native[0] == '\0')
 		desc->dtargd_ndx = DTRACE_ARGNONE;
-
-	return;
 }
 
 static void
@@ -219,16 +185,17 @@ systrace_provide(void *arg, const dtrace_probedesc_t *desc)
 		return;
 
 	for (i = 0; i < MAXSYSCALL; i++) {
-		if (dtrace_probe_lookup(systrace_id, NULL,
-		    uglyhack.pp_syscallnames[i], "entry") != 0)
+		const char *name = ALTSYSCALLNAMES[i] ? ALTSYSCALLNAMES[i] :
+		    SYSCALLNAMES[i];
+		if (dtrace_probe_lookup(systrace_id, NULL, name, "entry") != 0)
 			continue;
 
-		(void) dtrace_probe_create(systrace_id, NULL, uglyhack.pp_syscallnames[i],
-		    "entry", SYSTRACE_ARTIFICIAL_FRAMES,
-		    (void *)((uintptr_t)SYSTRACE_ENTRY(i)));
-		(void) dtrace_probe_create(systrace_id, NULL, uglyhack.pp_syscallnames[i],
-		    "return", SYSTRACE_ARTIFICIAL_FRAMES,
-		    (void *)((uintptr_t)SYSTRACE_RETURN(i)));
+		(void) dtrace_probe_create(systrace_id, NULL,
+		    name, "entry", SYSTRACE_ARTIFICIAL_FRAMES,
+		    (void *)(intptr_t)SYSTRACE_ENTRY(i));
+		(void) dtrace_probe_create(systrace_id, NULL,
+		    name, "return", SYSTRACE_ARTIFICIAL_FRAMES,
+		    (void *)(intptr_t)SYSTRACE_RETURN(i));
 	}
 }
 
@@ -255,9 +222,6 @@ systrace_enable(void *arg, dtrace_id_t id, void *parg)
 {
 	int sysnum = SYSTRACE_SYSNUM((uintptr_t)parg);
 
-	if (SYSENT[sysnum].sy_systrace_args_func == NULL)
-		SYSENT[sysnum].sy_systrace_args_func = systrace_args;
-
 	if (SYSTRACE_ISENTRY((uintptr_t)parg))
 		SYSENT[sysnum].sy_entry = id;
 	else
@@ -277,93 +241,29 @@ systrace_disable(void *arg, dtrace_id_t id, void *parg)
 static void
 systrace_load(void *dummy)
 {
-#ifdef __FreeBSD__
-	/* Create the /dev/dtrace/systrace entry. */
-	systrace_cdev = make_dev(&systrace_cdevsw, 0, UID_ROOT, GID_WHEEL, 0600,
-	   DEVNAME);
-#endif
-
 	if (dtrace_register(PROVNAME, &systrace_attr, DTRACE_PRIV_USER,
 	    NULL, &systrace_pops, NULL, &systrace_id) != 0)
 		return;
 
-#if !defined(LINUX_SYSTRACE)
-	systrace_probe_func = (systrace_probe_func_t)systrace_probe;
-#endif
+	EMUL.e_dtrace_syscall = systrace_probe;
 }
 
 
 static int
 systrace_unload()
 {
-	int error = 0;
+	int error;
 
 	if ((error = dtrace_unregister(systrace_id)) != 0)
 		return (error);
 
-#if !defined(LINUX_SYSTRACE)
-	systrace_probe_func = NULL;
-#endif
-
-#ifdef __FreeBSD__
-	destroy_dev(systrace_cdev);
-#endif
-
-	return (error);
-}
-
-#ifdef __FreeBSD__
-static int
-systrace_modevent(module_t mod __unused, int type, void *data __unused)
-{
-	int error = 0;
-
-	switch (type) {
-	case MOD_LOAD:
-		break;
-
-	case MOD_UNLOAD:
-		break;
-
-	case MOD_SHUTDOWN:
-		break;
-
-	default:
-		error = EOPNOTSUPP;
-		break;
-
-	}
-	return (error);
-}
+	EMUL.e_dtrace_syscall = NULL;
 
-static int
-systrace_open(struct cdev *dev __unused, int oflags __unused, int devtype __unused, struct thread *td __unused)
-{
-	return (0);
+	return error;
 }
 
-SYSINIT(systrace_load, SI_SUB_DTRACE_PROVIDER, SI_ORDER_ANY, systrace_load, NULL);
-SYSUNINIT(systrace_unload, SI_SUB_DTRACE_PROVIDER, SI_ORDER_ANY, systrace_unload, NULL);
-
-#ifdef LINUX_SYSTRACE
-DEV_MODULE(linsystrace, systrace_modevent, NULL);
-MODULE_VERSION(linsystrace, 1);
-MODULE_DEPEND(linsystrace, linux, 1, 1, 1);
-MODULE_DEPEND(linsystrace, systrace, 1, 1, 1);
-MODULE_DEPEND(linsystrace, dtrace, 1, 1, 1);
-MODULE_DEPEND(linsystrace, opensolaris, 1, 1, 1);
-#else
-DEV_MODULE(systrace, systrace_modevent, NULL);
-MODULE_VERSION(systrace, 1);
-MODULE_DEPEND(systrace, dtrace, 1, 1, 1);
-MODULE_DEPEND(systrace, opensolaris, 1, 1, 1);
-#endif
-#endif /* __FreeBSD__ */
-
-#ifdef __NetBSD__
-
 static int
-systrace_modcmd(modcmd_t cmd, void *data)
+MODCMD(modcmd_t cmd, void *data)
 {
 	switch (cmd) {
 	case MODULE_CMD_INIT:
@@ -371,14 +271,14 @@ systrace_modcmd(modcmd_t cmd, void *data)
 		return 0;
 
 	case MODULE_CMD_FINI:
-		systrace_unload();
-		return 0;
+		return systrace_unload();
+
+	case MODULE_CMD_AUTOUNLOAD:
+		return EBUSY;
 
 	default:
 		return ENOTTY;
 	}
 }
 
-MODULE(MODULE_CLASS_MISC, systrace, "dtrace");
-
-#endif
+MODULE(MODULE_CLASS_MISC, MODNAME, MODDEP)
diff --git a/external/cddl/osnet/dist/cmd/dtrace/dtrace.c b/external/cddl/osnet/dist/cmd/dtrace/dtrace.c
index 5dab4ca..aaf3b02 100644
--- a/external/cddl/osnet/dist/cmd/dtrace/dtrace.c
+++ b/external/cddl/osnet/dist/cmd/dtrace/dtrace.c
@@ -850,16 +850,16 @@ setopthandler(const dtrace_setoptdata_t *data, void *arg)
 #define	BUFDUMPSTR(ptr, field) \
 	(void) printf("%s: %20s => ", g_pname, #field);	\
 	if ((ptr)->field != NULL) {			\
-		const char *c = (ptr)->field;		\
+		const char *xc = (ptr)->field;		\
 		(void) printf("\"");			\
 		do {					\
-			if (*c == '\n') {		\
+			if (*xc == '\n') {		\
 				(void) printf("\\n");	\
 				continue;		\
 			}				\
 							\
-			(void) printf("%c", *c);	\
-		} while (*c++ != '\0');			\
+			(void) printf("%c", *xc);	\
+		} while (*xc++ != '\0');		\
 		(void) printf("\"\n");			\
 	} else {					\
 		(void) printf("<NULL>\n");		\
@@ -1084,18 +1084,18 @@ go(void)
 	int i;
 
 	struct {
-		char *name;
-		char *optname;
+		const char *name;
+		const char *optname;
 		dtrace_optval_t val;
 	} bufs[] = {
-		{ "buffer size", "bufsize" },
-		{ "aggregation size", "aggsize" },
-		{ "speculation size", "specsize" },
-		{ "dynamic variable size", "dynvarsize" },
+		{ "buffer size", "bufsize", 0 },
+		{ "aggregation size", "aggsize", 0 },
+		{ "speculation size", "specsize", 0 },
+		{ "dynamic variable size", "dynvarsize", 0 },
 		{ NULL }
 	}, rates[] = {
-		{ "cleaning rate", "cleanrate" },
-		{ "status rate", "statusrate" },
+		{ "cleaning rate", "cleanrate", 0 },
+		{ "status rate", "statusrate", 0 },
 		{ NULL }
 	};
 
@@ -1141,7 +1141,7 @@ go(void)
 
 	for (i = 0; rates[i].name != NULL; i++) {
 		dtrace_optval_t nval;
-		char *dir;
+		const char *dir;
 
 		if (rates[i].val == DTRACEOPT_UNSET)
 			continue;
@@ -1761,7 +1761,7 @@ main(int argc, char *argv[])
 		}
 
 		if (g_ofile == NULL) {
-			char *p;
+			char *pv;
 
 			if (g_cmdc > 1) {
 				(void) fprintf(stderr, "%s: -h requires an "
@@ -1771,8 +1771,8 @@ main(int argc, char *argv[])
 				return (E_USAGE);
 			}
 
-			if ((p = strrchr(g_cmdv[0].dc_arg, '.')) == NULL ||
-			    strcmp(p, ".d") != 0) {
+			if ((pv = strrchr(g_cmdv[0].dc_arg, '.')) == NULL ||
+			    strcmp(pv, ".d") != 0) {
 				(void) fprintf(stderr, "%s: -h requires an "
 				    "output file if no scripts are "
 				    "specified\n", g_pname);
@@ -1780,9 +1780,9 @@ main(int argc, char *argv[])
 				return (E_USAGE);
 			}
 
-			p[0] = '\0'; /* strip .d suffix */
-			g_ofile = p = g_cmdv[0].dc_ofile;
-			(void) snprintf(p, sizeof (g_cmdv[0].dc_ofile),
+			pv[0] = '\0'; /* strip .d suffix */
+			g_ofile = pv = g_cmdv[0].dc_ofile;
+			(void) snprintf(pv, sizeof (g_cmdv[0].dc_ofile),
 			    "%s.h", basename(g_cmdv[0].dc_arg));
 		}
 
diff --git a/external/cddl/osnet/dist/common/ctf/ctf_create.c b/external/cddl/osnet/dist/common/ctf/ctf_create.c
index 511fecf..3bbeff3 100644
--- a/external/cddl/osnet/dist/common/ctf/ctf_create.c
+++ b/external/cddl/osnet/dist/common/ctf/ctf_create.c
@@ -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
@@ -50,7 +52,11 @@ static const char _CTF_STRTAB_TEMPLATE[] = "\0PARENT";
 ctf_file_t *
 ctf_create(int *errp)
 {
-	static const ctf_header_t hdr = { { CTF_MAGIC, CTF_VERSION, 0 } };
+	static const ctf_header_t hdr = { .cth_preamble = {
+		.ctp_magic = CTF_MAGIC,
+		.ctp_version = CTF_VERSION,
+		.ctp_flags = 0
+	} };
 
 	const ulong_t hashlen = 128;
 	ctf_dtdef_t **hash = ctf_alloc(hashlen * sizeof (ctf_dtdef_t *));
@@ -60,10 +66,10 @@ ctf_create(int *errp)
 	if (hash == NULL)
 		return (ctf_set_open_errno(errp, EAGAIN));
 
-	cts.cts_name = (char *)_CTF_SECTION;
+	cts.cts_name = __UNCONST(_CTF_SECTION);
 	cts.cts_type = SHT_PROGBITS;
 	cts.cts_flags = 0;
-	cts.cts_data = (ctf_header_t *)&hdr;
+	cts.cts_data = __UNCONST(&hdr);
 	cts.cts_size = sizeof (hdr);
 	cts.cts_entsize = 1;
 	cts.cts_offset = 0;
@@ -167,6 +173,51 @@ ctf_copy_membnames(ctf_dtdef_t *dtd, uchar_t *s)
 }
 
 /*
+ * 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 +231,10 @@ ctf_copy_membnames(ctf_dtdef_t *dtd, uchar_t *s)
  * 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)
@@ -364,7 +419,7 @@ ctf_update(ctf_file_t *fp)
 	 * is successful, we then switch nfp and fp and free the old container.
 	 */
 	ctf_data_protect(buf, size);
-	cts.cts_name = (char *)_CTF_SECTION;
+	cts.cts_name = _CTF_SECTION;
 	cts.cts_type = SHT_PROGBITS;
 	cts.cts_flags = 0;
 	cts.cts_data = buf;
@@ -432,6 +487,7 @@ ctf_dtd_delete(ctf_file_t *fp, ctf_dtdef_t *dtd)
 	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 +499,8 @@ ctf_dtd_delete(ctf_file_t *fp, ctf_dtdef_t *dtd)
 	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 +511,33 @@ ctf_dtd_delete(ctf_file_t *fp, ctf_dtdef_t *dtd)
 				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 +571,9 @@ ctf_dtd_lookup(ctf_file_t *fp, ctf_id_t type)
  * 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 +586,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) {
-		if (dtd->dtd_type <= fp->ctf_dtoldid)
+	for (dtd = ctf_list_prev(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) {
+		ntd = ctf_list_prev(dtd);
+		if (CTF_TYPE_TO_INDEX(dtd->dtd_type) <= fp->ctf_dtoldid)
 			continue; /* skip types that have been committed */
 
-		ntd = ctf_list_next(dtd);
 		ctf_dtd_delete(fp, dtd);
 	}
 
@@ -614,6 +692,8 @@ ctf_add_reftype(ctf_file_t *fp, uint_t flag, ctf_id_t ref, uint_t kind)
 	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 +725,29 @@ ctf_add_array(ctf_file_t *fp, uint_t flag, const ctf_arinfo_t *arp)
 {
 	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 +755,7 @@ ctf_add_array(ctf_file_t *fp, uint_t flag, const ctf_arinfo_t *arp)
 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 +764,22 @@ ctf_set_array(ctf_file_t *fp, ctf_id_t type, const ctf_arinfo_t *arp)
 	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 +791,9 @@ ctf_add_function(ctf_file_t *fp, uint_t flag,
 	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 +806,18 @@ ctf_add_function(ctf_file_t *fp, uint_t flag,
 	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 +829,10 @@ ctf_add_function(ctf_file_t *fp, uint_t flag,
 	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 +951,11 @@ ctf_add_typedef(ctf_file_t *fp, uint_t flag, const char *name, ctf_id_t ref)
 {
 	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 +963,7 @@ ctf_add_typedef(ctf_file_t *fp, uint_t flag, const char *name, ctf_id_t ref)
 
 	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 +1138,45 @@ ctf_add_member(ctf_file_t *fp, ctf_id_t souid, const char *name, ctf_id_t type)
 	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 +1272,9 @@ ctf_add_type(ctf_file_t *dst_fp, ctf_file_t *src_fp, ctf_id_t src_type)
 	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));
 
@@ -1145,10 +1317,13 @@ ctf_add_type(ctf_file_t *dst_fp, ctf_file_t *src_fp, ctf_id_t src_type)
 	 * unless dst_type is a forward declaration and src_type is a struct,
 	 * union, or enum (i.e. the definition of the previous forward decl).
 	 */
-	if (dst_type != CTF_ERR && dst_kind != kind && (
-	    dst_kind != CTF_K_FORWARD || (kind != CTF_K_ENUM &&
-	    kind != CTF_K_STRUCT && kind != CTF_K_UNION)))
-		return (ctf_set_errno(dst_fp, ECTF_CONFLICT));
+	if (dst_type != CTF_ERR && dst_kind != kind) {
+		if (dst_kind != CTF_K_FORWARD || (kind != CTF_K_ENUM &&
+		    kind != CTF_K_STRUCT && kind != CTF_K_UNION))
+			return (ctf_set_errno(dst_fp, ECTF_CONFLICT));
+		else
+			dst_type = CTF_ERR;
+	}
 
 	/*
 	 * If the non-empty name was not found in the appropriate hash, search
@@ -1157,15 +1332,28 @@ ctf_add_type(ctf_file_t *dst_fp, ctf_file_t *src_fp, ctf_id_t src_type)
 	 * we are looking for.  This is necessary to permit ctf_add_type() to
 	 * operate recursively on entities such as a struct that contains a
 	 * pointer member that refers to the same struct type.
+	 *
+	 * In the case of integer and floating point types, we match using the
+	 * type encoding as well - else we may incorrectly return a bitfield
+	 * type, for instance.
 	 */
 	if (dst_type == CTF_ERR && name[0] != '\0') {
 		for (dtd = ctf_list_prev(&dst_fp->ctf_dtdefs); dtd != NULL &&
-		    dtd->dtd_type > dst_fp->ctf_dtoldid;
+		    CTF_TYPE_TO_INDEX(dtd->dtd_type) > dst_fp->ctf_dtoldid;
 		    dtd = ctf_list_prev(dtd)) {
-			if (CTF_INFO_KIND(dtd->dtd_data.ctt_info) == kind &&
-			    dtd->dtd_name != NULL &&
-			    strcmp(dtd->dtd_name, name) == 0)
-				return (dtd->dtd_type);
+			if (CTF_INFO_KIND(dtd->dtd_data.ctt_info) != kind ||
+			    dtd->dtd_name == NULL ||
+			    strcmp(dtd->dtd_name, name) != 0)
+				continue;
+			if (kind == CTF_K_INTEGER || kind == CTF_K_FLOAT) {
+				if (ctf_type_encoding(src_fp, src_type,
+				    &src_en) != 0)
+					continue;
+				if (bcmp(&src_en, &dtd->dtd_u.dtu_enc,
+				    sizeof (ctf_encoding_t)) != 0)
+					continue;
+			}
+			return (dtd->dtd_type);
 		}
 	}
 
@@ -1313,6 +1501,14 @@ ctf_add_type(ctf_file_t *dst_fp, ctf_file_t *src_fp, ctf_id_t src_type)
 
 		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;
 	}
 
diff --git a/external/cddl/osnet/dist/common/ctf/ctf_error.c b/external/cddl/osnet/dist/common/ctf/ctf_error.c
index 888c6c8..fe3d0de 100644
--- a/external/cddl/osnet/dist/common/ctf/ctf_error.c
+++ b/external/cddl/osnet/dist/common/ctf/ctf_error.c
@@ -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]);
diff --git a/external/cddl/osnet/dist/common/ctf/ctf_hash.c b/external/cddl/osnet/dist/common/ctf/ctf_hash.c
index b10a761..bf506e6 100644
--- a/external/cddl/osnet/dist/common/ctf/ctf_hash.c
+++ b/external/cddl/osnet/dist/common/ctf/ctf_hash.c
@@ -43,7 +43,7 @@ ctf_hash_create(ctf_hash_t *hp, ulong_t nelems)
 	 */
 	if (nelems == 0) {
 		bzero(hp, sizeof (ctf_hash_t));
-		hp->h_buckets = (ushort_t *)_CTF_EMPTY;
+		hp->h_buckets = __UNCONST(_CTF_EMPTY);
 		hp->h_nbuckets = 1;
 		return (0);
 	}
diff --git a/external/cddl/osnet/dist/common/ctf/ctf_impl.h b/external/cddl/osnet/dist/common/ctf/ctf_impl.h
index 9999080..f56fa6a 100644
--- a/external/cddl/osnet/dist/common/ctf/ctf_impl.h
+++ b/external/cddl/osnet/dist/common/ctf/ctf_impl.h
@@ -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 *,
diff --git a/external/cddl/osnet/dist/common/ctf/ctf_labels.c b/external/cddl/osnet/dist/common/ctf/ctf_labels.c
index ddcb1d3..3d69135 100644
--- a/external/cddl/osnet/dist/common/ctf/ctf_labels.c
+++ b/external/cddl/osnet/dist/common/ctf/ctf_labels.c
@@ -54,9 +54,9 @@ extract_label_info(ctf_file_t *fp, const ctf_lblent_t **ctl, uint_t *num_labels)
 const char *
 ctf_label_topmost(ctf_file_t *fp)
 {
-	const ctf_lblent_t *ctlp;
+	const ctf_lblent_t *ctlp = NULL;	// XXX: gcc
 	const char *s;
-	uint_t num_labels;
+	uint_t num_labels = 0;			// XXX: gcc
 
 	if (extract_label_info(fp, &ctlp, &num_labels) == CTF_ERR)
 		return (NULL); /* errno is set */
@@ -79,8 +79,8 @@ ctf_label_topmost(ctf_file_t *fp)
 int
 ctf_label_iter(ctf_file_t *fp, ctf_label_f *func, void *arg)
 {
-	const ctf_lblent_t *ctlp;
-	uint_t i, num_labels;
+	const ctf_lblent_t *ctlp = NULL;	// XXX: gcc
+	uint_t i, num_labels = 0;		// XXX: gcc
 	ctf_lblinfo_t linfo;
 	const char *lname;
 	int rc;
diff --git a/external/cddl/osnet/dist/common/ctf/ctf_lookup.c b/external/cddl/osnet/dist/common/ctf/ctf_lookup.c
index f8fa724..b5038ee 100644
--- a/external/cddl/osnet/dist/common/ctf/ctf_lookup.c
+++ b/external/cddl/osnet/dist/common/ctf/ctf_lookup.c
@@ -90,7 +90,7 @@ ctf_lookup_by_name(ctf_file_t *fp, const char *name)
 		return (ctf_set_errno(fp, EINVAL));
 
 	for (p = name, end = name + strlen(name); *p != '\0'; p = q) {
-		while (isspace(*p))
+		while (isspace((unsigned char)*p))
 			p++; /* skip leading ws */
 
 		if (p == end)
@@ -132,13 +132,13 @@ ctf_lookup_by_name(ctf_file_t *fp, const char *name)
 		for (lp = fp->ctf_lookups; lp->ctl_prefix != NULL; lp++) {
 			if (lp->ctl_prefix[0] == '\0' ||
 			    strncmp(p, lp->ctl_prefix, (size_t)(q - p)) == 0) {
-				for (p += lp->ctl_len; isspace(*p); p++)
+				for (p += lp->ctl_len; isspace((unsigned char)*p); p++)
 					continue; /* skip prefix and next ws */
 
 				if ((q = strchr(p, '*')) == NULL)
 					q = end;  /* compare until end */
 
-				while (isspace(q[-1]))
+				while (isspace((unsigned char)q[-1]))
 					q--;	  /* exclude trailing ws */
 
 				if ((hp = ctf_hash_lookup(lp->ctl_hash, fp, p,
diff --git a/external/cddl/osnet/dist/common/ctf/ctf_open.c b/external/cddl/osnet/dist/common/ctf/ctf_open.c
index 8255baf..d0408f9 100644
--- a/external/cddl/osnet/dist/common/ctf/ctf_open.c
+++ b/external/cddl/osnet/dist/common/ctf/ctf_open.c
@@ -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) 2013, Joyent, Inc.  All rights reserved.
+ */
 
 #include <ctf_impl.h>
 #include <sys/mman.h>
@@ -80,7 +81,7 @@ get_vlen_v2(ushort_t info)
 }
 
 static const ctf_fileops_t ctf_fileops[] = {
-	{ NULL, NULL },
+	{ NULL, NULL, NULL },
 	{ get_kind_v1, get_root_v1, get_vlen_v1 },
 	{ get_kind_v2, get_root_v2, get_vlen_v2 },
 };
@@ -199,9 +200,9 @@ static int
 init_types(ctf_file_t *fp, const ctf_header_t *cth)
 {
 	/* LINTED - pointer alignment */
-	const ctf_type_t *tbuf = (ctf_type_t *)(fp->ctf_buf + cth->cth_typeoff);
+	const ctf_type_t *tbuf = (const ctf_type_t *)(fp->ctf_buf + cth->cth_typeoff);
 	/* LINTED - pointer alignment */
-	const ctf_type_t *tend = (ctf_type_t *)(fp->ctf_buf + cth->cth_stroff);
+	const ctf_type_t *tend = (const ctf_type_t *)(fp->ctf_buf + cth->cth_stroff);
 
 	ulong_t pop[CTF_K_MAX + 1] = { 0 };
 	const ctf_type_t *tp;
@@ -694,11 +695,11 @@ ctf_bufopen(const ctf_sect_t *ctfsect, const ctf_sect_t *symsect,
 		fp->ctf_strtab.cts_name = ctf_strdup(fp->ctf_strtab.cts_name);
 
 	if (fp->ctf_data.cts_name == NULL)
-		fp->ctf_data.cts_name = (char *)_CTF_NULLSTR;
+		fp->ctf_data.cts_name = __UNCONST(_CTF_NULLSTR);
 	if (fp->ctf_symtab.cts_name == NULL)
-		fp->ctf_symtab.cts_name = (char *)_CTF_NULLSTR;
+		fp->ctf_symtab.cts_name = __UNCONST(_CTF_NULLSTR);
 	if (fp->ctf_strtab.cts_name == NULL)
-		fp->ctf_strtab.cts_name = (char *)_CTF_NULLSTR;
+		fp->ctf_strtab.cts_name = __UNCONST(_CTF_NULLSTR);
 
 	fp->ctf_str[CTF_STRTAB_0].cts_strs = (const char *)buf + hp.cth_stroff;
 	fp->ctf_str[CTF_STRTAB_0].cts_len = hp.cth_strlen;
@@ -787,6 +788,92 @@ bad:
 }
 
 /*
+ * Dupliate a ctf_file_t and its underlying section information into a new
+ * container. This works by copying the three ctf_sect_t's of the original
+ * container if they exist and passing those into ctf_bufopen. To copy those, we
+ * mmap anonymous memory with ctf_data_alloc and bcopy the data across. It's not
+ * the cheapest thing, but it's what we've got.
+ */
+ctf_file_t *
+ctf_dup(ctf_file_t *ofp)
+{
+	ctf_file_t *fp;
+	ctf_sect_t ctfsect, symsect, strsect;
+	ctf_sect_t *ctp, *symp, *strp;
+	void *cbuf, *symbuf, *strbuf;
+	int err;
+
+	cbuf = symbuf = strbuf = NULL;
+	/*
+	 * The ctfsect isn't allowed to not exist, but the symbol and string
+	 * section might not. We only need to copy the data of the section, not
+	 * the name, as ctf_bufopen will take care of that.
+	 */
+	bcopy(&ofp->ctf_data, &ctfsect, sizeof (ctf_sect_t));
+	cbuf = ctf_data_alloc(ctfsect.cts_size);
+	if (cbuf == NULL) {
+		(void) ctf_set_errno(ofp, ECTF_MMAP);
+		return (NULL);
+	}
+
+	bcopy(ctfsect.cts_data, cbuf, ctfsect.cts_size);
+	ctf_data_protect(cbuf, ctfsect.cts_size);
+	ctfsect.cts_data = cbuf;
+	ctfsect.cts_offset = 0;
+	ctp = &ctfsect;
+
+	if (ofp->ctf_symtab.cts_data != NULL) {
+		bcopy(&ofp->ctf_symtab, &symsect, sizeof (ctf_sect_t));
+		symbuf = ctf_data_alloc(symsect.cts_size);
+		if (symbuf == NULL) {
+			(void) ctf_set_errno(ofp, ECTF_MMAP);
+			goto err;
+		}
+		bcopy(symsect.cts_data, symbuf, symsect.cts_size);
+		ctf_data_protect(symbuf, symsect.cts_size);
+		symsect.cts_data = symbuf;
+		symsect.cts_offset = 0;
+		symp = &symsect;
+	} else {
+		symp = NULL;
+	}
+
+	if (ofp->ctf_strtab.cts_data != NULL) {
+		bcopy(&ofp->ctf_strtab, &strsect, sizeof (ctf_sect_t));
+		strbuf = ctf_data_alloc(strsect.cts_size);
+		if (strbuf == NULL) {
+			(void) ctf_set_errno(ofp, ECTF_MMAP);
+			goto err;
+		}
+		bcopy(strsect.cts_data, strbuf, strsect.cts_size);
+		ctf_data_protect(strbuf, strsect.cts_size);
+		strsect.cts_data = strbuf;
+		strsect.cts_offset = 0;
+		strp = &strsect;
+	} else {
+		strp = NULL;
+	}
+
+	fp = ctf_bufopen(ctp, symp, strp, &err);
+	if (fp == NULL) {
+		(void) ctf_set_errno(ofp, err);
+		goto err;
+	}
+
+	fp->ctf_flags |= LCTF_MMAP;
+
+	return (fp);
+
+err:
+	ctf_data_free(cbuf, ctfsect.cts_size);
+	if (symbuf != NULL)
+		ctf_data_free(symbuf, symsect.cts_size);
+	if (strbuf != NULL)
+		ctf_data_free(strbuf, strsect.cts_size);
+	return (NULL);
+}
+
+/*
  * Close the specified CTF container and free associated data structures.  Note
  * that ctf_close() is a reference counted operation: if the specified file is
  * the parent of other active containers, its reference count will be greater
@@ -810,8 +897,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);
 	}
 
@@ -828,24 +919,24 @@ ctf_close(ctf_file_t *fp)
 
 	if (fp->ctf_data.cts_name != _CTF_NULLSTR &&
 	    fp->ctf_data.cts_name != NULL) {
-		ctf_free((char *)fp->ctf_data.cts_name,
+		ctf_free(__UNCONST(fp->ctf_data.cts_name),
 		    strlen(fp->ctf_data.cts_name) + 1);
 	}
 
 	if (fp->ctf_symtab.cts_name != _CTF_NULLSTR &&
 	    fp->ctf_symtab.cts_name != NULL) {
-		ctf_free((char *)fp->ctf_symtab.cts_name,
+		ctf_free(__UNCONST(fp->ctf_symtab.cts_name),
 		    strlen(fp->ctf_symtab.cts_name) + 1);
 	}
 
 	if (fp->ctf_strtab.cts_name != _CTF_NULLSTR &&
 	    fp->ctf_strtab.cts_name != NULL) {
-		ctf_free((char *)fp->ctf_strtab.cts_name,
+		ctf_free(__UNCONST(fp->ctf_strtab.cts_name),
 		    strlen(fp->ctf_strtab.cts_name) + 1);
 	}
 
 	if (fp->ctf_base != fp->ctf_data.cts_data && fp->ctf_base != NULL)
-		ctf_data_free((void *)fp->ctf_base, fp->ctf_size);
+		ctf_data_free(__UNCONST(fp->ctf_base), fp->ctf_size);
 
 	if (fp->ctf_sxlate != NULL)
 		ctf_free(fp->ctf_sxlate, sizeof (uint_t) * fp->ctf_nsyms);
diff --git a/external/cddl/osnet/dist/common/ctf/ctf_types.c b/external/cddl/osnet/dist/common/ctf/ctf_types.c
index 290c518..0595ae7 100644
--- a/external/cddl/osnet/dist/common/ctf/ctf_types.c
+++ b/external/cddl/osnet/dist/common/ctf/ctf_types.c
@@ -25,8 +25,6 @@
  * Use is subject to license terms.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <ctf_impl.h>
 
 ssize_t
@@ -199,8 +197,9 @@ ctf_type_resolve(ctf_file_t *fp, ctf_id_t type)
  * Lookup the given type ID and print a string name for it into buf.  Return
  * the actual number of bytes (not including \0) needed to format the name.
  */
-ssize_t
-ctf_type_lname(ctf_file_t *fp, ctf_id_t type, char *buf, size_t len)
+static ssize_t
+ctf_type_qlname(ctf_file_t *fp, ctf_id_t type, char *buf, size_t len,
+    const char *qname)
 {
 	ctf_decl_t cd;
 	ctf_decl_node_t *cdp;
@@ -255,6 +254,8 @@ ctf_type_lname(ctf_file_t *fp, ctf_id_t type, char *buf, size_t len)
 			case CTF_K_INTEGER:
 			case CTF_K_FLOAT:
 			case CTF_K_TYPEDEF:
+				if (qname != NULL)
+					ctf_decl_sprintf(&cd, "%s`", qname);
 				ctf_decl_sprintf(&cd, "%s", name);
 				break;
 			case CTF_K_POINTER:
@@ -268,13 +269,22 @@ ctf_type_lname(ctf_file_t *fp, ctf_id_t type, char *buf, size_t len)
 				break;
 			case CTF_K_STRUCT:
 			case CTF_K_FORWARD:
-				ctf_decl_sprintf(&cd, "struct %s", name);
+				ctf_decl_sprintf(&cd, "struct ");
+				if (qname != NULL)
+					ctf_decl_sprintf(&cd, "%s`", qname);
+				ctf_decl_sprintf(&cd, "%s", name);
 				break;
 			case CTF_K_UNION:
-				ctf_decl_sprintf(&cd, "union %s", name);
+				ctf_decl_sprintf(&cd, "union ");
+				if (qname != NULL)
+					ctf_decl_sprintf(&cd, "%s`", qname);
+				ctf_decl_sprintf(&cd, "%s", name);
 				break;
 			case CTF_K_ENUM:
-				ctf_decl_sprintf(&cd, "enum %s", name);
+				ctf_decl_sprintf(&cd, "enum ");
+				if (qname != NULL)
+					ctf_decl_sprintf(&cd, "%s`", qname);
+				ctf_decl_sprintf(&cd, "%s", name);
 				break;
 			case CTF_K_VOLATILE:
 				ctf_decl_sprintf(&cd, "volatile");
@@ -301,6 +311,12 @@ ctf_type_lname(ctf_file_t *fp, ctf_id_t type, char *buf, size_t len)
 	return (cd.cd_len);
 }
 
+ssize_t
+ctf_type_lname(ctf_file_t *fp, ctf_id_t type, char *buf, size_t len)
+{
+	return (ctf_type_qlname(fp, type, buf, len, NULL));
+}
+
 /*
  * Lookup the given type ID and print a string name for it into buf.  If buf
  * is too small, return NULL: the ECTF_NAMELEN error is set on 'fp' for us.
@@ -308,10 +324,19 @@ ctf_type_lname(ctf_file_t *fp, ctf_id_t type, char *buf, size_t len)
 char *
 ctf_type_name(ctf_file_t *fp, ctf_id_t type, char *buf, size_t len)
 {
-	ssize_t rv = ctf_type_lname(fp, type, buf, len);
+	ssize_t rv = ctf_type_qlname(fp, type, buf, len, NULL);
+	return (rv >= 0 && rv < len ? buf : NULL);
+}
+
+char *
+ctf_type_qname(ctf_file_t *fp, ctf_id_t type, char *buf, size_t len,
+    const char *qname)
+{
+	ssize_t rv = ctf_type_qlname(fp, type, buf, len, qname);
 	return (rv >= 0 && rv < len ? buf : NULL);
 }
 
+
 /*
  * Resolve the type down to a base type node, and then return the size
  * of the type storage in bytes.
@@ -395,7 +420,7 @@ ctf_type_align(ctf_file_t *fp, ctf_id_t type)
 		const void *vmp;
 
 		(void) ctf_get_ctt_size(fp, tp, &size, &increment);
-		vmp = (uchar_t *)tp + increment;
+		vmp = (uchar_t *)__UNCONST(tp) + increment;
 
 		if (LCTF_INFO_KIND(fp, tp->ctt_info) == CTF_K_STRUCT)
 			n = MIN(n, 1); /* only use first member for structs */
diff --git a/external/cddl/osnet/dist/lib/libctf/common/ctf.5 b/external/cddl/osnet/dist/lib/libctf/common/ctf.5
new file mode 100644
index 0000000..316e978
--- /dev/null
+++ b/external/cddl/osnet/dist/lib/libctf/common/ctf.5
@@ -0,0 +1,1140 @@
+.\"
+.\" 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) 2014 Joyent, Inc.
+.\"
+.Dd Sep 26, 2014
+.Dt CTF 5
+.Os
+.Sh NAME
+.Nm ctf
+.Nd Compact C Type Format
+.Sh SYNOPSIS
+.In sys/ctf.h
+.Sh DESCRIPTION
+.Nm
+is designed to be a compact representation of the C programming
+language's type information focused on serving the needs of dynamic
+tracing, debuggers, and other in-situ and post-mortem introspection
+tools.
+.Nm
+data is generally included in
+.Sy ELF
+objects and is tagged as
+.Sy SHT_PROGBITS
+to ensure that the data is accessible in a running process and in subsequent
+core dumps, if generated.
+.Lp
+The
+.Nm
+data contained in each file has information about the layout and
+sizes of C types, including intrinsic types, enumerations, structures,
+typedefs, and unions, that are used by the corresponding
+.Sy ELF
+object. The
+.Nm
+data may also include information about the types of global objects and
+the return type and arguments of functions in the symbol table.
+.Lp
+Because a
+.Nm
+file is often embedded inside a file, rather than being a standalone
+file itself, it may also be referred to as a
+.Nm
+.Sy container .
+.Lp
+On illumos systems,
+.Nm
+data is consumed by multiple programs. It can be used by the modular
+debugger,
+.Xr mdb 1 ,
+as well as by
+.Xr dtrace 1M .
+Programmatic access to
+.Nm
+data can be obtained through
+.Xr libctf 3LIB .
+.Lp
+The
+.Nm
+file format is broken down into seven different sections. The first
+section is the
+.Sy preamble
+and
+.Sy header ,
+which describes the version of the
+.Nm
+file, links it has to other
+.Nm
+files, and the sizes of the other sections. The next section is the
+.Sy label
+section,
+which provides a way of identifying similar groups of
+.Nm
+data across multiple files. This is followed by the
+.Sy object
+information section, which describes the type of global
+symbols. The subsequent section is the
+.Sy function
+information section, which describes the return
+types and arguments of functions. The next section is the
+.Sy type
+information section, which describes
+the format and layout of the C types themselves, and finally the last
+section is the
+.Sy string
+section, which contains the names of types, enumerations, members, and
+labels.
+.Lp
+While strictly speaking, only the
+.Sy preamble
+and
+.Sy header
+are required, to be actually useful, both the type and string
+sections are necessary.
+.Lp
+A
+.Nm
+file may contain all of the type information that it requires, or it
+may optionally refer to another
+.Nm
+file which holds the remaining types. When a
+.Nm
+file refers to another file, it is called the
+.Sy child
+and the file it refers to is called the
+.Sy parent .
+A given file may only refer to one parent. This process is called
+.Em uniquification
+because it ensures each child only has type information that is
+unique to it. A common example of this is that most kernel modules in
+illumos are uniquified against the kernel module
+.Sy genunix
+and the type information that comes from the
+.Sy IP
+module. This means that a module only has types that are unique to
+itself and the most common types in the kernel are not duplicated.
+.Sh FILE FORMAT
+This documents version
+.Em two
+of the
+.Nm
+file format. All applications and tools currently produce and operate on
+this version.
+.Lp
+The file format can be summarized with the following image, the
+following sections will cover this in more detail.
+.Bd -literal
+
+         +-------------+  0t0
++--------| Preamble    |
+|        +-------------+  0t4
+|+-------| Header      |
+||       +-------------+  0t36 + cth_lbloff
+||+------| Labels      |
+|||      +-------------+  0t36 + cth_objtoff
+|||+-----| Objects     |
+||||     +-------------+  0t36 + cth_funcoff
+||||+----| Functions   |
+|||||    +-------------+  0t36 + cth_typeoff
+|||||+---| Types       |
+||||||   +-------------+  0t36 + cth_stroff
+||||||+--| Strings     |
+|||||||  +-------------+  0t36 + cth_stroff + cth_strlen
+|||||||
+|||||||
+|||||||
+|||||||    +-- magic -   vers   flags
+|||||||    |          |    |      |
+|||||||   +------+------+------+------+
++---------| 0xcf | 0xf1 | 0x02 | 0x00 |
+ ||||||   +------+------+------+------+
+ ||||||   0      1      2      3      4
+ ||||||
+ ||||||    + parent label        + objects
+ ||||||    |       + parent name |     + functions    + strings
+ ||||||    |       |     + label |     |      + types |       + strlen
+ ||||||    |       |     |       |     |      |       |       |
+ ||||||   +------+------+------+------+------+-------+-------+-------+
+ +--------| 0x00 | 0x00 | 0x00 | 0x08 | 0x36 | 0x110 | 0x5f4 | 0x611 |
+  |||||   +------+------+------+------+------+-------+-------+-------+
+  |||||   0x04   0x08   0x0c   0x10   0x14    0x18    0x1c    0x20   0x24
+  |||||
+  |||||         + Label name
+  |||||         |       + Label type
+  |||||         |       |       + Next label
+  |||||         |       |       |
+  |||||       +-------+------+-----+
+  +-----------| 0x01  | 0x42 | ... |
+   ||||       +-------+------+-----+
+   ||||  cth_lbloff   +0x4   +0x8  cth_objtoff
+   ||||
+   ||||
+   |||| Symidx  0t15   0t43   0t44
+   ||||       +------+------+------+-----+
+   +----------| 0x00 | 0x42 | 0x36 | ... |
+    |||       +------+------+------+-----+
+    ||| cth_objtoff  +0x2   +0x4   +0x6   cth_funcoff
+    |||
+    |||        + CTF_TYPE_INFO         + CTF_TYPE_INFO
+    |||        |        + Return type  |
+    |||        |        |       + arg0 |
+    |||       +--------+------+------+-----+
+    +---------| 0x2c10 | 0x08 | 0x0c | ... |
+     ||       +--------+------+------+-----+
+     || cth_funcff     +0x2   +0x4   +0x6  cth_typeoff
+     ||
+     ||         + ctf_stype_t for type 1
+     ||         |  integer           + integer encoding
+     ||         |                    |          + ctf_stype_t for type 2
+     ||         |                    |          |
+     ||       +--------------------+-----------+-----+
+     +--------| 0x19 * 0xc01 * 0x0 | 0x1000000 | ... |
+      |       +--------------------+-----------+-----+
+      | cth_typeoff               +0x08      +0x0c  cth_stroff
+      |
+      |     +--- str 0
+      |     |    +--- str 1       + str 2
+      |     |    |                |
+      |     v    v                v
+      |   +----+---+---+---+----+---+---+---+---+---+----+
+      +---| \\0 | i | n | t | \\0 | f | o | o | _ | t | \\0 |
+          +----+---+---+---+----+---+---+---+---+---+----+
+          0    1   2   3   4    5   6   7   8   9   10   11
+.Ed
+.Lp
+Every
+.Nm
+file begins with a
+.Sy preamble ,
+followed by a
+.Sy header .
+The
+.Sy preamble
+is defined as follows:
+.Bd -literal
+typedef struct ctf_preamble {
+	ushort_t ctp_magic;	/* magic number (CTF_MAGIC) */
+	uchar_t ctp_version;	/* data format version number (CTF_VERSION) */
+	uchar_t ctp_flags;	/* flags (see below) */
+} ctf_preamble_t;
+.Ed
+.Pp
+The
+.Sy preamble
+is four bytes long and must be four byte aligned.
+This
+.Sy preamble
+defines the version of the
+.Nm
+file which defines the format of the rest of the header. While the
+header may change in subsequent versions, the preamble will not change
+across versions, though the interpretation of its flags may change from
+version to version. The
+.Em ctp_magic
+member defines the magic number for the
+.Nm
+file format. This must always be
+.Li 0xcff1 .
+If another value is encountered, then the file should not be treated as
+a
+.Nm
+file. The
+.Em ctp_version
+member defines the version of the
+.Nm
+file. The current version is
+.Li 2 .
+It is possible to encounter an unsupported version. In that case,
+software should not try to parse the format, as it may have changed.
+Finally, the
+.Em ctp_flags
+member describes aspects of the file which modify its interpretation.
+The following flags are currently defined:
+.Bd -literal
+#define	CTF_F_COMPRESS		0x01
+.Ed
+.Pp
+The flag
+.Sy CTF_F_COMPRESS
+indicates that the body of the
+.Nm
+file, all the data following the
+.Sy header ,
+has been compressed through the
+.Sy zlib
+library and its
+.Sy deflate
+algorithm. If this flag is not present, then the body has not been
+compressed and no special action is needed to interpret it. All offsets
+into the data as described by
+.Sy header ,
+always refer to the
+.Sy uncompressed
+data.
+.Lp
+In version two of the
+.Nm
+file format, the
+.Sy header
+denotes whether whether or not this
+.Nm
+file is the child of another
+.Nm
+file and also indicates the size of the remaining sections. The
+structure for the
+.Sy header ,
+logically contains a copy of the
+.Sy preamble
+and the two have a combined size of 36 bytes.
+.Bd -literal
+typedef struct ctf_header {
+	ctf_preamble_t cth_preamble;
+	uint_t cth_parlabel;	/* ref to name of parent lbl uniq'd against */
+	uint_t cth_parname;	/* ref to basename of parent */
+	uint_t cth_lbloff;	/* offset of label section */
+	uint_t cth_objtoff;	/* offset of object section */
+	uint_t cth_funcoff;	/* offset of function section */
+	uint_t cth_typeoff;	/* offset of type section */
+	uint_t cth_stroff;	/* offset of string section */
+	uint_t cth_strlen;	/* length of string section in bytes */
+} ctf_header_t;
+.Ed
+.Pp
+After the
+.Sy preamble ,
+the next two members
+.Em cth_parlablel
+and
+.Em cth_parname ,
+are used to identify the parent. The value of both members are offsets
+into the
+.Sy string
+section which point to the start of a null-terminated string. For more
+information on the encoding of strings, see the subsection on
+.Sx String Identifiers .
+If the value of either is zero, then there is no entry for that
+member. If the member
+.Em cth_parlabel
+is set, then the
+.Em ctf_parname
+member must be set, otherwise it will not be possible to find the
+parent. If
+.Em ctf_parname
+is set, it is not necessary to define
+.Em cth_parlabel ,
+as the parent may not have a label. For more information on labels
+and their interpretation, see
+.Sx The Label Section .
+.Lp
+The remaining members (excepting
+.Em cth_strlen )
+describe the beginning of the corresponding sections. These offsets are
+relative to the end of the
+.Sy header .
+Therefore, something with an offset of 0 is at an offset of thirty-six
+bytes relative to the start of the
+.Nm
+file. The difference between members
+indicates the size of the section itself. Different offsets have
+different alignment requirements. The start of the
+.Em cth_objotoff
+and
+.Em cth_funcoff
+must be two byte aligned, while the sections
+.Em cth_lbloff
+and
+.Em cth_typeoff
+must be four-byte aligned. The section
+.Em cth_stroff
+has no alignment requirements. To calculate the size of a given section,
+excepting the
+.Sy string
+section, one should subtract the offset of the section from the following one. For
+example, the size of the
+.Sy types
+section can be calculated by subtracting
+.Em cth_stroff
+from
+.Em cth_typeoff .
+.Lp
+Finally, the member
+.Em cth_strlen
+describes the length of the string section itself. From it, you can also
+calculate the size of the entire
+.Nm
+file by adding together the size of the
+.Sy ctf_header_t ,
+the offset of the string section in
+.Em cth_stroff ,
+and the size of the string section in
+.Em cth_srlen .
+.Ss Type Identifiers
+Through the
+.Nm ctf
+data, types are referred to by identifiers. A given
+.Nm
+file supports up to 32767 (0x7fff) types. The first valid type identifier is 0x1.
+When a given
+.Nm
+file is a child, indicated by a non-zero entry for the
+.Sy header Ns 's
+.Em cth_parname ,
+then the first valid type identifier is 0x8000 and the last is 0xffff.
+In this case, type identifiers 0x1 through 0x7fff are references to the
+parent.
+.Lp
+The type identifier zero is a sentinel value used to indicate that there
+is no type information available or it is an unknown type.
+.Lp
+Throughout the file format, the identifier is stored in different sized
+values; however, the minimum size to represent a given identifier is a
+.Sy uint16_t .
+Other consumers of
+.Nm
+information may use larger or opaque identifiers.
+.Ss String Identifiers
+String identifiers are always encoded as four byte unsigned integers
+which are an offset into a string table. The
+.Nm
+format supports two different string tables which have an identifier of
+zero or one. This identifier is stored in the high-order bit of the
+unsigned four byte offset. Therefore, the maximum supported offset into
+one of these tables is 0x7ffffffff.
+.Lp
+Table identifier zero, always refers to the
+.Sy string
+section in the CTF file itself. String table identifier one refers to an
+external string table which is the ELF string table for the ELF symbol
+table associated with the
+.Nm
+container.
+.Ss Type Encoding
+Every
+.Nm
+type begins with metadata encoded into a
+.Sy uint16_t .
+This encoded information tells us three different pieces of information:
+.Bl -bullet -offset indent -compact
+.It
+The kind of the type
+.It
+Whether this type is a root type or not
+.It
+The length of the variable data
+.El
+.Lp
+The 16 bits that make up the encoding are broken down such that you have
+five bits for the kind, one bit for indicating whether or not it is a
+root type, and 10 bits for the variable length. This is laid out as
+follows:
+.Bd -literal -offset indent
++--------------------+
+| kind | root | vlen |
++--------------------+
+15   11   10   9    0
+.Ed
+.Lp
+The current version of the file format defines 14 different kinds. The
+interpretation of these different kinds will be discussed in the section
+.Sx The Type Section .
+If a kind is encountered that is not listed below, then it is not a valid
+.Nm
+file. The kinds are defined as follows:
+.Bd -literal -offset indent
+#define	CTF_K_UNKNOWN	0
+#define	CTF_K_INTEGER	1
+#define	CTF_K_FLOAT	2
+#define	CTF_K_POINTER	3
+#define	CTF_K_ARRAY	4
+#define	CTF_K_FUNCTION	5
+#define	CTF_K_STRUCT	6
+#define	CTF_K_UNION	7
+#define	CTF_K_ENUM	8
+#define	CTF_K_FORWARD	9
+#define	CTF_K_TYPEDEF	10
+#define	CTF_K_VOLATILE	11
+#define	CTF_K_CONST	12
+#define	CTF_K_RESTRICT	13
+.Ed
+.Lp
+Programs directly reference many types; however, other types are referenced
+indirectly because they are part of some other structure. These types that are
+referenced directly and used are called
+.Sy root
+types. Other types may be used indirectly, for example, a program may reference
+a structure directly, but not one of its members which has a type. That type is
+not considered a
+.Sy root
+type. If a type is a
+.Sy root
+type, then it will have bit 10 set.
+.Lp
+The variable length section is specific to each kind and is discussed in the
+section
+.Sx The Type Section .
+.Lp
+The following macros are useful for constructing and deconstructing the encoded
+type information:
+.Bd -literal -offset indent
+
+#define	CTF_MAX_VLEN	0x3ff
+#define	CTF_INFO_KIND(info)	(((info) & 0xf800) >> 11)
+#define	CTF_INFO_ISROOT(info)	(((info) & 0x0400) >> 10)
+#define	CTF_INFO_VLEN(info)	(((info) & CTF_MAX_VLEN))
+
+#define	CTF_TYPE_INFO(kind, isroot, vlen) \\
+	(((kind) << 11) | (((isroot) ? 1 : 0) << 10) | ((vlen) & CTF_MAX_VLEN))
+.Ed
+.Ss The Label Section
+When consuming
+.Nm
+data, it is often useful to know whether two different
+.Nm
+containers come from the same source base and version. For example, when
+building illumos, there are many kernel modules that are built against a
+single collection of source code. A label is encoded into the
+.Nm
+files that corresponds with the particular build. This ensures that if
+files on the system were to become mixed up from multiple releases, that
+they are not used together by tools, particularly when a child needs to
+refer to a type in the parent. Because they are linked used the type
+identifiers, if the wrong parent is used then the wrong type will be
+encountered.
+.Lp
+Each label is encoded in the file format using the following eight byte
+structure:
+.Bd -literal
+typedef struct ctf_lblent {
+	uint_t ctl_label;	/* ref to name of label */
+	uint_t ctl_typeidx;	/* last type associated with this label */
+} ctf_lblent_t;
+.Ed
+.Lp
+Each label has two different components, a name and a type identifier.
+The name is encoded in the
+.Em ctl_label
+member which is in the format defined in the section
+.Sx String Identifiers .
+Generally, the names of all labels are found in the internal string
+section.
+.Lp
+The type identifier encoded in the member
+.Em ctl_typeidx
+refers to the last type identifier that a label refers to in the current
+file. Labels only refer to types in the current file, if the
+.Nm
+file is a child, then it will have the same label as its parent;
+however, its label will only refer to its types, not its parents.
+.Lp
+It is also possible, though rather uncommon, for a
+.Nm
+file to have multiple labels. Labels are placed one after another, every
+eight bytes. When multiple labels are present, types may only belong to
+a single label.
+.Ss The Object Section
+The object section provides a mapping from ELF symbols of type
+.Sy STT_OBJECT
+in the symbol table to a type identifier. Every entry in this section is
+a
+.Sy uint16_t
+which contains a type identifier as described in the section
+.Sx Type Identifiers .
+If there is no information for an object, then the type identifier 0x0
+is stored for that entry.
+.Lp
+To walk the object section, you need to have a corresponding
+.Sy symbol table
+in the ELF object that contains the
+.Nm
+data. Not every object is included in this section. Specifically, when
+walking the symbol table. An entry is skipped if it matches any of the
+following conditions:
+.Lp
+.Bl -bullet -offset indent -compact
+.It
+The symbol type is not
+.Sy STT_OBJECT
+.It
+The symbol's section index is
+.Sy SHN_UNDEF
+.It
+The symbol's name offset is zero
+.It
+The symbol's section index is
+.Sy SHN_ABS
+and the value of the symbol is zero.
+.It
+The symbol's name is
+.Li _START_
+or
+.Li _END_ .
+These are skipped because they are used for scoping local symbols in
+ELF.
+.El
+.Lp
+The following sample code shows an example of iterating the object
+section and skipping the correct symbols:
+.Bd -literal
+#include <gelf.h>
+#include <stdio.h>
+
+/*
+ * Given the start of the object section in the CTF file, the number of symbols,
+ * and the ELF Data sections for the symbol table and the string table, this
+ * prints the type identifiers that correspond to objects. Note, a more robust
+ * implementation should ensure that they don't walk beyond the end of the CTF
+ * object section.
+ */
+static int
+walk_symbols(uint16_t *objtoff, Elf_Data *symdata, Elf_Data *strdata,
+    long nsyms)
+{
+	long i;
+	uintptr_t strbase = strdata->d_buf;
+
+	for (i = 1; i < nsyms; i++, objftoff++) {
+		const char *name;
+		GElf_Sym sym;
+
+		if (gelf_getsym(symdata, i, &sym) == NULL)
+			return (1);
+
+		if (GELF_ST_TYPE(sym.st_info) != STT_OBJECT)
+			continue;
+		if (sym.st_shndx == SHN_UNDEF || sym.st_name == 0)
+			continue;
+		if (sym.st_shndx == SHN_ABS && sym.st_value == 0)
+			continue;
+		name = (const char *)(strbase + sym.st_name);
+		if (strcmp(name, "_START_") == 0 || strcmp(name, "_END_") == 0)
+			continue;
+
+		(void) printf("Symbol %d has type %d\n", i, *objtoff);
+	}
+
+	return (0);
+}
+.Ed
+.Ss The Function Section
+The function section of the
+.Nm
+file encodes the types of both the function's arguments and the function's
+return type. Similar to
+.Sx The Object Section ,
+the function section encodes information for all symbols of type
+.Sy STT_FUNCTION ,
+excepting those that fit specific criteria. Unlike with objects, because
+functions have a variable number of arguments, they start with a type encoding
+as defined in
+.Sx Type Encoding ,
+which is the size of a
+.Sy uint16_t .
+For functions which have no type information available, they are encoded as
+.Li CTF_TYPE_INFO(CTF_K_UNKNOWN, 0, 0) .
+Functions with arguments are encoded differently. Here, the variable length is
+turned into the number of arguments in the function. If a function is a
+.Sy varargs
+type function, then the number of arguments is increased by one. Functions with
+type information are encoded as:
+.Li CTF_TYPE_INFO(CTF_K_FUNCTION, 0, nargs) .
+.Lp
+For functions that have no type information, nothing else is encoded, and the
+next function is encoded. For functions with type information, the next
+.Sy uint16_t
+is encoded with the type identifier of the return type of the function. It is
+followed by each of the type identifiers of the arguments, if any exist, in the
+order that they appear in the function.  Therefore, argument 0 is the first type
+identifier and so on. When a function has a final varargs argument, that is
+encoded with the type identifier of zero.
+.Lp
+Like
+.Sx The Object Section ,
+the function section is encoded in the order of the symbol table. It has
+similar, but slightly different considerations from objects. While iterating the
+symbol table, if any of the following conditions are true, then the entry is
+skipped and no corresponding entry is written:
+.Lp
+.Bl -bullet -offset indent -compact
+.It
+The symbol type is not
+.Sy STT_FUNCTION
+.It
+The symbol's section index is
+.Sy SHN_UNDEF
+.It
+The symbol's name offset is zero
+.It
+The symbol's name is
+.Li _START_
+or
+.Li _END_ .
+These are skipped because they are used for scoping local symbols in
+ELF.
+.El
+.Ss The Type Section
+The type section is the heart of the
+.Nm
+data. It encodes all of the information about the types themselves. The base of
+the type information comes in two forms, a short form and a long form, each of
+which may be followed by a variable number of arguments. The following
+definitions describe the short and long forms:
+.Bd -literal
+#define	CTF_MAX_SIZE	0xfffe	/* max size of a type in bytes */
+#define	CTF_LSIZE_SENT	0xffff	/* sentinel for ctt_size */
+#define	CTF_MAX_LSIZE	UINT64_MAX
+
+typedef struct ctf_stype {
+	uint_t ctt_name;	/* reference to name in string table */
+	ushort_t ctt_info;	/* encoded kind, variant length */
+	union {
+		ushort_t _size;	/* size of entire type in bytes */
+		ushort_t _type;	/* reference to another type */
+	} _u;
+} ctf_stype_t;
+
+typedef struct ctf_type {
+	uint_t ctt_name;	/* reference to name in string table */
+	ushort_t ctt_info;	/* encoded kind, variant length */
+	union {
+		ushort_t _size;	/* always CTF_LSIZE_SENT */
+		ushort_t _type; /* do not use */
+	} _u;
+	uint_t ctt_lsizehi;	/* high 32 bits of type size in bytes */
+	uint_t ctt_lsizelo;	/* low 32 bits of type size in bytes */
+} ctf_type_t;
+
+#define	ctt_size _u._size	/* for fundamental types that have a size */
+#define	ctt_type _u._type	/* for types that reference another type */
+.Ed
+.Pp
+Type sizes are stored in
+.Sy bytes .
+The basic small form uses a
+.Sy ushort_t
+to store the number of bytes. If the number of bytes in a structure would exceed
+0xfffe, then the alternate form, the
+.Sy ctf_type_t ,
+is used instead. To indicate that the larger form is being used, the member
+.Em ctt_size
+is set to value of
+.Sy CTF_LSIZE_SENT
+(0xffff). In general, when going through the type section, consumers use the
+.Sy ctf_type_t
+structure, but pay attention to the value of the member
+.Em ctt_size
+to determine whether they should increment their scan by the size of the
+.Sy ctf_stype_t
+or
+.Sy ctf_type_t .
+Not all kinds of types use
+.Sy ctt_size .
+Those which do not, will always use the
+.Sy ctf_stype_t
+structure. The individual sections for each kind have more information.
+.Lp
+Types are written out in order. Therefore the first entry encountered has a type
+id of 0x1, or 0x8000 if a child. The member
+.Em ctt_name
+is encoded as described in the section
+.Sx String Identifiers .
+The string that it points to is the name of the type. If the identifier points
+to an empty string (one that consists solely of a null terminator) then the type
+does not have a name, this is common with anonymous structures and unions that
+only have a typedef to name them, as well as, pointers and qualifiers.
+.Lp
+The next member, the
+.Em ctt_info ,
+is encoded as described in the section
+.Sx Type Encoding .
+The types kind tells us how to interpret the remaining data in the
+.Sy ctf_type_t
+and any variable length data that may exist. The rest of this section will be
+broken down into the interpretation of the various kinds.
+.Ss Encoding of Integers
+Integers, which are of type
+.Sy CTF_K_INTEGER ,
+have no variable length arguments. Instead, they are followed by a four byte
+.Sy uint_t
+which describes their encoding. All integers must be encoded with a variable
+length of zero. The
+.Em ctt_size
+member describes the length of the integer in bytes. In general, integer sizes
+will be rounded up to the closest power of two.
+.Lp
+The integer encoding contains three different pieces of information:
+.Bl -bullet -offset indent -compact
+.It
+The encoding of the integer
+.It
+The offset in
+.Sy bits
+of the type
+.It
+The size in
+.Sy bits
+of the type
+.El
+.Pp
+This encoding can be expressed through the following macros:
+.Bd -literal -offset indent
+#define	CTF_INT_ENCODING(data)	(((data) & 0xff000000) >> 24)
+#define	CTF_INT_OFFSET(data)	(((data) & 0x00ff0000) >> 16)
+#define	CTF_INT_BITS(data)	(((data) & 0x0000ffff))
+
+#define	CTF_INT_DATA(encoding, offset, bits) \\
+	(((encoding) << 24) | ((offset) << 16) | (bits))
+.Ed
+.Pp
+The following flags are defined for the encoding at this time:
+.Bd -literal -offset indent
+#define	CTF_INT_SIGNED		0x01
+#define	CTF_INT_CHAR		0x02
+#define	CTF_INT_BOOL		0x04
+#define	CTF_INT_VARARGS		0x08
+.Ed
+.Lp
+By default, an integer is considered to be unsigned, unless it has the
+.Sy CTF_INT_SIGNED
+flag set. If the flag
+.Sy CTF_INT_CHAR
+is set, that indicates that the integer is of a type that stores character
+data, for example the intrinsic C type
+.Sy char
+would have the
+.Sy CTF_INT_CHAR
+flag set. If the flag
+.Sy CTF_INT_BOOL
+is set, that indicates that the integer represents a boolean type. For example,
+the intrinsic C type
+.Sy _Bool
+would have the
+.Sy CTF_INT_BOOL
+flag set. Finally, the flag
+.Sy CTF_INT_VARARGS
+indicates that the integer is used as part of a variable number of arguments.
+This encoding is rather uncommon.
+.Ss Encoding of Floats
+Floats, which are of type
+.Sy CTF_K_FLOAT ,
+are similar to their integer counterparts. They have no variable length
+arguments and are followed by a four byte encoding which describes the kind of
+float that exists. The
+.Em ctt_size
+member is the size, in bytes, of the float. The float encoding has three
+different pieces of information inside of it:
+.Lp
+.Bl -bullet -offset indent -compact
+.It
+The specific kind of float that exists
+.It
+The offset in
+.Sy bits
+of the float
+.It
+The size in
+.Sy bits
+of the float
+.El
+.Lp
+This encoding can be expressed through the following macros:
+.Bd -literal -offset indent
+#define	CTF_FP_ENCODING(data)	(((data) & 0xff000000) >> 24)
+#define	CTF_FP_OFFSET(data)	(((data) & 0x00ff0000) >> 16)
+#define	CTF_FP_BITS(data)	(((data) & 0x0000ffff))
+
+#define	CTF_FP_DATA(encoding, offset, bits) \\
+	(((encoding) << 24) | ((offset) << 16) | (bits))
+.Ed
+.Lp
+Where as the encoding for integers was a series of flags, the encoding for
+floats maps to a specific kind of float. It is not a flag-based value. The kinds of floats
+correspond to both their size, and the encoding. This covers all of the basic C
+intrinsic floating point types. The following are the different kinds of floats
+represented in the encoding:
+.Bd -literal -offset indent
+#define	CTF_FP_SINGLE	1	/* IEEE 32-bit float encoding */
+#define	CTF_FP_DOUBLE	2	/* IEEE 64-bit float encoding */
+#define	CTF_FP_CPLX	3	/* Complex encoding */
+#define	CTF_FP_DCPLX	4	/* Double complex encoding */
+#define	CTF_FP_LDCPLX	5	/* Long double complex encoding */
+#define	CTF_FP_LDOUBLE	6	/* Long double encoding */
+#define	CTF_FP_INTRVL	7	/* Interval (2x32-bit) encoding */
+#define	CTF_FP_DINTRVL	8	/* Double interval (2x64-bit) encoding */
+#define	CTF_FP_LDINTRVL	9	/* Long double interval (2x128-bit) encoding */
+#define	CTF_FP_IMAGRY	10	/* Imaginary (32-bit) encoding */
+#define	CTF_FP_DIMAGRY	11	/* Long imaginary (64-bit) encoding */
+#define	CTF_FP_LDIMAGRY	12	/* Long double imaginary (128-bit) encoding */
+.Ed
+.Ss Encoding of Arrays
+Arrays, which are of type
+.Sy CTF_K_ARRAY ,
+have no variable length arguments. They are followed by a structure which
+describes the number of elements in the array, the type identifier of the
+elements in the array, and the type identifier of the index of the array. With
+arrays, the
+.Em ctt_size
+member is set to zero. The structure that follows an array is defined as:
+.Bd -literal
+typedef struct ctf_array {
+	ushort_t cta_contents;	/* reference to type of array contents */
+	ushort_t cta_index;	/* reference to type of array index */
+	uint_t cta_nelems;	/* number of elements */
+} ctf_array_t;
+.Ed
+.Lp
+The
+.Em cta_contents
+and
+.Em cta_index
+members of the
+.Sy ctf_array_t
+are type identifiers which are encoded as per the section
+.Sx Type Identifiers .
+The member
+.Em cta_nelems
+is a simple four byte unsigned count of the number of elements. This count may
+be zero when encountering C99's flexible array members.
+.Ss Encoding of Functions
+Function types, which are of type
+.Sy CTF_K_FUNCTION ,
+use the variable length list to be the number of arguments in the function. When
+the function has a final member which is a varargs, then the argument count is
+incremented by one to account for the variable argument. Here, the
+.Em ctt_type
+member is encoded with the type identifier of the return type of the function.
+Note that the
+.Em ctt_size
+member is not used here.
+.Lp
+The variable argument list contains the type identifiers for the arguments of
+the function, if any. Each one is represented by a
+.Sy uint16_t
+and encoded according to the
+.Sx Type Identifiers
+section. If the function's last argument is of type varargs, then it is also
+written out, but the type identifier is zero. This is included in the count of
+the function's arguments.
+.Ss Encoding of Structures and Unions
+Structures and Unions, which are encoded with
+.Sy CTF_K_STRUCT
+and
+.Sy CTF_K_UNION
+respectively,  are very similar constructs in C. The main difference
+between them is the fact that every member of a structure follows one another,
+where as in a union, all members share the same memory. They are also very
+similar in terms of their encoding in
+.Nm .
+The variable length argument for structures and unions represents the number of
+members that they have. The value of the member
+.Em ctt_size
+is the size of the structure and union. There are two different structures which
+are used to encode members in the variable list. When the size of a structure or
+union is greater than or equal to the large member threshold, 8192, then a
+different structure is used to encode the member, all members are encoded using
+the same structure. The structure for members is as follows:
+.Bd -literal
+typedef struct ctf_member {
+	uint_t ctm_name;	/* reference to name in string table */
+	ushort_t ctm_type;	/* reference to type of member */
+	ushort_t ctm_offset;	/* offset of this member in bits */
+} ctf_member_t;
+
+typedef struct ctf_lmember {
+	uint_t ctlm_name;	/* reference to name in string table */
+	ushort_t ctlm_type;	/* reference to type of member */
+	ushort_t ctlm_pad;	/* padding */
+	uint_t ctlm_offsethi;	/* high 32 bits of member offset in bits */
+	uint_t ctlm_offsetlo;	/* low 32 bits of member offset in bits */
+} ctf_lmember_t;
+.Ed
+.Lp
+Both the
+.Em ctm_name
+and
+.Em ctlm_name
+refer to the name of the member. The name is encoded as an offset into the
+string table as described by the section
+.Sx String Identifiers .
+The members
+.Sy ctm_type
+and
+.Sy ctlm_type
+both refer to the type of the member. They are encoded as per the section
+.Sx Type Identifiers .
+.Lp
+The last piece of information that is present is the offset which describes the
+offset in memory that the member begins at. For unions, this value will always
+be zero because the start of unions in memory is always zero. For structures,
+this is the offset in
+.Sy bits
+that the member begins at. Note that a compiler may lay out a type with padding.
+This means that the difference in offset between two consecutive members may be
+larger than the size of the member. When the size of the overall structure is
+strictly less than 8192 bytes, the normal structure,
+.Sy ctf_member_t ,
+is used and the offset in bits is stored in the member
+.Em ctm_offset .
+However, when the size of the structure is greater than or equal to 8192 bytes,
+then the number of bits is split into two 32-bit quantities. One member,
+.Em ctlm_offsethi ,
+represents the upper 32 bits of the offset, while the other member,
+.Em ctlm_offsetlo ,
+represents the lower 32 bits of the offset. These can be joined together to get
+a 64-bit sized offset in bits by shifting the member
+.Em ctlm_offsethi
+to the left by thirty two and then doing a binary or of
+.Em ctlm_offsetlo .
+.Ss Encoding of Enumerations
+Enumerations, noted by the type
+.Sy CTF_K_ENUM ,
+are similar to structures. Enumerations use the variable list to note the number
+of values that the enumeration contains, which we'll term enumerators. In C, an
+enumeration is always equivalent to the intrinsic type
+.Sy int ,
+thus the value of the member
+.Em ctt_size
+is always the size of an integer which is determined based on the current model.
+For illumos systems, this will always be 4, as an integer is always defined to
+be 4 bytes large in both
+.Sy ILP32
+and
+.Sy LP64 ,
+regardless of the architecture.
+.Lp
+The enumerators encoded in an enumeration have the following structure in the
+variable list:
+.Bd -literal
+typedef struct ctf_enum {
+	uint_t cte_name;	/* reference to name in string table */
+	int cte_value;		/* value associated with this name */
+} ctf_enum_t;
+.Ed
+.Pp
+The member
+.Em cte_name
+refers to the name of the enumerator's value, it is encoded according to the
+rules in the section
+.Sx String Identifiers .
+The member
+.Em cte_value
+contains the integer value of this enumerator.
+.Ss Encoding of Forward References
+Forward references, types of kind
+.Sy CTF_K_FORWARD ,
+in a
+.Nm
+file refer to types which may not have a definition at all, only a name. If
+the
+.Nm
+file is a child, then it may be that the forward is resolved to an
+actual type in the parent, otherwise the definition may be in another
+.Nm
+container or may not be known at all. The only member of the
+.Sy ctf_type_t
+that matters for a forward declaration is the
+.Em ctt_name
+which points to the name of the forward reference in the string table as
+described earlier. There is no other information recorded for forward
+references.
+.Ss Encoding of Pointers, Typedefs, Volatile, Const, and Restrict
+Pointers, typedefs, volatile, const, and restrict are all similar in
+.Nm .
+They all refer to another type. In the case of typedefs, they provide an
+alternate name, while volatile, const, and restrict change how the type is
+interpreted in the C programming language. This covers the
+.Nm
+kinds
+.Sy CTF_K_POINTER ,
+.Sy CTF_K_TYPEDEF ,
+.Sy CTF_K_VOLATILE ,
+.Sy CTF_K_RESTRICT ,
+and
+.Sy CTF_K_CONST .
+.Lp
+These types have no variable list entries and use the member
+.Em ctt_type
+to refer to the base type that they modify.
+.Ss Encoding of Unknown Types
+Types with the kind
+.Sy CTF_K_UNKNOWN
+are used to indicate gaps in the type identifier space. These entries consume an
+identifier, but do not define anything. Nothing should refer to these gap
+identifiers.
+.Ss Dependencies Between Types
+C types can be imagined as a directed, cyclic, graph. Structures and unions may
+refer to each other in a way that creates a cyclic dependency. In cases such as
+these, the entire type section must be read in and processed. Consumers must
+not assume that every type can be laid out in dependency order; they
+cannot.
+.Ss The String Section
+The last section of the
+.Nm
+file is the
+.Sy string
+section. This section encodes all of the strings that appear throughout
+the other sections. It is laid out as a series of characters followed by
+a null terminator. Generally, all names are written out in ASCII, as
+most C compilers do not allow and characters to appear in identifiers
+outside of a subset of ASCII. However, any extended characters sets
+should be written out as a series of UTF-8 bytes.
+.Lp
+The first entry in the section, at offset zero, is a single null
+terminator to reference the empty string. Following that, each C string
+should be written out, including the null terminator. Offsets that refer
+to something in this section should refer to the first byte which begins
+a string. Beyond the first byte in the section being the null
+terminator, the order of strings is unimportant.
+.Ss Data Encoding and ELF Considerations
+.Nm
+data is generally included in ELF objects which specify information to
+identify the architecture and endianness of the file. A
+.Nm
+container inside such an object must match the endianness of the ELF
+object. Aside from the question of the endian encoding of data, there
+should be no other differences between architectures. While many of the
+types in this document refer to non-fixed size C integral types, they
+are equivalent in the models
+.Sy ILP32
+and
+.Sy LP64 .
+If any other model is being used with
+.Nm
+data that has different sizes, then it must not use the model's sizes for
+those integral types and instead use the fixed size equivalents based on an
+.Sy ILP32
+environment.
+.Lp
+When placing a
+.Nm
+container inside of an ELF object, there are certain conventions that are
+expected for the purposes of tooling being able to find the
+.Nm
+data. In particular, a given ELF object should only contain a single
+.Nm
+section. Multiple containers should be merged together into a single
+one.
+.Lp
+The
+.Nm
+file should be included in its own ELF section. The section's name
+must be
+.Ql .SUNW_ctf .
+The type of the section must be
+.Sy SHT_PROGBITS .
+The section should have a link set to the symbol table and its address
+alignment must be 4.
+.Sh SEE ALSO
+.Xr dtrace 1 ,
+.Xr elf 3 ,
+.Xr gelf 3 ,
+.Xr a.out 5 ,
+.Xr elf 5
diff --git a/external/cddl/osnet/dist/lib/libctf/common/ctf_lib.c b/external/cddl/osnet/dist/lib/libctf/common/ctf_lib.c
index 3898550..bad51c9 100644
--- a/external/cddl/osnet/dist/lib/libctf/common/ctf_lib.c
+++ b/external/cddl/osnet/dist/lib/libctf/common/ctf_lib.c
@@ -38,14 +38,14 @@
 #include <unistd.h>
 #include <fcntl.h>
 #include <errno.h>
-#if defined(sun)
+#ifdef illumos
 #include <dlfcn.h>
 #else
 #include <zlib.h>
 #endif
 #include <gelf.h>
 
-#if defined(sun)
+#ifdef illumos
 #ifdef _LP64
 static const char *_libctf_zlib = "/usr/lib/64/libz.so";
 #else
@@ -62,7 +62,7 @@ static struct {
 static size_t _PAGESIZE;
 static size_t _PAGEMASK;
 
-#if defined(sun)
+#ifdef illumos
 #pragma init(_libctf_init)
 #else
 void    _libctf_init(void) __attribute__ ((constructor));
@@ -70,7 +70,7 @@ void    _libctf_init(void) __attribute__ ((constructor));
 void
 _libctf_init(void)
 {
-#if defined(sun)
+#ifdef illumos
 	const char *p = getenv("LIBCTF_DECOMPRESSOR");
 
 	if (p != NULL)
@@ -91,7 +91,7 @@ _libctf_init(void)
 void *
 ctf_zopen(int *errp)
 {
-#if defined(sun)
+#ifdef illumos
 	ctf_dprintf("decompressing CTF data using %s\n", _libctf_zlib);
 
 	if (zlib.z_dlp != NULL)
@@ -220,6 +220,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;
@@ -256,7 +257,7 @@ ctf_fdopen(int fd, int *errp)
 		if (ctfsect.cts_data == MAP_FAILED)
 			return (ctf_set_open_errno(errp, errno));
 
-		ctfsect.cts_name = (char *)_CTF_SECTION;
+		ctfsect.cts_name = _CTF_SECTION;
 		ctfsect.cts_type = SHT_PROGBITS;
 		ctfsect.cts_flags = SHF_ALLOC;
 		ctfsect.cts_size = (size_t)st.st_size;
@@ -277,16 +278,15 @@ ctf_fdopen(int fd, int *errp)
 	 */
 	if (nbytes >= (ssize_t) sizeof (Elf32_Ehdr) &&
 	    bcmp(&hdr.e32.e_ident[EI_MAG0], ELFMAG, SELFMAG) == 0) {
-#ifdef	_BIG_ENDIAN
+#if BYTE_ORDER == _BIG_ENDIAN
 		uchar_t order = ELFDATA2MSB;
 #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)
@@ -302,11 +302,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));
@@ -318,7 +345,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) {
@@ -326,7 +353,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);
@@ -340,14 +367,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);
@@ -358,15 +385,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 &&
diff --git a/external/cddl/osnet/dist/lib/libctf/common/ctf_subr.c b/external/cddl/osnet/dist/lib/libctf/common/ctf_subr.c
index e9f5ad7..37dd0e1 100644
--- a/external/cddl/osnet/dist/lib/libctf/common/ctf_subr.c
+++ b/external/cddl/osnet/dist/lib/libctf/common/ctf_subr.c
@@ -24,6 +24,10 @@
  * Use is subject to license terms.
  */
 
+#if HAVE_NBTOOL_CONFIG_H
+# include "nbtool_config.h"
+#endif
+
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
 #include <ctf_impl.h>
diff --git a/external/cddl/osnet/dist/lib/libdtrace/arm/dt_isadep.c b/external/cddl/osnet/dist/lib/libdtrace/arm/dt_isadep.c
index 5e44a4c9..a986b74 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/arm/dt_isadep.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/arm/dt_isadep.c
@@ -75,8 +75,6 @@ dt_pid_create_return_probe(struct ps_prochandle *P, dtrace_hdl_t *dtp,
 {
 
 	uint32_t *text;
-	int i;
-	int srdepth = 0;
 
 	dt_dprintf("%s: unimplemented\n", __func__);
 	return (DT_PROC_ERR);
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/drti.c b/external/cddl/osnet/dist/lib/libdtrace/common/drti.c
index 1ae8283..709560a 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/drti.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/drti.c
@@ -20,6 +20,7 @@
  */
 /*
  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2013 Voxer Inc. All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -34,6 +35,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <errno.h>
+#include <libelf.h>
 
 /*
  * In Solaris 10 GA, the only mechanism for communicating helper information
@@ -53,7 +55,9 @@
  */
 
 static const char *devnamep = "/dev/dtrace/helper";
+#ifdef illumos
 static const char *olddevname = "/devices/pseudo/dtrace@0:helper";
+#endif
 
 static const char *modname;	/* Name of this load object */
 static int gen;			/* DOF helper generation */
@@ -83,7 +87,7 @@ dprintf(int debug, const char *fmt, ...)
 	va_end(ap);
 }
 
-#if defined(sun)
+#ifdef illumos
 #pragma init(dtrace_dof_init)
 #else
 static void dtrace_dof_init(void) __attribute__ ((constructor));
@@ -99,11 +103,10 @@ dtrace_dof_init(void)
 	Elf32_Ehdr *elf;
 #endif
 	dof_helper_t dh;
-#if defined(sun)
-	Link_map *lmp;
+	Link_map *lmp = NULL;
+#ifdef illumos
 	Lmid_t lmid;
 #else
-	struct link_map *lmp;
 	u_long lmid = 0;
 #endif
 	int fd;
@@ -120,7 +123,7 @@ dtrace_dof_init(void)
 		return;
 	}
 
-#if defined(sun)
+#ifdef illumos
 	if (dlinfo(RTLD_SELF, RTLD_DI_LMID, &lmid) == -1) {
 		dprintf(1, "couldn't discover link map ID\n");
 		return;
@@ -144,6 +147,9 @@ dtrace_dof_init(void)
 
 	dh.dofhp_dof = (uintptr_t)dof;
 	dh.dofhp_addr = elf->e_type == ET_DYN ? (uintptr_t) lmp->l_addr : 0;
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	dh.dofhp_pid = getpid();
+#endif
 
 	if (lmid == 0) {
 		(void) snprintf(dh.dofhp_mod, sizeof (dh.dofhp_mod),
@@ -158,7 +164,7 @@ dtrace_dof_init(void)
 
 	if ((fd = open64(devnamep, O_RDWR)) < 0) {
 		dprintf(1, "failed to open helper device %s", devnamep);
-
+#ifdef illumos
 		/*
 		 * If the device path wasn't explicitly set, try again with
 		 * the old device path.
@@ -172,17 +178,23 @@ dtrace_dof_init(void)
 			dprintf(1, "failed to open helper device %s", devnamep);
 			return;
 		}
+#else
+		return;
+#endif
 	}
-
 	if ((gen = ioctl(fd, DTRACEHIOC_ADDDOF, &dh)) == -1)
 		dprintf(1, "DTrace ioctl failed for DOF at %p", dof);
-	else
+	else {
 		dprintf(1, "DTrace ioctl succeeded for DOF at %p\n", dof);
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+		gen = dh.dofhp_gen;
+#endif
+	}
 
 	(void) close(fd);
 }
 
-#if defined(sun)
+#ifdef illumos
 #pragma fini(dtrace_dof_fini)
 #else
 static void dtrace_dof_fini(void) __attribute__ ((destructor));
@@ -198,7 +210,7 @@ dtrace_dof_fini(void)
 		return;
 	}
 
-	if ((gen = ioctl(fd, DTRACEHIOC_REMOVE, gen)) == -1)
+	if ((gen = ioctl(fd, DTRACEHIOC_REMOVE, &gen)) == -1)
 		dprintf(1, "DTrace ioctl failed to remove DOF (%d)\n", gen);
 	else
 		dprintf(1, "DTrace ioctl removed DOF (%d)\n", gen);
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_aggregate.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_aggregate.c
index 949d2df..81cb048 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_aggregate.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_aggregate.c
@@ -24,7 +24,10 @@
  * Use is subject to license terms.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
+/*
+ * Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
 
 #include <stdlib.h>
 #include <strings.h>
@@ -32,10 +35,13 @@
 #include <unistd.h>
 #include <dt_impl.h>
 #include <assert.h>
-#if defined(sun)
+#ifdef illumos
 #include <alloca.h>
 #else
 #include <sys/sysctl.h>
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+#include <libproc_compat.h>
+#endif
 #endif
 #include <limits.h>
 
@@ -208,12 +214,89 @@ dt_aggregate_lquantizedcmp(int64_t *lhs, int64_t *rhs)
 	return (0);
 }
 
+static void
+dt_aggregate_llquantize(int64_t *existing, int64_t *new, size_t size)
+{
+	int i;
+
+	for (i = 1; i < size / sizeof (int64_t); i++)
+		existing[i] = existing[i] + new[i];
+}
+
+static long double
+dt_aggregate_llquantizedsum(int64_t *llquanta)
+{
+	int64_t arg = *llquanta++;
+	uint16_t factor = DTRACE_LLQUANTIZE_FACTOR(arg);
+	uint16_t low = DTRACE_LLQUANTIZE_LOW(arg);
+	uint16_t high = DTRACE_LLQUANTIZE_HIGH(arg);
+	uint16_t nsteps = DTRACE_LLQUANTIZE_NSTEP(arg);
+	int bin = 0, order;
+	int64_t value = 1, next, step;
+	long double total;
+
+	assert(nsteps >= factor);
+	assert(nsteps % factor == 0);
+
+	for (order = 0; order < low; order++)
+		value *= factor;
+
+	total = (long double)llquanta[bin++] * (long double)(value - 1);
+
+	next = value * factor;
+	step = next > nsteps ? next / nsteps : 1;
+
+	while (order <= high) {
+		assert(value < next);
+		total += (long double)llquanta[bin++] * (long double)(value);
+
+		if ((value += step) != next)
+			continue;
+
+		next = value * factor;
+		step = next > nsteps ? next / nsteps : 1;
+		order++;
+	}
+
+	return (total + (long double)llquanta[bin] * (long double)value);
+}
+
+static int
+dt_aggregate_llquantizedcmp(int64_t *lhs, int64_t *rhs)
+{
+	long double lsum = dt_aggregate_llquantizedsum(lhs);
+	long double rsum = dt_aggregate_llquantizedsum(rhs);
+	int64_t lzero, rzero;
+
+	if (lsum < rsum)
+		return (DT_LESSTHAN);
+
+	if (lsum > rsum)
+		return (DT_GREATERTHAN);
+
+	/*
+	 * If they're both equal, then we will compare based on the weights at
+	 * zero.  If the weights at zero are equal, then this will be judged a
+	 * tie and will be resolved based on the key comparison.
+	 */
+	lzero = lhs[1];
+	rzero = rhs[1];
+
+	if (lzero < rzero)
+		return (DT_LESSTHAN);
+
+	if (lzero > rzero)
+		return (DT_GREATERTHAN);
+
+	return (0);
+}
+
 static int
 dt_aggregate_quantizedcmp(int64_t *lhs, int64_t *rhs)
 {
 	int nbuckets = DTRACE_QUANTIZE_NBUCKETS;
 	long double ltotal = 0, rtotal = 0;
-	int64_t lzero, rzero;
+	int64_t lzero = 0, rzero = 0;
 	uint_t i;
 
 	for (i = 0; i < nbuckets; i++) {
@@ -251,7 +334,6 @@ dt_aggregate_quantizedcmp(int64_t *lhs, int64_t *rhs)
 static void
 dt_aggregate_usym(dtrace_hdl_t *dtp, uint64_t *data)
 {
-#if 0	/* XXX TBD needs libproc */
 	uint64_t pid = data[0];
 	uint64_t *pc = &data[1];
 	struct ps_prochandle *P;
@@ -265,24 +347,16 @@ dt_aggregate_usym(dtrace_hdl_t *dtp, uint64_t *data)
 
 	dt_proc_lock(dtp, P);
 
-#if defined(sun)
 	if (Plookup_by_addr(P, *pc, NULL, 0, &sym) == 0)
-#else
-	if (proc_addr2sym(P, *pc, NULL, 0, &sym) == 0)
-#endif
 		*pc = sym.st_value;
 
 	dt_proc_unlock(dtp, P);
 	dt_proc_release(dtp, P);
-#else
-	printf("XXX %s not implemented\n", __func__);
-#endif
 }
 
 static void
 dt_aggregate_umod(dtrace_hdl_t *dtp, uint64_t *data)
 {
-#if 0	/* XXX TBD needs libproc */
 	uint64_t pid = data[0];
 	uint64_t *pc = &data[1];
 	struct ps_prochandle *P;
@@ -296,18 +370,11 @@ dt_aggregate_umod(dtrace_hdl_t *dtp, uint64_t *data)
 
 	dt_proc_lock(dtp, P);
 
-#if defined(sun)
 	if ((map = Paddr_to_map(P, *pc)) != NULL)
-#else
-	if ((map = proc_addr2map(P, *pc)) != NULL)
-#endif
 		*pc = map->pr_vaddr;
 
 	dt_proc_unlock(dtp, P);
 	dt_proc_release(dtp, P);
-#else
-	printf("XXX %s not implemented\n", __func__);
-#endif
 }
 
 static void
@@ -388,7 +455,7 @@ dt_aggregate_snap_cpu(dtrace_hdl_t *dtp, processorid_t cpu)
 
 	buf->dtbd_cpu = cpu;
 
-#if defined(sun)
+#ifdef illumos
 	if (dt_ioctl(dtp, DTRACEIOC_AGGSNAP, buf) == -1) {
 #else
 	if (dt_ioctl(dtp, DTRACEIOC_AGGSNAP, &buf) == -1) {
@@ -607,6 +674,10 @@ hashnext:
 			h->dtahe_aggregate = dt_aggregate_lquantize;
 			break;
 
+		case DTRACEAGG_LLQUANTIZE:
+			h->dtahe_aggregate = dt_aggregate_llquantize;
+			break;
+
 		case DTRACEAGG_COUNT:
 		case DTRACEAGG_SUM:
 		case DTRACEAGG_AVG:
@@ -826,33 +897,14 @@ dt_aggregate_valcmp(const void *lhs, const void *rhs)
 	caddr_t rdata = rh->dtahe_data.dtada_data;
 	dtrace_recdesc_t *lrec, *rrec;
 	int64_t *laddr, *raddr;
-	int rval, i;
-
-	if ((rval = dt_aggregate_hashcmp(lhs, rhs)) != 0)
-		return (rval);
-
-	if (lagg->dtagd_nrecs > ragg->dtagd_nrecs)
-		return (DT_GREATERTHAN);
-
-	if (lagg->dtagd_nrecs < ragg->dtagd_nrecs)
-		return (DT_LESSTHAN);
-
-	for (i = 0; i < lagg->dtagd_nrecs; i++) {
-		lrec = &lagg->dtagd_rec[i];
-		rrec = &ragg->dtagd_rec[i];
-
-		if (lrec->dtrd_offset < rrec->dtrd_offset)
-			return (DT_LESSTHAN);
+	int rval;
 
-		if (lrec->dtrd_offset > rrec->dtrd_offset)
-			return (DT_GREATERTHAN);
+	assert(lagg->dtagd_nrecs == ragg->dtagd_nrecs);
 
-		if (lrec->dtrd_action < rrec->dtrd_action)
-			return (DT_LESSTHAN);
+	lrec = &lagg->dtagd_rec[lagg->dtagd_nrecs - 1];
+	rrec = &ragg->dtagd_rec[ragg->dtagd_nrecs - 1];
 
-		if (lrec->dtrd_action > rrec->dtrd_action)
-			return (DT_GREATERTHAN);
-	}
+	assert(lrec->dtrd_action == rrec->dtrd_action);
 
 	laddr = (int64_t *)(uintptr_t)(ldata + lrec->dtrd_offset);
 	raddr = (int64_t *)(uintptr_t)(rdata + rrec->dtrd_offset);
@@ -874,6 +926,10 @@ dt_aggregate_valcmp(const void *lhs, const void *rhs)
 		rval = dt_aggregate_lquantizedcmp(laddr, raddr);
 		break;
 
+	case DTRACEAGG_LLQUANTIZE:
+		rval = dt_aggregate_llquantizedcmp(laddr, raddr);
+		break;
+
 	case DTRACEAGG_COUNT:
 	case DTRACEAGG_SUM:
 	case DTRACEAGG_MIN:
@@ -1194,7 +1250,7 @@ dt_aggwalk_rval(dtrace_hdl_t *dtp, dt_ahashent_t *h, int rval)
 	return (0);
 }
 
-void
+static void
 dt_aggregate_qsort(dtrace_hdl_t *dtp, void *base, size_t nel, size_t width,
     int (*compar)(const void *, const void *))
 {
@@ -1247,6 +1303,231 @@ dtrace_aggregate_walk(dtrace_hdl_t *dtp, dtrace_aggregate_f *func, void *arg)
 }
 
 static int
+dt_aggregate_total(dtrace_hdl_t *dtp, boolean_t clear)
+{
+	dt_ahashent_t *h;
+	dtrace_aggdata_t **total;
+	dtrace_aggid_t max = DTRACE_AGGVARIDNONE, id;
+	dt_aggregate_t *agp = &dtp->dt_aggregate;
+	dt_ahash_t *hash = &agp->dtat_hash;
+	uint32_t tflags;
+
+	tflags = DTRACE_A_TOTAL | DTRACE_A_HASNEGATIVES | DTRACE_A_HASPOSITIVES;
+
+	/*
+	 * If we need to deliver per-aggregation totals, we're going to take
+	 * three passes over the aggregate:  one to clear everything out and
+	 * determine our maximum aggregation ID, one to actually total
+	 * everything up, and a final pass to assign the totals to the
+	 * individual elements.
+	 */
+	for (h = hash->dtah_all; h != NULL; h = h->dtahe_nextall) {
+		dtrace_aggdata_t *aggdata = &h->dtahe_data;
+
+		if ((id = dt_aggregate_aggvarid(h)) > max)
+			max = id;
+
+		aggdata->dtada_total = 0;
+		aggdata->dtada_flags &= ~tflags;
+	}
+
+	if (clear || max == DTRACE_AGGVARIDNONE)
+		return (0);
+
+	total = dt_zalloc(dtp, (max + 1) * sizeof (dtrace_aggdata_t *));
+
+	if (total == NULL)
+		return (-1);
+
+	for (h = hash->dtah_all; h != NULL; h = h->dtahe_nextall) {
+		dtrace_aggdata_t *aggdata = &h->dtahe_data;
+		dtrace_aggdesc_t *agg = aggdata->dtada_desc;
+		dtrace_recdesc_t *rec;
+		caddr_t data;
+		int64_t val, *addr;
+
+		rec = &agg->dtagd_rec[agg->dtagd_nrecs - 1];
+		data = aggdata->dtada_data;
+		addr = (int64_t *)(uintptr_t)(data + rec->dtrd_offset);
+
+		switch (rec->dtrd_action) {
+		case DTRACEAGG_STDDEV:
+			val = dt_stddev((uint64_t *)addr, 1);
+			break;
+
+		case DTRACEAGG_SUM:
+		case DTRACEAGG_COUNT:
+			val = *addr;
+			break;
+
+		case DTRACEAGG_AVG:
+			val = addr[0] ? (addr[1] / addr[0]) : 0;
+			break;
+
+		default:
+			continue;
+		}
+
+		if (total[agg->dtagd_varid] == NULL) {
+			total[agg->dtagd_varid] = aggdata;
+			aggdata->dtada_flags |= DTRACE_A_TOTAL;
+		} else {
+			aggdata = total[agg->dtagd_varid];
+		}
+
+		if (val > 0)
+			aggdata->dtada_flags |= DTRACE_A_HASPOSITIVES;
+
+		if (val < 0) {
+			aggdata->dtada_flags |= DTRACE_A_HASNEGATIVES;
+			val = -val;
+		}
+
+		if (dtp->dt_options[DTRACEOPT_AGGZOOM] != DTRACEOPT_UNSET) {
+			val = (int64_t)((long double)val *
+			    (1 / DTRACE_AGGZOOM_MAX));
+
+			if (val > aggdata->dtada_total)
+				aggdata->dtada_total = val;
+		} else {
+			aggdata->dtada_total += val;
+		}
+	}
+
+	/*
+	 * And now one final pass to set everyone's total.
+	 */
+	for (h = hash->dtah_all; h != NULL; h = h->dtahe_nextall) {
+		dtrace_aggdata_t *aggdata = &h->dtahe_data, *t;
+		dtrace_aggdesc_t *agg = aggdata->dtada_desc;
+
+		if ((t = total[agg->dtagd_varid]) == NULL || aggdata == t)
+			continue;
+
+		aggdata->dtada_total = t->dtada_total;
+		aggdata->dtada_flags |= (t->dtada_flags & tflags);
+	}
+
+	dt_free(dtp, total);
+
+	return (0);
+}
+
+static int
+dt_aggregate_minmaxbin(dtrace_hdl_t *dtp, boolean_t clear)
+{
+	dt_ahashent_t *h;
+	dtrace_aggdata_t **minmax;
+	dtrace_aggid_t max = DTRACE_AGGVARIDNONE, id;
+	dt_aggregate_t *agp = &dtp->dt_aggregate;
+	dt_ahash_t *hash = &agp->dtat_hash;
+
+	for (h = hash->dtah_all; h != NULL; h = h->dtahe_nextall) {
+		dtrace_aggdata_t *aggdata = &h->dtahe_data;
+
+		if ((id = dt_aggregate_aggvarid(h)) > max)
+			max = id;
+
+		aggdata->dtada_minbin = 0;
+		aggdata->dtada_maxbin = 0;
+		aggdata->dtada_flags &= ~DTRACE_A_MINMAXBIN;
+	}
+
+	if (clear || max == DTRACE_AGGVARIDNONE)
+		return (0);
+
+	minmax = dt_zalloc(dtp, (max + 1) * sizeof (dtrace_aggdata_t *));
+
+	if (minmax == NULL)
+		return (-1);
+
+	for (h = hash->dtah_all; h != NULL; h = h->dtahe_nextall) {
+		dtrace_aggdata_t *aggdata = &h->dtahe_data;
+		dtrace_aggdesc_t *agg = aggdata->dtada_desc;
+		dtrace_recdesc_t *rec;
+		caddr_t data;
+		int64_t *addr;
+		int minbin = -1, maxbin = -1, i;
+		int start = 0, size;
+
+		rec = &agg->dtagd_rec[agg->dtagd_nrecs - 1];
+		size = rec->dtrd_size / sizeof (int64_t);
+		data = aggdata->dtada_data;
+		addr = (int64_t *)(uintptr_t)(data + rec->dtrd_offset);
+
+		switch (rec->dtrd_action) {
+		case DTRACEAGG_LQUANTIZE:
+			/*
+			 * For lquantize(), we always display the entire range
+			 * of the aggregation when aggpack is set.
+			 */
+			start = 1;
+			minbin = start;
+			maxbin = size - 1 - start;
+			break;
+
+		case DTRACEAGG_QUANTIZE:
+			for (i = start; i < size; i++) {
+				if (!addr[i])
+					continue;
+
+				if (minbin == -1)
+					minbin = i - start;
+
+				maxbin = i - start;
+			}
+
+			if (minbin == -1) {
+				/*
+				 * If we have no data (e.g., due to a clear()
+				 * or negative increments), we'll use the
+				 * zero bucket as both our min and max.
+				 */
+				minbin = maxbin = DTRACE_QUANTIZE_ZEROBUCKET;
+			}
+
+			break;
+
+		default:
+			continue;
+		}
+
+		if (minmax[agg->dtagd_varid] == NULL) {
+			minmax[agg->dtagd_varid] = aggdata;
+			aggdata->dtada_flags |= DTRACE_A_MINMAXBIN;
+			aggdata->dtada_minbin = minbin;
+			aggdata->dtada_maxbin = maxbin;
+			continue;
+		}
+
+		if (minbin < minmax[agg->dtagd_varid]->dtada_minbin)
+			minmax[agg->dtagd_varid]->dtada_minbin = minbin;
+
+		if (maxbin > minmax[agg->dtagd_varid]->dtada_maxbin)
+			minmax[agg->dtagd_varid]->dtada_maxbin = maxbin;
+	}
+
+	/*
+	 * And now one final pass to set everyone's minbin and maxbin.
+	 */
+	for (h = hash->dtah_all; h != NULL; h = h->dtahe_nextall) {
+		dtrace_aggdata_t *aggdata = &h->dtahe_data, *mm;
+		dtrace_aggdesc_t *agg = aggdata->dtada_desc;
+
+		if ((mm = minmax[agg->dtagd_varid]) == NULL || aggdata == mm)
+			continue;
+
+		aggdata->dtada_minbin = mm->dtada_minbin;
+		aggdata->dtada_maxbin = mm->dtada_maxbin;
+		aggdata->dtada_flags |= DTRACE_A_MINMAXBIN;
+	}
+
+	dt_free(dtp, minmax);
+
+	return (0);
+}
+
+static int
 dt_aggregate_walk_sorted(dtrace_hdl_t *dtp,
     dtrace_aggregate_f *func, void *arg,
     int (*sfunc)(const void *, const void *))
@@ -1255,6 +1536,23 @@ dt_aggregate_walk_sorted(dtrace_hdl_t *dtp,
 	dt_ahashent_t *h, **sorted;
 	dt_ahash_t *hash = &agp->dtat_hash;
 	size_t i, nentries = 0;
+	int rval = -1;
+
+	agp->dtat_flags &= ~(DTRACE_A_TOTAL | DTRACE_A_MINMAXBIN);
+
+	if (dtp->dt_options[DTRACEOPT_AGGHIST] != DTRACEOPT_UNSET) {
+		agp->dtat_flags |= DTRACE_A_TOTAL;
+
+		if (dt_aggregate_total(dtp, B_FALSE) != 0)
+			return (-1);
+	}
+
+	if (dtp->dt_options[DTRACEOPT_AGGPACK] != DTRACEOPT_UNSET) {
+		agp->dtat_flags |= DTRACE_A_MINMAXBIN;
+
+		if (dt_aggregate_minmaxbin(dtp, B_FALSE) != 0)
+			return (-1);
+	}
 
 	for (h = hash->dtah_all; h != NULL; h = h->dtahe_nextall)
 		nentries++;
@@ -1262,7 +1560,7 @@ dt_aggregate_walk_sorted(dtrace_hdl_t *dtp,
 	sorted = dt_alloc(dtp, nentries * sizeof (dt_ahashent_t *));
 
 	if (sorted == NULL)
-		return (-1);
+		goto out;
 
 	for (h = hash->dtah_all, i = 0; h != NULL; h = h->dtahe_nextall)
 		sorted[i++] = h;
@@ -1286,14 +1584,20 @@ dt_aggregate_walk_sorted(dtrace_hdl_t *dtp,
 	for (i = 0; i < nentries; i++) {
 		h = sorted[i];
 
-		if (dt_aggwalk_rval(dtp, h, func(&h->dtahe_data, arg)) == -1) {
-			dt_free(dtp, sorted);
-			return (-1);
-		}
+		if (dt_aggwalk_rval(dtp, h, func(&h->dtahe_data, arg)) == -1)
+			goto out;
 	}
 
+	rval = 0;
+out:
+	if (agp->dtat_flags & DTRACE_A_TOTAL)
+		(void) dt_aggregate_total(dtp, B_TRUE);
+
+	if (agp->dtat_flags & DTRACE_A_MINMAXBIN)
+		(void) dt_aggregate_minmaxbin(dtp, B_TRUE);
+
 	dt_free(dtp, sorted);
-	return (0);
+	return (rval);
 }
 
 int
@@ -1816,6 +2120,8 @@ dtrace_aggregate_print(dtrace_hdl_t *dtp, FILE *fp,
 {
 	dt_print_aggdata_t pd;
 
+	bzero(&pd, sizeof (pd));
+
 	pd.dtpa_dtp = dtp;
 	pd.dtpa_fp = fp;
 	pd.dtpa_allunprint = 1;
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_as.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_as.c
index 457b8fd..00ce000 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_as.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_as.c
@@ -23,8 +23,10 @@
  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
+/*
+ * Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2013 Joyent, Inc. All rights reserved.
+ */
 
 #include <sys/types.h>
 #include <strings.h>
@@ -125,7 +127,7 @@ dt_copyvar(dt_idhash_t *dhp, dt_ident_t *idp, void *data)
 		dvp->dtdv_flags |= DIFV_F_MOD;
 
 	bzero(&dn, sizeof (dn));
-	dt_node_type_assign(&dn, idp->di_ctfp, idp->di_type);
+	dt_node_type_assign(&dn, idp->di_ctfp, idp->di_type, B_FALSE);
 	dt_node_diftype(pcb->pcb_hdl, &dn, &dvp->dtdv_type);
 
 	idp->di_flags &= ~(DT_IDFLG_DIFR | DT_IDFLG_DIFW);
@@ -257,6 +259,8 @@ dt_as(dt_pcb_t *pcb)
 		kbits = ubits = -1u;
 		break;
 	default:
+		kmask = umask = 0;
+		kbits = ubits = -1u;
 		xyerror(D_UNKNOWN, "internal error -- invalid link mode %u\n",
 		    dtp->dt_linkmode);
 	}
@@ -426,9 +430,12 @@ dt_as(dt_pcb_t *pcb)
 			if ((idp = dip->di_extern) == NULL)
 				continue; /* no relocation entry needed */
 
+/*###431 [cc] error: 'kbits' may be used uninitialized in this function [-Werror=maybe-uninitialized]%%%*/
 			if ((idp->di_flags & kmask) == kbits) {
 				nodef = knodef;
 				rp = krp++;
+/*###434 [cc] error: 'ubits' may be used uninitialized in this function [-Werror=maybe-uninitialized]%%%*/
+/*###434 [cc] error: 'umask' may be used uninitialized in this function [-Werror=maybe-uninitialized]%%%*/
 			} else if ((idp->di_flags & umask) == ubits) {
 				nodef = unodef;
 				rp = urp++;
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_cc.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_cc.c
index 8bd0915..24ab51c 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_cc.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_cc.c
@@ -20,12 +20,11 @@
  */
 
 /*
- * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * 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.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 /*
  * DTrace D Language Compiler
  *
@@ -85,6 +84,7 @@
 
 #include <sys/types.h>
 #include <sys/wait.h>
+#include <sys/sysmacros.h>
 
 #include <assert.h>
 #include <string.h>
@@ -622,7 +622,7 @@ dt_action_printflike(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp,
 		}
 
 		if (str[0] == '\0')
-			str = DT_FREOPEN_RESTORE;
+			str = __UNCONST(DT_FREOPEN_RESTORE);
 	}
 
 	sdp->dtsd_fmtdata = dt_printf_create(dtp, str);
@@ -663,19 +663,76 @@ dt_action_printflike(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp,
 static void
 dt_action_trace(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp)
 {
+	int ctflib = 0;	// XXX: gcc
+
 	dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp);
+	boolean_t istrace = (dnp->dn_ident->di_id == DT_ACT_TRACE);
+	const char *act = istrace ?  "trace" : "print";
 
 	if (dt_node_is_void(dnp->dn_args)) {
-		dnerror(dnp->dn_args, D_TRACE_VOID,
-		    "trace( ) may not be applied to a void expression\n");
+		dnerror(dnp->dn_args, istrace ? D_TRACE_VOID : D_PRINT_VOID,
+		    "%s( ) may not be applied to a void expression\n", act);
+	}
+
+	if (dt_node_resolve(dnp->dn_args, DT_IDENT_XLPTR) != NULL) {
+		dnerror(dnp->dn_args, istrace ? D_TRACE_DYN : D_PRINT_DYN,
+		    "%s( ) may not be applied to a translated pointer\n", act);
 	}
 
-	if (dt_node_is_dynamic(dnp->dn_args)) {
-		dnerror(dnp->dn_args, D_TRACE_DYN,
-		    "trace( ) may not be applied to a dynamic expression\n");
+	if (dnp->dn_args->dn_kind == DT_NODE_AGG) {
+		dnerror(dnp->dn_args, istrace ? D_TRACE_AGG : D_PRINT_AGG,
+		    "%s( ) may not be applied to an aggregation%s\n", act,
+		    istrace ? "" : " -- did you mean printa()?");
 	}
 
 	dt_cg(yypcb, dnp->dn_args);
+
+	/*
+	 * The print() action behaves identically to trace(), except that it
+	 * stores the CTF type of the argument (if present) within the DOF for
+	 * the DIFEXPR action.  To do this, we set the 'dtsd_strdata' to point
+	 * to the fully-qualified CTF type ID for the result of the DIF
+	 * action.  We use the ID instead of the name to handles complex types
+	 * like arrays and function pointers that can't be resolved by
+	 * ctf_type_lookup().  This is later processed by dtrace_dof_create()
+	 * and turned into a reference into the string table so that we can
+	 * get the type information when we process the data after the fact.  In
+	 * the case where we are referring to userland CTF data, we also need to
+	 * to identify which ctf container in question we care about and encode
+	 * that within the name.
+	 */
+	if (dnp->dn_ident->di_id == DT_ACT_PRINT) {
+		dt_node_t *dret;
+		size_t n;
+		dt_module_t *dmp;
+
+		dret = yypcb->pcb_dret;
+		dmp = dt_module_lookup_by_ctf(dtp, dret->dn_ctfp);
+
+		n = snprintf(NULL, 0, "%s`%ld", dmp->dm_name, dret->dn_type) + 1;
+		if (dmp->dm_pid != 0) {
+			ctflib = dt_module_getlibid(dtp, dmp, dret->dn_ctfp);
+			assert(ctflib >= 0);
+			n = snprintf(NULL, 0, "%s`%d`%ld", dmp->dm_name,
+			    ctflib, dret->dn_type) + 1;
+		} else {
+			n = snprintf(NULL, 0, "%s`%ld", dmp->dm_name,
+			    dret->dn_type) + 1;
+		}
+		sdp->dtsd_strdata = dt_alloc(dtp, n);
+		if (sdp->dtsd_strdata == NULL)
+			longjmp(yypcb->pcb_jmpbuf, EDT_NOMEM);
+		(void) snprintf(sdp->dtsd_strdata, n, "%s`%ld", dmp->dm_name,
+		    dret->dn_type);
+		if (dmp->dm_pid != 0) {
+			(void) snprintf(sdp->dtsd_strdata, n, "%s`%d`%ld",
+			    dmp->dm_name, ctflib, dret->dn_type);
+		} else {
+			(void) snprintf(sdp->dtsd_strdata, n, "%s`%ld",
+			    dmp->dm_name, dret->dn_type);
+		}
+	}
+
 	ap->dtad_difo = dt_as(yypcb);
 	ap->dtad_kind = DTRACEACT_DIFEXPR;
 }
@@ -686,7 +743,8 @@ dt_action_tracemem(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp)
 	dtrace_actdesc_t *ap = dt_stmt_action(dtp, sdp);
 
 	dt_node_t *addr = dnp->dn_args;
-	dt_node_t *size = dnp->dn_args->dn_list;
+	dt_node_t *max = dnp->dn_args->dn_list;
+	dt_node_t *size;
 
 	char n[DT_TYPE_NAMELEN];
 
@@ -698,17 +756,37 @@ dt_action_tracemem(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp)
 		    dt_node_type_name(addr, n, sizeof (n)));
 	}
 
-	if (dt_node_is_posconst(size) == 0) {
-		dnerror(size, D_TRACEMEM_SIZE, "tracemem( ) argument #2 must "
+	if (dt_node_is_posconst(max) == 0) {
+		dnerror(max, D_TRACEMEM_SIZE, "tracemem( ) argument #2 must "
 		    "be a non-zero positive integral constant expression\n");
 	}
 
+	if ((size = max->dn_list) != NULL) {
+		if (size->dn_list != NULL) {
+			dnerror(size, D_TRACEMEM_ARGS, "tracemem ( ) prototype "
+			    "mismatch: expected at most 3 args\n");
+		}
+
+		if (!dt_node_is_scalar(size)) {
+			dnerror(size, D_TRACEMEM_DYNSIZE, "tracemem ( ) "
+			    "dynamic size (argument #3) must be of "
+			    "scalar type\n");
+		}
+
+		dt_cg(yypcb, size);
+		ap->dtad_difo = dt_as(yypcb);
+		ap->dtad_difo->dtdo_rtype = dt_int_rtype;
+		ap->dtad_kind = DTRACEACT_TRACEMEM_DYNSIZE;
+
+		ap = dt_stmt_action(dtp, sdp);
+	}
+
 	dt_cg(yypcb, addr);
 	ap->dtad_difo = dt_as(yypcb);
-	ap->dtad_kind = DTRACEACT_DIFEXPR;
+	ap->dtad_kind = DTRACEACT_TRACEMEM;
 
 	ap->dtad_difo->dtdo_rtype.dtdt_flags |= DIF_TF_BYREF;
-	ap->dtad_difo->dtdo_rtype.dtdt_size = size->dn_value;
+	ap->dtad_difo->dtdo_rtype.dtdt_size = max->dn_value;
 }
 
 static void
@@ -1079,6 +1157,9 @@ dt_compile_fun(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp)
 	case DT_ACT_PANIC:
 		dt_action_panic(dtp, dnp->dn_expr, sdp);
 		break;
+	case DT_ACT_PRINT:
+		dt_action_trace(dtp, dnp->dn_expr, sdp);
+		break;
 	case DT_ACT_PRINTA:
 		dt_action_printa(dtp, dnp->dn_expr, sdp);
 		break;
@@ -1372,6 +1453,146 @@ dt_compile_agg(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp)
 		argmax = 5;
 	}
 
+	if (fid->di_id == DTRACEAGG_LLQUANTIZE) {
+		/*
+		 * For log/linear quantizations, we have between one and five
+		 * arguments in addition to the expression:
+		 *
+		 *    arg1 => Factor
+		 *    arg2 => Low magnitude
+		 *    arg3 => High magnitude
+		 *    arg4 => Number of steps per magnitude
+		 *    arg5 => Quantization increment value (defaults to 1)
+		 */
+		dt_node_t *llarg = dnp->dn_aggfun->dn_args->dn_list;
+		uint64_t oarg, order, v;
+		dt_idsig_t *isp;
+		int i;
+
+		struct {
+			char *str;		/* string identifier */
+			int badtype;		/* error on bad type */
+			int badval;		/* error on bad value */
+			int mismatch;		/* error on bad match */
+			int shift;		/* shift value */
+			uint16_t value;		/* value itself */
+		} args[] = {
+			{ "factor", D_LLQUANT_FACTORTYPE,
+			    D_LLQUANT_FACTORVAL, D_LLQUANT_FACTORMATCH,
+			    DTRACE_LLQUANTIZE_FACTORSHIFT },
+			{ "low magnitude", D_LLQUANT_LOWTYPE,
+			    D_LLQUANT_LOWVAL, D_LLQUANT_LOWMATCH,
+			    DTRACE_LLQUANTIZE_LOWSHIFT },
+			{ "high magnitude", D_LLQUANT_HIGHTYPE,
+			    D_LLQUANT_HIGHVAL, D_LLQUANT_HIGHMATCH,
+			    DTRACE_LLQUANTIZE_HIGHSHIFT },
+			{ "linear steps per magnitude", D_LLQUANT_NSTEPTYPE,
+			    D_LLQUANT_NSTEPVAL, D_LLQUANT_NSTEPMATCH,
+			    DTRACE_LLQUANTIZE_NSTEPSHIFT },
+			{ NULL }
+		};
+
+		assert(arg == 0);
+
+		for (i = 0; args[i].str != NULL; i++) {
+			if (llarg->dn_kind != DT_NODE_INT) {
+				dnerror(llarg, args[i].badtype, "llquantize( ) "
+				    "argument #%d (%s) must be an "
+				    "integer constant\n", i + 1, args[i].str);
+			}
+
+			if ((uint64_t)llarg->dn_value > UINT16_MAX) {
+				dnerror(llarg, args[i].badval, "llquantize( ) "
+				    "argument #%d (%s) must be an unsigned "
+				    "16-bit quantity\n", i + 1, args[i].str);
+			}
+
+			args[i].value = (uint16_t)llarg->dn_value;
+
+			assert(!(arg & ((uint64_t)UINT16_MAX <<
+			    args[i].shift)));
+			arg |= ((uint64_t)args[i].value << args[i].shift);
+			llarg = llarg->dn_list;
+		}
+
+		assert(arg != 0);
+
+		if (args[0].value < 2) {
+			dnerror(dnp, D_LLQUANT_FACTORSMALL, "llquantize( ) "
+			    "factor (argument #1) must be two or more\n");
+		}
+
+		if (args[1].value >= args[2].value) {
+			dnerror(dnp, D_LLQUANT_MAGRANGE, "llquantize( ) "
+			    "high magnitude (argument #3) must be greater "
+			    "than low magnitude (argument #2)\n");
+		}
+
+		if (args[3].value < args[0].value) {
+			dnerror(dnp, D_LLQUANT_FACTORNSTEPS, "llquantize( ) "
+			    "factor (argument #1) must be less than or "
+			    "equal to the number of linear steps per "
+			    "magnitude (argument #4)\n");
+		}
+
+		for (v = args[0].value; v < args[3].value; v *= args[0].value)
+			continue;
+
+		if ((args[3].value % args[0].value) || (v % args[3].value)) {
+			dnerror(dnp, D_LLQUANT_FACTOREVEN, "llquantize( ) "
+			    "factor (argument #1) must evenly divide the "
+			    "number of steps per magnitude (argument #4), "
+			    "and the number of steps per magnitude must evenly "
+			    "divide a power of the factor\n");
+		}
+
+		for (i = 0, order = 1; i < args[2].value; i++) {
+			if (order * args[0].value > order) {
+				order *= args[0].value;
+				continue;
+			}
+
+			dnerror(dnp, D_LLQUANT_MAGTOOBIG, "llquantize( ) "
+			    "factor (%d) raised to power of high magnitude "
+			    "(%d) overflows 64-bits\n", args[0].value,
+			    args[2].value);
+		}
+
+		isp = (dt_idsig_t *)aid->di_data;
+
+		if (isp->dis_auxinfo == 0) {
+			/*
+			 * This is the first time we've seen an llquantize()
+			 * for this aggregation; we'll store our argument
+			 * as the auxiliary signature information.
+			 */
+			isp->dis_auxinfo = arg;
+		} else if ((oarg = isp->dis_auxinfo) != arg) {
+			/*
+			 * If we have seen this llquantize() before and the
+			 * argument doesn't match the original argument, pick
+			 * the original argument apart to concisely report the
+			 * mismatch.
+			 */
+			int expected = 0, found = 0;
+
+			for (i = 0; expected == found; i++) {
+				assert(args[i].str != NULL);
+
+				expected = (oarg >> args[i].shift) & UINT16_MAX;
+				found = (arg >> args[i].shift) & UINT16_MAX;
+			}
+
+			dnerror(dnp, args[i - 1].mismatch, "llquantize( ) "
+			    "%s (argument #%d) doesn't match previous "
+			    "declaration: expected %d, found %d\n",
+			    args[i - 1].str, i, expected, found);
+		}
+
+		incr = llarg;
+		argmax = 6;
+	}
+
 	if (fid->di_id == DTRACEAGG_QUANTIZE) {
 		incr = dnp->dn_aggfun->dn_args->dn_list;
 		argmax = 2;
@@ -1526,7 +1747,7 @@ dt_setcontext(dtrace_hdl_t *dtp, dtrace_probedesc_t *pdp)
 	 * On an error, dt_pid_create_probes() will set the error message
 	 * and tag -- we just have to longjmp() out of here.
 	 */
-	if (isdigit(pdp->dtpd_provider[strlen(pdp->dtpd_provider) - 1]) &&
+	if (isdigit((unsigned char)pdp->dtpd_provider[strlen(pdp->dtpd_provider) - 1]) &&
 	    ((pvp = dt_provider_lookup(dtp, pdp->dtpd_provider)) == NULL ||
 	    pvp->pv_desc.dtvd_priv.dtpp_flags & DTRACE_PRIV_PROC) &&
 	    dt_pid_create_probes(pdp, dtp, yypcb) != 0) {
@@ -1667,7 +1888,7 @@ dt_preproc(dtrace_hdl_t *dtp, FILE *ifp)
 	char **argv = malloc(sizeof (char *) * (argc + 5));
 	FILE *ofp = tmpfile();
 
-#if defined(sun)
+#ifdef illumos
 	char ipath[20], opath[20]; /* big enough for /dev/fd/ + INT_MAX + \0 */
 #endif
 	char verdef[32]; /* big enough for -D__SUNW_D_VERSION=0x%08x + \0 */
@@ -1677,7 +1898,7 @@ dt_preproc(dtrace_hdl_t *dtp, FILE *ifp)
 
 	int wstat, estat;
 	pid_t pid;
-#if defined(sun)
+#ifdef illumos
 	off64_t off;
 #else
 	off_t off = 0;
@@ -1708,7 +1929,7 @@ dt_preproc(dtrace_hdl_t *dtp, FILE *ifp)
 		(void) fseeko64(ifp, off, SEEK_SET);
 	}
 
-#if defined(sun)
+#ifdef illumos
 	(void) snprintf(ipath, sizeof (ipath), "/dev/fd/%d", fileno(ifp));
 	(void) snprintf(opath, sizeof (opath), "/dev/fd/%d", fileno(ofp));
 #endif
@@ -1719,7 +1940,7 @@ dt_preproc(dtrace_hdl_t *dtp, FILE *ifp)
 	    "-D__SUNW_D_VERSION=0x%08x", dtp->dt_vmax);
 	argv[argc++] = verdef;
 
-#if defined(sun)
+#ifdef illumos
 	switch (dtp->dt_stdcmode) {
 	case DT_STDC_XA:
 	case DT_STDC_XT:
@@ -1761,7 +1982,7 @@ dt_preproc(dtrace_hdl_t *dtp, FILE *ifp)
 	}
 
 	if (pid == 0) {
-#if !defined(sun)
+#ifndef illumos
 		if (isatty(fileno(ifp)) == 0)
 			lseek(fileno(ifp), off, SEEK_SET);
 		dup2(fileno(ifp), 0);
@@ -2012,25 +2233,23 @@ dt_lib_depend_free(dtrace_hdl_t *dtp)
 	}
 }
 
-
 /*
- * Open all of the .d library files found in the specified directory and
- * compile each one in topological order to cache its inlines and translators,
- * etc.  We silently ignore any missing directories and other files found
- * therein. We only fail (and thereby fail dt_load_libs()) if we fail to
- * compile a library and the error is something other than #pragma D depends_on.
- * Dependency errors are silently ignored to permit a library directory to
- * contain libraries which may not be accessible depending on our privileges.
+ * Open all the .d library files found in the specified directory and
+ * compile each one of them.  We silently ignore any missing directories and
+ * other files found therein.  We only fail (and thereby fail dt_load_libs()) if
+ * we fail to compile a library and the error is something other than #pragma D
+ * depends_on.  Dependency errors are silently ignored to permit a library
+ * directory to contain libraries which may not be accessible depending on our
+ * privileges.
  */
 static int
 dt_load_libs_dir(dtrace_hdl_t *dtp, const char *path)
 {
 	struct dirent *dp;
-	const char *p;
+	const char *p, *end;
 	DIR *dirp;
 
 	char fname[PATH_MAX];
-	dtrace_prog_t *pgp;
 	FILE *fp;
 	void *rv;
 	dt_lib_depend_t *dld;
@@ -2054,9 +2273,31 @@ dt_load_libs_dir(dtrace_hdl_t *dtp, const char *path)
 			continue;
 		}
 
+		/*
+		 * Skip files whose name match an already processed library
+		 */
+		for (dld = dt_list_next(&dtp->dt_lib_dep); dld != NULL;
+		    dld = dt_list_next(dld)) {
+			end = strrchr(dld->dtld_library, '/');
+			/* dt_lib_depend_add ensures this */
+			assert(end != NULL);
+			if (strcmp(end + 1, dp->d_name) == 0)
+				break;
+		}
+
+		if (dld != NULL) {
+			dt_dprintf("skipping library %s, already processed "
+			    "library with the same name: %s", dp->d_name,
+			    dld->dtld_library);
+			(void) fclose(fp);
+			continue;
+		}
+
 		dtp->dt_filetag = fname;
-		if (dt_lib_depend_add(dtp, &dtp->dt_lib_dep, fname) != 0)
-			goto err;
+		if (dt_lib_depend_add(dtp, &dtp->dt_lib_dep, fname) != 0) {
+			(void) fclose(fp);
+			return (-1); /* preserve dt_errno */
+		}
 
 		rv = dt_compile(dtp, DT_CTX_DPROG,
 		    DTRACE_PROBESPEC_NAME, NULL,
@@ -2064,8 +2305,10 @@ dt_load_libs_dir(dtrace_hdl_t *dtp, const char *path)
 
 		if (rv != NULL && dtp->dt_errno &&
 		    (dtp->dt_errno != EDT_COMPILER ||
-		    dtp->dt_errtag != dt_errtag(D_PRAGMA_DEPEND)))
-			goto err;
+		    dtp->dt_errtag != dt_errtag(D_PRAGMA_DEPEND))) {
+			(void) fclose(fp);
+			return (-1); /* preserve dt_errno */
+		}
 
 		if (dtp->dt_errno)
 			dt_dprintf("error parsing library %s: %s\n",
@@ -2076,6 +2319,27 @@ dt_load_libs_dir(dtrace_hdl_t *dtp, const char *path)
 	}
 
 	(void) closedir(dirp);
+
+	return (0);
+}
+
+/*
+ * Perform a topological sorting of all the libraries found across the entire
+ * dt_lib_path.  Once sorted, compile each one in topological order to cache its
+ * inlines and translators, etc.  We silently ignore any missing directories and
+ * other files found therein. We only fail (and thereby fail dt_load_libs()) if
+ * we fail to compile a library and the error is something other than #pragma D
+ * depends_on.  Dependency errors are silently ignored to permit a library
+ * directory to contain libraries which may not be accessible depending on our
+ * privileges.
+ */
+static int
+dt_load_libs_sort(dtrace_hdl_t *dtp)
+{
+	dtrace_prog_t *pgp;
+	FILE *fp;
+	dt_lib_depend_t *dld;
+
 	/*
 	 * Finish building the graph containing the library dependencies
 	 * and perform a topological sort to generate an ordered list
@@ -2136,7 +2400,14 @@ dt_load_libs(dtrace_hdl_t *dtp)
 
 	dtp->dt_cflags |= DTRACE_C_NOLIBS;
 
-	for (dirp = dt_list_next(&dtp->dt_lib_path);
+	/*
+	 * /usr/lib/dtrace is always at the head of the list. The rest of the
+	 * list is specified in the precedence order the user requested. Process
+	 * everything other than the head first. DTRACE_C_NOLIBS has already
+	 * been spcified so dt_vopen will ensure that there is always one entry
+	 * in dt_lib_path.
+	 */
+	for (dirp = dt_list_next(dt_list_next(&dtp->dt_lib_path));
 	    dirp != NULL; dirp = dt_list_next(dirp)) {
 		if (dt_load_libs_dir(dtp, dirp->dir_path) != 0) {
 			dtp->dt_cflags &= ~DTRACE_C_NOLIBS;
@@ -2144,6 +2415,16 @@ dt_load_libs(dtrace_hdl_t *dtp)
 		}
 	}
 
+	/* Handle /usr/lib/dtrace */
+	dirp = dt_list_next(&dtp->dt_lib_path);
+	if (dt_load_libs_dir(dtp, dirp->dir_path) != 0) {
+		dtp->dt_cflags &= ~DTRACE_C_NOLIBS;
+		return (-1); /* errno is set for us */
+	}
+
+	if (dt_load_libs_sort(dtp) < 0)
+		return (-1); /* errno is set for us */
+
 	return (0);
 }
 
@@ -2154,7 +2435,7 @@ dt_compile(dtrace_hdl_t *dtp, int context, dtrace_probespec_t pspec, void *arg,
 	dt_node_t *dnp;
 	dt_decl_t *ddp;
 	dt_pcb_t pcb;
-	void *rv;
+	void *rv = NULL;	// XXX: gcc
 	int err;
 
 	if ((fp == NULL && s == NULL) || (cflags & ~DTRACE_C_MASK) != 0) {
@@ -2165,11 +2446,11 @@ dt_compile(dtrace_hdl_t *dtp, int context, dtrace_probespec_t pspec, void *arg,
 	if (dt_list_next(&dtp->dt_lib_path) != NULL && dt_load_libs(dtp) != 0)
 		return (NULL); /* errno is set for us */
 
-	(void) ctf_discard(dtp->dt_cdefs->dm_ctfp);
-	(void) ctf_discard(dtp->dt_ddefs->dm_ctfp);
+	if (dtp->dt_globals->dh_nelems != 0)
+		(void) dt_idhash_iter(dtp->dt_globals, dt_idreset, NULL);
 
-	(void) dt_idhash_iter(dtp->dt_globals, dt_idreset, NULL);
-	(void) dt_idhash_iter(dtp->dt_tls, dt_idreset, NULL);
+	if (dtp->dt_tls->dh_nelems != 0)
+		(void) dt_idhash_iter(dtp->dt_tls, dt_idreset, NULL);
 
 	if (fp && (cflags & DTRACE_C_CPP) && (fp = dt_preproc(dtp, fp)) == NULL)
 		return (NULL); /* errno is set for us */
@@ -2295,7 +2576,8 @@ dt_compile(dtrace_hdl_t *dtp, int context, dtrace_probespec_t pspec, void *arg,
 	}
 
 out:
-	if (context != DT_CTX_DTYPE && DT_TREEDUMP_PASS(dtp, 3))
+	if (context != DT_CTX_DTYPE && yypcb->pcb_root != NULL &&
+	    DT_TREEDUMP_PASS(dtp, 3))
 		dt_node_printr(yypcb->pcb_root, stderr, 0);
 
 	if (dtp->dt_cdefs_fd != -1 && (ftruncate64(dtp->dt_cdefs_fd, 0) == -1 ||
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_cg.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_cg.c
index a33cccd..b76d589 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_cg.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_cg.c
@@ -19,12 +19,15 @@
  *
  * CDDL HEADER END
  */
+
 /*
  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
 
 #include <sys/types.h>
 #include <sys/sysmacros.h>
@@ -193,9 +196,6 @@ dt_cg_ptrsize(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp,
 	ssize_t size;
 	int sreg;
 
-	if ((sreg = dt_regset_alloc(drp)) == -1)
-		longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
-
 	type = ctf_type_resolve(ctfp, dnp->dn_type);
 	kind = ctf_type_kind(ctfp, type);
 	assert(kind == CTF_K_POINTER || kind == CTF_K_ARRAY);
@@ -212,6 +212,7 @@ dt_cg_ptrsize(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp,
 	if ((size = ctf_type_size(ctfp, type)) == 1)
 		return; /* multiply or divide by one can be omitted */
 
+	sreg = dt_regset_alloc(drp);
 	dt_cg_setx(dlp, sreg, size);
 	instr = DIF_INSTR_FMT(op, dreg, sreg, dreg);
 	dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
@@ -251,9 +252,7 @@ dt_cg_field_get(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp,
 
 	assert(dnp->dn_op == DT_TOK_PTR || dnp->dn_op == DT_TOK_DOT);
 	r1 = dnp->dn_left->dn_reg;
-
-	if ((r2 = dt_regset_alloc(drp)) == -1)
-		longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
+	r2 = dt_regset_alloc(drp);
 
 	/*
 	 * On little-endian architectures, ctm_offset counts from the right so
@@ -356,10 +355,9 @@ dt_cg_field_set(dt_node_t *src, dt_irlist_t *dlp,
 		    "bits %u\n", m.ctm_offset, m.ctm_type, e.cte_bits);
 	}
 
-	if ((r1 = dt_regset_alloc(drp)) == -1 ||
-	    (r2 = dt_regset_alloc(drp)) == -1 ||
-	    (r3 = dt_regset_alloc(drp)) == -1)
-		longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
+	r1 = dt_regset_alloc(drp);
+	r2 = dt_regset_alloc(drp);
+	r3 = dt_regset_alloc(drp);
 
 	/*
 	 * Compute shifts and masks.  We need to compute "shift" as the amount
@@ -423,8 +421,7 @@ dt_cg_store(dt_node_t *src, dt_irlist_t *dlp, dt_regset_t *drp, dt_node_t *dst)
 		size = dt_node_type_size(src);
 
 	if (src->dn_flags & DT_NF_REF) {
-		if ((reg = dt_regset_alloc(drp)) == -1)
-			longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
+		reg = dt_regset_alloc(drp);
 		dt_cg_setx(dlp, reg, size);
 		instr = DIF_INSTR_COPYS(src->dn_reg, reg, dst->dn_reg);
 		dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
@@ -449,6 +446,7 @@ dt_cg_store(dt_node_t *src, dt_irlist_t *dlp, dt_regset_t *drp, dt_node_t *dst)
 			instr = DIF_INSTR_STORE(DIF_OP_STX, reg, dst->dn_reg);
 			break;
 		default:
+			instr = 0;
 			xyerror(D_UNKNOWN, "internal error -- cg cannot store "
 			    "size %lu when passed by value\n", (ulong_t)size);
 		}
@@ -474,30 +472,58 @@ dt_cg_typecast(const dt_node_t *src, const dt_node_t *dst,
 	size_t dstsize = dt_node_type_size(dst);
 
 	dif_instr_t instr;
-	int reg, n;
+	int rg;
 
-	if (dt_node_is_scalar(dst) && (dstsize < srcsize ||
-	    (src->dn_flags & DT_NF_SIGNED) ^ (dst->dn_flags & DT_NF_SIGNED))) {
-		if ((reg = dt_regset_alloc(drp)) == -1)
-			longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
+	if (!dt_node_is_scalar(dst))
+		return; /* not a scalar */
+	if (dstsize == srcsize &&
+	    ((src->dn_flags ^ dst->dn_flags) & DT_NF_SIGNED) != 0)
+		return; /* not narrowing or changing signed-ness */
+	if (dstsize > srcsize && (src->dn_flags & DT_NF_SIGNED) == 0)
+		return; /* nothing to do in this case */
 
-		if (dstsize < srcsize)
-			n = sizeof (uint64_t) * NBBY - dstsize * NBBY;
-		else
-			n = sizeof (uint64_t) * NBBY - srcsize * NBBY;
+	rg = dt_regset_alloc(drp);
+
+	if (dstsize > srcsize) {
+		int n = sizeof (uint64_t) * NBBY - srcsize * NBBY;
+		int s = (dstsize - srcsize) * NBBY;
 
-		dt_cg_setx(dlp, reg, n);
+		dt_cg_setx(dlp, rg, n);
 
-		instr = DIF_INSTR_FMT(DIF_OP_SLL,
-		    src->dn_reg, reg, dst->dn_reg);
+		instr = DIF_INSTR_FMT(DIF_OP_SLL, src->dn_reg, rg, dst->dn_reg);
 		dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
 
-		instr = DIF_INSTR_FMT((dst->dn_flags & DT_NF_SIGNED) ?
-		    DIF_OP_SRA : DIF_OP_SRL, dst->dn_reg, reg, dst->dn_reg);
+		if ((dst->dn_flags & DT_NF_SIGNED) || n == s) {
+			instr = DIF_INSTR_FMT(DIF_OP_SRA,
+			    dst->dn_reg, rg, dst->dn_reg);
+			dt_irlist_append(dlp,
+			    dt_cg_node_alloc(DT_LBL_NONE, instr));
+		} else {
+			dt_cg_setx(dlp, rg, s);
+			instr = DIF_INSTR_FMT(DIF_OP_SRA,
+			    dst->dn_reg, rg, dst->dn_reg);
+			dt_irlist_append(dlp,
+			    dt_cg_node_alloc(DT_LBL_NONE, instr));
+			dt_cg_setx(dlp, rg, n - s);
+			instr = DIF_INSTR_FMT(DIF_OP_SRL,
+			    dst->dn_reg, rg, dst->dn_reg);
+			dt_irlist_append(dlp,
+			    dt_cg_node_alloc(DT_LBL_NONE, instr));
+		}
+	} else if (dstsize != sizeof (uint64_t)) {
+		int n = sizeof (uint64_t) * NBBY - dstsize * NBBY;
+
+		dt_cg_setx(dlp, rg, n);
 
+		instr = DIF_INSTR_FMT(DIF_OP_SLL, src->dn_reg, rg, dst->dn_reg);
+		dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
+
+		instr = DIF_INSTR_FMT((dst->dn_flags & DT_NF_SIGNED) ?
+		    DIF_OP_SRA : DIF_OP_SRL, dst->dn_reg, rg, dst->dn_reg);
 		dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
-		dt_regset_free(drp, reg);
 	}
+
+	dt_regset_free(drp, rg);
 }
 
 /*
@@ -523,8 +549,7 @@ dt_cg_arglist(dt_ident_t *idp, dt_node_t *args,
 	for (dnp = args; dnp != NULL; dnp = dnp->dn_list)
 		dt_cg_node(dnp, dlp, drp);
 
-	dt_irlist_append(dlp,
-	    dt_cg_node_alloc(DT_LBL_NONE, DIF_INSTR_FLUSHTS));
+	dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, DIF_INSTR_FLUSHTS));
 
 	for (dnp = args; dnp != NULL; dnp = dnp->dn_list, i++) {
 		dtrace_diftype_t t;
@@ -538,17 +563,18 @@ dt_cg_arglist(dt_ident_t *idp, dt_node_t *args,
 		dt_cg_typecast(dnp, &isp->dis_args[i], dlp, drp);
 		isp->dis_args[i].dn_reg = -1;
 
-		if (t.dtdt_flags & DIF_TF_BYREF)
+		if (t.dtdt_flags & DIF_TF_BYREF) {
 			op = DIF_OP_PUSHTR;
-		else
+			if (t.dtdt_size != 0) {
+				reg = dt_regset_alloc(drp);
+				dt_cg_setx(dlp, reg, t.dtdt_size);
+			} else {
+				reg = DIF_REG_R0;
+			}
+		} else {
 			op = DIF_OP_PUSHTV;
-
-		if (t.dtdt_size != 0) {
-			if ((reg = dt_regset_alloc(drp)) == -1)
-				longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
-			dt_cg_setx(dlp, reg, t.dtdt_size);
-		} else
 			reg = DIF_REG_R0;
+		}
 
 		instr = DIF_INSTR_PUSHTS(op, t.dtdt_kind, reg, dnp->dn_reg);
 		dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
@@ -629,9 +655,7 @@ dt_cg_prearith_op(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp, uint_t op)
 	dt_cg_node(dnp->dn_child, dlp, drp);
 	dnp->dn_reg = dnp->dn_child->dn_reg;
 
-	if ((reg = dt_regset_alloc(drp)) == -1)
-		longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
-
+	reg = dt_regset_alloc(drp);
 	dt_cg_setx(dlp, reg, size);
 
 	instr = DIF_INSTR_FMT(op, dnp->dn_reg, reg, dnp->dn_reg);
@@ -688,9 +712,7 @@ dt_cg_postarith_op(dt_node_t *dnp, dt_irlist_t *dlp,
 	dt_cg_node(dnp->dn_child, dlp, drp);
 	dnp->dn_reg = dnp->dn_child->dn_reg;
 
-	if ((nreg = dt_regset_alloc(drp)) == -1)
-		longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
-
+	nreg = dt_regset_alloc(drp);
 	dt_cg_setx(dlp, nreg, size);
 	instr = DIF_INSTR_FMT(op, dnp->dn_reg, nreg, nreg);
 	dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
@@ -1008,9 +1030,7 @@ dt_cg_asgn_op(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 		 * set it to the size of our data structure, and then replace
 		 * it with the result of an allocs of the specified size.
 		 */
-		if ((r1 = dt_regset_alloc(drp)) == -1)
-			longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
-
+		r1 = dt_regset_alloc(drp);
 		dt_cg_setx(dlp, r1,
 		    ctf_type_size(dxp->dx_dst_ctfp, dxp->dx_dst_base));
 
@@ -1054,8 +1074,7 @@ dt_cg_asgn_op(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 			 * and add r1 to it before storing the result.
 			 */
 			if (ctm.ctm_offset != 0) {
-				if ((r2 = dt_regset_alloc(drp)) == -1)
-					longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
+				r2 = dt_regset_alloc(drp);
 
 				/*
 				 * Add the member offset rounded down to the
@@ -1142,8 +1161,7 @@ dt_cg_assoc_op(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 
 	dt_cg_arglist(dnp->dn_ident, dnp->dn_args, dlp, drp);
 
-	if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
-		longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
+	dnp->dn_reg = dt_regset_alloc(drp);
 
 	if (dnp->dn_ident->di_flags & DT_IDFLG_TLS)
 		op = DIF_OP_LDTAA;
@@ -1273,9 +1291,7 @@ dt_cg_array_op(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 	if ((size = dt_node_type_size(dnp)) == sizeof (uint64_t))
 		return;
 
-	if ((reg = dt_regset_alloc(drp)) == -1)
-		longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
-
+	reg = dt_regset_alloc(drp);
 	assert(size < sizeof (uint64_t));
 	n = sizeof (uint64_t) * NBBY - size * NBBY;
 
@@ -1372,6 +1388,162 @@ dt_cg_func_typeref(dtrace_hdl_t *dtp, dt_node_t *dnp)
 	typs->dn_value = ctf_type_size(dtt.dtt_ctfp, dtt.dtt_type);
 }
 
+typedef struct dt_xlmemb {
+	dt_ident_t *dtxl_idp;		/* translated ident */
+	dt_irlist_t *dtxl_dlp;		/* instruction list */
+	dt_regset_t *dtxl_drp;		/* register set */
+	int dtxl_sreg;			/* location of the translation input */
+	int dtxl_dreg;			/* location of our allocated buffer */
+} dt_xlmemb_t;
+
+/*ARGSUSED*/
+static int
+dt_cg_xlate_member(const char *name, ctf_id_t type, ulong_t off, void *arg)
+{
+	dt_xlmemb_t *dx = arg;
+	dt_ident_t *idp = dx->dtxl_idp;
+	dt_irlist_t *dlp = dx->dtxl_dlp;
+	dt_regset_t *drp = dx->dtxl_drp;
+
+	dt_node_t *mnp;
+	dt_xlator_t *dxp;
+
+	int reg, treg;
+	uint32_t instr;
+	size_t size;
+
+	/* Generate code for the translation. */
+	dxp = idp->di_data;
+	mnp = dt_xlator_member(dxp, name);
+
+	/* If there's no translator for the given member, skip it. */
+	if (mnp == NULL)
+		return (0);
+
+	dxp->dx_ident->di_flags |= DT_IDFLG_CGREG;
+	dxp->dx_ident->di_id = dx->dtxl_sreg;
+
+	dt_cg_node(mnp->dn_membexpr, dlp, drp);
+
+	dxp->dx_ident->di_flags &= ~DT_IDFLG_CGREG;
+	dxp->dx_ident->di_id = 0;
+
+	treg = mnp->dn_membexpr->dn_reg;
+
+	/* Compute the offset into our buffer and store the result there. */
+	reg = dt_regset_alloc(drp);
+
+	dt_cg_setx(dlp, reg, off / NBBY);
+	instr = DIF_INSTR_FMT(DIF_OP_ADD, dx->dtxl_dreg, reg, reg);
+	dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
+
+	size = ctf_type_size(mnp->dn_membexpr->dn_ctfp,
+	    mnp->dn_membexpr->dn_type);
+	if (dt_node_is_scalar(mnp->dn_membexpr)) {
+		/*
+		 * Copying scalars is simple.
+		 */
+		switch (size) {
+		case 1:
+			instr = DIF_INSTR_STORE(DIF_OP_STB, treg, reg);
+			break;
+		case 2:
+			instr = DIF_INSTR_STORE(DIF_OP_STH, treg, reg);
+			break;
+		case 4:
+			instr = DIF_INSTR_STORE(DIF_OP_STW, treg, reg);
+			break;
+		case 8:
+			instr = DIF_INSTR_STORE(DIF_OP_STX, treg, reg);
+			break;
+		default:
+			xyerror(D_UNKNOWN, "internal error -- unexpected "
+			    "size: %lu\n", (ulong_t)size);
+		}
+
+		dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
+
+	} else if (dt_node_is_string(mnp->dn_membexpr)) {
+		int szreg;
+
+		/*
+		 * Use the copys instruction for strings.
+		 */
+		szreg = dt_regset_alloc(drp);
+		dt_cg_setx(dlp, szreg, size);
+		instr = DIF_INSTR_COPYS(treg, szreg, reg);
+		dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
+		dt_regset_free(drp, szreg);
+	} else {
+		int szreg;
+
+		/*
+		 * If it's anything else then we'll just bcopy it.
+		 */
+		szreg = dt_regset_alloc(drp);
+		dt_cg_setx(dlp, szreg, size);
+		dt_irlist_append(dlp,
+		    dt_cg_node_alloc(DT_LBL_NONE, DIF_INSTR_FLUSHTS));
+		instr = DIF_INSTR_PUSHTS(DIF_OP_PUSHTV, DIF_TYPE_CTF,
+		    DIF_REG_R0, treg);
+		dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
+		instr = DIF_INSTR_PUSHTS(DIF_OP_PUSHTV, DIF_TYPE_CTF,
+		    DIF_REG_R0, reg);
+		dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
+		instr = DIF_INSTR_PUSHTS(DIF_OP_PUSHTV, DIF_TYPE_CTF,
+		    DIF_REG_R0, szreg);
+		dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
+		instr = DIF_INSTR_CALL(DIF_SUBR_BCOPY, szreg);
+		dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
+		dt_regset_free(drp, szreg);
+	}
+
+	dt_regset_free(drp, reg);
+	dt_regset_free(drp, treg);
+
+	return (0);
+}
+
+/*
+ * If we're expanding a translated type, we create an appropriately sized
+ * buffer with alloca() and then translate each member into it.
+ */
+static int
+dt_cg_xlate_expand(dt_node_t *dnp, dt_ident_t *idp, dt_irlist_t *dlp,
+    dt_regset_t *drp)
+{
+	dt_xlmemb_t dlm;
+	uint32_t instr;
+	int dreg;
+	size_t size;
+
+	dreg = dt_regset_alloc(drp);
+	size = ctf_type_size(dnp->dn_ident->di_ctfp, dnp->dn_ident->di_type);
+
+	/* Call alloca() to create the buffer. */
+	dt_cg_setx(dlp, dreg, size);
+
+	dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, DIF_INSTR_FLUSHTS));
+
+	instr = DIF_INSTR_PUSHTS(DIF_OP_PUSHTV, DIF_TYPE_CTF, DIF_REG_R0, dreg);
+	dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
+
+	instr = DIF_INSTR_CALL(DIF_SUBR_ALLOCA, dreg);
+	dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
+
+	/* Generate the translation for each member. */
+	dlm.dtxl_idp = idp;
+	dlm.dtxl_dlp = dlp;
+	dlm.dtxl_drp = drp;
+	dlm.dtxl_sreg = dnp->dn_reg;
+	dlm.dtxl_dreg = dreg;
+	(void) ctf_member_iter(dnp->dn_ident->di_ctfp,
+	    dnp->dn_ident->di_type, dt_cg_xlate_member,
+	    &dlm);
+
+	return (dreg);
+}
+
 static void
 dt_cg_node(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 {
@@ -1384,7 +1556,6 @@ dt_cg_node(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 	dt_ident_t *idp;
 	ssize_t stroff;
 	uint_t op;
-	int reg;
 
 	switch (dnp->dn_op) {
 	case DT_TOK_COMMA:
@@ -1586,7 +1757,16 @@ dt_cg_node(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 		dt_cg_node(dnp->dn_child, dlp, drp);
 		dnp->dn_reg = dnp->dn_child->dn_reg;
 
-		if (!(dnp->dn_flags & DT_NF_REF)) {
+		if (dt_node_is_dynamic(dnp->dn_child)) {
+			int reg;
+			idp = dt_node_resolve(dnp->dn_child, DT_IDENT_XLPTR);
+			assert(idp != NULL);
+			reg = dt_cg_xlate_expand(dnp, idp, dlp, drp);
+
+			dt_regset_free(drp, dnp->dn_child->dn_reg);
+			dnp->dn_reg = reg;
+
+		} else if (!(dnp->dn_flags & DT_NF_REF)) {
 			uint_t ubit = dnp->dn_flags & DT_NF_USERLAND;
 
 			/*
@@ -1622,10 +1802,7 @@ dt_cg_node(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 
 	case DT_TOK_SIZEOF: {
 		size_t size = dt_node_sizeof(dnp->dn_child);
-
-		if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
-			longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
-
+		dnp->dn_reg = dt_regset_alloc(drp);
 		assert(size != 0);
 		dt_cg_setx(dlp, dnp->dn_reg, size);
 		break;
@@ -1650,8 +1827,7 @@ dt_cg_node(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 			assert(dxp->dx_ident->di_flags & DT_IDFLG_CGREG);
 			assert(dxp->dx_ident->di_id != 0);
 
-			if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
-				longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
+			dnp->dn_reg = dt_regset_alloc(drp);
 
 			if (dxp->dx_arg == -1) {
 				instr = DIF_INSTR_MOV(
@@ -1735,8 +1911,9 @@ dt_cg_node(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 		}
 
 		if (m.ctm_offset != 0) {
-			if ((reg = dt_regset_alloc(drp)) == -1)
-				longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
+			int reg;
+
+			reg = dt_regset_alloc(drp);
 
 			/*
 			 * If the offset is not aligned on a byte boundary, it
@@ -1782,8 +1959,7 @@ dt_cg_node(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 		break;
 
 	case DT_TOK_STRING:
-		if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
-			longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
+		dnp->dn_reg = dt_regset_alloc(drp);
 
 		assert(dnp->dn_kind == DT_NODE_STRING);
 		stroff = dt_strtab_insert(yypcb->pcb_strtab, dnp->dn_string);
@@ -1806,8 +1982,7 @@ dt_cg_node(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 		 */
 		if (dnp->dn_kind == DT_NODE_VAR &&
 		    (dnp->dn_ident->di_flags & DT_IDFLG_CGREG)) {
-			if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
-				longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
+			dnp->dn_reg = dt_regset_alloc(drp);
 			instr = DIF_INSTR_MOV(dnp->dn_ident->di_id,
 			    dnp->dn_reg);
 			dt_irlist_append(dlp,
@@ -1848,11 +2023,9 @@ dt_cg_node(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 
 			dt_cg_arglist(dnp->dn_ident, dnp->dn_args, dlp, drp);
 
-			if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
-				longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
-
-			instr = DIF_INSTR_CALL(
-			    dnp->dn_ident->di_id, dnp->dn_reg);
+			dnp->dn_reg = dt_regset_alloc(drp);
+			instr = DIF_INSTR_CALL(dnp->dn_ident->di_id,
+			    dnp->dn_reg);
 
 			dt_irlist_append(dlp,
 			    dt_cg_node_alloc(DT_LBL_NONE, instr));
@@ -1880,8 +2053,7 @@ dt_cg_node(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 				break;
 			}
 
-			if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
-				longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
+			dnp->dn_reg = dt_regset_alloc(drp);
 
 			if (dnp->dn_ident->di_flags & DT_IDFLG_LOCAL)
 				op = DIF_OP_LDLS;
@@ -1911,9 +2083,7 @@ dt_cg_node(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 				    dtrace_errmsg(dtp, dtrace_errno(dtp)));
 			}
 
-			if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
-				longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
-
+			dnp->dn_reg = dt_regset_alloc(drp);
 			dt_cg_xsetx(dlp, dnp->dn_ident,
 			    DT_LBL_NONE, dnp->dn_reg, sym.st_value);
 
@@ -1933,9 +2103,7 @@ dt_cg_node(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 		break;
 
 	case DT_TOK_INT:
-		if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
-			longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
-
+		dnp->dn_reg = dt_regset_alloc(drp);
 		dt_cg_setx(dlp, dnp->dn_reg, dnp->dn_value);
 		break;
 
@@ -1949,7 +2117,8 @@ void
 dt_cg(dt_pcb_t *pcb, dt_node_t *dnp)
 {
 	dif_instr_t instr;
-	dt_xlator_t *dxp;
+	dt_xlator_t *dxp = NULL;	// XXX: gcc
+	dt_ident_t *idp;
 
 	if (pcb->pcb_regs == NULL && (pcb->pcb_regs =
 	    dt_regset_create(pcb->pcb_hdl->dt_conf.dtc_difintregs)) == NULL)
@@ -1976,9 +2145,9 @@ dt_cg(dt_pcb_t *pcb, dt_node_t *dnp)
 	assert(pcb->pcb_dret == NULL);
 	pcb->pcb_dret = dnp;
 
-	if (dt_node_is_dynamic(dnp)) {
+	if (dt_node_resolve(dnp, DT_IDENT_XLPTR) != NULL) {
 		dnerror(dnp, D_CG_DYN, "expression cannot evaluate to result "
-		    "of dynamic type\n");
+		    "of a translated pointer\n");
 	}
 
 	/*
@@ -1994,6 +2163,14 @@ dt_cg(dt_pcb_t *pcb, dt_node_t *dnp)
 	}
 
 	dt_cg_node(dnp, &pcb->pcb_ir, pcb->pcb_regs);
+
+	if ((idp = dt_node_resolve(dnp, DT_IDENT_XLSOU)) != NULL) {
+		int reg = dt_cg_xlate_expand(dnp, idp,
+		    &pcb->pcb_ir, pcb->pcb_regs);
+		dt_regset_free(pcb->pcb_regs, dnp->dn_reg);
+		dnp->dn_reg = reg;
+	}
+
 	instr = DIF_INSTR_RET(dnp->dn_reg);
 	dt_regset_free(pcb->pcb_regs, dnp->dn_reg);
 	dt_irlist_append(&pcb->pcb_ir, dt_cg_node_alloc(DT_LBL_NONE, instr));
@@ -2003,4 +2180,7 @@ dt_cg(dt_pcb_t *pcb, dt_node_t *dnp)
 		dxp->dx_ident->di_id = 0;
 		dxp->dx_ident->di_flags &= ~DT_IDFLG_CGREG;
 	}
+
+	dt_regset_free(pcb->pcb_regs, 0);
+	dt_regset_assert_free(pcb->pcb_regs);
 }
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_consume.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_consume.c
index 942f6e6..dff59f6 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_consume.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_consume.c
@@ -23,6 +23,11 @@
  * Use is subject to license terms.
  */
 
+/*
+ * Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
+
 #include <stdlib.h>
 #include <strings.h>
 #include <errno.h>
@@ -30,10 +35,15 @@
 #include <limits.h>
 #include <assert.h>
 #include <ctype.h>
-#if defined(sun)
+#ifdef illumos
 #include <alloca.h>
 #endif
 #include <dt_impl.h>
+#include <dt_pq.h>
+#include <dt_printf.h>
+#ifndef illumos
+#include <libproc_compat.h>
+#endif
 
 #define	DT_MASK_LO 0x00000000FFFFFFFFULL
 
@@ -50,6 +60,25 @@ dt_fabsl(long double x)
 	return (x);
 }
 
+static int
+dt_ndigits(long long val)
+{
+	int rval = 1;
+	long long cmp = 10;
+
+	if (val < 0) {
+		val = val == INT64_MIN ? INT64_MAX : -val;
+		rval++;
+	}
+
+	while (val > cmp && cmp > 0) {
+		rval++;
+		cmp *= 10;
+	}
+
+	return (rval < 4 ? 4 : rval);
+}
+
 /*
  * 128-bit arithmetic functions needed to support the stddev() aggregating
  * action.
@@ -354,6 +383,9 @@ dt_stddev(uint64_t *data, uint64_t normal)
 	int64_t norm_avg;
 	uint64_t diff[2];
 
+	if (data[0] == 0)
+		return (0);
+
 	/*
 	 * The standard approximation for standard deviation is
 	 * sqrt(average(x**2) - average(x)**2), i.e. the square root
@@ -435,17 +467,8 @@ dt_flowindent(dtrace_hdl_t *dtp, dtrace_probedata_t *data, dtrace_epid_t last,
 		offs += epd->dtepd_size;
 
 		do {
-			if (offs >= buf->dtbd_size) {
-				/*
-				 * We're at the end -- maybe.  If the oldest
-				 * record is non-zero, we need to wrap.
-				 */
-				if (buf->dtbd_oldest != 0) {
-					offs = 0;
-				} else {
-					goto out;
-				}
-			}
+			if (offs >= buf->dtbd_size)
+				goto out;
 
 			next = *(uint32_t *)((uintptr_t)buf->dtbd_data + offs);
 
@@ -476,18 +499,136 @@ out:
 }
 
 static int
-dt_nullprobe()
+dt_nullprobe(void)
 {
 	return (DTRACE_CONSUME_THIS);
 }
 
 static int
-dt_nullrec()
+dt_nullrec(void)
 {
 	return (DTRACE_CONSUME_NEXT);
 }
 
-int
+static void
+dt_quantize_total(dtrace_hdl_t *dtp, int64_t datum, long double *total)
+{
+	long double val = dt_fabsl((long double)datum);
+
+	if (dtp->dt_options[DTRACEOPT_AGGZOOM] == DTRACEOPT_UNSET) {
+		*total += val;
+		return;
+	}
+
+	/*
+	 * If we're zooming in on an aggregation, we want the height of the
+	 * highest value to be approximately 95% of total bar height -- so we
+	 * adjust up by the reciprocal of DTRACE_AGGZOOM_MAX when comparing to
+	 * our highest value.
+	 */
+	val *= 1 / DTRACE_AGGZOOM_MAX;
+
+	if (*total < val)
+		*total = val;
+}
+
+static int
+dt_print_quanthdr(dtrace_hdl_t *dtp, FILE *fp, int width)
+{
+	return (dt_printf(dtp, fp, "\n%*s %41s %-9s\n",
+	    width ? width : 16, width ? "key" : "value",
+	    "------------- Distribution -------------", "count"));
+}
+
+static int
+dt_print_quanthdr_packed(dtrace_hdl_t *dtp, FILE *fp, int width,
+    const dtrace_aggdata_t *aggdata, dtrace_actkind_t action)
+{
+	int min = aggdata->dtada_minbin, max = aggdata->dtada_maxbin;
+	int minwidth, maxwidth, i;
+
+	assert(action == DTRACEAGG_QUANTIZE || action == DTRACEAGG_LQUANTIZE);
+
+	if (action == DTRACEAGG_QUANTIZE) {
+		if (min != 0 && min != DTRACE_QUANTIZE_ZEROBUCKET)
+			min--;
+
+		if (max < DTRACE_QUANTIZE_NBUCKETS - 1)
+			max++;
+
+		minwidth = dt_ndigits(DTRACE_QUANTIZE_BUCKETVAL(min));
+		maxwidth = dt_ndigits(DTRACE_QUANTIZE_BUCKETVAL(max));
+	} else {
+		maxwidth = 8;
+		minwidth = maxwidth - 1;
+		max++;
+	}
+
+	if (dt_printf(dtp, fp, "\n%*s %*s .",
+	    width, width > 0 ? "key" : "", minwidth, "min") < 0)
+		return (-1);
+
+	for (i = min; i <= max; i++) {
+		if (dt_printf(dtp, fp, "-") < 0)
+			return (-1);
+	}
+
+	return (dt_printf(dtp, fp, ". %*s | count\n", -maxwidth, "max"));
+}
+
+/*
+ * We use a subset of the Unicode Block Elements (U+2588 through U+258F,
+ * inclusive) to represent aggregations via UTF-8 -- which are expressed via
+ * 3-byte UTF-8 sequences.
+ */
+#define	DTRACE_AGGUTF8_FULL	0x2588
+#define	DTRACE_AGGUTF8_BASE	0x258f
+#define	DTRACE_AGGUTF8_LEVELS	8
+
+#define	DTRACE_AGGUTF8_BYTE0(val)	(0xe0 | ((val) >> 12))
+#define	DTRACE_AGGUTF8_BYTE1(val)	(0x80 | (((val) >> 6) & 0x3f))
+#define	DTRACE_AGGUTF8_BYTE2(val)	(0x80 | ((val) & 0x3f))
+
+static int
+dt_print_quantline_utf8(dtrace_hdl_t *dtp, FILE *fp, int64_t val,
+    uint64_t normal, long double total)
+{
+	uint_t len = 40, i, whole, partial;
+	long double f = (dt_fabsl((long double)val) * len) / total;
+	const char *spaces = "                                        ";
+
+	whole = (uint_t)f;
+	partial = (uint_t)((f - (long double)(uint_t)f) *
+	    (long double)DTRACE_AGGUTF8_LEVELS);
+
+	if (dt_printf(dtp, fp, "|") < 0)
+		return (-1);
+
+	for (i = 0; i < whole; i++) {
+		if (dt_printf(dtp, fp, "%c%c%c",
+		    DTRACE_AGGUTF8_BYTE0(DTRACE_AGGUTF8_FULL),
+		    DTRACE_AGGUTF8_BYTE1(DTRACE_AGGUTF8_FULL),
+		    DTRACE_AGGUTF8_BYTE2(DTRACE_AGGUTF8_FULL)) < 0)
+			return (-1);
+	}
+
+	if (partial != 0) {
+		partial = DTRACE_AGGUTF8_BASE - (partial - 1);
+
+		if (dt_printf(dtp, fp, "%c%c%c",
+		    DTRACE_AGGUTF8_BYTE0(partial),
+		    DTRACE_AGGUTF8_BYTE1(partial),
+		    DTRACE_AGGUTF8_BYTE2(partial)) < 0)
+			return (-1);
+
+		i++;
+	}
+
+	return (dt_printf(dtp, fp, "%s %-9lld\n", spaces + i,
+	    (long long)val / normal));
+}
+
+static int
 dt_print_quantline(dtrace_hdl_t *dtp, FILE *fp, int64_t val,
     uint64_t normal, long double total, char positives, char negatives)
 {
@@ -505,6 +646,11 @@ dt_print_quantline(dtrace_hdl_t *dtp, FILE *fp, int64_t val,
 
 	if (!negatives) {
 		if (positives) {
+			if (dtp->dt_encoding == DT_ENCODING_UTF8) {
+				return (dt_print_quantline_utf8(dtp, fp, val,
+				    normal, total));
+			}
+
 			f = (dt_fabsl((long double)val) * len) / total;
 			depth = (uint_t)(f + 0.5);
 		} else {
@@ -547,6 +693,73 @@ dt_print_quantline(dtrace_hdl_t *dtp, FILE *fp, int64_t val,
 	}
 }
 
+/*
+ * As with UTF-8 printing of aggregations, we use a subset of the Unicode
+ * Block Elements (U+2581 through U+2588, inclusive) to represent our packed
+ * aggregation.
+ */
+#define	DTRACE_AGGPACK_BASE	0x2581
+#define	DTRACE_AGGPACK_LEVELS	8
+
+static int
+dt_print_packed(dtrace_hdl_t *dtp, FILE *fp,
+    long double datum, long double total)
+{
+	static boolean_t utf8_checked = B_FALSE;
+	static boolean_t utf8;
+	char *ascii = "__xxxxXX";
+	char *neg = "vvvvVV";
+	unsigned int len;
+	long double val;
+
+	if (!utf8_checked) {
+		char *term;
+
+		/*
+		 * We want to determine if we can reasonably emit UTF-8 for our
+		 * packed aggregation.  To do this, we will check for terminals
+		 * that are known to be primitive to emit UTF-8 on these.
+		 */
+		utf8_checked = B_TRUE;
+
+		if (dtp->dt_encoding == DT_ENCODING_ASCII) {
+			utf8 = B_FALSE;
+		} else if (dtp->dt_encoding == DT_ENCODING_UTF8) {
+			utf8 = B_TRUE;
+		} else if ((term = getenv("TERM")) != NULL &&
+		    (strcmp(term, "sun") == 0 ||
+		    strcmp(term, "sun-color") == 0 ||
+		    strcmp(term, "dumb") == 0)) {
+			utf8 = B_FALSE;
+		} else {
+			utf8 = B_TRUE;
+		}
+	}
+
+	if (datum == 0)
+		return (dt_printf(dtp, fp, " "));
+
+	if (datum < 0) {
+		len = strlen(neg);
+		val = dt_fabsl(datum * (len - 1)) / total;
+		return (dt_printf(dtp, fp, "%c", neg[(uint_t)(val + 0.5)]));
+	}
+
+	if (utf8) {
+		int block = DTRACE_AGGPACK_BASE + (unsigned int)(((datum *
+		    (DTRACE_AGGPACK_LEVELS - 1)) / total) + 0.5);
+
+		return (dt_printf(dtp, fp, "%c%c%c",
+		    DTRACE_AGGUTF8_BYTE0(block),
+		    DTRACE_AGGUTF8_BYTE1(block),
+		    DTRACE_AGGUTF8_BYTE2(block)));
+	}
+
+	len = strlen(ascii);
+	val = (datum * (len - 1)) / total;
+	return (dt_printf(dtp, fp, "%c", ascii[(uint_t)(val + 0.5)]));
+}
+
 int
 dt_print_quantize(dtrace_hdl_t *dtp, FILE *fp, const void *addr,
     size_t size, uint64_t normal)
@@ -564,9 +777,9 @@ dt_print_quantize(dtrace_hdl_t *dtp, FILE *fp, const void *addr,
 
 	if (first_bin == DTRACE_QUANTIZE_NBUCKETS - 1) {
 		/*
-		 * There isn't any data.  This is possible if (and only if)
-		 * negative increment values have been used.  In this case,
-		 * we'll print the buckets around 0.
+		 * There isn't any data.  This is possible if the aggregation
+		 * has been clear()'d or if negative increment values have been
+		 * used.  Regardless, we'll print the buckets around 0.
 		 */
 		first_bin = DTRACE_QUANTIZE_ZEROBUCKET - 1;
 		last_bin = DTRACE_QUANTIZE_ZEROBUCKET + 1;
@@ -584,11 +797,10 @@ dt_print_quantize(dtrace_hdl_t *dtp, FILE *fp, const void *addr,
 	for (i = first_bin; i <= last_bin; i++) {
 		positives |= (data[i] > 0);
 		negatives |= (data[i] < 0);
-		total += dt_fabsl((long double)data[i]);
+		dt_quantize_total(dtp, data[i], &total);
 	}
 
-	if (dt_printf(dtp, fp, "\n%16s %41s %-9s\n", "value",
-	    "------------- Distribution -------------", "count") < 0)
+	if (dt_print_quanthdr(dtp, fp, 0) < 0)
 		return (-1);
 
 	for (i = first_bin; i <= last_bin; i++) {
@@ -604,6 +816,48 @@ dt_print_quantize(dtrace_hdl_t *dtp, FILE *fp, const void *addr,
 	return (0);
 }
 
+static int
+dt_print_quantize_packed(dtrace_hdl_t *dtp, FILE *fp, const void *addr,
+    size_t size, const dtrace_aggdata_t *aggdata)
+{
+	const int64_t *data = addr;
+	long double total = 0, count = 0;
+	int min = aggdata->dtada_minbin, max = aggdata->dtada_maxbin, i;
+	int64_t minval, maxval;
+
+	if (size != DTRACE_QUANTIZE_NBUCKETS * sizeof (uint64_t))
+		return (dt_set_errno(dtp, EDT_DMISMATCH));
+
+	if (min != 0 && min != DTRACE_QUANTIZE_ZEROBUCKET)
+		min--;
+
+	if (max < DTRACE_QUANTIZE_NBUCKETS - 1)
+		max++;
+
+	minval = DTRACE_QUANTIZE_BUCKETVAL(min);
+	maxval = DTRACE_QUANTIZE_BUCKETVAL(max);
+
+	if (dt_printf(dtp, fp, " %*lld :", dt_ndigits(minval),
+	    (long long)minval) < 0)
+		return (-1);
+
+	for (i = min; i <= max; i++) {
+		dt_quantize_total(dtp, data[i], &total);
+		count += data[i];
+	}
+
+	for (i = min; i <= max; i++) {
+		if (dt_print_packed(dtp, fp, data[i], total) < 0)
+			return (-1);
+	}
+
+	if (dt_printf(dtp, fp, ": %*lld | %lld\n",
+	    -dt_ndigits(maxval), (long long)maxval, (long long)count) < 0)
+		return (-1);
+
+	return (0);
+}
+
 int
 dt_print_lquantize(dtrace_hdl_t *dtp, FILE *fp, const void *addr,
     size_t size, uint64_t normal)
@@ -651,7 +905,7 @@ dt_print_lquantize(dtrace_hdl_t *dtp, FILE *fp, const void *addr,
 	for (i = first_bin; i <= last_bin; i++) {
 		positives |= (data[i] > 0);
 		negatives |= (data[i] < 0);
-		total += dt_fabsl((long double)data[i]);
+		dt_quantize_total(dtp, data[i], &total);
 	}
 
 	if (dt_printf(dtp, fp, "\n%16s %41s %-9s\n", "value",
@@ -663,8 +917,7 @@ dt_print_lquantize(dtrace_hdl_t *dtp, FILE *fp, const void *addr,
 		int err;
 
 		if (i == 0) {
-			(void) snprintf(c, sizeof (c), "< %d",
-			    base / (uint32_t)normal);
+			(void) snprintf(c, sizeof (c), "< %d", base);
 			err = dt_printf(dtp, fp, "%16s ", c);
 		} else if (i == levels + 1) {
 			(void) snprintf(c, sizeof (c), ">= %d",
@@ -685,6 +938,174 @@ dt_print_lquantize(dtrace_hdl_t *dtp, FILE *fp, const void *addr,
 
 /*ARGSUSED*/
 static int
+dt_print_lquantize_packed(dtrace_hdl_t *dtp, FILE *fp, const void *addr,
+    size_t size, const dtrace_aggdata_t *aggdata)
+{
+	const int64_t *data = addr;
+	long double total = 0, count = 0;
+	int min, max, base, err;
+	uint64_t arg;
+	uint16_t step, levels;
+	char c[32];
+	unsigned int i;
+
+	if (size < sizeof (uint64_t))
+		return (dt_set_errno(dtp, EDT_DMISMATCH));
+
+	arg = *data++;
+	size -= sizeof (uint64_t);
+
+	base = DTRACE_LQUANTIZE_BASE(arg);
+	step = DTRACE_LQUANTIZE_STEP(arg);
+	levels = DTRACE_LQUANTIZE_LEVELS(arg);
+
+	if (size != sizeof (uint64_t) * (levels + 2))
+		return (dt_set_errno(dtp, EDT_DMISMATCH));
+
+	min = 0;
+	max = levels + 1;
+
+	if (min == 0) {
+		(void) snprintf(c, sizeof (c), "< %d", base);
+		err = dt_printf(dtp, fp, "%8s :", c);
+	} else {
+		err = dt_printf(dtp, fp, "%8d :", base + (min - 1) * step);
+	}
+
+	if (err < 0)
+		return (-1);
+
+	for (i = min; i <= max; i++) {
+		dt_quantize_total(dtp, data[i], &total);
+		count += data[i];
+	}
+
+	for (i = min; i <= max; i++) {
+		if (dt_print_packed(dtp, fp, data[i], total) < 0)
+			return (-1);
+	}
+
+	(void) snprintf(c, sizeof (c), ">= %d", base + (levels * step));
+	return (dt_printf(dtp, fp, ": %-8s | %lld\n", c, (long long)count));
+}
+
+int
+dt_print_llquantize(dtrace_hdl_t *dtp, FILE *fp, const void *addr,
+    size_t size, uint64_t normal)
+{
+	int i, first_bin, last_bin, bin = 1, order, levels;
+	uint16_t factor, low, high, nsteps;
+	const int64_t *data = addr;
+	int64_t value = 1, next, step;
+	char positives = 0, negatives = 0;
+	long double total = 0;
+	uint64_t arg;
+	char c[32];
+
+	if (size < sizeof (uint64_t))
+		return (dt_set_errno(dtp, EDT_DMISMATCH));
+
+	arg = *data++;
+	size -= sizeof (uint64_t);
+
+	factor = DTRACE_LLQUANTIZE_FACTOR(arg);
+	low = DTRACE_LLQUANTIZE_LOW(arg);
+	high = DTRACE_LLQUANTIZE_HIGH(arg);
+	nsteps = DTRACE_LLQUANTIZE_NSTEP(arg);
+
+	/*
+	 * We don't expect to be handed invalid llquantize() parameters here,
+	 * but sanity check them (to a degree) nonetheless.
+	 */
+	if (size > INT32_MAX || factor < 2 || low >= high ||
+	    nsteps == 0 || factor > nsteps)
+		return (dt_set_errno(dtp, EDT_DMISMATCH));
+
+	levels = (int)size / sizeof (uint64_t);
+
+	first_bin = 0;
+	last_bin = levels - 1;
+
+	while (first_bin < levels && data[first_bin] == 0)
+		first_bin++;
+
+	if (first_bin == levels) {
+		first_bin = 0;
+		last_bin = 1;
+	} else {
+		if (first_bin > 0)
+			first_bin--;
+
+		while (last_bin > 0 && data[last_bin] == 0)
+			last_bin--;
+
+		if (last_bin < levels - 1)
+			last_bin++;
+	}
+
+	for (i = first_bin; i <= last_bin; i++) {
+		positives |= (data[i] > 0);
+		negatives |= (data[i] < 0);
+		dt_quantize_total(dtp, data[i], &total);
+	}
+
+	if (dt_printf(dtp, fp, "\n%16s %41s %-9s\n", "value",
+	    "------------- Distribution -------------", "count") < 0)
+		return (-1);
+
+	for (order = 0; order < low; order++)
+		value *= factor;
+
+	next = value * factor;
+	step = next > nsteps ? next / nsteps : 1;
+
+	if (first_bin == 0) {
+		(void) snprintf(c, sizeof (c), "< %lld", (long long)value);
+
+		if (dt_printf(dtp, fp, "%16s ", c) < 0)
+			return (-1);
+
+		if (dt_print_quantline(dtp, fp, data[0], normal,
+		    total, positives, negatives) < 0)
+			return (-1);
+	}
+
+	while (order <= high) {
+		if (bin >= first_bin && bin <= last_bin) {
+			if (dt_printf(dtp, fp, "%16lld ", (long long)value) < 0)
+				return (-1);
+
+			if (dt_print_quantline(dtp, fp, data[bin],
+			    normal, total, positives, negatives) < 0)
+				return (-1);
+		}
+
+		assert(value < next);
+		bin++;
+
+		if ((value += step) != next)
+			continue;
+
+		next = value * factor;
+		step = next > nsteps ? next / nsteps : 1;
+		order++;
+	}
+
+	if (last_bin < bin)
+		return (0);
+
+	assert(last_bin == bin);
+	(void) snprintf(c, sizeof (c), ">= %lld", (long long)value);
+
+	if (dt_printf(dtp, fp, "%16s ", c) < 0)
+		return (-1);
+
+	return (dt_print_quantline(dtp, fp, data[bin], normal,
+	    total, positives, negatives));
+}
+
+/*ARGSUSED*/
+static int
 dt_print_average(dtrace_hdl_t *dtp, FILE *fp, caddr_t addr,
     size_t size, uint64_t normal)
 {
@@ -708,9 +1129,9 @@ dt_print_stddev(dtrace_hdl_t *dtp, FILE *fp, caddr_t addr,
 }
 
 /*ARGSUSED*/
-int
+static int
 dt_print_bytes(dtrace_hdl_t *dtp, FILE *fp, caddr_t addr,
-    size_t nbytes, int width, int quiet, int raw)
+    size_t nbytes, int width, int quiet, int forceraw)
 {
 	/*
 	 * If the byte stream is a series of printable characters, followed by
@@ -723,7 +1144,10 @@ dt_print_bytes(dtrace_hdl_t *dtp, FILE *fp, caddr_t addr,
 	if (nbytes == 0)
 		return (0);
 
-	if (raw || dtp->dt_options[DTRACEOPT_RAWBYTES] != DTRACEOPT_UNSET)
+	if (forceraw)
+		goto raw;
+
+	if (dtp->dt_options[DTRACEOPT_RAWBYTES] != DTRACEOPT_UNSET)
 		goto raw;
 
 	for (i = 0; i < nbytes; i++) {
@@ -737,7 +1161,8 @@ dt_print_bytes(dtrace_hdl_t *dtp, FILE *fp, caddr_t addr,
 		 * have meaning for the terminal and for which isprint(3C) and
 		 * isspace(3C) return 0.
 		 */
-		if (isprint(c[i]) || isspace(c[i]) ||
+		if (isprint((unsigned char)c[i]) ||
+		    isspace((unsigned char)c[i]) ||
 		    c[i] == '\b' || c[i] == '\a')
 			continue;
 
@@ -758,10 +1183,12 @@ dt_print_bytes(dtrace_hdl_t *dtp, FILE *fp, caddr_t addr,
 			if (j != nbytes)
 				break;
 
-			if (quiet)
+			if (quiet) {
 				return (dt_printf(dtp, fp, "%s", c));
-			else
-				return (dt_printf(dtp, fp, "  %-*s", width, c));
+			} else {
+				return (dt_printf(dtp, fp, " %s%*s",
+				    width < 0 ? " " : "", width, c));
+			}
 		}
 
 		break;
@@ -868,9 +1295,9 @@ dt_print_stack(dtrace_hdl_t *dtp, FILE *fp, const char *format,
 
 		if (dtrace_lookup_by_addr(dtp, pc, &sym, &dts) == 0) {
 			if (pc > sym.st_value) {
-				(void) snprintf(c, sizeof (c),
-				    "%s`%s+0x%" PRIx64, dts.dts_object,
-				    dts.dts_name, pc - sym.st_value);
+				(void) snprintf(c, sizeof (c), "%s`%s+0x%llx",
+				    dts.dts_object, dts.dts_name,
+				    (unsigned long long)(pc - sym.st_value));
 			} else {
 				(void) snprintf(c, sizeof (c), "%s`%s",
 				    dts.dts_object, dts.dts_name);
@@ -882,11 +1309,11 @@ dt_print_stack(dtrace_hdl_t *dtp, FILE *fp, const char *format,
 			 * interested in the containing module.
 			 */
 			if (dtrace_lookup_by_addr(dtp, pc, NULL, &dts) == 0) {
-				(void) snprintf(c, sizeof (c), "%s`0x%" PRIx64,
-				    dts.dts_object, pc);
+				(void) snprintf(c, sizeof (c), "%s`0x%llx",
+				    dts.dts_object, (unsigned long long)pc);
 			} else {
-				(void) snprintf(c, sizeof (c),
-				    "0x%" PRIx64, pc);
+				(void) snprintf(c, sizeof (c), "0x%llx",
+				    (unsigned long long)pc);
 			}
 		}
 
@@ -904,7 +1331,6 @@ int
 dt_print_ustack(dtrace_hdl_t *dtp, FILE *fp, const char *format,
     caddr_t addr, uint64_t arg)
 {
-#if 0	/* XXX TBD needs libproc */
 	/* LINTED - alignment */
 	uint64_t *pc = (uint64_t *)addr;
 	uint32_t depth = DTRACE_USTACK_NFRAMES(arg);
@@ -954,33 +1380,21 @@ dt_print_ustack(dtrace_hdl_t *dtp, FILE *fp, const char *format,
 		if ((err = dt_printf(dtp, fp, "%*s", indent, "")) < 0)
 			break;
 
-#if defined(sun)
 		if (P != NULL && Plookup_by_addr(P, pc[i],
-#else
-		if (P != NULL && proc_addr2sym(P, pc[i],
-#endif
 		    name, sizeof (name), &sym) == 0) {
-#if defined(sun)
 			(void) Pobjname(P, pc[i], objname, sizeof (objname));
-#else
-			(void) proc_objname(P, pc[i], objname, sizeof (objname));
-#endif
 
 			if (pc[i] > sym.st_value) {
 				(void) snprintf(c, sizeof (c),
-				    "%s`%s+0x%" PRIx64, dt_basename(objname),
-				    name, (pc[i] - sym.st_value));
+				    "%s`%s+0x%llx", dt_basename(objname), name,
+				    (unsigned long long)(pc[i] - sym.st_value));
 			} else {
 				(void) snprintf(c, sizeof (c),
 				    "%s`%s", dt_basename(objname), name);
 			}
 		} else if (str != NULL && str[0] != '\0' && str[0] != '@' &&
-#if defined(sun)
 		    (P != NULL && ((map = Paddr_to_map(P, pc[i])) == NULL ||
 		    (map->pr_mflags & MA_WRITE)))) {
-#else
-		    (P != NULL && ((map = proc_addr2map(P, pc[i])) == NULL))) {
-#endif
 			/*
 			 * If the current string pointer in the string table
 			 * does not point to an empty string _and_ the program
@@ -996,17 +1410,13 @@ dt_print_ustack(dtrace_hdl_t *dtp, FILE *fp, const char *format,
 			 */
 			(void) snprintf(c, sizeof (c), "%s", str);
 		} else {
-#if defined(sun)
 			if (P != NULL && Pobjname(P, pc[i], objname,
-#else
-			if (P != NULL && proc_objname(P, pc[i], objname,
-#endif
 			    sizeof (objname)) != 0) {
-				(void) snprintf(c, sizeof (c), "%s`0x%" PRIx64,
-				    dt_basename(objname), pc[i]);
+				(void) snprintf(c, sizeof (c), "%s`0x%llx",
+				    dt_basename(objname), (unsigned long long)pc[i]);
 			} else {
-				(void) snprintf(c, sizeof (c), "0x%" PRIx64,
-				    pc[i]);
+				(void) snprintf(c, sizeof (c), "0x%llx",
+				    (unsigned long long)pc[i]);
 			}
 		}
 
@@ -1048,16 +1458,11 @@ dt_print_ustack(dtrace_hdl_t *dtp, FILE *fp, const char *format,
 	}
 
 	return (err);
-#else
-	printf("XXX %s not implemented\n", __func__);
-	return ENODEV;
-#endif
 }
 
 static int
 dt_print_usym(dtrace_hdl_t *dtp, FILE *fp, caddr_t addr, dtrace_actkind_t act)
 {
-#if 0	/* XXX TBD needs libproc */
 	/* LINTED - alignment */
 	uint64_t pid = ((uint64_t *)addr)[0];
 	/* LINTED - alignment */
@@ -1075,11 +1480,7 @@ dt_print_usym(dtrace_hdl_t *dtp, FILE *fp, caddr_t addr, dtrace_actkind_t act)
 
 			dt_proc_lock(dtp, P);
 
-#if defined(sun)
 			if (Plookup_by_addr(P, pc, NULL, 0, &sym) == 0)
-#else
-			if (proc_addr2sym(P, pc, NULL, 0, &sym) == 0)
-#endif
 				pc = sym.st_value;
 
 			dt_proc_unlock(dtp, P);
@@ -1093,16 +1494,11 @@ dt_print_usym(dtrace_hdl_t *dtp, FILE *fp, caddr_t addr, dtrace_actkind_t act)
 	} while ((len = dtrace_uaddr2str(dtp, pid, pc, s, n)) > n);
 
 	return (dt_printf(dtp, fp, format, s));
-#else
-	printf("XXX %s not implemented\n", __func__);
-	return ENODEV;
-#endif
 }
 
 int
 dt_print_umod(dtrace_hdl_t *dtp, FILE *fp, const char *format, caddr_t addr)
 {
-#if 0	/* XXX TBD needs libproc */
 	/* LINTED - alignment */
 	uint64_t pid = ((uint64_t *)addr)[0];
 	/* LINTED - alignment */
@@ -1127,14 +1523,10 @@ dt_print_umod(dtrace_hdl_t *dtp, FILE *fp, const char *format, caddr_t addr)
 	if (P != NULL)
 		dt_proc_lock(dtp, P); /* lock handle while we perform lookups */
 
-#if defined(sun)
 	if (P != NULL && Pobjname(P, pc, objname, sizeof (objname)) != 0) {
-#else
-	if (P != NULL && proc_objname(P, pc, objname, sizeof (objname)) != 0) {
-#endif
 		(void) snprintf(c, sizeof (c), "%s", dt_basename(objname));
 	} else {
-		(void) snprintf(c, sizeof (c), "0x%" PRIx64, pc);
+		(void) snprintf(c, sizeof (c), "0x%llx", (unsigned long long)pc);
 	}
 
 	err = dt_printf(dtp, fp, format, c);
@@ -1145,13 +1537,9 @@ dt_print_umod(dtrace_hdl_t *dtp, FILE *fp, const char *format, caddr_t addr)
 	}
 
 	return (err);
-#else
-	printf("XXX %s not implemented\n", __func__);
-	return -1;
-#endif
 }
 
-int
+static int
 dt_print_memory(dtrace_hdl_t *dtp, FILE *fp, caddr_t addr)
 {
 	int quiet = (dtp->dt_options[DTRACEOPT_QUIET] != DTRACEOPT_UNSET);
@@ -1209,7 +1597,7 @@ dt_print_type_width(const char *name, ctf_id_t type, ulong_t off, void *arg)
 	if ((p = strchr(buf, '[')) != NULL)
 		p[-1] = '\0';
 	else
-		p = "";
+		p = __UNCONST("");
 
 	sz += strlen(p);
 
@@ -1240,7 +1628,7 @@ dt_print_type_data(dt_type_cbdata_t *cbdatap, ctf_id_t type)
 	if ((p = strchr(buf, '[')) != NULL)
 		p[-1] = '\0';
 	else
-		p = "";
+		p = __UNCONST("");
 
 	if (cbdatap->f_type) {
 		int type_width = roundup(cbdatap->type_width + 1, 4);
@@ -1255,7 +1643,6 @@ dt_print_type_data(dt_type_cbdata_t *cbdatap, ctf_id_t type)
 		dt_type_cbdata_t cbdata;
 		ctf_arinfo_t arinfo;
 		ctf_encoding_t cte;
-		uintptr_t *up;
 		void *vp = addr;
 		cbdata = *cbdatap;
 		cbdata.name = "";
@@ -1276,7 +1663,7 @@ dt_print_type_data(dt_type_cbdata_t *cbdatap, ctf_id_t type)
 			if ((cte.cte_format & CTF_INT_SIGNED) != 0)
 				switch (cte.cte_bits) {
 				case 8:
-					if (isprint(*((char *) vp)))
+					if (isprint(*((unsigned char *) vp)))
 						dt_printf(cbdatap->dtp, cbdatap->fp, "'%c', ", *((char *) vp));
 					dt_printf(cbdatap->dtp, cbdatap->fp, "%d (0x%x);\n", *((char *) vp), *((char *) vp));
 					break;
@@ -1385,7 +1772,6 @@ dt_print_type_data(dt_type_cbdata_t *cbdatap, ctf_id_t type)
 static int
 dt_print_type(dtrace_hdl_t *dtp, FILE *fp, caddr_t addr)
 {
-	caddr_t addrend;
 	char *p;
 	dtrace_typeinfo_t dtt;
 	dt_type_cbdata_t cbdata;
@@ -1481,10 +1867,11 @@ dt_print_sym(dtrace_hdl_t *dtp, FILE *fp, const char *format, caddr_t addr)
 		 * the containing module.
 		 */
 		if (dtrace_lookup_by_addr(dtp, pc, NULL, &dts) == 0) {
-			(void) snprintf(c, sizeof (c), "%s`0x%" PRIx64,
-			    dts.dts_object, pc);
+			(void) snprintf(c, sizeof (c), "%s`0x%llx",
+			    dts.dts_object, (unsigned long long)pc);
 		} else {
-			(void) snprintf(c, sizeof (c), "0x%" PRIx64, pc);
+			(void) snprintf(c, sizeof (c), "0x%llx",
+			    (unsigned long long)pc);
 		}
 	}
 
@@ -1508,7 +1895,7 @@ dt_print_mod(dtrace_hdl_t *dtp, FILE *fp, const char *format, caddr_t addr)
 	if (dtrace_lookup_by_addr(dtp, pc, NULL, &dts) == 0) {
 		(void) snprintf(c, sizeof (c), "%s", dts.dts_object);
 	} else {
-		(void) snprintf(c, sizeof (c), "0x%" PRIx64, pc);
+		(void) snprintf(c, sizeof (c), "0x%llx", (unsigned long long)pc);
 	}
 
 	if (dt_printf(dtp, fp, format, c) < 0)
@@ -1713,10 +2100,83 @@ dt_trunc(dtrace_hdl_t *dtp, caddr_t base, dtrace_recdesc_t *rec)
 
 static int
 dt_print_datum(dtrace_hdl_t *dtp, FILE *fp, dtrace_recdesc_t *rec,
-    caddr_t addr, size_t size, uint64_t normal)
+    caddr_t addr, size_t size, const dtrace_aggdata_t *aggdata,
+    uint64_t normal, dt_print_aggdata_t *pd)
 {
-	int err;
+	int err, width;
 	dtrace_actkind_t act = rec->dtrd_action;
+	boolean_t packed = pd->dtpa_agghist || pd->dtpa_aggpack;
+	dtrace_aggdesc_t *agg = aggdata->dtada_desc;
+
+	static struct {
+		size_t size;
+		int width;
+		int packedwidth;
+	} *fmt, fmttab[] = {
+		{ sizeof (uint8_t),	3,	3 },
+		{ sizeof (uint16_t),	5,	5 },
+		{ sizeof (uint32_t),	8,	8 },
+		{ sizeof (uint64_t),	16,	16 },
+		{ 0,			-50,	16 }
+	};
+
+	if (packed && pd->dtpa_agghisthdr != agg->dtagd_varid) {
+		dtrace_recdesc_t *r;
+
+		width = 0;
+
+		/*
+		 * To print our quantization header for either an agghist or
+		 * aggpack aggregation, we need to iterate through all of our
+		 * of our records to determine their width.
+		 */
+		for (r = rec; !DTRACEACT_ISAGG(r->dtrd_action); r++) {
+			for (fmt = fmttab; fmt->size &&
+			    fmt->size != r->dtrd_size; fmt++)
+				continue;
+
+			width += fmt->packedwidth + 1;
+		}
+
+		if (pd->dtpa_agghist) {
+			if (dt_print_quanthdr(dtp, fp, width) < 0)
+				return (-1);
+		} else {
+			if (dt_print_quanthdr_packed(dtp, fp,
+			    width, aggdata, r->dtrd_action) < 0)
+				return (-1);
+		}
+
+		pd->dtpa_agghisthdr = agg->dtagd_varid;
+	}
+
+	if (pd->dtpa_agghist && DTRACEACT_ISAGG(act)) {
+		char positives = aggdata->dtada_flags & DTRACE_A_HASPOSITIVES;
+		char negatives = aggdata->dtada_flags & DTRACE_A_HASNEGATIVES;
+		int64_t val;
+
+		assert(act == DTRACEAGG_SUM || act == DTRACEAGG_COUNT);
+		val = (long long)*((uint64_t *)addr);
+
+		if (dt_printf(dtp, fp, " ") < 0)
+			return (-1);
+
+		return (dt_print_quantline(dtp, fp, val, normal,
+		    aggdata->dtada_total, positives, negatives));
+	}
+
+	if (pd->dtpa_aggpack && DTRACEACT_ISAGG(act)) {
+		switch (act) {
+		case DTRACEAGG_QUANTIZE:
+			return (dt_print_quantize_packed(dtp,
+			    fp, addr, size, aggdata));
+		case DTRACEAGG_LQUANTIZE:
+			return (dt_print_lquantize_packed(dtp,
+			    fp, addr, size, aggdata));
+		default:
+			break;
+		}
+	}
 
 	switch (act) {
 	case DTRACEACT_STACK:
@@ -1746,6 +2206,9 @@ dt_print_datum(dtrace_hdl_t *dtp, FILE *fp, dtrace_recdesc_t *rec,
 	case DTRACEAGG_LQUANTIZE:
 		return (dt_print_lquantize(dtp, fp, addr, size, normal));
 
+	case DTRACEAGG_LLQUANTIZE:
+		return (dt_print_llquantize(dtp, fp, addr, size, normal));
+
 	case DTRACEAGG_AVG:
 		return (dt_print_average(dtp, fp, addr, size, normal));
 
@@ -1756,35 +2219,40 @@ dt_print_datum(dtrace_hdl_t *dtp, FILE *fp, dtrace_recdesc_t *rec,
 		break;
 	}
 
+	for (fmt = fmttab; fmt->size && fmt->size != size; fmt++)
+		continue;
+
+	width = packed ? fmt->packedwidth : fmt->width;
+
 	switch (size) {
 	case sizeof (uint64_t):
-		err = dt_printf(dtp, fp, " %16lld",
+		err = dt_printf(dtp, fp, " %*lld", width,
 		    /* LINTED - alignment */
 		    (long long)*((uint64_t *)addr) / normal);
 		break;
 	case sizeof (uint32_t):
 		/* LINTED - alignment */
-		err = dt_printf(dtp, fp, " %8d", *((uint32_t *)addr) /
+		err = dt_printf(dtp, fp, " %*d", width, *((uint32_t *)addr) /
 		    (uint32_t)normal);
 		break;
 	case sizeof (uint16_t):
 		/* LINTED - alignment */
-		err = dt_printf(dtp, fp, " %5d", *((uint16_t *)addr) /
+		err = dt_printf(dtp, fp, " %*d", width, *((uint16_t *)addr) /
 		    (uint32_t)normal);
 		break;
 	case sizeof (uint8_t):
-		err = dt_printf(dtp, fp, " %3d", *((uint8_t *)addr) /
+		err = dt_printf(dtp, fp, " %*d", width, *((uint8_t *)addr) /
 		    (uint32_t)normal);
 		break;
 	default:
-		err = dt_print_bytes(dtp, fp, addr, size, 50, 0, 0);
+		err = dt_print_bytes(dtp, fp, addr, size, width, 0, 0);
 		break;
 	}
 
 	return (err);
 }
 
-int
+static int
 dt_print_aggs(const dtrace_aggdata_t **aggsdata, int naggvars, void *arg)
 {
 	int i, aggact = 0;
@@ -1798,6 +2266,9 @@ dt_print_aggs(const dtrace_aggdata_t **aggsdata, int naggvars, void *arg)
 	caddr_t addr;
 	size_t size;
 
+	pd->dtpa_agghist = (aggdata->dtada_flags & DTRACE_A_TOTAL);
+	pd->dtpa_aggpack = (aggdata->dtada_flags & DTRACE_A_MINMAXBIN);
+
 	/*
 	 * Iterate over each record description in the key, printing the traced
 	 * data, skipping the first datum (the tuple member created by the
@@ -1814,7 +2285,8 @@ dt_print_aggs(const dtrace_aggdata_t **aggsdata, int naggvars, void *arg)
 			break;
 		}
 
-		if (dt_print_datum(dtp, fp, rec, addr, size, 1) < 0)
+		if (dt_print_datum(dtp, fp, rec, addr,
+		    size, aggdata, 1, pd) < 0)
 			return (-1);
 
 		if (dt_buffered_flush(dtp, NULL, rec, aggdata,
@@ -1837,7 +2309,8 @@ dt_print_aggs(const dtrace_aggdata_t **aggsdata, int naggvars, void *arg)
 		assert(DTRACEACT_ISAGG(act));
 		normal = aggdata->dtada_normal;
 
-		if (dt_print_datum(dtp, fp, rec, addr, size, normal) < 0)
+		if (dt_print_datum(dtp, fp, rec, addr,
+		    size, aggdata, normal, pd) < 0)
 			return (-1);
 
 		if (dt_buffered_flush(dtp, NULL, rec, aggdata,
@@ -1848,8 +2321,10 @@ dt_print_aggs(const dtrace_aggdata_t **aggsdata, int naggvars, void *arg)
 			agg->dtagd_flags |= DTRACE_AGD_PRINTED;
 	}
 
-	if (dt_printf(dtp, fp, "\n") < 0)
-		return (-1);
+	if (!pd->dtpa_agghist && !pd->dtpa_aggpack) {
+		if (dt_printf(dtp, fp, "\n") < 0)
+			return (-1);
+	}
 
 	if (dt_buffered_flush(dtp, NULL, NULL, aggdata,
 	    DTRACE_BUFDATA_AGGFORMAT | DTRACE_BUFDATA_AGGLAST) < 0)
@@ -1885,7 +2360,7 @@ dt_print_agg(const dtrace_aggdata_t *aggdata, void *arg)
 	return (dt_print_aggs(&aggdata, 1, arg));
 }
 
-int
+static int
 dt_setopt(dtrace_hdl_t *dtp, const dtrace_probedata_t *data,
     const char *option, const char *value)
 {
@@ -1923,25 +2398,27 @@ dt_setopt(dtrace_hdl_t *dtp, const dtrace_probedata_t *data,
 }
 
 static int
-dt_consume_cpu(dtrace_hdl_t *dtp, FILE *fp, int cpu, dtrace_bufdesc_t *buf,
+dt_consume_cpu(dtrace_hdl_t *dtp, FILE *fp, int cpu,
+    dtrace_bufdesc_t *buf, boolean_t just_one,
     dtrace_consume_probe_f *efunc, dtrace_consume_rec_f *rfunc, void *arg)
 {
 	dtrace_epid_t id;
-	size_t offs, start = buf->dtbd_oldest, end = buf->dtbd_size;
+	size_t offs;
 	int flow = (dtp->dt_options[DTRACEOPT_FLOWINDENT] != DTRACEOPT_UNSET);
 	int quiet = (dtp->dt_options[DTRACEOPT_QUIET] != DTRACEOPT_UNSET);
 	int rval, i, n;
-	dtrace_epid_t last = DTRACE_EPIDNONE;
+	uint64_t tracememsize = 0;
 	dtrace_probedata_t data;
 	uint64_t drops;
-	caddr_t addr;
 
 	bzero(&data, sizeof (data));
 	data.dtpda_handle = dtp;
 	data.dtpda_cpu = cpu;
+	data.dtpda_flow = dtp->dt_flow;
+	data.dtpda_indent = dtp->dt_indent;
+	data.dtpda_prefix = dtp->dt_prefix;
 
-again:
-	for (offs = start; offs < end; ) {
+	for (offs = buf->dtbd_oldest; offs < buf->dtbd_size; ) {
 		dtrace_eprobedesc_t *epd;
 
 		/*
@@ -1976,7 +2453,8 @@ again:
 		}
 
 		if (flow)
-			(void) dt_flowindent(dtp, &data, last, buf, offs);
+			(void) dt_flowindent(dtp, &data, dtp->dt_last_epid,
+			    buf, offs);
 
 		rval = (*efunc)(&data, arg);
 
@@ -1995,6 +2473,7 @@ again:
 			return (dt_set_errno(dtp, EDT_BADRVAL));
 
 		for (i = 0; i < epd->dtepd_nrecs; i++) {
+			caddr_t addr;
 			dtrace_recdesc_t *rec = &epd->dtepd_rec[i];
 			dtrace_actkind_t act = rec->dtrd_action;
 
@@ -2100,6 +2579,13 @@ again:
 				}
 			}
 
+			if (act == DTRACEACT_TRACEMEM_DYNSIZE &&
+			    rec->dtrd_size == sizeof (uint64_t)) {
+			    	/* LINTED - alignment */
+				tracememsize = *((unsigned long long *)addr);
+				continue;
+			}
+
 			rval = (*rfunc)(&data, rec, arg);
 
 			if (rval == DTRACE_CONSUME_NEXT)
@@ -2188,6 +2674,8 @@ again:
 				case DTRACEACT_FREOPEN:
 					func = dtrace_freopen;
 					break;
+				default:
+					return (dt_set_errno(dtp, EDT_BADAGG));
 				}
 
 				n = (*func)(dtp, fp, fmtdata, &data,
@@ -2203,6 +2691,35 @@ again:
 				goto nextrec;
 			}
 
+			/*
+			 * If this is a DIF expression, and the record has a
+			 * format set, this indicates we have a CTF type name
+			 * associated with the data and we should try to print
+			 * it out by type.
+			 */
+			if (act == DTRACEACT_DIFEXPR) {
+				const char *strdata = dt_strdata_lookup(dtp,
+				    rec->dtrd_format);
+				if (strdata != NULL) {
+					n = dtrace_print(dtp, fp, strdata,
+					    addr, rec->dtrd_size);
+
+					/*
+					 * dtrace_print() will return -1 on
+					 * error, or return the number of bytes
+					 * consumed.  It will return 0 if the
+					 * type couldn't be determined, and we
+					 * should fall through to the normal
+					 * trace method.
+					 */
+					if (n < 0)
+						return (-1);
+
+					if (n > 0)
+						goto nextrec;
+				}
+			}
+
 nofmt:
 			if (act == DTRACEACT_PRINTA) {
 				dt_print_aggdata_t pd;
@@ -2271,6 +2788,23 @@ nofmt:
 				goto nextrec;
 			}
 
+			if (act == DTRACEACT_TRACEMEM) {
+				if (tracememsize == 0 ||
+				    tracememsize > rec->dtrd_size) {
+					tracememsize = rec->dtrd_size;
+				}
+
+				n = dt_print_bytes(dtp, fp, addr,
+				    tracememsize, -33, quiet, 1);
+
+				tracememsize = 0;
+
+				if (n < 0)
+					return (-1);
+
+				goto nextrec;
+			}
+
 			switch (rec->dtrd_size) {
 			case sizeof (uint64_t):
 				n = dt_printf(dtp, fp,
@@ -2294,7 +2828,7 @@ nofmt:
 				break;
 			default:
 				n = dt_print_bytes(dtp, fp, addr,
-				    rec->dtrd_size, 33, quiet, 0);
+				    rec->dtrd_size, -33, quiet, 0);
 				break;
 			}
 
@@ -2313,14 +2847,16 @@ nextrec:
 		rval = (*rfunc)(&data, NULL, arg);
 nextepid:
 		offs += epd->dtepd_size;
-		last = id;
+		dtp->dt_last_epid = id;
+		if (just_one) {
+			buf->dtbd_oldest = offs;
+			break;
+		}
 	}
 
-	if (buf->dtbd_oldest != 0 && start == buf->dtbd_oldest) {
-		end = buf->dtbd_oldest;
-		start = 0;
-		goto again;
-	}
+	dtp->dt_flow = data.dtpda_flow;
+	dtp->dt_indent = data.dtpda_indent;
+	dtp->dt_prefix = data.dtpda_prefix;
 
 	if ((drops = buf->dtbd_drops) == 0)
 		return (0);
@@ -2333,6 +2869,131 @@ nextepid:
 	return (dt_handle_cpudrop(dtp, cpu, DTRACEDROP_PRINCIPAL, drops));
 }
 
+/*
+ * Reduce memory usage by shrinking the buffer if it's no more than half full.
+ * Note, we need to preserve the alignment of the data at dtbd_oldest, which is
+ * only 4-byte aligned.
+ */
+static void
+dt_realloc_buf(dtrace_hdl_t *dtp, dtrace_bufdesc_t *buf, int cursize)
+{
+	uint64_t used = buf->dtbd_size - buf->dtbd_oldest;
+	if (used < cursize / 2) {
+		int misalign = buf->dtbd_oldest & (sizeof (uint64_t) - 1);
+		char *newdata = dt_alloc(dtp, used + misalign);
+		if (newdata == NULL)
+			return;
+		bzero(newdata, misalign);
+		bcopy(buf->dtbd_data + buf->dtbd_oldest,
+		    newdata + misalign, used);
+		dt_free(dtp, buf->dtbd_data);
+		buf->dtbd_oldest = misalign;
+		buf->dtbd_size = used + misalign;
+		buf->dtbd_data = newdata;
+	}
+}
+
+/*
+ * If the ring buffer has wrapped, the data is not in order.  Rearrange it
+ * so that it is.  Note, we need to preserve the alignment of the data at
+ * dtbd_oldest, which is only 4-byte aligned.
+ */
+static int
+dt_unring_buf(dtrace_hdl_t *dtp, dtrace_bufdesc_t *buf)
+{
+	int misalign;
+	char *newdata, *ndp;
+
+	if (buf->dtbd_oldest == 0)
+		return (0);
+
+	misalign = buf->dtbd_oldest & (sizeof (uint64_t) - 1);
+	newdata = ndp = dt_alloc(dtp, buf->dtbd_size + misalign);
+
+	if (newdata == NULL)
+		return (-1);
+
+	assert(0 == (buf->dtbd_size & (sizeof (uint64_t) - 1)));
+
+	bzero(ndp, misalign);
+	ndp += misalign;
+
+	bcopy(buf->dtbd_data + buf->dtbd_oldest, ndp,
+	    buf->dtbd_size - buf->dtbd_oldest);
+	ndp += buf->dtbd_size - buf->dtbd_oldest;
+
+	bcopy(buf->dtbd_data, ndp, buf->dtbd_oldest);
+
+	dt_free(dtp, buf->dtbd_data);
+	buf->dtbd_oldest = 0;
+	buf->dtbd_data = newdata;
+	buf->dtbd_size += misalign;
+
+	return (0);
+}
+
+static void
+dt_put_buf(dtrace_hdl_t *dtp, dtrace_bufdesc_t *buf)
+{
+	dt_free(dtp, buf->dtbd_data);
+	dt_free(dtp, buf);
+}
+
+/*
+ * Returns 0 on success, in which case *cbp will be filled in if we retrieved
+ * data, or NULL if there is no data for this CPU.
+ * Returns -1 on failure and sets dt_errno.
+ */
+static int
+dt_get_buf(dtrace_hdl_t *dtp, int cpu, dtrace_bufdesc_t **bufp)
+{
+	dtrace_optval_t size;
+	dtrace_bufdesc_t *buf = dt_zalloc(dtp, sizeof (*buf));
+	int error, rval;
+
+	if (buf == NULL)
+		return (-1);
+
+	(void) dtrace_getopt(dtp, "bufsize", &size);
+	buf->dtbd_data = dt_alloc(dtp, size);
+	if (buf->dtbd_data == NULL) {
+		dt_free(dtp, buf);
+		return (-1);
+	}
+	buf->dtbd_size = size;
+	buf->dtbd_cpu = cpu;
+
+#ifdef illumos
+	if (dt_ioctl(dtp, DTRACEIOC_BUFSNAP, buf) == -1) {
+#else
+	if (dt_ioctl(dtp, DTRACEIOC_BUFSNAP, &buf) == -1) {
+#endif
+		/*
+		 * If we failed with ENOENT, it may be because the
+		 * CPU was unconfigured -- this is okay.  Any other
+		 * error, however, is unexpected.
+		 */
+		if (errno == ENOENT) {
+			*bufp = NULL;
+			rval = 0;
+		} else
+			rval = dt_set_errno(dtp, errno);
+
+		dt_put_buf(dtp, buf);
+		return (rval);
+	}
+
+	error = dt_unring_buf(dtp, buf);
+	if (error != 0) {
+		dt_put_buf(dtp, buf);
+		return (error);
+	}
+	dt_realloc_buf(dtp, buf, size);
+
+	*bufp = buf;
+	return (0);
+}
+
 typedef struct dt_begin {
 	dtrace_consume_probe_f *dtbgn_probefunc;
 	dtrace_consume_rec_f *dtbgn_recfunc;
@@ -2345,7 +3006,7 @@ typedef struct dt_begin {
 static int
 dt_consume_begin_probe(const dtrace_probedata_t *data, void *arg)
 {
-	dt_begin_t *begin = (dt_begin_t *)arg;
+	dt_begin_t *begin = arg;
 	dtrace_probedesc_t *pd = data->dtpda_pdesc;
 
 	int r1 = (strcmp(pd->dtpd_provider, "dtrace") == 0);
@@ -2370,7 +3031,7 @@ static int
 dt_consume_begin_record(const dtrace_probedata_t *data,
     const dtrace_recdesc_t *rec, void *arg)
 {
-	dt_begin_t *begin = (dt_begin_t *)arg;
+	dt_begin_t *begin = arg;
 
 	return (begin->dtbgn_recfunc(data, rec, begin->dtbgn_arg));
 }
@@ -2396,7 +3057,7 @@ dt_consume_begin_error(const dtrace_errdata_t *data, void *arg)
 }
 
 static int
-dt_consume_begin(dtrace_hdl_t *dtp, FILE *fp, dtrace_bufdesc_t *buf,
+dt_consume_begin(dtrace_hdl_t *dtp, FILE *fp,
     dtrace_consume_probe_f *pf, dtrace_consume_rec_f *rf, void *arg)
 {
 	/*
@@ -2420,33 +3081,19 @@ dt_consume_begin(dtrace_hdl_t *dtp, FILE *fp, dtrace_bufdesc_t *buf,
 	 * first pass, and that we only process ERROR enablings _not_ induced
 	 * by BEGIN enablings in the second pass.
 	 */
+
 	dt_begin_t begin;
 	processorid_t cpu = dtp->dt_beganon;
-	dtrace_bufdesc_t nbuf;
-#if !defined(sun)
-	dtrace_bufdesc_t *pbuf;
-#endif
 	int rval, i;
 	static int max_ncpus;
-	dtrace_optval_t size;
+	dtrace_bufdesc_t *buf;
 
 	dtp->dt_beganon = -1;
 
-#if defined(sun)
-	if (dt_ioctl(dtp, DTRACEIOC_BUFSNAP, buf) == -1) {
-#else
-	if (dt_ioctl(dtp, DTRACEIOC_BUFSNAP, &buf) == -1) {
-#endif
-		/*
-		 * We really don't expect this to fail, but it is at least
-		 * technically possible for this to fail with ENOENT.  In this
-		 * case, we just drive on...
-		 */
-		if (errno == ENOENT)
-			return (0);
-
-		return (dt_set_errno(dtp, errno));
-	}
+	if (dt_get_buf(dtp, cpu, &buf) != 0)
+		return (-1);
+	if (buf == NULL)
+		return (0);
 
 	if (!dtp->dt_stopped || buf->dtbd_cpu != dtp->dt_endedon) {
 		/*
@@ -2454,7 +3101,10 @@ dt_consume_begin(dtrace_hdl_t *dtp, FILE *fp, dtrace_bufdesc_t *buf,
 		 * we are, we actually processed any END probes on another
 		 * CPU.  We can simply consume this buffer and return.
 		 */
-		return (dt_consume_cpu(dtp, fp, cpu, buf, pf, rf, arg));
+		rval = dt_consume_cpu(dtp, fp, cpu, buf, B_FALSE,
+		    pf, rf, arg);
+		dt_put_buf(dtp, buf);
+		return (rval);
 	}
 
 	begin.dtbgn_probefunc = pf;
@@ -2471,61 +3121,41 @@ dt_consume_begin(dtrace_hdl_t *dtp, FILE *fp, dtrace_bufdesc_t *buf,
 	dtp->dt_errhdlr = dt_consume_begin_error;
 	dtp->dt_errarg = &begin;
 
-	rval = dt_consume_cpu(dtp, fp, cpu, buf, dt_consume_begin_probe,
-	    dt_consume_begin_record, &begin);
+	rval = dt_consume_cpu(dtp, fp, cpu, buf, B_FALSE,
+	    dt_consume_begin_probe, dt_consume_begin_record, &begin);
 
 	dtp->dt_errhdlr = begin.dtbgn_errhdlr;
 	dtp->dt_errarg = begin.dtbgn_errarg;
 
-	if (rval != 0)
+	if (rval != 0) {
+		dt_put_buf(dtp, buf);
 		return (rval);
-
-	/*
-	 * Now allocate a new buffer.  We'll use this to deal with every other
-	 * CPU.
-	 */
-	bzero(&nbuf, sizeof (dtrace_bufdesc_t));
-	(void) dtrace_getopt(dtp, "bufsize", &size);
-	if ((nbuf.dtbd_data = malloc(size)) == NULL)
-		return (dt_set_errno(dtp, EDT_NOMEM));
+	}
 
 	if (max_ncpus == 0)
 		max_ncpus = dt_sysconf(dtp, _SC_CPUID_MAX) + 1;
 
 	for (i = 0; i < max_ncpus; i++) {
-		nbuf.dtbd_cpu = i;
-
+		dtrace_bufdesc_t *nbuf;
 		if (i == cpu)
 			continue;
 
-#if defined(sun)
-		if (dt_ioctl(dtp, DTRACEIOC_BUFSNAP, &nbuf) == -1) {
-#else
-		pbuf = &nbuf;
-		if (dt_ioctl(dtp, DTRACEIOC_BUFSNAP, &pbuf) == -1) {
-#endif
-			/*
-			 * If we failed with ENOENT, it may be because the
-			 * CPU was unconfigured -- this is okay.  Any other
-			 * error, however, is unexpected.
-			 */
-			if (errno == ENOENT)
-				continue;
-
-			free(nbuf.dtbd_data);
-
-			return (dt_set_errno(dtp, errno));
+		if (dt_get_buf(dtp, i, &nbuf) != 0) {
+			dt_put_buf(dtp, buf);
+			return (-1);
 		}
+		if (nbuf == NULL)
+			continue;
 
-		if ((rval = dt_consume_cpu(dtp, fp,
-		    i, &nbuf, pf, rf, arg)) != 0) {
-			free(nbuf.dtbd_data);
+		rval = dt_consume_cpu(dtp, fp, i, nbuf, B_FALSE,
+		    pf, rf, arg);
+		dt_put_buf(dtp, nbuf);
+		if (rval != 0) {
+			dt_put_buf(dtp, buf);
 			return (rval);
 		}
 	}
 
-	free(nbuf.dtbd_data);
-
 	/*
 	 * Okay -- we're done with the other buffers.  Now we want to
 	 * reconsume the first buffer -- but this time we're looking for
@@ -2540,8 +3170,8 @@ dt_consume_begin(dtrace_hdl_t *dtp, FILE *fp, dtrace_bufdesc_t *buf,
 	dtp->dt_errhdlr = dt_consume_begin_error;
 	dtp->dt_errarg = &begin;
 
-	rval = dt_consume_cpu(dtp, fp, cpu, buf, dt_consume_begin_probe,
-	    dt_consume_begin_record, &begin);
+	rval = dt_consume_cpu(dtp, fp, cpu, buf, B_FALSE,
+	    dt_consume_begin_probe, dt_consume_begin_record, &begin);
 
 	dtp->dt_errhdlr = begin.dtbgn_errhdlr;
 	dtp->dt_errarg = begin.dtbgn_errarg;
@@ -2549,11 +3179,32 @@ dt_consume_begin(dtrace_hdl_t *dtp, FILE *fp, dtrace_bufdesc_t *buf,
 	return (rval);
 }
 
+/* ARGSUSED */
+static uint64_t
+dt_buf_oldest(void *elem, void *arg)
+{
+	dtrace_bufdesc_t *buf = elem;
+	size_t offs = buf->dtbd_oldest;
+
+	while (offs < buf->dtbd_size) {
+		dtrace_rechdr_t *dtrh =
+		    /* LINTED - alignment */
+		    (dtrace_rechdr_t *)(buf->dtbd_data + offs);
+		if (dtrh->dtrh_epid == DTRACE_EPIDNONE) {
+			offs += sizeof (dtrace_epid_t);
+		} else {
+			return (DTRACE_RECORD_LOAD_TIMESTAMP(dtrh));
+		}
+	}
+
+	/* There are no records left; use the time the buffer was retrieved. */
+	return (buf->dtbd_timestamp);
+}
+
 int
 dtrace_consume(dtrace_hdl_t *dtp, FILE *fp,
     dtrace_consume_probe_f *pf, dtrace_consume_rec_f *rf, void *arg)
 {
-	dtrace_bufdesc_t *buf = &dtp->dt_buf;
 	dtrace_optval_t size;
 	static int max_ncpus;
 	int i, rval;
@@ -2581,79 +3232,158 @@ dtrace_consume(dtrace_hdl_t *dtp, FILE *fp,
 	if (rf == NULL)
 		rf = (dtrace_consume_rec_f *)dt_nullrec;
 
-	if (buf->dtbd_data == NULL) {
-		(void) dtrace_getopt(dtp, "bufsize", &size);
-		if ((buf->dtbd_data = malloc(size)) == NULL)
-			return (dt_set_errno(dtp, EDT_NOMEM));
-
-		buf->dtbd_size = size;
-	}
-
-	/*
-	 * If we have just begun, we want to first process the CPU that
-	 * executed the BEGIN probe (if any).
-	 */
-	if (dtp->dt_active && dtp->dt_beganon != -1) {
-		buf->dtbd_cpu = dtp->dt_beganon;
-		if ((rval = dt_consume_begin(dtp, fp, buf, pf, rf, arg)) != 0)
-			return (rval);
-	}
-
-	for (i = 0; i < max_ncpus; i++) {
-		buf->dtbd_cpu = i;
-
+	if (dtp->dt_options[DTRACEOPT_TEMPORAL] == DTRACEOPT_UNSET) {
 		/*
-		 * If we have stopped, we want to process the CPU on which the
-		 * END probe was processed only _after_ we have processed
-		 * everything else.
+		 * The output will not be in the order it was traced.  Rather,
+		 * we will consume all of the data from each CPU's buffer in
+		 * turn.  We apply special handling for the records from BEGIN
+		 * and END probes so that they are consumed first and last,
+		 * respectively.
+		 *
+		 * If we have just begun, we want to first process the CPU that
+		 * executed the BEGIN probe (if any).
 		 */
-		if (dtp->dt_stopped && (i == dtp->dt_endedon))
-			continue;
+		if (dtp->dt_active && dtp->dt_beganon != -1 &&
+		    (rval = dt_consume_begin(dtp, fp, pf, rf, arg)) != 0)
+			return (rval);
+
+		for (i = 0; i < max_ncpus; i++) {
+			dtrace_bufdesc_t *buf;
 
-#if defined(sun)
-		if (dt_ioctl(dtp, DTRACEIOC_BUFSNAP, buf) == -1) {
-#else
-		if (dt_ioctl(dtp, DTRACEIOC_BUFSNAP, &buf) == -1) {
-#endif
 			/*
-			 * If we failed with ENOENT, it may be because the
-			 * CPU was unconfigured -- this is okay.  Any other
-			 * error, however, is unexpected.
+			 * If we have stopped, we want to process the CPU on
+			 * which the END probe was processed only _after_ we
+			 * have processed everything else.
 			 */
-			if (errno == ENOENT)
+			if (dtp->dt_stopped && (i == dtp->dt_endedon))
+				continue;
+
+			if (dt_get_buf(dtp, i, &buf) != 0)
+				return (-1);
+			if (buf == NULL)
 				continue;
 
-			return (dt_set_errno(dtp, errno));
+			dtp->dt_flow = 0;
+			dtp->dt_indent = 0;
+			dtp->dt_prefix = NULL;
+			rval = dt_consume_cpu(dtp, fp, i,
+			    buf, B_FALSE, pf, rf, arg);
+			dt_put_buf(dtp, buf);
+			if (rval != 0)
+				return (rval);
 		}
+		if (dtp->dt_stopped) {
+			dtrace_bufdesc_t *buf;
+
+			if (dt_get_buf(dtp, dtp->dt_endedon, &buf) != 0)
+				return (-1);
+			if (buf == NULL)
+				return (0);
 
-		if ((rval = dt_consume_cpu(dtp, fp, i, buf, pf, rf, arg)) != 0)
+			rval = dt_consume_cpu(dtp, fp, dtp->dt_endedon,
+			    buf, B_FALSE, pf, rf, arg);
+			dt_put_buf(dtp, buf);
 			return (rval);
-	}
+		}
+	} else {
+		/*
+		 * The output will be in the order it was traced (or for
+		 * speculations, when it was committed).  We retrieve a buffer
+		 * from each CPU and put it into a priority queue, which sorts
+		 * based on the first entry in the buffer.  This is sufficient
+		 * because entries within a buffer are already sorted.
+		 *
+		 * We then consume records one at a time, always consuming the
+		 * oldest record, as determined by the priority queue.  When
+		 * we reach the end of the time covered by these buffers,
+		 * we need to stop and retrieve more records on the next pass.
+		 * The kernel tells us the time covered by each buffer, in
+		 * dtbd_timestamp.  The first buffer's timestamp tells us the
+		 * time covered by all buffers, as subsequently retrieved
+		 * buffers will cover to a more recent time.
+		 */
 
-	if (!dtp->dt_stopped)
-		return (0);
+		uint64_t *drops = alloca(max_ncpus * sizeof (uint64_t));
+		uint64_t first_timestamp = 0;
+		uint_t cookie = 0;
+		dtrace_bufdesc_t *buf;
 
-	buf->dtbd_cpu = dtp->dt_endedon;
+		bzero(drops, max_ncpus * sizeof (uint64_t));
+
+		if (dtp->dt_bufq == NULL) {
+			dtp->dt_bufq = dt_pq_init(dtp, max_ncpus * 2,
+			    dt_buf_oldest, NULL);
+			if (dtp->dt_bufq == NULL) /* ENOMEM */
+				return (-1);
+		}
+
+		/* Retrieve data from each CPU. */
+		(void) dtrace_getopt(dtp, "bufsize", &size);
+		for (i = 0; i < max_ncpus; i++) {
+			dtrace_bufdesc_t *buf;
+
+			if (dt_get_buf(dtp, i, &buf) != 0)
+				return (-1);
+			if (buf != NULL) {
+				if (first_timestamp == 0)
+					first_timestamp = buf->dtbd_timestamp;
+				assert(buf->dtbd_timestamp >= first_timestamp);
+
+				dt_pq_insert(dtp->dt_bufq, buf);
+				drops[i] = buf->dtbd_drops;
+				buf->dtbd_drops = 0;
+			}
+		}
+
+		/* Consume records. */
+		for (;;) {
+			dtrace_bufdesc_t *buf = dt_pq_pop(dtp->dt_bufq);
+			uint64_t timestamp;
+
+			if (buf == NULL)
+				break;
+
+			timestamp = dt_buf_oldest(buf, dtp);
+			assert(timestamp >= dtp->dt_last_timestamp);
+			dtp->dt_last_timestamp = timestamp;
+
+			if (timestamp == buf->dtbd_timestamp) {
+				/*
+				 * We've reached the end of the time covered
+				 * by this buffer.  If this is the oldest
+				 * buffer, we must do another pass
+				 * to retrieve more data.
+				 */
+				dt_put_buf(dtp, buf);
+				if (timestamp == first_timestamp &&
+				    !dtp->dt_stopped)
+					break;
+				continue;
+			}
+
+			if ((rval = dt_consume_cpu(dtp, fp,
+			    buf->dtbd_cpu, buf, B_TRUE, pf, rf, arg)) != 0)
+				return (rval);
+			dt_pq_insert(dtp->dt_bufq, buf);
+		}
+
+		/* Consume drops. */
+		for (i = 0; i < max_ncpus; i++) {
+			if (drops[i] != 0) {
+				int error = dt_handle_cpudrop(dtp, i,
+				    DTRACEDROP_PRINCIPAL, drops[i]);
+				if (error != 0)
+					return (error);
+			}
+		}
 
-#if defined(sun)
-	if (dt_ioctl(dtp, DTRACEIOC_BUFSNAP, buf) == -1) {
-#else
-	if (dt_ioctl(dtp, DTRACEIOC_BUFSNAP, &buf) == -1) {
-#endif
 		/*
-		 * This _really_ shouldn't fail, but it is strictly speaking
-		 * possible for this to return ENOENT if the CPU that called
-		 * the END enabling somehow managed to become unconfigured.
-		 * It's unclear how the user can possibly expect anything
-		 * rational to happen in this case -- the state has been thrown
-		 * out along with the unconfigured CPU -- so we'll just drive
-		 * on...
+		 * Reduce memory usage by re-allocating smaller buffers
+		 * for the "remnants".
 		 */
-		if (errno == ENOENT)
-			return (0);
-
-		return (dt_set_errno(dtp, errno));
+		while ((buf = dt_pq_walk(dtp->dt_bufq, &cookie)) != NULL)
+			dt_realloc_buf(dtp, buf, buf->dtbd_size);
 	}
 
-	return (dt_consume_cpu(dtp, fp, dtp->dt_endedon, buf, pf, rf, arg));
+	return (0);
 }
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_decl.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_decl.c
index bb77984..d717d56 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_decl.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_decl.c
@@ -21,6 +21,8 @@
  */
 /*
  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2013 Joyent, Inc. All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -254,11 +256,6 @@ dt_decl_spec(ushort_t kind, char *name)
 	ddp->dd_kind = kind;
 	ddp->dd_name = name;
 
-	if (name != NULL && strchr(name, '`') != NULL) {
-		xyerror(D_DECL_SCOPE, "D scoping operator may not be used "
-		    "in a type name\n");
-	}
-
 	return (dt_decl_check(ddp));
 }
 
@@ -783,7 +780,7 @@ dt_decl_enumerator(char *s, dt_node_t *dnp)
 	yyintdecimal = 0;
 
 	dnp = dt_node_int(value);
-	dt_node_type_assign(dnp, dsp->ds_ctfp, dsp->ds_type);
+	dt_node_type_assign(dnp, dsp->ds_ctfp, dsp->ds_type, B_FALSE);
 
 	if ((inp = malloc(sizeof (dt_idnode_t))) == NULL)
 		longjmp(yypcb->pcb_jmpbuf, EDT_NOMEM);
@@ -825,6 +822,8 @@ dt_decl_type(dt_decl_t *ddp, dtrace_typeinfo_t *tip)
 	char *name;
 	int rv;
 
+	tip->dtt_flags = 0;
+
 	/*
 	 * Based on our current #include depth and decl stack depth, determine
 	 * which dynamic CTF module and scope to use when adding any new types.
@@ -832,6 +831,9 @@ dt_decl_type(dt_decl_t *ddp, dtrace_typeinfo_t *tip)
 	dmp = yypcb->pcb_idepth ? dtp->dt_cdefs : dtp->dt_ddefs;
 	flag = yypcb->pcb_dstack.ds_next ? CTF_ADD_NONROOT : CTF_ADD_ROOT;
 
+	if (ddp->dd_attr & DT_DA_USER)
+		tip->dtt_flags = DTT_FL_USER;
+
 	/*
 	 * If we have already cached a CTF type for this decl, then we just
 	 * return the type information for the cached type.
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_decl.h b/external/cddl/osnet/dist/lib/libdtrace/common/dt_decl.h
index 2933155..d322875 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_decl.h
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_decl.h
@@ -23,12 +23,14 @@
  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
+/*
+ * Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2013 Joyent, Inc. All rights reserved.
+ */
 
 #ifndef	_DT_DECL_H
 #define	_DT_DECL_H
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <sys/types.h>
 #include <libctf.h>
 #include <dtrace.h>
@@ -59,6 +61,7 @@ typedef struct dt_decl {
 #define	DT_DA_RESTRICT	0x0040		/* qualify type as restrict */
 #define	DT_DA_VOLATILE	0x0080		/* qualify type as volatile */
 #define	DT_DA_PAREN	0x0100		/* parenthesis tag */
+#define	DT_DA_USER	0x0200		/* user-land type specifier */
 
 typedef enum dt_dclass {
 	DT_DC_DEFAULT,			/* no storage class specified */
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_dis.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_dis.c
index 9afaec9..10c8634 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_dis.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_dis.c
@@ -19,12 +19,16 @@
  *
  * CDDL HEADER END
  */
+
 /*
  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
+/*
+ * Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2013 Joyent, Inc. All rights reserved.
+ */
 
 #include <strings.h>
 #include <stdio.h>
@@ -171,8 +175,8 @@ dt_dis_setx(const dtrace_difo_t *dp, const char *name, dif_instr_t in, FILE *fp)
 	    intptr, DIF_INSTR_RD(in));
 
 	if (intptr < dp->dtdo_intlen) {
-		(void) fprintf(fp, "\t\t! 0x%" PRIx64,
-		    dp->dtdo_inttab[intptr]);
+		(void) fprintf(fp, "\t\t! 0x%llx",
+		    (unsigned long long)dp->dtdo_inttab[intptr]);
 	}
 }
 
@@ -212,12 +216,22 @@ dt_dis_pushts(const dtrace_difo_t *dp,
 {
 	static const char *const tnames[] = { "D type", "string" };
 	uint_t type = DIF_INSTR_TYPE(in);
+	const char *pad;
 
-	(void) fprintf(fp, "%-4s DT_TYPE(%u), %%r%u, %%r%u",
-	    name, type, DIF_INSTR_R2(in), DIF_INSTR_RS(in));
+	if (DIF_INSTR_OP(in) == DIF_OP_PUSHTV) {
+		(void) fprintf(fp, "%-4s DT_TYPE(%u), %%r%u",
+		    name, type, DIF_INSTR_RS(in));
+		pad = "\t\t";
+	} else {
+		(void) fprintf(fp, "%-4s DT_TYPE(%u), %%r%u, %%r%u",
+		    name, type, DIF_INSTR_R2(in), DIF_INSTR_RS(in));
+		pad = "\t";
+	}
 
-	if (type < sizeof (tnames) / sizeof (tnames[0]))
-		(void) fprintf(fp, "\t! DT_TYPE(%u) = %s", type, tnames[type]);
+	if (type < sizeof (tnames) / sizeof (tnames[0])) {
+		(void) fprintf(fp, "%s! DT_TYPE(%u) = %s", pad,
+		    type, tnames[type]);
+	}
 }
 
 static void
@@ -299,9 +313,10 @@ dt_dis_typestr(const dtrace_diftype_t *t, char *buf, size_t len)
 		(void) snprintf(ckind, sizeof (ckind), "0x%x", t->dtdt_ckind);
 	}
 
-	if (t->dtdt_flags & DIF_TF_BYREF) {
-		(void) snprintf(buf, len, "%s (%s) by ref (size %lu)",
-		    kind, ckind, (ulong_t)t->dtdt_size);
+	if (t->dtdt_flags & (DIF_TF_BYREF | DIF_TF_BYUREF)) {
+		(void) snprintf(buf, len, "%s (%s) by %sref (size %lu)",
+		    kind, ckind, (t->dtdt_flags & DIF_TF_BYUREF) ? "user " : "",
+		    (ulong_t)t->dtdt_size);
 	} else {
 		(void) snprintf(buf, len, "%s (%s) (size %lu)",
 		    kind, ckind, (ulong_t)t->dtdt_size);
@@ -318,8 +333,9 @@ dt_dis_rtab(const char *rtag, const dtrace_difo_t *dp, FILE *fp,
 	    rtag, "OFFSET", "DATA", "NAME");
 
 	for (; len != 0; len--, rp++) {
-		(void) fprintf(fp, "%-4u %-8" PRIu64 "%-8" PRIu64 "%s\n",
-		    rp->dofr_type, rp->dofr_offset, rp->dofr_data,
+		(void) fprintf(fp, "%-4u %-8llu %-8llu %s\n",
+		    rp->dofr_type, (unsigned long long)rp->dofr_offset,
+		    (unsigned long long)rp->dofr_data,
 		    &dp->dtdo_strtab[rp->dofr_name]);
 	}
 }
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_dof.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_dof.c
index f35a386..a4e3256 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_dof.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_dof.c
@@ -20,19 +20,18 @@
  */
 
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011 by Delphix. All rights reserved.
+ * Copyright (c) 2013, Joyent, Inc. All rights reserved.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <sys/types.h>
-#if defined(sun)
+#ifdef illumos
 #include <sys/sysmacros.h>
 #endif
 
 #include <strings.h>
-#if defined(sun)
+#ifdef illumos
 #include <alloca.h>
 #endif
 #include <assert.h>
@@ -470,7 +469,7 @@ dof_add_probe(dt_idhash_t *dhp, dt_ident_t *idp, void *data)
 		 * locally so an alternate symbol is added for the purpose
 		 * of this relocation.
 		 */
-		if (pip->pi_rname[0] == '\0')
+		if (pip->pi_rname == NULL)
 			dofr.dofr_name = dofpr.dofpr_func;
 		else
 			dofr.dofr_name = dof_add_string(ddo, pip->pi_rname);
@@ -488,7 +487,7 @@ dof_add_probe(dt_idhash_t *dhp, dt_ident_t *idp, void *data)
 	return (0);
 }
 
-static void
+static int
 dof_add_provider(dt_dof_t *ddo, const dt_provider_t *pvp)
 {
 	dtrace_hdl_t *dtp = ddo->ddo_hdl;
@@ -499,8 +498,12 @@ dof_add_provider(dt_dof_t *ddo, const dt_provider_t *pvp)
 	size_t sz;
 	id_t i;
 
-	if (pvp->pv_flags & DT_PROVIDER_IMPL)
-		return; /* ignore providers that are exported by dtrace(7D) */
+	if (pvp->pv_flags & DT_PROVIDER_IMPL) {
+		/*
+		 * ignore providers that are exported by dtrace(7D)
+		 */
+		return (0);
+	}
 
 	nxr = dt_popcb(pvp->pv_xrefs, pvp->pv_xrmax);
 	dofs = alloca(sizeof (dof_secidx_t) * (nxr + 1));
@@ -527,6 +530,9 @@ dof_add_provider(dt_dof_t *ddo, const dt_provider_t *pvp)
 
 	(void) dt_idhash_iter(pvp->pv_probes, dof_add_probe, ddo);
 
+	if (dt_buf_len(&ddo->ddo_probes) == 0)
+		return (dt_set_errno(dtp, EDT_NOPROBES));
+
 	dofpv.dofpv_probes = dof_add_lsect(ddo, NULL, DOF_SECT_PROBES,
 	    sizeof (uint64_t), 0, sizeof (dof_probe_t),
 	    dt_buf_len(&ddo->ddo_probes));
@@ -581,6 +587,8 @@ dof_add_provider(dt_dof_t *ddo, const dt_provider_t *pvp)
 		    sizeof (dof_secidx_t), 0, sizeof (dof_secidx_t),
 		    sizeof (dof_secidx_t) * (nxr + 1));
 	}
+
+	return (0);
 }
 
 static int
@@ -761,16 +769,23 @@ dtrace_dof_create(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t flags)
 				dofa[i].dofa_difo = DOF_SECIDX_NONE;
 
 			/*
-			 * If the first action in a statement has format data,
-			 * add the format string to the global string table.
+			 * If the first action in a statement has string data,
+			 * add the string to the global string table.  This can
+			 * be due either to a printf() format string
+			 * (dtsd_fmtdata) or a print() type string
+			 * (dtsd_strdata).
 			 */
 			if (sdp != NULL && ap == sdp->dtsd_action) {
 				if (sdp->dtsd_fmtdata != NULL) {
 					(void) dtrace_printf_format(dtp,
 					    sdp->dtsd_fmtdata, fmt, maxfmt + 1);
 					strndx = dof_add_string(ddo, fmt);
-				} else
+				} else if (sdp->dtsd_strdata != NULL) {
+					strndx = dof_add_string(ddo,
+					    sdp->dtsd_strdata);
+				} else {
 					strndx = 0; /* use dtad_arg instead */
+				}
 
 				if ((next = dt_list_next(next)) != NULL)
 					sdp = next->ds_desc;
@@ -817,8 +832,10 @@ dtrace_dof_create(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t flags)
 	 */
 	if (flags & DTRACE_D_PROBES) {
 		for (pvp = dt_list_next(&dtp->dt_provlist);
-		    pvp != NULL; pvp = dt_list_next(pvp))
-			dof_add_provider(ddo, pvp);
+		    pvp != NULL; pvp = dt_list_next(pvp)) {
+			if (dof_add_provider(ddo, pvp) != 0)
+				return (NULL);
+		}
 	}
 
 	/*
@@ -838,7 +855,6 @@ dtrace_dof_create(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t flags)
 	 */
 	h.dofh_secnum = ddo->ddo_nsecs;
 	ssize = sizeof (h) + dt_buf_len(&ddo->ddo_secs);
-	assert(ssize == sizeof (h) + sizeof (dof_sec_t) * ddo->ddo_nsecs);
 
 	h.dofh_loadsz = ssize +
 	    dt_buf_len(&ddo->ddo_ldata) +
@@ -864,6 +880,7 @@ dtrace_dof_create(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t flags)
 
 	sp = dt_buf_ptr(&ddo->ddo_secs);
 	assert(sp[ddo->ddo_strsec].dofs_type == DOF_SECT_STRTAB);
+	assert(ssize == sizeof (h) + sizeof (dof_sec_t) * ddo->ddo_nsecs);
 
 	sp[ddo->ddo_strsec].dofs_offset = ssize + dt_buf_len(&ddo->ddo_ldata);
 	sp[ddo->ddo_strsec].dofs_size = dt_buf_len(&ddo->ddo_strs);
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_error.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_error.c
index 310b0db..339e2de 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_error.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_error.c
@@ -18,11 +18,18 @@
  *
  * CDDL HEADER END
  */
+
 /*
  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ */
+
+#include <string.h>
 #include <strings.h>
 #include <dt_impl.h>
 
@@ -36,7 +43,6 @@ static const struct {
 	{ EDT_VERSREDUCED, "Requested version conflicts with earlier setting" },
 	{ EDT_CTF,	"Unexpected libctf error" },
 	{ EDT_COMPILER, "Error in D program compilation" },
-	{ EDT_NOREG,	"Insufficient registers to generate code" },
 	{ EDT_NOTUPREG,	"Insufficient tuple registers to generate code" },
 	{ EDT_NOMEM,	"Memory allocation failure" },
 	{ EDT_INT2BIG,	"Integer constant table limit exceeded" },
@@ -104,7 +110,9 @@ static const struct {
 	{ EDT_BADSTACKPC, "Invalid stack program counter size" },
 	{ EDT_BADAGGVAR, "Invalid aggregation variable identifier" },
 	{ EDT_OVERSION,	"Client requested deprecated version of library" },
-	{ EDT_ENABLING_ERR, "Failed to enable probe" }
+	{ EDT_ENABLING_ERR, "Failed to enable probe" },
+	{ EDT_NOPROBES, "No probe sites found for declared provider" },
+	{ EDT_CANTLOAD, "Failed to load module" },
 };
 
 static const int _dt_nerr = sizeof (_dt_errlist) / sizeof (_dt_errlist[0]);
@@ -137,7 +145,7 @@ dtrace_errno(dtrace_hdl_t *dtp)
 	return (dtp->dt_errno);
 }
 
-#if defined(sun)
+#ifdef illumos
 int
 dt_set_errno(dtrace_hdl_t *dtp, int err)
 {
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_errtags.h b/external/cddl/osnet/dist/lib/libdtrace/common/dt_errtags.h
index 62f9555..6bc392f 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_errtags.h
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_errtags.h
@@ -24,11 +24,14 @@
  * Use is subject to license terms.
  */
 
+ /*
+  * Copyright (c) 2011, Joyent, Inc. All rights reserved.
+  * Copyright (c) 2012 by Delphix. All rights reserved.
+  */
+
 #ifndef	_DT_ERRTAGS_H
 #define	_DT_ERRTAGS_H
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #ifdef	__cplusplus
 extern "C" {
 #endif
@@ -187,8 +190,14 @@ typedef enum {
 	D_PRINTA_AGGPROTO,		/* printa() aggregation mismatch */
 	D_TRACE_VOID,			/* trace() argument has void type */
 	D_TRACE_DYN,			/* trace() argument has dynamic type */
+	D_TRACE_AGG,			/* trace() argument is an aggregation */
+	D_PRINT_VOID,			/* print() argument has void type */
+	D_PRINT_DYN,			/* print() argument has dynamic type */
+	D_PRINT_AGG,			/* print() argument is an aggregation */
 	D_TRACEMEM_ADDR,		/* tracemem() address bad type */
 	D_TRACEMEM_SIZE,		/* tracemem() size bad type */
+	D_TRACEMEM_ARGS,		/* tracemem() illegal number of args */
+	D_TRACEMEM_DYNSIZE,		/* tracemem() dynamic size bad type */
 	D_STACK_PROTO,			/* stack() prototype mismatch */
 	D_STACK_SIZE,			/* stack() size argument bad type */
 	D_USTACK_FRAMES,		/* ustack() frames arg bad type */
@@ -236,6 +245,24 @@ typedef enum {
 	D_LQUANT_MATCHBASE,		/* lquantize() mismatch on base */
 	D_LQUANT_MATCHLIM,		/* lquantize() mismatch on limit */
 	D_LQUANT_MATCHSTEP,		/* lquantize() mismatch on step */
+	D_LLQUANT_FACTORTYPE,		/* llquantize() bad magnitude type */
+	D_LLQUANT_FACTORVAL,		/* llquantize() bad magnitude value */
+	D_LLQUANT_FACTORMATCH,		/* llquantize() mismatch on magnitude */
+	D_LLQUANT_LOWTYPE,		/* llquantize() bad low mag type */
+	D_LLQUANT_LOWVAL,		/* llquantize() bad low mag value */
+	D_LLQUANT_LOWMATCH,		/* llquantize() mismatch on low mag */
+	D_LLQUANT_HIGHTYPE,		/* llquantize() bad high mag type */
+	D_LLQUANT_HIGHVAL,		/* llquantize() bad high mag value */
+	D_LLQUANT_HIGHMATCH,		/* llquantize() mismatch on high mag */
+	D_LLQUANT_NSTEPTYPE,		/* llquantize() bad # steps type */
+	D_LLQUANT_NSTEPVAL,		/* llquantize() bad # steps value */
+	D_LLQUANT_NSTEPMATCH,		/* llquantize() mismatch on # steps */
+	D_LLQUANT_MAGRANGE,		/* llquantize() bad magnitude range */
+	D_LLQUANT_FACTORNSTEPS,		/* llquantize() # steps < factor */
+	D_LLQUANT_FACTOREVEN,		/* llquantize() bad # steps/factor */
+	D_LLQUANT_FACTORSMALL,		/* llquantize() magnitude too small */
+	D_LLQUANT_MAGTOOBIG,		/* llquantize() high mag too large */
+	D_NOREG,			/* no available internal registers */
 	D_PRINTM_ADDR,			/* printm() memref bad type */
 	D_PRINTM_SIZE,			/* printm() size bad type */
 	D_PRINTT_ADDR,			/* printt() typeref bad type */
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_grammar.y b/external/cddl/osnet/dist/lib/libdtrace/common/dt_grammar.y
index 60ae7ab..6321b65 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_grammar.y
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_grammar.y
@@ -23,8 +23,10 @@
  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
+/*
+ * Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ */
 
 #include <dt_impl.h>
 
@@ -34,8 +36,6 @@
 #define	LINK(l, r)	dt_node_link(l, r)
 #define	DUP(s)		strdup(s)
 
-int yylex(void);
-
 %}
 
 %union {
@@ -104,6 +104,7 @@ int yylex(void);
 %token	DT_KEY_TYPEDEF
 %token	DT_KEY_UNION
 %token	DT_KEY_UNSIGNED
+%token	DT_KEY_USERLAND
 %token	DT_KEY_VOID
 %token	DT_KEY_VOLATILE
 %token	DT_KEY_WHILE
@@ -206,6 +207,8 @@ int yylex(void);
 %type	<l_tok>		unary_operator
 %type	<l_tok>		struct_or_union
 
+%type	<l_str>		dtrace_keyword_ident
+
 %%
 
 dtrace_program: d_expression DT_TOK_EOF { return (dt_node_root($1)); }
@@ -390,12 +393,18 @@ postfix_expression:
 	|	postfix_expression DT_TOK_DOT DT_TOK_TNAME {
 			$$ = OP2(DT_TOK_DOT, $1, dt_node_ident($3));
 		}
+	|	postfix_expression DT_TOK_DOT dtrace_keyword_ident {
+			$$ = OP2(DT_TOK_DOT, $1, dt_node_ident($3));
+		}
 	|	postfix_expression DT_TOK_PTR DT_TOK_IDENT {
 			$$ = OP2(DT_TOK_PTR, $1, dt_node_ident($3));
 		}
 	|	postfix_expression DT_TOK_PTR DT_TOK_TNAME {
 			$$ = OP2(DT_TOK_PTR, $1, dt_node_ident($3));
 		}
+	|	postfix_expression DT_TOK_PTR dtrace_keyword_ident {
+			$$ = OP2(DT_TOK_PTR, $1, dt_node_ident($3));
+		}
 	|	postfix_expression DT_TOK_ADDADD {
 			$$ = OP1(DT_TOK_POSTINC, $1);
 		}
@@ -410,6 +419,10 @@ postfix_expression:
 		    DT_TOK_TNAME DT_TOK_RPAR {
 			$$ = dt_node_offsetof($3, $5);
 		}
+	|	DT_TOK_OFFSETOF DT_TOK_LPAR type_name DT_TOK_COMMA
+		    dtrace_keyword_ident DT_TOK_RPAR {
+			$$ = dt_node_offsetof($3, $5);
+		}
 	|	DT_TOK_XLATE DT_TOK_LT type_name DT_TOK_GT
 		    DT_TOK_LPAR expression DT_TOK_RPAR {
 			$$ = OP2(DT_TOK_XLATE, dt_node_type($3), $6);
@@ -635,6 +648,7 @@ type_specifier:	DT_KEY_VOID { $$ = dt_decl_spec(CTF_K_INTEGER, DUP("void")); }
 	|	DT_KEY_DOUBLE { $$ = dt_decl_spec(CTF_K_FLOAT, DUP("double")); }
 	|	DT_KEY_SIGNED { $$ = dt_decl_attr(DT_DA_SIGNED); }
 	|	DT_KEY_UNSIGNED { $$ = dt_decl_attr(DT_DA_UNSIGNED); }
+	|	DT_KEY_USERLAND { $$ = dt_decl_attr(DT_DA_USER); }
 	|	DT_KEY_STRING {
 			$$ = dt_decl_spec(CTF_K_TYPEDEF, DUP("string"));
 		}
@@ -833,4 +847,15 @@ function_parameters:
 	|	parameter_type_list	{ $$ = $1; }
 	;
 
+dtrace_keyword_ident:
+	  DT_KEY_PROBE { $$ = DUP("probe"); }
+	| DT_KEY_PROVIDER { $$ = DUP("provider"); }
+	| DT_KEY_SELF { $$ = DUP("self"); }
+	| DT_KEY_STRING { $$ = DUP("string"); }
+	| DT_TOK_STRINGOF { $$ = DUP("stringof"); }
+	| DT_KEY_USERLAND { $$ = DUP("userland"); }
+	| DT_TOK_XLATE { $$ = DUP("xlate"); }
+	| DT_KEY_XLATOR { $$ = DUP("translator"); }
+	;
+
 %%
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_handle.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_handle.c
index 84e3fb1..0955717 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_handle.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_handle.c
@@ -31,7 +31,7 @@
 #include <errno.h>
 #include <unistd.h>
 #include <assert.h>
-#if defined(sun)
+#ifdef illumos
 #include <alloca.h>
 #endif
 
@@ -192,13 +192,13 @@ dt_handle_err(dtrace_hdl_t *dtp, dtrace_probedata_t *data)
 	str = (char *)alloca(len);
 
 	if (err.dteda_action == 0) {
-		(void) snprintf(where, sizeof(where), "predicate");
+		(void) sprintf(where, "predicate");
 	} else {
-		(void) snprintf(where, sizeof(where), "action #%d", err.dteda_action);
+		(void) sprintf(where, "action #%d", err.dteda_action);
 	}
 
 	if (err.dteda_offset != -1) {
-		(void) snprintf(offinfo, sizeof(offinfo), " at DIF offset %d", err.dteda_offset);
+		(void) sprintf(offinfo, " at DIF offset %d", err.dteda_offset);
 	} else {
 		offinfo[0] = 0;
 	}
@@ -207,7 +207,8 @@ dt_handle_err(dtrace_hdl_t *dtp, dtrace_probedata_t *data)
 	case DTRACEFLT_BADADDR:
 	case DTRACEFLT_BADALIGN:
 	case DTRACEFLT_BADSTACK:
-		(void) snprintf(details, sizeof(details), " (0x%" PRIx64 ")", err.dteda_addr);
+		(void) sprintf(details, " (0x%llx)",
+		    (unsigned long long)err.dteda_addr);
 		break;
 
 	default:
@@ -333,9 +334,10 @@ dt_handle_cpudrop(dtrace_hdl_t *dtp, processorid_t cpu,
 		size = sizeof (str);
 	}
 
-	(void) snprintf(s, size, "%" PRIu64 "%sdrop%s on CPU %ld\n",
-	    howmany, what == DTRACEDROP_PRINCIPAL ? "" : "aggregation ",
-	    howmany > 1 ? "s" : "", cpu);
+	(void) snprintf(s, size, "%llu %sdrop%s on CPU %d\n",
+	    (unsigned long long)howmany,
+	    what == DTRACEDROP_PRINCIPAL ? "" : "aggregation ",
+	    howmany > 1 ? "s" : "", (int)cpu);
 
 	if (dtp->dt_drophdlr == NULL)
 		return (dt_set_errno(dtp, EDT_DROPABORT));
@@ -426,7 +428,8 @@ dt_handle_status(dtrace_hdl_t *dtp, dtrace_status_t *old, dtrace_status_t *new)
 			size = sizeof (str);
 		}
 
-		(void) snprintf(s, size, "%" PRIu64 "%s%s%s\n", nval - oval,
+		(void) snprintf(s, size, "%llu %s%s%s\n",
+		    (unsigned long long)(nval - oval),
 		    _dt_droptab[i].dtdrt_str, (nval - oval > 1) ? "s" : "",
 		    _dt_droptab[i].dtdrt_msg != NULL ?
 		    _dt_droptab[i].dtdrt_msg : "");
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_ident.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_ident.c
index 13adbb4..7350e38 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_ident.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_ident.c
@@ -22,22 +22,24 @@
 /*
  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
+ * Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2013 Joyent, Inc. All rights reserved.
  */
 
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
-#if defined(sun)
+#ifdef illumos
 #include <sys/sysmacros.h>
 #endif
 #include <strings.h>
 #include <stdlib.h>
-#if defined(sun)
+#ifdef illumos
 #include <alloca.h>
 #endif
 #include <assert.h>
 #include <errno.h>
 #include <ctype.h>
-#if defined(sun)
+#ifdef illumos
 #include <sys/procfs_isa.h>
 #endif
 #include <limits.h>
@@ -104,7 +106,7 @@ dt_idcook_sign(dt_node_t *dnp, dt_ident_t *idp,
 		}
 	}
 
-	dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type);
+	dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type, B_FALSE);
 }
 
 /*
@@ -163,7 +165,7 @@ dt_idcook_assc(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *args)
 		if (argc != 0)
 			isp->dis_args[argc - 1].dn_list = NULL;
 
-		dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type);
+		dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type, B_FALSE);
 
 	} else {
 		dt_idcook_sign(dnp, idp, argc, args,
@@ -202,7 +204,7 @@ dt_idcook_func(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *args)
 		}
 
 		for (p2 = p1; *p2 != '\0'; p2++) {
-			if (!isspace(*p2)) {
+			if (!isspace((unsigned char)*p2)) {
 				i++;
 				break;
 			}
@@ -263,7 +265,7 @@ dt_idcook_func(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *args)
 		 * arguments may not follow optional arguments.
 		 */
 		for (i = 0; i < isp->dis_argc; i++, p1 = p2) {
-			while (isspace(*p1))
+			while (isspace((unsigned char)*p1))
 				p1++; /* skip leading whitespace */
 
 			if ((p2 = strchr(p1, ',')) == NULL)
@@ -304,7 +306,7 @@ dt_idcook_func(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *args)
 			}
 
 			dt_node_type_assign(&isp->dis_args[i],
-			    dtt.dtt_ctfp, dtt.dtt_type);
+			    dtt.dtt_ctfp, dtt.dtt_type, B_FALSE);
 		}
 	}
 
@@ -391,7 +393,9 @@ dt_idcook_args(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *ap)
 
 		dt_node_type_assign(dnp,
 		    prp->pr_argv[ap->dn_value].dtt_ctfp,
-		    prp->pr_argv[ap->dn_value].dtt_type);
+		    prp->pr_argv[ap->dn_value].dtt_type,
+		    prp->pr_argv[ap->dn_value].dtt_flags & DTT_FL_USER ?
+		    B_TRUE : B_FALSE);
 
 	} else if ((dxp = dt_xlator_lookup(dtp,
 	    nnp, xnp, DT_XLATE_FUZZY)) != NULL || (
@@ -419,7 +423,8 @@ dt_idcook_args(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *ap)
 		dnp->dn_ident->di_ctfp = xidp->di_ctfp;
 		dnp->dn_ident->di_type = xidp->di_type;
 
-		dt_node_type_assign(dnp, DT_DYN_CTFP(dtp), DT_DYN_TYPE(dtp));
+		dt_node_type_assign(dnp, DT_DYN_CTFP(dtp), DT_DYN_TYPE(dtp),
+		    B_FALSE);
 
 	} else {
 		xyerror(D_ARGS_XLATOR, "translator for %s[%lld] from %s to %s "
@@ -465,7 +470,7 @@ dt_idcook_regs(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *ap)
 	idp->di_ctfp = dtt.dtt_ctfp;
 	idp->di_type = dtt.dtt_type;
 
-	dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type);
+	dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type, B_FALSE);
 }
 
 /*ARGSUSED*/
@@ -487,7 +492,7 @@ dt_idcook_type(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *args)
 		idp->di_type = dtt.dtt_type;
 	}
 
-	dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type);
+	dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type, B_FALSE);
 }
 
 /*ARGSUSED*/
@@ -495,7 +500,7 @@ static void
 dt_idcook_thaw(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *args)
 {
 	if (idp->di_ctfp != NULL && idp->di_type != CTF_ERR)
-		dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type);
+		dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type, B_FALSE);
 }
 
 static void
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_impl.h b/external/cddl/osnet/dist/lib/libdtrace/common/dt_impl.h
index b603da2..535db449 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_impl.h
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_impl.h
@@ -24,12 +24,17 @@
  * Use is subject to license terms.
  */
 
+/*
+ * Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
+
 #ifndef	_DT_IMPL_H
 #define	_DT_IMPL_H
 
 #include <sys/param.h>
 #include <sys/objfs.h>
-#if !defined(sun)
+#ifndef illumos
 #include <sys/bitmap.h>
 #include <sys/utsname.h>
 #include <sys/ioccom.h>
@@ -40,6 +45,9 @@
 #include <libctf.h>
 #include <dtrace.h>
 #include <gelf.h>
+#ifdef illumos
+#include <synch.h>
+#endif
 
 #ifdef	__cplusplus
 extern "C" {
@@ -56,6 +64,7 @@ extern "C" {
 #include <dt_proc.h>
 #include <dt_dof.h>
 #include <dt_pcb.h>
+#include <dt_pq.h>
 
 struct dt_module;		/* see below */
 struct dt_pfdict;		/* see <dt_printf.h> */
@@ -133,15 +142,35 @@ typedef struct dt_module {
 	GElf_Addr dm_bss_va;	/* virtual address of BSS */
 	GElf_Xword dm_bss_size;	/* size in bytes of BSS */
 	dt_idhash_t *dm_extern;	/* external symbol definitions */
-#if !defined(sun)
+#ifndef illumos
 	caddr_t dm_reloc_offset;	/* Symbol relocation offset. */
+	uintptr_t *dm_sec_offsets;
 #endif
+	pid_t dm_pid;		/* pid for this module */
+	uint_t dm_nctflibs;	/* number of ctf children libraries */
+	ctf_file_t **dm_libctfp; /* process library ctf pointers */
+	char **dm_libctfn;	/* names of process ctf containers */
 } dt_module_t;
 
 #define	DT_DM_LOADED	0x1	/* module symbol and type data is loaded */
 #define	DT_DM_KERNEL	0x2	/* module is associated with a kernel object */
 #define	DT_DM_PRIMARY	0x4	/* module is a krtld primary kernel object */
 
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+/*
+ * A representation of a FreeBSD kernel module, used when checking module
+ * dependencies.  This differs from dt_module_t, which refers to a KLD in the
+ * case of kernel probes.  Since modules can be identified regardless of whether
+ * they've been compiled into the kernel, we use them to identify DTrace
+ * modules.
+ */
+typedef struct dt_kmodule {
+	struct dt_kmodule *dkm_next;	/* hash table entry */
+	char *dkm_name;			/* string name of module */
+	dt_module_t *dkm_module;	/* corresponding KLD module */
+} dt_kmodule_t;
+#endif
+
 typedef struct dt_provmod {
 	char *dp_name;				/* name of provider module */
 	struct dt_provmod *dp_next;		/* next module */
@@ -179,6 +208,9 @@ typedef struct dt_print_aggdata {
 	dtrace_aggvarid_t dtpa_id;	/* aggregation variable of interest */
 	FILE *dtpa_fp;			/* file pointer */
 	int dtpa_allunprint;		/* print only unprinted aggregations */
+	int dtpa_agghist;		/* print aggregation as histogram */
+	int dtpa_agghisthdr;		/* aggregation histogram hdr printed */
+	int dtpa_aggpack;		/* pack quantized aggregations */
 } dt_print_aggdata_t;
 
 typedef struct dt_dirpath {
@@ -218,6 +250,9 @@ struct dtrace_hdl {
 	dt_idhash_t *dt_tls;	/* hash table of thread-local identifiers */
 	dt_list_t dt_modlist;	/* linked list of dt_module_t's */
 	dt_module_t **dt_mods;	/* hash table of dt_module_t's */
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	dt_kmodule_t **dt_kmods; /* hash table of dt_kmodule_t's */
+#endif
 	uint_t dt_modbuckets;	/* number of module hash buckets */
 	uint_t dt_nmods;	/* number of modules in hash and list */
 	dt_provmod_t *dt_provmod; /* linked list of provider modules */
@@ -230,6 +265,7 @@ struct dtrace_hdl {
 	uint_t dt_provbuckets;	/* number of provider hash buckets */
 	uint_t dt_nprovs;	/* number of providers in hash and list */
 	dt_proc_hash_t *dt_procs; /* hash table of grabbed process handles */
+	char **dt_proc_env;	/* additional environment variables */
 	dt_intdesc_t dt_ints[6]; /* cached integer type descriptions */
 	ctf_id_t dt_type_func;	/* cached CTF identifier for function type */
 	ctf_id_t dt_type_fptr;	/* cached CTF identifier for function pointer */
@@ -245,8 +281,10 @@ struct dtrace_hdl {
 	dtrace_aggdesc_t **dt_aggdesc; /* aggregation descriptions */
 	int dt_maxformat;	/* max format ID */
 	void **dt_formats;	/* pointer to format array */
+	int dt_maxstrdata;	/* max strdata ID */
+	char **dt_strdata;	/* pointer to strdata array */
 	dt_aggregate_t dt_aggregate; /* aggregate */
-	dtrace_bufdesc_t dt_buf; /* staging buffer */
+	dt_pq_t *dt_bufq;	/* CPU-specific data queue */
 	struct dt_pfdict *dt_pfdict; /* dictionary of printf conversions */
 	dt_version_t dt_vmax;	/* optional ceiling on program API binding */
 	dtrace_attribute_t dt_amin; /* optional floor on program attributes */
@@ -255,6 +293,9 @@ struct dtrace_hdl {
 	int dt_cpp_argc;	/* count of initialized cpp(1) arguments */
 	int dt_cpp_args;	/* size of dt_cpp_argv[] array */
 	char *dt_ld_path;	/* pathname of ld(1) to invoke if needed */
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	char *dt_objcopy_path;	/* pathname of objcopy(1) to invoke if needed */
+#endif
 	dt_list_t dt_lib_path;	/* linked-list forming library search path */
 	uint_t dt_lazyload;	/* boolean:  set via -xlazyload */
 	uint_t dt_droptags;	/* boolean:  set via -xdroptags */
@@ -270,12 +311,13 @@ struct dtrace_hdl {
 	uint_t dt_linktype;	/* dtrace link output file type (see below) */
 	uint_t dt_xlatemode;	/* dtrace translator linking mode (see below) */
 	uint_t dt_stdcmode;	/* dtrace stdc compatibility mode (see below) */
+	uint_t dt_encoding;	/* dtrace output encoding (see below) */
 	uint_t dt_treedump;	/* dtrace tree debug bitmap (see below) */
 	uint64_t dt_options[DTRACEOPT_MAX]; /* dtrace run-time options */
 	int dt_version;		/* library version requested by client */
 	int dt_ctferr;		/* error resulting from last CTF failure */
 	int dt_errno;		/* error resulting from last failed operation */
-#if !defined(sun)
+#ifndef illumos
 	const char *dt_errfile;
 	int dt_errline;
 #endif
@@ -284,7 +326,7 @@ struct dtrace_hdl {
 	int dt_fterr;		/* saved errno from failed open of dt_ftfd */
 	int dt_cdefs_fd;	/* file descriptor for C CTF debugging cache */
 	int dt_ddefs_fd;	/* file descriptor for D CTF debugging cache */
-#if defined(sun)
+#ifdef illumos
 	int dt_stdout_fd;	/* file descriptor for saved stdout */
 #else
 	FILE *dt_freopen_fp;	/* file pointer for freopened stdout */
@@ -315,6 +357,11 @@ struct dtrace_hdl {
 	struct utsname dt_uts;	/* uname(2) information for system */
 	dt_list_t dt_lib_dep;	/* scratch linked-list of lib dependencies */
 	dt_list_t dt_lib_dep_sorted;	/* dependency sorted library list */
+	dtrace_flowkind_t dt_flow;	/* flow kind */
+	const char *dt_prefix;	/* recommended flow prefix */
+	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 */
 };
 
 /*
@@ -356,6 +403,14 @@ struct dtrace_hdl {
 #define	DT_STDC_XT	3	/* ISO C + K&R C compat with ISO: __STDC__=0 */
 
 /*
+ * Values for the dt_encoding property, which is used to force a particular
+ * character encoding (overriding default behavior and/or automatic detection).
+ */
+#define	DT_ENCODING_UNSET	0
+#define	DT_ENCODING_ASCII	1
+#define	DT_ENCODING_UTF8	2
+
+/*
  * Macro to test whether a given pass bit is set in the dt_treedump bit-vector.
  * If the bit for pass 'p' is set, the D compiler displays the parse tree for
  * the program by printing it to stderr at the end of compiler pass 'p'.
@@ -430,8 +485,9 @@ struct dtrace_hdl {
 #define	DT_ACT_UMOD		DT_ACT(26)	/* umod() action */
 #define	DT_ACT_UADDR		DT_ACT(27)	/* uaddr() action */
 #define	DT_ACT_SETOPT		DT_ACT(28)	/* setopt() action */
-#define	DT_ACT_PRINTM		DT_ACT(29)	/* printm() action */
-#define	DT_ACT_PRINTT		DT_ACT(30)	/* printt() action */
+#define	DT_ACT_PRINT		DT_ACT(29)	/* print() action */
+#define	DT_ACT_PRINTM		DT_ACT(30)	/* printm() action */
+#define	DT_ACT_PRINTT		DT_ACT(31)	/* printt() action */
 
 /*
  * Sentinel to tell freopen() to restore the saved stdout.  This must not
@@ -449,7 +505,6 @@ enum {
 	EDT_VERSREDUCED,	/* requested API version has been reduced */
 	EDT_CTF,		/* libctf called failed (dt_ctferr has more) */
 	EDT_COMPILER,		/* error in D program compilation */
-	EDT_NOREG,		/* register allocation failure */
 	EDT_NOTUPREG,		/* tuple register allocation failure */
 	EDT_NOMEM,		/* memory allocation failure */
 	EDT_INT2BIG,		/* integer limit exceeded */
@@ -517,7 +572,9 @@ enum {
 	EDT_BADSTACKPC,		/* invalid stack program counter size */
 	EDT_BADAGGVAR,		/* invalid aggregation variable identifier */
 	EDT_OVERSION,		/* client is requesting deprecated version */
-	EDT_ENABLING_ERR	/* failed to enable probe */
+	EDT_ENABLING_ERR,	/* failed to enable probe */
+	EDT_NOPROBES,		/* no probes sites for declared provider */
+	EDT_CANTLOAD		/* failed to load a module */
 };
 
 /*
@@ -560,7 +617,7 @@ extern int dt_version_defined(dt_version_t);
 extern char *dt_cpp_add_arg(dtrace_hdl_t *, const char *);
 extern char *dt_cpp_pop_arg(dtrace_hdl_t *);
 
-#if defined(sun)
+#ifdef illumos
 extern int dt_set_errno(dtrace_hdl_t *, int);
 #else
 int _dt_set_errno(dtrace_hdl_t *, int, const char *, int);
@@ -570,7 +627,7 @@ void dt_get_errloc(dtrace_hdl_t *, const char **, int *);
 extern void dt_set_errmsg(dtrace_hdl_t *, const char *, const char *,
     const char *, int, const char *, va_list);
 
-#if defined(sun)
+#ifdef illumos
 extern int dt_ioctl(dtrace_hdl_t *, int, void *);
 #else
 extern int dt_ioctl(dtrace_hdl_t *, u_long, void *);
@@ -586,7 +643,6 @@ extern void dt_free(dtrace_hdl_t *, void *);
 extern void dt_difo_free(dtrace_hdl_t *, dtrace_difo_t *);
 
 extern int dt_gmatch(const char *, const char *);
-extern int gmatch(const char *, const char *);
 extern char *dt_basename(char *);
 
 extern ulong_t dt_popc(ulong_t);
@@ -600,21 +656,16 @@ extern void dt_buffered_destroy(dtrace_hdl_t *);
 
 extern uint64_t dt_stddev(uint64_t *, uint64_t);
 
-#define	DT_MUTEX_HELD(x)	dt_mutex_held(x)
-
-static inline int
-dt_mutex_held(pthread_mutex_t *lock)
-{
-#if defined(sun)
-	extern int _mutex_held(struct _lwp_mutex *);
-	return (_mutex_held((struct _lwp_mutex *)lock));
-#else
-	return (1);
-#endif
-}
-
+extern int dt_rw_read_held(pthread_rwlock_t *);
+extern int dt_rw_write_held(pthread_rwlock_t *);
+extern int dt_mutex_held(pthread_mutex_t *);
 extern int dt_options_load(dtrace_hdl_t *);
 
+#define DT_RW_READ_HELD(x)	dt_rw_read_held(x)	 
+#define DT_RW_WRITE_HELD(x)	dt_rw_write_held(x)	 
+#define DT_RW_LOCK_HELD(x)	(DT_RW_READ_HELD(x) || DT_RW_WRITE_HELD(x))
+#define DT_MUTEX_HELD(x)	dt_mutex_held(x)
+
 extern void dt_dprintf(const char *, ...);
 
 extern void dt_setcontext(dtrace_hdl_t *, dtrace_probedesc_t *);
@@ -639,10 +690,15 @@ extern void dt_aggid_destroy(dtrace_hdl_t *);
 extern void *dt_format_lookup(dtrace_hdl_t *, int);
 extern void dt_format_destroy(dtrace_hdl_t *);
 
+extern const char *dt_strdata_lookup(dtrace_hdl_t *, int);
+extern void dt_strdata_destroy(dtrace_hdl_t *);
+
 extern int dt_print_quantize(dtrace_hdl_t *, FILE *,
     const void *, size_t, uint64_t);
 extern int dt_print_lquantize(dtrace_hdl_t *, FILE *,
     const void *, size_t, uint64_t);
+extern int dt_print_llquantize(dtrace_hdl_t *, FILE *,
+    const void *, size_t, uint64_t);
 extern int dt_print_agg(const dtrace_aggdata_t *, void *);
 
 extern int dt_handle(dtrace_hdl_t *, dtrace_probedata_t *);
@@ -688,6 +744,11 @@ extern int _dtrace_argmax;		/* default maximum probe arguments */
 extern const char *_dtrace_libdir;	/* default library directory */
 extern const char *_dtrace_moddir;	/* default kernel module directory */
 
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+extern int gmatch(const char *, const char *);
+extern int yylex(void);
+#endif
+
 #ifdef	__cplusplus
 }
 #endif
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_lex.l b/external/cddl/osnet/dist/lib/libdtrace/common/dt_lex.l
index 4897527..1cd3cba 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_lex.l
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_lex.l
@@ -18,12 +18,15 @@
  * information: Portions Copyright [yyyy] [name of copyright owner]
  *
  * CDDL HEADER END
- *
- * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+/*
+ * Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ */
 
 #include <string.h>
 #include <stdlib.h>
@@ -41,11 +44,11 @@
  * We need to undefine lex's input and unput macros so that references to these
  * call the functions provided at the end of this source file.
  */
-#if defined(sun)
+#ifdef illumos
 #undef input
 #undef unput
 #else
-/* 
+/*
  * Define YY_INPUT for flex since input() can't be re-defined.
  */
 #define YY_INPUT(buf,result,max_size) \
@@ -60,10 +63,23 @@
 			buf[n] = *yypcb->pcb_strptr++; \
 		result = n; \
 	}
+/*
+ * Do not EOF let tokens to be put back. This does not work with flex.
+ * On the other hand, leaving current buffer in same state it was when
+ * last EOF was received guarantees that input() will keep returning EOF
+ * for all subsequent invocations, which is the effect desired.
+ */
+#undef  unput
+#define unput(c)					\
+	do {						\
+		int _c = c;				\
+		if (_c != EOF)				\
+			yyunput(_c, yytext_ptr);	\
+	} while(0)
 #endif
 
 static int id_or_type(const char *);
-#if defined(sun)
+#ifdef illumos
 static int input(void);
 static void unput(int);
 #endif
@@ -81,13 +97,17 @@ static void unput(int);
 %}
 
 %e 1500		/* maximum nodes */
-%p 3700		/* maximum positions */
+%p 4900		/* maximum positions */
 %n 600		/* maximum states */
+%a 3000		/* maximum transitions */
 
 %s S0 S1 S2 S3 S4
 
 RGX_AGG		"@"[a-zA-Z_][0-9a-zA-Z_]*
 RGX_PSPEC	[-$:a-zA-Z_.?*\\\[\]!][-$:0-9a-zA-Z_.`?*\\\[\]!]*
+RGX_ALTIDENT	[a-zA-Z_][0-9a-zA-Z_]*
+RGX_LMID	LM[0-9a-fA-F]+`
+RGX_MOD_IDENT	[a-zA-Z_`][0-9a-z.A-Z_`]*`
 RGX_IDENT	[a-zA-Z_`][0-9a-zA-Z_`]*
 RGX_INT		([0-9]+|0[xX][0-9A-Fa-f]+)[uU]?[lL]?[lL]?
 RGX_FP		([0-9]+("."?)[0-9]*|"."[0-9]+)((e|E)("+"|-)?[0-9]+)?[fFlL]?
@@ -157,6 +177,7 @@ if (yypcb->pcb_token != 0) {
 <S0>typedef	return (DT_KEY_TYPEDEF);
 <S0>union	return (DT_KEY_UNION);
 <S0>unsigned	return (DT_KEY_UNSIGNED);
+<S0>userland	return (DT_KEY_USERLAND);
 <S0>void	return (DT_KEY_VOID);
 <S0>volatile	return (DT_KEY_VOLATILE);
 <S0>while	return (DT_KEY_WHILE);
@@ -268,8 +289,9 @@ if (yypcb->pcb_token != 0) {
 			 * If the macro text is not a string an begins with a
 			 * digit or a +/- sign, process it as an integer token.
 			 */
-			if (isdigit(v[0]) || v[0] == '-' || v[0] == '+') {
-				if (isdigit(v[0]))
+			if (isdigit((unsigned char)v[0]) || v[0] == '-' ||
+			    v[0] == '+') {
+				if (isdigit((unsigned char)v[0]))
 					yyintprefix = 0;
 				else
 					yyintprefix = *v++;
@@ -335,7 +357,9 @@ if (yypcb->pcb_token != 0) {
 			return (DT_TOK_INT);
 		}
 
-<S0>{RGX_IDENT}	{
+<S0>{RGX_IDENT} |
+<S0>{RGX_MOD_IDENT}{RGX_IDENT} |
+<S0>{RGX_MOD_IDENT} {
 			return (id_or_type(yytext));
 		}
 
@@ -717,9 +741,10 @@ yyinit(dt_pcb_t *pcb)
 	yypcb = pcb;
 	yylineno = 1;
 	yypragma = NULL;
-#if defined(sun)
+#ifdef illumos
 	yysptr = yysbuf;
 #endif
+	YY_FLUSH_BUFFER;
 }
 
 /*
@@ -815,7 +840,7 @@ id_or_type(const char *s)
 	return (ttok);
 }
 
-#if defined(sun)
+#ifdef illumos
 static int
 input(void)
 {
@@ -826,7 +851,7 @@ input(void)
 	else if (yypcb->pcb_fileptr != NULL)
 		c = fgetc(yypcb->pcb_fileptr);
 	else if (yypcb->pcb_strptr < yypcb->pcb_string + yypcb->pcb_strlen)
-		c = *yypcb->pcb_strptr++;
+		c = *(unsigned char *)(yypcb->pcb_strptr++);
 	else
 		c = EOF;
 
@@ -857,4 +882,4 @@ unput(int c)
 	*yysptr++ = c;
 	yytchar = c;
 }
-#endif
+#endif /* illumos */
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_link.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_link.c
index bf9273d..f103c3d 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_link.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_link.c
@@ -28,9 +28,14 @@
 
 #define	ELF_TARGET_ALL
 #include <elf.h>
+#ifdef __NetBSD__
+#ifdef __x86_64__
+#include <i386/elf_machdep.h>
+#endif
+#endif
 
 #include <sys/types.h>
-#if defined(sun)
+#ifdef illumos
 #include <sys/sysmacros.h>
 #else
 #define	P2ROUNDUP(x, align)		(-(-(x) & -(align)))
@@ -38,7 +43,7 @@
 
 #include <unistd.h>
 #include <strings.h>
-#if defined(sun)
+#ifdef illumos
 #include <alloca.h>
 #endif
 #include <limits.h>
@@ -47,10 +52,13 @@
 #include <stdio.h>
 #include <fcntl.h>
 #include <errno.h>
-#if defined(sun)
+#ifdef illumos
 #include <wait.h>
 #else
 #include <sys/wait.h>
+#include <libelf.h>
+#include <gelf.h>
+#include <sys/mman.h>
 #endif
 #include <assert.h>
 #include <sys/ipc.h>
@@ -224,25 +232,29 @@ prepare_elf32(dtrace_hdl_t *dtp, const dof_hdr_t *dof, dof_elf32_t *dep)
 		s = &dofs[dofrh->dofr_tgtsec];
 
 		for (j = 0; j < nrel; j++) {
-#if defined(__arm__)
+#if defined(__aarch64__)
 /* XXX */
 printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
-#elif defined(__ia64__)
+#elif defined(__arm__)
 /* XXX */
 printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
 #elif defined(__i386) || defined(__amd64)
-#ifndef __amd64 /* XXX: FIXME */
 			rel->r_offset = s->dofs_offset +
 			    dofr[j].dofr_offset;
 			rel->r_info = ELF32_R_INFO(count + dep->de_global,
 			    R_386_32);
-#endif
 #elif defined(__mips__)
 /* XXX */
 printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
 #elif defined(__powerpc__)
-/* XXX */
-printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
+			/*
+			 * Add 4 bytes to hit the low half of this 64-bit
+			 * big-endian address.
+			 */
+			rel->r_offset = s->dofs_offset +
+			    dofr[j].dofr_offset + 4;
+			rel->r_info = ELF32_R_INFO(count + dep->de_global,
+			    R_PPC_REL32);
 #elif defined(__sparc)
 			/*
 			 * Add 4 bytes to hit the low half of this 64-bit
@@ -277,7 +289,11 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
 	sym->st_value = 0;
 	sym->st_size = dof->dofh_filesz;
 	sym->st_info = ELF32_ST_INFO(STB_GLOBAL, STT_OBJECT);
+#ifdef illumos
 	sym->st_other = 0;
+#else
+	sym->st_other = ELF32_ST_VISIBILITY(STV_HIDDEN);
+#endif
 	sym->st_shndx = ESHDR_DOF;
 	sym++;
 
@@ -318,7 +334,11 @@ prepare_elf64(dtrace_hdl_t *dtp, const dof_hdr_t *dof, dof_elf64_t *dep)
 	char *strtab;
 	int i, j, nrel;
 	size_t strtabsz = 1;
+#ifdef illumos
 	uint32_t count = 0;
+#else
+	uint64_t count = 0;
+#endif
 	size_t base;
 	Elf64_Sym *sym;
 	Elf64_Rela *rel;
@@ -414,21 +434,29 @@ prepare_elf64(dtrace_hdl_t *dtp, const dof_hdr_t *dof, dof_elf64_t *dep)
 		s = &dofs[dofrh->dofr_tgtsec];
 
 		for (j = 0; j < nrel; j++) {
-printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
-#ifdef DOODAD
-#if defined(__arm__)
+#if defined(__aarch64__)
 /* XXX */
-#elif defined(__ia64__)
+#elif defined(__arm__)
 /* XXX */
 #elif defined(__mips__)
 /* XXX */
 #elif defined(__powerpc__)
-/* XXX */
+			rel->r_offset = s->dofs_offset +
+			    dofr[j].dofr_offset;
+			rel->r_info = ELF64_R_INFO(count + dep->de_global,
+			    R_PPC64_REL64);
 #elif defined(__i386) || defined(__amd64)
 			rel->r_offset = s->dofs_offset +
 			    dofr[j].dofr_offset;
+#ifdef illumos
 			rel->r_info = ELF64_R_INFO(count + dep->de_global,
 			    R_AMD64_64);
+#else
+#if defined(__amd64)
+			rel->r_info = ELF64_R_INFO(count + dep->de_global,
+			    R_X86_64_RELATIVE);
+#endif
+#endif
 #elif defined(__sparc)
 			rel->r_offset = s->dofs_offset +
 			    dofr[j].dofr_offset;
@@ -437,7 +465,6 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
 #else
 #error unknown ISA
 #endif
-#endif
 
 			sym->st_name = base + dofr[j].dofr_name - 1;
 			sym->st_value = 0;
@@ -460,7 +487,11 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
 	sym->st_value = 0;
 	sym->st_size = dof->dofh_filesz;
 	sym->st_info = GELF_ST_INFO(STB_GLOBAL, STT_OBJECT);
+#ifdef illumos
 	sym->st_other = 0;
+#else
+	sym->st_other = ELF64_ST_VISIBILITY(STV_HIDDEN);
+#endif
 	sym->st_shndx = ESHDR_DOF;
 	sym++;
 
@@ -498,6 +529,7 @@ dump_elf32(dtrace_hdl_t *dtp, const dof_hdr_t *dof, int fd)
 	int ret = 0;
 	uint_t nshdr;
 
+	memset(&de, 0, sizeof(de));	// XXX: gcc 
 	if (prepare_elf32(dtp, dof, &de) != 0)
 		return (-1); /* errno is set for us */
 
@@ -520,14 +552,12 @@ dump_elf32(dtrace_hdl_t *dtp, const dof_hdr_t *dof, int fd)
 #else
 	elf_file.ehdr.e_ident[EI_DATA] = ELFDATA2LSB;
 #endif
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 	elf_file.ehdr.e_ident[EI_OSABI] = ELFOSABI_FREEBSD;
 #endif
 	elf_file.ehdr.e_type = ET_REL;
 #if defined(__arm__)
 	elf_file.ehdr.e_machine = EM_ARM;
-#elif defined(__ia64__)
-	elf_file.ehdr.e_machine = EM_IA_64;
 #elif defined(__mips__)
 	elf_file.ehdr.e_machine = EM_MIPS;
 #elif defined(__powerpc__)
@@ -646,6 +676,7 @@ dump_elf64(dtrace_hdl_t *dtp, const dof_hdr_t *dof, int fd)
 	int ret = 0;
 	uint_t nshdr;
 
+	memset(&de, 0, sizeof(de));	// XXX: gcc
 	if (prepare_elf64(dtp, dof, &de) != 0)
 		return (-1); /* errno is set for us */
 
@@ -668,18 +699,16 @@ dump_elf64(dtrace_hdl_t *dtp, const dof_hdr_t *dof, int fd)
 #else
 	elf_file.ehdr.e_ident[EI_DATA] = ELFDATA2LSB;
 #endif
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 	elf_file.ehdr.e_ident[EI_OSABI] = ELFOSABI_FREEBSD;
 #endif
 	elf_file.ehdr.e_type = ET_REL;
 #if defined(__arm__)
 	elf_file.ehdr.e_machine = EM_ARM;
-#elif defined(__ia64__)
-	elf_file.ehdr.e_machine = EM_IA_64;
 #elif defined(__mips__)
 	elf_file.ehdr.e_machine = EM_MIPS;
-#elif defined(__powerpc__)
-	elf_file.ehdr.e_machine = EM_PPC;
+#elif defined(__powerpc64__)
+	elf_file.ehdr.e_machine = EM_PPC64;
 #elif defined(__sparc)
 	elf_file.ehdr.e_machine = EM_SPARCV9;
 #elif defined(__i386) || defined(__amd64)
@@ -773,21 +802,32 @@ dump_elf64(dtrace_hdl_t *dtp, const dof_hdr_t *dof, int fd)
 
 static int
 dt_symtab_lookup(Elf_Data *data_sym, int nsym, uintptr_t addr, uint_t shn,
-    GElf_Sym *sym)
+    GElf_Sym *sym, int uses_funcdesc, Elf *elf)
 {
 	int i, ret = -1;
+	Elf64_Addr symval;
+	Elf_Scn *opd_scn;
+	Elf_Data *opd_desc;
 	GElf_Sym s;
 
 	for (i = 0; i < nsym && gelf_getsym(data_sym, i, sym) != NULL; i++) {
-		if (GELF_ST_TYPE(sym->st_info) == STT_FUNC &&
-		    shn == sym->st_shndx &&
-		    sym->st_value <= addr &&
-		    addr < sym->st_value + sym->st_size) {
-			if (GELF_ST_BIND(sym->st_info) == STB_GLOBAL)
-				return (0);
-
-			ret = 0;
-			s = *sym;
+		if (GELF_ST_TYPE(sym->st_info) == STT_FUNC) {
+			symval = sym->st_value;
+			if (uses_funcdesc) {
+				opd_scn = elf_getscn(elf, sym->st_shndx);
+				opd_desc = elf_rawdata(opd_scn, NULL);
+				symval =
+				    *(uint64_t*)((char *)opd_desc->d_buf + symval);
+			}
+			if ((uses_funcdesc || shn == sym->st_shndx) &&
+			    symval <= addr &&
+			    addr < symval + sym->st_size) {
+				if (GELF_ST_BIND(sym->st_info) == STB_GLOBAL)
+					return (0);
+
+				ret = 0;
+				s = *sym;
+			}
 		}
 	}
 
@@ -796,7 +836,7 @@ dt_symtab_lookup(Elf_Data *data_sym, int nsym, uintptr_t addr, uint_t shn,
 	return (ret);
 }
 
-#if defined(__arm__)
+#if defined(__aarch64__)
 /* XXX */
 static int
 dt_modtext(dtrace_hdl_t *dtp, char *p, int isenabled, GElf_Rela *rela,
@@ -805,7 +845,7 @@ dt_modtext(dtrace_hdl_t *dtp, char *p, int isenabled, GElf_Rela *rela,
 printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
 	return (0);
 }
-#elif defined(__ia64__)
+#elif defined(__arm__)
 /* XXX */
 static int
 dt_modtext(dtrace_hdl_t *dtp, char *p, int isenabled, GElf_Rela *rela,
@@ -824,12 +864,84 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
 	return (0);
 }
 #elif defined(__powerpc__)
+/* The sentinel is 'xor r3,r3,r3'. */
+#define DT_OP_XOR_R3	0x7c631a78
+
+#define DT_OP_NOP		0x60000000
+#define DT_OP_BLR		0x4e800020
+
+/* This captures all forms of branching to address. */
+#define DT_IS_BRANCH(inst)	((inst & 0xfc000000) == 0x48000000)
+#define DT_IS_BL(inst)	(DT_IS_BRANCH(inst) && (inst & 0x01))
+
 /* XXX */
 static int
 dt_modtext(dtrace_hdl_t *dtp, char *p, int isenabled, GElf_Rela *rela,
     uint32_t *off)
 {
-printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
+	uint32_t *ip;
+
+	if ((rela->r_offset & (sizeof (uint32_t) - 1)) != 0)
+		return (-1);
+
+	/*LINTED*/
+	ip = (uint32_t *)(p + rela->r_offset);
+
+	/*
+	 * We only know about some specific relocation types.
+	 */
+	if (GELF_R_TYPE(rela->r_info) != R_PPC_REL24 &&
+	    GELF_R_TYPE(rela->r_info) != R_PPC_PLTREL24)
+		return (-1);
+
+	/*
+	 * We may have already processed this object file in an earlier linker
+	 * invocation. Check to see if the present instruction sequence matches
+	 * the one we would install below.
+	 */
+	if (isenabled) {
+		if (ip[0] == DT_OP_XOR_R3) {
+			(*off) += sizeof (ip[0]);
+			return (0);
+		}
+	} else {
+		if (ip[0] == DT_OP_NOP) {
+			(*off) += sizeof (ip[0]);
+			return (0);
+		}
+	}
+
+	/*
+	 * We only expect branch to address instructions.
+	 */
+	if (!DT_IS_BRANCH(ip[0])) {
+		dt_dprintf("found %x instead of a branch instruction at %llx\n",
+		    ip[0], (u_longlong_t)rela->r_offset);
+		return (-1);
+	}
+
+	if (isenabled) {
+		/*
+		 * It would necessarily indicate incorrect usage if an is-
+		 * enabled probe were tail-called so flag that as an error.
+		 * It's also potentially (very) tricky to handle gracefully,
+		 * but could be done if this were a desired use scenario.
+		 */
+		if (!DT_IS_BL(ip[0])) {
+			dt_dprintf("tail call to is-enabled probe at %llx\n",
+			    (u_longlong_t)rela->r_offset);
+			return (-1);
+		}
+
+		ip[0] = DT_OP_XOR_R3;
+		(*off) += sizeof (ip[0]);
+	} else {
+		if (DT_IS_BL(ip[0]))
+			ip[0] = DT_OP_NOP;
+		else
+			ip[0] = DT_OP_BLR;
+	}
+
 	return (0);
 }
 
@@ -991,11 +1103,9 @@ dt_modtext(dtrace_hdl_t *dtp, char *p, int isenabled, GElf_Rela *rela,
 	 * these types have the same values on both 32-bit and 64-bit
 	 * x86 architectures.
 	 */
-#ifndef __amd64 /* XXX: FIXME */
 	if (GELF_R_TYPE(rela->r_info) != R_386_PC32 &&
 	    GELF_R_TYPE(rela->r_info) != R_386_PLT32)
 		return (-1);
-#endif
 
 	/*
 	 * We may have already processed this object file in an earlier linker
@@ -1122,7 +1232,7 @@ process_obj(dtrace_hdl_t *dtp, const char *obj, int *eprobesp)
 	dt_provider_t *pvp;
 	dt_probe_t *prp;
 	uint32_t off, eclass, emachine1, emachine2;
-	size_t symsize, nsym, isym, istr, len;
+	size_t symsize, nsym = 0, isym, istr, len;
 	key_t objkey;
 	dt_link_pair_t *pair, *bufs = NULL;
 	dt_strtab_t *strtab;
@@ -1156,9 +1266,7 @@ process_obj(dtrace_hdl_t *dtp, const char *obj, int *eprobesp)
 
 	if (dtp->dt_oflags & DTRACE_O_LP64) {
 		eclass = ELFCLASS64;
-#if defined(__ia64__)
-		emachine1 = emachine2 = EM_IA_64;
-#elif defined(__mips__)
+#if defined(__mips__)
 		emachine1 = emachine2 = EM_MIPS;
 #elif defined(__powerpc__)
 		emachine1 = emachine2 = EM_PPC64;
@@ -1179,7 +1287,7 @@ process_obj(dtrace_hdl_t *dtp, const char *obj, int *eprobesp)
 #elif defined(__sparc)
 		emachine1 = EM_SPARC;
 		emachine2 = EM_SPARC32PLUS;
-#elif defined(__i386) || defined(__amd64) || defined(__ia64__)
+#elif defined(__i386) || defined(__amd64)
 		emachine1 = emachine2 = EM_386;
 #endif
 		symsize = sizeof (Elf32_Sym);
@@ -1305,7 +1413,8 @@ process_obj(dtrace_hdl_t *dtp, const char *obj, int *eprobesp)
 				continue;
 
 			if (dt_symtab_lookup(data_sym, isym, rela.r_offset,
-			    shdr_rel.sh_info, &fsym) != 0) {
+			    shdr_rel.sh_info, &fsym,
+			    (emachine1 == EM_PPC64), elf) != 0) {
 				dt_strtab_destroy(strtab);
 				goto err;
 			}
@@ -1466,7 +1575,8 @@ process_obj(dtrace_hdl_t *dtp, const char *obj, int *eprobesp)
 			p = strhyphenate(p + 3); /* strlen("___") */
 
 			if (dt_symtab_lookup(data_sym, isym, rela.r_offset,
-			    shdr_rel.sh_info, &fsym) != 0)
+			    shdr_rel.sh_info, &fsym,
+			    (emachine1 == EM_PPC64), elf) != 0)
 				goto err;
 
 			if (fsym.st_name > data_str->d_size)
@@ -1496,8 +1606,7 @@ process_obj(dtrace_hdl_t *dtp, const char *obj, int *eprobesp)
 				(void) gelf_update_sym(data_sym, isym, &dsym);
 
 				r = (char *)data_str->d_buf + istr;
-				istr += 1 + snprintf(r, data_str->d_size - 
-				    (istr - (size_t)data_str->d_buf), dt_symfmt,
+				istr += 1 + sprintf(r, dt_symfmt,
 				    dt_symprefix, objkey, s);
 				isym++;
 				assert(isym <= nsym);
@@ -1524,14 +1633,36 @@ process_obj(dtrace_hdl_t *dtp, const char *obj, int *eprobesp)
 
 			off = rela.r_offset - fsym.st_value;
 			if (dt_modtext(dtp, data_tgt->d_buf, eprobe,
-			    &rela, &off) != 0) {
+			    &rela, &off) != 0)
 				goto err;
-			}
 
 			if (dt_probe_define(pvp, prp, s, r, off, eprobe) != 0) {
 				return (dt_link_error(dtp, elf, fd, bufs,
 				    "failed to allocate space for probe"));
 			}
+#ifndef illumos
+			/*
+			 * Our linker doesn't understand the SUNW_IGNORE ndx and
+			 * will try to use this relocation when we build the
+			 * final executable. Since we are done processing this
+			 * relocation, mark it as inexistant and let libelf
+			 * remove it from the file.
+			 * If this wasn't done, we would have garbage added to
+			 * the executable file as the symbol is going to be
+			 * change from UND to ABS.
+			 */
+			if (shdr_rel.sh_type == SHT_RELA) {
+				rela.r_offset = 0;
+				rela.r_info  = 0;
+				rela.r_addend = 0;
+				(void) gelf_update_rela(data_rel, i, &rela);
+			} else {
+				GElf_Rel rel;
+				rel.r_offset = 0;
+				rel.r_info = 0;
+				(void) gelf_update_rel(data_rel, i, &rel);
+			}
+#endif
 
 			mod = 1;
 			(void) elf_flagdata(data_tgt, ELF_C_SET, ELF_F_DIRTY);
@@ -1543,13 +1674,13 @@ process_obj(dtrace_hdl_t *dtp, const char *obj, int *eprobesp)
 			 * already been processed by an earlier link
 			 * invocation.
 			 */
-printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
-#ifdef DOODAD
+#ifndef illumos
+#define SHN_SUNW_IGNORE	SHN_ABS
+#endif
 			if (rsym.st_shndx != SHN_SUNW_IGNORE) {
 				rsym.st_shndx = SHN_SUNW_IGNORE;
 				(void) gelf_update_sym(data_sym, ndx, &rsym);
 			}
-#endif
 		}
 	}
 
@@ -1559,6 +1690,9 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
 	(void) elf_end(elf);
 	(void) close(fd);
 
+#ifndef illumos
+	if (nsym > 0)
+#endif
 	while ((pair = bufs) != NULL) {
 		bufs = pair->dlp_next;
 		dt_free(dtp, pair->dlp_str);
@@ -1577,7 +1711,7 @@ int
 dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags,
     const char *file, int objc, char *const objv[])
 {
-#if !defined(sun)
+#ifndef illumos
 	char tfile[PATH_MAX];
 #endif
 	char drti[PATH_MAX];
@@ -1587,9 +1721,19 @@ dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags,
 	size_t len;
 	int eprobes = 0, ret = 0;
 
-#if !defined(sun)
-	/* XXX Should get a temp file name here. */
-	snprintf(tfile, sizeof(tfile), "%s.tmp", file);
+#ifndef illumos
+	if (access(file, R_OK) == 0) {
+		fprintf(stderr, "dtrace: target object (%s) already exists. "
+		    "Please remove the target\ndtrace: object and rebuild all "
+		    "the source objects if you wish to run the DTrace\n"
+		    "dtrace: linking process again\n", file);
+		/*
+		 * Several build infrastructures run DTrace twice (e.g.
+		 * postgres) and we don't want the build to fail. Return
+		 * 0 here since this isn't really a fatal error.
+		 */
+		return (0);
+	}
 #endif
 
 	/*
@@ -1653,7 +1797,7 @@ dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags,
 	if ((dof = dtrace_dof_create(dtp, pgp, dflags)) == NULL)
 		return (-1); /* errno is set for us */
 
-#if defined(sun)
+#ifdef illumos
 	/*
 	 * Create a temporary file and then unlink it if we're going to
 	 * combine it with drti.o later.  We can still refer to it in child
@@ -1664,9 +1808,11 @@ dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags,
 		    "failed to open %s: %s", file, strerror(errno)));
 	}
 #else
-	if ((fd = open(tfile, O_RDWR | O_CREAT | O_TRUNC, 0666)) == -1)
+	snprintf(tfile, sizeof(tfile), "%s.XXXXXX", file);
+	if ((fd = mkostemp(tfile, O_CLOEXEC)) == -1)
 		return (dt_link_error(dtp, NULL, -1, NULL,
-		    "failed to open %s: %s", tfile, strerror(errno)));
+		    "failed to create temporary file %s: %s",
+		    tfile, strerror(errno)));
 #endif
 
 	/*
@@ -1697,7 +1843,7 @@ dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags,
 	}
 
 
-#if defined(sun)
+#ifdef illumos
 	if (!dtp->dt_lazyload)
 		(void) unlink(file);
 #endif
@@ -1707,13 +1853,20 @@ dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags,
 	else
 		status = dump_elf32(dtp, dof, fd);
 
+#ifdef illumos
 	if (status != 0 || lseek(fd, 0, SEEK_SET) != 0) {
 		return (dt_link_error(dtp, NULL, -1, NULL,
 		    "failed to write %s: %s", file, strerror(errno)));
 	}
+#else
+	if (status != 0)
+		return (dt_link_error(dtp, NULL, -1, NULL,
+		    "failed to write %s: %s", tfile,
+		    strerror(dtrace_errno(dtp))));
+#endif
 
 	if (!dtp->dt_lazyload) {
-#if defined(sun)
+#ifdef illumos
 		const char *fmt = "%s -o %s -r -Blocal -Breduce /dev/fd/%d %s";
 
 		if (dtp->dt_oflags & DTRACE_O_LP64) {
@@ -1732,63 +1885,92 @@ dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags,
 		(void) snprintf(cmd, len, fmt, dtp->dt_ld_path, file, fd, drti);
 #else
 		const char *fmt = "%s -o %s -r %s %s";
+		dt_dirpath_t *dp = dt_list_next(&dtp->dt_lib_path);
 
-#if defined(__amd64__)
-		/*
-		 * Arches which default to 64-bit need to explicitly use
-		 * the 32-bit library path.
-		 */
-		int use_32 = !(dtp->dt_oflags & DTRACE_O_LP64);
-#else
-		/*
-		 * Arches which are 32-bit only just use the normal
-		 * library path.
-		 */
-		int use_32 = 0;
-#endif
-
-		(void) snprintf(drti, sizeof (drti), "/usr/lib%s/dtrace/drti.o",
-		    use_32 ? "32":"");
+		(void) snprintf(drti, sizeof (drti), "%s/drti.o", dp->dir_path);
 
 		len = snprintf(&tmp, 1, fmt, dtp->dt_ld_path, file, tfile,
 		    drti) + 1;
 
 		cmd = alloca(len);
 
-		(void) snprintf(cmd, len, fmt, dtp->dt_ld_path, file, tfile, drti);
+		(void) snprintf(cmd, len, fmt, dtp->dt_ld_path, file, tfile,
+		    drti);
 #endif
-
 		if ((status = system(cmd)) == -1) {
-			ret = dt_link_error(dtp, NULL, -1, NULL,
+			ret = dt_link_error(dtp, NULL, fd, NULL,
 			    "failed to run %s: %s", dtp->dt_ld_path,
 			    strerror(errno));
 			goto done;
 		}
 
+		if (WIFSIGNALED(status)) {
+			ret = dt_link_error(dtp, NULL, fd, NULL,
+			    "failed to link %s: %s failed due to signal %d",
+			    file, dtp->dt_ld_path, WTERMSIG(status));
+			goto done;
+		}
+
+		if (WEXITSTATUS(status) != 0) {
+			ret = dt_link_error(dtp, NULL, fd, NULL,
+			    "failed to link %s: %s exited with status %d\n",
+			    file, dtp->dt_ld_path, WEXITSTATUS(status));
+			goto done;
+		}
 		(void) close(fd); /* release temporary file */
 
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+		/*
+		 * Now that we've linked drti.o, reduce the global __SUNW_dof
+		 * symbol to a local symbol. This is needed to so that multiple
+		 * generated object files (for different providers, for
+		 * instance) can be linked together. This is accomplished using
+		 * the -Blocal flag with Sun's linker, but GNU ld doesn't appear
+		 * to have an equivalent option.
+		 */
+		asprintf(&cmd, "%s --localize-hidden %s", dtp->dt_objcopy_path,
+		    file);
+		if ((status = system(cmd)) == -1) {
+			ret = dt_link_error(dtp, NULL, -1, NULL,
+			    "failed to run %s: %s", dtp->dt_objcopy_path,
+			    strerror(errno));
+			free(cmd);
+			goto done;
+		}
+		free(cmd);
+
 		if (WIFSIGNALED(status)) {
 			ret = dt_link_error(dtp, NULL, -1, NULL,
 			    "failed to link %s: %s failed due to signal %d",
-			    file, dtp->dt_ld_path, WTERMSIG(status));
+			    file, dtp->dt_objcopy_path, WTERMSIG(status));
 			goto done;
 		}
 
 		if (WEXITSTATUS(status) != 0) {
 			ret = dt_link_error(dtp, NULL, -1, NULL,
 			    "failed to link %s: %s exited with status %d\n",
-			    file, dtp->dt_ld_path, WEXITSTATUS(status));
+			    file, dtp->dt_objcopy_path, WEXITSTATUS(status));
 			goto done;
 		}
+#endif
 	} else {
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+		if (rename(tfile, file) != 0) {
+			ret = dt_link_error(dtp, NULL, fd, NULL,
+			    "failed to rename %s to %s: %s", tfile, file,
+			    strerror(errno));
+			goto done;
+		}
+#endif
 		(void) close(fd);
 	}
 
 done:
 	dtrace_dof_destroy(dtp, dof);
 
-#if !defined(sun)
-	unlink(tfile);
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	if (!dtp->dt_lazyload)
+		(void) unlink(tfile);
 #endif
 	return (ret);
 }
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_map.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_map.c
index 1c5c868..20081ed 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_map.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_map.c
@@ -23,7 +23,9 @@
  * Use is subject to license terms.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
+/*
+ * Copyright (c) 2011 by Delphix. All rights reserved.
+ */
 
 #include <stdlib.h>
 #include <strings.h>
@@ -35,10 +37,82 @@
 #include <dt_printf.h>
 
 static int
+dt_strdata_add(dtrace_hdl_t *dtp, dtrace_recdesc_t *rec, void ***data, int *max)
+{
+	int maxformat, rval;
+	dtrace_fmtdesc_t fmt;
+	void *result;
+
+	if (rec->dtrd_format == 0)
+		return (0);
+
+	if (rec->dtrd_format <= *max &&
+	    (*data)[rec->dtrd_format - 1] != NULL) {
+		return (0);
+	}
+
+	bzero(&fmt, sizeof (fmt));
+	fmt.dtfd_format = rec->dtrd_format;
+	fmt.dtfd_string = NULL;
+	fmt.dtfd_length = 0;
+
+	if (dt_ioctl(dtp, DTRACEIOC_FORMAT, &fmt) == -1)
+		return (dt_set_errno(dtp, errno));
+
+	if ((fmt.dtfd_string = dt_alloc(dtp, fmt.dtfd_length)) == NULL)
+		return (dt_set_errno(dtp, EDT_NOMEM));
+
+	if (dt_ioctl(dtp, DTRACEIOC_FORMAT, &fmt) == -1) {
+		rval = dt_set_errno(dtp, errno);
+		free(fmt.dtfd_string);
+		return (rval);
+	}
+
+	while (rec->dtrd_format > (maxformat = *max)) {
+		int new_max = maxformat ? (maxformat << 1) : 1;
+		size_t nsize = new_max * sizeof (void *);
+		size_t osize = maxformat * sizeof (void *);
+		void **new_data = dt_zalloc(dtp, nsize);
+
+		if (new_data == NULL) {
+			dt_free(dtp, fmt.dtfd_string);
+			return (dt_set_errno(dtp, EDT_NOMEM));
+		}
+
+		bcopy(*data, new_data, osize);
+		free(*data);
+
+		*data = new_data;
+		*max = new_max;
+	}
+
+	switch (rec->dtrd_action) {
+	case DTRACEACT_DIFEXPR:
+		result = fmt.dtfd_string;
+		break;
+	case DTRACEACT_PRINTA:
+		result = dtrace_printa_create(dtp, fmt.dtfd_string);
+		dt_free(dtp, fmt.dtfd_string);
+		break;
+	default:
+		result = dtrace_printf_create(dtp, fmt.dtfd_string);
+		dt_free(dtp, fmt.dtfd_string);
+		break;
+	}
+
+	if (result == NULL)
+		return (-1);
+
+	(*data)[rec->dtrd_format - 1] = result;
+
+	return (0);
+}
+
+static int
 dt_epid_add(dtrace_hdl_t *dtp, dtrace_epid_t id)
 {
 	dtrace_id_t max;
-	int rval, i, maxformat;
+	int rval, i;
 	dtrace_eprobedesc_t *enabled, *nenabled;
 	dtrace_probedesc_t *probe;
 
@@ -82,7 +156,7 @@ dt_epid_add(dtrace_hdl_t *dtp, dtrace_epid_t id)
 	enabled->dtepd_epid = id;
 	enabled->dtepd_nrecs = 1;
 
-#if defined(sun)
+#ifdef illumos
 	if (dt_ioctl(dtp, DTRACEIOC_EPROBE, enabled) == -1) {
 #else
 	if (dt_ioctl(dtp, DTRACEIOC_EPROBE, &enabled) == -1) {
@@ -106,7 +180,7 @@ dt_epid_add(dtrace_hdl_t *dtp, dtrace_epid_t id)
 		if ((enabled = nenabled) == NULL)
 			return (dt_set_errno(dtp, EDT_NOMEM));
 
-#if defined(sun)
+#ifdef illumos
 		rval = dt_ioctl(dtp, DTRACEIOC_EPROBE, enabled);
 #else
 		rval = dt_ioctl(dtp, DTRACEIOC_EPROBE, &enabled);
@@ -132,71 +206,23 @@ dt_epid_add(dtrace_hdl_t *dtp, dtrace_epid_t id)
 	}
 
 	for (i = 0; i < enabled->dtepd_nrecs; i++) {
-		dtrace_fmtdesc_t fmt;
 		dtrace_recdesc_t *rec = &enabled->dtepd_rec[i];
 
-		if (!DTRACEACT_ISPRINTFLIKE(rec->dtrd_action))
-			continue;
-
-		if (rec->dtrd_format == 0)
-			continue;
-
-		if (rec->dtrd_format <= dtp->dt_maxformat &&
-		    dtp->dt_formats[rec->dtrd_format - 1] != NULL)
-			continue;
-
-		bzero(&fmt, sizeof (fmt));
-		fmt.dtfd_format = rec->dtrd_format;
-		fmt.dtfd_string = NULL;
-		fmt.dtfd_length = 0;
-
-		if (dt_ioctl(dtp, DTRACEIOC_FORMAT, &fmt) == -1) {
-			rval = dt_set_errno(dtp, errno);
-			goto err;
-		}
-
-		if ((fmt.dtfd_string = malloc(fmt.dtfd_length)) == NULL) {
-			rval = dt_set_errno(dtp, EDT_NOMEM);
-			goto err;
-		}
-
-		if (dt_ioctl(dtp, DTRACEIOC_FORMAT, &fmt) == -1) {
-			rval = dt_set_errno(dtp, errno);
-			free(fmt.dtfd_string);
-			goto err;
-		}
-
-		while (rec->dtrd_format > (maxformat = dtp->dt_maxformat)) {
-			int new_max = maxformat ? (maxformat << 1) : 1;
-			size_t nsize = new_max * sizeof (void *);
-			size_t osize = maxformat * sizeof (void *);
-			void **new_formats = malloc(nsize);
-
-			if (new_formats == NULL) {
-				rval = dt_set_errno(dtp, EDT_NOMEM);
-				free(fmt.dtfd_string);
+		if (DTRACEACT_ISPRINTFLIKE(rec->dtrd_action)) {
+			if (dt_strdata_add(dtp, rec, &dtp->dt_formats,
+			    &dtp->dt_maxformat) != 0) {
+				rval = -1;
+				goto err;
+			}
+		} else if (rec->dtrd_action == DTRACEACT_DIFEXPR) {
+			if (dt_strdata_add(dtp, rec,
+			    (void ***)&dtp->dt_strdata,
+			    &dtp->dt_maxstrdata) != 0) {
+				rval = -1;
 				goto err;
 			}
-
-			bzero(new_formats, nsize);
-			bcopy(dtp->dt_formats, new_formats, osize);
-			free(dtp->dt_formats);
-
-			dtp->dt_formats = new_formats;
-			dtp->dt_maxformat = new_max;
 		}
 
-		dtp->dt_formats[rec->dtrd_format - 1] =
-		    rec->dtrd_action == DTRACEACT_PRINTA ?
-		    dtrace_printa_create(dtp, fmt.dtfd_string) :
-		    dtrace_printf_create(dtp, fmt.dtfd_string);
-
-		free(fmt.dtfd_string);
-
-		if (dtp->dt_formats[rec->dtrd_format - 1] == NULL) {
-			rval = -1; /* dt_errno is set for us */
-			goto err;
-		}
 	}
 
 	dtp->dt_pdesc[id] = probe;
@@ -330,7 +356,7 @@ dt_aggid_add(dtrace_hdl_t *dtp, dtrace_aggid_t id)
 		agg->dtagd_id = id;
 		agg->dtagd_nrecs = 1;
 
-#if defined(sun)
+#ifdef illumos
 		if (dt_ioctl(dtp, DTRACEIOC_AGGDESC, agg) == -1) {
 #else
 		if (dt_ioctl(dtp, DTRACEIOC_AGGDESC, &agg) == -1) {
@@ -353,7 +379,7 @@ dt_aggid_add(dtrace_hdl_t *dtp, dtrace_aggid_t id)
 			if ((agg = nagg) == NULL)
 				return (dt_set_errno(dtp, EDT_NOMEM));
 
-#if defined(sun)
+#ifdef illumos
 			rval = dt_ioctl(dtp, DTRACEIOC_AGGDESC, agg);
 #else
 			rval = dt_ioctl(dtp, DTRACEIOC_AGGDESC, &agg);
@@ -440,3 +466,28 @@ dt_aggid_destroy(dtrace_hdl_t *dtp)
 	dtp->dt_aggdesc = NULL;
 	dtp->dt_maxagg = 0;
 }
+
+const char *
+dt_strdata_lookup(dtrace_hdl_t *dtp, int idx)
+{
+	if (idx == 0 || idx > dtp->dt_maxstrdata)
+		return (NULL);
+
+	if (dtp->dt_strdata == NULL)
+		return (NULL);
+
+	return (dtp->dt_strdata[idx - 1]);
+}
+
+void
+dt_strdata_destroy(dtrace_hdl_t *dtp)
+{
+	int i;
+
+	for (i = 0; i < dtp->dt_maxstrdata; i++) {
+		free(dtp->dt_strdata[i]);
+	}
+
+	free(dtp->dt_strdata);
+	dtp->dt_strdata = NULL;
+}
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c
index 094f69a..de6954a 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c
@@ -18,17 +18,16 @@
  *
  * CDDL HEADER END
  */
+
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+/*
+ * Copyright (c) 2013, Joyent, Inc.  All rights reserved.
  */
-
-#ifndef ELFSIZE
-#define ELFSIZE ARCH_ELFSIZE
-#endif
 
 #include <sys/types.h>
-#if defined(sun)
+#ifdef illumos
 #include <sys/modctl.h>
 #include <sys/kobj.h>
 #include <sys/kobj_impl.h>
@@ -38,12 +37,15 @@
 #else
 #include <sys/param.h>
 #include <sys/linker.h>
+#include <sys/module.h>
 #include <sys/stat.h>
+#endif
+#ifdef __NetBSD__
 #include <sys/sysctl.h>
 #endif
 
 #include <unistd.h>
-#if defined(sun)
+#ifdef illumos
 #include <project.h>
 #endif
 #include <strings.h>
@@ -53,8 +55,9 @@
 #include <assert.h>
 #include <errno.h>
 #include <dirent.h>
-#if !defined(sun)
+#ifndef illumos
 #include <fcntl.h>
+#include <libproc_compat.h>
 #endif
 
 #include <dt_strtab.h>
@@ -83,12 +86,21 @@ dt_module_syminit32(dt_module_t *dmp)
 #if STT_NUM != (STT_TLS + 1)
 #error "STT_NUM has grown. update dt_module_syminit32()"
 #endif
+
 	Elf32_Sym *sym = dmp->dm_symtab.cts_data;
 	const char *base = dmp->dm_strtab.cts_data;
 	size_t ss_size = dmp->dm_strtab.cts_size;
 	uint_t i, n = dmp->dm_nsymelems;
 	uint_t asrsv = 0;
 
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	GElf_Ehdr ehdr;
+	int is_elf_obj;
+
+	gelf_getehdr(dmp->dm_elf, &ehdr);
+	is_elf_obj = (ehdr.e_type == ET_REL);
+#endif
+
 	for (i = 0; i < n; i++, sym++) {
 		const char *name = base + sym->st_name;
 		uchar_t type = ELF32_ST_TYPE(sym->st_info);
@@ -103,8 +115,12 @@ dt_module_syminit32(dt_module_t *dmp)
 		    (ELF32_ST_BIND(sym->st_info) != STB_LOCAL || sym->st_size)) {
 			asrsv++; /* reserve space in the address map */
 
-#if !defined(sun)
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 			sym->st_value += (Elf_Addr) dmp->dm_reloc_offset;
+			if (is_elf_obj && sym->st_shndx != SHN_UNDEF &&
+			    sym->st_shndx < ehdr.e_shnum)
+				sym->st_value +=
+				    dmp->dm_sec_offsets[sym->st_shndx];
 #endif
 		}
 
@@ -120,12 +136,21 @@ dt_module_syminit64(dt_module_t *dmp)
 #if STT_NUM != (STT_TLS + 1)
 #error "STT_NUM has grown. update dt_module_syminit64()"
 #endif
+
 	Elf64_Sym *sym = dmp->dm_symtab.cts_data;
 	const char *base = dmp->dm_strtab.cts_data;
 	size_t ss_size = dmp->dm_strtab.cts_size;
 	uint_t i, n = dmp->dm_nsymelems;
 	uint_t asrsv = 0;
 
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	GElf_Ehdr ehdr;
+	int is_elf_obj;
+
+	gelf_getehdr(dmp->dm_elf, &ehdr);
+	is_elf_obj = (ehdr.e_type == ET_REL);
+#endif
+
 	for (i = 0; i < n; i++, sym++) {
 		const char *name = base + sym->st_name;
 		uchar_t type = ELF64_ST_TYPE(sym->st_info);
@@ -139,9 +164,12 @@ dt_module_syminit64(dt_module_t *dmp)
 		if (sym->st_value != 0 &&
 		    (ELF64_ST_BIND(sym->st_info) != STB_LOCAL || sym->st_size)) {
 			asrsv++; /* reserve space in the address map */
-
-#if !defined(sun)
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 			sym->st_value += (Elf_Addr) dmp->dm_reloc_offset;
+			if (is_elf_obj && sym->st_shndx != SHN_UNDEF &&
+			    sym->st_shndx < ehdr.e_shnum)
+				sym->st_value +=
+				    dmp->dm_sec_offsets[sym->st_shndx];
 #endif
 		}
 
@@ -442,6 +470,9 @@ static const dt_modops_t dt_modops_64 = {
 dt_module_t *
 dt_module_create(dtrace_hdl_t *dtp, const char *name)
 {
+	long pid;
+	char *eptr;
+	dt_ident_t *idp;
 	uint_t h = dt_strtab_hash(name, NULL) % dtp->dt_modbuckets;
 	dt_module_t *dmp;
 
@@ -465,6 +496,32 @@ dt_module_create(dtrace_hdl_t *dtp, const char *name)
 	else
 		dmp->dm_ops = &dt_modops_32;
 
+	/*
+	 * Modules for userland processes are special. They always refer to a
+	 * specific process and have a copy of their CTF data from a specific
+	 * instant in time. Any dt_module_t that begins with 'pid' is a module
+	 * for a specific process, much like how any probe description that
+	 * begins with 'pid' is special. pid123 refers to process 123. A module
+	 * that is just 'pid' refers specifically to pid$target. This is
+	 * generally done as D does not currently allow for macros to be
+	 * evaluated when working with types.
+	 */
+	if (strncmp(dmp->dm_name, "pid", 3) == 0) {
+		errno = 0;
+		if (dmp->dm_name[3] == '\0') {
+			idp = dt_idhash_lookup(dtp->dt_macros, "target");
+			if (idp != NULL && idp->di_id != 0)
+				dmp->dm_pid = idp->di_id;
+		} else {
+			pid = strtol(dmp->dm_name + 3, &eptr, 10);
+			if (errno == 0 && *eptr == '\0')
+				dmp->dm_pid = (pid_t)pid;
+			else
+				dt_dprintf("encountered malformed pid "
+				    "module: %s\n", dmp->dm_name);
+		}
+	}
+
 	return (dmp);
 }
 
@@ -489,6 +546,22 @@ dt_module_lookup_by_ctf(dtrace_hdl_t *dtp, ctf_file_t *ctfp)
 	return (ctfp ? ctf_getspecific(ctfp) : NULL);
 }
 
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+dt_kmodule_t *
+dt_kmodule_lookup(dtrace_hdl_t *dtp, const char *name)
+{
+	uint_t h = dt_strtab_hash(name, NULL) % dtp->dt_modbuckets;
+	dt_kmodule_t *dkmp;
+
+	for (dkmp = dtp->dt_kmods[h]; dkmp != NULL; dkmp = dkmp->dkm_next) {
+		if (strcmp(dkmp->dkm_name, name) == 0)
+			return (dkmp);
+	}
+
+	return (NULL);
+}
+#endif
+
 static int
 dt_module_load_sect(dtrace_hdl_t *dtp, dt_module_t *dmp, ctf_sect_t *ctsp)
 {
@@ -498,7 +571,7 @@ dt_module_load_sect(dtrace_hdl_t *dtp, dt_module_t *dmp, ctf_sect_t *ctsp)
 	Elf_Data *dp;
 	Elf_Scn *sp;
 
-	if (elf_getshstrndx(dmp->dm_elf, &shstrs) == 0)
+	if (elf_getshdrstrndx(dmp->dm_elf, &shstrs) == -1)
 		return (dt_set_errno(dtp, EDT_NOTLOADED));
 
 	for (sp = NULL; (sp = elf_nextscn(dmp->dm_elf, sp)) != NULL; ) {
@@ -519,7 +592,7 @@ dt_module_load_sect(dtrace_hdl_t *dtp, dt_module_t *dmp, ctf_sect_t *ctsp)
 	if (sp == NULL || (dp = elf_getdata(sp, NULL)) == NULL)
 		return (0);
 
-#if defined(sun)
+#ifdef illumos
 	ctsp->cts_data = dp->d_buf;
 #else
 	if ((ctsp->cts_data = malloc(dp->d_size)) == NULL)
@@ -534,12 +607,169 @@ dt_module_load_sect(dtrace_hdl_t *dtp, dt_module_t *dmp, ctf_sect_t *ctsp)
 	return (0);
 }
 
+typedef struct dt_module_cb_arg {
+	struct ps_prochandle *dpa_proc;
+	dtrace_hdl_t *dpa_dtp;
+	dt_module_t *dpa_dmp;
+	uint_t dpa_count;
+} dt_module_cb_arg_t;
+
+/* ARGSUSED */
+static int
+dt_module_load_proc_count(void *arg, const prmap_t *prmap, const char *obj)
+{
+	ctf_file_t *fp;
+	dt_module_cb_arg_t *dcp = arg;
+
+	/* Try to grab a ctf container if it exists */
+	fp = Pname_to_ctf(dcp->dpa_proc, obj);
+	if (fp != NULL)
+		dcp->dpa_count++;
+	return (0);
+}
+
+/* ARGSUSED */
+static int
+dt_module_load_proc_build(void *arg, const prmap_t *prmap, const char *obj)
+{
+	ctf_file_t *fp;
+	char buf[MAXPATHLEN], *p;
+	dt_module_cb_arg_t *dcp = arg;
+	int count = dcp->dpa_count;
+	Lmid_t lmid;
+
+	fp = Pname_to_ctf(dcp->dpa_proc, obj);
+	if (fp == NULL)
+		return (0);
+	fp = ctf_dup(fp);
+	if (fp == NULL)
+		return (0);
+	dcp->dpa_dmp->dm_libctfp[count] = fp;
+	/*
+	 * While it'd be nice to simply use objname here, because of our prior
+	 * actions we'll always get a resolved object name to its on disk file.
+	 * Like the pid provider, we need to tell a bit of a lie here. The type
+	 * that the user thinks of is in terms of the libraries they requested,
+	 * eg. libc.so.1, they don't care about the fact that it's
+	 * libc_hwcap.so.1.
+	 */
+	(void) Pobjname(dcp->dpa_proc, prmap->pr_vaddr, buf, sizeof (buf));
+	if ((p = strrchr(buf, '/')) == NULL)
+		p = buf;
+	else
+		p++;
+
+	/*
+	 * If for some reason we can't find a link map id for this module, which
+	 * would be really quite weird. We instead just say the link map id is
+	 * zero.
+	 */
+	if (Plmid(dcp->dpa_proc, prmap->pr_vaddr, &lmid) != 0)
+		lmid = 0;
+
+	if (lmid == 0)
+		dcp->dpa_dmp->dm_libctfn[count] = strdup(p);
+	else
+		(void) asprintf(&dcp->dpa_dmp->dm_libctfn[count],
+		    "LM%x`%s", lmid, p);
+	if (dcp->dpa_dmp->dm_libctfn[count] == NULL)
+		return (1);
+	ctf_setspecific(fp, dcp->dpa_dmp);
+	dcp->dpa_count++;
+	return (0);
+}
+
+/*
+ * We've been asked to load data that belongs to another process. As such we're
+ * going to pgrab it at this instant, load everything that we might ever care
+ * about, and then drive on. The reason for this is that the process that we're
+ * interested in might be changing. As long as we have grabbed it, then this
+ * can't be a problem for us.
+ *
+ * For now, we're actually going to punt on most things and just try to get CTF
+ * data, nothing else. Basically this is only useful as a source of type
+ * information, we can't go and do the stacktrace lookups, etc.
+ */
+static int
+dt_module_load_proc(dtrace_hdl_t *dtp, dt_module_t *dmp)
+{
+	struct ps_prochandle *p;
+	dt_module_cb_arg_t arg;
+
+	/*
+	 * Note that on success we do not release this hold. We must hold this
+	 * for our life time.
+	 */
+	p = dt_proc_grab(dtp, dmp->dm_pid, 0, PGRAB_RDONLY | PGRAB_FORCE);
+	if (p == NULL) {
+		dt_dprintf("failed to grab pid: %d\n", (int)dmp->dm_pid);
+		return (dt_set_errno(dtp, EDT_CANTLOAD));
+	}
+	dt_proc_lock(dtp, p);
+
+	arg.dpa_proc = p;
+	arg.dpa_dtp = dtp;
+	arg.dpa_dmp = dmp;
+	arg.dpa_count = 0;
+	if (Pobject_iter_resolved(p, dt_module_load_proc_count, &arg) != 0) {
+		dt_dprintf("failed to iterate objects\n");
+		dt_proc_release(dtp, p);
+		return (dt_set_errno(dtp, EDT_CANTLOAD));
+	}
+
+	if (arg.dpa_count == 0) {
+		dt_dprintf("no ctf data present\n");
+		dt_proc_unlock(dtp, p);
+		dt_proc_release(dtp, p);
+		return (dt_set_errno(dtp, EDT_CANTLOAD));
+	}
+
+	dmp->dm_libctfp = malloc(sizeof (ctf_file_t *) * arg.dpa_count);
+	if (dmp->dm_libctfp == NULL) {
+		dt_proc_unlock(dtp, p);
+		dt_proc_release(dtp, p);
+		return (dt_set_errno(dtp, EDT_NOMEM));
+	}
+	bzero(dmp->dm_libctfp, sizeof (ctf_file_t *) * arg.dpa_count);
+
+	dmp->dm_libctfn = malloc(sizeof (char *) * arg.dpa_count);
+	if (dmp->dm_libctfn == NULL) {
+		free(dmp->dm_libctfp);
+		dt_proc_unlock(dtp, p);
+		dt_proc_release(dtp, p);
+		return (dt_set_errno(dtp, EDT_NOMEM));
+	}
+	bzero(dmp->dm_libctfn, sizeof (char *) * arg.dpa_count);
+
+	dmp->dm_nctflibs = arg.dpa_count;
+
+	arg.dpa_count = 0;
+	if (Pobject_iter_resolved(p, dt_module_load_proc_build, &arg) != 0) {
+		dt_proc_unlock(dtp, p);
+		dt_module_unload(dtp, dmp);
+		dt_proc_release(dtp, p);
+		return (dt_set_errno(dtp, EDT_CANTLOAD));
+	}
+	assert(arg.dpa_count == dmp->dm_nctflibs);
+	dt_dprintf("loaded %d ctf modules for pid %d\n", arg.dpa_count,
+	    (int)dmp->dm_pid);
+
+	dt_proc_unlock(dtp, p);
+	dt_proc_release(dtp, p);
+	dmp->dm_flags |= DT_DM_LOADED;
+
+	return (0);
+}
+
 int
 dt_module_load(dtrace_hdl_t *dtp, dt_module_t *dmp)
 {
 	if (dmp->dm_flags & DT_DM_LOADED)
 		return (0); /* module is already loaded */
 
+	if (dmp->dm_pid != 0)
+		return (dt_module_load_proc(dtp, dmp));
+
 	dmp->dm_ctdata.cts_name = ".SUNW_ctf";
 	dmp->dm_ctdata.cts_type = SHT_PROGBITS;
 	dmp->dm_ctdata.cts_flags = 0;
@@ -625,6 +855,14 @@ dt_module_load(dtrace_hdl_t *dtp, dt_module_t *dmp)
 	return (0);
 }
 
+int
+dt_module_hasctf(dtrace_hdl_t *dtp, dt_module_t *dmp)
+{
+	if (dmp->dm_pid != 0 && dmp->dm_nctflibs > 0)
+		return (1);
+	return (dt_module_getctf(dtp, dmp) != NULL);
+}
+
 ctf_file_t *
 dt_module_getctf(dtrace_hdl_t *dtp, dt_module_t *dmp)
 {
@@ -698,10 +936,12 @@ err:
 void
 dt_module_unload(dtrace_hdl_t *dtp, dt_module_t *dmp)
 {
+	int i;
+
 	ctf_close(dmp->dm_ctfp);
 	dmp->dm_ctfp = NULL;
 
-#if !defined(sun)
+#ifndef illumos
 	if (dmp->dm_ctdata.cts_data != NULL) {
 		free(dmp->dm_ctdata.cts_data);
 	}
@@ -713,6 +953,17 @@ dt_module_unload(dtrace_hdl_t *dtp, dt_module_t *dmp)
 	}
 #endif
 
+	if (dmp->dm_libctfp != NULL) {
+		for (i = 0; i < dmp->dm_nctflibs; i++) {
+			ctf_close(dmp->dm_libctfp[i]);
+			free(dmp->dm_libctfn[i]);
+		}
+		free(dmp->dm_libctfp);
+		free(dmp->dm_libctfn);
+		dmp->dm_libctfp = NULL;
+		dmp->dm_nctflibs = 0;
+	}
+
 	bzero(&dmp->dm_ctdata, sizeof (ctf_sect_t));
 	bzero(&dmp->dm_symtab, sizeof (ctf_sect_t));
 	bzero(&dmp->dm_strtab, sizeof (ctf_sect_t));
@@ -731,7 +982,12 @@ dt_module_unload(dtrace_hdl_t *dtp, dt_module_t *dmp)
 		free(dmp->dm_asmap);
 		dmp->dm_asmap = NULL;
 	}
-
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	if (dmp->dm_sec_offsets != NULL) {
+		free(dmp->dm_sec_offsets);
+		dmp->dm_sec_offsets = NULL;
+	}
+#endif
 	dmp->dm_symfree = 0;
 	dmp->dm_nsymbuckets = 0;
 	dmp->dm_nsymelems = 0;
@@ -753,16 +1009,33 @@ dt_module_unload(dtrace_hdl_t *dtp, dt_module_t *dmp)
 	(void) elf_end(dmp->dm_elf);
 	dmp->dm_elf = NULL;
 
+	dmp->dm_pid = 0;
+
 	dmp->dm_flags &= ~DT_DM_LOADED;
 }
 
 void
 dt_module_destroy(dtrace_hdl_t *dtp, dt_module_t *dmp)
 {
+	uint_t h = dt_strtab_hash(dmp->dm_name, NULL) % dtp->dt_modbuckets;
+	dt_module_t **dmpp = &dtp->dt_mods[h];
+
 	dt_list_delete(&dtp->dt_modlist, dmp);
 	assert(dtp->dt_nmods != 0);
 	dtp->dt_nmods--;
 
+	/*
+	 * Now remove this module from its hash chain.  We expect to always
+	 * find the module on its hash chain, so in this loop we assert that
+	 * we don't run off the end of the list.
+	 */
+	while (*dmpp != dmp) {
+		dmpp = &((*dmpp)->dm_next);
+		assert(*dmpp != NULL);
+	}
+
+	*dmpp = dmp->dm_next;
+
 	dt_module_unload(dtp, dmp);
 	free(dmp);
 }
@@ -826,6 +1099,34 @@ dt_module_modelname(dt_module_t *dmp)
 		return ("32-bit");
 }
 
+/* ARGSUSED */
+int
+dt_module_getlibid(dtrace_hdl_t *dtp, dt_module_t *dmp, const ctf_file_t *fp)
+{
+	int i;
+
+	for (i = 0; i < dmp->dm_nctflibs; i++) {
+		if (dmp->dm_libctfp[i] == fp)
+			return (i);
+	}
+
+	return (-1);
+}
+
+/* ARGSUSED */
+ctf_file_t *
+dt_module_getctflib(dtrace_hdl_t *dtp, dt_module_t *dmp, const char *name)
+{
+	int i;
+
+	for (i = 0; i < dmp->dm_nctflibs; i++) {
+		if (strcmp(dmp->dm_libctfn[i], name) == 0)
+			return (dmp->dm_libctfp[i]);
+	}
+
+	return (NULL);
+}
+
 /*
  * Update our module cache by adding an entry for the specified module 'name'.
  * We create the dt_module_t and populate it using /system/object/<name>/.
@@ -834,11 +1135,21 @@ dt_module_modelname(dt_module_t *dmp)
  * including the path.
  */
 static void
+#if defined(illumos) || defined(__NetBSD__)
 dt_module_update(dtrace_hdl_t *dtp, const char *name)
+#elif defined(__FreeBSD__)
+dt_module_update(dtrace_hdl_t *dtp, struct kld_file_stat *k_stat)
+#endif
 {
 	char fname[MAXPATHLEN];
 	struct stat64 st;
 	int fd, err, bits;
+#if defined(__FreeBSD__) 
+	struct module_stat ms;
+	dt_kmodule_t *dkmp;
+	uint_t h;
+	int modid;
+#endif
 
 	dt_module_t *dmp;
 	const char *s;
@@ -847,19 +1158,27 @@ dt_module_update(dtrace_hdl_t *dtp, const char *name)
 	Elf_Data *dp;
 	Elf_Scn *sp;
 
-#if defined(sun)
+#ifdef illumos
 	(void) snprintf(fname, sizeof (fname),
 	    "%s/%s/object", OBJFS_ROOT, name);
-#else
+#elif defined(__FreeBSD__)
+	GElf_Ehdr ehdr;
 	GElf_Phdr ph;
-	int i;
+	char name[MAXPATHLEN];
+	uintptr_t mapbase, alignmask;
+	int i = 0;
+	int is_elf_obj;
+
+	(void) strlcpy(name, k_stat->name, sizeof(name));
+	(void) strlcpy(fname, k_stat->pathname, sizeof(fname));
+#elif defined(__NetBSD__)
 	int mib_osrel[2] = { CTL_KERN, KERN_OSRELEASE };
 	int mib_mach[2] = { CTL_HW, HW_MACHINE };
 	char osrel[64];
 	char machine[64];
 	size_t len;
 
-	if (strcmp("netbsd",name) == 0) {
+	if (strcmp("netbsd", name) == 0) {
 		/* want the kernel */
 		strncpy(fname, "/netbsd", sizeof(fname));
 	} else {
@@ -902,7 +1221,7 @@ dt_module_update(dtrace_hdl_t *dtp, const char *name)
 	(void) close(fd);
 
 	if (dmp->dm_elf == NULL || err == -1 ||
-	    elf_getshstrndx(dmp->dm_elf, &shstrs) == 0) {
+	    elf_getshdrstrndx(dmp->dm_elf, &shstrs) == -1) {
 		dt_dprintf("failed to load %s: %s\n",
 		    fname, elf_errmsg(elf_errno()));
 		dt_module_destroy(dtp, dmp);
@@ -923,7 +1242,20 @@ dt_module_update(dtrace_hdl_t *dtp, const char *name)
 		dt_module_destroy(dtp, dmp);
 		return;
 	}
-
+#if defined(__FreeBSD__)
+	mapbase = (uintptr_t)k_stat->address;
+	gelf_getehdr(dmp->dm_elf, &ehdr);
+	is_elf_obj = (ehdr.e_type == ET_REL);
+	if (is_elf_obj) {
+		dmp->dm_sec_offsets =
+		    malloc(ehdr.e_shnum * sizeof(*dmp->dm_sec_offsets));
+		if (dmp->dm_sec_offsets == NULL) {
+			dt_dprintf("failed to allocate memory\n");
+			dt_module_destroy(dtp, dmp);
+			return;
+		}
+	}
+#endif
 	/*
 	 * Iterate over the section headers locating various sections of
 	 * interest and use their attributes to flesh out the dt_module_t.
@@ -932,7 +1264,19 @@ dt_module_update(dtrace_hdl_t *dtp, const char *name)
 		if (gelf_getshdr(sp, &sh) == NULL || sh.sh_type == SHT_NULL ||
 		    (s = elf_strptr(dmp->dm_elf, shstrs, sh.sh_name)) == NULL)
 			continue; /* skip any malformed sections */
-
+#if defined(__FreeBSD__)
+		if (sh.sh_size == 0)
+			continue;
+		if (sh.sh_type == SHT_PROGBITS || sh.sh_type == SHT_NOBITS) {
+			alignmask = sh.sh_addralign - 1;
+			mapbase += alignmask;
+			mapbase &= ~alignmask;
+			sh.sh_addr = mapbase;
+			if (is_elf_obj)
+				dmp->dm_sec_offsets[elf_ndxscn(sp)] = sh.sh_addr;
+			mapbase += sh.sh_size;
+		}
+#endif
 		if (strcmp(s, ".text") == 0) {
 			dmp->dm_text_size = sh.sh_size;
 			dmp->dm_text_va = sh.sh_addr;
@@ -954,11 +1298,17 @@ dt_module_update(dtrace_hdl_t *dtp, const char *name)
 	}
 
 	dmp->dm_flags |= DT_DM_KERNEL;
-#if defined(sun)
+#ifdef illumos
 	dmp->dm_modid = (int)OBJFS_MODID(st.st_ino);
 #else
-#if defined(__i386__)
-#if 0	/* XXX TBD needs module support */
+	/*
+	 * Include .rodata and special sections into .text.
+	 * This depends on default section layout produced by GNU ld
+	 * for ELF objects and libraries:
+	 * [Text][R/O data][R/W data][Dynamic][BSS][Non loadable]
+	 */
+	dmp->dm_text_size = dmp->dm_data_va - dmp->dm_text_va;
+#if defined(__i386__) && !defined(__NetBSD__)
 	/*
 	 * Find the first load section and figure out the relocation
 	 * offset for the symbols. The kernel module will not need
@@ -971,12 +1321,38 @@ dt_module_update(dtrace_hdl_t *dtp, const char *name)
 		}
 	}
 #endif
-#endif
-#endif
+#endif /* illumos */
 
 	if (dmp->dm_info.objfs_info_primary)
 		dmp->dm_flags |= DT_DM_PRIMARY;
 
+#if defined(__FreeBSD__)
+	ms.version = sizeof(ms);
+	for (modid = kldfirstmod(k_stat->id); modid > 0;
+	    modid = modnext(modid)) {
+		if (modstat(modid, &ms) != 0) {
+			dt_dprintf("modstat failed for id %d in %s: %s\n",
+			    modid, k_stat->name, strerror(errno));
+			continue;
+		}
+		if (dt_kmodule_lookup(dtp, ms.name) != NULL)
+			continue;
+
+		dkmp = malloc(sizeof (*dkmp));
+		if (dkmp == NULL) {
+			dt_dprintf("failed to allocate memory\n");
+			dt_module_destroy(dtp, dmp);
+			return;
+		}
+
+		h = dt_strtab_hash(ms.name, NULL) % dtp->dt_modbuckets;
+		dkmp->dkm_next = dtp->dt_kmods[h];
+		dkmp->dkm_name = strdup(ms.name);
+		dkmp->dkm_module = dmp;
+		dtp->dt_kmods[h] = dkmp;
+	}
+#endif
+
 	dt_dprintf("opened %d-bit module %s (%s) [%d]\n",
 	    bits, dmp->dm_name, dmp->dm_file, dmp->dm_modid);
 }
@@ -989,8 +1365,9 @@ void
 dtrace_update(dtrace_hdl_t *dtp)
 {
 	dt_module_t *dmp;
+#ifdef illumos
 	DIR *dirp;
-#if defined(__FreeBSD__)
+#elif defined(__FreeBSD__)
 	int fileid;
 #endif
 
@@ -998,7 +1375,7 @@ dtrace_update(dtrace_hdl_t *dtp)
 	    dmp != NULL; dmp = dt_list_next(dmp))
 		dt_module_unload(dtp, dmp);
 
-#if defined(sun)
+#ifdef illumos
 	/*
 	 * Open /system/object and attempt to create a libdtrace module for
 	 * each kernel module that is loaded on the current system.
@@ -1025,7 +1402,7 @@ dtrace_update(dtrace_hdl_t *dtp)
 		if (kldstat(fileid, &k_stat) == 0)
 			dt_module_update(dtp, &k_stat);
 	}
-#else
+#elif defined(__NetBSD__)
 	/* XXX just the kernel for now */
 	dt_module_update(dtp, "netbsd");
 #endif
@@ -1041,11 +1418,11 @@ dtrace_update(dtrace_hdl_t *dtp)
 	dt_idhash_lookup(dtp->dt_macros, "pid")->di_id = getpid();
 	dt_idhash_lookup(dtp->dt_macros, "pgid")->di_id = getpgid(0);
 	dt_idhash_lookup(dtp->dt_macros, "ppid")->di_id = getppid();
-#if defined(sun)
+#ifdef illumos
 	dt_idhash_lookup(dtp->dt_macros, "projid")->di_id = getprojid();
 #endif
 	dt_idhash_lookup(dtp->dt_macros, "sid")->di_id = getsid(0);
-#if defined(sun)
+#ifdef illumos
 	dt_idhash_lookup(dtp->dt_macros, "taskid")->di_id = gettaskid();
 #endif
 	dt_idhash_lookup(dtp->dt_macros, "uid")->di_id = getuid();
@@ -1244,9 +1621,11 @@ dtrace_lookup_by_type(dtrace_hdl_t *dtp, const char *object, const char *name,
 	dtrace_typeinfo_t ti;
 	dt_module_t *dmp;
 	int found = 0;
-	ctf_id_t id;
-	uint_t n;
+	ctf_id_t id = CTF_ERR;	// XXX: gcc
+	uint_t n, i;
 	int justone;
+	ctf_file_t *fp = NULL;	// XXX: gcc
+	char *buf, *p, *q;
 
 	uint_t mask = 0; /* mask of dt_module flags to match */
 	uint_t bits = 0; /* flag bits that must be present */
@@ -1261,7 +1640,6 @@ dtrace_lookup_by_type(dtrace_hdl_t *dtp, const char *object, const char *name,
 			return (-1); /* dt_errno is set for us */
 		n = 1;
 		justone = 1;
-
 	} else {
 		if (object == DTRACE_OBJ_KMODS)
 			mask = bits = DT_DM_KERNEL;
@@ -1285,7 +1663,7 @@ dtrace_lookup_by_type(dtrace_hdl_t *dtp, const char *object, const char *name,
 		 * module.  If our search was scoped to only one module then
 		 * return immediately leaving dt_errno unmodified.
 		 */
-		if (dt_module_getctf(dtp, dmp) == NULL) {
+		if (dt_module_hasctf(dtp, dmp) == 0) {
 			if (justone)
 				return (-1);
 			continue;
@@ -1297,13 +1675,38 @@ dtrace_lookup_by_type(dtrace_hdl_t *dtp, const char *object, const char *name,
 		 * 'tip' and keep going in the hope that we will locate the
 		 * underlying structure definition.  Otherwise just return.
 		 */
-		if ((id = ctf_lookup_by_name(dmp->dm_ctfp, name)) != CTF_ERR) {
+		if (dmp->dm_pid == 0) {
+			id = ctf_lookup_by_name(dmp->dm_ctfp, name);
+			fp = dmp->dm_ctfp;
+		} else {
+			if ((p = strchr(name, '`')) != NULL) {
+				buf = strdup(name);
+				if (buf == NULL)
+					return (dt_set_errno(dtp, EDT_NOMEM));
+				p = strchr(buf, '`');
+				if ((q = strchr(p + 1, '`')) != NULL)
+					p = q;
+				*p = '\0';
+				fp = dt_module_getctflib(dtp, dmp, buf);
+				if (fp == NULL || (id = ctf_lookup_by_name(fp,
+				    p + 1)) == CTF_ERR)
+					id = CTF_ERR;
+				free(buf);
+			} else {
+				for (i = 0; i < dmp->dm_nctflibs; i++) {
+					fp = dmp->dm_libctfp[i];
+					id = ctf_lookup_by_name(fp, name);
+					if (id != CTF_ERR)
+						break;
+				}
+			}
+		}
+		if (id != CTF_ERR) {
 			tip->dtt_object = dmp->dm_name;
-			tip->dtt_ctfp = dmp->dm_ctfp;
+			tip->dtt_ctfp = fp;
 			tip->dtt_type = id;
-
-			if (ctf_type_kind(dmp->dm_ctfp, ctf_type_resolve(
-			    dmp->dm_ctfp, id)) != CTF_K_FORWARD)
+			if (ctf_type_kind(fp, ctf_type_resolve(fp, id)) !=
+			    CTF_K_FORWARD)
 				return (0);
 
 			found++;
@@ -1325,6 +1728,7 @@ dtrace_symbol_type(dtrace_hdl_t *dtp, const GElf_Sym *symp,
 	tip->dtt_object = NULL;
 	tip->dtt_ctfp = NULL;
 	tip->dtt_type = CTF_ERR;
+	tip->dtt_flags = 0;
 
 	if ((dmp = dt_module_lookup_by_name(dtp, sip->dts_object)) == NULL)
 		return (dt_set_errno(dtp, EDT_NOMOD));
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.h b/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.h
index 8334a2b..bcfccdf 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.h
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.h
@@ -23,12 +23,13 @@
  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
+/*
+ * Copyright (c) 2013, Joyent, Inc.  All rights reserved.
+ */
 
 #ifndef	_DT_MODULE_H
 #define	_DT_MODULE_H
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <dt_impl.h>
 
 #ifdef	__cplusplus
@@ -43,11 +44,20 @@ extern void dt_module_destroy(dtrace_hdl_t *, dt_module_t *);
 extern dt_module_t *dt_module_lookup_by_name(dtrace_hdl_t *, const char *);
 extern dt_module_t *dt_module_lookup_by_ctf(dtrace_hdl_t *, ctf_file_t *);
 
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+extern dt_kmodule_t *dt_kmodule_lookup(dtrace_hdl_t *, const char *);
+#endif
+
+extern int dt_module_hasctf(dtrace_hdl_t *, dt_module_t *);
 extern ctf_file_t *dt_module_getctf(dtrace_hdl_t *, dt_module_t *);
 extern dt_ident_t *dt_module_extern(dtrace_hdl_t *, dt_module_t *,
     const char *, const dtrace_typeinfo_t *);
 
 extern const char *dt_module_modelname(dt_module_t *);
+extern int dt_module_getlibid(dtrace_hdl_t *, dt_module_t *,
+    const ctf_file_t *);
+extern ctf_file_t *dt_module_getctflib(dtrace_hdl_t *, dt_module_t *,
+    const char *);
 
 #ifdef	__cplusplus
 }
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c
index 911e8ac..da84a57 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c
@@ -20,22 +20,25 @@
  */
 
 /*
- * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * 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.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <sys/types.h>
-#if defined(sun)
+#ifdef illumos
 #include <sys/modctl.h>
 #include <sys/systeminfo.h>
+#else
+#include <sys/param.h>
+#include <sys/module.h>
+#include <sys/linker.h>
 #endif
 #include <sys/resource.h>
 
 #include <libelf.h>
 #include <strings.h>
-#if defined(sun)
+#ifdef illumos
 #include <alloca.h>
 #endif
 #include <limits.h>
@@ -56,7 +59,7 @@
 #include <dt_printf.h>
 #include <dt_string.h>
 #include <dt_provider.h>
-#if !defined(sun)
+#ifndef illumos
 #include <sys/sysctl.h>
 #include <string.h>
 #endif
@@ -93,7 +96,7 @@
 
 /*
  * The version number should be increased for every customer visible release
- * of Solaris. The major number should be incremented when a fundamental
+ * of DTrace. The major number should be incremented when a fundamental
  * change has been made that would affect all consumers, and would reflect
  * sweeping changes to DTrace or the D language. The minor number should be
  * incremented when a change is introduced that could break scripts that had
@@ -116,8 +119,19 @@
 #define	DT_VERS_1_6	DT_VERSION_NUMBER(1, 6, 0)
 #define	DT_VERS_1_6_1	DT_VERSION_NUMBER(1, 6, 1)
 #define	DT_VERS_1_6_2	DT_VERSION_NUMBER(1, 6, 2)
-#define	DT_VERS_LATEST	DT_VERS_1_6_2
-#define	DT_VERS_STRING	"Sun D 1.6.2"
+#define	DT_VERS_1_6_3	DT_VERSION_NUMBER(1, 6, 3)
+#define	DT_VERS_1_7	DT_VERSION_NUMBER(1, 7, 0)
+#define	DT_VERS_1_7_1	DT_VERSION_NUMBER(1, 7, 1)
+#define	DT_VERS_1_8	DT_VERSION_NUMBER(1, 8, 0)
+#define	DT_VERS_1_8_1	DT_VERSION_NUMBER(1, 8, 1)
+#define	DT_VERS_1_9	DT_VERSION_NUMBER(1, 9, 0)
+#define	DT_VERS_1_9_1	DT_VERSION_NUMBER(1, 9, 1)
+#define	DT_VERS_1_10	DT_VERSION_NUMBER(1, 10, 0)
+#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"
 
 const dt_version_t _dtrace_versions[] = {
 	DT_VERS_1_0,	/* D API 1.0.0 (PSARC 2001/466) Solaris 10 FCS */
@@ -132,17 +146,29 @@ const dt_version_t _dtrace_versions[] = {
 	DT_VERS_1_6,	/* D API 1.6 */
 	DT_VERS_1_6_1,	/* D API 1.6.1 */
 	DT_VERS_1_6_2,	/* D API 1.6.2 */
+	DT_VERS_1_6_3,	/* D API 1.6.3 */
+	DT_VERS_1_7,	/* D API 1.7 */
+	DT_VERS_1_7_1,	/* D API 1.7.1 */
+	DT_VERS_1_8,	/* D API 1.8 */
+	DT_VERS_1_8_1,	/* D API 1.8.1 */
+	DT_VERS_1_9,	/* D API 1.9 */
+	DT_VERS_1_9_1,	/* D API 1.9.1 */
+	DT_VERS_1_10,	/* D API 1.10 */
+	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 */
 	0
 };
 
 /*
  * Global variables that are formatted on FreeBSD based on the kernel file name.
  */
-#if !defined(sun)
+#ifndef illumos
 static char	curthread_str[MAXPATHLEN];
 static char	intmtx_str[MAXPATHLEN];
 static char	threadmtx_str[MAXPATHLEN];
 static char	rwlock_str[MAXPATHLEN];
+static char	sxlock_str[MAXPATHLEN];
 #endif
 
 /*
@@ -219,7 +245,7 @@ static const dt_ident_t _dtrace_globals[] = {
 { "curthread", DT_IDENT_SCALAR, 0, DIF_VAR_CURTHREAD,
 	{ DTRACE_STABILITY_STABLE, DTRACE_STABILITY_PRIVATE,
 	DTRACE_CLASS_COMMON }, DT_VERS_1_0,
-#if defined(sun)
+#ifdef illumos
 	&dt_idops_type, "genunix`kthread_t *" },
 #else
 	&dt_idops_type, curthread_str },
@@ -261,6 +287,8 @@ static const dt_ident_t _dtrace_globals[] = {
 	&dt_idops_func, "uint64_t(uint64_t)" },
 { "htons", DT_IDENT_FUNC, 0, DIF_SUBR_HTONS, DT_ATTR_EVOLCMN, DT_VERS_1_3,
 	&dt_idops_func, "uint16_t(uint16_t)" },
+{ "getf", DT_IDENT_FUNC, 0, DIF_SUBR_GETF, DT_ATTR_STABCMN, DT_VERS_1_10,
+	&dt_idops_func, "file_t *(int)" },
 { "gid", DT_IDENT_SCALAR, 0, DIF_VAR_GID, DT_ATTR_STABCMN, DT_VERS_1_0,
 	&dt_idops_type, "gid_t" },
 { "id", DT_IDENT_SCALAR, 0, DIF_VAR_ID, DT_ATTR_STABCMN, DT_VERS_1_0,
@@ -268,13 +296,13 @@ static const dt_ident_t _dtrace_globals[] = {
 { "index", DT_IDENT_FUNC, 0, DIF_SUBR_INDEX, DT_ATTR_STABCMN, DT_VERS_1_1,
 	&dt_idops_func, "int(const char *, const char *, [int])" },
 { "inet_ntoa", DT_IDENT_FUNC, 0, DIF_SUBR_INET_NTOA, DT_ATTR_STABCMN,
-#if defined(sun)
+#ifdef illumos
 	DT_VERS_1_5, &dt_idops_func, "string(ipaddr_t *)" },
 #else
 	DT_VERS_1_5, &dt_idops_func, "string(in_addr_t *)" },
 #endif
 { "inet_ntoa6", DT_IDENT_FUNC, 0, DIF_SUBR_INET_NTOA6, DT_ATTR_STABCMN,
-#if defined(sun)
+#ifdef illumos
 	DT_VERS_1_5, &dt_idops_func, "string(in6_addr_t *)" },
 #else
 	DT_VERS_1_5, &dt_idops_func, "string(struct in6_addr *)" },
@@ -283,12 +311,15 @@ static const dt_ident_t _dtrace_globals[] = {
 	DT_VERS_1_5, &dt_idops_func, "string(int, void *)" },
 { "ipl", DT_IDENT_SCALAR, 0, DIF_VAR_IPL, DT_ATTR_STABCMN, DT_VERS_1_0,
 	&dt_idops_type, "uint_t" },
-#if defined(sun)
+{ "json", DT_IDENT_FUNC, 0, DIF_SUBR_JSON, DT_ATTR_STABCMN, DT_VERS_1_11,
+	&dt_idops_func, "string(const char *, const char *)" },
 { "jstack", DT_IDENT_ACTFUNC, 0, DT_ACT_JSTACK, DT_ATTR_STABCMN, DT_VERS_1_0,
 	&dt_idops_func, "stack(...)" },
-#endif
 { "lltostr", DT_IDENT_FUNC, 0, DIF_SUBR_LLTOSTR, DT_ATTR_STABCMN, DT_VERS_1_0,
-	&dt_idops_func, "string(int64_t)" },
+	&dt_idops_func, "string(int64_t, [int])" },
+{ "llquantize", DT_IDENT_AGGFUNC, 0, DTRACEAGG_LLQUANTIZE, DT_ATTR_STABCMN,
+	DT_VERS_1_7, &dt_idops_func,
+	"void(@, int32_t, int32_t, int32_t, int32_t, ...)" },
 { "lquantize", DT_IDENT_AGGFUNC, 0, DTRACEAGG_LQUANTIZE,
 	DT_ATTR_STABCMN, DT_VERS_1_0,
 	&dt_idops_func, "void(@, int32_t, int32_t, ...)" },
@@ -296,6 +327,10 @@ static const dt_ident_t _dtrace_globals[] = {
 	&dt_idops_func, "void(@)" },
 { "memref", DT_IDENT_FUNC, 0, DIF_SUBR_MEMREF, DT_ATTR_STABCMN, DT_VERS_1_1,
 	&dt_idops_func, "uintptr_t *(void *, size_t)" },
+#ifndef illumos
+{ "memstr", DT_IDENT_FUNC, 0, DIF_SUBR_MEMSTR, DT_ATTR_STABCMN, DT_VERS_1_0,
+	&dt_idops_func, "string(void *, char, size_t)" },
+#endif
 { "min", DT_IDENT_AGGFUNC, 0, DTRACEAGG_MIN, DT_ATTR_STABCMN, DT_VERS_1_0,
 	&dt_idops_func, "void(@)" },
 { "mod", DT_IDENT_ACTFUNC, 0, DT_ACT_MOD, DT_ATTR_STABCMN,
@@ -306,7 +341,7 @@ static const dt_ident_t _dtrace_globals[] = {
 { "msgsize", DT_IDENT_FUNC, 0, DIF_SUBR_MSGSIZE,
 	DT_ATTR_STABCMN, DT_VERS_1_0,
 	&dt_idops_func, "size_t(mblk_t *)" },
-#if defined(sun)
+#ifdef illumos
 { "mutex_owned", DT_IDENT_FUNC, 0, DIF_SUBR_MUTEX_OWNED,
 	DT_ATTR_EVOLCMN, DT_VERS_1_0,
 	&dt_idops_func, "int(genunix`kmutex_t *)" },
@@ -347,6 +382,8 @@ static const dt_ident_t _dtrace_globals[] = {
 	&dt_idops_type, "pid_t" },
 { "ppid", DT_IDENT_SCALAR, 0, DIF_VAR_PPID, DT_ATTR_STABCMN, DT_VERS_1_0,
 	&dt_idops_type, "pid_t" },
+{ "print", DT_IDENT_ACTFUNC, 0, DT_ACT_PRINT, DT_ATTR_STABCMN, DT_VERS_1_9,
+	&dt_idops_func, "void(@)" },
 { "printa", DT_IDENT_ACTFUNC, 0, DT_ACT_PRINTA, DT_ATTR_STABCMN, DT_VERS_1_0,
 	&dt_idops_func, "void(@, ...)" },
 { "printf", DT_IDENT_ACTFUNC, 0, DT_ACT_PRINTF, DT_ATTR_STABCMN, DT_VERS_1_0,
@@ -375,7 +412,7 @@ static const dt_ident_t _dtrace_globals[] = {
 	&dt_idops_func, "int()" },
 { "rindex", DT_IDENT_FUNC, 0, DIF_SUBR_RINDEX, DT_ATTR_STABCMN, DT_VERS_1_1,
 	&dt_idops_func, "int(const char *, const char *, [int])" },
-#if defined(sun)
+#ifdef illumos
 { "rw_iswriter", DT_IDENT_FUNC, 0, DIF_SUBR_RW_ISWRITER,
 	DT_ATTR_EVOLCMN, DT_VERS_1_0,
 	&dt_idops_func, "int(genunix`krwlock_t *)" },
@@ -427,10 +464,23 @@ static const dt_ident_t _dtrace_globals[] = {
 	&dt_idops_func, "string(const char *, const char *)" },
 { "strtok", DT_IDENT_FUNC, 0, DIF_SUBR_STRTOK, DT_ATTR_STABCMN, DT_VERS_1_1,
 	&dt_idops_func, "string(const char *, const char *)" },
+{ "strtoll", DT_IDENT_FUNC, 0, DIF_SUBR_STRTOLL, DT_ATTR_STABCMN, DT_VERS_1_11,
+	&dt_idops_func, "int64_t(const char *, [int])" },
 { "substr", DT_IDENT_FUNC, 0, DIF_SUBR_SUBSTR, DT_ATTR_STABCMN, DT_VERS_1_1,
 	&dt_idops_func, "string(const char *, int, [int])" },
 { "sum", DT_IDENT_AGGFUNC, 0, DTRACEAGG_SUM, DT_ATTR_STABCMN, DT_VERS_1_0,
 	&dt_idops_func, "void(@)" },
+#ifndef illumos
+{ "sx_isexclusive", DT_IDENT_FUNC, 0, DIF_SUBR_SX_ISEXCLUSIVE,
+	DT_ATTR_EVOLCMN, DT_VERS_1_0,
+	&dt_idops_func, sxlock_str },
+{ "sx_shared_held", DT_IDENT_FUNC, 0, DIF_SUBR_SX_SHARED_HELD,
+	DT_ATTR_EVOLCMN, DT_VERS_1_0,
+	&dt_idops_func, sxlock_str },
+{ "sx_exclusive_held", DT_IDENT_FUNC, 0, DIF_SUBR_SX_EXCLUSIVE_HELD,
+	DT_ATTR_EVOLCMN, DT_VERS_1_0,
+	&dt_idops_func, sxlock_str },
+#endif
 { "sym", DT_IDENT_ACTFUNC, 0, DT_ACT_SYM, DT_ATTR_STABCMN,
 	DT_VERS_1_2, &dt_idops_func, "_symaddr(uintptr_t)" },
 { "system", DT_IDENT_ACTFUNC, 0, DT_ACT_SYSTEM, DT_ATTR_STABCMN, DT_VERS_1_0,
@@ -442,26 +492,27 @@ static const dt_ident_t _dtrace_globals[] = {
 { "timestamp", DT_IDENT_SCALAR, 0, DIF_VAR_TIMESTAMP,
 	DT_ATTR_STABCMN, DT_VERS_1_0,
 	&dt_idops_type, "uint64_t" },
+{ "tolower", DT_IDENT_FUNC, 0, DIF_SUBR_TOLOWER, DT_ATTR_STABCMN, DT_VERS_1_8,
+	&dt_idops_func, "string(const char *)" },
+{ "toupper", DT_IDENT_FUNC, 0, DIF_SUBR_TOUPPER, DT_ATTR_STABCMN, DT_VERS_1_8,
+	&dt_idops_func, "string(const char *)" },
 { "trace", DT_IDENT_ACTFUNC, 0, DT_ACT_TRACE, DT_ATTR_STABCMN, DT_VERS_1_0,
 	&dt_idops_func, "void(@)" },
 { "tracemem", DT_IDENT_ACTFUNC, 0, DT_ACT_TRACEMEM,
 	DT_ATTR_STABCMN, DT_VERS_1_0,
-	&dt_idops_func, "void(@, size_t)" },
+	&dt_idops_func, "void(@, size_t, ...)" },
 { "trunc", DT_IDENT_ACTFUNC, 0, DT_ACT_TRUNC, DT_ATTR_STABCMN,
 	DT_VERS_1_0, &dt_idops_func, "void(...)" },
 { "typeref", DT_IDENT_FUNC, 0, DIF_SUBR_TYPEREF, DT_ATTR_STABCMN, DT_VERS_1_1,
 	&dt_idops_func, "uintptr_t *(void *, size_t, string, size_t)" },
-#if defined(sun)
 { "uaddr", DT_IDENT_ACTFUNC, 0, DT_ACT_UADDR, DT_ATTR_STABCMN,
 	DT_VERS_1_2, &dt_idops_func, "_usymaddr(uintptr_t)" },
 { "ucaller", DT_IDENT_SCALAR, 0, DIF_VAR_UCALLER, DT_ATTR_STABCMN,
 	DT_VERS_1_2, &dt_idops_type, "uint64_t" },
 { "ufunc", DT_IDENT_ACTFUNC, 0, DT_ACT_USYM, DT_ATTR_STABCMN,
 	DT_VERS_1_2, &dt_idops_func, "_usymaddr(uintptr_t)" },
-#endif
 { "uid", DT_IDENT_SCALAR, 0, DIF_VAR_UID, DT_ATTR_STABCMN, DT_VERS_1_0,
 	&dt_idops_type, "uid_t" },
-#if defined(sun)
 { "umod", DT_IDENT_ACTFUNC, 0, DT_ACT_UMOD, DT_ATTR_STABCMN,
 	DT_VERS_1_2, &dt_idops_func, "_usymaddr(uintptr_t)" },
 { "uregs", DT_IDENT_ARRAY, 0, DIF_VAR_UREGS, DT_ATTR_STABCMN, DT_VERS_1_0,
@@ -473,17 +524,22 @@ static const dt_ident_t _dtrace_globals[] = {
 	&dt_idops_type, "uint32_t" },
 { "usym", DT_IDENT_ACTFUNC, 0, DT_ACT_USYM, DT_ATTR_STABCMN,
 	DT_VERS_1_2, &dt_idops_func, "_usymaddr(uintptr_t)" },
-#endif
 { "vtimestamp", DT_IDENT_SCALAR, 0, DIF_VAR_VTIMESTAMP,
 	DT_ATTR_STABCMN, DT_VERS_1_0,
 	&dt_idops_type, "uint64_t" },
 { "walltimestamp", DT_IDENT_SCALAR, 0, DIF_VAR_WALLTIMESTAMP,
 	DT_ATTR_STABCMN, DT_VERS_1_0,
 	&dt_idops_type, "int64_t" },
-#if defined(sun)
+#ifdef illumos
 { "zonename", DT_IDENT_SCALAR, 0, DIF_VAR_ZONENAME,
 	DT_ATTR_STABCMN, DT_VERS_1_0, &dt_idops_type, "string" },
 #endif
+
+#ifndef illumos
+{ "cpu", DT_IDENT_SCALAR, 0, DIF_VAR_CPU,
+	DT_ATTR_STABCMN, DT_VERS_1_6_3, &dt_idops_type, "int" },
+#endif
+
 { NULL, 0, 0, 0, { 0, 0, 0 }, 0, NULL, NULL }
 };
 
@@ -584,6 +640,10 @@ static const dt_typedef_t _dtrace_typedefs_32[] = {
 { "unsigned", "size_t" },
 { "long", "id_t" },
 { "long", "pid_t" },
+#ifdef __NetBSD__
+{ "unsigned int", "uid_t" },
+{ "unsigned int", "gid_t" },
+#endif
 { NULL, NULL }
 };
 
@@ -612,6 +672,10 @@ static const dt_typedef_t _dtrace_typedefs_64[] = {
 { "unsigned long", "size_t" },
 { "int", "id_t" },
 { "int", "pid_t" },
+#ifdef __NetBSD__
+{ "unsigned int", "uid_t" },
+{ "unsigned int", "gid_t" },
+#endif
 { NULL, NULL }
 };
 
@@ -723,18 +787,20 @@ const dtrace_pattr_t _dtrace_prvdesc = {
 { DTRACE_STABILITY_UNSTABLE, DTRACE_STABILITY_UNSTABLE, DTRACE_CLASS_COMMON },
 };
 
-#if defined(sun)
+#ifdef illumos
 const char *_dtrace_defcpp = "/usr/ccs/lib/cpp"; /* default cpp(1) to invoke */
 const char *_dtrace_defld = "/usr/ccs/bin/ld";   /* default ld(1) to invoke */
 #else
 const char *_dtrace_defcpp = "cpp"; /* default cpp(1) to invoke */
 const char *_dtrace_defld = "ld";   /* default ld(1) to invoke */
+const char *_dtrace_defobjcopy = "objcopy"; /* default objcopy(1) to invoke */
 #endif
 
 const char *_dtrace_libdir = "/usr/lib/dtrace"; /* default library directory */
-#if defined(sun)
+#ifdef illumos
 const char *_dtrace_provdir = "/dev/dtrace/provider"; /* provider directory */
 #else
+const char *_dtrace_libdir32 = "/usr/lib32/dtrace";
 const char *_dtrace_provdir = "/dev/dtrace"; /* provider directory */
 #endif
 
@@ -749,9 +815,7 @@ int _dtrace_argmax = 32;	/* default maximum number of probe arguments */
 
 int _dtrace_debug = 0;		/* debug messages enabled (off) */
 const char *const _dtrace_version = DT_VERS_STRING; /* API version string */
-#if defined(sun)
 int _dtrace_rdvers = RD_VERSION; /* rtld_db feature version */
-#endif
 
 typedef struct dt_fdlist {
 	int *df_fds;		/* array of provider driver file descriptors */
@@ -759,7 +823,7 @@ typedef struct dt_fdlist {
 	uint_t df_size;		/* size of df_fds[] */
 } dt_fdlist_t;
 
-#if defined(sun)
+#ifdef illumos
 #pragma init(_dtrace_init)
 #else
 void _dtrace_init(void) __attribute__ ((constructor));
@@ -769,18 +833,14 @@ _dtrace_init(void)
 {
 	_dtrace_debug = getenv("DTRACE_DEBUG") != NULL;
 
-#if defined(sun)
 	for (; _dtrace_rdvers > 0; _dtrace_rdvers--) {
 		if (rd_init(_dtrace_rdvers) == RD_OK)
 			break;
 	}
-#endif
 #if defined(__i386__)
-#if 0	/* XXX TBD - no NetBSD equivalent? */
 	/* make long doubles 64 bits -sson */
 	(void) fpsetprec(FP_PE);
 #endif
-#endif
 }
 
 static dtrace_hdl_t *
@@ -799,7 +859,7 @@ dt_provmod_open(dt_provmod_t **provmod, dt_fdlist_t *dfp)
 	dt_provmod_t *prov;
 	char path[PATH_MAX];
 	int fd;
-#if defined(sun)
+#ifdef illumos
 	struct dirent *dp, *ep;
 	DIR *dirp;
 
@@ -846,7 +906,7 @@ dt_provmod_open(dt_provmod_t **provmod, dt_fdlist_t *dfp)
 	}
 
 	(void) closedir(dirp);
-#else
+#else	/* !illumos */
 	char	*p;
 	char	*p1;
 	char	*p_providers = NULL;
@@ -931,7 +991,7 @@ dt_provmod_open(dt_provmod_t **provmod, dt_fdlist_t *dfp)
 	}
 	if (p_providers != NULL)
 		free(p_providers);
-#endif
+#endif	/* illumos */
 }
 
 static void
@@ -948,7 +1008,7 @@ dt_provmod_destroy(dt_provmod_t **provmod)
 	*provmod = NULL;
 }
 
-#if defined(sun)
+#ifdef illumos
 static const char *
 dt_get_sysinfo(int cmd, char *buf, size_t len)
 {
@@ -987,8 +1047,10 @@ dt_vopen(int version, int flags, int *errp,
 
 	dt_fdlist_t df = { NULL, 0, 0 };
 
+#if defined(__FreeBSD__)
 	char isadef[32], utsdef[32];
 	char s1[64], s2[64];
+#endif
 
 	if (version <= 0)
 		return (set_open_errno(dtp, errp, EINVAL));
@@ -1050,8 +1112,18 @@ dt_vopen(int version, int flags, int *errp,
 
 	dtfd = open("/dev/dtrace/dtrace", O_RDWR);
 	err = errno; /* save errno from opening dtfd */
-
-#if defined(sun)
+#if defined(__FreeBSD__)
+	/*
+	 * Automatically load the 'dtraceall' module if we couldn't open the
+	 * char device.
+	 */
+	if (err == ENOENT && modfind("dtraceall") < 0) {
+		kldload("dtraceall"); /* ignore the error */
+		dtfd = open("/dev/dtrace/dtrace", O_RDWR);
+		err = errno;
+	}
+#endif
+#ifdef illumos
 	ftfd = open("/dev/dtrace/provider/fasttrap", O_RDWR);
 #else
 	ftfd = open("/dev/dtrace/fasttrap", O_RDWR);
@@ -1093,24 +1165,32 @@ alloc:
 
 	bzero(dtp, sizeof (dtrace_hdl_t));
 	dtp->dt_oflags = flags;
+#ifdef illumos
 	dtp->dt_prcmode = DT_PROC_STOP_PREINIT;
+#else
+	dtp->dt_prcmode = DT_PROC_STOP_POSTINIT;
+#endif
 	dtp->dt_linkmode = DT_LINK_KERNEL;
 	dtp->dt_linktype = DT_LTYP_ELF;
 	dtp->dt_xlatemode = DT_XL_STATIC;
 	dtp->dt_stdcmode = DT_STDC_XA;
+	dtp->dt_encoding = DT_ENCODING_UNSET;
 	dtp->dt_version = version;
 	dtp->dt_fd = dtfd;
 	dtp->dt_ftfd = ftfd;
 	dtp->dt_fterr = fterr;
 	dtp->dt_cdefs_fd = -1;
 	dtp->dt_ddefs_fd = -1;
-#if defined(sun)
+#ifdef illumos
 	dtp->dt_stdout_fd = -1;
 #else
 	dtp->dt_freopen_fp = NULL;
 #endif
 	dtp->dt_modbuckets = _dtrace_strbuckets;
 	dtp->dt_mods = calloc(dtp->dt_modbuckets, sizeof (dt_module_t *));
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	dtp->dt_kmods = calloc(dtp->dt_modbuckets, sizeof (dt_module_t *));
+#endif
 	dtp->dt_provbuckets = _dtrace_strbuckets;
 	dtp->dt_provs = calloc(dtp->dt_provbuckets, sizeof (dt_provider_t *));
 	dt_proc_hash_create(dtp);
@@ -1120,6 +1200,9 @@ alloc:
 	dtp->dt_cpp_argc = 1;
 	dtp->dt_cpp_args = 1;
 	dtp->dt_ld_path = strdup(_dtrace_defld);
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	dtp->dt_objcopy_path = strdup(_dtrace_defobjcopy);
+#endif
 	dtp->dt_provmod = provmod;
 	dtp->dt_vector = vector;
 	dtp->dt_varg = arg;
@@ -1128,6 +1211,10 @@ alloc:
 
 	if (dtp->dt_mods == NULL || dtp->dt_provs == NULL ||
 	    dtp->dt_procs == NULL || dtp->dt_ld_path == NULL ||
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	    dtp->dt_kmods == NULL ||
+	    dtp->dt_objcopy_path == NULL ||
+#endif
 	    dtp->dt_cpp_path == NULL || dtp->dt_cpp_argv == NULL)
 		return (set_open_errno(dtp, errp, EDT_NOMEM));
 
@@ -1136,7 +1223,7 @@ alloc:
 
 	dtp->dt_cpp_argv[0] = (char *)strbasename(dtp->dt_cpp_path);
 
-#if defined(sun)
+#ifdef illumos
 	(void) snprintf(isadef, sizeof (isadef), "-D__SUNW_D_%u",
 	    (uint_t)(sizeof (void *) * NBBY));
 
@@ -1176,7 +1263,7 @@ alloc:
 		return (set_open_errno(dtp, errp, EDT_NOMEM));
 #endif
 
-#if defined(sun)
+#ifdef illumos
 #ifdef __x86
 	/*
 	 * On x86 systems, __i386 is defined for <sys/isa_defs.h> for 32-bit
@@ -1216,33 +1303,44 @@ alloc:
 	 * 'kern.bootfile' sysctl value tells us exactly which file is being
 	 * used as the kernel.
 	 */
-#if !defined(sun)
+#ifndef illumos
 	{
 	char bootfile[MAXPATHLEN];
 	char *p;
-	int i;
 	size_t len = sizeof(bootfile);
 
-#if 0	/* XXX debug */
+#ifdef __FreeBSD__
+#define DEFKERNEL	"kernel"
+#define BOOTFILE	"kern.bootfile"
+#define THREAD		"struct thread"
+#define MUTEX		"struct mtx"
+#define RWLOCK		"struct rwlock"
+#endif
+#ifdef __NetBSD__
+#define DEFKERNEL	"netbsd"
+#define BOOTFILE	"machdep.booted_kernel"
+#define THREAD		"struct lwp"
+#define MUTEX		"struct kmutex"
+#define RWLOCK		"struct krwlock"
+#endif
 	/* This call shouldn't fail, but use a default just in case. */
-	if (sysctlbyname("kern.bootfile", bootfile, &len, NULL, 0) != 0)
-		strlcpy(bootfile, "kernel", sizeof(bootfile));
+	if (sysctlbyname(BOOTFILE, bootfile, &len, NULL, 0) != 0)
+		strlcpy(bootfile, DEFKERNEL, sizeof(bootfile));
 
 	if ((p = strrchr(bootfile, '/')) != NULL)
 		p++;
 	else
 		p = bootfile;
-#else
-	p = "netbsd";
-#endif
 
 	/*
 	 * Format the global variables based on the kernel module name.
 	 */
-	snprintf(curthread_str, sizeof(curthread_str), "%s`struct lwp *",p);
-	snprintf(intmtx_str, sizeof(intmtx_str), "int(%s`struct kmutex *)",p);
-	snprintf(threadmtx_str, sizeof(threadmtx_str), "struct lwp *(%s`struct kmutex *)",p);
-	snprintf(rwlock_str, sizeof(rwlock_str), "int(%s`struct rwlock *)",p);
+	snprintf(curthread_str, sizeof(curthread_str), "%s`%s *", p, THREAD);
+	snprintf(intmtx_str, sizeof(intmtx_str), "int(%s`%s *)", p, MUTEX);
+	snprintf(threadmtx_str, sizeof(threadmtx_str), "%s *(%s`%s *)",
+	    THREAD, p, MUTEX);
+	snprintf(rwlock_str, sizeof(rwlock_str), "int(%s`%s *)", p, RWLOCK);
+	snprintf(sxlock_str, sizeof(sxlock_str), "int(%s`struct sxlock *)",p);
 	}
 #endif
 
@@ -1512,8 +1610,19 @@ alloc:
 	 * compile, and to provide better error reporting (because the full
 	 * reporting of compiler errors requires dtrace_open() to succeed).
 	 */
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+#ifdef __LP64__
+	if ((dtp->dt_oflags & DTRACE_O_ILP32) != 0) {
+		if (dtrace_setopt(dtp, "libdir", _dtrace_libdir32) != 0)
+			return (set_open_errno(dtp, errp, dtp->dt_errno));
+	}
+#endif
 	if (dtrace_setopt(dtp, "libdir", _dtrace_libdir) != 0)
 		return (set_open_errno(dtp, errp, dtp->dt_errno));
+#else
+	if (dtrace_setopt(dtp, "libdir", _dtrace_libdir) != 0)
+		return (set_open_errno(dtp, errp, dtp->dt_errno));
+#endif
 
 	return (dtp);
 }
@@ -1540,6 +1649,10 @@ dtrace_close(dtrace_hdl_t *dtp)
 	dtrace_prog_t *pgp;
 	dt_xlator_t *dxp;
 	dt_dirpath_t *dirp;
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	dt_kmodule_t *dkm;
+	uint_t h;
+#endif
 	int i;
 
 	if (dtp->dt_procs != NULL)
@@ -1567,6 +1680,15 @@ dtrace_close(dtrace_hdl_t *dtp)
 	if (dtp->dt_tls != NULL)
 		dt_idhash_destroy(dtp->dt_tls);
 
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	for (h = 0; h < dtp->dt_modbuckets; h++)
+		while ((dkm = dtp->dt_kmods[h]) != NULL) {
+			dtp->dt_kmods[h] = dkm->dkm_next;
+			free(dkm->dkm_name);
+			free(dkm);
+		}
+#endif
+
 	while ((dmp = dt_list_next(&dtp->dt_modlist)) != NULL)
 		dt_module_destroy(dtp, dmp);
 
@@ -1581,7 +1703,7 @@ dtrace_close(dtrace_hdl_t *dtp)
 		(void) close(dtp->dt_cdefs_fd);
 	if (dtp->dt_ddefs_fd != -1)
 		(void) close(dtp->dt_ddefs_fd);
-#if defined(sun)
+#ifdef illumos
 	if (dtp->dt_stdout_fd != -1)
 		(void) close(dtp->dt_stdout_fd);
 #else
@@ -1592,9 +1714,9 @@ dtrace_close(dtrace_hdl_t *dtp)
 	dt_epid_destroy(dtp);
 	dt_aggid_destroy(dtp);
 	dt_format_destroy(dtp);
+	dt_strdata_destroy(dtp);
 	dt_buffered_destroy(dtp);
 	dt_aggregate_destroy(dtp);
-	free(dtp->dt_buf.dtbd_data);
 	dt_pfdict_destroy(dtp);
 	dt_provmod_destroy(&dtp->dt_provmod);
 	dt_dof_fini(dtp);
@@ -1611,8 +1733,14 @@ dtrace_close(dtrace_hdl_t *dtp)
 	free(dtp->dt_cpp_argv);
 	free(dtp->dt_cpp_path);
 	free(dtp->dt_ld_path);
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	free(dtp->dt_objcopy_path);
+#endif
 
 	free(dtp->dt_mods);
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	free(dtp->dt_kmods);
+#endif
 	free(dtp->dt_provs);
 	free(dtp);
 }
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_options.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_options.c
index 6a44c1c..cba7986 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_options.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_options.c
@@ -24,7 +24,10 @@
  * Use is subject to license terms.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
+/*
+ * Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
 
 #include <sys/resource.h>
 #include <sys/mman.h>
@@ -35,7 +38,7 @@
 #include <stdlib.h>
 #include <unistd.h>
 #include <limits.h>
-#if defined(sun)
+#ifdef illumos
 #include <alloca.h>
 #endif
 #include <errno.h>
@@ -277,6 +280,28 @@ dt_opt_ld_path(dtrace_hdl_t *dtp, const char *arg, uintptr_t option)
 	return (0);
 }
 
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+static int
+dt_opt_objcopy_path(dtrace_hdl_t *dtp, const char *arg, uintptr_t option)
+{
+	char *objcopy;
+
+	if (arg == NULL)
+		return (dt_set_errno(dtp, EDT_BADOPTVAL));
+
+	if (dtp->dt_pcb != NULL)
+		return (dt_set_errno(dtp, EDT_BADOPTCTX));
+
+	if ((objcopy = strdup(arg)) == NULL)
+		return (dt_set_errno(dtp, EDT_NOMEM));
+
+	free(dtp->dt_objcopy_path);
+	dtp->dt_objcopy_path = objcopy;
+
+	return (0);
+}
+#endif
+
 /*ARGSUSED*/
 static int
 dt_opt_libdir(dtrace_hdl_t *dtp, const char *arg, uintptr_t option)
@@ -336,6 +361,23 @@ dt_opt_linktype(dtrace_hdl_t *dtp, const char *arg, uintptr_t option)
 
 /*ARGSUSED*/
 static int
+dt_opt_encoding(dtrace_hdl_t *dtp, const char *arg, uintptr_t option)
+{
+	if (arg == NULL)
+		return (dt_set_errno(dtp, EDT_BADOPTVAL));
+
+	if (strcmp(arg, "ascii") == 0)
+		dtp->dt_encoding = DT_ENCODING_ASCII;
+	else if (strcmp(arg, "utf8") == 0)
+		dtp->dt_encoding = DT_ENCODING_UTF8;
+	else
+		return (dt_set_errno(dtp, EDT_BADOPTVAL));
+
+	return (0);
+}
+
+/*ARGSUSED*/
+static int
 dt_opt_evaltime(dtrace_hdl_t *dtp, const char *arg, uintptr_t option)
 {
 	if (arg == NULL)
@@ -368,6 +410,61 @@ dt_opt_pgmax(dtrace_hdl_t *dtp, const char *arg, uintptr_t option)
 	return (0);
 }
 
+static int
+dt_opt_setenv(dtrace_hdl_t *dtp, const char *arg, uintptr_t option)
+{
+	char **p;
+	char *var;
+	int i;
+
+	/*
+	 * We can't effectively set environment variables from #pragma lines
+	 * since the processes have already been spawned.
+	 */
+	if (dtp->dt_pcb != NULL)
+		return (dt_set_errno(dtp, EDT_BADOPTCTX));
+
+	if (arg == NULL)
+		return (dt_set_errno(dtp, EDT_BADOPTVAL));
+
+	if (!option && strchr(arg, '=') != NULL)
+		return (dt_set_errno(dtp, EDT_BADOPTVAL));
+
+	for (i = 1, p = dtp->dt_proc_env; *p != NULL; i++, p++)
+		continue;
+
+	for (p = dtp->dt_proc_env; *p != NULL; p++) {
+		var = strchr(*p, '=');
+		if (var == NULL)
+			var = *p + strlen(*p);
+		if (strncmp(*p, arg, var - *p) == 0) {
+			dt_free(dtp, *p);
+			*p = dtp->dt_proc_env[i - 1];
+			dtp->dt_proc_env[i - 1] = NULL;
+			i--;
+		}
+	}
+
+	if (option) {
+		if ((var = strdup(arg)) == NULL)
+			return (dt_set_errno(dtp, EDT_NOMEM));
+
+		if ((p = dt_alloc(dtp, sizeof (char *) * (i + 1))) == NULL) {
+			dt_free(dtp, var);
+			return (dt_set_errno(dtp, EDT_NOMEM));
+		}
+
+		bcopy(dtp->dt_proc_env, p, sizeof (char *) * i);
+		dt_free(dtp, dtp->dt_proc_env);
+		dtp->dt_proc_env = p;
+
+		dtp->dt_proc_env[i - 1] = var;
+		dtp->dt_proc_env[i] = NULL;
+	}
+
+	return (0);
+}
+
 /*ARGSUSED*/
 static int
 dt_opt_stdc(dtrace_hdl_t *dtp, const char *arg, uintptr_t option)
@@ -411,7 +508,6 @@ dt_opt_syslibdir(dtrace_hdl_t *dtp, const char *arg, uintptr_t option)
 	return (0);
 }
 
-
 /*ARGSUSED*/
 static int
 dt_opt_tree(dtrace_hdl_t *dtp, const char *arg, uintptr_t option)
@@ -786,7 +882,7 @@ int
 dt_options_load(dtrace_hdl_t *dtp)
 {
 	dof_hdr_t hdr, *dof;
-	dof_sec_t *sec;
+	dof_sec_t *sec = NULL;	// XXX: gcc
 	size_t offs;
 	int i;
 
@@ -797,7 +893,7 @@ dt_options_load(dtrace_hdl_t *dtp)
 	bzero(&hdr, sizeof (dof_hdr_t));
 	hdr.dofh_loadsz = sizeof (dof_hdr_t);
 
-#if defined(sun)
+#ifdef illumos
 	if (dt_ioctl(dtp, DTRACEIOC_DOFGET, &hdr) == -1)
 #else
 	dof = &hdr;
@@ -815,7 +911,7 @@ dt_options_load(dtrace_hdl_t *dtp)
 	for (i = 0; i < DTRACEOPT_MAX; i++)
 		dtp->dt_options[i] = DTRACEOPT_UNSET;
 
-#if defined(sun)
+#ifdef illumos
 	if (dt_ioctl(dtp, DTRACEIOC_DOFGET, dof) == -1)
 #else
 	if (dt_ioctl(dtp, DTRACEIOC_DOFGET, &dof) == -1)
@@ -848,30 +944,6 @@ dt_options_load(dtrace_hdl_t *dtp)
 	return (0);
 }
 
-/*ARGSUSED*/
-static int
-dt_opt_preallocate(dtrace_hdl_t *dtp, const char *arg, uintptr_t option)
-{
-	dtrace_optval_t size;
-	void *p;
-
-	if (arg == NULL || dt_optval_parse(arg, &size) != 0)
-		return (dt_set_errno(dtp, EDT_BADOPTVAL));
-
-	if (size > SIZE_MAX)
-		size = SIZE_MAX;
-
-	if ((p = dt_zalloc(dtp, size)) == NULL) {
-		do {
-			size /= 2;
-		} while ((p = dt_zalloc(dtp, size)) == NULL);
-	}
-
-	dt_free(dtp, p);
-
-	return (0);
-}
-
 typedef struct dt_option {
 	const char *o_name;
 	int (*o_func)(dtrace_hdl_t *, const char *, uintptr_t);
@@ -896,6 +968,7 @@ static const dt_option_t _dtrace_ctoptions[] = {
 	{ "define", dt_opt_cpp_opts, (uintptr_t)"-D" },
 	{ "droptags", dt_opt_droptags },
 	{ "empty", dt_opt_cflags, DTRACE_C_EMPTY },
+	{ "encoding", dt_opt_encoding },
 	{ "errtags", dt_opt_cflags, DTRACE_C_ETAGS },
 	{ "evaltime", dt_opt_evaltime },
 	{ "incdir", dt_opt_cpp_opts, (uintptr_t)"-I" },
@@ -909,9 +982,12 @@ static const dt_option_t _dtrace_ctoptions[] = {
 	{ "linkmode", dt_opt_linkmode },
 	{ "linktype", dt_opt_linktype },
 	{ "nolibs", dt_opt_cflags, DTRACE_C_NOLIBS },
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	{ "objcopypath", dt_opt_objcopy_path },
+#endif
 	{ "pgmax", dt_opt_pgmax },
-	{ "preallocate", dt_opt_preallocate },
 	{ "pspec", dt_opt_cflags, DTRACE_C_PSPEC },
+	{ "setenv", dt_opt_setenv, 1 },
 	{ "stdc", dt_opt_stdc },
 	{ "strip", dt_opt_dflags, DTRACE_D_STRIP },
 	{ "syslibdir", dt_opt_syslibdir },
@@ -920,6 +996,7 @@ static const dt_option_t _dtrace_ctoptions[] = {
 	{ "udefs", dt_opt_invcflags, DTRACE_C_UNODEF },
 	{ "undef", dt_opt_cpp_opts, (uintptr_t)"-U" },
 	{ "unodefs", dt_opt_cflags, DTRACE_C_UNODEF },
+	{ "unsetenv", dt_opt_setenv, 0 },
 	{ "verbose", dt_opt_cflags, DTRACE_C_DIFV },
 	{ "version", dt_opt_version },
 	{ "zdefs", dt_opt_cflags, DTRACE_C_ZDEFS },
@@ -947,6 +1024,7 @@ static const dt_option_t _dtrace_rtoptions[] = {
 	{ "statusrate", dt_opt_rate, DTRACEOPT_STATUSRATE },
 	{ "strsize", dt_opt_strsize, DTRACEOPT_STRSIZE },
 	{ "ustackframes", dt_opt_runtime, DTRACEOPT_USTACKFRAMES },
+	{ "temporal", dt_opt_runtime, DTRACEOPT_TEMPORAL },
 	{ NULL, NULL, 0 }
 };
 
@@ -954,11 +1032,14 @@ static const dt_option_t _dtrace_rtoptions[] = {
  * Dynamic run-time options.
  */
 static const dt_option_t _dtrace_drtoptions[] = {
+	{ "agghist", dt_opt_runtime, DTRACEOPT_AGGHIST },
+	{ "aggpack", dt_opt_runtime, DTRACEOPT_AGGPACK },
 	{ "aggrate", dt_opt_rate, DTRACEOPT_AGGRATE },
 	{ "aggsortkey", dt_opt_runtime, DTRACEOPT_AGGSORTKEY },
 	{ "aggsortkeypos", dt_opt_runtime, DTRACEOPT_AGGSORTKEYPOS },
 	{ "aggsortpos", dt_opt_runtime, DTRACEOPT_AGGSORTPOS },
 	{ "aggsortrev", dt_opt_runtime, DTRACEOPT_AGGSORTREV },
+	{ "aggzoom", dt_opt_runtime, DTRACEOPT_AGGZOOM },
 	{ "flowindent", dt_opt_runtime, DTRACEOPT_FLOWINDENT },
 	{ "quiet", dt_opt_runtime, DTRACEOPT_QUIET },
 	{ "rawbytes", dt_opt_runtime, DTRACEOPT_RAWBYTES },
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_parser.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_parser.c
index f05ea1c..9522148 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_parser.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_parser.c
@@ -22,7 +22,8 @@
 
 /*
  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2013, Joyent Inc. All rights reserved.
+ * Copyright (c) 2013 by Delphix. All rights reserved.
  */
 
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
@@ -96,11 +97,12 @@
  */
 
 #include <sys/param.h>
+#include <sys/sysmacros.h>
 #include <limits.h>
 #include <setjmp.h>
 #include <strings.h>
 #include <assert.h>
-#if defined(sun)
+#ifdef illumos
 #include <alloca.h>
 #endif
 #include <stdlib.h>
@@ -195,10 +197,10 @@ dt_type_lookup(const char *s, dtrace_typeinfo_t *tip)
 {
 	static const char delimiters[] = " \t\n\r\v\f*`";
 	dtrace_hdl_t *dtp = yypcb->pcb_hdl;
-	const char *p, *q, *end, *obj;
+	const char *p, *q, *r, *end, *obj;
 
 	for (p = s, end = s + strlen(s); *p != '\0'; p = q) {
-		while (isspace(*p))
+		while (isspace((unsigned char)*p))
 			p++;	/* skip leading whitespace prior to token */
 
 		if (p == end || (q = strpbrk(p + 1, delimiters)) == NULL)
@@ -223,8 +225,23 @@ dt_type_lookup(const char *s, dtrace_typeinfo_t *tip)
 			bcopy(s, type, (size_t)(p - s));
 			bcopy(q + 1, type + (size_t)(p - s), strlen(q + 1) + 1);
 
-			if (strchr(q + 1, '`') != NULL)
-				return (dt_set_errno(dtp, EDT_BADSCOPE));
+			/*
+			 * There may be at most three delimeters. The second
+			 * delimeter is usually used to distinguish the type
+			 * within a given module, however, there could be a link
+			 * map id on the scene in which case that delimeter
+			 * would be the third. We determine presence of the lmid
+			 * if it rouglhly meets the from LM[0-9]
+			 */
+			if ((r = strchr(q + 1, '`')) != NULL &&
+			    ((r = strchr(r + 1, '`')) != NULL)) {
+				if (strchr(r + 1, '`') != NULL)
+					return (dt_set_errno(dtp,
+					    EDT_BADSCOPE));
+				if (q[1] != 'L' || q[2] != 'M')
+					return (dt_set_errno(dtp,
+					    EDT_BADSCOPE));
+			}
 
 			return (dtrace_lookup_by_type(dtp, object, type, tip));
 		}
@@ -254,6 +271,7 @@ dt_type_pointer(dtrace_typeinfo_t *tip)
 	ctf_file_t *ctfp = tip->dtt_ctfp;
 	ctf_id_t type = tip->dtt_type;
 	ctf_id_t base = ctf_type_resolve(ctfp, type);
+	uint_t bflags = tip->dtt_flags;
 
 	dt_module_t *dmp;
 	ctf_id_t ptr;
@@ -285,6 +303,7 @@ dt_type_pointer(dtrace_typeinfo_t *tip)
 	tip->dtt_object = dmp->dm_name;
 	tip->dtt_ctfp = dmp->dm_ctfp;
 	tip->dtt_type = ptr;
+	tip->dtt_flags = bflags;
 
 	return (0);
 }
@@ -388,7 +407,7 @@ void
 dt_node_promote(dt_node_t *lp, dt_node_t *rp, dt_node_t *dnp)
 {
 	dt_type_promote(lp, rp, &dnp->dn_ctfp, &dnp->dn_type);
-	dt_node_type_assign(dnp, dnp->dn_ctfp, dnp->dn_type);
+	dt_node_type_assign(dnp, dnp->dn_ctfp, dnp->dn_type, B_FALSE);
 	dt_node_attr_assign(dnp, dt_attr_min(lp->dn_attr, rp->dn_attr));
 }
 
@@ -404,8 +423,8 @@ dt_node_name(const dt_node_t *dnp, char *buf, size_t len)
 
 	switch (dnp->dn_kind) {
 	case DT_NODE_INT:
-		(void) snprintf(buf, len, "integer constant 0x%" PRIx64,
-		    dnp->dn_value);
+		(void) snprintf(buf, len, "integer constant 0x%llx",
+		    (unsigned long long)dnp->dn_value);
 		break;
 	case DT_NODE_STRING:
 		s = strchr2esc(dnp->dn_string, strlen(dnp->dn_string));
@@ -657,7 +676,8 @@ dt_node_attr_assign(dt_node_t *dnp, dtrace_attribute_t attr)
 }
 
 void
-dt_node_type_assign(dt_node_t *dnp, ctf_file_t *fp, ctf_id_t type)
+dt_node_type_assign(dt_node_t *dnp, ctf_file_t *fp, ctf_id_t type,
+    boolean_t user)
 {
 	ctf_id_t base = ctf_type_resolve(fp, type);
 	uint_t kind = ctf_type_kind(fp, base);
@@ -689,6 +709,9 @@ dt_node_type_assign(dt_node_t *dnp, ctf_file_t *fp, ctf_id_t type)
 	    type == DT_DYN_TYPE(yypcb->pcb_hdl))
 		dnp->dn_flags |= DT_NF_REF;
 
+	if (user)
+		dnp->dn_flags |= DT_NF_USERLAND;
+
 	dnp->dn_flags |= DT_NF_COOKED;
 	dnp->dn_ctfp = fp;
 	dnp->dn_type = type;
@@ -725,12 +748,34 @@ dt_node_type_name(const dt_node_t *dnp, char *buf, size_t len)
 size_t
 dt_node_type_size(const dt_node_t *dnp)
 {
+	ctf_id_t base;
+	dtrace_hdl_t *dtp = yypcb->pcb_hdl;
+
 	if (dnp->dn_kind == DT_NODE_STRING)
 		return (strlen(dnp->dn_string) + 1);
 
 	if (dt_node_is_dynamic(dnp) && dnp->dn_ident != NULL)
 		return (dt_ident_size(dnp->dn_ident));
 
+	base = ctf_type_resolve(dnp->dn_ctfp, dnp->dn_type);
+
+	if (ctf_type_kind(dnp->dn_ctfp, base) == CTF_K_FORWARD)
+		return (0);
+
+	/*
+	 * Here we have a 32-bit user pointer that is being used with a 64-bit
+	 * kernel. When we're using it and its tagged as a userland reference --
+	 * then we need to keep it as a 32-bit pointer. However, if we are
+	 * referring to it as a kernel address, eg. being used after a copyin()
+	 * then we need to make sure that we actually return the kernel's size
+	 * of a pointer, 8 bytes.
+	 */
+	if (ctf_type_kind(dnp->dn_ctfp, base) == CTF_K_POINTER &&
+	    ctf_getmodel(dnp->dn_ctfp) == CTF_MODEL_ILP32 &&
+	    !(dnp->dn_flags & DT_NF_USERLAND) &&
+	    dtp->dt_conf.dtc_ctfmodel == CTF_MODEL_LP64)
+			return (8);
+
 	return (ctf_type_size(dnp->dn_ctfp, dnp->dn_type));
 }
 
@@ -1008,7 +1053,7 @@ dt_node_is_ptrcompat(const dt_node_t *lp, const dt_node_t *rp,
 	ctf_id_t lref = CTF_ERR, rref = CTF_ERR;
 
 	int lp_is_void, rp_is_void, lp_is_int, rp_is_int, compat;
-	uint_t lkind, rkind;
+	uint_t lkind = 0, rkind = 0;	// XXX: gcc
 	ctf_encoding_t e;
 	ctf_arinfo_t r;
 
@@ -1217,7 +1262,7 @@ dt_node_int(uintmax_t value)
 		if (value <= dtp->dt_ints[i].did_limit) {
 			dt_node_type_assign(dnp,
 			    dtp->dt_ints[i].did_ctfp,
-			    dtp->dt_ints[i].did_type);
+			    dtp->dt_ints[i].did_type, B_FALSE);
 
 			/*
 			 * If a prefix character is present in macro text, add
@@ -1234,8 +1279,8 @@ dt_node_int(uintmax_t value)
 		}
 	}
 
-	xyerror(D_INT_OFLOW, "integer constant 0x%" PRIx64
-	    "cannot be represented in any built-in integral type\n", value);
+	xyerror(D_INT_OFLOW, "integer constant 0x%llx cannot be represented "
+	    "in any built-in integral type\n", (u_longlong_t)value);
 	/*NOTREACHED*/
 	return (NULL);		/* keep gcc happy */
 }
@@ -1252,7 +1297,7 @@ dt_node_string(char *string)
 	dnp = dt_node_alloc(DT_NODE_STRING);
 	dnp->dn_op = DT_TOK_STRING;
 	dnp->dn_string = string;
-	dt_node_type_assign(dnp, DT_STR_CTFP(dtp), DT_STR_TYPE(dtp));
+	dt_node_type_assign(dnp, DT_STR_CTFP(dtp), DT_STR_TYPE(dtp), B_FALSE);
 
 	return (dnp);
 }
@@ -1328,7 +1373,8 @@ dt_node_type(dt_decl_t *ddp)
 	dnp = dt_node_alloc(DT_NODE_TYPE);
 	dnp->dn_op = DT_TOK_IDENT;
 	dnp->dn_string = name;
-	dt_node_type_assign(dnp, dtt.dtt_ctfp, dtt.dtt_type);
+
+	dt_node_type_assign(dnp, dtt.dtt_ctfp, dtt.dtt_type, dtt.dtt_flags);
 
 	if (dtt.dtt_ctfp == dtp->dt_cdefs->dm_ctfp ||
 	    dtt.dtt_ctfp == dtp->dt_ddefs->dm_ctfp)
@@ -1572,7 +1618,8 @@ dt_node_decl(void)
 		bzero(&idn, sizeof (dt_node_t));
 
 		if (idp != NULL && idp->di_type != CTF_ERR)
-			dt_node_type_assign(&idn, idp->di_ctfp, idp->di_type);
+			dt_node_type_assign(&idn, idp->di_ctfp, idp->di_type,
+			    B_FALSE);
 		else if (idp != NULL)
 			(void) dt_ident_cook(&idn, idp, NULL);
 
@@ -1782,7 +1829,7 @@ dt_node_offsetof(dt_decl_t *ddp, char *s)
 	}
 
 	bzero(&dn, sizeof (dn));
-	dt_node_type_assign(&dn, dtt.dtt_ctfp, ctm.ctm_type);
+	dt_node_type_assign(&dn, dtt.dtt_ctfp, ctm.ctm_type, B_FALSE);
 
 	if (dn.dn_flags & DT_NF_BITFIELD) {
 		xyerror(D_OFFSETOF_BITFIELD,
@@ -1838,7 +1885,8 @@ dt_node_op1(int op, dt_node_t *cp)
 		}
 
 		dt_node_type_assign(cp, dtp->dt_ddefs->dm_ctfp,
-		    ctf_lookup_by_name(dtp->dt_ddefs->dm_ctfp, "size_t"));
+		    ctf_lookup_by_name(dtp->dt_ddefs->dm_ctfp, "size_t"),
+		    B_FALSE);
 
 		cp->dn_kind = DT_NODE_INT;
 		cp->dn_op = DT_TOK_INT;
@@ -1855,6 +1903,38 @@ dt_node_op1(int op, dt_node_t *cp)
 	return (dnp);
 }
 
+/*
+ * If an integer constant is being cast to another integer type, we can
+ * perform the cast as part of integer constant folding in this pass. We must
+ * take action when the integer is being cast to a smaller type or if it is
+ * changing signed-ness. If so, we first shift rp's bits bits high (losing
+ * excess bits if narrowing) and then shift them down with either a logical
+ * shift (unsigned) or arithmetic shift (signed).
+ */
+static void
+dt_cast(dt_node_t *lp, dt_node_t *rp)
+{
+	size_t srcsize = dt_node_type_size(rp);
+	size_t dstsize = dt_node_type_size(lp);
+
+	if (dstsize < srcsize) {
+		int n = (sizeof (uint64_t) - dstsize) * NBBY;
+		rp->dn_value <<= n;
+		rp->dn_value >>= n;
+	} else if (dstsize > srcsize) {
+		int n = (sizeof (uint64_t) - srcsize) * NBBY;
+		int s = (dstsize - srcsize) * NBBY;
+
+		rp->dn_value <<= n;
+		if (rp->dn_flags & DT_NF_SIGNED) {
+			rp->dn_value = (intmax_t)rp->dn_value >> s;
+			rp->dn_value >>= n - s;
+		} else {
+			rp->dn_value >>= n;
+		}
+	}
+}
+
 dt_node_t *
 dt_node_op2(int op, dt_node_t *lp, dt_node_t *rp)
 {
@@ -1884,17 +1964,17 @@ dt_node_op2(int op, dt_node_t *lp, dt_node_t *rp)
 		case DT_TOK_LOR:
 			dnp->dn_value = l || r;
 			dt_node_type_assign(dnp,
-			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp));
+			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp), B_FALSE);
 			break;
 		case DT_TOK_LXOR:
 			dnp->dn_value = (l != 0) ^ (r != 0);
 			dt_node_type_assign(dnp,
-			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp));
+			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp), B_FALSE);
 			break;
 		case DT_TOK_LAND:
 			dnp->dn_value = l && r;
 			dt_node_type_assign(dnp,
-			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp));
+			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp), B_FALSE);
 			break;
 		case DT_TOK_BOR:
 			dnp->dn_value = l | r;
@@ -1911,12 +1991,12 @@ dt_node_op2(int op, dt_node_t *lp, dt_node_t *rp)
 		case DT_TOK_EQU:
 			dnp->dn_value = l == r;
 			dt_node_type_assign(dnp,
-			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp));
+			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp), B_FALSE);
 			break;
 		case DT_TOK_NEQ:
 			dnp->dn_value = l != r;
 			dt_node_type_assign(dnp,
-			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp));
+			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp), B_FALSE);
 			break;
 		case DT_TOK_LT:
 			dt_node_promote(lp, rp, dnp);
@@ -1925,7 +2005,7 @@ dt_node_op2(int op, dt_node_t *lp, dt_node_t *rp)
 			else
 				dnp->dn_value = l < r;
 			dt_node_type_assign(dnp,
-			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp));
+			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp), B_FALSE);
 			break;
 		case DT_TOK_LE:
 			dt_node_promote(lp, rp, dnp);
@@ -1934,7 +2014,7 @@ dt_node_op2(int op, dt_node_t *lp, dt_node_t *rp)
 			else
 				dnp->dn_value = l <= r;
 			dt_node_type_assign(dnp,
-			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp));
+			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp), B_FALSE);
 			break;
 		case DT_TOK_GT:
 			dt_node_promote(lp, rp, dnp);
@@ -1943,7 +2023,7 @@ dt_node_op2(int op, dt_node_t *lp, dt_node_t *rp)
 			else
 				dnp->dn_value = l > r;
 			dt_node_type_assign(dnp,
-			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp));
+			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp), B_FALSE);
 			break;
 		case DT_TOK_GE:
 			dt_node_promote(lp, rp, dnp);
@@ -1952,7 +2032,7 @@ dt_node_op2(int op, dt_node_t *lp, dt_node_t *rp)
 			else
 				dnp->dn_value = l >= r;
 			dt_node_type_assign(dnp,
-			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp));
+			    DT_INT_CTFP(dtp), DT_INT_TYPE(dtp), B_FALSE);
 			break;
 		case DT_TOK_LSH:
 			dnp->dn_value = l << r;
@@ -2004,32 +2084,9 @@ dt_node_op2(int op, dt_node_t *lp, dt_node_t *rp)
 		}
 	}
 
-	/*
-	 * If an integer constant is being cast to another integer type, we can
-	 * perform the cast as part of integer constant folding in this pass.
-	 * We must take action when the integer is being cast to a smaller type
-	 * or if it is changing signed-ness.  If so, we first shift rp's bits
-	 * bits high (losing excess bits if narrowing) and then shift them down
-	 * with either a logical shift (unsigned) or arithmetic shift (signed).
-	 */
 	if (op == DT_TOK_LPAR && rp->dn_kind == DT_NODE_INT &&
 	    dt_node_is_integer(lp)) {
-		size_t srcsize = dt_node_type_size(rp);
-		size_t dstsize = dt_node_type_size(lp);
-
-		if ((dstsize < srcsize) || ((lp->dn_flags & DT_NF_SIGNED) ^
-		    (rp->dn_flags & DT_NF_SIGNED))) {
-			int n = dstsize < srcsize ?
-			    (sizeof (uint64_t) * NBBY - dstsize * NBBY) :
-			    (sizeof (uint64_t) * NBBY - srcsize * NBBY);
-
-			rp->dn_value <<= n;
-			if (lp->dn_flags & DT_NF_SIGNED)
-				rp->dn_value = (intmax_t)rp->dn_value >> n;
-			else
-				rp->dn_value = rp->dn_value >> n;
-		}
-
+		dt_cast(lp, rp);
 		dt_node_type_propagate(lp, rp);
 		dt_node_attr_assign(rp, dt_attr_min(lp->dn_attr, rp->dn_attr));
 		dt_node_free(lp);
@@ -2216,7 +2273,7 @@ dt_node_inline(dt_node_t *expr)
 	 * until we have successfully cooked the right-hand expression, below.
 	 */
 	dnp = dt_node_alloc(DT_NODE_INLINE);
-	dt_node_type_assign(dnp, dtt.dtt_ctfp, dtt.dtt_type);
+	dt_node_type_assign(dnp, dtt.dtt_ctfp, dtt.dtt_type, B_FALSE);
 	dt_node_attr_assign(dnp, _dtrace_defattr);
 
 	if (dt_node_is_void(dnp)) {
@@ -2371,7 +2428,8 @@ dt_node_member(dt_decl_t *ddp, char *name, dt_node_t *expr)
 	dnp->dn_membexpr = expr;
 
 	if (ddp != NULL)
-		dt_node_type_assign(dnp, dtt.dtt_ctfp, dtt.dtt_type);
+		dt_node_type_assign(dnp, dtt.dtt_ctfp, dtt.dtt_type,
+		    dtt.dtt_flags);
 
 	return (dnp);
 }
@@ -2402,10 +2460,10 @@ dt_node_xlator(dt_decl_t *ddp, dt_decl_t *sdp, char *name, dt_node_t *members)
 	}
 
 	bzero(&sn, sizeof (sn));
-	dt_node_type_assign(&sn, src.dtt_ctfp, src.dtt_type);
+	dt_node_type_assign(&sn, src.dtt_ctfp, src.dtt_type, B_FALSE);
 
 	bzero(&dn, sizeof (dn));
-	dt_node_type_assign(&dn, dst.dtt_ctfp, dst.dtt_type);
+	dt_node_type_assign(&dn, dst.dtt_ctfp, dst.dtt_type, B_FALSE);
 
 	if (dt_xlator_lookup(dtp, &sn, &dn, DT_XLATE_EXACT) != NULL) {
 		xyerror(D_XLATE_REDECL,
@@ -2515,7 +2573,7 @@ dt_node_provider(char *name, dt_node_t *probes)
 		    "characters: %s\n", DTRACE_PROVNAMELEN - 1, name);
 	}
 
-	if (isdigit(name[len - 1])) {
+	if (isdigit((unsigned char)name[len - 1])) {
 		dnerror(dnp, D_PROV_BADNAME, "provider name may not "
 		    "end with a digit: %s\n", name);
 	}
@@ -2651,7 +2709,7 @@ dt_xcook_ident(dt_node_t *dnp, dt_idhash_t *dhp, uint_t idkind, int create)
 			attr = dt_ident_cook(dnp, idp, NULL);
 		else {
 			dt_node_type_assign(dnp,
-			    DT_DYN_CTFP(dtp), DT_DYN_TYPE(dtp));
+			    DT_DYN_CTFP(dtp), DT_DYN_TYPE(dtp), B_FALSE);
 			attr = idp->di_attr;
 		}
 
@@ -2727,7 +2785,8 @@ dt_xcook_ident(dt_node_t *dnp, dt_idhash_t *dhp, uint_t idkind, int create)
 		dnp->dn_ident = idp;
 		dnp->dn_flags |= DT_NF_LVALUE;
 
-		dt_node_type_assign(dnp, dtt.dtt_ctfp, dtt.dtt_type);
+		dt_node_type_assign(dnp, dtt.dtt_ctfp, dtt.dtt_type,
+		    dtt.dtt_flags);
 		dt_node_attr_assign(dnp, _dtrace_symattr);
 
 		if (uref) {
@@ -2775,7 +2834,7 @@ dt_xcook_ident(dt_node_t *dnp, dt_idhash_t *dhp, uint_t idkind, int create)
 			attr = dt_ident_cook(dnp, idp, NULL);
 		else {
 			dt_node_type_assign(dnp,
-			    DT_DYN_CTFP(dtp), DT_DYN_TYPE(dtp));
+			    DT_DYN_CTFP(dtp), DT_DYN_TYPE(dtp), B_FALSE);
 			attr = idp->di_attr;
 		}
 
@@ -2878,7 +2937,8 @@ dt_cook_op1(dt_node_t *dnp, uint_t idflags)
 			xyerror(D_TYPE_ERR, "failed to lookup int64_t\n");
 
 		dt_ident_type_assign(cp->dn_ident, dtt.dtt_ctfp, dtt.dtt_type);
-		dt_node_type_assign(cp, dtt.dtt_ctfp, dtt.dtt_type);
+		dt_node_type_assign(cp, dtt.dtt_ctfp, dtt.dtt_type,
+		    dtt.dtt_flags);
 	}
 
 	if (cp->dn_kind == DT_NODE_VAR)
@@ -2888,14 +2948,15 @@ dt_cook_op1(dt_node_t *dnp, uint_t idflags)
 	case DT_TOK_DEREF:
 		/*
 		 * If the deref operator is applied to a translated pointer,
-		 * we can just set our output type to the base translation.
+		 * we set our output type to the output of the translation.
 		 */
 		if ((idp = dt_node_resolve(cp, DT_IDENT_XLPTR)) != NULL) {
 			dt_xlator_t *dxp = idp->di_data;
 
 			dnp->dn_ident = &dxp->dx_souid;
 			dt_node_type_assign(dnp,
-			    DT_DYN_CTFP(dtp), DT_DYN_TYPE(dtp));
+			    dnp->dn_ident->di_ctfp, dnp->dn_ident->di_type,
+			    cp->dn_flags & DT_NF_USERLAND);
 			break;
 		}
 
@@ -2915,7 +2976,8 @@ dt_cook_op1(dt_node_t *dnp, uint_t idflags)
 			    "cannot dereference non-pointer type\n");
 		}
 
-		dt_node_type_assign(dnp, cp->dn_ctfp, type);
+		dt_node_type_assign(dnp, cp->dn_ctfp, type,
+		    cp->dn_flags & DT_NF_USERLAND);
 		base = ctf_type_resolve(cp->dn_ctfp, type);
 		kind = ctf_type_kind(cp->dn_ctfp, base);
 
@@ -2972,7 +3034,8 @@ dt_cook_op1(dt_node_t *dnp, uint_t idflags)
 			xyerror(D_OP_SCALAR, "operator %s requires an operand "
 			    "of scalar type\n", opstr(dnp->dn_op));
 		}
-		dt_node_type_assign(dnp, DT_INT_CTFP(dtp), DT_INT_TYPE(dtp));
+		dt_node_type_assign(dnp, DT_INT_CTFP(dtp), DT_INT_TYPE(dtp),
+		    B_FALSE);
 		break;
 
 	case DT_TOK_ADDROF:
@@ -3005,10 +3068,8 @@ dt_cook_op1(dt_node_t *dnp, uint_t idflags)
 			    dt_node_type_name(cp, n, sizeof (n)));
 		}
 
-		dt_node_type_assign(dnp, dtt.dtt_ctfp, dtt.dtt_type);
-
-		if (cp->dn_flags & DT_NF_USERLAND)
-			dnp->dn_flags |= DT_NF_USERLAND;
+		dt_node_type_assign(dnp, dtt.dtt_ctfp, dtt.dtt_type,
+		    cp->dn_flags & DT_NF_USERLAND);
 		break;
 
 	case DT_TOK_SIZEOF:
@@ -3023,7 +3084,8 @@ dt_cook_op1(dt_node_t *dnp, uint_t idflags)
 		}
 
 		dt_node_type_assign(dnp, dtp->dt_ddefs->dm_ctfp,
-		    ctf_lookup_by_name(dtp->dt_ddefs->dm_ctfp, "size_t"));
+		    ctf_lookup_by_name(dtp->dt_ddefs->dm_ctfp, "size_t"),
+		    B_FALSE);
 		break;
 
 	case DT_TOK_STRINGOF:
@@ -3033,7 +3095,8 @@ dt_cook_op1(dt_node_t *dnp, uint_t idflags)
 			    "cannot apply stringof to a value of type %s\n",
 			    dt_node_type_name(cp, n, sizeof (n)));
 		}
-		dt_node_type_assign(dnp, DT_STR_CTFP(dtp), DT_STR_TYPE(dtp));
+		dt_node_type_assign(dnp, DT_STR_CTFP(dtp), DT_STR_TYPE(dtp),
+		    cp->dn_flags & DT_NF_USERLAND);
 		break;
 
 	case DT_TOK_PREINC:
@@ -3071,6 +3134,31 @@ dt_cook_op1(dt_node_t *dnp, uint_t idflags)
 	return (dnp);
 }
 
+static void
+dt_assign_common(dt_node_t *dnp)
+{
+	dt_node_t *lp = dnp->dn_left;
+	dt_node_t *rp = dnp->dn_right;
+	int op = dnp->dn_op;
+
+	if (rp->dn_kind == DT_NODE_INT)
+		dt_cast(lp, rp);
+
+	if (!(lp->dn_flags & DT_NF_LVALUE)) {
+		xyerror(D_OP_LVAL, "operator %s requires modifiable "
+		    "lvalue as an operand\n", opstr(op));
+		/* see K&R[A7.17] */
+	}
+
+	if (!(lp->dn_flags & DT_NF_WRITABLE)) {
+		xyerror(D_OP_WRITE, "operator %s can only be applied "
+		    "to a writable variable\n", opstr(op));
+	}
+
+	dt_node_type_propagate(lp, dnp); /* see K&R[A7.17] */
+	dt_node_attr_assign(dnp, dt_attr_min(lp->dn_attr, rp->dn_attr));
+}
+
 static dt_node_t *
 dt_cook_op2(dt_node_t *dnp, uint_t idflags)
 {
@@ -3082,7 +3170,7 @@ dt_cook_op2(dt_node_t *dnp, uint_t idflags)
 	ctf_membinfo_t m;
 	ctf_file_t *ctfp;
 	ctf_id_t type;
-	int kind, val, uref;
+	int kind, val, uref = 0;	// XXX: gcc
 	dt_ident_t *idp;
 
 	char n1[DT_TYPE_NAMELEN];
@@ -3201,7 +3289,8 @@ dt_cook_op2(dt_node_t *dnp, uint_t idflags)
 			    "of scalar type\n", opstr(op));
 		}
 
-		dt_node_type_assign(dnp, DT_INT_CTFP(dtp), DT_INT_TYPE(dtp));
+		dt_node_type_assign(dnp, DT_INT_CTFP(dtp), DT_INT_TYPE(dtp),
+		    B_FALSE);
 		dt_node_attr_assign(dnp, dt_attr_min(lp->dn_attr, rp->dn_attr));
 		break;
 
@@ -3245,7 +3334,8 @@ dt_cook_op2(dt_node_t *dnp, uint_t idflags)
 			rp->dn_op = DT_TOK_INT;
 			rp->dn_value = (intmax_t)val;
 
-			dt_node_type_assign(rp, lp->dn_ctfp, lp->dn_type);
+			dt_node_type_assign(rp, lp->dn_ctfp, lp->dn_type,
+			    B_FALSE);
 			dt_node_attr_assign(rp, _dtrace_symattr);
 		}
 
@@ -3277,7 +3367,8 @@ dt_cook_op2(dt_node_t *dnp, uint_t idflags)
 			    dt_node_type_name(rp, n2, sizeof (n2)));
 		}
 
-		dt_node_type_assign(dnp, DT_INT_CTFP(dtp), DT_INT_TYPE(dtp));
+		dt_node_type_assign(dnp, DT_INT_CTFP(dtp), DT_INT_TYPE(dtp),
+		    B_FALSE);
 		dt_node_attr_assign(dnp, dt_attr_min(lp->dn_attr, rp->dn_attr));
 		break;
 
@@ -3325,7 +3416,7 @@ dt_cook_op2(dt_node_t *dnp, uint_t idflags)
 			    dt_node_type_name(rp, n2, sizeof (n2)));
 		}
 
-		dt_node_type_assign(dnp, ctfp, type);
+		dt_node_type_assign(dnp, ctfp, type, B_FALSE);
 		dt_node_attr_assign(dnp, dt_attr_min(lp->dn_attr, rp->dn_attr));
 
 		if (uref)
@@ -3466,7 +3557,7 @@ dt_cook_op2(dt_node_t *dnp, uint_t idflags)
 		 */
 		if (lp->dn_kind == DT_NODE_VAR &&
 		    dt_ident_unref(lp->dn_ident)) {
-			dt_node_type_assign(lp, ctfp, type);
+			dt_node_type_assign(lp, ctfp, type, B_FALSE);
 			dt_ident_type_assign(lp->dn_ident, ctfp, type);
 
 			if (uref) {
@@ -3549,19 +3640,7 @@ dt_cook_op2(dt_node_t *dnp, uint_t idflags)
 			}
 		}
 asgn_common:
-		if (!(lp->dn_flags & DT_NF_LVALUE)) {
-			xyerror(D_OP_LVAL, "operator %s requires modifiable "
-			    "lvalue as an operand\n", opstr(op));
-			/* see K&R[A7.17] */
-		}
-
-		if (!(lp->dn_flags & DT_NF_WRITABLE)) {
-			xyerror(D_OP_WRITE, "operator %s can only be applied "
-			    "to a writable variable\n", opstr(op));
-		}
-
-		dt_node_type_propagate(lp, dnp); /* see K&R[A7.17] */
-		dt_node_attr_assign(dnp, dt_attr_min(lp->dn_attr, rp->dn_attr));
+		dt_assign_common(dnp);
 		break;
 
 	case DT_TOK_PTR:
@@ -3692,7 +3771,7 @@ asgn_common:
 		type = ctf_type_resolve(ctfp, m.ctm_type);
 		kind = ctf_type_kind(ctfp, type);
 
-		dt_node_type_assign(dnp, ctfp, m.ctm_type);
+		dt_node_type_assign(dnp, ctfp, m.ctm_type, B_FALSE);
 		dt_node_attr_assign(dnp, lp->dn_attr);
 
 		if (op == DT_TOK_PTR && (kind != CTF_K_ARRAY ||
@@ -3818,7 +3897,8 @@ asgn_common:
 		}
 
 		dnp->dn_ident = dt_xlator_ident(dxp, lp->dn_ctfp, lp->dn_type);
-		dt_node_type_assign(dnp, DT_DYN_CTFP(dtp), DT_DYN_TYPE(dtp));
+		dt_node_type_assign(dnp, DT_DYN_CTFP(dtp), DT_DYN_TYPE(dtp),
+		    B_FALSE);
 		dt_node_attr_assign(dnp,
 		    dt_attr_min(rp->dn_attr, dnp->dn_ident->di_attr));
 		break;
@@ -3866,6 +3946,14 @@ asgn_common:
 
 		dt_node_type_propagate(lp, dnp); /* see K&R[A7.5] */
 		dt_node_attr_assign(dnp, dt_attr_min(lp->dn_attr, rp->dn_attr));
+
+		/*
+		 * If it's a pointer then should be able to (attempt to)
+		 * assign to it.
+		 */
+		if (lkind == CTF_K_POINTER)
+			dnp->dn_flags |= DT_NF_WRITABLE;
+
 		break;
 	}
 
@@ -3975,7 +4063,7 @@ dt_cook_op3(dt_node_t *dnp, uint_t idflags)
 		    "used in a conditional context\n");
 	}
 
-	dt_node_type_assign(dnp, ctfp, type);
+	dt_node_type_assign(dnp, ctfp, type, B_FALSE);
 	dt_node_attr_assign(dnp, dt_attr_min(dnp->dn_expr->dn_attr,
 	    dt_attr_min(lp->dn_attr, rp->dn_attr)));
 
@@ -4008,7 +4096,8 @@ dt_cook_aggregation(dt_node_t *dnp, uint_t idflags)
 		dt_node_attr_assign(dnp, dt_ident_cook(dnp,
 		    dnp->dn_ident, &dnp->dn_aggtup));
 	} else {
-		dt_node_type_assign(dnp, DT_DYN_CTFP(dtp), DT_DYN_TYPE(dtp));
+		dt_node_type_assign(dnp, DT_DYN_CTFP(dtp), DT_DYN_TYPE(dtp),
+		    B_FALSE);
 		dt_node_attr_assign(dnp, dnp->dn_ident->di_attr);
 	}
 
@@ -4210,7 +4299,8 @@ dt_cook_xlator(dt_node_t *dnp, uint_t idflags)
 		}
 
 		(void) dt_node_cook(mnp, DT_IDFLG_REF);
-		dt_node_type_assign(mnp, dxp->dx_dst_ctfp, ctm.ctm_type);
+		dt_node_type_assign(mnp, dxp->dx_dst_ctfp, ctm.ctm_type,
+		    B_FALSE);
 		attr = dt_attr_min(attr, mnp->dn_attr);
 
 		if (dt_node_is_argcompat(mnp, mnp->dn_membexpr) == 0) {
@@ -4229,7 +4319,7 @@ dt_cook_xlator(dt_node_t *dnp, uint_t idflags)
 	dxp->dx_souid.di_attr = attr;
 	dxp->dx_ptrid.di_attr = attr;
 
-	dt_node_type_assign(dnp, DT_DYN_CTFP(dtp), DT_DYN_TYPE(dtp));
+	dt_node_type_assign(dnp, DT_DYN_CTFP(dtp), DT_DYN_TYPE(dtp), B_FALSE);
 	dt_node_attr_assign(dnp, _dtrace_defattr);
 
 	return (dnp);
@@ -4522,7 +4612,9 @@ dt_node_diftype(dtrace_hdl_t *dtp, const dt_node_t *dnp, dtrace_diftype_t *tp)
 		    ctf_type_resolve(dnp->dn_ctfp, dnp->dn_type));
 	}
 
-	tp->dtdt_flags = (dnp->dn_flags & DT_NF_REF) ? DIF_TF_BYREF : 0;
+	tp->dtdt_flags = (dnp->dn_flags & DT_NF_REF) ?
+	    (dnp->dn_flags & DT_NF_USERLAND) ? DIF_TF_BYUREF :
+	    DIF_TF_BYREF : 0;
 	tp->dtdt_pad = 0;
 	tp->dtdt_size = ctf_type_size(dnp->dn_ctfp, dnp->dn_type);
 }
@@ -4572,8 +4664,8 @@ dt_node_printr(dt_node_t *dnp, FILE *fp, int depth)
 		break;
 
 	case DT_NODE_INT:
-		(void) fprintf(fp, "INT 0x%" PRIx64 "(%s)\n",
-		    dnp->dn_value, buf);
+		(void) fprintf(fp, "INT 0x%llx (%s)\n",
+		    (unsigned long long)dnp->dn_value, buf);
 		break;
 
 	case DT_NODE_STRING:
@@ -4886,8 +4978,10 @@ yylabel(const char *label)
 	yypcb->pcb_region = label;
 }
 
+#if 0
 int
 yywrap(void)
 {
 	return (1); /* indicate that lex should return a zero token for EOF */
 }
+#endif
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_parser.h b/external/cddl/osnet/dist/lib/libdtrace/common/dt_parser.h
index 6064efb..38f21c9 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_parser.h
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_parser.h
@@ -22,12 +22,14 @@
  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
+/*
+ * Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2013 Joyent, Inc. All rights reserved.
+ */
 
 #ifndef	_DT_PARSER_H
 #define	_DT_PARSER_H
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <sys/types.h>
 #include <sys/dtrace.h>
 
@@ -223,7 +225,7 @@ extern void dt_node_list_free(dt_node_t **);
 extern void dt_node_link_free(dt_node_t **);
 
 extern void dt_node_attr_assign(dt_node_t *, dtrace_attribute_t);
-extern void dt_node_type_assign(dt_node_t *, ctf_file_t *, ctf_id_t);
+extern void dt_node_type_assign(dt_node_t *, ctf_file_t *, ctf_id_t, boolean_t);
 extern void dt_node_type_propagate(const dt_node_t *, dt_node_t *);
 extern const char *dt_node_type_name(const dt_node_t *, char *, size_t);
 extern size_t dt_node_type_size(const dt_node_t *);
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_pid.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_pid.c
index c83c484..fdbabdb 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_pid.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_pid.c
@@ -23,8 +23,9 @@
  * Copyright 2010 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 <assert.h>
 #include <strings.h>
@@ -32,16 +33,27 @@
 #include <stdio.h>
 #include <errno.h>
 #include <ctype.h>
-#if defined(sun)
+#ifdef illumos
 #include <alloca.h>
 #endif
 #include <libgen.h>
 #include <stddef.h>
+#include <sys/sysmacros.h>
 
 #include <dt_impl.h>
 #include <dt_program.h>
 #include <dt_pid.h>
 #include <dt_string.h>
+#include <dt_module.h>
+
+#ifndef illumos
+#include <sys/sysctl.h>
+#include <sys/ioctl.h>
+#include <unistd.h>
+#include <libproc_compat.h>
+#include <libelf.h>
+#include <gelf.h>
+#endif
 
 typedef struct dt_pid_probe {
 	dtrace_hdl_t *dpp_dtp;
@@ -68,7 +80,7 @@ typedef struct dt_pid_probe {
 static void
 dt_pid_objname(char *buf, size_t len, Lmid_t lmid, const char *obj)
 {
-#if defined(sun)
+#ifdef illumos
 	if (lmid == LM_ID_BASE)
 		(void) strncpy(buf, obj, len);
 	else
@@ -108,7 +120,6 @@ dt_pid_error(dtrace_hdl_t *dtp, dt_pcb_t *pcb, dt_proc_t *dpr,
 static int
 dt_pid_per_sym(dt_pid_probe_t *pp, const GElf_Sym *symp, const char *func)
 {
-#if 0	/* XXX TBD needs libproc */
 	dtrace_hdl_t *dtp = pp->dpp_dtp;
 	dt_pcb_t *pcb = pp->dpp_pcb;
 	dt_proc_t *dpr = pp->dpp_dpr;
@@ -121,7 +132,7 @@ dt_pid_per_sym(dt_pid_probe_t *pp, const GElf_Sym *symp, const char *func)
 	int isdash = strcmp("-", func) == 0;
 	pid_t pid;
 
-#if defined(sun)
+#ifdef illumos
 	pid = Pstatus(pp->dpp_pr)->pr_pid;
 #else
 	pid = proc_getpid(pp->dpp_pr);
@@ -145,7 +156,6 @@ dt_pid_per_sym(dt_pid_probe_t *pp, const GElf_Sym *symp, const char *func)
 	    pp->dpp_obj);
 
 	if (!isdash && gmatch("return", pp->dpp_name)) {
-#ifdef DOODAD
 		if (dt_pid_create_return_probe(pp->dpp_pr, dtp, ftp, symp,
 		    pp->dpp_stret) < 0) {
 			return (dt_pid_error(dtp, pcb, dpr, ftp,
@@ -153,20 +163,17 @@ dt_pid_per_sym(dt_pid_probe_t *pp, const GElf_Sym *symp, const char *func)
 			    "for '%s': %s", func,
 			    dtrace_errmsg(dtp, dtrace_errno(dtp))));
 		}
-#endif
 
 		nmatches++;
 	}
 
 	if (!isdash && gmatch("entry", pp->dpp_name)) {
-#ifdef DOODAD
 		if (dt_pid_create_entry_probe(pp->dpp_pr, dtp, ftp, symp) < 0) {
 			return (dt_pid_error(dtp, pcb, dpr, ftp,
 			    D_PROC_CREATEFAIL, "failed to create entry probe "
 			    "for '%s': %s", func,
 			    dtrace_errmsg(dtp, dtrace_errno(dtp))));
 		}
-#endif
 
 		nmatches++;
 	}
@@ -185,10 +192,8 @@ dt_pid_per_sym(dt_pid_probe_t *pp, const GElf_Sym *symp, const char *func)
 			    (u_longlong_t)off, func));
 		}
 
-#ifdef DOODAD
 		err = dt_pid_create_offset_probe(pp->dpp_pr, pp->dpp_dtp, ftp,
 		    symp, off);
-#endif
 
 		if (err == DT_PROC_ERR) {
 			return (dt_pid_error(dtp, pcb, dpr, ftp,
@@ -206,7 +211,6 @@ dt_pid_per_sym(dt_pid_probe_t *pp, const GElf_Sym *symp, const char *func)
 		nmatches++;
 
 	} else if (glob && !isdash) {
-#ifdef DOODAD
 		if (dt_pid_create_glob_offset_probes(pp->dpp_pr,
 		    pp->dpp_dtp, ftp, symp, pp->dpp_name) < 0) {
 			return (dt_pid_error(dtp, pcb, dpr, ftp,
@@ -214,7 +218,6 @@ dt_pid_per_sym(dt_pid_probe_t *pp, const GElf_Sym *symp, const char *func)
 			    "failed to create offset probes in '%s': %s", func,
 			    dtrace_errmsg(dtp, dtrace_errno(dtp))));
 		}
-#endif
 
 		nmatches++;
 	}
@@ -224,10 +227,6 @@ dt_pid_per_sym(dt_pid_probe_t *pp, const GElf_Sym *symp, const char *func)
 	dt_free(dtp, ftp);
 
 	return (0);
-#else
-	printf("XXX %s not implemented\n", __func__);
-	return ENODEV;
-#endif
 }
 
 static int
@@ -268,7 +267,6 @@ dt_pid_sym_filt(void *arg, const GElf_Sym *symp, const char *func)
 static int
 dt_pid_per_mod(void *arg, const prmap_t *pmp, const char *obj)
 {
-#if 0	/* XXX TBD needs libproc */
 	dt_pid_probe_t *pp = arg;
 	dtrace_hdl_t *dtp = pp->dpp_dtp;
 	dt_pcb_t *pcb = pp->dpp_pcb;
@@ -278,7 +276,7 @@ dt_pid_per_mod(void *arg, const prmap_t *pmp, const char *obj)
 	if (obj == NULL)
 		return (0);
 
-#if defined(sun)
+#ifdef illumos
 	(void) Plmid(pp->dpp_pr, pmp->pr_vaddr, &pp->dpp_lmid);
 #endif
 	
@@ -287,8 +285,7 @@ dt_pid_per_mod(void *arg, const prmap_t *pmp, const char *obj)
 		pp->dpp_obj = obj;
 	else
 		pp->dpp_obj++;
-
-#if defined(sun)
+#ifdef illumos
 	if (Pxlookup_by_name(pp->dpp_pr, pp->dpp_lmid, obj, ".stret1", &sym,
 	    NULL) == 0)
 		pp->dpp_stret[0] = sym.st_value;
@@ -313,25 +310,10 @@ dt_pid_per_mod(void *arg, const prmap_t *pmp, const char *obj)
 	else
 		pp->dpp_stret[3] = 0;
 #else
-	if (proc_name2sym(pp->dpp_pr, obj, ".stret1", &sym) == 0)
-		pp->dpp_stret[0] = sym.st_value;
-	else
-		pp->dpp_stret[0] = 0;
-
-	if (proc_name2sym(pp->dpp_pr, obj, ".stret2", &sym) == 0)
-		pp->dpp_stret[1] = sym.st_value;
-	else
-		pp->dpp_stret[1] = 0;
-
-	if (proc_name2sym(pp->dpp_pr, obj, ".stret4", &sym) == 0)
-		pp->dpp_stret[2] = sym.st_value;
-	else
-		pp->dpp_stret[2] = 0;
-
-	if (proc_name2sym(pp->dpp_pr, obj, ".stret8", &sym) == 0)
-		pp->dpp_stret[3] = sym.st_value;
-	else
-		pp->dpp_stret[3] = 0;
+	pp->dpp_stret[0] = 0;
+	pp->dpp_stret[1] = 0;
+	pp->dpp_stret[2] = 0;
+	pp->dpp_stret[3] = 0;
 #endif
 
 	dt_dprintf("%s stret %llx %llx %llx %llx\n", obj,
@@ -353,19 +335,15 @@ dt_pid_per_mod(void *arg, const prmap_t *pmp, const char *obj)
 		 * just fail silently in the hopes that some other object will
 		 * contain the desired symbol.
 		 */
-#if defined(sun)
 		if (Pxlookup_by_name(pp->dpp_pr, pp->dpp_lmid, obj,
 		    pp->dpp_func, &sym, NULL) != 0) {
-#else
-		if (proc_name2sym(pp->dpp_pr, obj, pp->dpp_func, &sym) != 0) {
-#endif
 			if (strcmp("-", pp->dpp_func) == 0) {
 				sym.st_name = 0;
 				sym.st_info =
 				    GELF_ST_INFO(STB_LOCAL, STT_FUNC);
 				sym.st_other = 0;
 				sym.st_value = 0;
-#if defined(sun)
+#ifdef illumos
 				sym.st_size = Pstatus(pp->dpp_pr)->pr_dmodel ==
 				    PR_MODEL_ILP32 ? -1U : -1ULL;
 #else
@@ -398,16 +376,11 @@ dt_pid_per_mod(void *arg, const prmap_t *pmp, const char *obj)
 			return (0);
 #endif
 
-#if defined(sun)
 		(void) Plookup_by_addr(pp->dpp_pr, sym.st_value, pp->dpp_func,
-#else
-		(void) proc_addr2sym(pp->dpp_pr, sym.st_value, pp->dpp_func,
-#endif
 		    DTRACE_FUNCNAMELEN, &sym);
 
 		return (dt_pid_per_sym(pp, &sym, pp->dpp_func));
 	} else {
-#ifdef DOODAD
 		uint_t nmatches = pp->dpp_nmatches;
 
 		if (Psymbol_iter_by_addr(pp->dpp_pr, obj, PR_SYMTAB,
@@ -423,14 +396,9 @@ dt_pid_per_mod(void *arg, const prmap_t *pmp, const char *obj)
 			    BIND_ANY | TYPE_FUNC, dt_pid_sym_filt, pp) == 1)
 				return (1);
 		}
-#endif
 	}
 
 	return (0);
-#else
-	printf("XXX %s not implemented\n", __func__);
-	return ENODEV;
-#endif
 }
 
 static int
@@ -442,7 +410,7 @@ dt_pid_mod_filt(void *arg, const prmap_t *pmp, const char *obj)
 	if (gmatch(obj, pp->dpp_mod))
 		return (dt_pid_per_mod(pp, pmp, obj));
 
-#if defined(sun)
+#ifdef illumos
 	(void) Plmid(pp->dpp_pr, pmp->pr_vaddr, &pp->dpp_lmid);
 #else
 	pp->dpp_lmid = 0;
@@ -453,7 +421,14 @@ dt_pid_mod_filt(void *arg, const prmap_t *pmp, const char *obj)
 	else
 		pp->dpp_obj++;
 
-	dt_pid_objname(name, sizeof (name), pp->dpp_lmid, obj);
+	if (gmatch(pp->dpp_obj, pp->dpp_mod))
+		return (dt_pid_per_mod(pp, pmp, obj));
+
+#ifdef illumos
+	(void) Plmid(pp->dpp_pr, pmp->pr_vaddr, &pp->dpp_lmid);
+#endif
+
+	dt_pid_objname(name, sizeof (name), pp->dpp_lmid, pp->dpp_obj);
 
 	if (gmatch(name, pp->dpp_mod))
 		return (dt_pid_per_mod(pp, pmp, obj));
@@ -464,14 +439,11 @@ dt_pid_mod_filt(void *arg, const prmap_t *pmp, const char *obj)
 static const prmap_t *
 dt_pid_fix_mod(dtrace_probedesc_t *pdp, struct ps_prochandle *P)
 {
-#ifdef DOODAD
 	char m[MAXPATHLEN];
 	Lmid_t lmid = PR_LMID_EVERY;
 	const char *obj;
-#endif
 	const prmap_t *pmp;
 
-#ifdef DOODAD
 	/*
 	 * Pick apart the link map from the library name.
 	 */
@@ -479,7 +451,7 @@ dt_pid_fix_mod(dtrace_probedesc_t *pdp, struct ps_prochandle *P)
 		char *end;
 
 		if (strncmp(pdp->dtpd_mod, "LM", 2) != 0 ||
-		    !isdigit(pdp->dtpd_mod[2]))
+		    !isdigit((unsigned char)pdp->dtpd_mod[2]))
 			return (NULL);
 
 		lmid = strtoul(&pdp->dtpd_mod[2], &end, 16);
@@ -502,12 +474,11 @@ dt_pid_fix_mod(dtrace_probedesc_t *pdp, struct ps_prochandle *P)
 	else
 		obj++;
 
+#ifdef illumos
 	(void) Plmid(P, pmp->pr_vaddr, &lmid);
+#endif
 
 	dt_pid_objname(pdp->dtpd_mod, sizeof (pdp->dtpd_mod), lmid, obj);
-#else
-pmp = NULL;
-#endif
 
 	return (pmp);
 }
@@ -517,7 +488,6 @@ static int
 dt_pid_create_pid_probes(dtrace_probedesc_t *pdp, dtrace_hdl_t *dtp,
     dt_pcb_t *pcb, dt_proc_t *dpr)
 {
-#if 0	/* XXX TBD needs libproc */
 	dt_pid_probe_t pp;
 	int ret = 0;
 
@@ -550,13 +520,8 @@ dt_pid_create_pid_probes(dtrace_probedesc_t *pdp, dtrace_hdl_t *dtp,
 			pp.dpp_mod = pdp->dtpd_mod;
 			(void) strcpy(pdp->dtpd_mod, "a.out");
 		} else if (strisglob(pp.dpp_mod) ||
-#if defined(sun)
 		    (aout = Pname_to_map(pp.dpp_pr, "a.out")) == NULL ||
 		    (pmp = Pname_to_map(pp.dpp_pr, pp.dpp_mod)) == NULL ||
-#else
-		    (aout = proc_name2map(pp.dpp_pr, "a.out")) == NULL ||
-		    (pmp = proc_name2map(pp.dpp_pr, pp.dpp_mod)) == NULL ||
-#endif
 		    aout->pr_vaddr != pmp->pr_vaddr) {
 			return (dt_pid_error(dtp, pcb, dpr, NULL, D_PROC_LIB,
 			    "only the a.out module is valid with the "
@@ -575,7 +540,6 @@ dt_pid_create_pid_probes(dtrace_probedesc_t *pdp, dtrace_hdl_t *dtp,
 	 * to iterate over each module and compare its name against the
 	 * pattern. An empty module name is treated as '*'.
 	 */
-#ifdef DOODAD
 	if (strisglob(pp.dpp_mod)) {
 		ret = Pobject_iter(pp.dpp_pr, dt_pid_mod_filt, &pp);
 	} else {
@@ -596,26 +560,24 @@ dt_pid_create_pid_probes(dtrace_probedesc_t *pdp, dtrace_hdl_t *dtp,
 			ret = dt_pid_per_mod(&pp, pmp, obj);
 		}
 	}
-#endif
 
 	return (ret);
-#else
-	printf("XXX %s not implemented\n", __func__);
-	return ENODEV;
-#endif
 }
 
 static int
 dt_pid_usdt_mapping(void *data, const prmap_t *pmp, const char *oname)
 {
-#if 0	/* XXX TBD needs libproc */
 	struct ps_prochandle *P = data;
 	GElf_Sym sym;
-#if defined(sun)
 	prsyminfo_t sip;
-#endif
 	dof_helper_t dh;
 	GElf_Half e_type;
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	dof_hdr_t hdr;
+	size_t sz;
+	uint64_t dofmax;
+	void *dof;
+#endif
 	const char *mname;
 	const char *syms[] = { "___SUNW_dof", "__SUNW_dof" };
 	int i, fd = -1;
@@ -627,12 +589,8 @@ dt_pid_usdt_mapping(void *data, const prmap_t *pmp, const char *oname)
 	 * run the code to instantiate these providers.
 	 */
 	for (i = 0; i < 2; i++) {
-#if defined(sun)
 		if (Pxlookup_by_name(P, PR_LMID_EVERY, oname, syms[i], &sym,
 		    &sip) != 0) {
-#else
-		if (proc_name2sym(P, oname, syms[i], &sym) != 0) {
-#endif
 			continue;
 		}
 
@@ -643,25 +601,67 @@ dt_pid_usdt_mapping(void *data, const prmap_t *pmp, const char *oname)
 
 		dt_dprintf("lookup of %s succeeded for %s\n", syms[i], mname);
 
-#ifdef DOODAD
 		if (Pread(P, &e_type, sizeof (e_type), pmp->pr_vaddr +
 		    offsetof(Elf64_Ehdr, e_type)) != sizeof (e_type)) {
 			dt_dprintf("read of ELF header failed");
 			continue;
 		}
-#endif
 
-		dh.dofhp_dof = sym.st_value;
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 		dh.dofhp_addr = (e_type == ET_EXEC) ? 0 : pmp->pr_vaddr;
+		if (Pread(P, &hdr, sizeof (hdr), sym.st_value) !=
+		    sizeof (hdr)) {
+			dt_dprintf("read of DOF header failed\n");
+			continue;
+		}
+
+		sz = sizeof(dofmax);
+		if (sysctlbyname("kern.dtrace.dof_maxsize", &dofmax, &sz,
+		    NULL, 0) != 0) {
+			dt_dprintf("failed to read dof_maxsize: %s\n",
+			    strerror(errno));
+			continue;
+		}
+		if (dofmax < hdr.dofh_loadsz) {
+			dt_dprintf("DOF load size exceeds maximum\n");
+			continue;
+		}
+
+		if ((dof = malloc(hdr.dofh_loadsz)) == NULL)
+			return (-1);
+
+		if (Pread(P, dof, hdr.dofh_loadsz, sym.st_value) !=
+		    hdr.dofh_loadsz) {
+			free(dof);
+			dt_dprintf("read of DOF section failed\n");
+			continue;
+		}
+
+		dh.dofhp_dof = (uintptr_t)dof;
+		dh.dofhp_pid = proc_getpid(P);
 
 		dt_pid_objname(dh.dofhp_mod, sizeof (dh.dofhp_mod),
-#if defined(sun)
 		    sip.prs_lmid, mname);
+
+		if (fd == -1 &&
+		    (fd = open("/dev/dtrace/helper", O_RDWR, 0)) < 0) {
+			dt_dprintf("open of helper device failed: %s\n",
+			    strerror(errno));
+			free(dof);
+			return (-1); /* errno is set for us */
+		}
+
+		if (ioctl(fd, DTRACEHIOC_ADDDOF, &dh, sizeof (dh)) < 0)
+			dt_dprintf("DOF was rejected for %s\n", dh.dofhp_mod);
+
+		free(dof);
 #else
-		    0, mname);
-#endif
+		dh.dofhp_dof = sym.st_value;
+		dh.dofhp_addr = (e_type == ET_EXEC) ? 0 : pmp->pr_vaddr;
+
+		dt_pid_objname(dh.dofhp_mod, sizeof (dh.dofhp_mod),
+		    sip.prs_lmid, mname);
 
-#ifdef DOODAD
 		if (fd == -1 &&
 		    (fd = pr_open(P, "/dev/dtrace/helper", O_RDWR, 0)) < 0) {
 			dt_dprintf("pr_open of helper device failed: %s\n",
@@ -674,41 +674,35 @@ dt_pid_usdt_mapping(void *data, const prmap_t *pmp, const char *oname)
 #endif
 	}
 
-#ifdef DOODAD
 	if (fd != -1)
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+		(void) close(fd);
+#else
 		(void) pr_close(P, fd);
 #endif
 
 	return (0);
-#else
-	printf("XXX %s not implemented\n", __func__);
-	return ENODEV;
-#endif
 }
 
 static int
 dt_pid_create_usdt_probes(dtrace_probedesc_t *pdp, dtrace_hdl_t *dtp,
     dt_pcb_t *pcb, dt_proc_t *dpr)
 {
-#if 0	/* XXX TBD needs libproc */
 	struct ps_prochandle *P = dpr->dpr_proc;
 	int ret = 0;
 
 	assert(DT_MUTEX_HELD(&dpr->dpr_lock));
-
-#ifdef DOODAD
 	(void) Pupdate_maps(P);
 	if (Pobject_iter(P, dt_pid_usdt_mapping, P) != 0) {
 		ret = -1;
 		(void) dt_pid_error(dtp, pcb, dpr, NULL, D_PROC_USDT,
 		    "failed to instantiate probes for pid %d: %s",
-#if defined(sun)
+#ifdef illumos
 		    (int)Pstatus(P)->pr_pid, strerror(errno));
 #else
 		    (int)proc_getpid(P), strerror(errno));
 #endif
 	}
-#endif
 
 	/*
 	 * Put the module name in its canonical form.
@@ -716,10 +710,6 @@ dt_pid_create_usdt_probes(dtrace_probedesc_t *pdp, dtrace_hdl_t *dtp,
 	(void) dt_pid_fix_mod(pdp, P);
 
 	return (ret);
-#else
-	printf("XXX %s not implemented\n", __func__);
-	return ENODEV;
-#endif
 }
 
 static pid_t
@@ -730,7 +720,7 @@ dt_pid_get_pid(dtrace_probedesc_t *pdp, dtrace_hdl_t *dtp, dt_pcb_t *pcb,
 	char *c, *last = NULL, *end;
 
 	for (c = &pdp->dtpd_provider[0]; *c != '\0'; c++) {
-		if (!isdigit(*c))
+		if (!isdigit((unsigned char)*c))
 			last = c;
 	}
 
@@ -755,7 +745,6 @@ dt_pid_get_pid(dtrace_probedesc_t *pdp, dtrace_hdl_t *dtp, dt_pcb_t *pcb,
 int
 dt_pid_create_probes(dtrace_probedesc_t *pdp, dtrace_hdl_t *dtp, dt_pcb_t *pcb)
 {
-#if 0	/* XXX TBD needs libproc */
 	char provname[DTRACE_PROVNAMELEN];
 	struct ps_prochandle *P;
 	dt_proc_t *dpr;
@@ -830,10 +819,6 @@ dt_pid_create_probes(dtrace_probedesc_t *pdp, dtrace_hdl_t *dtp, dt_pcb_t *pcb)
 	}
 
 	return (err ? -1 : 0);
-#else
-	printf("XXX %s not implemented\n", __func__);
-	return -1;
-#endif
 }
 
 int
@@ -891,3 +876,163 @@ dt_pid_create_probes_module(dtrace_hdl_t *dtp, dt_proc_t *dpr)
 
 	return (ret);
 }
+
+/*
+ * libdtrace has a backroom deal with us to ask us for type information on
+ * behalf of pid provider probes when fasttrap doesn't return any type
+ * information. Instead we'll look up the module and see if there is type
+ * information available. However, if there is no type information available due
+ * to a lack of CTF data, then we want to make sure that DTrace still carries on
+ * in face of that. As such we don't have a meaningful exit code about failure.
+ * We emit information about why we failed to the dtrace debug log so someone
+ * can figure it out by asking nicely for DTRACE_DEBUG.
+ */
+void
+dt_pid_get_types(dtrace_hdl_t *dtp, const dtrace_probedesc_t *pdp,
+    dtrace_argdesc_t *adp, int *nargs)
+{
+	dt_module_t *dmp;
+	ctf_file_t *fp;
+	ctf_funcinfo_t f;
+	ctf_id_t argv[32];
+	GElf_Sym sym;
+	prsyminfo_t si;
+	struct ps_prochandle *p;
+	int i, args;
+	char buf[DTRACE_ARGTYPELEN];
+	const char *mptr;
+	char *eptr;
+	int ret = 0;
+	int argc = sizeof (argv) / sizeof (ctf_id_t);
+	Lmid_t lmid;
+
+	/* Set up a potential outcome */
+	args = *nargs;
+	*nargs = 0;
+
+	/*
+	 * If we don't have an entry or return probe then we can just stop right
+	 * now as we don't have arguments for offset probes.
+	 */
+	if (strcmp(pdp->dtpd_name, "entry") != 0 &&
+	    strcmp(pdp->dtpd_name, "return") != 0)
+		return;
+
+	dmp = dt_module_create(dtp, pdp->dtpd_provider);
+	if (dmp == NULL) {
+		dt_dprintf("failed to find module for %s\n",
+		    pdp->dtpd_provider);
+		return;
+	}
+	if (dt_module_load(dtp, dmp) != 0) {
+		dt_dprintf("failed to load module for %s\n",
+		    pdp->dtpd_provider);
+		return;
+	}
+
+	/*
+	 * We may be working with a module that doesn't have ctf. If that's the
+	 * case then we just return now and move on with life.
+	 */
+	fp = dt_module_getctflib(dtp, dmp, pdp->dtpd_mod);
+	if (fp == NULL) {
+		dt_dprintf("no ctf container for  %s\n",
+		    pdp->dtpd_mod);
+		return;
+	}
+	p = dt_proc_grab(dtp, dmp->dm_pid, 0, PGRAB_RDONLY | PGRAB_FORCE);
+	if (p == NULL) {
+		dt_dprintf("failed to grab pid\n");
+		return;
+	}
+	dt_proc_lock(dtp, p);
+
+	/*
+	 * Check to see if the D module has a link map ID and separate that out
+	 * for properly interrogating libproc.
+	 */
+	if ((mptr = strchr(pdp->dtpd_mod, '`')) != NULL) {
+		if (strlen(pdp->dtpd_mod) < 3) {
+			dt_dprintf("found weird modname with linkmap, "
+			    "aborting: %s\n", pdp->dtpd_mod);
+			goto out;
+		}
+		if (pdp->dtpd_mod[0] != 'L' || pdp->dtpd_mod[1] != 'M') {
+			dt_dprintf("missing leading 'LM', "
+			    "aborting: %s\n", pdp->dtpd_mod);
+			goto out;
+		}
+		errno = 0;
+		lmid = strtol(pdp->dtpd_mod + 2, &eptr, 16);
+		if (errno == ERANGE || eptr != mptr) {
+			dt_dprintf("failed to parse out lmid, aborting: %s\n",
+			    pdp->dtpd_mod);
+			goto out;
+		}
+		mptr++;
+	} else {
+		mptr = pdp->dtpd_mod;
+		lmid = 0;
+	}
+	__USE(lmid);
+
+	if (Pxlookup_by_name(p, lmid, mptr, pdp->dtpd_func,
+	    &sym, &si) != 0) {
+		dt_dprintf("failed to find function %s in %s`%s\n",
+		    pdp->dtpd_func, pdp->dtpd_provider, pdp->dtpd_mod);
+		goto out;
+	}
+	if (ctf_func_info(fp, si.prs_id, &f) == CTF_ERR) {
+		dt_dprintf("failed to get ctf information for %s in %s`%s\n",
+		    pdp->dtpd_func, pdp->dtpd_provider, pdp->dtpd_mod);
+		goto out;
+	}
+
+	(void) snprintf(buf, sizeof (buf), "%s`%s", pdp->dtpd_provider,
+	    pdp->dtpd_mod);
+
+	if (strcmp(pdp->dtpd_name, "return") == 0) {
+		if (args < 2)
+			goto out;
+
+		bzero(adp, sizeof (dtrace_argdesc_t));
+		adp->dtargd_ndx = 0;
+		adp->dtargd_id = pdp->dtpd_id;
+		adp->dtargd_mapping = adp->dtargd_ndx;
+		/*
+		 * We explicitly leave out the library here, we only care that
+		 * it is some int. We are assuming that there is no ctf
+		 * container in here that is lying about what an int is.
+		 */
+		(void) snprintf(adp->dtargd_native, DTRACE_ARGTYPELEN,
+		    "user %s`%s", pdp->dtpd_provider, "int");
+		adp++;
+		bzero(adp, sizeof (dtrace_argdesc_t));
+		adp->dtargd_ndx = 1;
+		adp->dtargd_id = pdp->dtpd_id;
+		adp->dtargd_mapping = adp->dtargd_ndx;
+		ret = snprintf(adp->dtargd_native, DTRACE_ARGTYPELEN,
+		    "userland ");
+		(void) ctf_type_qname(fp, f.ctc_return, adp->dtargd_native +
+		    ret, DTRACE_ARGTYPELEN - ret, buf);
+		*nargs = 2;
+	} else {
+		if (ctf_func_args(fp, si.prs_id, argc, argv) == CTF_ERR)
+			goto out;
+
+		*nargs = MIN(args, f.ctc_argc);
+		for (i = 0; i < *nargs; i++, adp++) {
+			bzero(adp, sizeof (dtrace_argdesc_t));
+			adp->dtargd_ndx = i;
+			adp->dtargd_id = pdp->dtpd_id;
+			adp->dtargd_mapping = adp->dtargd_ndx;
+			ret = snprintf(adp->dtargd_native, DTRACE_ARGTYPELEN,
+			    "userland ");
+			(void) ctf_type_qname(fp, argv[i], adp->dtargd_native +
+			    ret, DTRACE_ARGTYPELEN - ret, buf);
+		}
+	}
+out:
+	dt_proc_unlock(dtp, p);
+	dt_proc_release(dtp, p);
+}
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_pid.h b/external/cddl/osnet/dist/lib/libdtrace/common/dt_pid.h
index 886e33d..4bf39c8 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_pid.h
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_pid.h
@@ -24,12 +24,13 @@
  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
+/*
+ * Copyright (c) 2013, Joyent, Inc.  All rights reserved.
+ */
 
 #ifndef	_DT_PID_H
 #define	_DT_PID_H
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <libproc.h>
 #include <sys/fasttrap.h>
 #include <dt_impl.h>
@@ -57,6 +58,9 @@ extern int dt_pid_create_offset_probe(struct ps_prochandle *, dtrace_hdl_t *,
 extern int dt_pid_create_glob_offset_probes(struct ps_prochandle *,
     dtrace_hdl_t *, fasttrap_probe_spec_t *, const GElf_Sym *, const char *);
 
+extern void dt_pid_get_types(dtrace_hdl_t *, const dtrace_probedesc_t *,
+    dtrace_argdesc_t *, int *);
+
 #ifdef	__cplusplus
 }
 #endif
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_pq.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_pq.c
new file mode 100644
index 0000000..0cd556a
--- /dev/null
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_pq.c
@@ -0,0 +1,157 @@
+/*
+ * 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 by Delphix. All rights reserved.
+ */
+
+#include <dtrace.h>
+#include <dt_impl.h>
+#include <dt_pq.h>
+#include <assert.h>
+
+/*
+ * Create a new priority queue.
+ *
+ * size is the maximum number of items that will be stored in the priority
+ * queue at one time.
+ */
+dt_pq_t *
+dt_pq_init(dtrace_hdl_t *dtp, uint_t size, dt_pq_value_f value_cb, void *cb_arg)
+{
+	dt_pq_t *p;
+	assert(size > 1);
+
+	if ((p = dt_zalloc(dtp, sizeof (dt_pq_t))) == NULL)
+		return (NULL);
+
+	p->dtpq_items = dt_zalloc(dtp, size * sizeof (p->dtpq_items[0]));
+	if (p->dtpq_items == NULL) {
+		dt_free(dtp, p);
+		return (NULL);
+	}
+
+	p->dtpq_hdl = dtp;
+	p->dtpq_size = size;
+	p->dtpq_last = 1;
+	p->dtpq_value = value_cb;
+	p->dtpq_arg = cb_arg;
+
+	return (p);
+}
+
+void
+dt_pq_fini(dt_pq_t *p)
+{
+	dtrace_hdl_t *dtp = p->dtpq_hdl;
+
+	dt_free(dtp, p->dtpq_items);
+	dt_free(dtp, p);
+}
+
+static uint64_t
+dt_pq_getvalue(dt_pq_t *p, uint_t index)
+{
+	void *item = p->dtpq_items[index];
+	return (p->dtpq_value(item, p->dtpq_arg));
+}
+
+void
+dt_pq_insert(dt_pq_t *p, void *item)
+{
+	uint_t i;
+
+	assert(p->dtpq_last < p->dtpq_size);
+
+	i = p->dtpq_last++;
+	p->dtpq_items[i] = item;
+
+	while (i > 1 && dt_pq_getvalue(p, i) < dt_pq_getvalue(p, i / 2)) {
+		void *tmp = p->dtpq_items[i];
+		p->dtpq_items[i] = p->dtpq_items[i / 2];
+		p->dtpq_items[i / 2] = tmp;
+		i /= 2;
+	}
+}
+
+/*
+ * Return elements from the priority queue.  *cookie should be zero when first
+ * called.  Returns NULL when there are no more elements.
+ */
+void *
+dt_pq_walk(dt_pq_t *p, uint_t *cookie)
+{
+	(*cookie)++;
+	if (*cookie >= p->dtpq_last)
+		return (NULL);
+
+	return (p->dtpq_items[*cookie]);
+}
+
+void *
+dt_pq_pop(dt_pq_t *p)
+{
+	uint_t i = 1;
+	void *ret;
+
+	assert(p->dtpq_last > 0);
+
+	if (p->dtpq_last == 1)
+		return (NULL);
+
+	ret = p->dtpq_items[1];
+
+	p->dtpq_last--;
+	p->dtpq_items[1] = p->dtpq_items[p->dtpq_last];
+	p->dtpq_items[p->dtpq_last] = NULL;
+
+	for (;;) {
+		uint_t lc = i * 2;
+		uint_t rc = i * 2 + 1;
+		uint_t c;
+		uint64_t v;
+		void *tmp;
+
+		if (lc >= p->dtpq_last)
+			break;
+
+		if (rc >= p->dtpq_last) {
+			c = lc;
+			v = dt_pq_getvalue(p, lc);
+		} else {
+			uint64_t lv = dt_pq_getvalue(p, lc);
+			uint64_t rv = dt_pq_getvalue(p, rc);
+
+			if (lv < rv) {
+				c = lc;
+				v = lv;
+			} else {
+				c = rc;
+				v = rv;
+			}
+		}
+
+		if (v >= dt_pq_getvalue(p, i))
+			break;
+
+		tmp = p->dtpq_items[i];
+		p->dtpq_items[i] = p->dtpq_items[c];
+		p->dtpq_items[c] = tmp;
+
+		i = c;
+	}
+
+	return (ret);
+}
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_pq.h b/external/cddl/osnet/dist/lib/libdtrace/common/dt_pq.h
new file mode 100644
index 0000000..8184a90
--- /dev/null
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_pq.h
@@ -0,0 +1,51 @@
+/*
+ * 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 by Delphix. All rights reserved.
+ */
+
+#ifndef	_DT_PQ_H
+#define	_DT_PQ_H
+
+#include <dtrace.h>
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+typedef uint64_t (*dt_pq_value_f)(void *, void *);
+
+typedef struct dt_pq {
+	dtrace_hdl_t *dtpq_hdl;		/* dtrace handle */
+	void **dtpq_items;		/* array of elements */
+	uint_t dtpq_size;		/* count of allocated elements */
+	uint_t dtpq_last;		/* next free slot */
+	dt_pq_value_f dtpq_value;	/* callback to get the value */
+	void *dtpq_arg;			/* callback argument */
+} dt_pq_t;
+
+extern dt_pq_t *dt_pq_init(dtrace_hdl_t *, uint_t size, dt_pq_value_f, void *);
+extern void dt_pq_fini(dt_pq_t *);
+
+extern void dt_pq_insert(dt_pq_t *, void *);
+extern void *dt_pq_pop(dt_pq_t *);
+extern void *dt_pq_walk(dt_pq_t *, uint_t *);
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif	/* _DT_PQ_H */
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_pragma.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_pragma.c
index a9328ab..86398f3 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_pragma.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_pragma.c
@@ -21,19 +21,24 @@
 
 /*
  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2011, Joyent Inc. All rights reserved.
  */
 
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
 #include <assert.h>
 #include <strings.h>
-#if defined(sun)
+#ifdef illumos
 #include <alloca.h>
 #endif
+#include <fcntl.h>
 #include <stdlib.h>
 #include <stdio.h>
 
+#include <sys/types.h>
+#include <sys/sysctl.h>
+#include <sys/stat.h>
+
 #include <dt_parser.h>
 #include <dt_impl.h>
 #include <dt_provider.h>
@@ -77,7 +82,7 @@ static void
 dt_pragma_attributes(const char *prname, dt_node_t *dnp)
 {
 	dtrace_hdl_t *dtp = yypcb->pcb_hdl;
-	dtrace_attribute_t attr, *a;
+	dtrace_attribute_t attr, *a = NULL;	// XXX: gcc
 	dt_provider_t *pvp;
 	const char *name, *part;
 	dt_ident_t *idp;
@@ -201,6 +206,29 @@ dt_pragma_binding(const char *prname, dt_node_t *dnp)
 		dtp->dt_globals->dh_defer = &dt_pragma_apply;
 }
 
+static void 
+dt_pragma_depends_finddep(dtrace_hdl_t *dtp, const char *lname, char *lib,
+    size_t len)
+{
+	dt_dirpath_t *dirp;
+	struct stat sbuf;
+	int found = 0;
+
+	for (dirp = dt_list_next(&dtp->dt_lib_path); dirp != NULL;
+	    dirp = dt_list_next(dirp)) {
+		(void) snprintf(lib, len, "%s/%s", dirp->dir_path, lname);
+
+		if (stat(lib, &sbuf) == 0) {
+			found = 1;
+			break;
+		}
+	}
+
+	if (!found)
+		xyerror(D_PRAGMA_DEPEND,
+		    "failed to find dependency in libpath: %s", lname);
+}
+
 /*
  * The #pragma depends_on directive can be used to express a dependency on a
  * module, provider or library which if not present will cause processing to
@@ -211,9 +239,11 @@ dt_pragma_depends(const char *prname, dt_node_t *cnp)
 {
 	dtrace_hdl_t *dtp = yypcb->pcb_hdl;
 	dt_node_t *nnp = cnp ? cnp->dn_list : NULL;
-	int found;
+	int found = 0;	// XXX: gcc
 	dt_lib_depend_t *dld;
 	char lib[MAXPATHLEN];
+	size_t plen;
+	char *provs, *cpy, *tok;
 
 	if (cnp == NULL || nnp == NULL ||
 	    cnp->dn_kind != DT_NODE_IDENT || nnp->dn_kind != DT_NODE_IDENT) {
@@ -221,25 +251,52 @@ dt_pragma_depends(const char *prname, dt_node_t *cnp)
 		    "<class> <name>\n", prname);
 	}
 
-	if (strcmp(cnp->dn_string, "provider") == 0)
-		found = dt_provider_lookup(dtp, nnp->dn_string) != NULL;
-	else if (strcmp(cnp->dn_string, "module") == 0) {
+	if (strcmp(cnp->dn_string, "provider") == 0) {
+		/*
+		 * First try to get the provider list using the
+		 * debug.dtrace.providers sysctl, since that'll work even if
+		 * we're not running as root.
+		 */
+		provs = NULL;
+		if (sysctlbyname("debug.dtrace.providers", NULL, &plen, NULL, 0) ||
+		    ((provs = dt_alloc(dtp, plen)) == NULL) ||
+		    sysctlbyname("debug.dtrace.providers", provs, &plen, NULL, 0))
+			found = dt_provider_lookup(dtp, nnp->dn_string) != NULL;
+		else {
+			found = B_FALSE;
+			for (cpy = provs; (tok = strsep(&cpy, " ")) != NULL; )
+				if (strcmp(tok, nnp->dn_string) == 0) {
+					found = B_TRUE;
+					break;
+				}
+			if (found == B_FALSE)
+				found = dt_provider_lookup(dtp,
+				    nnp->dn_string) != NULL;
+		}
+		if (provs != NULL)
+			dt_free(dtp, provs);
+	} else if (strcmp(cnp->dn_string, "module") == 0) {
 		dt_module_t *mp = dt_module_lookup_by_name(dtp, nnp->dn_string);
 		found = mp != NULL && dt_module_getctf(dtp, mp) != NULL;
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+		if (!found) {
+			dt_kmodule_t *dkmp = dt_kmodule_lookup(dtp,
+			    nnp->dn_string);
+			found = dkmp != NULL &&
+			    dt_module_getctf(dtp, dkmp->dkm_module) != NULL;
+		}
+#endif
 	} else if (strcmp(cnp->dn_string, "library") == 0) {
 		if (yypcb->pcb_cflags & DTRACE_C_CTL) {
 			assert(dtp->dt_filetag != NULL);
 
-			/*
-			 * We have the file we are working on in dtp->dt_filetag
-			 * so find that node and add the dependency in.
-			 */
+			dt_pragma_depends_finddep(dtp, nnp->dn_string, lib,
+			    sizeof (lib));
+
 			dld = dt_lib_depend_lookup(&dtp->dt_lib_dep,
 			    dtp->dt_filetag);
 			assert(dld != NULL);
 
-			(void) snprintf(lib, sizeof (lib), "%s%s",
-			    dld->dtld_libpath, nnp->dn_string);
 			if ((dt_lib_depend_add(dtp, &dld->dtld_dependencies,
 			    lib)) != 0) {
 				xyerror(D_PRAGMA_DEPEND,
@@ -261,8 +318,8 @@ dt_pragma_depends(const char *prname, dt_node_t *cnp)
 			    dtp->dt_filetag);
 			assert(dld != NULL);
 
-			(void) snprintf(lib, sizeof (lib), "%s%s",
-			    dld->dtld_libpath, nnp->dn_string);
+			dt_pragma_depends_finddep(dtp, nnp->dn_string, lib,
+			    sizeof (lib));
 			dld = dt_lib_depend_lookup(&dtp->dt_lib_dep_sorted,
 			    lib);
 			assert(dld != NULL);
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_print.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_print.c
new file mode 100644
index 0000000..f99403d
--- /dev/null
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_print.c
@@ -0,0 +1,706 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+/*
+ * Copyright (c) 2011 by Delphix. All rights reserved.
+ */
+/*
+ * Copyright (c) 2013, Joyent, Inc.  All rights reserved.
+ */
+
+/*
+ * DTrace print() action
+ *
+ * This file contains the post-processing logic for the print() action.  The
+ * print action behaves identically to trace() in that it generates a
+ * DTRACEACT_DIFEXPR action, but the action argument field refers to a CTF type
+ * string stored in the DOF string table (similar to printf formats).  We
+ * take the result of the trace action and post-process it in the fashion of
+ * MDB's ::print dcmd.
+ *
+ * This implementation differs from MDB's in the following ways:
+ *
+ * 	- We do not expose any options or flags.  The behavior of print() is
+ *	  equivalent to "::print -tn".
+ *
+ * 	- MDB will display "holes" in structures (unused padding between
+ *	  members).
+ *
+ * 	- When printing arrays of structures, MDB will leave a trailing ','
+ *	  after the last element.
+ *
+ *	- MDB will print time_t types as date and time.
+ *
+ *	- MDB will detect when an enum is actually the OR of several flags,
+ *	  and print it out with the constituent flags separated.
+ *
+ *	- For large arrays, MDB will print the first few members and then
+ *	  print a "..." continuation line.
+ *
+ *	- MDB will break and wrap arrays at 80 columns.
+ *
+ *	- MDB prints out floats and doubles by hand, as it must run in kmdb
+ *	  context.  We're able to leverage the printf() format strings,
+ *	  but the result is a slightly different format.
+ */
+
+#include <sys/sysmacros.h>
+#include <strings.h>
+#include <stdlib.h>
+#include <alloca.h>
+#include <assert.h>
+#include <ctype.h>
+#include <errno.h>
+#include <limits.h>
+#include <sys/socket.h>
+#include <netdb.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <arpa/nameser.h>
+
+#include <dt_module.h>
+#include <dt_printf.h>
+#include <dt_string.h>
+#include <dt_impl.h>
+
+/* determines whether the given integer CTF encoding is a character */
+#define	CTF_IS_CHAR(e) \
+	(((e).cte_format & (CTF_INT_CHAR | CTF_INT_SIGNED)) == \
+	(CTF_INT_CHAR | CTF_INT_SIGNED) && (e).cte_bits == NBBY)
+/* determines whether the given CTF kind is a struct or union */
+#define	CTF_IS_STRUCTLIKE(k) \
+	((k) == CTF_K_STRUCT || (k) == CTF_K_UNION)
+
+/*
+ * Print structure passed down recursively through printing algorithm.
+ */
+typedef struct dt_printarg {
+	dtrace_hdl_t	*pa_dtp;	/* libdtrace handle */
+	caddr_t		pa_addr;	/* base address of trace data */
+	ctf_file_t	*pa_ctfp;	/* CTF container */
+	int		pa_depth;	/* member depth */
+	int		pa_nest;	/* nested array depth */
+	FILE		*pa_file;	/* output file */
+} dt_printarg_t;
+
+static int dt_print_member(const char *, ctf_id_t, ulong_t, int, void *);
+
+/*
+ * Safe version of ctf_type_name() that will fall back to just "<ctfid>" if it
+ * can't resolve the type.
+ */
+static void
+dt_print_type_name(ctf_file_t *ctfp, ctf_id_t id, char *buf, size_t buflen)
+{
+	if (ctf_type_name(ctfp, id, buf, buflen) == NULL)
+		(void) snprintf(buf, buflen, "<%ld>", id);
+}
+
+/*
+ * Print any necessary trailing braces for structures or unions.  We don't get
+ * invoked when a struct or union ends, so we infer the need to print braces
+ * based on the depth the last time we printed something and the new depth.
+ */
+static void
+dt_print_trailing_braces(dt_printarg_t *pap, int depth)
+{
+	int d;
+
+	for (d = pap->pa_depth; d > depth; d--) {
+		(void) fprintf(pap->pa_file, "%*s}%s",
+		    (d + pap->pa_nest - 1) * 4, "",
+		    d == depth + 1 ? "" : "\n");
+	}
+}
+
+/*
+ * Print the appropriate amount of indentation given the current depth and
+ * array nesting.
+ */
+static void
+dt_print_indent(dt_printarg_t *pap)
+{
+	(void) fprintf(pap->pa_file, "%*s",
+	    (pap->pa_depth + pap->pa_nest) * 4, "");
+}
+
+/*
+ * Print a bitfield.  It's worth noting that the D compiler support for
+ * bitfields is currently broken; printing "D`user_desc_t" (pulled in by the
+ * various D provider files) will produce incorrect results compared to
+ * "genunix`user_desc_t".
+ */
+static void
+print_bitfield(dt_printarg_t *pap, ulong_t off, ctf_encoding_t *ep)
+{
+	FILE *fp = pap->pa_file;
+	caddr_t addr = pap->pa_addr + off / NBBY;
+	uint64_t mask = (1ULL << ep->cte_bits) - 1;
+	uint64_t value = 0;
+	size_t size = (ep->cte_bits + (NBBY - 1)) / NBBY;
+	uint8_t *buf = (uint8_t *)&value;
+	uint8_t shift;
+
+	/*
+	 * On big-endian machines, we need to adjust the buf pointer to refer
+	 * to the lowest 'size' bytes in 'value', and we need to shift based on
+	 * the offset from the end of the data, not the offset of the start.
+	 */
+#if BYTE_ORDER == _BIG_ENDIAN
+	buf += sizeof (value) - size;
+	off += ep->cte_bits;
+#endif
+	bcopy(addr, buf, size);
+	shift = off % NBBY;
+
+	/*
+	 * Offsets are counted from opposite ends on little- and
+	 * big-endian machines.
+	 */
+#if BYTE_ORDER == _BIG_ENDIAN
+	shift = NBBY - shift;
+#endif
+
+	/*
+	 * If the bits we want do not begin on a byte boundary, shift the data
+	 * right so that the value is in the lowest 'cte_bits' of 'value'.
+	 */
+	if (off % NBBY != 0)
+		value >>= shift;
+	value &= mask;
+
+	(void) fprintf(fp, "%#llx", (unsigned long long)value);
+}
+
+/*
+ * Dump the contents of memory as a fixed-size integer in hex.
+ */
+static void
+dt_print_hex(FILE *fp, caddr_t addr, size_t size)
+{
+	switch (size) {
+	case sizeof (uint8_t):
+		(void) fprintf(fp, "%#x", *(uint8_t *)addr);
+		break;
+	case sizeof (uint16_t):
+		/* LINTED - alignment */
+		(void) fprintf(fp, "%#x", *(uint16_t *)addr);
+		break;
+	case sizeof (uint32_t):
+		/* LINTED - alignment */
+		(void) fprintf(fp, "%#x", *(uint32_t *)addr);
+		break;
+	case sizeof (uint64_t):
+		(void) fprintf(fp, "%#llx",
+		    /* LINTED - alignment */
+		    (unsigned long long)*(uint64_t *)addr);
+		break;
+	default:
+		(void) fprintf(fp, "<invalid size %u>", (uint_t)size);
+	}
+}
+
+/*
+ * Print an integer type.  Before dumping the contents via dt_print_hex(), we
+ * first check the encoding to see if it's part of a bitfield or a character.
+ */
+static void
+dt_print_int(ctf_id_t base, ulong_t off, dt_printarg_t *pap)
+{
+	FILE *fp = pap->pa_file;
+	ctf_file_t *ctfp = pap->pa_ctfp;
+	ctf_encoding_t e;
+	size_t size;
+	caddr_t addr = pap->pa_addr + off / NBBY;
+
+	if (ctf_type_encoding(ctfp, base, &e) == CTF_ERR) {
+		(void) fprintf(fp, "<unknown encoding>");
+		return;
+	}
+
+	/*
+	 * This comes from MDB - it's not clear under what circumstances this
+	 * would be found.
+	 */
+	if (e.cte_format & CTF_INT_VARARGS) {
+		(void) fprintf(fp, "...");
+		return;
+	}
+
+	/*
+	 * We print this as a bitfield if the bit encoding indicates it's not
+	 * an even power of two byte size, or is larger than 8 bytes.
+	 */
+	size = e.cte_bits / NBBY;
+	if (size > 8 || (e.cte_bits % NBBY) != 0 || (size & (size - 1)) != 0) {
+		print_bitfield(pap, off, &e);
+		return;
+	}
+
+	/*
+	 * If this is a character, print it out as such.
+	 */
+	if (CTF_IS_CHAR(e)) {
+		char c = *(char *)addr;
+		if (isprint((unsigned char)c))
+			(void) fprintf(fp, "'%c'", c);
+		else if (c == 0)
+			(void) fprintf(fp, "'\\0'");
+		else
+			(void) fprintf(fp, "'\\%03o'", c);
+		return;
+	}
+
+	dt_print_hex(fp, addr, size);
+}
+
+/*
+ * Print a floating point (float, double, long double) value.
+ */
+/* ARGSUSED */
+static void
+dt_print_float(ctf_id_t base, ulong_t off, dt_printarg_t *pap)
+{
+	FILE *fp = pap->pa_file;
+	ctf_file_t *ctfp = pap->pa_ctfp;
+	ctf_encoding_t e;
+	caddr_t addr = pap->pa_addr + off / NBBY;
+
+	if (ctf_type_encoding(ctfp, base, &e) == 0) {
+		if (e.cte_format == CTF_FP_SINGLE &&
+		    e.cte_bits == sizeof (float) * NBBY) {
+			/* LINTED - alignment */
+			(void) fprintf(fp, "%+.7e", *((float *)addr));
+		} else if (e.cte_format == CTF_FP_DOUBLE &&
+		    e.cte_bits == sizeof (double) * NBBY) {
+			/* LINTED - alignment */
+			(void) fprintf(fp, "%+.7e", *((double *)addr));
+		} else if (e.cte_format == CTF_FP_LDOUBLE &&
+		    e.cte_bits == sizeof (long double) * NBBY) {
+			/* LINTED - alignment */
+			(void) fprintf(fp, "%+.16LE", *((long double *)addr));
+		} else {
+			(void) fprintf(fp, "<unknown encoding>");
+		}
+	}
+}
+
+/*
+ * A pointer is generally printed as a fixed-size integer.  If we have a
+ * function pointer, we try to look up its name.
+ */
+static void
+dt_print_ptr(ctf_id_t base, ulong_t off, dt_printarg_t *pap)
+{
+	FILE *fp = pap->pa_file;
+	ctf_file_t *ctfp = pap->pa_ctfp;
+	caddr_t addr = pap->pa_addr + off / NBBY;
+	size_t size = ctf_type_size(ctfp, base);
+	ctf_id_t bid = ctf_type_reference(ctfp, base);
+	uint64_t pc;
+	dtrace_syminfo_t dts;
+	GElf_Sym sym;
+
+	if (bid == CTF_ERR || ctf_type_kind(ctfp, bid) != CTF_K_FUNCTION) {
+		dt_print_hex(fp, addr, size);
+	} else {
+		/* LINTED - alignment */
+		pc = *((uint64_t *)addr);
+		if (dtrace_lookup_by_addr(pap->pa_dtp, pc, &sym, &dts) != 0) {
+			dt_print_hex(fp, addr, size);
+		} else {
+			(void) fprintf(fp, "%s`%s", dts.dts_object,
+			    dts.dts_name);
+		}
+	}
+}
+
+/*
+ * Print out an array.  This is somewhat complex, as we must manually visit
+ * each member, and recursively invoke ctf_type_visit() for each member.  If
+ * the members are non-structs, then we print them out directly:
+ *
+ * 	[ 0x14, 0x2e, 0 ]
+ *
+ * If they are structs, then we print out the necessary leading and trailing
+ * braces, to end up with:
+ *
+ *	[
+ *	    type {
+ *	    ...
+ *	    },
+ *	    type {
+ *	    ...
+ *	    }
+ *	]
+ *
+ * We also use a heuristic to detect whether the array looks like a character
+ * array.  If the encoding indicates it's a character, and we have all
+ * printable characters followed by a null byte, then we display it as a
+ * string:
+ *
+ *	[ "string" ]
+ */
+static void
+dt_print_array(ctf_id_t base, ulong_t off, dt_printarg_t *pap)
+{
+	FILE *fp = pap->pa_file;
+	ctf_file_t *ctfp = pap->pa_ctfp;
+	caddr_t addr = pap->pa_addr + off / NBBY;
+	ctf_arinfo_t car;
+	ssize_t eltsize;
+	ctf_encoding_t e;
+	int i;
+	boolean_t isstring;
+	int kind;
+	ctf_id_t rtype;
+
+	if (ctf_array_info(ctfp, base, &car) == CTF_ERR) {
+		(void) fprintf(fp, "0x%p", (void *)addr);
+		return;
+	}
+
+	if ((eltsize = ctf_type_size(ctfp, car.ctr_contents)) < 0 ||
+	    (rtype = ctf_type_resolve(ctfp, car.ctr_contents)) == CTF_ERR ||
+	    (kind = ctf_type_kind(ctfp, rtype)) == CTF_ERR) {
+		(void) fprintf(fp, "<invalid type %lu>", car.ctr_contents);
+		return;
+	}
+
+	/* see if this looks like a string */
+	isstring = B_FALSE;
+	if (kind == CTF_K_INTEGER &&
+	    ctf_type_encoding(ctfp, rtype, &e) != CTF_ERR && CTF_IS_CHAR(e)) {
+		char c;
+		for (i = 0; i < car.ctr_nelems; i++) {
+			c = *((char *)addr + eltsize * i);
+			if (!isprint((unsigned char)c) || c == '\0')
+				break;
+		}
+
+		if (i != car.ctr_nelems && c == '\0')
+			isstring = B_TRUE;
+	}
+
+	/*
+	 * As a slight aesthetic optimization, if we are a top-level type, then
+	 * don't bother printing out the brackets.  This lets print("foo") look
+	 * like:
+	 *
+	 * 	string "foo"
+	 *
+	 * As D will internally represent this as a char[256] array.
+	 */
+	if (!isstring || pap->pa_depth != 0)
+		(void) fprintf(fp, "[ ");
+
+	if (isstring)
+		(void) fprintf(fp, "\"");
+
+	for (i = 0; i < car.ctr_nelems; i++) {
+		if (isstring) {
+			char c = *((char *)addr + eltsize * i);
+			if (c == '\0')
+				break;
+			(void) fprintf(fp, "%c", c);
+		} else {
+			/*
+			 * Recursively invoke ctf_type_visit() on each member.
+			 * We setup a new printarg struct with 'pa_nest' set to
+			 * indicate that we are within a nested array.
+			 */
+			dt_printarg_t pa = *pap;
+			pa.pa_nest += pap->pa_depth + 1;
+			pa.pa_depth = 0;
+			pa.pa_addr = addr + eltsize * i;
+			(void) ctf_type_visit(ctfp, car.ctr_contents,
+			    dt_print_member, &pa);
+
+			dt_print_trailing_braces(&pa, 0);
+			if (i != car.ctr_nelems - 1)
+				(void) fprintf(fp, ", ");
+			else if (CTF_IS_STRUCTLIKE(kind))
+				(void) fprintf(fp, "\n");
+		}
+	}
+
+	if (isstring)
+		(void) fprintf(fp, "\"");
+
+	if (!isstring || pap->pa_depth != 0) {
+		if (CTF_IS_STRUCTLIKE(kind))
+			dt_print_indent(pap);
+		else
+			(void) fprintf(fp, " ");
+		(void) fprintf(fp, "]");
+	}
+}
+
+/*
+ * This isued by both structs and unions to print the leading brace.
+ */
+/* ARGSUSED */
+static void
+dt_print_structlike(ctf_id_t id, ulong_t off, dt_printarg_t *pap)
+{
+	(void) fprintf(pap->pa_file, "{");
+}
+
+/*
+ * For enums, we try to print the enum name, and fall back to the value if it
+ * can't be determined.  We do not do any fancy flag processing like mdb.
+ */
+/* ARGSUSED */
+static void
+dt_print_enum(ctf_id_t base, ulong_t off, dt_printarg_t *pap)
+{
+	FILE *fp = pap->pa_file;
+	ctf_file_t *ctfp = pap->pa_ctfp;
+	const char *ename;
+	ssize_t size;
+	caddr_t addr = pap->pa_addr + off / NBBY;
+	int value = 0;
+
+	/*
+	 * The C standard says that an enum will be at most the sizeof (int).
+	 * But if all the values are less than that, the compiler can use a
+	 * smaller size. Thanks standards.
+	 */
+	size = ctf_type_size(ctfp, base);
+	switch (size) {
+	case sizeof (uint8_t):
+		value = *(uint8_t *)addr;
+		break;
+	case sizeof (uint16_t):
+		value = *(uint16_t *)addr;
+		break;
+	case sizeof (int32_t):
+		value = *(int32_t *)addr;
+		break;
+	default:
+		(void) fprintf(fp, "<invalid enum size %u>", (uint_t)size);
+		return;
+	}
+
+	if ((ename = ctf_enum_name(ctfp, base, value)) != NULL)
+		(void) fprintf(fp, "%s", ename);
+	else
+		(void) fprintf(fp, "%d", value);
+}
+
+/*
+ * Forward declaration.  There's not much to do here without the complete
+ * type information, so just print out this fact and drive on.
+ */
+/* ARGSUSED */
+static void
+dt_print_tag(ctf_id_t base, ulong_t off, dt_printarg_t *pap)
+{
+	(void) fprintf(pap->pa_file, "<forward decl>");
+}
+
+typedef void dt_printarg_f(ctf_id_t, ulong_t, dt_printarg_t *);
+
+static dt_printarg_f *const dt_printfuncs[] = {
+	dt_print_int,		/* CTF_K_INTEGER */
+	dt_print_float,		/* CTF_K_FLOAT */
+	dt_print_ptr,		/* CTF_K_POINTER */
+	dt_print_array,		/* CTF_K_ARRAY */
+	dt_print_ptr,		/* CTF_K_FUNCTION */
+	dt_print_structlike,	/* CTF_K_STRUCT */
+	dt_print_structlike,	/* CTF_K_UNION */
+	dt_print_enum,		/* CTF_K_ENUM */
+	dt_print_tag		/* CTF_K_FORWARD */
+};
+
+/*
+ * Print one member of a structure.  This callback is invoked from
+ * ctf_type_visit() recursively.
+ */
+static int
+dt_print_member(const char *name, ctf_id_t id, ulong_t off, int depth,
+    void *data)
+{
+	char type[DT_TYPE_NAMELEN];
+	int kind;
+	dt_printarg_t *pap = data;
+	FILE *fp = pap->pa_file;
+	ctf_file_t *ctfp = pap->pa_ctfp;
+	boolean_t arraymember;
+	boolean_t brief;
+	ctf_encoding_t e;
+	ctf_id_t rtype;
+
+	dt_print_trailing_braces(pap, depth);
+	/*
+	 * dt_print_trailing_braces() doesn't include the trailing newline; add
+	 * it here if necessary.
+	 */
+	if (depth < pap->pa_depth)
+		(void) fprintf(fp, "\n");
+	pap->pa_depth = depth;
+
+	if ((rtype = ctf_type_resolve(ctfp, id)) == CTF_ERR ||
+	    (kind = ctf_type_kind(ctfp, rtype)) == CTF_ERR ||
+	    kind < CTF_K_INTEGER || kind > CTF_K_FORWARD) {
+		dt_print_indent(pap);
+		(void) fprintf(fp, "%s = <invalid type %lu>", name, id);
+		return (0);
+	}
+
+	dt_print_type_name(ctfp, id, type, sizeof (type));
+
+	arraymember = (pap->pa_nest != 0 && depth == 0);
+	brief = (arraymember && !CTF_IS_STRUCTLIKE(kind));
+
+	if (!brief) {
+		/*
+		 * If this is a direct array member and a struct (otherwise
+		 * brief would be true), then print a trailing newline, as the
+		 * array printing code doesn't include it because it might be a
+		 * simple type.
+		 */
+		if (arraymember)
+			(void) fprintf(fp, "\n");
+		dt_print_indent(pap);
+
+		/* always print the type */
+		(void) fprintf(fp, "%s", type);
+		if (name[0] != '\0') {
+			/*
+			 * For aesthetics, we don't include a space between the
+			 * type name and member name if the type is a pointer.
+			 * This will give us "void *foo =" instead of "void *
+			 * foo =".  Unions also have the odd behavior that the
+			 * type name is returned as "union ", with a trailing
+			 * space, so we also avoid printing a space if the type
+			 * name already ends with a space.
+			 */
+			if (type[strlen(type) - 1] != '*' &&
+			    type[strlen(type) -1] != ' ') {
+				(void) fprintf(fp, " ");
+			}
+			(void) fprintf(fp, "%s", name);
+
+			/*
+			 * If this looks like a bitfield, or is an integer not
+			 * aligned on a byte boundary, print the number of
+			 * bits after the name.
+			 */
+			if (kind == CTF_K_INTEGER &&
+			    ctf_type_encoding(ctfp, id, &e) == 0) {
+				ulong_t bits = e.cte_bits;
+				ulong_t size = bits / NBBY;
+
+				if (bits % NBBY != 0 ||
+				    off % NBBY != 0 ||
+				    size > 8 ||
+				    size != ctf_type_size(ctfp, id)) {
+					(void) fprintf(fp, " :%lu", bits);
+				}
+			}
+
+			(void) fprintf(fp, " =");
+		}
+		(void) fprintf(fp, " ");
+	}
+
+	dt_printfuncs[kind - 1](rtype, off, pap);
+
+	/* direct simple array members are not separated by newlines */
+	if (!brief)
+		(void) fprintf(fp, "\n");
+
+	return (0);
+}
+
+/*
+ * Main print function invoked by dt_consume_cpu().
+ */
+int
+dtrace_print(dtrace_hdl_t *dtp, FILE *fp, const char *typename,
+    caddr_t addr, size_t len)
+{
+	const char *s;
+	char *object;
+	dt_printarg_t pa;
+	ctf_id_t id;
+	dt_module_t *dmp;
+	ctf_file_t *ctfp;
+	int libid;
+
+	/*
+	 * Split the fully-qualified type ID (module`id).  This should
+	 * always be the format, but if for some reason we don't find the
+	 * expected value, return 0 to fall back to the generic trace()
+	 * behavior. In the case of userland CTF modules this will actually be
+	 * of the format (module`lib`id). This is due to the fact that those
+	 * modules have multiple CTF containers which `lib` identifies.
+	 */
+	for (s = typename; *s != '\0' && *s != '`'; s++)
+		;
+
+	if (*s != '`')
+		return (0);
+
+	object = alloca(s - typename + 1);
+	bcopy(typename, object, s - typename);
+	object[s - typename] = '\0';
+	dmp = dt_module_lookup_by_name(dtp, object);
+	if (dmp == NULL)
+		return (0);
+
+	if (dmp->dm_pid != 0) {
+		libid = atoi(s + 1);
+		s = strchr(s + 1, '`');
+		if (s == NULL || libid > dmp->dm_nctflibs)
+			return (0);
+		ctfp = dmp->dm_libctfp[libid];
+	} else {
+		ctfp = dt_module_getctf(dtp, dmp);
+	}
+
+	id = atoi(s + 1);
+
+	/*
+	 * Try to get the CTF kind for this id.  If something has gone horribly
+	 * wrong and we can't resolve the ID, bail out and let trace() do the
+	 * work.
+	 */
+	if (ctfp == NULL || ctf_type_kind(ctfp, id) == CTF_ERR)
+		return (0);
+
+	/* setup the print structure and kick off the main print routine */
+	pa.pa_dtp = dtp;
+	pa.pa_addr = addr;
+	pa.pa_ctfp = ctfp;
+	pa.pa_nest = 0;
+	pa.pa_depth = 0;
+	pa.pa_file = fp;
+	(void) ctf_type_visit(pa.pa_ctfp, id, dt_print_member, &pa);
+
+	dt_print_trailing_braces(&pa, 0);
+
+	return (len);
+}
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_printf.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_printf.c
index 10461ce..6bc8e69 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_printf.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_printf.c
@@ -20,11 +20,12 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ * Copyright (c) 2013 by Delphix. All rights reserved.
  */
 
-#if defined(sun)
+#ifdef illumos
 #include <sys/sysmacros.h>
 #else
 #define	ABS(a)		((a) < 0 ? -(a) : (a))
@@ -32,13 +33,18 @@
 #include <string.h>
 #include <strings.h>
 #include <stdlib.h>
-#if defined(sun)
+#ifdef illumos
 #include <alloca.h>
 #endif
 #include <assert.h>
 #include <ctype.h>
 #include <errno.h>
 #include <limits.h>
+#include <sys/socket.h>
+#include <netdb.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <arpa/nameser.h>
 
 #include <dt_printf.h>
 #include <dt_string.h>
@@ -156,7 +162,7 @@ static int
 pfcheck_dint(dt_pfargv_t *pfv, dt_pfargd_t *pfd, dt_node_t *dnp)
 {
 	if (dnp->dn_flags & DT_NF_SIGNED)
-		pfd->pfd_flags |= DT_PFCONV_SIGNED;
+		pfd->pfd_fmt[strlen(pfd->pfd_fmt) - 1] = 'i';
 	else
 		pfd->pfd_fmt[strlen(pfd->pfd_fmt) - 1] = 'u';
 
@@ -461,7 +467,7 @@ pfprint_time(dtrace_hdl_t *dtp, FILE *fp, const char *format,
 	 * Below, we turn this into the canonical adb/mdb /[yY] format,
 	 * "1973 Dec  3 17:20:00".
 	 */
-#if defined(sun)
+#ifdef illumos
 	(void) ctime_r(&sec, src, sizeof (src));
 #else
 	(void) ctime_r(&sec, src);
@@ -505,6 +511,80 @@ pfprint_time822(dtrace_hdl_t *dtp, FILE *fp, const char *format,
 
 /*ARGSUSED*/
 static int
+pfprint_port(dtrace_hdl_t *dtp, FILE *fp, const char *format,
+    const dt_pfargd_t *pfd, const void *addr, size_t size, uint64_t normal)
+{
+	uint16_t port = htons(*((uint16_t *)addr));
+	char buf[256];
+#if defined(illumos) || defined(__FreeBSD__)
+	struct servent *sv, res;
+#endif
+
+#ifdef illumos
+	if ((sv = getservbyport_r(port, NULL, &res, buf, sizeof (buf))) != NULL)
+#elif defined(__FreeBSD__)
+	if (getservbyport_r(port, NULL, &res, buf, sizeof (buf), &sv) > 0)
+		return (dt_printf(dtp, fp, format, sv->s_name));
+#else
+	struct sockaddr_in sin;
+	memset(&sin, 0, sizeof(sin));
+	sin.sin_family = AF_INET;
+	sin.sin_port = port;
+	if (getnameinfo((const struct sockaddr *)&sin, sizeof(sin), NULL, 0,
+	    buf, sizeof(buf), 0) > 0)
+		return (dt_printf(dtp, fp, format, buf));
+#endif
+
+	(void) snprintf(buf, sizeof (buf), "%d", *((uint16_t *)addr));
+	return (dt_printf(dtp, fp, format, buf));
+}
+
+/*ARGSUSED*/
+static int
+pfprint_inetaddr(dtrace_hdl_t *dtp, FILE *fp, const char *format,
+    const dt_pfargd_t *pfd, const void *addr, size_t size, uint64_t normal)
+{
+	char *s = alloca(size + 1);
+	char inetaddr[NS_IN6ADDRSZ];
+	char buf[1024];
+#if defined(illumos) || defined(__FreeBSD__)
+	struct hostent *host, res;
+	int e;
+#endif
+
+	bcopy(addr, s, size);
+	s[size] = '\0';
+
+	if (strchr(s, ':') == NULL && inet_pton(AF_INET, s, inetaddr) != -1) {
+#ifdef illumos
+		if ((host = gethostbyaddr_r(inetaddr, NS_INADDRSZ,
+		    AF_INET, &res, buf, sizeof (buf), &e)) != NULL)
+#elif defined(__FreeBSD__)
+		if (gethostbyaddr_r(inetaddr, NS_INADDRSZ,
+		    AF_INET, &res, buf, sizeof (buf), &host, &e) > 0)
+			return (dt_printf(dtp, fp, format, host->h_name));
+#else
+		if (getnameinfo((const struct sockaddr *)inetaddr, NS_INADDRSZ,
+		    buf, sizeof(buf), NULL, 0, 0) > 0)
+			return (dt_printf(dtp, fp, format, buf));
+#endif
+	} else if (inet_pton(AF_INET6, s, inetaddr) != -1) {
+#if defined(__FreeBSD__)
+		if ((host = getipnodebyaddr(inetaddr, NS_IN6ADDRSZ,
+		    AF_INET6, &e)) != NULL)
+			return (dt_printf(dtp, fp, format, host->h_name));
+#else
+		if (getnameinfo((const struct sockaddr *)inetaddr, NS_INADDRSZ,
+		    buf, sizeof(buf), NULL, 0, 0) > 0)
+			return (dt_printf(dtp, fp, format, buf));
+#endif
+	}
+
+	return (dt_printf(dtp, fp, format, s));
+}
+
+/*ARGSUSED*/
+static int
 pfprint_cstr(dtrace_hdl_t *dtp, FILE *fp, const char *format,
     const dt_pfargd_t *pfd, const void *addr, size_t size, uint64_t normal)
 {
@@ -607,7 +687,8 @@ static const dt_pfconv_t _dtrace_conversions[] = {
 { "hu", "u", "unsigned short", pfcheck_type, pfprint_uint },
 { "hx", "x", "short", pfcheck_xshort, pfprint_uint },
 { "hX", "X", "short", pfcheck_xshort, pfprint_uint },
-{ "i", "i", pfproto_xint, pfcheck_dint, pfprint_dint },
+{ "i", "i", pfproto_xint, pfcheck_xint, pfprint_sint },
+{ "I", "s", pfproto_cstr, pfcheck_str, pfprint_inetaddr },
 { "k", "s", "stack", pfcheck_stack, pfprint_stack },
 { "lc", "lc", "int", pfcheck_type, pfprint_sint }, /* a.k.a. wint_t */
 { "ld",	"d", "long", pfcheck_type, pfprint_sint },
@@ -630,12 +711,18 @@ static const dt_pfconv_t _dtrace_conversions[] = {
 { "LG",	"G", "long double", pfcheck_type, pfprint_fp },
 { "o", "o", pfproto_xint, pfcheck_xint, pfprint_uint },
 { "p", "x", pfproto_addr, pfcheck_addr, pfprint_uint },
+{ "P", "s", "uint16_t", pfcheck_type, pfprint_port },
 { "s", "s", "char [] or string (or use stringof)", pfcheck_str, pfprint_cstr },
 { "S", "s", pfproto_cstr, pfcheck_str, pfprint_estr },
 { "T", "s", "int64_t", pfcheck_time, pfprint_time822 },
 { "u", "u", pfproto_xint, pfcheck_xint, pfprint_uint },
+#ifdef illumos
 { "wc",	"wc", "int", pfcheck_type, pfprint_sint }, /* a.k.a. wchar_t */
 { "ws", "ws", pfproto_wstr, pfcheck_wstr, pfprint_wstr },
+#else
+{ "wc", "lc", "int", pfcheck_type, pfprint_sint }, /* a.k.a. wchar_t */
+{ "ws", "ls", pfproto_wstr, pfcheck_wstr, pfprint_wstr },
+#endif
 { "x", "x", pfproto_xint, pfcheck_xint, pfprint_uint },
 { "X", "X", pfproto_xint, pfcheck_xint, pfprint_uint },
 { "Y", "s", "int64_t", pfcheck_time, pfprint_time },
@@ -823,7 +910,7 @@ dt_printf_create(dtrace_hdl_t *dtp, const char *s)
 				goto fmt_switch;
 			}
 
-			for (n = 0; isdigit(c); c = *++p)
+			for (n = 0; isdigit((unsigned char)c); c = *++p)
 				n = n * 10 + c - '0';
 
 			if (dot)
@@ -1010,7 +1097,7 @@ dt_printf_validate(dt_pfargv_t *pfv, uint_t flags,
 		xyerror(D_TYPE_ERR, "failed to lookup agg type %s\n", aggtype);
 
 	bzero(&aggnode, sizeof (aggnode));
-	dt_node_type_assign(&aggnode, dtt.dtt_ctfp, dtt.dtt_type);
+	dt_node_type_assign(&aggnode, dtt.dtt_ctfp, dtt.dtt_type, B_FALSE);
 
 	for (i = 0, j = 0; i < pfv->pfv_argc; i++, pfd = pfd->pfd_next) {
 		const dt_pfconv_t *pfc = pfd->pfd_conv;
@@ -1073,6 +1160,7 @@ dt_printf_validate(dt_pfargv_t *pfv, uint_t flags,
 			    sizeof (vname));
 			vnp = &aggnode;
 		} else if (dnp == NULL) {
+			vnp = NULL;
 			xyerror(D_PRINTF_ARG_PROTO,
 			    "%s( ) prototype mismatch: conversion #%d (%%"
 			    "%s) is missing a corresponding value argument\n",
@@ -1264,6 +1352,14 @@ pfprint_lquantize(dtrace_hdl_t *dtp, FILE *fp, const char *format,
 	return (dt_print_lquantize(dtp, fp, addr, size, normal));
 }
 
+/*ARGSUSED*/
+static int
+pfprint_llquantize(dtrace_hdl_t *dtp, FILE *fp, const char *format,
+    const dt_pfargd_t *pfd, const void *addr, size_t size, uint64_t normal)
+{
+	return (dt_print_llquantize(dtp, fp, addr, size, normal));
+}
+
 static int
 dt_printf_format(dtrace_hdl_t *dtp, FILE *fp, const dt_pfargv_t *pfv,
     const dtrace_recdesc_t *recs, uint_t nrecs, const void *buf,
@@ -1271,11 +1367,12 @@ dt_printf_format(dtrace_hdl_t *dtp, FILE *fp, const dt_pfargv_t *pfv,
 {
 	dt_pfargd_t *pfd = pfv->pfv_argv;
 	const dtrace_recdesc_t *recp = recs;
-	const dtrace_aggdata_t *aggdata;
+	const dtrace_aggdata_t *aggdata = NULL;	// XXX: gcc
 	dtrace_aggdesc_t *agg;
 	caddr_t lim = (caddr_t)buf + len, limit;
 	char format[64] = "%";
-	int i, aggrec, curagg = -1;
+	size_t ret;
+	int i, aggrec = 0, curagg = -1;	// XXX: gcc
 	uint64_t normal;
 
 	/*
@@ -1306,12 +1403,14 @@ dt_printf_format(dtrace_hdl_t *dtp, FILE *fp, const dt_pfargv_t *pfv,
 		int prec = pfd->pfd_prec;
 		int rval;
 
+		const char *start;
 		char *f = format + 1; /* skip initial '%' */
+		size_t fmtsz = sizeof(format) - 1;
 		const dtrace_recdesc_t *rec;
 		dt_pfprint_f *func;
 		caddr_t addr;
 		size_t size;
-		uint32_t flags;
+		uint32_t flags = 0;	// XXX: gcc
 
 		if (pfd->pfd_preflen != 0) {
 			char *tmp = alloca(pfd->pfd_preflen + 1);
@@ -1449,6 +1548,9 @@ dt_printf_format(dtrace_hdl_t *dtp, FILE *fp, const dt_pfargv_t *pfv,
 		case DTRACEAGG_LQUANTIZE:
 			func = pfprint_lquantize;
 			break;
+		case DTRACEAGG_LLQUANTIZE:
+			func = pfprint_llquantize;
+			break;
 		case DTRACEACT_MOD:
 			func = pfprint_mod;
 			break;
@@ -1460,6 +1562,7 @@ dt_printf_format(dtrace_hdl_t *dtp, FILE *fp, const dt_pfargv_t *pfv,
 			break;
 		}
 
+		start = f;
 		if (pfd->pfd_flags & DT_PFCONV_ALT)
 			*f++ = '#';
 		if (pfd->pfd_flags & DT_PFCONV_ZPAD)
@@ -1472,6 +1575,7 @@ dt_printf_format(dtrace_hdl_t *dtp, FILE *fp, const dt_pfargv_t *pfv,
 			*f++ = '\'';
 		if (pfd->pfd_flags & DT_PFCONV_SPACE)
 			*f++ = ' ';
+		fmtsz -= f - start;
 
 		/*
 		 * If we're printing a stack and DT_PFCONV_LEFT is set, we
@@ -1483,16 +1587,19 @@ dt_printf_format(dtrace_hdl_t *dtp, FILE *fp, const dt_pfargv_t *pfv,
 			width = 0;
 
 		if (width != 0) {
-			f += snprintf(f, format + sizeof (format) - f,
-			    "%d", ABS(width));
+			ret = snprintf(f, fmtsz, "%d", ABS(width));
+			f += ret;
+			fmtsz = MAX(0, fmtsz - ret);
 		}
 
 		if (prec > 0) {
-			f += snprintf(f, format + sizeof (format) - f,
-			    ".%d", prec);
+			ret = snprintf(f, fmtsz, ".%d", prec);
+			f += ret;
+			fmtsz = MAX(0, fmtsz - ret);
 		}
 
-		(void) strcpy(f, pfd->pfd_fmt);
+		if (strlcpy(f, pfd->pfd_fmt, fmtsz) >= fmtsz)
+			return (dt_set_errno(dtp, EDT_COMPILER));
 		pfd->pfd_rec = rec;
 
 		if (func(dtp, fp, format, pfd, addr, size, normal) < 0)
@@ -1516,7 +1623,7 @@ dt_printf_format(dtrace_hdl_t *dtp, FILE *fp, const dt_pfargv_t *pfv,
 	return ((int)(recp - recs));
 }
 
-int
+static int
 dtrace_sprintf(dtrace_hdl_t *dtp, FILE *fp, void *fmtdata,
     const dtrace_recdesc_t *recp, uint_t nrecs, const void *buf, size_t len)
 {
@@ -1574,7 +1681,9 @@ dtrace_freopen(dtrace_hdl_t *dtp, FILE *fp, void *fmtdata,
     const dtrace_probedata_t *data, const dtrace_recdesc_t *recp,
     uint_t nrecs, const void *buf, size_t len)
 {
+#ifdef illumos
 	char selfbuf[40], restorebuf[40], *filename;
+#endif
 	FILE *nfp;
 	int rval, errval;
 	dt_pfargv_t *pfv = fmtdata;
@@ -1585,7 +1694,7 @@ dtrace_freopen(dtrace_hdl_t *dtp, FILE *fp, void *fmtdata,
 	if (rval == -1 || fp == NULL)
 		return (rval);
 
-#if defined(sun)
+#ifdef illumos
 	if (pfd->pfd_preflen != 0 &&
 	    strcmp(pfd->pfd_prefix, DT_FREOPEN_RESTORE) == 0) {
 		/*
@@ -1667,7 +1776,7 @@ dtrace_freopen(dtrace_hdl_t *dtp, FILE *fp, void *fmtdata,
 	}
 
 	(void) fclose(nfp);
-#else
+#else	/* !illumos */
 	/*
 	 * The 'standard output' (which is not necessarily stdout)
 	 * treatment on FreeBSD is implemented differently than on
@@ -1742,7 +1851,7 @@ dtrace_freopen(dtrace_hdl_t *dtp, FILE *fp, void *fmtdata,
 
 	/* Remember that the output has been redirected to the new file. */
 	dtp->dt_freopen_fp = nfp;
-#endif
+#endif	/* illumos */
 
 	return (rval);
 }
@@ -1861,10 +1970,10 @@ dtrace_printf_format(dtrace_hdl_t *dtp, void *fmtdata, char *s, size_t len)
 			*f++ = '@';
 
 		if (width != 0)
-			f += snprintf(f, format + formatlen - f, "%d", width);
+			f += snprintf(f, sizeof (format), "%d", width);
 
 		if (prec != 0)
-			f += snprintf(f, format + formatlen - f, ".%d", prec);
+			f += snprintf(f, sizeof (format), ".%d", prec);
 
 		/*
 		 * If the output format is %s, then either %s is the underlying
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_proc.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_proc.c
index 03e5c54..1a46064 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_proc.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_proc.c
@@ -77,7 +77,7 @@
  */
 
 #include <sys/wait.h>
-#if defined(sun)
+#ifdef illumos
 #include <sys/lwp.h>
 #endif
 #include <strings.h>
@@ -89,94 +89,19 @@
 #include <dt_pid.h>
 #include <dt_impl.h>
 
-/* XXX TBD needs libproc */
-/* Stub proc functions for now */
-int
-proc_setflags(struct proc_handle *phdl, int mask)
-{
-
-    printf("dtrace: XXX %s not implemented\n", __func__);
-    return EINVAL;
-}
-
-int
-proc_create(const char *file, char * const *argv, proc_child_func *pcf,
-    void *child_arg, struct proc_handle **pphdl)
-{
-
-    printf("dtrace: XXX %s not implemented\n", __func__);
-    return EINVAL;
-}
-
-int
-proc_detach(struct proc_handle *phdl)
-{
-
-    printf("dtrace: XXX %s not implemented\n", __func__);
-    return EINVAL;
-}
-
-int
-proc_getflags(struct proc_handle *phdl)
-{
-
-    printf("dtrace: XXX %s not implemented\n", __func__);
-    return -1;
-}
-
-int
-proc_wait(struct proc_handle *phdl)
-{
-
-    printf("dtrace: XXX %s not implemented\n", __func__);
-    return EINVAL;
-}
-
-pid_t
-proc_getpid(struct proc_handle *phdl)
-{
-
-    printf("dtrace: XXX %s not implemented\n", __func__);
-    return -1;
-}
-
-int
-proc_attach(pid_t pid, int flags, struct proc_handle **pphdl)
-{
-
-    printf("dtrace: XXX %s not implemented\n", __func__);
-    return EINVAL;
-}
-
-int
-proc_state(struct proc_handle *phdl)
-{
-
-    printf("dtrace: XXX %s not implemented\n", __func__);
-    return -1;
-}
-
-int
-proc_clearflags(struct proc_handle *phdl, int mask)
-{
-
-    printf("dtrace: XXX %s not implemented\n", __func__);
-    return EINVAL;
-}
-
-int
-proc_continue(struct proc_handle *phdl)
-{
+#ifndef illumos
+#include <sys/syscall.h>
+#include <libproc_compat.h>
+#define	SYS_forksys SYS_fork
+#endif
 
-    printf("dtrace: XXX %s not implemented\n", __func__);
-    return EINVAL;
-}
+#define	IS_SYS_EXEC(w)	(w == SYS_execve)
+#define	IS_SYS_FORK(w)	(w == SYS_vfork || w == SYS_forksys)
 
-#define	IS_SYS_EXEC(w)	(w == SYS_exec || w == SYS_execve)
-#define	IS_SYS_FORK(w)	(w == SYS_vfork || w == SYS_fork1 ||	\
-			w == SYS_forkall || w == SYS_forksys)
+#if !defined(__DECONST) && defined(__UNCONST)
+#define __DECONST(a, b) __UNCONST(b)
+#endif
 
-#ifdef DOODAD
 static dt_bkpt_t *
 dt_proc_bpcreate(dt_proc_t *dpr, uintptr_t addr, dt_bkpt_f *func, void *data)
 {
@@ -198,53 +123,62 @@ dt_proc_bpcreate(dt_proc_t *dpr, uintptr_t addr, dt_bkpt_f *func, void *data)
 
 	return (dbp);
 }
-#endif
 
 static void
 dt_proc_bpdestroy(dt_proc_t *dpr, int delbkpts)
 {
-#if defined(sun)
 	int state = Pstate(dpr->dpr_proc);
-#else
-	int state = proc_state(dpr->dpr_proc);
-#endif
 	dt_bkpt_t *dbp, *nbp;
 
 	assert(DT_MUTEX_HELD(&dpr->dpr_lock));
 
 	for (dbp = dt_list_next(&dpr->dpr_bps); dbp != NULL; dbp = nbp) {
-printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
-#ifdef DOODAD
 		if (delbkpts && dbp->dbp_active &&
 		    state != PS_LOST && state != PS_UNDEAD) {
 			(void) Pdelbkpt(dpr->dpr_proc,
-			    dbp->dbp_addr, dbp->dbp_instr);
+			    dbp->dbp_addr, &dbp->dbp_instr);
 		}
-#endif
 		nbp = dt_list_next(dbp);
 		dt_list_delete(&dpr->dpr_bps, dbp);
 		dt_free(dpr->dpr_hdl, dbp);
 	}
 }
 
-#ifdef DOODAD
 static void
 dt_proc_bpmatch(dtrace_hdl_t *dtp, dt_proc_t *dpr)
 {
+#ifdef illumos
 	const lwpstatus_t *psp = &Pstatus(dpr->dpr_proc)->pr_lwp;
+#else
+	unsigned long pc;
+#endif
 	dt_bkpt_t *dbp;
 
 	assert(DT_MUTEX_HELD(&dpr->dpr_lock));
 
+#ifndef illumos
+	proc_regget(dpr->dpr_proc, REG_PC, &pc);
+	proc_bkptregadj(&pc);
+#endif
+
 	for (dbp = dt_list_next(&dpr->dpr_bps);
 	    dbp != NULL; dbp = dt_list_next(dbp)) {
+#ifdef illumos
 		if (psp->pr_reg[R_PC] == dbp->dbp_addr)
 			break;
+#else
+		if (pc == dbp->dbp_addr)
+			break;
+#endif
 	}
 
 	if (dbp == NULL) {
 		dt_dprintf("pid %d: spurious breakpoint wakeup for %lx\n",
+#ifdef illumos
 		    (int)dpr->dpr_pid, (ulong_t)psp->pr_reg[R_PC]);
+#else
+		    (int)dpr->dpr_pid, pc);
+#endif
 		return;
 	}
 
@@ -252,9 +186,8 @@ dt_proc_bpmatch(dtrace_hdl_t *dtp, dt_proc_t *dpr)
 	    (int)dpr->dpr_pid, (ulong_t)dbp->dbp_addr, ++dbp->dbp_hits);
 
 	dbp->dbp_func(dtp, dpr, dbp->dbp_data);
-	(void) Pxecbkpt(dpr->dpr_proc, dbp->dbp_instr);
+	(void) Pxecbkpt(dpr->dpr_proc, &dbp->dbp_instr);
 }
-#endif
 
 static void
 dt_proc_bpenable(dt_proc_t *dpr)
@@ -265,12 +198,9 @@ dt_proc_bpenable(dt_proc_t *dpr)
 
 	for (dbp = dt_list_next(&dpr->dpr_bps);
 	    dbp != NULL; dbp = dt_list_next(dbp)) {
-printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
-#ifdef DOODAD
 		if (!dbp->dbp_active && Psetbkpt(dpr->dpr_proc,
 		    dbp->dbp_addr, &dbp->dbp_instr) == 0)
 			dbp->dbp_active = B_TRUE;
-#endif
 	}
 
 	dt_dprintf("breakpoints enabled\n");
@@ -285,12 +215,9 @@ dt_proc_bpdisable(dt_proc_t *dpr)
 
 	for (dbp = dt_list_next(&dpr->dpr_bps);
 	    dbp != NULL; dbp = dt_list_next(dbp)) {
-printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
-#ifdef DOODAD
 		if (dbp->dbp_active && Pdelbkpt(dpr->dpr_proc,
-		    dbp->dbp_addr, dbp->dbp_instr) == 0)
+		    dbp->dbp_addr, &dbp->dbp_instr) == 0)
 			dbp->dbp_active = B_FALSE;
-#endif
 	}
 
 	dt_dprintf("breakpoints disabled\n");
@@ -363,7 +290,6 @@ dt_proc_bpmain(dtrace_hdl_t *dtp, dt_proc_t *dpr, const char *fname)
 	dt_proc_stop(dpr, DT_PROC_STOP_MAIN);
 }
 
-#if defined(sun)
 static void
 dt_proc_rdevent(dtrace_hdl_t *dtp, dt_proc_t *dpr, const char *evname)
 {
@@ -380,6 +306,8 @@ dt_proc_rdevent(dtrace_hdl_t *dtp, dt_proc_t *dpr, const char *evname)
 	    (int)dpr->dpr_pid, evname, rdm.type, rdm.u.state);
 
 	switch (rdm.type) {
+	case RD_NONE:
+		break;
 	case RD_DLACTIVITY:
 		if (rdm.u.state != RD_CONSISTENT)
 			break;
@@ -420,7 +348,12 @@ dt_proc_rdwatch(dt_proc_t *dpr, rd_event_e event, const char *evname)
 	}
 
 	(void) dt_proc_bpcreate(dpr, rdn.u.bptaddr,
+#ifdef illumos
 	    (dt_bkpt_f *)dt_proc_rdevent, (void *)evname);
+#else
+	    /* XXX ugly */
+	    (dt_bkpt_f *)dt_proc_rdevent, __DECONST(void *, evname));
+#endif
 }
 
 /*
@@ -430,25 +363,34 @@ dt_proc_rdwatch(dt_proc_t *dpr, rd_event_e event, const char *evname)
 static void
 dt_proc_attach(dt_proc_t *dpr, int exec)
 {
+#ifdef illumos
 	const pstatus_t *psp = Pstatus(dpr->dpr_proc);
+#endif
 	rd_err_e err;
 	GElf_Sym sym;
 
 	assert(DT_MUTEX_HELD(&dpr->dpr_lock));
 
 	if (exec) {
+#ifdef illumos
 		if (psp->pr_lwp.pr_errno != 0)
 			return; /* exec failed: nothing needs to be done */
+#endif
 
 		dt_proc_bpdestroy(dpr, B_FALSE);
+#ifdef illumos
 		Preset_maps(dpr->dpr_proc);
+#endif
 	}
-
 	if ((dpr->dpr_rtld = Prd_agent(dpr->dpr_proc)) != NULL &&
 	    (err = rd_event_enable(dpr->dpr_rtld, B_TRUE)) == RD_OK) {
+#ifdef illumos
 		dt_proc_rdwatch(dpr, RD_PREINIT, "RD_PREINIT");
+#endif
 		dt_proc_rdwatch(dpr, RD_POSTINIT, "RD_POSTINIT");
+#ifdef illumos
 		dt_proc_rdwatch(dpr, RD_DLACTIVITY, "RD_DLACTIVITY");
+#endif
 	} else {
 		dt_dprintf("pid %d: failed to enable rtld events: %s\n",
 		    (int)dpr->dpr_pid, dpr->dpr_rtld ? rd_errstr(err) :
@@ -490,6 +432,8 @@ dt_proc_attach(dt_proc_t *dpr, int exec)
 static void
 dt_proc_waitrun(dt_proc_t *dpr)
 {
+printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
+#ifdef DOODAD
 	struct ps_prochandle *P = dpr->dpr_proc;
 	const lwpstatus_t *psp = &Pstatus(P)->pr_lwp;
 
@@ -539,8 +483,8 @@ dt_proc_waitrun(dt_proc_t *dpr)
 	}
 
 	(void) pthread_mutex_lock(&dpr->dpr_lock);
-}
 #endif
+}
 
 typedef struct dt_proc_control_data {
 	dtrace_hdl_t *dpcd_hdl;			/* DTrace handle */
@@ -569,7 +513,7 @@ dt_proc_control(void *arg)
 	struct ps_prochandle *P = dpr->dpr_proc;
 	int pid = dpr->dpr_pid;
 
-#if defined(sun)
+#ifdef illumos
 	int pfd = Pctlfd(P);
 
 	const long wstop = PCWSTOP;
@@ -591,7 +535,7 @@ dt_proc_control(void *arg)
 	 */
 	(void) pthread_mutex_lock(&dpr->dpr_lock);
 
-#if defined(sun)
+#ifdef illumos
 	(void) Punsetflags(P, PR_ASYNC);	/* require synchronous mode */
 	(void) Psetflags(P, PR_BPTADJ);		/* always adjust eip on x86 */
 	(void) Punsetflags(P, PR_FORK);		/* do not inherit on fork */
@@ -603,7 +547,6 @@ dt_proc_control(void *arg)
 	 * We must trace exit from exec() system calls so that if the exec is
 	 * successful, we can reset our breakpoints and re-initialize libproc.
 	 */
-	(void) Psysexit(P, SYS_exec, B_TRUE);
 	(void) Psysexit(P, SYS_execve, B_TRUE);
 
 	/*
@@ -614,43 +557,30 @@ dt_proc_control(void *arg)
 	 */
 	(void) Psysentry(P, SYS_vfork, B_TRUE);
 	(void) Psysexit(P, SYS_vfork, B_TRUE);
-	(void) Psysentry(P, SYS_fork1, B_TRUE);
-	(void) Psysexit(P, SYS_fork1, B_TRUE);
-	(void) Psysentry(P, SYS_forkall, B_TRUE);
-	(void) Psysexit(P, SYS_forkall, B_TRUE);
 	(void) Psysentry(P, SYS_forksys, B_TRUE);
 	(void) Psysexit(P, SYS_forksys, B_TRUE);
 
 	Psync(P);				/* enable all /proc changes */
+#endif
 	dt_proc_attach(dpr, B_FALSE);		/* enable rtld breakpoints */
 
 	/*
 	 * If PR_KLC is set, we created the process; otherwise we grabbed it.
 	 * Check for an appropriate stop request and wait for dt_proc_continue.
 	 */
+#ifdef illumos
 	if (Pstatus(P)->pr_flags & PR_KLC)
-		dt_proc_stop(dpr, DT_PROC_STOP_CREATE);
-	else
-		dt_proc_stop(dpr, DT_PROC_STOP_GRAB);
-
-	if (Psetrun(P, 0, 0) == -1) {
-		dt_dprintf("pid %d: failed to set running: %s\n",
-		    (int)dpr->dpr_pid, strerror(errno));
-	}
 #else
-	/*
-	 * If PR_KLC is set, we created the process; otherwise we grabbed it.
-	 * Check for an appropriate stop request and wait for dt_proc_continue.
-	 */
 	if (proc_getflags(P) & PR_KLC)
+#endif
 		dt_proc_stop(dpr, DT_PROC_STOP_CREATE);
 	else
 		dt_proc_stop(dpr, DT_PROC_STOP_GRAB);
 
-	if (proc_continue(P) != 0)
+	if (Psetrun(P, 0, 0) == -1) {
 		dt_dprintf("pid %d: failed to set running: %s\n",
 		    (int)dpr->dpr_pid, strerror(errno));
-#endif
+	}
 
 	(void) pthread_mutex_unlock(&dpr->dpr_lock);
 
@@ -664,19 +594,21 @@ dt_proc_control(void *arg)
 	 * Pwait() (which will return immediately) and do our processing.
 	 */
 	while (!dpr->dpr_quit) {
-#if defined(sun)
 		const lwpstatus_t *psp;
 
+#ifdef illumos
 		if (write(pfd, &wstop, sizeof (wstop)) == -1 && errno == EINTR)
 			continue; /* check dpr_quit and continue waiting */
 #else
 		/* Wait for the process to report status. */
-		proc_wait(P);
+		proc_wstatus(P);
+		if (errno == EINTR)
+			continue; /* check dpr_quit and continue waiting */
 #endif
 
 		(void) pthread_mutex_lock(&dpr->dpr_lock);
 
-#if defined(sun)
+#ifdef illumos
 pwait_locked:
 		if (Pstopstatus(P, PCNULL, 0) == -1 && errno == EINTR) {
 			(void) pthread_mutex_unlock(&dpr->dpr_lock);
@@ -684,14 +616,13 @@ pwait_locked:
 		}
 #endif
 
-#if defined(sun)
 		switch (Pstate(P)) {
-#else
-		switch (proc_state(P)) {
-#endif
 		case PS_STOP:
-#ifdef DOODAD
+#ifdef illumos
 			psp = &Pstatus(P)->pr_lwp;
+#else
+			psp = proc_getlwpstatus(P);
+#endif
 
 			dt_dprintf("pid %d: proc stopped showing %d/%d\n",
 			    pid, psp->pr_why, psp->pr_what);
@@ -733,11 +664,10 @@ pwait_locked:
 			else if (psp->pr_why == PR_SYSEXIT &&
 			    IS_SYS_EXEC(psp->pr_what))
 				dt_proc_attach(dpr, B_TRUE);
-#endif
 			break;
 
 		case PS_LOST:
-#if defined(sun)
+#ifdef illumos
 			if (Preopen(P) == 0)
 				goto pwait_locked;
 #endif
@@ -756,12 +686,10 @@ pwait_locked:
 			break;
 		}
 
-#if defined(sun)
 		if (Pstate(P) != PS_UNDEAD && Psetrun(P, 0, 0) == -1) {
 			dt_dprintf("pid %d: failed to set running: %s\n",
 			    (int)dpr->dpr_pid, strerror(errno));
 		}
-#endif
 
 		(void) pthread_mutex_unlock(&dpr->dpr_lock);
 	}
@@ -801,11 +729,7 @@ dt_proc_error(dtrace_hdl_t *dtp, dt_proc_t *dpr, const char *format, ...)
 	va_end(ap);
 
 	if (dpr->dpr_proc != NULL)
-#if defined(sun)
 		Prelease(dpr->dpr_proc, 0);
-#else
-		proc_detach(dpr->dpr_proc);
-#endif
 
 	dt_free(dtp, dpr);
 	(void) dt_set_errno(dtp, EDT_COMPILER);
@@ -816,7 +740,7 @@ dt_proc_t *
 dt_proc_lookup(dtrace_hdl_t *dtp, struct ps_prochandle *P, int remove)
 {
 	dt_proc_hash_t *dph = dtp->dt_procs;
-#if defined(sun)
+#ifdef illumos
 	pid_t pid = Pstatus(P)->pr_pid;
 #else
 	pid_t pid = proc_getpid(P);
@@ -854,17 +778,20 @@ dt_proc_destroy(dtrace_hdl_t *dtp, struct ps_prochandle *P)
 	 * an external debugger and we were waiting in dt_proc_waitrun().
 	 * Leave the process in this condition using PRELEASE_HANG.
 	 */
-#if defined(sun)
+#ifdef illumos
 	if (!(Pstatus(dpr->dpr_proc)->pr_flags & (PR_KLC | PR_RLC))) {
 #else
 	if (!(proc_getflags(dpr->dpr_proc) & (PR_KLC | PR_RLC))) {
 #endif
 		dt_dprintf("abandoning pid %d\n", (int)dpr->dpr_pid);
-#if defined(sun)
 		rflag = PRELEASE_HANG;
+#ifdef illumos
+	} else if (Pstatus(dpr->dpr_proc)->pr_flags & PR_KLC) {
 #else
-		rflag = 0 /* XXX */;
+	} else if (proc_getflags(dpr->dpr_proc) & PR_KLC) {
 #endif
+		dt_dprintf("killing pid %d\n", (int)dpr->dpr_pid);
+		rflag = PRELEASE_KILL; /* apply kill-on-last-close */
 	} else {
 		dt_dprintf("releasing pid %d\n", (int)dpr->dpr_pid);
 		rflag = 0; /* apply run-on-last-close */
@@ -887,10 +814,12 @@ dt_proc_destroy(dtrace_hdl_t *dtp, struct ps_prochandle *P)
 		 */
 		(void) pthread_mutex_lock(&dpr->dpr_lock);
 		dpr->dpr_quit = B_TRUE;
-#if defined(sun)
+#ifdef illumos
 		(void) _lwp_kill(dpr->dpr_tid, SIGCANCEL);
+#elif defined(__FreeBSD__)
+		pthread_kill(dpr->dpr_tid, SIGTHR);
 #else
-		(void) pthread_kill(dpr->dpr_tid, SIGUSR1);
+		pthread_cancel(dpr->dpr_tid);
 #endif
 
 		/*
@@ -939,11 +868,7 @@ dt_proc_destroy(dtrace_hdl_t *dtp, struct ps_prochandle *P)
 	}
 
 	dt_list_delete(&dph->dph_lrulist, dpr);
-#if defined(sun)
 	Prelease(dpr->dpr_proc, rflag);
-#else
-	proc_detach(dpr->dpr_proc);
-#endif
 	dt_free(dtp, dpr);
 }
 
@@ -963,7 +888,7 @@ dt_proc_create_thread(dtrace_hdl_t *dtp, dt_proc_t *dpr, uint_t stop)
 
 	(void) sigfillset(&nset);
 	(void) sigdelset(&nset, SIGABRT);	/* unblocked for assert() */
-#if defined(sun)
+#ifdef illumos
 	(void) sigdelset(&nset, SIGCANCEL);	/* see dt_proc_destroy() */
 #else
 	(void) sigdelset(&nset, SIGUSR1);	/* see dt_proc_destroy() */
@@ -995,21 +920,18 @@ dt_proc_create_thread(dtrace_hdl_t *dtp, dt_proc_t *dpr, uint_t stop)
 		 * small amount of useful information to help figure it out.
 		 */
 		if (dpr->dpr_done) {
-#if defined(sun)
+#ifdef illumos
 			const psinfo_t *prp = Ppsinfo(dpr->dpr_proc);
 			int stat = prp ? prp->pr_wstat : 0;
-#endif
 			int pid = dpr->dpr_pid;
-
-#if defined(sun)
-			if (Pstate(dpr->dpr_proc) == PS_LOST) {
 #else
-			if (proc_state(dpr->dpr_proc) == PS_LOST) {
+			int stat = proc_getwstat(dpr->dpr_proc);
+			int pid = proc_getpid(dpr->dpr_proc);
 #endif
+			if (proc_state(dpr->dpr_proc) == PS_LOST) {
 				(void) dt_proc_error(dpr->dpr_hdl, dpr,
 				    "failed to control pid %d: process exec'd "
 				    "set-id or unobservable program\n", pid);
-#if defined(sun)
 			} else if (WIFSIGNALED(stat)) {
 				(void) dt_proc_error(dpr->dpr_hdl, dpr,
 				    "failed to control pid %d: process died "
@@ -1018,7 +940,6 @@ dt_proc_create_thread(dtrace_hdl_t *dtp, dt_proc_t *dpr, uint_t stop)
 				(void) dt_proc_error(dpr->dpr_hdl, dpr,
 				    "failed to control pid %d: process exited "
 				    "with status %d\n", pid, WEXITSTATUS(stat));
-#endif
 			}
 
 			err = ESRCH; /* cause grab() or create() to fail */
@@ -1029,7 +950,8 @@ dt_proc_create_thread(dtrace_hdl_t *dtp, dt_proc_t *dpr, uint_t stop)
 		    (int)dpr->dpr_pid, strerror(err));
 	}
 
-	(void) pthread_mutex_unlock(&dpr->dpr_lock);
+	if (err == 0)
+		(void) pthread_mutex_unlock(&dpr->dpr_lock);
 	(void) pthread_attr_destroy(&a);
 
 	return (err);
@@ -1049,32 +971,27 @@ dt_proc_create(dtrace_hdl_t *dtp, const char *file, char *const *argv,
 	(void) pthread_mutex_init(&dpr->dpr_lock, NULL);
 	(void) pthread_cond_init(&dpr->dpr_cv, NULL);
 
-#if defined(sun)
+#ifdef illumos
 	if ((dpr->dpr_proc = Pcreate(file, argv, &err, NULL, 0)) == NULL) {
+#else
+	if ((err = proc_create(file, argv, pcf, child_arg,
+	    &dpr->dpr_proc)) != 0) {
+#endif
 		return (dt_proc_error(dtp, dpr,
 		    "failed to execute %s: %s\n", file, Pcreate_error(err)));
 	}
 
 	dpr->dpr_hdl = dtp;
+#ifdef illumos
 	dpr->dpr_pid = Pstatus(dpr->dpr_proc)->pr_pid;
-
-	(void) Punsetflags(dpr->dpr_proc, PR_RLC);
-	(void) Psetflags(dpr->dpr_proc, PR_KLC);
 #else
-	(void) proc_clearflags(dpr->dpr_proc, PR_RLC);
-	(void) proc_setflags(dpr->dpr_proc, PR_KLC);
-	if ((err = proc_create(file, argv, pcf, child_arg, &dpr->dpr_proc)) != 0)
-		return (dt_proc_error(dtp, dpr,
-		    "failed to execute %s: %s\n", file, strerror(err)));
-	dpr->dpr_hdl = dtp;
 	dpr->dpr_pid = proc_getpid(dpr->dpr_proc);
 #endif
 
-#if defined(sun)
+	(void) Punsetflags(dpr->dpr_proc, PR_RLC);
+	(void) Psetflags(dpr->dpr_proc, PR_KLC);
+
 	if (dt_proc_create_thread(dtp, dpr, dtp->dt_prcmode) != 0)
-#else
-	if (dt_proc_create_thread(dtp, dpr, DT_PROC_STOP_IDLE) != 0)
-#endif
 		return (NULL); /* dt_proc_error() has been called for us */
 
 	dpr->dpr_hash = dph->dph_hash[dpr->dpr_pid & (dph->dph_hashlen - 1)];
@@ -1130,27 +1047,20 @@ dt_proc_grab(dtrace_hdl_t *dtp, pid_t pid, int flags, int nomonitor)
 	(void) pthread_mutex_init(&dpr->dpr_lock, NULL);
 	(void) pthread_cond_init(&dpr->dpr_cv, NULL);
 
-#if defined(sun)
+#ifdef illumos
 	if ((dpr->dpr_proc = Pgrab(pid, flags, &err)) == NULL) {
+#else
+	if ((err = proc_attach(pid, flags, &dpr->dpr_proc)) != 0) {
+#endif
 		return (dt_proc_error(dtp, dpr,
 		    "failed to grab pid %d: %s\n", (int)pid, Pgrab_error(err)));
 	}
-#else
-	if ((err = proc_attach(pid, flags, &dpr->dpr_proc)) != 0)
-		return (dt_proc_error(dtp, dpr,
-		    "failed to grab pid %d: %s\n", (int) pid, strerror(err)));
-#endif
 
 	dpr->dpr_hdl = dtp;
 	dpr->dpr_pid = pid;
 
-#if defined(sun)
 	(void) Punsetflags(dpr->dpr_proc, PR_KLC);
 	(void) Psetflags(dpr->dpr_proc, PR_RLC);
-#else
-	(void) proc_clearflags(dpr->dpr_proc, PR_KLC);
-	(void) proc_setflags(dpr->dpr_proc, PR_RLC);
-#endif
 
 	/*
 	 * If we are attempting to grab the process without a monitor
@@ -1271,12 +1181,13 @@ dtrace_proc_create(dtrace_hdl_t *dtp, const char *file, char *const *argv,
 	dt_ident_t *idp = dt_idhash_lookup(dtp->dt_macros, "target");
 	struct ps_prochandle *P = dt_proc_create(dtp, file, argv, pcf, child_arg);
 
-	if (P != NULL && idp != NULL && idp->di_id == 0)
-#if defined(sun)
+	if (P != NULL && idp != NULL && idp->di_id == 0) {
+#ifdef illumos
 		idp->di_id = Pstatus(P)->pr_pid; /* $target = created pid */
 #else
 		idp->di_id = proc_getpid(P); /* $target = created pid */
 #endif
+	}
 
 	return (P);
 }
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_proc.h b/external/cddl/osnet/dist/lib/libdtrace/common/dt_proc.h
index b469f55..4d980d8 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_proc.h
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_proc.h
@@ -44,9 +44,7 @@ typedef struct dt_proc {
 	dtrace_hdl_t *dpr_hdl;		/* back pointer to libdtrace handle */
 	struct ps_prochandle *dpr_proc;	/* proc handle for libproc calls */
 	char dpr_errmsg[BUFSIZ];	/* error message */
-#if defined(sun)
 	rd_agent_t *dpr_rtld;		/* rtld handle for librtld_db calls */
-#endif
 	pthread_mutex_t dpr_lock;	/* lock for manipulating dpr_hdl */
 	pthread_cond_t dpr_cv;		/* cond for dpr_stop/quit/done */
 	pid_t dpr_pid;			/* pid of process */
@@ -82,7 +80,7 @@ typedef struct dt_bkpt {
 	dt_bkpt_f *dbp_func;		/* callback function to execute */
 	void *dbp_data;			/* callback function private data */
 	uintptr_t dbp_addr;		/* virtual address of breakpoint */
-	ulong_t dbp_instr;		/* saved instruction from breakpoint */
+	proc_breakpoint_t dbp_instr;	/* saved instruction from breakpoint */
 	ulong_t dbp_hits;		/* count of breakpoint hits for debug */
 	int dbp_active;			/* flag indicating breakpoint is on */
 } dt_bkpt_t;
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_program.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_program.c
index 9a4c6f8..55a5aac 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_program.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_program.c
@@ -20,8 +20,8 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011 by Delphix. All rights reserved.
  */
 
 #include <unistd.h>
@@ -30,7 +30,7 @@
 #include <errno.h>
 #include <assert.h>
 #include <ctype.h>
-#if defined(sun)
+#ifdef illumos
 #include <alloca.h>
 #endif
 
@@ -44,10 +44,12 @@ dt_program_create(dtrace_hdl_t *dtp)
 {
 	dtrace_prog_t *pgp = dt_zalloc(dtp, sizeof (dtrace_prog_t));
 
-	if (pgp != NULL)
+	if (pgp != NULL) {
 		dt_list_append(&dtp->dt_programs, pgp);
-	else
+	} else {
 		(void) dt_set_errno(dtp, EDT_NOMEM);
+		return (NULL);
+	}
 
 	/*
 	 * By default, programs start with DOF version 1 so that output files
@@ -351,6 +353,7 @@ dtrace_stmt_destroy(dtrace_hdl_t *dtp, dtrace_stmtdesc_t *sdp)
 
 	if (sdp->dtsd_fmtdata != NULL)
 		dt_printf_destroy(sdp->dtsd_fmtdata);
+	dt_free(dtp, sdp->dtsd_strdata);
 
 	dt_ecbdesc_release(dtp, sdp->dtsd_ecbdesc);
 	dt_free(dtp, sdp);
@@ -368,7 +371,7 @@ static void
 dt_header_fmt_macro(char *buf, const char *str)
 {
 	for (;;) {
-		if (islower(*str)) {
+		if (islower((unsigned char)*str)) {
 			*buf++ = *str++ + 'A' - 'a';
 		} else if (*str == '-') {
 			*buf++ = '_';
@@ -556,6 +559,10 @@ dt_header_provider(dtrace_hdl_t *dtp, dt_provider_t *pvp, FILE *out)
 	info.dthi_pfname = alloca(strlen(pvp->pv_desc.dtvd_name) + 1 + i);
 	dt_header_fmt_func(info.dthi_pfname, pvp->pv_desc.dtvd_name);
 
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	if (fprintf(out, "#include <sys/sdt.h>\n\n") < 0)
+		return (dt_set_errno(dtp, errno));
+#endif
 	if (fprintf(out, "#if _DTRACE_VERSION\n\n") < 0)
 		return (dt_set_errno(dtp, errno));
 
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_provider.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_provider.c
index 188ce0e0..2913874 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_provider.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_provider.c
@@ -23,11 +23,12 @@
  * 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/types.h>
-#if defined(sun)
+#ifdef illumos
 #include <sys/sysmacros.h>
 #endif
 
@@ -35,7 +36,7 @@
 #include <limits.h>
 #include <strings.h>
 #include <stdlib.h>
-#if defined(sun)
+#ifdef illumos
 #include <alloca.h>
 #endif
 #include <unistd.h>
@@ -45,6 +46,8 @@
 #include <dt_module.h>
 #include <dt_string.h>
 #include <dt_list.h>
+#include <dt_pid.h>
+#include <dtrace.h>
 
 static dt_provider_t *
 dt_provider_insert(dtrace_hdl_t *dtp, dt_provider_t *pvp, uint_t h)
@@ -273,6 +276,21 @@ dt_probe_discover(dt_provider_t *pvp, const dtrace_probedesc_t *pdp)
 	nc++;
 
 	/*
+	 * The pid provider believes in giving the kernel a break. No reason to
+	 * give the kernel all the ctf containers that we're keeping ourselves
+	 * just to get it back from it. So if we're coming from a pid provider
+	 * probe and the kernel gave us no argument information we'll get some
+	 * here. If for some crazy reason the kernel knows about our userland
+	 * types then we just ignore this.
+	 */
+	if (xc == 0 && nc == 0 &&
+	    strncmp(pvp->pv_desc.dtvd_name, "pid", 3) == 0) {
+		nc = adc;
+		dt_pid_get_types(dtp, pdp, adv, &nc);
+		xc = nc;
+	}
+
+	/*
 	 * Now that we have discovered the number of native and translated
 	 * arguments from the argument descriptions, allocate a new probe ident
 	 * and corresponding dt_probe_t and hash it into the provider.
@@ -318,7 +336,8 @@ dt_probe_discover(dt_provider_t *pvp, const dtrace_probedesc_t *pdp)
 			dtt.dtt_type = CTF_ERR;
 		} else {
 			dt_node_type_assign(prp->pr_nargv[adp->dtargd_mapping],
-			    dtt.dtt_ctfp, dtt.dtt_type);
+			    dtt.dtt_ctfp, dtt.dtt_type,
+			    dtt.dtt_flags & DTT_FL_USER ? B_TRUE : B_FALSE);
 		}
 
 		if (dtt.dtt_type != CTF_ERR && (adp->dtargd_xlate[0] == '\0' ||
@@ -337,7 +356,7 @@ dt_probe_discover(dt_provider_t *pvp, const dtrace_probedesc_t *pdp)
 			dtt.dtt_type = CTF_ERR;
 		} else {
 			dt_node_type_assign(prp->pr_xargv[i],
-			    dtt.dtt_ctfp, dtt.dtt_type);
+			    dtt.dtt_ctfp, dtt.dtt_type, B_FALSE);
 		}
 
 		prp->pr_mapping[i] = adp->dtargd_mapping;
@@ -501,6 +520,8 @@ dt_probe_destroy(dt_probe_t *prp)
 
 	for (pip = prp->pr_inst; pip != NULL; pip = pip_next) {
 		pip_next = pip->pi_next;
+		dt_free(dtp, pip->pi_rname);
+		dt_free(dtp, pip->pi_fname);
 		dt_free(dtp, pip->pi_offs);
 		dt_free(dtp, pip->pi_enoffs);
 		dt_free(dtp, pip);
@@ -524,8 +545,9 @@ dt_probe_define(dt_provider_t *pvp, dt_probe_t *prp,
 
 	for (pip = prp->pr_inst; pip != NULL; pip = pip->pi_next) {
 		if (strcmp(pip->pi_fname, fname) == 0 &&
-		    ((rname == NULL && pip->pi_rname[0] == '\0') ||
-		    (rname != NULL && strcmp(pip->pi_rname, rname)) == 0))
+		    ((rname == NULL && pip->pi_rname == NULL) ||
+		    (rname != NULL && pip->pi_rname != NULL &&
+		    strcmp(pip->pi_rname, rname) == 0)))
 			break;
 	}
 
@@ -533,28 +555,18 @@ dt_probe_define(dt_provider_t *pvp, dt_probe_t *prp,
 		if ((pip = dt_zalloc(dtp, sizeof (*pip))) == NULL)
 			return (-1);
 
-		if ((pip->pi_offs = dt_zalloc(dtp,
-		    sizeof (uint32_t))) == NULL) {
-			dt_free(dtp, pip);
-			return (-1);
-		}
+		if ((pip->pi_offs = dt_zalloc(dtp, sizeof (uint32_t))) == NULL)
+			goto nomem;
 
 		if ((pip->pi_enoffs = dt_zalloc(dtp,
-		    sizeof (uint32_t))) == NULL) {
-			dt_free(dtp, pip->pi_offs);
-			dt_free(dtp, pip);
-			return (-1);
-		}
+		    sizeof (uint32_t))) == NULL)
+			goto nomem;
 
-		(void) strlcpy(pip->pi_fname, fname, sizeof (pip->pi_fname));
-		if (rname != NULL) {
-			if (strlen(rname) + 1 > sizeof (pip->pi_rname)) {
-				dt_free(dtp, pip->pi_offs);
-				dt_free(dtp, pip);
-				return (dt_set_errno(dtp, EDT_COMPILER));
-			}
-			(void) strcpy(pip->pi_rname, rname);
-		}
+		if ((pip->pi_fname = strdup(fname)) == NULL)
+			goto nomem;
+
+		if (rname != NULL && (pip->pi_rname = strdup(rname)) == NULL)
+			goto nomem;
 
 		pip->pi_noffs = 0;
 		pip->pi_maxoffs = 1;
@@ -599,6 +611,13 @@ dt_probe_define(dt_provider_t *pvp, dt_probe_t *prp,
 	(*offs)[(*noffs)++] = offset;
 
 	return (0);
+
+nomem:
+	dt_free(dtp, pip->pi_fname);
+	dt_free(dtp, pip->pi_enoffs);
+	dt_free(dtp, pip->pi_offs);
+	dt_free(dtp, pip);
+	return (dt_set_errno(dtp, EDT_NOMEM));
 }
 
 /*
@@ -638,7 +657,7 @@ dt_probe_tag(dt_probe_t *prp, uint_t argn, dt_node_t *dnp)
 	bzero(dnp, sizeof (dt_node_t));
 	dnp->dn_kind = DT_NODE_TYPE;
 
-	dt_node_type_assign(dnp, dtt.dtt_ctfp, dtt.dtt_type);
+	dt_node_type_assign(dnp, dtt.dtt_ctfp, dtt.dtt_type, B_FALSE);
 	dt_node_attr_assign(dnp, _dtrace_defattr);
 
 	return (dnp);
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_provider.h b/external/cddl/osnet/dist/lib/libdtrace/common/dt_provider.h
index af4ec33..2752baa 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_provider.h
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_provider.h
@@ -64,8 +64,8 @@ typedef struct dt_probe_iter {
 } dt_probe_iter_t;
 
 typedef struct dt_probe_instance {
-	char pi_fname[DTRACE_FUNCNAMELEN]; /* function name */
-	char pi_rname[DTRACE_FUNCNAMELEN + 20]; /* mangled relocation name */
+	char *pi_fname;			/* function name */
+	char *pi_rname;			/* mangled relocation name */
 	uint32_t *pi_offs;		/* offsets into the function */
 	uint32_t *pi_enoffs;		/* is-enabled offsets */
 	uint_t pi_noffs;		/* number of offsets */
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_regset.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_regset.c
index 05cc15c..0c747ed 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_regset.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_regset.c
@@ -19,12 +19,15 @@
  *
  * CDDL HEADER END
  */
+
 /*
  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
 
 #include <sys/types.h>
 #include <sys/bitmap.h>
@@ -33,18 +36,19 @@
 #include <stdlib.h>
 
 #include <dt_regset.h>
+#include <dt_impl.h>
 
 dt_regset_t *
-dt_regset_create(ulong_t size)
+dt_regset_create(ulong_t nregs)
 {
-	ulong_t n = BT_BITOUL(size + 1); /* + 1 for %r0 */
+	ulong_t n = BT_BITOUL(nregs);
 	dt_regset_t *drp = malloc(sizeof (dt_regset_t));
 
 	if (drp == NULL)
 		return (NULL);
 
 	drp->dr_bitmap = malloc(sizeof (ulong_t) * n);
-	drp->dr_size = size + 1;
+	drp->dr_size = nregs;
 
 	if (drp->dr_bitmap == NULL) {
 		dt_regset_destroy(drp);
@@ -68,6 +72,25 @@ dt_regset_reset(dt_regset_t *drp)
 	bzero(drp->dr_bitmap, sizeof (ulong_t) * BT_BITOUL(drp->dr_size));
 }
 
+void
+dt_regset_assert_free(dt_regset_t *drp)
+{
+	int reg;
+	boolean_t fail = B_FALSE;
+	for (reg = 0; reg < drp->dr_size; reg++) {
+		if (BT_TEST(drp->dr_bitmap, reg) != 0)  {
+			dt_dprintf("%%r%d was left allocated\n", reg);
+			fail = B_TRUE;
+		}
+	}
+
+	/*
+	 * We set this during dtest runs to check for register leaks.
+	 */
+	if (fail && getenv("DTRACE_DEBUG_REGSET") != NULL)
+		abort();
+}
+
 int
 dt_regset_alloc(dt_regset_t *drp)
 {
@@ -95,13 +118,15 @@ dt_regset_alloc(dt_regset_t *drp)
 		}
 	}
 
-	return (-1); /* no available registers */
+	xyerror(D_NOREG, "Insufficient registers to generate code");
+	/*NOTREACHED*/
+	return (-1);
 }
 
 void
 dt_regset_free(dt_regset_t *drp, int reg)
 {
-	assert(reg > 0 && reg < drp->dr_size);
+	assert(reg >= 0 && reg < drp->dr_size);
 	assert(BT_TEST(drp->dr_bitmap, reg) != 0);
 	BT_CLEAR(drp->dr_bitmap, reg);
 }
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_regset.h b/external/cddl/osnet/dist/lib/libdtrace/common/dt_regset.h
index 25e64d0..3508284 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_regset.h
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_regset.h
@@ -19,16 +19,19 @@
  *
  * CDDL HEADER END
  */
+
 /*
  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
+
 #ifndef	_DT_REGSET_H
 #define	_DT_REGSET_H
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <sys/types.h>
 
 #ifdef	__cplusplus
@@ -45,6 +48,7 @@ extern void dt_regset_destroy(dt_regset_t *);
 extern void dt_regset_reset(dt_regset_t *);
 extern int dt_regset_alloc(dt_regset_t *);
 extern void dt_regset_free(dt_regset_t *, int);
+extern void dt_regset_assert_free(dt_regset_t *);
 
 #ifdef	__cplusplus
 }
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_string.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_string.c
index 02fa507..782d66c 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_string.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_string.c
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -19,13 +18,11 @@
  *
  * CDDL HEADER END
  */
+
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <strings.h>
 #include <stdlib.h>
 #include <errno.h>
@@ -34,19 +31,6 @@
 #include <dt_string.h>
 
 /*
- * Create a copy of string s, but only duplicate the first n bytes.
- */
-char *
-strndup(const char *s, size_t n)
-{
-	char *s2 = malloc(n + 1);
-
-	(void) strncpy(s2, s, n);
-	s2[n] = '\0';
-	return (s2);
-}
-
-/*
  * Transform string s inline, converting each embedded C escape sequence string
  * to the corresponding character.  For example, the substring "\n" is replaced
  * by an inline '\n' character.  The length of the resulting string is returned.
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_string.h b/external/cddl/osnet/dist/lib/libdtrace/common/dt_string.h
index 1fd412b..6ee626d 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_string.h
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_string.h
@@ -2,9 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -20,14 +19,12 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 #ifndef	_DT_STRING_H
 #define	_DT_STRING_H
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
 
 #include <sys/types.h>
 #include <strings.h>
@@ -36,7 +33,6 @@
 extern "C" {
 #endif
 
-extern char *strndup(const char *, size_t);
 extern size_t stresc2chr(char *);
 extern char *strchr2esc(const char *, size_t);
 extern const char *strbasename(const char *);
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_subr.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_subr.c
index 8069d98..1135dc1 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_subr.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_subr.c
@@ -21,12 +21,14 @@
 
 /*
  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
  * Use is subject to license terms.
  */
 
-#if defined(sun)
+#ifdef illumos
 #include <sys/sysmacros.h>
 #endif
+#include <sys/isa_defs.h>
 
 #include <strings.h>
 #include <unistd.h>
@@ -36,15 +38,17 @@
 #include <stdio.h>
 #include <errno.h>
 #include <ctype.h>
-#if defined(sun)
+#ifdef illumos
 #include <alloca.h>
 #else
-#include <sys/ioctl.h>
 #include <sys/sysctl.h>
+#include <sys/ioctl.h>
+#include <libproc_compat.h>
 #endif
 #include <assert.h>
 #include <libgen.h>
 #include <limits.h>
+#include <stdint.h>
 
 #include <dt_impl.h>
 
@@ -104,7 +108,7 @@ dtrace_xstr2desc(dtrace_hdl_t *dtp, dtrace_probespec_t spec,
 				v++;
 			}
 
-			if (isdigit(v[1])) {
+			if (isdigit((unsigned char)v[1])) {
 				long i;
 
 				errno = 0;
@@ -389,7 +393,7 @@ dt_version_str2num(const char *s, dt_version_t *vp)
 	char c;
 
 	while ((c = *s++) != '\0') {
-		if (isdigit(c))
+		if (isdigit((unsigned char)c))
 			n[i] = n[i] * 10 + c - '0';
 		else if (c != '.' || i++ >= sizeof (n) / sizeof (n[0]) - 1)
 			return (-1);
@@ -474,7 +478,7 @@ dt_dprintf(const char *format, ...)
 }
 
 int
-#if defined(sun)
+#ifdef illumos
 dt_ioctl(dtrace_hdl_t *dtp, int val, void *arg)
 #else
 dt_ioctl(dtrace_hdl_t *dtp, u_long val, void *arg)
@@ -482,7 +486,7 @@ dt_ioctl(dtrace_hdl_t *dtp, u_long val, void *arg)
 {
 	const dtrace_vector_t *v = dtp->dt_vector;
 
-#if !defined(sun)
+#ifndef illumos
 	/* Avoid sign extension. */
 	val &= 0xffffffff;
 #endif
@@ -503,10 +507,15 @@ dt_status(dtrace_hdl_t *dtp, processorid_t cpu)
 	const dtrace_vector_t *v = dtp->dt_vector;
 
 	if (v == NULL) {
-#if defined(sun)
+#ifdef illumos
 		return (p_online(cpu, P_STATUS));
 #else
-		return 1;
+		int maxid = 0;
+		size_t len = sizeof(maxid);
+		if (sysctlbyname("kern.smp.maxid", &maxid, &len, NULL, 0) != 0)
+			return (cpu == 0 ? 1 : -1);
+		else
+			return (cpu <= maxid ? 1 : -1);
 #endif
 	}
 
@@ -553,9 +562,9 @@ dt_write(dtrace_hdl_t *dtp, int fd, const void *buf, size_t n)
 /*
  * This function handles all output from libdtrace, as well as the
  * dtrace_sprintf() case.  If we're here due to dtrace_sprintf(), then
- * dt_sprintf_buflen will be non-zero; in this case, we snprintf into the
+ * dt_sprintf_buflen will be non-zero; in this case, we sprintf into the
  * specified buffer and return.  Otherwise, if output is buffered (denoted by
- * a NULL fp), we snprintf the desired output into the buffered buffer
+ * a NULL fp), we sprintf the desired output into the buffered buffer
  * (expanding the buffer if required).  If we don't satisfy either of these
  * conditions (that is, if we are to actually generate output), then we call
  * fprintf with the specified fp.  In this case, we need to deal with one of
@@ -575,7 +584,7 @@ dt_printf(dtrace_hdl_t *dtp, FILE *fp, const char *format, ...)
 	va_list ap;
 	int n;
 
-#if !defined(sun)
+#ifndef illumos
 	/*
 	 * On FreeBSD, check if output is currently being re-directed
 	 * to another file. If so, output to that file instead of the
@@ -610,8 +619,8 @@ dt_printf(dtrace_hdl_t *dtp, FILE *fp, const char *format, ...)
 		size_t avail;
 
 		/*
-		 * It's not legal to use buffered ouput if there is not a
-		 * handler for buffered output.
+		 * Using buffered output is not allowed if a handler has
+		 * not been installed.
 		 */
 		if (dtp->dt_bufhdlr == NULL) {
 			va_end(ap);
@@ -671,6 +680,7 @@ dt_printf(dtrace_hdl_t *dtp, FILE *fp, const char *format, ...)
 
 		dtp->dt_buffered_offs += needed;
 		assert(dtp->dt_buffered_buf[dtp->dt_buffered_offs] == '\0');
+		va_end(ap);
 		return (0);
 	}
 
@@ -725,11 +735,6 @@ dt_zalloc(dtrace_hdl_t *dtp, size_t size)
 {
 	void *data;
 
-	if (size > 16 * 1024 * 1024) {
-		(void) dt_set_errno(dtp, EDT_NOMEM);
-		return (NULL);
-	}
-
 	if ((data = malloc(size)) == NULL)
 		(void) dt_set_errno(dtp, EDT_NOMEM);
 	else
@@ -743,11 +748,6 @@ dt_alloc(dtrace_hdl_t *dtp, size_t size)
 {
 	void *data;
 
-	if (size > 16 * 1024 * 1024) {
-		(void) dt_set_errno(dtp, EDT_NOMEM);
-		return (NULL);
-	}
-
 	if ((data = malloc(size)) == NULL)
 		(void) dt_set_errno(dtp, EDT_NOMEM);
 
@@ -806,15 +806,14 @@ dt_basename(char *str)
 ulong_t
 dt_popc(ulong_t x)
 {
-#ifdef _ILP32
+#if defined(_ILP32)
 	x = x - ((x >> 1) & 0x55555555UL);
 	x = (x & 0x33333333UL) + ((x >> 2) & 0x33333333UL);
 	x = (x + (x >> 4)) & 0x0F0F0F0FUL;
 	x = x + (x >> 8);
 	x = x + (x >> 16);
 	return (x & 0x3F);
-#endif
-#ifdef _LP64
+#elif defined(_LP64)
 	x = x - ((x >> 1) & 0x5555555555555555ULL);
 	x = (x & 0x3333333333333333ULL) + ((x >> 2) & 0x3333333333333333ULL);
 	x = (x + (x >> 4)) & 0x0F0F0F0F0F0F0F0FULL;
@@ -822,6 +821,8 @@ dt_popc(ulong_t x)
 	x = x + (x >> 16);
 	x = x + (x >> 32);
 	return (x & 0x7F);
+#else
+/* This should be a #warning but for now ignore error. Err: "need td_popc() implementation" */
 #endif
 }
 
@@ -845,6 +846,36 @@ dt_popcb(const ulong_t *bp, ulong_t n)
 	return (popc + dt_popc(bp[maxw] & ((1UL << maxb) - 1)));
 }
 
+#ifdef illumos
+struct _rwlock;
+struct _lwp_mutex;
+
+int
+dt_rw_read_held(pthread_rwlock_t *lock)
+{
+	extern int _rw_read_held(struct _rwlock *);
+	return (_rw_read_held((struct _rwlock *)lock));
+}
+
+int
+dt_rw_write_held(pthread_rwlock_t *lock)
+{
+	extern int _rw_write_held(struct _rwlock *);
+	return (_rw_write_held((struct _rwlock *)lock));
+}
+#endif
+
+int
+dt_mutex_held(pthread_mutex_t *lock)
+{
+#ifdef illumos
+	extern int _mutex_held(struct _lwp_mutex *);
+	return (_mutex_held((struct _lwp_mutex *)lock));
+#else
+	return (1);
+#endif
+}
+
 static int
 dt_string2str(char *s, char *str, int nbytes)
 {
@@ -888,8 +919,8 @@ dtrace_addr2str(dtrace_hdl_t *dtp, uint64_t addr, char *str, int nbytes)
 	s = alloca(n);
 
 	if (err == 0 && addr != sym.st_value) {
-		(void) snprintf(s, n, "%s`%s+0x%" PRIx64, dts.dts_object,
-		    dts.dts_name, addr - sym.st_value);
+		(void) snprintf(s, n, "%s`%s+0x%llx", dts.dts_object,
+		    dts.dts_name, (unsigned long long)addr - sym.st_value);
 	} else if (err == 0) {
 		(void) snprintf(s, n, "%s`%s",
 		    dts.dts_object, dts.dts_name);
@@ -900,10 +931,10 @@ dtrace_addr2str(dtrace_hdl_t *dtp, uint64_t addr, char *str, int nbytes)
 		 * containing module.
 		 */
 		if (dtrace_lookup_by_addr(dtp, addr, NULL, &dts) == 0) {
-			(void) snprintf(s, n, "%s`0x%" PRIx64, dts.dts_object,
-			    addr);
+			(void) snprintf(s, n, "%s`0x%llx", dts.dts_object,
+			    (unsigned long long)addr);
 		} else {
-			(void) snprintf(s, n, "0x%" PRIx64, addr);
+			(void) snprintf(s, n, "0x%llx", (unsigned long long)addr);
 		}
 	}
 
@@ -914,7 +945,6 @@ int
 dtrace_uaddr2str(dtrace_hdl_t *dtp, pid_t pid,
     uint64_t addr, char *str, int nbytes)
 {
-#if 0	/* XXX TBD needs libproc */
 	char name[PATH_MAX], objname[PATH_MAX], c[PATH_MAX * 2];
 	struct ps_prochandle *P = NULL;
 	GElf_Sym sym;
@@ -924,45 +954,32 @@ dtrace_uaddr2str(dtrace_hdl_t *dtp, pid_t pid,
 		P = dt_proc_grab(dtp, pid, PGRAB_RDONLY | PGRAB_FORCE, 0);
 
 	if (P == NULL) {
-		(void) snprintf(c, sizeof (c), "0x%" PRIx64, addr);
+	  (void) snprintf(c, sizeof (c), "0x%jx", (uintmax_t)addr);
 		return (dt_string2str(c, str, nbytes));
 	}
 
 	dt_proc_lock(dtp, P);
 
-#if defined(sun)
 	if (Plookup_by_addr(P, addr, name, sizeof (name), &sym) == 0) {
 		(void) Pobjname(P, addr, objname, sizeof (objname));
-#else
-	if (proc_addr2sym(P, addr, name, sizeof (name), &sym) == 0) {
-		(void) proc_objname(P, addr, objname, sizeof (objname));
-#endif
 
 		obj = dt_basename(objname);
 
 		if (addr > sym.st_value) {
-			(void) snprintf(c, sizeof (c), "%s`%s+0x%" PRIx64,
-			    obj, name, (addr - sym.st_value));
+			(void) snprintf(c, sizeof (c), "%s`%s+0x%llx", obj,
+			    name, (unsigned long long)(addr - sym.st_value));
 		} else {
 			(void) snprintf(c, sizeof (c), "%s`%s", obj, name);
 		}
-#if defined(sun)
 	} else if (Pobjname(P, addr, objname, sizeof (objname)) != 0) {
-#else
-	} else if (proc_objname(P, addr, objname, sizeof (objname)) != 0) {
-#endif
-		(void) snprintf(c, sizeof (c), "%s`0x%" PRIx64,
-		    dt_basename(objname), addr);
+		(void) snprintf(c, sizeof (c), "%s`0x%jx",
+				dt_basename(objname), (uintmax_t)addr);
 	} else {
-		(void) snprintf(c, sizeof (c), "0x%" PRIx64, addr);
+	  (void) snprintf(c, sizeof (c), "0x%jx", (uintmax_t)addr);
 	}
 
 	dt_proc_unlock(dtp, P);
 	dt_proc_release(dtp, P);
 
 	return (dt_string2str(c, str, nbytes));
-#else
-	printf("XXX %s not implemented\n", __func__);
-	return 0;
-#endif
 }
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_work.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_work.c
index 68e64bb..43929f7 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_work.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_work.c
@@ -82,7 +82,7 @@ dtrace_sleep(dtrace_hdl_t *dtp)
 		return; /* sleep duration has already past */
 	}
 
-#if defined(sun)
+#ifdef illumos
 	tv.tv_sec = (earliest - now) / NANOSEC;
 	tv.tv_nsec = (earliest - now) % NANOSEC;
 
@@ -184,7 +184,7 @@ dtrace_go(dtrace_hdl_t *dtp)
 {
 	dtrace_enable_io_t args;
 	void *dof;
-	int err;
+	int error, r;
 
 	if (dtp->dt_active)
 		return (dt_set_errno(dtp, EINVAL));
@@ -206,11 +206,12 @@ dtrace_go(dtrace_hdl_t *dtp)
 
 	args.dof = dof;
 	args.n_matched = 0;
-	err = dt_ioctl(dtp, DTRACEIOC_ENABLE, &args);
+	r = dt_ioctl(dtp, DTRACEIOC_ENABLE, &args);
+	error = errno;
 	dtrace_dof_destroy(dtp, dof);
 
-	if (err == -1 && (errno != ENOTTY || dtp->dt_vector == NULL))
-		return (dt_set_errno(dtp, errno));
+	if (r == -1 && (error != ENOTTY || dtp->dt_vector == NULL))
+		return (dt_set_errno(dtp, error));
 
 	if (dt_ioctl(dtp, DTRACEIOC_GO, &dtp->dt_beganon) == -1) {
 		if (errno == EACCES)
@@ -272,7 +273,7 @@ dtrace_work(dtrace_hdl_t *dtp, FILE *fp,
 {
 	int status = dtrace_status(dtp);
 	dtrace_optval_t policy = dtp->dt_options[DTRACEOPT_BUFPOLICY];
-	dtrace_workstatus_t rval;
+	dtrace_workstatus_t rval = 0;	// XXX: gcc
 
 	switch (status) {
 	case DTRACE_STATUS_EXITED:
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dt_xlator.c b/external/cddl/osnet/dist/lib/libdtrace/common/dt_xlator.c
index 7ac0cc4..74bd487 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_xlator.c
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_xlator.c
@@ -23,8 +23,10 @@
  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
+/*
+ * Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2013 Joyent, Inc. All rights reserved.
+ */
 
 #include <strings.h>
 #include <assert.h>
@@ -69,7 +71,7 @@ dt_xlator_create_member(const char *name, ctf_id_t type, ulong_t off, void *arg)
 	enp->dn_op = DT_TOK_XLATE;
 	enp->dn_xlator = dxp;
 	enp->dn_xmember = mnp;
-	dt_node_type_assign(enp, dxp->dx_dst_ctfp, type);
+	dt_node_type_assign(enp, dxp->dx_dst_ctfp, type, B_FALSE);
 
 	/*
 	 * For the member itself, we use a DT_NODE_MEMBER as usual with the
@@ -83,7 +85,7 @@ dt_xlator_create_member(const char *name, ctf_id_t type, ulong_t off, void *arg)
 
 	mnp->dn_membname = strdup(name);
 	mnp->dn_membexpr = enp;
-	dt_node_type_assign(mnp, dxp->dx_dst_ctfp, type);
+	dt_node_type_assign(mnp, dxp->dx_dst_ctfp, type, B_FALSE);
 
 	if (mnp->dn_membname == NULL)
 		return (dt_set_errno(dtp, EDT_NOMEM));
@@ -318,7 +320,8 @@ dt_xlator_lookup(dtrace_hdl_t *dtp, dt_node_t *src, dt_node_t *dst, int flags)
 
 	for (dxp = dt_list_next(&dtp->dt_xlators); dxp != NULL;
 	    dxp = dt_list_next(dxp)) {
-		dt_node_type_assign(&xn, dxp->dx_src_ctfp, dxp->dx_src_type);
+		dt_node_type_assign(&xn, dxp->dx_src_ctfp, dxp->dx_src_type,
+		    B_FALSE);
 		if (ctf_type_compat(dxp->dx_dst_ctfp, dxp->dx_dst_base,
 		    dst_ctfp, dst_base) && dt_node_is_argcompat(src, &xn))
 			goto out;
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/dtrace.h b/external/cddl/osnet/dist/lib/libdtrace/common/dtrace.h
index 00b32ee..f0088a9 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dtrace.h
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dtrace.h
@@ -24,16 +24,22 @@
  * Use is subject to license terms.
  */
 
+/*
+ * Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ */
+
 #ifndef	_DTRACE_H
 #define	_DTRACE_H
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <sys/dtrace.h>
 #include <stdarg.h>
 #include <stdio.h>
 #include <gelf.h>
 #include <libproc.h>
+#ifndef illumos
+#include <rtld_db.h>
+#endif
 
 #ifdef	__cplusplus
 extern "C" {
@@ -149,6 +155,7 @@ typedef struct dtrace_stmtdesc {
 	dtrace_actdesc_t *dtsd_action_last;	/* last action in action list */
 	void *dtsd_aggdata;			/* aggregation data */
 	void *dtsd_fmtdata;			/* type-specific output data */
+	void *dtsd_strdata;			/* type-specific string data */
 	void (*dtsd_callback)(void);		/* callback function for EPID */
 	void *dtsd_data;			/* callback data pointer */
 	dtrace_attribute_t dtsd_descattr;	/* probedesc attributes */
@@ -241,6 +248,18 @@ extern int dtrace_freopen(dtrace_hdl_t *, FILE *, void *,
     const void *, size_t);
 
 /*
+ * Type-specific output printing
+ *
+ * The print() action will associate a string data record that is actually the
+ * fully-qualified type name of the data traced by the DIFEXPR action.  This is
+ * stored in the same 'format' record from the kernel, but we know by virtue of
+ * the fact that the action is still DIFEXPR that it is actually a reference to
+ * plain string data.
+ */
+extern int dtrace_print(dtrace_hdl_t *, FILE *, const char *,
+    caddr_t, size_t);
+
+/*
  * DTrace Work Interface
  */
 typedef enum {
@@ -338,6 +357,12 @@ extern int dtrace_handle_setopt(dtrace_hdl_t *,
 #define	DTRACE_A_PERCPU		0x0001
 #define	DTRACE_A_KEEPDELTA	0x0002
 #define	DTRACE_A_ANONYMOUS	0x0004
+#define	DTRACE_A_TOTAL		0x0008
+#define	DTRACE_A_MINMAXBIN	0x0010
+#define	DTRACE_A_HASNEGATIVES	0x0020
+#define	DTRACE_A_HASPOSITIVES	0x0040
+
+#define	DTRACE_AGGZOOM_MAX		0.95	/* height of max bar */
 
 #define	DTRACE_AGGWALK_ERROR		-1	/* error while processing */
 #define	DTRACE_AGGWALK_NEXT		0	/* proceed to next element */
@@ -358,6 +383,10 @@ struct dtrace_aggdata {
 	caddr_t dtada_delta;			/* delta data, if available */
 	caddr_t *dtada_percpu;			/* per CPU data, if avail */
 	caddr_t *dtada_percpu_delta;		/* per CPU delta, if avail */
+	int64_t dtada_total;			/* per agg total, if avail */
+	uint16_t dtada_minbin;			/* minimum bin, if avail */
+	uint16_t dtada_maxbin;			/* maximum bin, if avail */
+	uint32_t dtada_flags;			/* flags */
 };
 
 typedef int dtrace_aggregate_f(const dtrace_aggdata_t *, void *);
@@ -477,8 +506,11 @@ typedef struct dtrace_typeinfo {
 	const char *dtt_object;			/* object containing type */
 	ctf_file_t *dtt_ctfp;			/* CTF container handle */
 	ctf_id_t dtt_type;			/* CTF type identifier */
+	uint_t dtt_flags;			/* Misc. flags */
 } dtrace_typeinfo_t;
 
+#define	DTT_FL_USER	0x1			/* user type */
+
 extern int dtrace_lookup_by_type(dtrace_hdl_t *, const char *, const char *,
     dtrace_typeinfo_t *);
 
@@ -522,7 +554,7 @@ extern int dtrace_probe_info(dtrace_hdl_t *,
  * entry point to obtain a library handle.
  */
 struct dtrace_vector {
-#if defined(sun)
+#ifdef illumos
 	int (*dtv_ioctl)(void *, int, void *);
 #else
 	int (*dtv_ioctl)(void *, u_long, void *);
@@ -573,7 +605,7 @@ extern int _dtrace_debug;
 }
 #endif
 
-#if !defined(sun)
+#ifndef illumos
 #define _SC_CPUID_MAX		_SC_NPROCESSORS_CONF
 #define _SC_NPROCESSORS_MAX	_SC_NPROCESSORS_CONF
 #endif
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/mkerrtags.sh b/external/cddl/osnet/dist/lib/libdtrace/common/mkerrtags.sh
index c7e8446..3c2cd88 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/mkerrtags.sh
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/mkerrtags.sh
@@ -26,10 +26,9 @@
 #
 #ident	"%Z%%M%	%I%	%E% SMI"
 
-if [ $(uname) = "Darwin" ]; then
-    BSDECHO=
-else
-    BSDECHO=-e
+
+if [ "x$(echo -e)" != "x-e" ]; then
+	BSDECHO=-e
 fi
 
 echo ${BSDECHO} "\
diff --git a/external/cddl/osnet/dist/lib/libdtrace/common/mknames.sh b/external/cddl/osnet/dist/lib/libdtrace/common/mknames.sh
index 18b15a5..652df98 100644
--- a/external/cddl/osnet/dist/lib/libdtrace/common/mknames.sh
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/mknames.sh
@@ -26,10 +26,8 @@
 #
 #ident	"%Z%%M%	%I%	%E% SMI"
 
-if [ $(uname) = "Darwin" ]; then
-    BSDECHO=
-else
-    BSDECHO=-e
+if [ "x$(echo -e)" != "x-e" ]; then
+	BSDECHO=-e
 fi
 
 echo ${BSDECHO} "\
@@ -48,7 +46,7 @@ dtrace_subrstr(dtrace_hdl_t *dtp, int subr)\n\
 {\n\
 	switch (subr) {"
 
-awk '
+nawk '
 /^#define[ 	]*DIF_SUBR_/ && $2 != "DIF_SUBR_MAX" {
 	printf("\tcase %s: return (\"%s\");\n", $2, tolower(substr($2, 10)));
 }'
diff --git a/external/cddl/osnet/dist/lib/libdtrace/i386/dt_isadep.c b/external/cddl/osnet/dist/lib/libdtrace/i386/dt_isadep.c
new file mode 100644
index 0000000..0a7cc88
--- /dev/null
+++ b/external/cddl/osnet/dist/lib/libdtrace/i386/dt_isadep.c
@@ -0,0 +1,543 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
+
+#include <stdlib.h>
+#include <assert.h>
+#include <errno.h>
+#include <string.h>
+#include <libgen.h>
+#include <sys/ioctl.h>
+
+#include <dt_impl.h>
+#include <dt_pid.h>
+
+#include <dis_tables.h>
+
+#ifndef illumos
+#define PR_MODEL_ILP32	1
+#define PR_MODEL_LP64	2
+#include <libproc_compat.h>
+#endif
+
+#define	DT_POPL_EBP	0x5d
+#define	DT_RET		0xc3
+#define	DT_RET16	0xc2
+#define	DT_LEAVE	0xc9
+#define	DT_JMP32	0xe9
+#define	DT_JMP8		0xeb
+#define	DT_REP		0xf3
+
+#define	DT_MOVL_EBP_ESP	0xe58b
+
+#define	DT_ISJ32(op16)	(((op16) & 0xfff0) == 0x0f80)
+#define	DT_ISJ8(op8)	(((op8) & 0xf0) == 0x70)
+
+#define	DT_MODRM_REG(modrm)	(((modrm) >> 3) & 0x7)
+
+static int dt_instr_size(uchar_t *, dtrace_hdl_t *, pid_t, uintptr_t, char);
+
+/*ARGSUSED*/
+int
+dt_pid_create_entry_probe(struct ps_prochandle *P, dtrace_hdl_t *dtp,
+    fasttrap_probe_spec_t *ftp, const GElf_Sym *symp)
+{
+	ftp->ftps_type = DTFTP_ENTRY;
+	ftp->ftps_pc = (uintptr_t)symp->st_value;
+	ftp->ftps_size = (size_t)symp->st_size;
+	ftp->ftps_noffs = 1;
+	ftp->ftps_offs[0] = 0;
+
+	if (ioctl(dtp->dt_ftfd, FASTTRAPIOC_MAKEPROBE, ftp) != 0) {
+		dt_dprintf("fasttrap probe creation ioctl failed: %s\n",
+		    strerror(errno));
+		return (dt_set_errno(dtp, errno));
+	}
+
+	return (1);
+}
+
+static int
+dt_pid_has_jump_table(struct ps_prochandle *P, dtrace_hdl_t *dtp,
+    uint8_t *text, fasttrap_probe_spec_t *ftp, const GElf_Sym *symp)
+{
+	ulong_t i;
+	int size;
+#ifdef illumos
+	pid_t pid = Pstatus(P)->pr_pid;
+	char dmodel = Pstatus(P)->pr_dmodel;
+#else
+	pid_t pid = proc_getpid(P);
+#if __i386__
+	char dmodel = PR_MODEL_ILP32;
+#elif __amd64__
+	char dmodel = PR_MODEL_LP64;
+#endif
+#endif
+
+	/*
+	 * Take a pass through the function looking for a register-dependant
+	 * jmp instruction. This could be a jump table so we have to be
+	 * ultra conservative.
+	 */
+	for (i = 0; i < ftp->ftps_size; i += size) {
+		size = dt_instr_size(&text[i], dtp, pid, symp->st_value + i,
+		    dmodel);
+
+		/*
+		 * Assume the worst if we hit an illegal instruction.
+		 */
+		if (size <= 0) {
+			dt_dprintf("error at %#lx (assuming jump table)\n", i);
+			return (1);
+		}
+
+#ifdef notyet
+		/*
+		 * Register-dependant jmp instructions start with a 0xff byte
+		 * and have the modrm.reg field set to 4. They can have an
+		 * optional REX prefix on the 64-bit ISA.
+		 */
+		if ((text[i] == 0xff && DT_MODRM_REG(text[i + 1]) == 4) ||
+		    (dmodel == PR_MODEL_LP64 && (text[i] & 0xf0) == 0x40 &&
+		    text[i + 1] == 0xff && DT_MODRM_REG(text[i + 2]) == 4)) {
+			dt_dprintf("found a suspected jump table at %s:%lx\n",
+			    ftp->ftps_func, i);
+			return (1);
+		}
+#endif
+	}
+
+	return (0);
+}
+
+/*ARGSUSED*/
+int
+dt_pid_create_return_probe(struct ps_prochandle *P, dtrace_hdl_t *dtp,
+    fasttrap_probe_spec_t *ftp, const GElf_Sym *symp, uint64_t *stret)
+{
+	uint8_t *text;
+	ulong_t i, end;
+	int size;
+#ifdef illumos
+	pid_t pid = Pstatus(P)->pr_pid;
+	char dmodel = Pstatus(P)->pr_dmodel;
+#else
+	pid_t pid = proc_getpid(P);
+#if __i386__
+	char dmodel = PR_MODEL_ILP32;
+#elif __amd64__
+	char dmodel = PR_MODEL_LP64;
+#endif
+#endif
+
+	/*
+	 * We allocate a few extra bytes at the end so we don't have to check
+	 * for overrunning the buffer.
+	 */
+	if ((text = calloc(1, symp->st_size + 4)) == NULL) {
+		dt_dprintf("mr sparkle: malloc() failed\n");
+		return (DT_PROC_ERR);
+	}
+
+	if (Pread(P, text, symp->st_size, symp->st_value) != symp->st_size) {
+		dt_dprintf("mr sparkle: Pread() failed\n");
+		free(text);
+		return (DT_PROC_ERR);
+	}
+
+	ftp->ftps_type = DTFTP_RETURN;
+	ftp->ftps_pc = (uintptr_t)symp->st_value;
+	ftp->ftps_size = (size_t)symp->st_size;
+	ftp->ftps_noffs = 0;
+
+	/*
+	 * If there's a jump table in the function we're only willing to
+	 * instrument these specific (and equivalent) instruction sequences:
+	 *	leave
+	 *	[rep] ret
+	 * and
+	 *	movl	%ebp,%esp
+	 *	popl	%ebp
+	 *	[rep] ret
+	 *
+	 * We do this to avoid accidentally interpreting jump table
+	 * offsets as actual instructions.
+	 */
+	if (dt_pid_has_jump_table(P, dtp, text, ftp, symp)) {
+		for (i = 0, end = ftp->ftps_size; i < end; i += size) {
+			size = dt_instr_size(&text[i], dtp, pid,
+			    symp->st_value + i, dmodel);
+
+			/* bail if we hit an invalid opcode */
+			if (size <= 0)
+				break;
+
+			if (text[i] == DT_LEAVE && text[i + 1] == DT_RET) {
+				dt_dprintf("leave/ret at %lx\n", i + 1);
+				ftp->ftps_offs[ftp->ftps_noffs++] = i + 1;
+				size = 2;
+			} else if (text[i] == DT_LEAVE &&
+			    text[i + 1] == DT_REP && text[i + 2] == DT_RET) {
+				dt_dprintf("leave/rep ret at %lx\n", i + 1);
+				ftp->ftps_offs[ftp->ftps_noffs++] = i + 1;
+				size = 3;
+			} else if (*(uint16_t *)&text[i] == DT_MOVL_EBP_ESP &&
+			    text[i + 2] == DT_POPL_EBP &&
+			    text[i + 3] == DT_RET) {
+				dt_dprintf("movl/popl/ret at %lx\n", i + 3);
+				ftp->ftps_offs[ftp->ftps_noffs++] = i + 3;
+				size = 4;
+			} else if (*(uint16_t *)&text[i] == DT_MOVL_EBP_ESP &&
+			    text[i + 2] == DT_POPL_EBP &&
+			    text[i + 3] == DT_REP &&
+			    text[i + 4] == DT_RET) {
+				dt_dprintf("movl/popl/rep ret at %lx\n", i + 3);
+				ftp->ftps_offs[ftp->ftps_noffs++] = i + 3;
+				size = 5;
+			}
+		}
+	} else {
+		for (i = 0, end = ftp->ftps_size; i < end; i += size) {
+			size = dt_instr_size(&text[i], dtp, pid,
+			    symp->st_value + i, dmodel);
+
+			/* bail if we hit an invalid opcode */
+			if (size <= 0)
+				break;
+
+			/* ordinary ret */
+			if (size == 1 && text[i] == DT_RET)
+				goto is_ret;
+
+			/* two-byte ret */
+			if (size == 2 && text[i] == DT_REP &&
+			    text[i + 1] == DT_RET)
+				goto is_ret;
+
+			/* ret <imm16> */
+			if (size == 3 && text[i] == DT_RET16)
+				goto is_ret;
+
+			/* two-byte ret <imm16> */
+			if (size == 4 && text[i] == DT_REP &&
+			    text[i + 1] == DT_RET16)
+				goto is_ret;
+
+			/* 32-bit displacement jmp outside of the function */
+			if (size == 5 && text[i] == DT_JMP32 && symp->st_size <=
+			    (uintptr_t)(i + size + *(int32_t *)&text[i + 1]))
+				goto is_ret;
+
+			/* 8-bit displacement jmp outside of the function */
+			if (size == 2 && text[i] == DT_JMP8 && symp->st_size <=
+			    (uintptr_t)(i + size + *(int8_t *)&text[i + 1]))
+				goto is_ret;
+
+			/* 32-bit disp. conditional jmp outside of the func. */
+			if (size == 6 && DT_ISJ32(*(uint16_t *)&text[i]) &&
+			    symp->st_size <=
+			    (uintptr_t)(i + size + *(int32_t *)&text[i + 2]))
+				goto is_ret;
+
+			/* 8-bit disp. conditional jmp outside of the func. */
+			if (size == 2 && DT_ISJ8(text[i]) && symp->st_size <=
+			    (uintptr_t)(i + size + *(int8_t *)&text[i + 1]))
+				goto is_ret;
+
+			continue;
+is_ret:
+			dt_dprintf("return at offset %lx\n", i);
+			ftp->ftps_offs[ftp->ftps_noffs++] = i;
+		}
+	}
+
+	free(text);
+	if (ftp->ftps_noffs > 0) {
+		if (ioctl(dtp->dt_ftfd, FASTTRAPIOC_MAKEPROBE, ftp) != 0) {
+			dt_dprintf("fasttrap probe creation ioctl failed: %s\n",
+			    strerror(errno));
+			return (dt_set_errno(dtp, errno));
+		}
+	}
+
+	return (ftp->ftps_noffs);
+}
+
+/*ARGSUSED*/
+int
+dt_pid_create_offset_probe(struct ps_prochandle *P, dtrace_hdl_t *dtp,
+    fasttrap_probe_spec_t *ftp, const GElf_Sym *symp, ulong_t off)
+{
+	ftp->ftps_type = DTFTP_OFFSETS;
+	ftp->ftps_pc = (uintptr_t)symp->st_value;
+	ftp->ftps_size = (size_t)symp->st_size;
+	ftp->ftps_noffs = 1;
+
+	if (strcmp("-", ftp->ftps_func) == 0) {
+		ftp->ftps_offs[0] = off;
+	} else {
+		uint8_t *text;
+		ulong_t i;
+		int size;
+#ifdef illumos
+		pid_t pid = Pstatus(P)->pr_pid;
+		char dmodel = Pstatus(P)->pr_dmodel;
+#else
+		pid_t pid = proc_getpid(P);
+#if __i386__
+		char dmodel = PR_MODEL_ILP32;
+#elif __amd64__
+		char dmodel = PR_MODEL_LP64;
+#endif
+#endif
+
+		if ((text = malloc(symp->st_size)) == NULL) {
+			dt_dprintf("mr sparkle: malloc() failed\n");
+			return (DT_PROC_ERR);
+		}
+
+		if (Pread(P, text, symp->st_size, symp->st_value) !=
+		    symp->st_size) {
+			dt_dprintf("mr sparkle: Pread() failed\n");
+			free(text);
+			return (DT_PROC_ERR);
+		}
+
+		/*
+		 * We can't instrument offsets in functions with jump tables
+		 * as we might interpret a jump table offset as an
+		 * instruction.
+		 */
+		if (dt_pid_has_jump_table(P, dtp, text, ftp, symp)) {
+			free(text);
+			return (0);
+		}
+
+		for (i = 0; i < symp->st_size; i += size) {
+			if (i == off) {
+				ftp->ftps_offs[0] = i;
+				break;
+			}
+
+			/*
+			 * If we've passed the desired offset without a
+			 * match, then the given offset must not lie on a
+			 * instruction boundary.
+			 */
+			if (i > off) {
+				free(text);
+				return (DT_PROC_ALIGN);
+			}
+
+			size = dt_instr_size(&text[i], dtp, pid,
+			    symp->st_value + i, dmodel);
+
+			/*
+			 * If we hit an invalid instruction, bail as if we
+			 * couldn't find the offset.
+			 */
+			if (size <= 0) {
+				free(text);
+				return (DT_PROC_ALIGN);
+			}
+		}
+
+		free(text);
+	}
+
+	if (ioctl(dtp->dt_ftfd, FASTTRAPIOC_MAKEPROBE, ftp) != 0) {
+		dt_dprintf("fasttrap probe creation ioctl failed: %s\n",
+		    strerror(errno));
+		return (dt_set_errno(dtp, errno));
+	}
+
+	return (ftp->ftps_noffs);
+}
+
+/*ARGSUSED*/
+int
+dt_pid_create_glob_offset_probes(struct ps_prochandle *P, dtrace_hdl_t *dtp,
+    fasttrap_probe_spec_t *ftp, const GElf_Sym *symp, const char *pattern)
+{
+	uint8_t *text;
+	int size;
+	ulong_t i, end = symp->st_size;
+#ifdef illumos
+	pid_t pid = Pstatus(P)->pr_pid;
+	char dmodel = Pstatus(P)->pr_dmodel;
+#else
+	pid_t pid = proc_getpid(P);
+#if __i386__
+	char dmodel = PR_MODEL_ILP32;
+#elif __amd64__
+	char dmodel = PR_MODEL_LP64;
+#endif
+#endif
+
+	ftp->ftps_type = DTFTP_OFFSETS;
+	ftp->ftps_pc = (uintptr_t)symp->st_value;
+	ftp->ftps_size = (size_t)symp->st_size;
+	ftp->ftps_noffs = 0;
+
+	if ((text = malloc(symp->st_size)) == NULL) {
+		dt_dprintf("mr sparkle: malloc() failed\n");
+		return (DT_PROC_ERR);
+	}
+
+	if (Pread(P, text, symp->st_size, symp->st_value) != symp->st_size) {
+		dt_dprintf("mr sparkle: Pread() failed\n");
+		free(text);
+		return (DT_PROC_ERR);
+	}
+
+	/*
+	 * We can't instrument offsets in functions with jump tables as
+	 * we might interpret a jump table offset as an instruction.
+	 */
+	if (dt_pid_has_jump_table(P, dtp, text, ftp, symp)) {
+		free(text);
+		return (0);
+	}
+
+	if (strcmp("*", pattern) == 0) {
+		for (i = 0; i < end; i += size) {
+			ftp->ftps_offs[ftp->ftps_noffs++] = i;
+
+			size = dt_instr_size(&text[i], dtp, pid,
+			    symp->st_value + i, dmodel);
+
+			/* bail if we hit an invalid opcode */
+			if (size <= 0)
+				break;
+		}
+	} else {
+		char name[sizeof (i) * 2 + 1];
+
+		for (i = 0; i < end; i += size) {
+			(void) snprintf(name, sizeof (name), "%lx", i);
+			if (gmatch(name, pattern))
+				ftp->ftps_offs[ftp->ftps_noffs++] = i;
+
+			size = dt_instr_size(&text[i], dtp, pid,
+			    symp->st_value + i, dmodel);
+
+			/* bail if we hit an invalid opcode */
+			if (size <= 0)
+				break;
+		}
+	}
+
+	free(text);
+	if (ftp->ftps_noffs > 0) {
+		if (ioctl(dtp->dt_ftfd, FASTTRAPIOC_MAKEPROBE, ftp) != 0) {
+			dt_dprintf("fasttrap probe creation ioctl failed: %s\n",
+			    strerror(errno));
+			return (dt_set_errno(dtp, errno));
+		}
+	}
+
+	return (ftp->ftps_noffs);
+}
+
+typedef struct dtrace_dis {
+	uchar_t	*instr;
+	dtrace_hdl_t *dtp;
+	pid_t pid;
+	uintptr_t addr;
+} dtrace_dis_t;
+
+static int
+dt_getbyte(void *data)
+{
+	dtrace_dis_t	*dis = data;
+	int ret = *dis->instr;
+
+	if (ret == FASTTRAP_INSTR) {
+		fasttrap_instr_query_t instr;
+
+		instr.ftiq_pid = dis->pid;
+		instr.ftiq_pc = dis->addr;
+
+		/*
+		 * If we hit a byte that looks like the fasttrap provider's
+		 * trap instruction (which doubles as the breakpoint
+		 * instruction for debuggers) we need to query the kernel
+		 * for the real value. This may just be part of an immediate
+		 * value so there's no need to return an error if the
+		 * kernel doesn't know about this address.
+		 */
+		if (ioctl(dis->dtp->dt_ftfd, FASTTRAPIOC_GETINSTR, &instr) == 0)
+			ret = instr.ftiq_instr;
+	}
+
+	dis->addr++;
+	dis->instr++;
+
+	return (ret);
+}
+
+static int
+dt_instr_size(uchar_t *instr, dtrace_hdl_t *dtp, pid_t pid, uintptr_t addr,
+    char dmodel)
+{
+	dtrace_dis_t data;
+	dis86_t x86dis;
+	uint_t cpu_mode;
+
+	data.instr = instr;
+	data.dtp = dtp;
+	data.pid = pid;
+	data.addr = addr;
+
+	x86dis.d86_data = &data;
+	x86dis.d86_get_byte = dt_getbyte;
+	x86dis.d86_check_func = NULL;
+
+	cpu_mode = (dmodel == PR_MODEL_ILP32) ? SIZE32 : SIZE64;
+
+#ifdef notyet
+	// XXX: does not compile!
+	if (dtrace_disx86(&x86dis, cpu_mode) != 0)
+		return (-1);
+#else
+	__USE(cpu_mode);
+#endif
+
+	/*
+	 * If the instruction was a single-byte breakpoint, there may be
+	 * another debugger attached to this process. The original instruction
+	 * can't be recovered so this must fail.
+	 */
+	if (x86dis.d86_len == 1 &&
+	    (uchar_t)x86dis.d86_bytes[0] == FASTTRAP_INSTR)
+		return (-1);
+
+	return (x86dis.d86_len);
+}
diff --git a/external/cddl/osnet/dist/lib/libgen/common/gmatch.c b/external/cddl/osnet/dist/lib/libgen/common/gmatch.c
index 1fa51c7..5bcf46d 100644
--- a/external/cddl/osnet/dist/lib/libgen/common/gmatch.c
+++ b/external/cddl/osnet/dist/lib/libgen/common/gmatch.c
@@ -63,6 +63,7 @@
 		return (0); \
 	p += n;
 
+int gmatch(const char *, const char *);
 int
 gmatch(const char *s, const char *p)
 {
diff --git a/external/cddl/osnet/dist/tools/ctf/cvt/ctf.c b/external/cddl/osnet/dist/tools/ctf/cvt/ctf.c
index 8af80dd..cdbec54 100644
--- a/external/cddl/osnet/dist/tools/ctf/cvt/ctf.c
+++ b/external/cddl/osnet/dist/tools/ctf/cvt/ctf.c
@@ -81,7 +81,7 @@ struct ctf_buf {
 static int target_requires_swap;
 
 /*PRINTFLIKE1*/
-static void
+static void __printflike(1, 2)
 parseterminate(const char *fmt, ...)
 {
 	static char msgbuf[1024]; /* sigh */
@@ -496,7 +496,7 @@ write_type(void *arg1, void *arg2)
 
 		if (i > CTF_MAX_VLEN) {
 			terminate("function %s has too many args: %d > %d\n",
-			    i, CTF_MAX_VLEN);
+			    tdesc_name(tp), i, CTF_MAX_VLEN);
 		}
 
 		ctt.ctt_info = CTF_TYPE_INFO(CTF_K_FUNCTION, isroot, i);
@@ -825,8 +825,9 @@ count_types(ctf_header_t *h, caddr_t data)
 		case CTF_K_UNKNOWN:
 			break;
 		default:
-			parseterminate("Unknown CTF type %d (#%d) at %#x",
-			    CTF_INFO_KIND(ctt->ctt_info), count, dptr - data);
+			parseterminate("Unknown CTF type %d (#%d) at %#jx",
+			    CTF_INFO_KIND(ctt->ctt_info), count,
+			    (intmax_t)(dptr - data));
 		}
 
 		dptr += increment;
@@ -913,8 +914,8 @@ resurrect_objects(ctf_header_t *h, tdata_t *td, tdesc_t **tdarr, int tdsize,
 
 		if (!(sym = symit_next(si, STT_OBJECT)) && id != 0) {
 			parseterminate(
-			    "Unexpected end of object symbols at %x of %x",
-			    dptr - buf, bufsz);
+			    "Unexpected end of object symbols at %ju of %zu",
+			    (intmax_t)(dptr - buf), bufsz);
 		}
 
 		if (id == 0) {
@@ -1336,8 +1337,9 @@ decompress_ctf(caddr_t cbuf, size_t cbufsz, caddr_t dbuf, size_t dbufsz)
 		return (0);
 	}
 
-	debug(3, "reflated %lu bytes to %lu, pointer at %d\n",
-	    zstr.total_in, zstr.total_out, (caddr_t)zstr.next_in - cbuf);
+	debug(3, "reflated %lu bytes to %lu, pointer at 0x%jx\n",
+	    zstr.total_in, zstr.total_out,
+	    (intmax_t)((caddr_t)zstr.next_in - cbuf));
 
 	return (zstr.total_out);
 }
@@ -1381,7 +1383,7 @@ ctf_load(char *file, caddr_t buf, size_t bufsz, symit_data_t *si, char *label)
 		if ((actual = decompress_ctf(buf, bufsz, ctfdata, ctfdatasz)) !=
 		    ctfdatasz) {
 			parseterminate("Corrupt CTF - short decompression "
-			    "(was %d, expecting %d)", actual, ctfdatasz);
+			    "(was %zu, expecting %zu)", actual, ctfdatasz);
 		}
 	} else {
 		ctfdata = buf;
diff --git a/external/cddl/osnet/dist/tools/ctf/cvt/ctfmerge.c b/external/cddl/osnet/dist/tools/ctf/cvt/ctfmerge.c
index 5bc5497..865cb68 100644
--- a/external/cddl/osnet/dist/tools/ctf/cvt/ctfmerge.c
+++ b/external/cddl/osnet/dist/tools/ctf/cvt/ctfmerge.c
@@ -214,7 +214,12 @@
 #pragma init(bigheap)
 
 #define	MERGE_PHASE1_BATCH_SIZE		8
+#if 0
+// XXX: bug?
 #define	MERGE_PHASE1_MAX_SLOTS		5
+#else
+#define	MERGE_PHASE1_MAX_SLOTS		1
+#endif
 #define	MERGE_INPUT_THROTTLE_LEN	10
 
 const char *progname;
@@ -222,11 +227,13 @@ static char *outfile = NULL;
 static char *tmpname = NULL;
 static int dynsym;
 int debug_level = DEBUG_LEVEL;
+#if 0
 static size_t maxpgsize = 0x400000;
+#endif
 static int maxslots = MERGE_PHASE1_MAX_SLOTS;
 
 
-void
+static void
 usage(void)
 {
 	(void) fprintf(stderr,
@@ -397,7 +404,8 @@ wip_add_work(wip_t *slot, tdata_t *pow)
 		slot->wip_td = pow;
 		slot->wip_nmerged = 1;
 	} else {
-		debug(2, "%d: merging %p into %p\n", pthread_self(),
+		debug(2, "0x%jx: merging %p into %p\n",
+		    (uintmax_t)(uintptr_t)pthread_self(),
 		    (void *)pow, (void *)slot->wip_td);
 
 		merge_into_master(pow, slot->wip_td, NULL, 0);
@@ -467,8 +475,8 @@ worker_runphase2(workqueue_t *wq)
 			pthread_cond_broadcast(&wq->wq_work_avail);
 			pthread_mutex_unlock(&wq->wq_queue_lock);
 
-			debug(2, "%d: entering p2 completion barrier\n",
-			    pthread_self());
+			debug(2, "0x%jx: entering p2 completion barrier\n",
+			    (uintmax_t)(uintptr_t)pthread_self());
 			if (barrier_wait(&wq->wq_bar1)) {
 				pthread_mutex_lock(&wq->wq_queue_lock);
 				wq->wq_alldone = 1;
@@ -495,7 +503,8 @@ worker_runphase2(workqueue_t *wq)
 
 		pthread_mutex_unlock(&wq->wq_queue_lock);
 
-		debug(2, "%d: merging %p into %p\n", pthread_self(),
+		debug(2, "0x%jx: merging %p into %p\n",
+		    (uintmax_t)(uintptr_t)pthread_self(),
 		    (void *)pow1, (void *)pow2);
 		merge_into_master(pow1, pow2, NULL, 0);
 		tdata_free(pow1);
@@ -513,9 +522,9 @@ worker_runphase2(workqueue_t *wq)
 		wq->wq_lastdonebatch = batchid;
 
 		fifo_add(wq->wq_queue, pow2);
-		debug(2, "%d: added %p to queue, len now %d, ninqueue %d\n",
-		    pthread_self(), (void *)pow2, fifo_len(wq->wq_queue),
-		    wq->wq_ninqueue);
+		debug(2, "0x%jx: added %p to queue, len now %d, ninqueue %d\n",
+		    (uintmax_t)(uintptr_t)pthread_self(), (void *)pow2,
+		    fifo_len(wq->wq_queue), wq->wq_ninqueue);
 		pthread_cond_broadcast(&wq->wq_done_cv);
 		pthread_cond_signal(&wq->wq_work_avail);
 		pthread_mutex_unlock(&wq->wq_queue_lock);
@@ -530,25 +539,30 @@ worker_thread(workqueue_t *wq)
 {
 	worker_runphase1(wq);
 
-	debug(2, "%d: entering first barrier\n", pthread_self());
+	debug(2, "0x%jx: entering first barrier\n",
+	    (uintmax_t)(uintptr_t)pthread_self());
 
 	if (barrier_wait(&wq->wq_bar1)) {
 
-		debug(2, "%d: doing work in first barrier\n", pthread_self());
+		debug(2, "0x%jx: doing work in first barrier\n",
+		    (uintmax_t)(uintptr_t)pthread_self());
 
 		finalize_phase_one(wq);
 
 		init_phase_two(wq);
 
-		debug(2, "%d: ninqueue is %d, %d on queue\n", pthread_self(),
+		debug(2, "0x%jx: ninqueue is %d, %d on queue\n",
+		    (uintmax_t)(uintptr_t)pthread_self(),
 		    wq->wq_ninqueue, fifo_len(wq->wq_queue));
 	}
 
-	debug(2, "%d: entering second barrier\n", pthread_self());
+	debug(2, "0x%jx: entering second barrier\n",
+	    (uintmax_t)(uintptr_t)pthread_self());
 
 	(void) barrier_wait(&wq->wq_bar2);
 
-	debug(2, "%d: phase 1 complete\n", pthread_self());
+	debug(2, "0x%jx: phase 1 complete\n",
+	    (uintmax_t)(uintptr_t)pthread_self());
 
 	worker_runphase2(wq);
 }
@@ -572,7 +586,8 @@ merge_ctf_cb(tdata_t *td, char *name, void *arg)
 	}
 
 	fifo_add(wq->wq_queue, td);
-	debug(1, "Thread %d announcing %s\n", pthread_self(), name);
+	debug(1, "Thread 0x%jx announcing %s\n",
+	    (uintmax_t)(uintptr_t)pthread_self(), name);
 	pthread_cond_broadcast(&wq->wq_work_avail);
 	pthread_mutex_unlock(&wq->wq_queue_lock);
 
@@ -748,8 +763,8 @@ join_threads(workqueue_t *wq)
 static int
 strcompare(const void *p1, const void *p2)
 {
-	char *s1 = *((char **)p1);
-	char *s2 = *((char **)p2);
+	const char *s1 = *((const char * const *)p1);
+	const char *s2 = *((const char * const *)p2);
 
 	return (strcmp(s1, s2));
 }
@@ -810,7 +825,7 @@ main(int argc, char **argv)
 		case 'L':
 			/* Label merged types with getenv(`label`) */
 			if ((label = getenv(optarg)) == NULL)
-				label = CTF_DEFAULT_LABEL;
+				label = __UNCONST(CTF_DEFAULT_LABEL);
 			break;
 		case 'o':
 			/* Place merged types in CTF section in `outfile' */
@@ -901,7 +916,7 @@ main(int argc, char **argv)
 
 	for (i = 0; i < nifiles; i++)
 		tifiles[i] = argv[optind + i];
-	qsort(tifiles, nifiles, sizeof (char *), (int (*)())strcompare);
+	qsort(tifiles, nifiles, sizeof (char *), strcompare);
 
 	ifiles[0] = tifiles[0];
 	for (idx = 0, tidx = 1; tidx < nifiles; tidx++) {
diff --git a/external/cddl/osnet/dist/tools/ctf/cvt/ctftools.h b/external/cddl/osnet/dist/tools/ctf/cvt/ctftools.h
index 8c38037..c4fcb18 100644
--- a/external/cddl/osnet/dist/tools/ctf/cvt/ctftools.h
+++ b/external/cddl/osnet/dist/tools/ctf/cvt/ctftools.h
@@ -439,13 +439,13 @@ int streq(const char *, const char *);
 int findelfsecidx(Elf *, const char *, const char *);
 size_t elf_ptrsz(Elf *);
 char *mktmpname(const char *, const char *);
-void terminate(const char *, ...);
-void aborterr(const char *, ...);
+void terminate(const char *, ...) __printflike(1, 2) __dead;
+void aborterr(const char *, ...) __printflike(1, 2);
 void set_terminate_cleanup(void (*)(void));
-void elfterminate(const char *, const char *, ...);
-void warning(const char *, ...);
+void elfterminate(const char *, const char *, ...) __printflike(2, 3);
+void warning(const char *, ...) __printflike(1, 2);
 void vadebug(int, const char *, va_list);
-void debug(int, const char *, ...);
+void debug(int, const char *, ...) __printflike(2, 3);
 
 
 void watch_dump(int);
diff --git a/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c b/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c
index ce65ed7..87a3e5f 100644
--- a/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c
+++ b/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c
@@ -289,8 +289,8 @@ die_sibling(dwarf_t *dw, Dwarf_Die die)
 	else if (rc == DW_DLV_NO_ENTRY)
 		return (NULL);
 
-	terminate("die %llu: failed to find type sibling: %s\n",
-	    die_off(dw, die), dwarf_errmsg(dw->dw_err));
+	terminate("die %ju: failed to find type sibling: %s\n",
+	    (uintmax_t)die_off(dw, die), dwarf_errmsg(dw->dw_err));
 	/*NOTREACHED*/
 	return (NULL);
 }
@@ -306,8 +306,8 @@ die_child(dwarf_t *dw, Dwarf_Die die)
 	else if (rc == DW_DLV_NO_ENTRY)
 		return (NULL);
 
-	terminate("die %llu: failed to find type child: %s\n",
-	    die_off(dw, die), dwarf_errmsg(dw->dw_err));
+	terminate("die %ju: failed to find type child: %s\n",
+	    (uintmax_t)die_off(dw, die), dwarf_errmsg(dw->dw_err));
 	/*NOTREACHED*/
 	return (NULL);
 }
@@ -320,8 +320,8 @@ die_tag(dwarf_t *dw, Dwarf_Die die)
 	if (dwarf_tag(die, &tag, &dw->dw_err) == DW_DLV_OK)
 		return (tag);
 
-	terminate("die %llu: failed to get tag for type: %s\n",
-	    die_off(dw, die), dwarf_errmsg(dw->dw_err));
+	terminate("die %ju: failed to get tag for type: %s\n",
+	    (uintmax_t)die_off(dw, die), dwarf_errmsg(dw->dw_err));
 	/*NOTREACHED*/
 	return (0);
 }
@@ -336,15 +336,16 @@ die_attr(dwarf_t *dw, Dwarf_Die die, Dwarf_Half name, int req)
 		return (attr);
 	} else if (rc == DW_DLV_NO_ENTRY) {
 		if (req) {
-			terminate("die %llu: no attr 0x%x\n", die_off(dw, die),
+			terminate("die %ju: no attr 0x%x\n",
+			    (uintmax_t)die_off(dw, die),
 			    name);
 		} else {
 			return (NULL);
 		}
 	}
 
-	terminate("die %llu: failed to get attribute for type: %s\n",
-	    die_off(dw, die), dwarf_errmsg(dw->dw_err));
+	terminate("die %ju: failed to get attribute for type: %s\n",
+	    (uintmax_t)die_off(dw, die), dwarf_errmsg(dw->dw_err));
 	/*NOTREACHED*/
 	return (NULL);
 }
@@ -356,8 +357,9 @@ die_signed(dwarf_t *dw, Dwarf_Die die, Dwarf_Half name, Dwarf_Signed *valp,
 	*valp = 0;
 	if (dwarf_attrval_signed(die, name, valp, &dw->dw_err) != DW_DLV_OK) {
 		if (req) 
-			terminate("die %llu: failed to get signed: %s\n",
-			    die_off(dw, die), dwarf_errmsg(dw->dw_err));
+			terminate("die %ju: failed to get signed: %s\n",
+			    (uintmax_t)die_off(dw, die),
+			    dwarf_errmsg(dw->dw_err));
 		return (0);
 	}
 
@@ -371,8 +373,9 @@ die_unsigned(dwarf_t *dw, Dwarf_Die die, Dwarf_Half name, Dwarf_Unsigned *valp,
 	*valp = 0;
 	if (dwarf_attrval_unsigned(die, name, valp, &dw->dw_err) != DW_DLV_OK) {
 		if (req) 
-			terminate("die %llu: failed to get unsigned: %s\n",
-			    die_off(dw, die), dwarf_errmsg(dw->dw_err));
+			terminate("die %ju: failed to get unsigned: %s\n",
+			    (uintmax_t)die_off(dw, die),
+			    dwarf_errmsg(dw->dw_err));
 		return (0);
 	}
 
@@ -386,8 +389,9 @@ die_bool(dwarf_t *dw, Dwarf_Die die, Dwarf_Half name, Dwarf_Bool *valp, int req)
 
 	if (dwarf_attrval_flag(die, name, valp, &dw->dw_err) != DW_DLV_OK) {
 		if (req) 
-			terminate("die %llu: failed to get flag: %s\n",
-			    die_off(dw, die), dwarf_errmsg(dw->dw_err));
+			terminate("die %ju: failed to get flag: %s\n",
+			    (uintmax_t)die_off(dw, die),
+			    dwarf_errmsg(dw->dw_err));
 		return (0);
 	}
 
@@ -402,8 +406,9 @@ die_string(dwarf_t *dw, Dwarf_Die die, Dwarf_Half name, char **strp, int req)
 	if (dwarf_attrval_string(die, name, &str, &dw->dw_err) != DW_DLV_OK ||
 	    str == NULL) {
 		if (req) 
-			terminate("die %llu: failed to get string: %s\n",
-			    die_off(dw, die), dwarf_errmsg(dw->dw_err));
+			terminate("die %ju: failed to get string: %s\n",
+			    (uintmax_t)die_off(dw, die),
+			    dwarf_errmsg(dw->dw_err));
 		else
 			*strp = NULL;
 		return (0);
@@ -416,11 +421,11 @@ die_string(dwarf_t *dw, Dwarf_Die die, Dwarf_Half name, char **strp, int req)
 static Dwarf_Off
 die_attr_ref(dwarf_t *dw, Dwarf_Die die, Dwarf_Half name)
 {
-	Dwarf_Off off;
+	Dwarf_Unsigned off;
 
 	if (dwarf_attrval_unsigned(die, name, &off, &dw->dw_err) != DW_DLV_OK) {
-		terminate("die %llu: failed to get ref: %s\n",
-		    die_off(dw, die), dwarf_errmsg(dw->dw_err));
+		terminate("die %ju: failed to get ref: %s\n",
+		    (uintmax_t)die_off(dw, die), dwarf_errmsg(dw->dw_err));
 	}
 
 	return (off);
@@ -496,8 +501,9 @@ die_mem_offset(dwarf_t *dw, Dwarf_Die die, Dwarf_Half name,
 	Dwarf_Half form;
 
 	if (name != DW_AT_data_member_location)
-		terminate("die %llu: can only process attribute "
-		    "DW_AT_data_member_location\n", die_off(dw, die));
+		terminate("die %ju: can only process attribute "
+		    "DW_AT_data_member_location\n",
+		    (uintmax_t)die_off(dw, die));
 
 	if ((at = die_attr(dw, die, name, 0)) == NULL)
 		return (0);
@@ -520,9 +526,9 @@ die_mem_offset(dwarf_t *dw, Dwarf_Die die, Dwarf_Half name,
 		if (dwarf_loclist(at, &loc, &locnum, &dw->dw_err) != DW_DLV_OK)
 			return (0);
 		if (locnum != 1 || loc->ld_s->lr_atom != DW_OP_plus_uconst) {
-			terminate("die %llu: cannot parse member offset with "
+			terminate("die %ju: cannot parse member offset with "
 			    "operator other than DW_OP_plus_uconst\n",
-			    die_off(dw, die));
+			    (uintmax_t)die_off(dw, die));
 		}
 		*valp = loc->ld_s->lr_number;
 		if (loc != NULL) {
@@ -556,8 +562,8 @@ die_mem_offset(dwarf_t *dw, Dwarf_Die die, Dwarf_Half name,
 		break;
 
 	default:
-		terminate("die %llu: cannot parse member offset with form "
-		    "%u\n", die_off(dw, die), form);
+		terminate("die %ju: cannot parse member offset with form "
+		    "%u\n", (uintmax_t)die_off(dw, die), form);
 	}
 
 	return (1);
@@ -661,12 +667,12 @@ tdesc_array_create(dwarf_t *dw, Dwarf_Die dim, tdesc_t *arrtdp,
 	} else if (die_tag(dw, dim2) == DW_TAG_subrange_type) {
 		ctdp = xcalloc(sizeof (tdesc_t));
 		ctdp->t_id = mfgtid_next(dw);
-		debug(3, "die %llu: creating new type %u for sub-dimension\n",
-		    die_off(dw, dim2), ctdp->t_id);
+		debug(3, "die %ju: creating new type %u for sub-dimension\n",
+		    (uintmax_t)die_off(dw, dim2), ctdp->t_id);
 		tdesc_array_create(dw, dim2, arrtdp, ctdp);
 	} else {
-		terminate("die %llu: unexpected non-subrange node in array\n",
-		    die_off(dw, dim2));
+		terminate("die %ju: unexpected non-subrange node in array\n",
+		    (uintmax_t)die_off(dw, dim2));
 	}
 
 	dimtdp->t_type = ARRAY;
@@ -715,11 +721,13 @@ die_array_create(dwarf_t *dw, Dwarf_Die arr, Dwarf_Off off, tdesc_t *tdp)
 	Dwarf_Unsigned uval;
 	Dwarf_Die dim;
 
-	debug(3, "die %llu <%llx>: creating array\n", off, off);
+	debug(3, "die %ju <%jx>: creating array\n",
+	    (uintmax_t)off, (uintmax_t)off);
 
 	if ((dim = die_child(dw, arr)) == NULL ||
 	    die_tag(dw, dim) != DW_TAG_subrange_type)
-		terminate("die %llu: failed to retrieve array bounds\n", off);
+		terminate("die %ju: failed to retrieve array bounds\n",
+		    (uintmax_t)off);
 
 	tdesc_array_create(dw, dim, arrtdp, tdp);
 
@@ -753,8 +761,8 @@ die_array_create(dwarf_t *dw, Dwarf_Die arr, Dwarf_Off off, tdesc_t *tdp)
 		tdp->t_flags |= flags;
 	}
 
-	debug(3, "die %llu <%llx>: array nelems %u size %u\n", off, off,
-	    tdp->t_ardef->ad_nelems, tdp->t_size);
+	debug(3, "die %ju <%jx>: array nelems %u size %u\n", (uintmax_t)off,
+	    (uintmax_t)off, tdp->t_ardef->ad_nelems, tdp->t_size);
 }
 
 /*ARGSUSED1*/
@@ -815,7 +823,7 @@ die_enum_create(dwarf_t *dw, Dwarf_Die die, Dwarf_Off off, tdesc_t *tdp)
 	Dwarf_Unsigned uval;
 	Dwarf_Signed sval;
 
-	debug(3, "die %llu: creating enum\n", off);
+	debug(3, "die %ju: creating enum\n", (uintmax_t)off);
 
 	tdp->t_type = (die_isdecl(dw, die) ? FORWARD : ENUM);
 	if (tdp->t_type != ENUM)
@@ -851,12 +859,14 @@ die_enum_create(dwarf_t *dw, Dwarf_Die die, Dwarf_Off off, tdesc_t *tdp)
 			    &uval, 0)) {
 				el->el_number = uval;
 			} else {
-				terminate("die %llu: enum %llu: member without "
-				    "value\n", off, die_off(dw, mem));
+				terminate("die %ju: enum %ju: member without "
+				    "value\n", (uintmax_t)off,
+				    (uintmax_t)die_off(dw, mem));
 			}
 
-			debug(3, "die %llu: enum %llu: created %s = %d\n", off,
-			    die_off(dw, mem), el->el_name, el->el_number);
+			debug(3, "die %ju: enum %ju: created %s = %d\n",
+			    (uintmax_t)off, (uintmax_t)die_off(dw, mem),
+			    el->el_name, el->el_number);
 
 			*elastp = el;
 			elastp = &el->el_next;
@@ -942,7 +952,7 @@ die_sou_create(dwarf_t *dw, Dwarf_Die str, Dwarf_Off off, tdesc_t *tdp,
     int type, const char *typename)
 {
 	Dwarf_Unsigned sz, bitsz, bitoff, maxsz=0;
-#if BYTE_ORDER == _LITTLE_ENDIAN
+#if BYTE_ORDER == LITTLE_ENDIAN
 	Dwarf_Unsigned bysz;
 #endif
 	Dwarf_Die mem;
@@ -951,7 +961,7 @@ die_sou_create(dwarf_t *dw, Dwarf_Die str, Dwarf_Off off, tdesc_t *tdp,
 
 	tdp->t_type = (die_isdecl(dw, str) ? FORWARD : type);
 
-	debug(3, "die %llu: creating %s %s\n", off,
+	debug(3, "die %ju: creating %s %s\n", (uintmax_t)off,
 	    (tdp->t_type == FORWARD ? "forward decl" : typename),
 	    tdesc_name(tdp));
 
@@ -985,7 +995,8 @@ die_sou_create(dwarf_t *dw, Dwarf_Die str, Dwarf_Off off, tdesc_t *tdp,
 			continue;
 		}
 
-		debug(3, "die %llu: mem %llu: creating member\n", off, memoff);
+		debug(3, "die %ju: mem %ju: creating member\n",
+		    (uintmax_t)off, (uintmax_t)memoff);
 
 		ml = xcalloc(sizeof (mlist_t));
 
@@ -1005,8 +1016,8 @@ die_sou_create(dwarf_t *dw, Dwarf_Die str, Dwarf_Off off, tdesc_t *tdp,
 
 		if (die_mem_offset(dw, mem, DW_AT_data_member_location,
 		    &mloff, 0)) {
-			debug(3, "die %llu: got mloff %llx\n", off,
-			    (u_longlong_t)mloff);
+			debug(3, "die %ju: got mloff 0x%jx\n", (uintmax_t)off,
+			    (uintmax_t)mloff);
 			ml->ml_offset = mloff * 8;
 		}
 
@@ -1016,7 +1027,7 @@ die_sou_create(dwarf_t *dw, Dwarf_Die str, Dwarf_Off off, tdesc_t *tdp,
 			ml->ml_size = tdesc_bitsize(ml->ml_type);
 
 		if (die_unsigned(dw, mem, DW_AT_bit_offset, &bitoff, 0)) {
-#if BYTE_ORDER == _BIG_ENDIAN
+#if BYTE_ORDER == BIG_ENDIAN
 			ml->ml_offset += bitoff;
 #else
 			/*
@@ -1042,8 +1053,9 @@ die_sou_create(dwarf_t *dw, Dwarf_Die str, Dwarf_Off off, tdesc_t *tdp,
 #endif
 		}
 
-		debug(3, "die %llu: mem %llu: created \"%s\" (off %u sz %u)\n",
-		    off, memoff, ml->ml_name, ml->ml_offset, ml->ml_size);
+		debug(3, "die %ju: mem %ju: created \"%s\" (off %u sz %u)\n",
+		    (uintmax_t)off, (uintmax_t)memoff, ml->ml_name,
+		    ml->ml_offset, ml->ml_size);
 
 		*mlastp = ml;
 		mlastp = &ml->ml_next;
@@ -1091,7 +1103,8 @@ die_sou_create(dwarf_t *dw, Dwarf_Die str, Dwarf_Off off, tdesc_t *tdp,
 		char *new = xmalloc(newsz);
 		(void) snprintf(new, newsz, "orphan %s", old);
 
-		debug(3, "die %llu: worked around %s %s\n", off, typename, old);
+		debug(3, "die %ju: worked around %s %s\n", (uintmax_t)off,
+		    typename, old);
 
 		if (tdp->t_name != NULL)
 			free(tdp->t_name);
@@ -1234,7 +1247,8 @@ die_funcptr_create(dwarf_t *dw, Dwarf_Die die, Dwarf_Off off, tdesc_t *tdp)
 	fndef_t *fn;
 	int i;
 
-	debug(3, "die %llu <%llx>: creating function pointer\n", off, off);
+	debug(3, "die %ju <0x%jx>: creating function pointer\n",
+	    (uintmax_t)off, (uintmax_t)off);
 
 	/*
 	 * We'll begin by processing any type definition nodes that may be
@@ -1282,8 +1296,8 @@ die_funcptr_create(dwarf_t *dw, Dwarf_Die die, Dwarf_Off off, tdesc_t *tdp)
 	}
 
 	if (fn->fn_nargs != 0) {
-		debug(3, "die %llu: adding %d argument%s\n", off, fn->fn_nargs,
-		    (fn->fn_nargs > 1 ? "s" : ""));
+		debug(3, "die %ju: adding %d argument%s\n", (uintmax_t)off,
+		    fn->fn_nargs, (fn->fn_nargs > 1 ? "s" : ""));
 
 		fn->fn_args = xcalloc(sizeof (tdesc_t *) * fn->fn_nargs);
 		for (i = 0, arg = die_child(dw, die);
@@ -1423,7 +1437,8 @@ die_base_type2enc(dwarf_t *dw, Dwarf_Off off, Dwarf_Signed enc, size_t sz)
 		map++;
 	}
 
-	terminate("die %llu: unrecognized real type size %u\n", off, sz);
+	terminate("die %ju: unrecognized real type size %ju\n",
+	    (uintmax_t)off, (uintmax_t)sz);
 	/*NOTREACHED*/
 	return (0);
 }
@@ -1471,8 +1486,8 @@ die_base_from_dwarf(dwarf_t *dw, Dwarf_Die base, Dwarf_Off off, size_t sz)
 		intr->intr_fformat = die_base_type2enc(dw, off, enc, sz);
 		break;
 	default:
-		terminate("die %llu: unknown base type encoding 0x%llx\n",
-		    off, enc);
+		terminate("die %ju: unknown base type encoding 0x%jx\n",
+		    (uintmax_t)off, (uintmax_t)enc);
 	}
 
 	return (intr);
@@ -1485,7 +1500,7 @@ die_base_create(dwarf_t *dw, Dwarf_Die base, Dwarf_Off off, tdesc_t *tdp)
 	intr_t *intr;
 	char *new;
 
-	debug(3, "die %llu: creating base type\n", off);
+	debug(3, "die %ju: creating base type\n", (uintmax_t)off);
 
 	/*
 	 * The compilers have their own clever (internally inconsistent) ideas
@@ -1506,13 +1521,13 @@ die_base_create(dwarf_t *dw, Dwarf_Die base, Dwarf_Off off, tdesc_t *tdp)
 	}
 
 	if (tdp->t_name == NULL)
-		terminate("die %llu: base type without name\n", off);
+		terminate("die %ju: base type without name\n", (uintmax_t)off);
 
 	/* XXX make a name parser for float too */
 	if ((intr = die_base_name_parse(tdp->t_name, &new)) != NULL) {
 		/* Found it.  We'll use the parsed version */
-		debug(3, "die %llu: name \"%s\" remapped to \"%s\"\n", off,
-		    tdesc_name(tdp), new);
+		debug(3, "die %ju: name \"%s\" remapped to \"%s\"\n",
+		    (uintmax_t)off, tdesc_name(tdp), new);
 
 		free(tdp->t_name);
 		tdp->t_name = new;
@@ -1521,8 +1536,8 @@ die_base_create(dwarf_t *dw, Dwarf_Die base, Dwarf_Off off, tdesc_t *tdp)
 		 * We didn't recognize the type, so we'll create an intr_t
 		 * based on the DWARF data.
 		 */
-		debug(3, "die %llu: using dwarf data for base \"%s\"\n", off,
-		    tdesc_name(tdp));
+		debug(3, "die %ju: using dwarf data for base \"%s\"\n",
+		    (uintmax_t)off, tdesc_name(tdp));
 
 		intr = die_base_from_dwarf(dw, base, off, sz);
 	}
@@ -1542,7 +1557,8 @@ die_through_create(dwarf_t *dw, Dwarf_Die die, Dwarf_Off off, tdesc_t *tdp,
 {
 	Dwarf_Attribute attr;
 
-	debug(3, "die %llu <%llx>: creating %s type %d\n", off, off, typename, type);
+	debug(3, "die %ju <0x%jx>: creating %s type %d\n", (uintmax_t)off,
+	    (uintmax_t)off, typename, type);
 
 	tdp->t_type = type;
 
@@ -1606,7 +1622,8 @@ die_function_create(dwarf_t *dw, Dwarf_Die die, Dwarf_Off off, tdesc_t *tdp __un
 	iidesc_t *ii;
 	char *name;
 
-	debug(3, "die %llu <%llx>: creating function definition\n", off, off);
+	debug(3, "die %ju <0x%jx>: creating function definition\n",
+	    (uintmax_t)off, (uintmax_t)off);
 
 	/*
 	 * We'll begin by processing any type definition nodes that may be
@@ -1635,7 +1652,7 @@ die_function_create(dwarf_t *dw, Dwarf_Die die, Dwarf_Off off, tdesc_t *tdp __un
 	if (ii->ii_type == II_SFUN)
 		ii->ii_owner = xstrdup(dw->dw_cuname);
 
-	debug(3, "die %llu: function %s is %s\n", off, ii->ii_name,
+	debug(3, "die %ju: function %s is %s\n", (uintmax_t)off, ii->ii_name,
 	    (ii->ii_type == II_GFUN ? "global" : "static"));
 
 	if (die_attr(dw, die, DW_AT_type, 0) != NULL)
@@ -1647,15 +1664,15 @@ die_function_create(dwarf_t *dw, Dwarf_Die die, Dwarf_Off off, tdesc_t *tdp __un
 	    arg = die_sibling(dw, arg)) {
 		char *name1;
 
-		debug(3, "die %llu: looking at sub member at %llu\n",
-		    off, die_off(dw, die));
+		debug(3, "die %ju: looking at sub member at %ju\n",
+		    (uintmax_t)off, (uintmax_t)die_off(dw, die));
 
 		if (die_tag(dw, arg) != DW_TAG_formal_parameter)
 			continue;
 
 		if ((name1 = die_name(dw, arg)) == NULL) {
-			terminate("die %llu: func arg %d has no name\n",
-			    off, ii->ii_nargs + 1);
+			terminate("die %ju: func arg %d has no name\n",
+			    (uintmax_t)off, ii->ii_nargs + 1);
 		}
 
 		if (strcmp(name1, "...") == 0) {
@@ -1670,8 +1687,8 @@ die_function_create(dwarf_t *dw, Dwarf_Die die, Dwarf_Off off, tdesc_t *tdp __un
 	if (ii->ii_nargs > 0) {
 		int i;
 
-		debug(3, "die %llu: function has %d argument%s\n", off,
-		    ii->ii_nargs, (ii->ii_nargs == 1 ? "" : "s"));
+		debug(3, "die %ju: function has %d argument%s\n",
+		    (uintmax_t)off, ii->ii_nargs, ii->ii_nargs == 1 ? "" : "s");
 
 		ii->ii_args = xcalloc(sizeof (tdesc_t) * ii->ii_nargs);
 
@@ -1696,7 +1713,7 @@ die_variable_create(dwarf_t *dw, Dwarf_Die die, Dwarf_Off off, tdesc_t *tdp __un
 	iidesc_t *ii;
 	char *name;
 
-	debug(3, "die %llu: creating object definition\n", off);
+	debug(3, "die %ju: creating object definition\n", (uintmax_t)off);
 
 	if (die_isdecl(dw, die) || (name = die_name(dw, die)) == NULL)
 		return; /* skip prototypes and nameless objects */
@@ -1793,17 +1810,19 @@ die_create_one(dwarf_t *dw, Dwarf_Die die)
 	Dwarf_Half tag;
 	tdesc_t *tdp;
 
-	debug(3, "die %llu <%llx>: create_one\n", off, off);
+	debug(3, "die %ju <0x%jx>: create_one\n", (uintmax_t)off,
+	    (uintmax_t)off);
 
 	if (off > dw->dw_maxoff) {
-		terminate("illegal die offset %llu (max %llu)\n", off,
+		terminate("illegal die offset %ju (max %ju)\n", (uintmax_t)off,
 		    dw->dw_maxoff);
 	}
 
 	tag = die_tag(dw, die);
 
 	if ((dc = die_tag2ctor(tag)) == NULL) {
-		debug(2, "die %llu: ignoring tag type %x\n", off, tag);
+		debug(2, "die %ju: ignoring tag type %x\n", (uintmax_t)off,
+		    tag);
 		return;
 	}
 
@@ -1950,7 +1969,8 @@ should_have_dwarf(Elf *elf)
 int
 dw_read(tdata_t *td, Elf *elf, char *filename __unused)
 {
-	Dwarf_Unsigned abboff, hdrlen, nxthdr;
+	Dwarf_Unsigned hdrlen, nxthdr;
+	Dwarf_Off abboff;
 	Dwarf_Half vers, addrsz, offsz;
 	Dwarf_Die cu = 0;
 	Dwarf_Die child = 0;
@@ -2008,7 +2028,7 @@ dw_read(tdata_t *td, Elf *elf, char *filename __unused)
 	if ((child = die_child(&dw, cu)) == NULL) {
 		Dwarf_Unsigned lang;
 		if (die_unsigned(&dw, cu, DW_AT_language, &lang, 0)) {
-			debug(1, "DWARF language: %u\n", lang);
+			debug(1, "DWARF language: %ju\n", (uintmax_t)lang);
 			/*
 			 * Assembly languages are typically that.
 			 * They have some dwarf info, but not what
diff --git a/external/cddl/osnet/dist/tools/ctf/cvt/output.c b/external/cddl/osnet/dist/tools/ctf/cvt/output.c
index 1220329..f21dbef 100644
--- a/external/cddl/osnet/dist/tools/ctf/cvt/output.c
+++ b/external/cddl/osnet/dist/tools/ctf/cvt/output.c
@@ -755,7 +755,7 @@ write_ctf(tdata_t *td, const char *curname, const char *newname, int flags)
 		elfterminate(curname, "Cannot write");
 
 	if (gelf_getehdr(elf, &ehdr)) {
-#if BYTE_ORDER == _BIG_ENDIAN
+#if BYTE_ORDER == BIG_ENDIAN
 		byteorder = ELFDATA2MSB;
 #else
 		byteorder = ELFDATA2LSB;
diff --git a/external/cddl/osnet/dist/tools/ctf/cvt/st_parse.c b/external/cddl/osnet/dist/tools/ctf/cvt/st_parse.c
index 64af7a87..6c06eab 100644
--- a/external/cddl/osnet/dist/tools/ctf/cvt/st_parse.c
+++ b/external/cddl/osnet/dist/tools/ctf/cvt/st_parse.c
@@ -80,7 +80,7 @@ static char *arraydef(char *cp, tdesc_t **rtdp);
 int debug_parse = DEBUG_PARSE;
 
 /*PRINTFLIKE3*/
-static void
+static void __printflike(3, 4)
 parse_debug(int level, char *cp, const char *fmt, ...)
 {
 	va_list ap;
@@ -95,7 +95,7 @@ parse_debug(int level, char *cp, const char *fmt, ...)
 		for (i = 0; i < 30; i++) {
 			if (cp[i] == '\0')
 				break;
-			if (!iscntrl(cp[i]))
+			if (!iscntrl((unsigned char)cp[i]))
 				tmp[i] = cp[i];
 		}
 		tmp[i] = '\0';
@@ -482,7 +482,7 @@ whitesp(char *cp)
 {
 	char c;
 
-	for (c = *cp++; isspace(c); c = *cp++)
+	for (c = *cp++; isspace((unsigned char)c); c = *cp++)
 		;
 	--cp;
 	return (cp);
@@ -498,8 +498,8 @@ name(char *cp, char **w)
 	c = *cp++;
 	if (c == ':')
 		*w = NULL;
-	else if (isalpha(c) || strchr("_.$#", c)) {
-		for (c = *cp++; isalnum(c) || strchr(" _.$#", c); c = *cp++)
+	else if (isalpha((unsigned char)c) || strchr("_.$#", c)) {
+		for (c = *cp++; isalnum((unsigned char)c) || strchr(" _.$#", c); c = *cp++)
 			;
 		if (c != ':')
 			reset();
@@ -540,7 +540,7 @@ id(char *cp, int *h)
 		if (*cp++ != ')')
 			expected("id", ")", cp - 1);
 		*h = MAKETYPEID(n1, n2);
-	} else if (isdigit(*cp)) { /* gcc style */
+	} else if (isdigit((unsigned char)*cp)) { /* gcc style */
 		cp = number(cp, &n1);
 		*h = n1;
 	} else {
@@ -805,7 +805,7 @@ intrinsic(char *cp, tdesc_t **rtdp)
 
 	case 'R':
 		intr->intr_type = INTR_REAL;
-		for (fmt = 0, i = 0; isdigit(*(cp + i)); i++)
+		for (fmt = 0, i = 0; isdigit((unsigned char)*(cp + i)); i++)
 			fmt = fmt * 10 + (*(cp + i) - '0');
 
 		if (fmt < 1 || fmt > CTF_FP_MAX)
diff --git a/external/cddl/osnet/dist/tools/ctf/cvt/stabs.c b/external/cddl/osnet/dist/tools/ctf/cvt/stabs.c
index 6322bab..7608075 100644
--- a/external/cddl/osnet/dist/tools/ctf/cvt/stabs.c
+++ b/external/cddl/osnet/dist/tools/ctf/cvt/stabs.c
@@ -190,7 +190,7 @@ stabs_read(tdata_t *td, Elf *elf, char *file)
 	char *curfile = NULL;
 	char *str;
 	char *fstr = NULL, *ofstr = NULL;
-	int stabidx, stabstridx;
+	int stabidx, stabstridx = 0;
 	int nstabs, rc, i;
 	int scope = 0;
 
diff --git a/external/cddl/osnet/dist/tools/ctf/cvt/util.c b/external/cddl/osnet/dist/tools/ctf/cvt/util.c
index f443ee9d..ae06ca9 100644
--- a/external/cddl/osnet/dist/tools/ctf/cvt/util.c
+++ b/external/cddl/osnet/dist/tools/ctf/cvt/util.c
@@ -79,14 +79,14 @@ findelfsecidx(Elf *elf, const char *file, const char *tofind)
 
 		if (gelf_getshdr(scn, &shdr) == NULL) {
 			elfterminate(file,
-			    "Couldn't read header for section %d",
+			    "Couldn't read header for section %zu",
 			    elf_ndxscn(scn));
 		}
 
 		if ((name = elf_strptr(elf, ehdr.e_shstrndx,
 		    (size_t)shdr.sh_name)) == NULL) {
 			elfterminate(file,
-			    "Couldn't get name for section %d",
+			    "Couldn't get name for section %zu",
 			    elf_ndxscn(scn));
 		}
 
diff --git a/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c b/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c
index 337e1e3..6a83776 100644
--- a/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c
+++ b/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c
@@ -7892,8 +7892,8 @@ dtrace_probe_lookup_match(dtrace_probe_t *probe, void *arg)
  * name and probe name.
  */
 dtrace_id_t
-dtrace_probe_lookup(dtrace_provider_id_t prid, char *mod,
-    char *func, char *name)
+dtrace_probe_lookup(dtrace_provider_id_t prid, const char *mod,
+    const char *func, const char *name)
 {
 	dtrace_probekey_t pkey;
 	dtrace_id_t id;
@@ -7901,11 +7901,11 @@ dtrace_probe_lookup(dtrace_provider_id_t prid, char *mod,
 
 	pkey.dtpk_prov = ((dtrace_provider_t *)prid)->dtpv_name;
 	pkey.dtpk_pmatch = &dtrace_match_string;
-	pkey.dtpk_mod = mod;
+	pkey.dtpk_mod = __UNCONST(mod);
 	pkey.dtpk_mmatch = mod ? &dtrace_match_string : &dtrace_match_nul;
-	pkey.dtpk_func = func;
+	pkey.dtpk_func = __UNCONST(func);
 	pkey.dtpk_fmatch = func ? &dtrace_match_string : &dtrace_match_nul;
-	pkey.dtpk_name = name;
+	pkey.dtpk_name = __UNCONST(name);
 	pkey.dtpk_nmatch = name ? &dtrace_match_string : &dtrace_match_nul;
 	pkey.dtpk_id = DTRACE_IDNONE;
 
diff --git a/external/cddl/osnet/dist/uts/common/dtrace/lockstat.c b/external/cddl/osnet/dist/uts/common/dtrace/lockstat.c
deleted file mode 100644
index 349acc9..0000000
--- a/external/cddl/osnet/dist/uts/common/dtrace/lockstat.c
+++ /dev/null
@@ -1,342 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <sys/open.h>
-#include <sys/file.h>
-#include <sys/conf.h>
-#include <sys/modctl.h>
-#include <sys/cmn_err.h>
-#include <sys/bitmap.h>
-#include <sys/debug.h>
-#include <sys/kmem.h>
-#include <sys/errno.h>
-#include <sys/sysmacros.h>
-#include <sys/lockstat.h>
-#include <sys/atomic.h>
-#include <sys/dtrace.h>
-
-#include <sys/ddi.h>
-#include <sys/sunddi.h>
-
-typedef struct lockstat_probe {
-	const char	*lsp_func;
-	const char	*lsp_name;
-	int		lsp_probe;
-	dtrace_id_t	lsp_id;
-} lockstat_probe_t;
-
-lockstat_probe_t lockstat_probes[] =
-{
-	{ LS_MUTEX_ENTER,	LSA_ACQUIRE,	LS_MUTEX_ENTER_ACQUIRE },
-	{ LS_MUTEX_ENTER,	LSA_BLOCK,	LS_MUTEX_ENTER_BLOCK },
-	{ LS_MUTEX_ENTER,	LSA_SPIN,	LS_MUTEX_ENTER_SPIN },
-	{ LS_MUTEX_EXIT,	LSA_RELEASE,	LS_MUTEX_EXIT_RELEASE },
-	{ LS_MUTEX_DESTROY,	LSA_RELEASE,	LS_MUTEX_DESTROY_RELEASE },
-	{ LS_MUTEX_TRYENTER,	LSA_ACQUIRE,	LS_MUTEX_TRYENTER_ACQUIRE },
-	{ LS_LOCK_SET,		LSS_ACQUIRE,	LS_LOCK_SET_ACQUIRE },
-	{ LS_LOCK_SET,		LSS_SPIN,	LS_LOCK_SET_SPIN },
-	{ LS_LOCK_SET_SPL,	LSS_ACQUIRE,	LS_LOCK_SET_SPL_ACQUIRE },
-	{ LS_LOCK_SET_SPL,	LSS_SPIN,	LS_LOCK_SET_SPL_SPIN },
-	{ LS_LOCK_TRY,		LSS_ACQUIRE,	LS_LOCK_TRY_ACQUIRE },
-	{ LS_LOCK_CLEAR,	LSS_RELEASE,	LS_LOCK_CLEAR_RELEASE },
-	{ LS_LOCK_CLEAR_SPLX,	LSS_RELEASE,	LS_LOCK_CLEAR_SPLX_RELEASE },
-	{ LS_CLOCK_UNLOCK,	LSS_RELEASE,	LS_CLOCK_UNLOCK_RELEASE },
-	{ LS_RW_ENTER,		LSR_ACQUIRE,	LS_RW_ENTER_ACQUIRE },
-	{ LS_RW_ENTER,		LSR_BLOCK,	LS_RW_ENTER_BLOCK },
-	{ LS_RW_EXIT,		LSR_RELEASE,	LS_RW_EXIT_RELEASE },
-	{ LS_RW_TRYENTER,	LSR_ACQUIRE,	LS_RW_TRYENTER_ACQUIRE },
-	{ LS_RW_TRYUPGRADE,	LSR_UPGRADE,	LS_RW_TRYUPGRADE_UPGRADE },
-	{ LS_RW_DOWNGRADE,	LSR_DOWNGRADE,	LS_RW_DOWNGRADE_DOWNGRADE },
-	{ LS_THREAD_LOCK,	LST_SPIN,	LS_THREAD_LOCK_SPIN },
-	{ LS_THREAD_LOCK_HIGH,	LST_SPIN,	LS_THREAD_LOCK_HIGH_SPIN },
-	{ NULL }
-};
-
-static dev_info_t	*lockstat_devi;	/* saved in xxattach() for xxinfo() */
-static kmutex_t		lockstat_test;	/* for testing purposes only */
-static dtrace_provider_id_t lockstat_id;
-
-/*ARGSUSED*/
-static int
-lockstat_enable(void *arg, dtrace_id_t id, void *parg)
-{
-	lockstat_probe_t *probe = parg;
-
-	ASSERT(!lockstat_probemap[probe->lsp_probe]);
-
-	lockstat_probemap[probe->lsp_probe] = id;
-	membar_producer();
-
-	lockstat_hot_patch();
-	membar_producer();
-
-	/*
-	 * Immediately generate a record for the lockstat_test mutex
-	 * to verify that the mutex hot-patch code worked as expected.
-	 */
-	mutex_enter(&lockstat_test);
-	mutex_exit(&lockstat_test);
-	return (0);
-}
-
-/*ARGSUSED*/
-static void
-lockstat_disable(void *arg, dtrace_id_t id, void *parg)
-{
-	lockstat_probe_t *probe = parg;
-	int i;
-
-	ASSERT(lockstat_probemap[probe->lsp_probe]);
-
-	lockstat_probemap[probe->lsp_probe] = 0;
-	lockstat_hot_patch();
-	membar_producer();
-
-	/*
-	 * See if we have any probes left enabled.
-	 */
-	for (i = 0; i < LS_NPROBES; i++) {
-		if (lockstat_probemap[i]) {
-			/*
-			 * This probe is still enabled.  We don't need to deal
-			 * with waiting for all threads to be out of the
-			 * lockstat critical sections; just return.
-			 */
-			return;
-		}
-	}
-
-	/*
-	 * The delay() here isn't as cheesy as you might think.  We don't
-	 * want to busy-loop in the kernel, so we have to give up the
-	 * CPU between calls to lockstat_active_threads(); that much is
-	 * obvious.  But the reason it's a do..while loop rather than a
-	 * while loop is subtle.  The memory barrier above guarantees that
-	 * no threads will enter the lockstat code from this point forward.
-	 * However, another thread could already be executing lockstat code
-	 * without our knowledge if the update to its t_lockstat field hasn't
-	 * cleared its CPU's store buffer.  Delaying for one clock tick
-	 * guarantees that either (1) the thread will have *ample* time to
-	 * complete its work, or (2) the thread will be preempted, in which
-	 * case it will have to grab and release a dispatcher lock, which
-	 * will flush that CPU's store buffer.  Either way we're covered.
-	 */
-	do {
-		xdelay(1);
-	} while (lockstat_active_threads());
-}
-
-/*ARGSUSED*/
-static int
-lockstat_open(dev_t *devp, int flag, int otyp, cred_t *cred_p)
-{
-	return (0);
-}
-
-/* ARGSUSED */
-static int
-lockstat_info(dev_info_t *dip, ddi_info_cmd_t infocmd, void *arg, void **result)
-{
-	int error;
-
-	switch (infocmd) {
-	case DDI_INFO_DEVT2DEVINFO:
-		*result = (void *) lockstat_devi;
-		error = DDI_SUCCESS;
-		break;
-	case DDI_INFO_DEVT2INSTANCE:
-		*result = (void *)0;
-		error = DDI_SUCCESS;
-		break;
-	default:
-		error = DDI_FAILURE;
-	}
-	return (error);
-}
-
-/*ARGSUSED*/
-static void
-lockstat_provide(void *arg, const dtrace_probedesc_t *desc)
-{
-	int i = 0;
-
-	for (i = 0; lockstat_probes[i].lsp_func != NULL; i++) {
-		lockstat_probe_t *probe = &lockstat_probes[i];
-
-		if (dtrace_probe_lookup(lockstat_id, "genunix",
-		    probe->lsp_func, probe->lsp_name) != 0)
-			continue;
-
-		ASSERT(!probe->lsp_id);
-		probe->lsp_id = dtrace_probe_create(lockstat_id,
-		    "genunix", probe->lsp_func, probe->lsp_name,
-		    1, probe);
-	}
-}
-
-/*ARGSUSED*/
-static void
-lockstat_destroy(void *arg, dtrace_id_t id, void *parg)
-{
-	lockstat_probe_t *probe = parg;
-
-	ASSERT(!lockstat_probemap[probe->lsp_probe]);
-	probe->lsp_id = 0;
-}
-
-static dtrace_pattr_t lockstat_attr = {
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
-};
-
-static dtrace_pops_t lockstat_pops = {
-	lockstat_provide,
-	NULL,
-	lockstat_enable,
-	lockstat_disable,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	lockstat_destroy
-};
-
-static int
-lockstat_attach(dev_info_t *devi, ddi_attach_cmd_t cmd)
-{
-	switch (cmd) {
-	case DDI_ATTACH:
-		break;
-	case DDI_RESUME:
-		return (DDI_SUCCESS);
-	default:
-		return (DDI_FAILURE);
-	}
-
-	if (ddi_create_minor_node(devi, "lockstat", S_IFCHR, 0,
-	    DDI_PSEUDO, 0) == DDI_FAILURE ||
-	    dtrace_register("lockstat", &lockstat_attr, DTRACE_PRIV_KERNEL,
-	    NULL, &lockstat_pops, NULL, &lockstat_id) != 0) {
-		ddi_remove_minor_node(devi, NULL);
-		return (DDI_FAILURE);
-	}
-
-	lockstat_probe = dtrace_probe;
-	membar_producer();
-
-	ddi_report_dev(devi);
-	lockstat_devi = devi;
-	return (DDI_SUCCESS);
-}
-
-static int
-lockstat_detach(dev_info_t *devi, ddi_detach_cmd_t cmd)
-{
-	switch (cmd) {
-	case DDI_DETACH:
-		break;
-	case DDI_SUSPEND:
-		return (DDI_SUCCESS);
-	default:
-		return (DDI_FAILURE);
-	}
-
-	if (dtrace_unregister(lockstat_id) != 0)
-		return (DDI_FAILURE);
-
-	ddi_remove_minor_node(devi, NULL);
-	return (DDI_SUCCESS);
-}
-
-/*
- * Configuration data structures
- */
-static struct cb_ops lockstat_cb_ops = {
-	lockstat_open,		/* open */
-	nodev,			/* close */
-	nulldev,		/* strategy */
-	nulldev,		/* print */
-	nodev,			/* dump */
-	nodev,			/* read */
-	nodev,			/* write */
-	nodev,			/* ioctl */
-	nodev,			/* devmap */
-	nodev,			/* mmap */
-	nodev,			/* segmap */
-	nochpoll,		/* poll */
-	ddi_prop_op,		/* cb_prop_op */
-	0,			/* streamtab */
-	D_MP | D_NEW		/* Driver compatibility flag */
-};
-
-static struct dev_ops lockstat_ops = {
-	DEVO_REV,		/* devo_rev, */
-	0,			/* refcnt */
-	lockstat_info,		/* getinfo */
-	nulldev,		/* identify */
-	nulldev,		/* probe */
-	lockstat_attach,	/* attach */
-	lockstat_detach,	/* detach */
-	nulldev,		/* reset */
-	&lockstat_cb_ops,	/* cb_ops */
-	NULL,			/* bus_ops */
-};
-
-static struct modldrv modldrv = {
-	&mod_driverops,		/* Type of module.  This one is a driver */
-	"Lock Statistics %I%",	/* name of module */
-	&lockstat_ops,		/* driver ops */
-};
-
-static struct modlinkage modlinkage = {
-	MODREV_1, (void *)&modldrv, NULL
-};
-
-int
-_init(void)
-{
-	return (mod_install(&modlinkage));
-}
-
-int
-_fini(void)
-{
-	return (mod_remove(&modlinkage));
-}
-
-int
-_info(struct modinfo *modinfop)
-{
-	return (mod_info(&modlinkage, modinfop));
-}
diff --git a/external/cddl/osnet/dist/uts/common/dtrace/profile.c b/external/cddl/osnet/dist/uts/common/dtrace/profile.c
deleted file mode 100644
index 4940f0c..0000000
--- a/external/cddl/osnet/dist/uts/common/dtrace/profile.c
+++ /dev/null
@@ -1,577 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include <sys/errno.h>
-#include <sys/stat.h>
-#include <sys/modctl.h>
-#include <sys/conf.h>
-#include <sys/systm.h>
-#include <sys/ddi.h>
-#include <sys/sunddi.h>
-#include <sys/cpuvar.h>
-#include <sys/kmem.h>
-#include <sys/strsubr.h>
-#include <sys/dtrace.h>
-#include <sys/cyclic.h>
-#include <sys/atomic.h>
-
-static dev_info_t *profile_devi;
-static dtrace_provider_id_t profile_id;
-
-/*
- * Regardless of platform, the stack frames look like this in the case of the
- * profile provider:
- *
- *	profile_fire
- *	cyclic_expire
- *	cyclic_fire
- *	[ cbe ]
- *	[ interrupt code ]
- *
- * On x86, there are five frames from the generic interrupt code; further, the
- * interrupted instruction appears as its own stack frame, giving us a total of
- * 10.
- *
- * On SPARC, the picture is further complicated because the compiler
- * optimizes away tail-calls -- so the following frames are optimized away:
- *
- * 	profile_fire
- *	cyclic_expire
- *
- * This gives three frames.  However, on DEBUG kernels, the cyclic_expire
- * frame cannot be tail-call eliminated, yielding four frames in this case.
- *
- * All of the above constraints lead to the mess below.  Yes, the profile
- * provider should ideally figure this out on-the-fly by hitting one of its own
- * probes and then walking its own stack trace.  This is complicated, however,
- * and the static definition doesn't seem to be overly brittle.  Still, we
- * allow for a manual override in case we get it completely wrong.
- */
-#ifdef __x86
-#define	PROF_ARTIFICIAL_FRAMES	10
-#else
-#ifdef __sparc
-#ifdef DEBUG
-#define	PROF_ARTIFICIAL_FRAMES	4
-#else
-#define	PROF_ARTIFICIAL_FRAMES	3
-#endif
-#endif
-#endif
-
-#define	PROF_NAMELEN		15
-
-#define	PROF_PROFILE		0
-#define	PROF_TICK		1
-#define	PROF_PREFIX_PROFILE	"profile-"
-#define	PROF_PREFIX_TICK	"tick-"
-
-typedef struct profile_probe {
-	char		prof_name[PROF_NAMELEN];
-	dtrace_id_t	prof_id;
-	int		prof_kind;
-	hrtime_t	prof_interval;
-	cyclic_id_t	prof_cyclic;
-} profile_probe_t;
-
-typedef struct profile_probe_percpu {
-	hrtime_t	profc_expected;
-	hrtime_t	profc_interval;
-	profile_probe_t	*profc_probe;
-} profile_probe_percpu_t;
-
-hrtime_t	profile_interval_min = NANOSEC / 5000;		/* 5000 hz */
-int		profile_aframes = 0;				/* override */
-
-static int profile_rates[] = {
-    97, 199, 499, 997, 1999,
-    4001, 4999, 0, 0, 0,
-    0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0
-};
-
-static int profile_ticks[] = {
-    1, 10, 100, 500, 1000,
-    5000, 0, 0, 0, 0,
-    0, 0, 0, 0, 0
-};
-
-/*
- * profile_max defines the upper bound on the number of profile probes that
- * can exist (this is to prevent malicious or clumsy users from exhausing
- * system resources by creating a slew of profile probes). At mod load time,
- * this gets its value from PROFILE_MAX_DEFAULT or profile-max-probes if it's
- * present in the profile.conf file.
- */
-#define	PROFILE_MAX_DEFAULT	1000	/* default max. number of probes */
-static uint32_t profile_max;		/* maximum number of profile probes */
-static uint32_t profile_total;	/* current number of profile probes */
-
-static void
-profile_fire(void *arg)
-{
-	profile_probe_percpu_t *pcpu = arg;
-	profile_probe_t *prof = pcpu->profc_probe;
-	hrtime_t late;
-
-	late = dtrace_gethrtime() - pcpu->profc_expected;
-	pcpu->profc_expected += pcpu->profc_interval;
-
-	dtrace_probe(prof->prof_id, CPU->cpu_profile_pc,
-	    CPU->cpu_profile_upc, late, 0, 0);
-}
-
-static void
-profile_tick(void *arg)
-{
-	profile_probe_t *prof = arg;
-
-	dtrace_probe(prof->prof_id, CPU->cpu_profile_pc,
-	    CPU->cpu_profile_upc, 0, 0, 0);
-}
-
-static void
-profile_create(hrtime_t interval, const char *name, int kind)
-{
-	profile_probe_t *prof;
-	int nr_frames = PROF_ARTIFICIAL_FRAMES + dtrace_mach_aframes();
-
-	if (profile_aframes)
-		nr_frames = profile_aframes;
-
-	if (interval < profile_interval_min)
-		return;
-
-	if (dtrace_probe_lookup(profile_id, NULL, NULL, name) != 0)
-		return;
-
-	atomic_add_32(&profile_total, 1);
-	if (profile_total > profile_max) {
-		atomic_add_32(&profile_total, -1);
-		return;
-	}
-
-	prof = kmem_zalloc(sizeof (profile_probe_t), KM_SLEEP);
-	(void) strcpy(prof->prof_name, name);
-	prof->prof_interval = interval;
-	prof->prof_cyclic = CYCLIC_NONE;
-	prof->prof_kind = kind;
-	prof->prof_id = dtrace_probe_create(profile_id,
-	    NULL, NULL, name, nr_frames, prof);
-}
-
-/*ARGSUSED*/
-static void
-profile_provide(void *arg, const dtrace_probedesc_t *desc)
-{
-	int i, j, rate, kind;
-	hrtime_t val = 0, mult = 1, len;
-	const char *name, *suffix = NULL;
-
-	const struct {
-		char *prefix;
-		int kind;
-	} types[] = {
-		{ PROF_PREFIX_PROFILE, PROF_PROFILE },
-		{ PROF_PREFIX_TICK, PROF_TICK },
-		{ NULL, NULL }
-	};
-
-	const struct {
-		char *name;
-		hrtime_t mult;
-	} suffixes[] = {
-		{ "ns", 	NANOSEC / NANOSEC },
-		{ "nsec",	NANOSEC / NANOSEC },
-		{ "us",		NANOSEC / MICROSEC },
-		{ "usec",	NANOSEC / MICROSEC },
-		{ "ms",		NANOSEC / MILLISEC },
-		{ "msec",	NANOSEC / MILLISEC },
-		{ "s",		NANOSEC / SEC },
-		{ "sec",	NANOSEC / SEC },
-		{ "m",		NANOSEC * (hrtime_t)60 },
-		{ "min",	NANOSEC * (hrtime_t)60 },
-		{ "h",		NANOSEC * (hrtime_t)(60 * 60) },
-		{ "hour",	NANOSEC * (hrtime_t)(60 * 60) },
-		{ "d",		NANOSEC * (hrtime_t)(24 * 60 * 60) },
-		{ "day",	NANOSEC * (hrtime_t)(24 * 60 * 60) },
-		{ "hz",		0 },
-		{ NULL }
-	};
-
-	if (desc == NULL) {
-		char n[PROF_NAMELEN];
-
-		/*
-		 * If no description was provided, provide all of our probes.
-		 */
-		for (i = 0; i < sizeof (profile_rates) / sizeof (int); i++) {
-			if ((rate = profile_rates[i]) == 0)
-				continue;
-
-			(void) snprintf(n, PROF_NAMELEN, "%s%d",
-			    PROF_PREFIX_PROFILE, rate);
-			profile_create(NANOSEC / rate, n, PROF_PROFILE);
-		}
-
-		for (i = 0; i < sizeof (profile_ticks) / sizeof (int); i++) {
-			if ((rate = profile_ticks[i]) == 0)
-				continue;
-
-			(void) snprintf(n, PROF_NAMELEN, "%s%d",
-			    PROF_PREFIX_TICK, rate);
-			profile_create(NANOSEC / rate, n, PROF_TICK);
-		}
-
-		return;
-	}
-
-	name = desc->dtpd_name;
-
-	for (i = 0; types[i].prefix != NULL; i++) {
-		len = strlen(types[i].prefix);
-
-		if (strncmp(name, types[i].prefix, len) != 0)
-			continue;
-		break;
-	}
-
-	if (types[i].prefix == NULL)
-		return;
-
-	kind = types[i].kind;
-	j = strlen(name) - len;
-
-	/*
-	 * We need to start before any time suffix.
-	 */
-	for (j = strlen(name); j >= len; j--) {
-		if (name[j] >= '0' && name[j] <= '9')
-			break;
-		suffix = &name[j];
-	}
-
-	ASSERT(suffix != NULL);
-
-	/*
-	 * Now determine the numerical value present in the probe name.
-	 */
-	for (; j >= len; j--) {
-		if (name[j] < '0' || name[j] > '9')
-			return;
-
-		val += (name[j] - '0') * mult;
-		mult *= (hrtime_t)10;
-	}
-
-	if (val == 0)
-		return;
-
-	/*
-	 * Look-up the suffix to determine the multiplier.
-	 */
-	for (i = 0, mult = 0; suffixes[i].name != NULL; i++) {
-		if (strcasecmp(suffixes[i].name, suffix) == 0) {
-			mult = suffixes[i].mult;
-			break;
-		}
-	}
-
-	if (suffixes[i].name == NULL && *suffix != '\0')
-		return;
-
-	if (mult == 0) {
-		/*
-		 * The default is frequency-per-second.
-		 */
-		val = NANOSEC / val;
-	} else {
-		val *= mult;
-	}
-
-	profile_create(val, name, kind);
-}
-
-/*ARGSUSED*/
-static void
-profile_destroy(void *arg, dtrace_id_t id, void *parg)
-{
-	profile_probe_t *prof = parg;
-
-	ASSERT(prof->prof_cyclic == CYCLIC_NONE);
-	kmem_free(prof, sizeof (profile_probe_t));
-
-	ASSERT(profile_total >= 1);
-	atomic_add_32(&profile_total, -1);
-}
-
-/*ARGSUSED*/
-static void
-profile_online(void *arg, cpu_t *cpu, cyc_handler_t *hdlr, cyc_time_t *when)
-{
-	profile_probe_t *prof = arg;
-	profile_probe_percpu_t *pcpu;
-
-	pcpu = kmem_zalloc(sizeof (profile_probe_percpu_t), KM_SLEEP);
-	pcpu->profc_probe = prof;
-
-	hdlr->cyh_func = profile_fire;
-	hdlr->cyh_arg = pcpu;
-	hdlr->cyh_level = CY_HIGH_LEVEL;
-
-	when->cyt_interval = prof->prof_interval;
-	when->cyt_when = dtrace_gethrtime() + when->cyt_interval;
-
-	pcpu->profc_expected = when->cyt_when;
-	pcpu->profc_interval = when->cyt_interval;
-}
-
-/*ARGSUSED*/
-static void
-profile_offline(void *arg, cpu_t *cpu, void *oarg)
-{
-	profile_probe_percpu_t *pcpu = oarg;
-
-	ASSERT(pcpu->profc_probe == arg);
-	kmem_free(pcpu, sizeof (profile_probe_percpu_t));
-}
-
-/*ARGSUSED*/
-static int
-profile_enable(void *arg, dtrace_id_t id, void *parg)
-{
-	profile_probe_t *prof = parg;
-	cyc_omni_handler_t omni;
-	cyc_handler_t hdlr;
-	cyc_time_t when;
-
-	ASSERT(prof->prof_interval != 0);
-	ASSERT(MUTEX_HELD(&cpu_lock));
-
-	if (prof->prof_kind == PROF_TICK) {
-		hdlr.cyh_func = profile_tick;
-		hdlr.cyh_arg = prof;
-		hdlr.cyh_level = CY_HIGH_LEVEL;
-
-		when.cyt_interval = prof->prof_interval;
-		when.cyt_when = dtrace_gethrtime() + when.cyt_interval;
-	} else {
-		ASSERT(prof->prof_kind == PROF_PROFILE);
-		omni.cyo_online = profile_online;
-		omni.cyo_offline = profile_offline;
-		omni.cyo_arg = prof;
-	}
-
-	if (prof->prof_kind == PROF_TICK) {
-		prof->prof_cyclic = cyclic_add(&hdlr, &when);
-	} else {
-		prof->prof_cyclic = cyclic_add_omni(&omni);
-	}
-	return (0);
-}
-
-/*ARGSUSED*/
-static void
-profile_disable(void *arg, dtrace_id_t id, void *parg)
-{
-	profile_probe_t *prof = parg;
-
-	ASSERT(prof->prof_cyclic != CYCLIC_NONE);
-	ASSERT(MUTEX_HELD(&cpu_lock));
-
-	cyclic_remove(prof->prof_cyclic);
-	prof->prof_cyclic = CYCLIC_NONE;
-}
-
-/*ARGSUSED*/
-static int
-profile_usermode(void *arg, dtrace_id_t id, void *parg)
-{
-	return (CPU->cpu_profile_pc == 0);
-}
-
-static dtrace_pattr_t profile_attr = {
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
-{ DTRACE_STABILITY_UNSTABLE, DTRACE_STABILITY_UNSTABLE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
-};
-
-static dtrace_pops_t profile_pops = {
-	profile_provide,
-	NULL,
-	profile_enable,
-	profile_disable,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	profile_usermode,
-	profile_destroy
-};
-
-static int
-profile_attach(dev_info_t *devi, ddi_attach_cmd_t cmd)
-{
-	switch (cmd) {
-	case DDI_ATTACH:
-		break;
-	case DDI_RESUME:
-		return (DDI_SUCCESS);
-	default:
-		return (DDI_FAILURE);
-	}
-
-	if (ddi_create_minor_node(devi, "profile", S_IFCHR, 0,
-	    DDI_PSEUDO, NULL) == DDI_FAILURE ||
-	    dtrace_register("profile", &profile_attr,
-	    DTRACE_PRIV_KERNEL | DTRACE_PRIV_USER, NULL,
-	    &profile_pops, NULL, &profile_id) != 0) {
-		ddi_remove_minor_node(devi, NULL);
-		return (DDI_FAILURE);
-	}
-
-	profile_max = ddi_getprop(DDI_DEV_T_ANY, devi, DDI_PROP_DONTPASS,
-	    "profile-max-probes", PROFILE_MAX_DEFAULT);
-
-	ddi_report_dev(devi);
-	profile_devi = devi;
-	return (DDI_SUCCESS);
-}
-
-static int
-profile_detach(dev_info_t *devi, ddi_detach_cmd_t cmd)
-{
-	switch (cmd) {
-	case DDI_DETACH:
-		break;
-	case DDI_SUSPEND:
-		return (DDI_SUCCESS);
-	default:
-		return (DDI_FAILURE);
-	}
-
-	if (dtrace_unregister(profile_id) != 0)
-		return (DDI_FAILURE);
-
-	ddi_remove_minor_node(devi, NULL);
-	return (DDI_SUCCESS);
-}
-
-/*ARGSUSED*/
-static int
-profile_info(dev_info_t *dip, ddi_info_cmd_t infocmd, void *arg, void **result)
-{
-	int error;
-
-	switch (infocmd) {
-	case DDI_INFO_DEVT2DEVINFO:
-		*result = (void *)profile_devi;
-		error = DDI_SUCCESS;
-		break;
-	case DDI_INFO_DEVT2INSTANCE:
-		*result = (void *)0;
-		error = DDI_SUCCESS;
-		break;
-	default:
-		error = DDI_FAILURE;
-	}
-	return (error);
-}
-
-/*ARGSUSED*/
-static int
-profile_open(dev_t *devp, int flag, int otyp, cred_t *cred_p)
-{
-	return (0);
-}
-
-static struct cb_ops profile_cb_ops = {
-	profile_open,		/* open */
-	nodev,			/* close */
-	nulldev,		/* strategy */
-	nulldev,		/* print */
-	nodev,			/* dump */
-	nodev,			/* read */
-	nodev,			/* write */
-	nodev,			/* ioctl */
-	nodev,			/* devmap */
-	nodev,			/* mmap */
-	nodev,			/* segmap */
-	nochpoll,		/* poll */
-	ddi_prop_op,		/* cb_prop_op */
-	0,			/* streamtab  */
-	D_NEW | D_MP		/* Driver compatibility flag */
-};
-
-static struct dev_ops profile_ops = {
-	DEVO_REV,		/* devo_rev, */
-	0,			/* refcnt  */
-	profile_info,		/* get_dev_info */
-	nulldev,		/* identify */
-	nulldev,		/* probe */
-	profile_attach,		/* attach */
-	profile_detach,		/* detach */
-	nodev,			/* reset */
-	&profile_cb_ops,	/* driver operations */
-	NULL,			/* bus operations */
-	nodev			/* dev power */
-};
-
-/*
- * Module linkage information for the kernel.
- */
-static struct modldrv modldrv = {
-	&mod_driverops,		/* module type (this is a pseudo driver) */
-	"Profile Interrupt Tracing",	/* name of module */
-	&profile_ops,		/* driver ops */
-};
-
-static struct modlinkage modlinkage = {
-	MODREV_1,
-	(void *)&modldrv,
-	NULL
-};
-
-int
-_init(void)
-{
-	return (mod_install(&modlinkage));
-}
-
-int
-_info(struct modinfo *modinfop)
-{
-	return (mod_info(&modlinkage, modinfop));
-}
-
-int
-_fini(void)
-{
-	return (mod_remove(&modlinkage));
-}
diff --git a/external/cddl/osnet/dist/uts/common/dtrace/sdt_subr.c b/external/cddl/osnet/dist/uts/common/dtrace/sdt_subr.c
deleted file mode 100644
index 95f7324..0000000
--- a/external/cddl/osnet/dist/uts/common/dtrace/sdt_subr.c
+++ /dev/null
@@ -1,1120 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#include <sys/sdt_impl.h>
-
-static dtrace_pattr_t vtrace_attr = {
-{ DTRACE_STABILITY_UNSTABLE, DTRACE_STABILITY_UNSTABLE, DTRACE_CLASS_ISA },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_UNSTABLE, DTRACE_STABILITY_UNSTABLE, DTRACE_CLASS_ISA },
-};
-
-static dtrace_pattr_t info_attr = {
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
-};
-
-static dtrace_pattr_t fc_attr = {
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
-};
-
-static dtrace_pattr_t fpu_attr = {
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_CPU },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
-};
-
-static dtrace_pattr_t fsinfo_attr = {
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
-};
-
-static dtrace_pattr_t stab_attr = {
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
-};
-
-static dtrace_pattr_t sdt_attr = {
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
-};
-
-static dtrace_pattr_t xpv_attr = {
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_PLATFORM },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_PLATFORM },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_PLATFORM },
-};
-
-static dtrace_pattr_t iscsi_attr = {
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_ISA },
-};
-
-sdt_provider_t sdt_providers[] = {
-	{ "vtrace", "__vtrace_", &vtrace_attr, 0 },
-	{ "sysinfo", "__cpu_sysinfo_", &info_attr, 0 },
-	{ "vminfo", "__cpu_vminfo_", &info_attr, 0 },
-	{ "fpuinfo", "__fpuinfo_", &fpu_attr, 0 },
-	{ "sched", "__sched_", &stab_attr, 0 },
-	{ "proc", "__proc_", &stab_attr, 0 },
-	{ "io", "__io_", &stab_attr, 0 },
-	{ "mib", "__mib_", &stab_attr, 0 },
-	{ "fsinfo", "__fsinfo_", &fsinfo_attr, 0 },
-	{ "iscsi", "__iscsi_", &iscsi_attr, 0 },
-	{ "nfsv3", "__nfsv3_", &stab_attr, 0 },
-	{ "nfsv4", "__nfsv4_", &stab_attr, 0 },
-	{ "xpv", "__xpv_", &xpv_attr, 0 },
-	{ "fc", "__fc_", &fc_attr, 0 },
-	{ "srp", "__srp_", &fc_attr, 0 },
-	{ "sysevent", "__sysevent_", &stab_attr, 0 },
-	{ "sdt", NULL, &sdt_attr, 0 },
-	{ NULL }
-};
-
-sdt_argdesc_t sdt_args[] = {
-	{ "sched", "wakeup", 0, 0, "kthread_t *", "lwpsinfo_t *" },
-	{ "sched", "wakeup", 1, 0, "kthread_t *", "psinfo_t *" },
-	{ "sched", "dequeue", 0, 0, "kthread_t *", "lwpsinfo_t *" },
-	{ "sched", "dequeue", 1, 0, "kthread_t *", "psinfo_t *" },
-	{ "sched", "dequeue", 2, 1, "disp_t *", "cpuinfo_t *" },
-	{ "sched", "enqueue", 0, 0, "kthread_t *", "lwpsinfo_t *" },
-	{ "sched", "enqueue", 1, 0, "kthread_t *", "psinfo_t *" },
-	{ "sched", "enqueue", 2, 1, "disp_t *", "cpuinfo_t *" },
-	{ "sched", "enqueue", 3, 2, "int" },
-	{ "sched", "off-cpu", 0, 0, "kthread_t *", "lwpsinfo_t *" },
-	{ "sched", "off-cpu", 1, 0, "kthread_t *", "psinfo_t *" },
-	{ "sched", "tick", 0, 0, "kthread_t *", "lwpsinfo_t *" },
-	{ "sched", "tick", 1, 0, "kthread_t *", "psinfo_t *" },
-	{ "sched", "change-pri", 0, 0, "kthread_t *", "lwpsinfo_t *" },
-	{ "sched", "change-pri", 1, 0, "kthread_t *", "psinfo_t *" },
-	{ "sched", "change-pri", 2, 1, "pri_t" },
-	{ "sched", "schedctl-nopreempt", 0, 0, "kthread_t *", "lwpsinfo_t *" },
-	{ "sched", "schedctl-nopreempt", 1, 0, "kthread_t *", "psinfo_t *" },
-	{ "sched", "schedctl-nopreempt", 2, 1, "int" },
-	{ "sched", "schedctl-preempt", 0, 0, "kthread_t *", "lwpsinfo_t *" },
-	{ "sched", "schedctl-preempt", 1, 0, "kthread_t *", "psinfo_t *" },
-	{ "sched", "schedctl-yield", 0, 0, "int" },
-	{ "sched", "surrender", 0, 0, "kthread_t *", "lwpsinfo_t *" },
-	{ "sched", "surrender", 1, 0, "kthread_t *", "psinfo_t *" },
-	{ "sched", "cpucaps-sleep", 0, 0, "kthread_t *", "lwpsinfo_t *" },
-	{ "sched", "cpucaps-sleep", 1, 0, "kthread_t *", "psinfo_t *" },
-	{ "sched", "cpucaps-wakeup", 0, 0, "kthread_t *", "lwpsinfo_t *" },
-	{ "sched", "cpucaps-wakeup", 1, 0, "kthread_t *", "psinfo_t *" },
-
-	{ "proc", "create", 0, 0, "proc_t *", "psinfo_t *" },
-	{ "proc", "exec", 0, 0, "string" },
-	{ "proc", "exec-failure", 0, 0, "int" },
-	{ "proc", "exit", 0, 0, "int" },
-	{ "proc", "fault", 0, 0, "int" },
-	{ "proc", "fault", 1, 1, "siginfo_t *" },
-	{ "proc", "lwp-create", 0, 0, "kthread_t *", "lwpsinfo_t *" },
-	{ "proc", "lwp-create", 1, 0, "kthread_t *", "psinfo_t *" },
-	{ "proc", "signal-clear", 0, 0, "int" },
-	{ "proc", "signal-clear", 1, 1, "siginfo_t *" },
-	{ "proc", "signal-discard", 0, 0, "kthread_t *", "lwpsinfo_t *" },
-	{ "proc", "signal-discard", 1, 1, "proc_t *", "psinfo_t *" },
-	{ "proc", "signal-discard", 2, 2, "int" },
-	{ "proc", "signal-handle", 0, 0, "int" },
-	{ "proc", "signal-handle", 1, 1, "siginfo_t *" },
-	{ "proc", "signal-handle", 2, 2, "void (*)(void)" },
-	{ "proc", "signal-send", 0, 0, "kthread_t *", "lwpsinfo_t *" },
-	{ "proc", "signal-send", 1, 0, "kthread_t *", "psinfo_t *" },
-	{ "proc", "signal-send", 2, 1, "int" },
-
-	{ "io", "start", 0, 0, "buf_t *", "bufinfo_t *" },
-	{ "io", "start", 1, 0, "buf_t *", "devinfo_t *" },
-	{ "io", "start", 2, 0, "buf_t *", "fileinfo_t *" },
-	{ "io", "done", 0, 0, "buf_t *", "bufinfo_t *" },
-	{ "io", "done", 1, 0, "buf_t *", "devinfo_t *" },
-	{ "io", "done", 2, 0, "buf_t *", "fileinfo_t *" },
-	{ "io", "wait-start", 0, 0, "buf_t *", "bufinfo_t *" },
-	{ "io", "wait-start", 1, 0, "buf_t *", "devinfo_t *" },
-	{ "io", "wait-start", 2, 0, "buf_t *", "fileinfo_t *" },
-	{ "io", "wait-done", 0, 0, "buf_t *", "bufinfo_t *" },
-	{ "io", "wait-done", 1, 0, "buf_t *", "devinfo_t *" },
-	{ "io", "wait-done", 2, 0, "buf_t *", "fileinfo_t *" },
-
-	{ "mib", NULL, 0, 0, "int" },
-
-	{ "fsinfo", NULL, 0, 0, "vnode_t *", "fileinfo_t *" },
-	{ "fsinfo", NULL, 1, 1, "int", "int" },
-
-	{ "iscsi", "async-send", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "async-send", 1, 1, "iscsi_async_evt_hdr_t *",
-	    "iscsiinfo_t *" },
-	{ "iscsi", "login-command", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "login-command", 1, 1, "iscsi_login_hdr_t *",
-	    "iscsiinfo_t *" },
-	{ "iscsi", "login-response", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "login-response", 1, 1, "iscsi_login_rsp_hdr_t *",
-	    "iscsiinfo_t *" },
-	{ "iscsi", "logout-command", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "logout-command", 1, 1, "iscsi_logout_hdr_t *",
-	    "iscsiinfo_t *" },
-	{ "iscsi", "logout-response", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "logout-response", 1, 1, "iscsi_logout_rsp_hdr_t *",
-	    "iscsiinfo_t *" },
-	{ "iscsi", "data-request", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "data-request", 1, 1, "iscsi_rtt_hdr_t *",
-	    "iscsiinfo_t *" },
-	{ "iscsi", "data-send", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "data-send", 1, 1, "iscsi_data_rsp_hdr_t *",
-	    "iscsiinfo_t *" },
-	{ "iscsi", "data-receive", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "data-receive", 1, 1, "iscsi_data_hdr_t *",
-	    "iscsiinfo_t *" },
-	{ "iscsi", "nop-send", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "nop-send", 1, 1, "iscsi_nop_in_hdr_t *", "iscsiinfo_t *" },
-	{ "iscsi", "nop-receive", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "nop-receive", 1, 1, "iscsi_nop_out_hdr_t *",
-	    "iscsiinfo_t *" },
-	{ "iscsi", "scsi-command", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "scsi-command", 1, 1, "iscsi_scsi_cmd_hdr_t *",
-	    "iscsiinfo_t *" },
-	{ "iscsi", "scsi-command", 2, 2, "scsi_task_t *", "scsicmd_t *" },
-	{ "iscsi", "scsi-response", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "scsi-response", 1, 1, "iscsi_scsi_rsp_hdr_t *",
-	    "iscsiinfo_t *" },
-	{ "iscsi", "task-command", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "task-command", 1, 1, "iscsi_scsi_task_mgt_hdr_t *",
-	    "iscsiinfo_t *" },
-	{ "iscsi", "task-response", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "task-response", 1, 1, "iscsi_scsi_task_mgt_rsp_hdr_t *",
-	    "iscsiinfo_t *" },
-	{ "iscsi", "text-command", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "text-command", 1, 1, "iscsi_text_hdr_t *",
-	    "iscsiinfo_t *" },
-	{ "iscsi", "text-response", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "text-response", 1, 1, "iscsi_text_rsp_hdr_t *",
-	    "iscsiinfo_t *" },
-	{ "iscsi", "xfer-start", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "xfer-start", 1, 0, "idm_conn_t *", "iscsiinfo_t *" },
-	{ "iscsi", "xfer-start", 2, 1, "uintptr_t", "xferinfo_t *" },
-	{ "iscsi", "xfer-start", 3, 2, "uint32_t"},
-	{ "iscsi", "xfer-start", 4, 3, "uintptr_t"},
-	{ "iscsi", "xfer-start", 5, 4, "uint32_t"},
-	{ "iscsi", "xfer-start", 6, 5, "uint32_t"},
-	{ "iscsi", "xfer-start", 7, 6, "uint32_t"},
-	{ "iscsi", "xfer-start", 8, 7, "int"},
-	{ "iscsi", "xfer-done", 0, 0, "idm_conn_t *", "conninfo_t *" },
-	{ "iscsi", "xfer-done", 1, 0, "idm_conn_t *", "iscsiinfo_t *" },
-	{ "iscsi", "xfer-done", 2, 1, "uintptr_t", "xferinfo_t *" },
-	{ "iscsi", "xfer-done", 3, 2, "uint32_t"},
-	{ "iscsi", "xfer-done", 4, 3, "uintptr_t"},
-	{ "iscsi", "xfer-done", 5, 4, "uint32_t"},
-	{ "iscsi", "xfer-done", 6, 5, "uint32_t"},
-	{ "iscsi", "xfer-done", 7, 6, "uint32_t"},
-	{ "iscsi", "xfer-done", 8, 7, "int"},
-
-	{ "nfsv3", "op-getattr-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-getattr-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-getattr-start", 2, 3, "GETATTR3args *" },
-	{ "nfsv3", "op-getattr-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-getattr-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-getattr-done", 2, 3, "GETATTR3res *" },
-	{ "nfsv3", "op-setattr-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-setattr-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-setattr-start", 2, 3, "SETATTR3args *" },
-	{ "nfsv3", "op-setattr-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-setattr-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-setattr-done", 2, 3, "SETATTR3res *" },
-	{ "nfsv3", "op-lookup-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-lookup-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-lookup-start", 2, 3, "LOOKUP3args *" },
-	{ "nfsv3", "op-lookup-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-lookup-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-lookup-done", 2, 3, "LOOKUP3res *" },
-	{ "nfsv3", "op-access-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-access-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-access-start", 2, 3, "ACCESS3args *" },
-	{ "nfsv3", "op-access-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-access-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-access-done", 2, 3, "ACCESS3res *" },
-	{ "nfsv3", "op-commit-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-commit-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-commit-start", 2, 3, "COMMIT3args *" },
-	{ "nfsv3", "op-commit-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-commit-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-commit-done", 2, 3, "COMMIT3res *" },
-	{ "nfsv3", "op-create-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-create-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-create-start", 2, 3, "CREATE3args *" },
-	{ "nfsv3", "op-create-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-create-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-create-done", 2, 3, "CREATE3res *" },
-	{ "nfsv3", "op-fsinfo-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-fsinfo-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-fsinfo-start", 2, 3, "FSINFO3args *" },
-	{ "nfsv3", "op-fsinfo-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-fsinfo-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-fsinfo-done", 2, 3, "FSINFO3res *" },
-	{ "nfsv3", "op-fsstat-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-fsstat-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-fsstat-start", 2, 3, "FSSTAT3args *" },
-	{ "nfsv3", "op-fsstat-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-fsstat-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-fsstat-done", 2, 3, "FSSTAT3res *" },
-	{ "nfsv3", "op-link-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-link-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-link-start", 2, 3, "LINK3args *" },
-	{ "nfsv3", "op-link-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-link-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-link-done", 2, 3, "LINK3res *" },
-	{ "nfsv3", "op-mkdir-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-mkdir-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-mkdir-start", 2, 3, "MKDIR3args *" },
-	{ "nfsv3", "op-mkdir-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-mkdir-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-mkdir-done", 2, 3, "MKDIR3res *" },
-	{ "nfsv3", "op-mknod-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-mknod-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-mknod-start", 2, 3, "MKNOD3args *" },
-	{ "nfsv3", "op-mknod-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-mknod-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-mknod-done", 2, 3, "MKNOD3res *" },
-	{ "nfsv3", "op-null-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-null-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-null-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-null-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-pathconf-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-pathconf-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-pathconf-start", 2, 3, "PATHCONF3args *" },
-	{ "nfsv3", "op-pathconf-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-pathconf-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-pathconf-done", 2, 3, "PATHCONF3res *" },
-	{ "nfsv3", "op-read-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-read-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-read-start", 2, 3, "READ3args *" },
-	{ "nfsv3", "op-read-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-read-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-read-done", 2, 3, "READ3res *" },
-	{ "nfsv3", "op-readdir-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-readdir-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-readdir-start", 2, 3, "READDIR3args *" },
-	{ "nfsv3", "op-readdir-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-readdir-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-readdir-done", 2, 3, "READDIR3res *" },
-	{ "nfsv3", "op-readdirplus-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-readdirplus-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-readdirplus-start", 2, 3, "READDIRPLUS3args *" },
-	{ "nfsv3", "op-readdirplus-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-readdirplus-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-readdirplus-done", 2, 3, "READDIRPLUS3res *" },
-	{ "nfsv3", "op-readlink-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-readlink-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-readlink-start", 2, 3, "READLINK3args *" },
-	{ "nfsv3", "op-readlink-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-readlink-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-readlink-done", 2, 3, "READLINK3res *" },
-	{ "nfsv3", "op-remove-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-remove-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-remove-start", 2, 3, "REMOVE3args *" },
-	{ "nfsv3", "op-remove-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-remove-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-remove-done", 2, 3, "REMOVE3res *" },
-	{ "nfsv3", "op-rename-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-rename-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-rename-start", 2, 3, "RENAME3args *" },
-	{ "nfsv3", "op-rename-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-rename-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-rename-done", 2, 3, "RENAME3res *" },
-	{ "nfsv3", "op-rmdir-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-rmdir-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-rmdir-start", 2, 3, "RMDIR3args *" },
-	{ "nfsv3", "op-rmdir-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-rmdir-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-rmdir-done", 2, 3, "RMDIR3res *" },
-	{ "nfsv3", "op-setattr-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-setattr-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-setattr-start", 2, 3, "SETATTR3args *" },
-	{ "nfsv3", "op-setattr-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-setattr-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-setattr-done", 2, 3, "SETATTR3res *" },
-	{ "nfsv3", "op-symlink-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-symlink-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-symlink-start", 2, 3, "SYMLINK3args *" },
-	{ "nfsv3", "op-symlink-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-symlink-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-symlink-done", 2, 3, "SYMLINK3res *" },
-	{ "nfsv3", "op-write-start", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-write-start", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-write-start", 2, 3, "WRITE3args *" },
-	{ "nfsv3", "op-write-done", 0, 0, "struct svc_req *",
-	    "conninfo_t *" },
-	{ "nfsv3", "op-write-done", 1, 1, "nfsv3oparg_t *",
-	    "nfsv3opinfo_t *" },
-	{ "nfsv3", "op-write-done", 2, 3, "WRITE3res *" },
-
-	{ "nfsv4", "null-start", 0, 0, "struct svc_req *", "conninfo_t *" },
-	{ "nfsv4", "null-done", 0, 0, "struct svc_req *", "conninfo_t *" },
-	{ "nfsv4", "compound-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "compound-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "compound-start", 2, 1, "COMPOUND4args *" },
-	{ "nfsv4", "compound-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "compound-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "compound-done", 2, 1, "COMPOUND4res *" },
-	{ "nfsv4", "op-access-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *"},
-	{ "nfsv4", "op-access-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-access-start", 2, 1, "ACCESS4args *" },
-	{ "nfsv4", "op-access-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-access-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-access-done", 2, 1, "ACCESS4res *" },
-	{ "nfsv4", "op-close-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-close-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-close-start", 2, 1, "CLOSE4args *" },
-	{ "nfsv4", "op-close-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-close-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-close-done", 2, 1, "CLOSE4res *" },
-	{ "nfsv4", "op-commit-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-commit-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-commit-start", 2, 1, "COMMIT4args *" },
-	{ "nfsv4", "op-commit-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-commit-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-commit-done", 2, 1, "COMMIT4res *" },
-	{ "nfsv4", "op-create-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-create-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-create-start", 2, 1, "CREATE4args *" },
-	{ "nfsv4", "op-create-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-create-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-create-done", 2, 1, "CREATE4res *" },
-	{ "nfsv4", "op-delegpurge-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-delegpurge-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-delegpurge-start", 2, 1, "DELEGPURGE4args *" },
-	{ "nfsv4", "op-delegpurge-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-delegpurge-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-delegpurge-done", 2, 1, "DELEGPURGE4res *" },
-	{ "nfsv4", "op-delegreturn-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-delegreturn-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-delegreturn-start", 2, 1, "DELEGRETURN4args *" },
-	{ "nfsv4", "op-delegreturn-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-delegreturn-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-delegreturn-done", 2, 1, "DELEGRETURN4res *" },
-	{ "nfsv4", "op-getattr-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-getattr-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-getattr-start", 2, 1, "GETATTR4args *" },
-	{ "nfsv4", "op-getattr-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-getattr-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-getattr-done", 2, 1, "GETATTR4res *" },
-	{ "nfsv4", "op-getfh-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-getfh-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-getfh-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-getfh-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-getfh-done", 2, 1, "GETFH4res *" },
-	{ "nfsv4", "op-link-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-link-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-link-start", 2, 1, "LINK4args *" },
-	{ "nfsv4", "op-link-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-link-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-link-done", 2, 1, "LINK4res *" },
-	{ "nfsv4", "op-lock-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-lock-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-lock-start", 2, 1, "LOCK4args *" },
-	{ "nfsv4", "op-lock-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-lock-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-lock-done", 2, 1, "LOCK4res *" },
-	{ "nfsv4", "op-lockt-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-lockt-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-lockt-start", 2, 1, "LOCKT4args *" },
-	{ "nfsv4", "op-lockt-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-lockt-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-lockt-done", 2, 1, "LOCKT4res *" },
-	{ "nfsv4", "op-locku-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-locku-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-locku-start", 2, 1, "LOCKU4args *" },
-	{ "nfsv4", "op-locku-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-locku-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-locku-done", 2, 1, "LOCKU4res *" },
-	{ "nfsv4", "op-lookup-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-lookup-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-lookup-start", 2, 1, "LOOKUP4args *" },
-	{ "nfsv4", "op-lookup-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-lookup-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-lookup-done", 2, 1, "LOOKUP4res *" },
-	{ "nfsv4", "op-lookupp-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-lookupp-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-lookupp-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-lookupp-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-lookupp-done", 2, 1, "LOOKUPP4res *" },
-	{ "nfsv4", "op-nverify-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-nverify-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-nverify-start", 2, 1, "NVERIFY4args *" },
-	{ "nfsv4", "op-nverify-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-nverify-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-nverify-done", 2, 1, "NVERIFY4res *" },
-	{ "nfsv4", "op-open-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-open-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-open-start", 2, 1, "OPEN4args *" },
-	{ "nfsv4", "op-open-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-open-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-open-done", 2, 1, "OPEN4res *" },
-	{ "nfsv4", "op-open-confirm-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-open-confirm-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-open-confirm-start", 2, 1, "OPEN_CONFIRM4args *" },
-	{ "nfsv4", "op-open-confirm-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-open-confirm-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-open-confirm-done", 2, 1, "OPEN_CONFIRM4res *" },
-	{ "nfsv4", "op-open-downgrade-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-open-downgrade-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-open-downgrade-start", 2, 1, "OPEN_DOWNGRADE4args *" },
-	{ "nfsv4", "op-open-downgrade-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-open-downgrade-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-open-downgrade-done", 2, 1, "OPEN_DOWNGRADE4res *" },
-	{ "nfsv4", "op-openattr-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-openattr-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-openattr-start", 2, 1, "OPENATTR4args *" },
-	{ "nfsv4", "op-openattr-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-openattr-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-openattr-done", 2, 1, "OPENATTR4res *" },
-	{ "nfsv4", "op-putfh-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-putfh-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-putfh-start", 2, 1, "PUTFH4args *" },
-	{ "nfsv4", "op-putfh-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-putfh-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-putfh-done", 2, 1, "PUTFH4res *" },
-	{ "nfsv4", "op-putpubfh-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-putpubfh-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-putpubfh-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-putpubfh-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-putpubfh-done", 2, 1, "PUTPUBFH4res *" },
-	{ "nfsv4", "op-putrootfh-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-putrootfh-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-putrootfh-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-putrootfh-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-putrootfh-done", 2, 1, "PUTROOTFH4res *" },
-	{ "nfsv4", "op-read-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-read-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-read-start", 2, 1, "READ4args *" },
-	{ "nfsv4", "op-read-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-read-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-read-done", 2, 1, "READ4res *" },
-	{ "nfsv4", "op-readdir-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-readdir-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-readdir-start", 2, 1, "READDIR4args *" },
-	{ "nfsv4", "op-readdir-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-readdir-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-readdir-done", 2, 1, "READDIR4res *" },
-	{ "nfsv4", "op-readlink-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-readlink-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-readlink-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-readlink-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-readlink-done", 2, 1, "READLINK4res *" },
-	{ "nfsv4", "op-release-lockowner-start", 0, 0,
-	    "struct compound_state *", "conninfo_t *" },
-	{ "nfsv4", "op-release-lockowner-start", 1, 0,
-	    "struct compound_state *", "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-release-lockowner-start", 2, 1,
-	    "RELEASE_LOCKOWNER4args *" },
-	{ "nfsv4", "op-release-lockowner-done", 0, 0,
-	    "struct compound_state *", "conninfo_t *" },
-	{ "nfsv4", "op-release-lockowner-done", 1, 0,
-	    "struct compound_state *", "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-release-lockowner-done", 2, 1,
-	    "RELEASE_LOCKOWNER4res *" },
-	{ "nfsv4", "op-remove-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-remove-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-remove-start", 2, 1, "REMOVE4args *" },
-	{ "nfsv4", "op-remove-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-remove-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-remove-done", 2, 1, "REMOVE4res *" },
-	{ "nfsv4", "op-rename-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-rename-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-rename-start", 2, 1, "RENAME4args *" },
-	{ "nfsv4", "op-rename-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-rename-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-rename-done", 2, 1, "RENAME4res *" },
-	{ "nfsv4", "op-renew-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-renew-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-renew-start", 2, 1, "RENEW4args *" },
-	{ "nfsv4", "op-renew-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-renew-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-renew-done", 2, 1, "RENEW4res *" },
-	{ "nfsv4", "op-restorefh-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-restorefh-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-restorefh-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-restorefh-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-restorefh-done", 2, 1, "RESTOREFH4res *" },
-	{ "nfsv4", "op-savefh-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-savefh-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-savefh-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-savefh-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-savefh-done", 2, 1, "SAVEFH4res *" },
-	{ "nfsv4", "op-secinfo-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-secinfo-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-secinfo-start", 2, 1, "SECINFO4args *" },
-	{ "nfsv4", "op-secinfo-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-secinfo-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-secinfo-done", 2, 1, "SECINFO4res *" },
-	{ "nfsv4", "op-setattr-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-setattr-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-setattr-start", 2, 1, "SETATTR4args *" },
-	{ "nfsv4", "op-setattr-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-setattr-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-setattr-done", 2, 1, "SETATTR4res *" },
-	{ "nfsv4", "op-setclientid-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-setclientid-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-setclientid-start", 2, 1, "SETCLIENTID4args *" },
-	{ "nfsv4", "op-setclientid-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-setclientid-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-setclientid-done", 2, 1, "SETCLIENTID4res *" },
-	{ "nfsv4", "op-setclientid-confirm-start", 0, 0,
-	    "struct compound_state *", "conninfo_t *" },
-	{ "nfsv4", "op-setclientid-confirm-start", 1, 0,
-	    "struct compound_state *", "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-setclientid-confirm-start", 2, 1,
-	    "SETCLIENTID_CONFIRM4args *" },
-	{ "nfsv4", "op-setclientid-confirm-done", 0, 0,
-	    "struct compound_state *", "conninfo_t *" },
-	{ "nfsv4", "op-setclientid-confirm-done", 1, 0,
-	    "struct compound_state *", "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-setclientid-confirm-done", 2, 1,
-	    "SETCLIENTID_CONFIRM4res *" },
-	{ "nfsv4", "op-verify-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-verify-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-verify-start", 2, 1, "VERIFY4args *" },
-	{ "nfsv4", "op-verify-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-verify-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-verify-done", 2, 1, "VERIFY4res *" },
-	{ "nfsv4", "op-write-start", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-write-start", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-write-start", 2, 1, "WRITE4args *" },
-	{ "nfsv4", "op-write-done", 0, 0, "struct compound_state *",
-	    "conninfo_t *" },
-	{ "nfsv4", "op-write-done", 1, 0, "struct compound_state *",
-	    "nfsv4opinfo_t *" },
-	{ "nfsv4", "op-write-done", 2, 1, "WRITE4res *" },
-	{ "nfsv4", "cb-recall-start", 0, 0, "rfs4_client_t *",
-	    "conninfo_t *" },
-	{ "nfsv4", "cb-recall-start", 1, 1, "rfs4_deleg_state_t *",
-	    "nfsv4cbinfo_t *" },
-	{ "nfsv4", "cb-recall-start", 2, 2, "CB_RECALL4args *" },
-	{ "nfsv4", "cb-recall-done", 0, 0, "rfs4_client_t *",
-	    "conninfo_t *" },
-	{ "nfsv4", "cb-recall-done", 1, 1, "rfs4_deleg_state_t *",
-	    "nfsv4cbinfo_t *" },
-	{ "nfsv4", "cb-recall-done", 2, 2, "CB_RECALL4res *" },
-
-	{ "sysevent", "post", 0, 0, "evch_bind_t *", "syseventchaninfo_t *" },
-	{ "sysevent", "post", 1, 1, "sysevent_impl_t *", "syseventinfo_t *" },
-
-	{ "xpv", "add-to-physmap-end", 0, 0, "int" },
-	{ "xpv", "add-to-physmap-start", 0, 0, "domid_t" },
-	{ "xpv", "add-to-physmap-start", 1, 1, "uint_t" },
-	{ "xpv", "add-to-physmap-start", 2, 2, "ulong_t" },
-	{ "xpv", "add-to-physmap-start", 3, 3, "ulong_t" },
-	{ "xpv", "decrease-reservation-end", 0, 0, "int" },
-	{ "xpv", "decrease-reservation-start", 0, 0, "domid_t" },
-	{ "xpv", "decrease-reservation-start", 1, 1, "ulong_t" },
-	{ "xpv", "decrease-reservation-start", 2, 2, "uint_t" },
-	{ "xpv", "decrease-reservation-start", 3, 3, "ulong_t *" },
-	{ "xpv", "dom-create-start", 0, 0, "xen_domctl_t *" },
-	{ "xpv", "dom-destroy-start", 0, 0, "domid_t" },
-	{ "xpv", "dom-pause-start", 0, 0, "domid_t" },
-	{ "xpv", "dom-unpause-start", 0, 0, "domid_t" },
-	{ "xpv", "dom-create-end", 0, 0, "int" },
-	{ "xpv", "dom-destroy-end", 0, 0, "int" },
-	{ "xpv", "dom-pause-end", 0, 0, "int" },
-	{ "xpv", "dom-unpause-end", 0, 0, "int" },
-	{ "xpv", "evtchn-op-end", 0, 0, "int" },
-	{ "xpv", "evtchn-op-start", 0, 0, "int" },
-	{ "xpv", "evtchn-op-start", 1, 1, "void *" },
-	{ "xpv", "increase-reservation-end", 0, 0, "int" },
-	{ "xpv", "increase-reservation-start", 0, 0, "domid_t" },
-	{ "xpv", "increase-reservation-start", 1, 1, "ulong_t" },
-	{ "xpv", "increase-reservation-start", 2, 2, "uint_t" },
-	{ "xpv", "increase-reservation-start", 3, 3, "ulong_t *" },
-	{ "xpv", "mmap-end", 0, 0, "int" },
-	{ "xpv", "mmap-entry", 0, 0, "ulong_t" },
-	{ "xpv", "mmap-entry", 1, 1, "ulong_t" },
-	{ "xpv", "mmap-entry", 2, 2, "ulong_t" },
-	{ "xpv", "mmap-start", 0, 0, "domid_t" },
-	{ "xpv", "mmap-start", 1, 1, "int" },
-	{ "xpv", "mmap-start", 2, 2, "privcmd_mmap_entry_t *" },
-	{ "xpv", "mmapbatch-end", 0, 0, "int" },
-	{ "xpv", "mmapbatch-end", 1, 1, "struct seg *" },
-	{ "xpv", "mmapbatch-end", 2, 2, "caddr_t" },
-	{ "xpv", "mmapbatch-start", 0, 0, "domid_t" },
-	{ "xpv", "mmapbatch-start", 1, 1, "int" },
-	{ "xpv", "mmapbatch-start", 2, 2, "caddr_t" },
-	{ "xpv", "mmu-ext-op-end", 0, 0, "int" },
-	{ "xpv", "mmu-ext-op-start", 0, 0, "int" },
-	{ "xpv", "mmu-ext-op-start", 1, 1, "struct mmuext_op *" },
-	{ "xpv", "mmu-update-start", 0, 0, "int" },
-	{ "xpv", "mmu-update-start", 1, 1, "int" },
-	{ "xpv", "mmu-update-start", 2, 2, "mmu_update_t *" },
-	{ "xpv", "mmu-update-end", 0, 0, "int" },
-	{ "xpv", "populate-physmap-end", 0, 0, "int" },
-	{ "xpv", "populate-physmap-start", 0, 0, "domid_t" },
-	{ "xpv", "populate-physmap-start", 1, 1, "ulong_t" },
-	{ "xpv", "populate-physmap-start", 2, 2, "ulong_t *" },
-	{ "xpv", "set-memory-map-end", 0, 0, "int" },
-	{ "xpv", "set-memory-map-start", 0, 0, "domid_t" },
-	{ "xpv", "set-memory-map-start", 1, 1, "int" },
-	{ "xpv", "set-memory-map-start", 2, 2, "struct xen_memory_map *" },
-	{ "xpv", "setvcpucontext-end", 0, 0, "int" },
-	{ "xpv", "setvcpucontext-start", 0, 0, "domid_t" },
-	{ "xpv", "setvcpucontext-start", 1, 1, "vcpu_guest_context_t *" },
-
-	{ "srp", "service-up", 0, 0, "srpt_session_t *", "conninfo_t *" },
-	{ "srp", "service-up", 1, 0, "srpt_session_t *", "srp_portinfo_t *" },
-	{ "srp", "service-down", 0, 0, "srpt_session_t *", "conninfo_t *" },
-	{ "srp", "service-down", 1, 0, "srpt_session_t *",
-	    "srp_portinfo_t *" },
-	{ "srp", "login-command", 0, 0, "srpt_session_t *", "conninfo_t *" },
-	{ "srp", "login-command", 1, 0, "srpt_session_t *",
-	    "srp_portinfo_t *" },
-	{ "srp", "login-command", 2, 1, "srp_login_req_t *",
-	    "srp_logininfo_t *" },
-	{ "srp", "login-response", 0, 0, "srpt_session_t *", "conninfo_t *" },
-	{ "srp", "login-response", 1, 0, "srpt_session_t *",
-	    "srp_portinfo_t *" },
-	{ "srp", "login-response", 2, 1, "srp_login_rsp_t *",
-	    "srp_logininfo_t *" },
-	{ "srp", "login-response", 3, 2, "srp_login_rej_t *" },
-	{ "srp", "logout-command", 0, 0, "srpt_channel_t *", "conninfo_t *" },
-	{ "srp", "logout-command", 1, 0, "srpt_channel_t *",
-	    "srp_portinfo_t *" },
-	{ "srp", "task-command", 0, 0, "srpt_channel_t *", "conninfo_t *" },
-	{ "srp", "task-command", 1, 0, "srpt_channel_t *",
-	    "srp_portinfo_t *" },
-	{ "srp", "task-command", 2, 1, "srp_cmd_req_t *", "srp_taskinfo_t *" },
-	{ "srp", "task-response", 0, 0, "srpt_channel_t *", "conninfo_t *" },
-	{ "srp", "task-response", 1, 0, "srpt_channel_t *",
-	    "srp_portinfo_t *" },
-	{ "srp", "task-response", 2, 1, "srp_rsp_t *", "srp_taskinfo_t *" },
-	{ "srp", "task-response", 3, 2, "scsi_task_t *" },
-	{ "srp", "task-response", 4, 3, "int8_t" },
-	{ "srp", "scsi-command", 0, 0, "srpt_channel_t *", "conninfo_t *" },
-	{ "srp", "scsi-command", 1, 0, "srpt_channel_t *",
-	    "srp_portinfo_t *" },
-	{ "srp", "scsi-command", 2, 1, "scsi_task_t *", "scsicmd_t *" },
-	{ "srp", "scsi-command", 3, 2, "srp_cmd_req_t *", "srp_taskinfo_t *" },
-	{ "srp", "scsi-response", 0, 0, "srpt_channel_t *", "conninfo_t *" },
-	{ "srp", "scsi-response", 1, 0, "srpt_channel_t *",
-	    "srp_portinfo_t *" },
-	{ "srp", "scsi-response", 2, 1, "srp_rsp_t *", "srp_taskinfo_t *" },
-	{ "srp", "scsi-response", 3, 2, "scsi_task_t *" },
-	{ "srp", "scsi-response", 4, 3, "int8_t" },
-	{ "srp", "xfer-start", 0, 0, "srpt_channel_t *", "conninfo_t *" },
-	{ "srp", "xfer-start", 1, 0, "srpt_channel_t *",
-	    "srp_portinfo_t *" },
-	{ "srp", "xfer-start", 2, 1, "ibt_wr_ds_t *", "xferinfo_t *" },
-	{ "srp", "xfer-start", 3, 2, "srpt_iu_t *", "srp_taskinfo_t *" },
-	{ "srp", "xfer-start", 4, 3, "ibt_send_wr_t *"},
-	{ "srp", "xfer-start", 5, 4, "uint32_t" },
-	{ "srp", "xfer-start", 6, 5, "uint32_t" },
-	{ "srp", "xfer-start", 7, 6, "uint32_t" },
-	{ "srp", "xfer-start", 8, 7, "uint32_t" },
-	{ "srp", "xfer-done", 0, 0, "srpt_channel_t *", "conninfo_t *" },
-	{ "srp", "xfer-done", 1, 0, "srpt_channel_t *",
-	    "srp_portinfo_t *" },
-	{ "srp", "xfer-done", 2, 1, "ibt_wr_ds_t *", "xferinfo_t *" },
-	{ "srp", "xfer-done", 3, 2, "srpt_iu_t *", "srp_taskinfo_t *" },
-	{ "srp", "xfer-done", 4, 3, "ibt_send_wr_t *"},
-	{ "srp", "xfer-done", 5, 4, "uint32_t" },
-	{ "srp", "xfer-done", 6, 5, "uint32_t" },
-	{ "srp", "xfer-done", 7, 6, "uint32_t" },
-	{ "srp", "xfer-done", 8, 7, "uint32_t" },
-
-	{ "fc", "link-up",   0, 0, "fct_i_local_port_t *", "conninfo_t *" },
-	{ "fc", "link-down", 0, 0, "fct_i_local_port_t *", "conninfo_t *" },
-	{ "fc", "fabric-login-start", 0, 0, "fct_i_local_port_t *",
-	    "conninfo_t *" },
-	{ "fc", "fabric-login-start", 1, 0, "fct_i_local_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "fabric-login-end", 0, 0, "fct_i_local_port_t *",
-	    "conninfo_t *" },
-	{ "fc", "fabric-login-end", 1, 0, "fct_i_local_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "rport-login-start", 0, 0, "fct_cmd_t *",
-	    "conninfo_t *" },
-	{ "fc", "rport-login-start", 1, 1, "fct_local_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "rport-login-start", 2, 2, "fct_i_remote_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "rport-login-start", 3, 3, "int", "int" },
-	{ "fc", "rport-login-end", 0, 0, "fct_cmd_t *",
-	    "conninfo_t *" },
-	{ "fc", "rport-login-end", 1, 1, "fct_local_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "rport-login-end", 2, 2, "fct_i_remote_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "rport-login-end", 3, 3, "int", "int" },
-	{ "fc", "rport-login-end", 4, 4, "int", "int" },
-	{ "fc", "rport-logout-start", 0, 0, "fct_cmd_t *",
-	    "conninfo_t *" },
-	{ "fc", "rport-logout-start", 1, 1, "fct_local_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "rport-logout-start", 2, 2, "fct_i_remote_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "rport-logout-start", 3, 3, "int", "int" },
-	{ "fc", "rport-logout-end", 0, 0, "fct_cmd_t *",
-	    "conninfo_t *" },
-	{ "fc", "rport-logout-end", 1, 1, "fct_local_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "rport-logout-end", 2, 2, "fct_i_remote_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "rport-logout-end", 3, 3, "int", "int" },
-	{ "fc", "scsi-command", 0, 0, "fct_cmd_t *",
-	    "conninfo_t *" },
-	{ "fc", "scsi-command", 1, 1, "fct_i_local_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "scsi-command", 2, 2, "scsi_task_t *",
-	    "scsicmd_t *" },
-	{ "fc", "scsi-command", 3, 3, "fct_i_remote_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "scsi-response", 0, 0, "fct_cmd_t *",
-	    "conninfo_t *" },
-	{ "fc", "scsi-response", 1, 1, "fct_i_local_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "scsi-response", 2, 2, "scsi_task_t *",
-	    "scsicmd_t *" },
-	{ "fc", "scsi-response", 3, 3, "fct_i_remote_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "xfer-start", 0, 0, "fct_cmd_t *",
-	    "conninfo_t *" },
-	{ "fc", "xfer-start", 1, 1, "fct_i_local_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "xfer-start", 2, 2, "scsi_task_t *",
-	    "scsicmd_t *" },
-	{ "fc", "xfer-start", 3, 3, "fct_i_remote_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "xfer-start", 4, 4, "stmf_data_buf_t *",
-	    "fc_xferinfo_t *" },
-	{ "fc", "xfer-done", 0, 0, "fct_cmd_t *",
-	    "conninfo_t *" },
-	{ "fc", "xfer-done", 1, 1, "fct_i_local_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "xfer-done", 2, 2, "scsi_task_t *",
-	    "scsicmd_t *" },
-	{ "fc", "xfer-done", 3, 3, "fct_i_remote_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "xfer-done", 4, 4, "stmf_data_buf_t *",
-	    "fc_xferinfo_t *" },
-	{ "fc", "rscn-receive", 0, 0, "fct_i_local_port_t *",
-	    "conninfo_t *" },
-	{ "fc", "rscn-receive", 1, 1, "int", "int"},
-	{ "fc", "abts-receive", 0, 0, "fct_cmd_t *",
-	    "conninfo_t *" },
-	{ "fc", "abts-receive", 1, 1, "fct_i_local_port_t *",
-	    "fc_port_info_t *" },
-	{ "fc", "abts-receive", 2, 2, "fct_i_remote_port_t *",
-	    "fc_port_info_t *" },
-
-
-	{ NULL }
-};
-
-/*ARGSUSED*/
-void
-sdt_getargdesc(void *arg, dtrace_id_t id, void *parg, dtrace_argdesc_t *desc)
-{
-	sdt_probe_t *sdp = parg;
-	int i;
-
-	desc->dtargd_native[0] = '\0';
-	desc->dtargd_xlate[0] = '\0';
-
-	for (i = 0; sdt_args[i].sda_provider != NULL; i++) {
-		sdt_argdesc_t *a = &sdt_args[i];
-
-		if (strcmp(sdp->sdp_provider->sdtp_name, a->sda_provider) != 0)
-			continue;
-
-		if (a->sda_name != NULL &&
-		    strcmp(sdp->sdp_name, a->sda_name) != 0)
-			continue;
-
-		if (desc->dtargd_ndx != a->sda_ndx)
-			continue;
-
-		if (a->sda_native != NULL)
-			(void) strcpy(desc->dtargd_native, a->sda_native);
-
-		if (a->sda_xlate != NULL)
-			(void) strcpy(desc->dtargd_xlate, a->sda_xlate);
-
-		desc->dtargd_mapping = a->sda_mapping;
-		return;
-	}
-
-	desc->dtargd_ndx = DTRACE_ARGNONE;
-}
diff --git a/external/cddl/osnet/dist/uts/common/dtrace/systrace.c b/external/cddl/osnet/dist/uts/common/dtrace/systrace.c
deleted file mode 100644
index 1a01d4f..0000000
--- a/external/cddl/osnet/dist/uts/common/dtrace/systrace.c
+++ /dev/null
@@ -1,374 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-#include <sys/dtrace.h>
-#include <sys/systrace.h>
-#include <sys/stat.h>
-#include <sys/systm.h>
-#include <sys/conf.h>
-#include <sys/ddi.h>
-#include <sys/sunddi.h>
-#include <sys/atomic.h>
-
-#define	SYSTRACE_ARTIFICIAL_FRAMES	1
-
-#define	SYSTRACE_SHIFT			16
-#define	SYSTRACE_ISENTRY(x)		((int)(x) >> SYSTRACE_SHIFT)
-#define	SYSTRACE_SYSNUM(x)		((int)(x) & ((1 << SYSTRACE_SHIFT) - 1))
-#define	SYSTRACE_ENTRY(id)		((1 << SYSTRACE_SHIFT) | (id))
-#define	SYSTRACE_RETURN(id)		(id)
-
-#if ((1 << SYSTRACE_SHIFT) <= NSYSCALL)
-#error 1 << SYSTRACE_SHIFT must exceed number of system calls
-#endif
-
-static dev_info_t *systrace_devi;
-static dtrace_provider_id_t systrace_id;
-
-static void
-systrace_init(struct sysent *actual, systrace_sysent_t **interposed)
-{
-	systrace_sysent_t *sysent = *interposed;
-	int i;
-
-	if (sysent == NULL) {
-		*interposed = sysent = kmem_zalloc(sizeof (systrace_sysent_t) *
-		    NSYSCALL, KM_SLEEP);
-	}
-
-	for (i = 0; i < NSYSCALL; i++) {
-		struct sysent *a = &actual[i];
-		systrace_sysent_t *s = &sysent[i];
-
-		if (LOADABLE_SYSCALL(a) && !LOADED_SYSCALL(a))
-			continue;
-
-		if (a->sy_callc == dtrace_systrace_syscall)
-			continue;
-
-#ifdef _SYSCALL32_IMPL
-		if (a->sy_callc == dtrace_systrace_syscall32)
-			continue;
-#endif
-
-		s->stsy_underlying = a->sy_callc;
-	}
-}
-
-/*ARGSUSED*/
-static void
-systrace_provide(void *arg, const dtrace_probedesc_t *desc)
-{
-	int i;
-
-	if (desc != NULL)
-		return;
-
-	systrace_init(sysent, &systrace_sysent);
-#ifdef _SYSCALL32_IMPL
-	systrace_init(sysent32, &systrace_sysent32);
-#endif
-
-	for (i = 0; i < NSYSCALL; i++) {
-		if (systrace_sysent[i].stsy_underlying == NULL)
-			continue;
-
-		if (dtrace_probe_lookup(systrace_id, NULL,
-		    syscallnames[i], "entry") != 0)
-			continue;
-
-		(void) dtrace_probe_create(systrace_id, NULL, syscallnames[i],
-		    "entry", SYSTRACE_ARTIFICIAL_FRAMES,
-		    (void *)((uintptr_t)SYSTRACE_ENTRY(i)));
-		(void) dtrace_probe_create(systrace_id, NULL, syscallnames[i],
-		    "return", SYSTRACE_ARTIFICIAL_FRAMES,
-		    (void *)((uintptr_t)SYSTRACE_RETURN(i)));
-
-		systrace_sysent[i].stsy_entry = DTRACE_IDNONE;
-		systrace_sysent[i].stsy_return = DTRACE_IDNONE;
-#ifdef _SYSCALL32_IMPL
-		systrace_sysent32[i].stsy_entry = DTRACE_IDNONE;
-		systrace_sysent32[i].stsy_return = DTRACE_IDNONE;
-#endif
-	}
-}
-
-/*ARGSUSED*/
-static void
-systrace_destroy(void *arg, dtrace_id_t id, void *parg)
-{
-	int sysnum = SYSTRACE_SYSNUM((uintptr_t)parg);
-
-	/*
-	 * There's nothing to do here but assert that we have actually been
-	 * disabled.
-	 */
-	if (SYSTRACE_ISENTRY((uintptr_t)parg)) {
-		ASSERT(systrace_sysent[sysnum].stsy_entry == DTRACE_IDNONE);
-#ifdef _SYSCALL32_IMPL
-		ASSERT(systrace_sysent32[sysnum].stsy_entry == DTRACE_IDNONE);
-#endif
-	} else {
-		ASSERT(systrace_sysent[sysnum].stsy_return == DTRACE_IDNONE);
-#ifdef _SYSCALL32_IMPL
-		ASSERT(systrace_sysent32[sysnum].stsy_return == DTRACE_IDNONE);
-#endif
-	}
-}
-
-/*ARGSUSED*/
-static int
-systrace_enable(void *arg, dtrace_id_t id, void *parg)
-{
-	int sysnum = SYSTRACE_SYSNUM((uintptr_t)parg);
-	int enabled = (systrace_sysent[sysnum].stsy_entry != DTRACE_IDNONE ||
-	    systrace_sysent[sysnum].stsy_return != DTRACE_IDNONE);
-
-	if (SYSTRACE_ISENTRY((uintptr_t)parg)) {
-		systrace_sysent[sysnum].stsy_entry = id;
-#ifdef _SYSCALL32_IMPL
-		systrace_sysent32[sysnum].stsy_entry = id;
-#endif
-	} else {
-		systrace_sysent[sysnum].stsy_return = id;
-#ifdef _SYSCALL32_IMPL
-		systrace_sysent32[sysnum].stsy_return = id;
-#endif
-	}
-
-	if (enabled) {
-		ASSERT(sysent[sysnum].sy_callc == dtrace_systrace_syscall);
-		return (0);
-	}
-
-	(void) casptr(&sysent[sysnum].sy_callc,
-	    (void *)systrace_sysent[sysnum].stsy_underlying,
-	    (void *)dtrace_systrace_syscall);
-#ifdef _SYSCALL32_IMPL
-	(void) casptr(&sysent32[sysnum].sy_callc,
-	    (void *)systrace_sysent32[sysnum].stsy_underlying,
-	    (void *)dtrace_systrace_syscall32);
-#endif
-	return (0);
-}
-
-/*ARGSUSED*/
-static void
-systrace_disable(void *arg, dtrace_id_t id, void *parg)
-{
-	int sysnum = SYSTRACE_SYSNUM((uintptr_t)parg);
-	int disable = (systrace_sysent[sysnum].stsy_entry == DTRACE_IDNONE ||
-	    systrace_sysent[sysnum].stsy_return == DTRACE_IDNONE);
-
-	if (disable) {
-		(void) casptr(&sysent[sysnum].sy_callc,
-		    (void *)dtrace_systrace_syscall,
-		    (void *)systrace_sysent[sysnum].stsy_underlying);
-
-#ifdef _SYSCALL32_IMPL
-		(void) casptr(&sysent32[sysnum].sy_callc,
-		    (void *)dtrace_systrace_syscall32,
-		    (void *)systrace_sysent32[sysnum].stsy_underlying);
-#endif
-	}
-
-	if (SYSTRACE_ISENTRY((uintptr_t)parg)) {
-		systrace_sysent[sysnum].stsy_entry = DTRACE_IDNONE;
-#ifdef _SYSCALL32_IMPL
-		systrace_sysent32[sysnum].stsy_entry = DTRACE_IDNONE;
-#endif
-	} else {
-		systrace_sysent[sysnum].stsy_return = DTRACE_IDNONE;
-#ifdef _SYSCALL32_IMPL
-		systrace_sysent32[sysnum].stsy_return = DTRACE_IDNONE;
-#endif
-	}
-}
-
-static dtrace_pattr_t systrace_attr = {
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_UNKNOWN },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
-{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
-{ DTRACE_STABILITY_PRIVATE, DTRACE_STABILITY_PRIVATE, DTRACE_CLASS_ISA },
-};
-
-static dtrace_pops_t systrace_pops = {
-	systrace_provide,
-	NULL,
-	systrace_enable,
-	systrace_disable,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	systrace_destroy
-};
-
-static int
-systrace_attach(dev_info_t *devi, ddi_attach_cmd_t cmd)
-{
-	switch (cmd) {
-	case DDI_ATTACH:
-		break;
-	case DDI_RESUME:
-		return (DDI_SUCCESS);
-	default:
-		return (DDI_FAILURE);
-	}
-
-	systrace_probe = (void (*)())dtrace_probe;
-	membar_enter();
-
-	if (ddi_create_minor_node(devi, "systrace", S_IFCHR, 0,
-	    DDI_PSEUDO, NULL) == DDI_FAILURE ||
-	    dtrace_register("syscall", &systrace_attr, DTRACE_PRIV_USER, NULL,
-	    &systrace_pops, NULL, &systrace_id) != 0) {
-		systrace_probe = systrace_stub;
-		ddi_remove_minor_node(devi, NULL);
-		return (DDI_FAILURE);
-	}
-
-	ddi_report_dev(devi);
-	systrace_devi = devi;
-
-	return (DDI_SUCCESS);
-}
-
-static int
-systrace_detach(dev_info_t *devi, ddi_detach_cmd_t cmd)
-{
-	switch (cmd) {
-	case DDI_DETACH:
-		break;
-	case DDI_SUSPEND:
-		return (DDI_SUCCESS);
-	default:
-		return (DDI_FAILURE);
-	}
-
-	if (dtrace_unregister(systrace_id) != 0)
-		return (DDI_FAILURE);
-
-	ddi_remove_minor_node(devi, NULL);
-	systrace_probe = systrace_stub;
-	return (DDI_SUCCESS);
-}
-
-/*ARGSUSED*/
-static int
-systrace_info(dev_info_t *dip, ddi_info_cmd_t infocmd, void *arg, void **result)
-{
-	int error;
-
-	switch (infocmd) {
-	case DDI_INFO_DEVT2DEVINFO:
-		*result = (void *)systrace_devi;
-		error = DDI_SUCCESS;
-		break;
-	case DDI_INFO_DEVT2INSTANCE:
-		*result = (void *)0;
-		error = DDI_SUCCESS;
-		break;
-	default:
-		error = DDI_FAILURE;
-	}
-	return (error);
-}
-
-/*ARGSUSED*/
-static int
-systrace_open(dev_t *devp, int flag, int otyp, cred_t *cred_p)
-{
-	return (0);
-}
-
-static struct cb_ops systrace_cb_ops = {
-	systrace_open,		/* open */
-	nodev,			/* close */
-	nulldev,		/* strategy */
-	nulldev,		/* print */
-	nodev,			/* dump */
-	nodev,			/* read */
-	nodev,			/* write */
-	nodev,			/* ioctl */
-	nodev,			/* devmap */
-	nodev,			/* mmap */
-	nodev,			/* segmap */
-	nochpoll,		/* poll */
-	ddi_prop_op,		/* cb_prop_op */
-	0,			/* streamtab  */
-	D_NEW | D_MP		/* Driver compatibility flag */
-};
-
-static struct dev_ops systrace_ops = {
-	DEVO_REV,		/* devo_rev, */
-	0,			/* refcnt  */
-	systrace_info,		/* get_dev_info */
-	nulldev,		/* identify */
-	nulldev,		/* probe */
-	systrace_attach,	/* attach */
-	systrace_detach,	/* detach */
-	nodev,			/* reset */
-	&systrace_cb_ops,	/* driver operations */
-	NULL,			/* bus operations */
-	nodev			/* dev power */
-};
-
-/*
- * Module linkage information for the kernel.
- */
-static struct modldrv modldrv = {
-	&mod_driverops,		/* module type (this is a pseudo driver) */
-	"System Call Tracing",	/* name of module */
-	&systrace_ops,		/* driver ops */
-};
-
-static struct modlinkage modlinkage = {
-	MODREV_1,
-	(void *)&modldrv,
-	NULL
-};
-
-int
-_init(void)
-{
-	return (mod_install(&modlinkage));
-}
-
-int
-_info(struct modinfo *modinfop)
-{
-	return (mod_info(&modlinkage, modinfop));
-}
-
-int
-_fini(void)
-{
-	return (mod_remove(&modlinkage));
-}
diff --git a/external/cddl/osnet/dist/uts/common/sys/ctf_api.h b/external/cddl/osnet/dist/uts/common/sys/ctf_api.h
index f20cc3e..6b7ab01 100644
--- a/external/cddl/osnet/dist/uts/common/sys/ctf_api.h
+++ b/external/cddl/osnet/dist/uts/common/sys/ctf_api.h
@@ -23,6 +23,9 @@
  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
+/*
+ * Copyright (c) 2013, Joyent, Inc.  All rights reserved.
+ */
 
 /*
  * This header file defines the interfaces available from the CTF debugger
@@ -40,8 +43,6 @@
 #ifndef	_CTF_API_H
 #define	_CTF_API_H
 
-/* #pragma ident	"%Z%%M%	%I%	%E% SMI" */
-
 #include <sys/types.h>
 #include <sys/param.h>
 #include <sys/elf.h>
@@ -65,10 +66,10 @@ typedef long ctf_id_t;
  * filling in ctf_sect_t structures and passing them to ctf_bufopen():
  */
 typedef struct ctf_sect {
-	char *cts_name;		/* section name (if any) */
+	const char *cts_name;	/* section name (if any) */
 	ulong_t cts_type;	/* section type (ELF SHT_... value) */
 	ulong_t cts_flags;	/* section flags (ELF SHF_... value) */
-#if defined(sun)
+#ifdef illumos
 	const void *cts_data;	/* pointer to section data */
 #else
 	void *cts_data;		/* pointer to section data */
@@ -154,6 +155,7 @@ extern ctf_file_t *ctf_bufopen(const ctf_sect_t *, const ctf_sect_t *,
 extern ctf_file_t *ctf_fdopen(int, int *);
 extern ctf_file_t *ctf_open(const char *, int *);
 extern ctf_file_t *ctf_create(int *);
+extern ctf_file_t *ctf_dup(ctf_file_t *);
 extern void ctf_close(ctf_file_t *);
 
 extern ctf_file_t *ctf_parent_file(ctf_file_t *);
@@ -179,6 +181,8 @@ extern ctf_id_t ctf_lookup_by_symbol(ctf_file_t *, ulong_t);
 extern ctf_id_t ctf_type_resolve(ctf_file_t *, ctf_id_t);
 extern ssize_t ctf_type_lname(ctf_file_t *, ctf_id_t, char *, size_t);
 extern char *ctf_type_name(ctf_file_t *, ctf_id_t, char *, size_t);
+extern char *ctf_type_qname(ctf_file_t *, ctf_id_t, char *, size_t,
+    const char *);
 extern ssize_t ctf_type_size(ctf_file_t *, ctf_id_t);
 extern ssize_t ctf_type_align(ctf_file_t *, ctf_id_t);
 extern int ctf_type_kind(ctf_file_t *, ctf_id_t);
@@ -227,6 +231,8 @@ extern int ctf_add_member(ctf_file_t *, ctf_id_t, const char *, ctf_id_t);
 
 extern int ctf_set_array(ctf_file_t *, ctf_id_t, const ctf_arinfo_t *);
 
+extern int ctf_delete_type(ctf_file_t *, ctf_id_t);
+
 extern int ctf_update(ctf_file_t *);
 extern int ctf_discard(ctf_file_t *);
 extern int ctf_write(ctf_file_t *, int);
diff --git a/external/cddl/osnet/dist/uts/common/sys/dtrace.h b/external/cddl/osnet/dist/uts/common/sys/dtrace.h
index f921f71..1e84554 100644
--- a/external/cddl/osnet/dist/uts/common/sys/dtrace.h
+++ b/external/cddl/osnet/dist/uts/common/sys/dtrace.h
@@ -20,13 +20,20 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
+/*
+ * Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ * Copyright (c) 2013 by Delphix. All rights reserved.
+ */
+
 #ifndef _SYS_DTRACE_H
 #define	_SYS_DTRACE_H
 
+/* #pragma ident	"%Z%%M%	%I%	%E% SMI" */
+
 #ifdef	__cplusplus
 extern "C" {
 #endif
@@ -47,22 +54,21 @@ extern "C" {
 #include <sys/types.h>
 #include <sys/modctl.h>
 #include <sys/processor.h>
-#include <sys/proc.h>
-#if defined(sun)
+#ifdef illumos
 #include <sys/systm.h>
 #else
-#include <sys/pset.h>
+#include <sys/cpuvar.h>
+#include <sys/proc.h>
 #include <sys/param.h>
 #include <sys/linker.h>
 #include <sys/ioccom.h>
 #include <sys/ucred.h>
+#include <sys/pset.h>
 typedef int model_t;
 #endif
 #include <sys/ctf_api.h>
-#if 0
+#ifdef illumos
 #include <sys/cyclic.h>
-#endif
-#if defined(sun)
 #include <sys/int_limits.h>
 #else
 #include <sys/stdint.h>
@@ -253,6 +259,10 @@ typedef enum dtrace_probespec {
 #define	DIF_VAR_ERRNO		0x0120	/* thread errno */
 #define	DIF_VAR_EXECARGS	0x0121	/* process arguments */
 
+#ifndef illumos
+#define	DIF_VAR_CPU		0x0200
+#endif
+
 #define	DIF_SUBR_RAND			0
 #define	DIF_SUBR_MUTEX_OWNED		1
 #define	DIF_SUBR_MUTEX_OWNER		2
@@ -297,13 +307,18 @@ typedef enum dtrace_probespec {
 #define	DIF_SUBR_INET_NTOP		41
 #define	DIF_SUBR_INET_NTOA		42
 #define	DIF_SUBR_INET_NTOA6		43
-#define	DIF_SUBR_MEMREF			44
-#define	DIF_SUBR_TYPEREF		45
-#define	DIF_SUBR_SX_SHARED_HELD		46
-#define	DIF_SUBR_SX_EXCLUSIVE_HELD	47
-#define	DIF_SUBR_SX_ISEXCLUSIVE		48
-
-#define	DIF_SUBR_MAX			48	/* max subroutine value */
+#define	DIF_SUBR_TOUPPER		44
+#define	DIF_SUBR_TOLOWER		45
+#define	DIF_SUBR_MEMREF			46
+#define	DIF_SUBR_TYPEREF		47
+#define	DIF_SUBR_SX_SHARED_HELD		48
+#define	DIF_SUBR_SX_EXCLUSIVE_HELD	49
+#define	DIF_SUBR_SX_ISEXCLUSIVE		50
+#define	DIF_SUBR_MEMSTR			51
+#define	DIF_SUBR_GETF			52
+#define	DIF_SUBR_JSON			53
+#define	DIF_SUBR_STRTOLL		54
+#define	DIF_SUBR_MAX			54	/* max subroutine value */
 
 typedef uint32_t dif_instr_t;
 
@@ -365,6 +380,7 @@ typedef struct dtrace_diftype {
 #define	DIF_TYPE_STRING		1	/* type is a D string */
 
 #define	DIF_TF_BYREF		0x1	/* type is passed by reference */
+#define	DIF_TF_BYUREF		0x2	/* user type is passed by reference */
 
 /*
  * A DTrace Intermediate Format variable record is used to describe each of the
@@ -412,8 +428,10 @@ typedef struct dtrace_difv {
 #define	DTRACEACT_PRINTF		3	/* printf() action */
 #define	DTRACEACT_PRINTA		4	/* printa() action */
 #define	DTRACEACT_LIBACT		5	/* library-controlled action */
-#define	DTRACEACT_PRINTM		6	/* printm() action */
-#define	DTRACEACT_PRINTT		7	/* printt() action */
+#define	DTRACEACT_TRACEMEM		6	/* tracemem() action */
+#define	DTRACEACT_TRACEMEM_DYNSIZE	7	/* dynamic tracemem() size */
+#define	DTRACEACT_PRINTM		8	/* printm() action (BSD) */
+#define	DTRACEACT_PRINTT		9	/* printt() action (BSD) */
 
 #define	DTRACEACT_PROC			0x0100
 #define	DTRACEACT_USTACK		(DTRACEACT_PROC + 1)
@@ -479,6 +497,7 @@ typedef struct dtrace_difv {
 #define	DTRACEAGG_STDDEV		(DTRACEACT_AGGREGATION + 6)
 #define	DTRACEAGG_QUANTIZE		(DTRACEACT_AGGREGATION + 7)
 #define	DTRACEAGG_LQUANTIZE		(DTRACEACT_AGGREGATION + 8)
+#define	DTRACEAGG_LLQUANTIZE		(DTRACEACT_AGGREGATION + 9)
 
 #define	DTRACEACT_ISAGG(x)		\
 	(DTRACEACT_CLASS(x) == DTRACEACT_AGGREGATION)
@@ -513,6 +532,31 @@ typedef struct dtrace_difv {
 	(int32_t)(((x) & DTRACE_LQUANTIZE_BASEMASK) >> \
 	DTRACE_LQUANTIZE_BASESHIFT)
 
+#define	DTRACE_LLQUANTIZE_FACTORSHIFT		48
+#define	DTRACE_LLQUANTIZE_FACTORMASK		((uint64_t)UINT16_MAX << 48)
+#define	DTRACE_LLQUANTIZE_LOWSHIFT		32
+#define	DTRACE_LLQUANTIZE_LOWMASK		((uint64_t)UINT16_MAX << 32)
+#define	DTRACE_LLQUANTIZE_HIGHSHIFT		16
+#define	DTRACE_LLQUANTIZE_HIGHMASK		((uint64_t)UINT16_MAX << 16)
+#define	DTRACE_LLQUANTIZE_NSTEPSHIFT		0
+#define	DTRACE_LLQUANTIZE_NSTEPMASK		UINT16_MAX
+
+#define	DTRACE_LLQUANTIZE_FACTOR(x)		\
+	(uint16_t)(((x) & DTRACE_LLQUANTIZE_FACTORMASK) >> \
+	DTRACE_LLQUANTIZE_FACTORSHIFT)
+
+#define	DTRACE_LLQUANTIZE_LOW(x)		\
+	(uint16_t)(((x) & DTRACE_LLQUANTIZE_LOWMASK) >> \
+	DTRACE_LLQUANTIZE_LOWSHIFT)
+
+#define	DTRACE_LLQUANTIZE_HIGH(x)		\
+	(uint16_t)(((x) & DTRACE_LLQUANTIZE_HIGHMASK) >> \
+	DTRACE_LLQUANTIZE_HIGHSHIFT)
+
+#define	DTRACE_LLQUANTIZE_NSTEP(x)		\
+	(uint16_t)(((x) & DTRACE_LLQUANTIZE_NSTEPMASK) >> \
+	DTRACE_LLQUANTIZE_NSTEPSHIFT)
+
 #define	DTRACE_USTACK_NFRAMES(x)	(uint32_t)((x) & UINT32_MAX)
 #define	DTRACE_USTACK_STRSIZE(x)	(uint32_t)((x) >> 32)
 #define	DTRACE_USTACK_ARG(x, y)		\
@@ -908,10 +952,10 @@ typedef struct dtrace_ecbdesc {
  * DTrace Metadata Description Structures
  *
  * DTrace separates the trace data stream from the metadata stream.  The only
- * metadata tokens placed in the data stream are enabled probe identifiers
- * (EPIDs) or (in the case of aggregations) aggregation identifiers.  In order
- * to determine the structure of the data, DTrace consumers pass the token to
- * the kernel, and receive in return a corresponding description of the enabled
+ * metadata tokens placed in the data stream are the dtrace_rechdr_t (EPID +
+ * timestamp) or (in the case of aggregations) aggregation identifiers.  To
+ * determine the structure of the data, DTrace consumers pass the token to the
+ * kernel, and receive in return a corresponding description of the enabled
  * probe (via the dtrace_eprobedesc structure) or the aggregation (via the
  * dtrace_aggdesc structure).  Both of these structures are expressed in terms
  * of record descriptions (via the dtrace_recdesc structure) that describe the
@@ -1006,7 +1050,12 @@ typedef struct dtrace_fmtdesc {
 #define	DTRACEOPT_AGGSORTREV	24	/* reverse-sort aggregations */
 #define	DTRACEOPT_AGGSORTPOS	25	/* agg. position to sort on */
 #define	DTRACEOPT_AGGSORTKEYPOS	26	/* agg. key position to sort on */
-#define	DTRACEOPT_MAX		27	/* number of options */
+#define	DTRACEOPT_TEMPORAL	27	/* temporally ordered output */
+#define	DTRACEOPT_AGGHIST	28	/* histogram aggregation output */
+#define	DTRACEOPT_AGGPACK	29	/* packed aggregation output */
+#define	DTRACEOPT_AGGZOOM	30	/* zoomed aggregation scaling */
+#define	DTRACEOPT_ZONE		31	/* zone in which to enable probes */
+#define	DTRACEOPT_MAX		32	/* number of options */
 
 #define	DTRACEOPT_UNSET		(dtrace_optval_t)-2	/* unset option */
 
@@ -1026,7 +1075,9 @@ typedef struct dtrace_fmtdesc {
  * where user-level wishes the kernel to snapshot the buffer to (the
  * dtbd_data field).  The kernel uses the same structure to pass back some
  * information regarding the buffer:  the size of data actually copied out, the
- * number of drops, the number of errors, and the offset of the oldest record.
+ * number of drops, the number of errors, the offset of the oldest record,
+ * and the time of the snapshot.
+ *
  * If the buffer policy is a "switch" policy, taking a snapshot of the
  * principal buffer has the additional effect of switching the active and
  * inactive buffers.  Taking a snapshot of the aggregation buffer _always_ has
@@ -1039,9 +1090,30 @@ typedef struct dtrace_bufdesc {
 	uint64_t dtbd_drops;			/* number of drops */
 	DTRACE_PTR(char, dtbd_data);		/* data */
 	uint64_t dtbd_oldest;			/* offset of oldest record */
+	uint64_t dtbd_timestamp;		/* hrtime of snapshot */
 } dtrace_bufdesc_t;
 
 /*
+ * Each record in the buffer (dtbd_data) begins with a header that includes
+ * the epid and a timestamp.  The timestamp is split into two 4-byte parts
+ * so that we do not require 8-byte alignment.
+ */
+typedef struct dtrace_rechdr {
+	dtrace_epid_t dtrh_epid;		/* enabled probe id */
+	uint32_t dtrh_timestamp_hi;		/* high bits of hrtime_t */
+	uint32_t dtrh_timestamp_lo;		/* low bits of hrtime_t */
+} dtrace_rechdr_t;
+
+#define	DTRACE_RECORD_LOAD_TIMESTAMP(dtrh)			\
+	((dtrh)->dtrh_timestamp_lo +				\
+	((uint64_t)(dtrh)->dtrh_timestamp_hi << 32))
+
+#define	DTRACE_RECORD_STORE_TIMESTAMP(dtrh, hrtime) {		\
+	(dtrh)->dtrh_timestamp_lo = (uint32_t)hrtime;		\
+	(dtrh)->dtrh_timestamp_hi = hrtime >> 32;		\
+}
+
+/*
  * DTrace Status
  *
  * The status of DTrace is relayed via the dtrace_status structure.  This
@@ -1207,7 +1279,7 @@ typedef struct dtrace_providerdesc {
  * pseudodevice driver.  These ioctls comprise the user-kernel interface to
  * DTrace.
  */
-#if defined(sun)
+#ifdef illumos
 #define	DTRACEIOC		(('d' << 24) | ('t' << 16) | ('r' << 8))
 #define	DTRACEIOC_PROVIDER	(DTRACEIOC | 1)		/* provider query */
 #define	DTRACEIOC_PROBES	(DTRACEIOC | 2)		/* probe query */
@@ -1338,15 +1410,25 @@ typedef struct {
  * helpers and should no longer be used.  No other ioctls are valid on the
  * helper minor node.
  */
+#ifdef illumos
 #define	DTRACEHIOC		(('d' << 24) | ('t' << 16) | ('h' << 8))
 #define	DTRACEHIOC_ADD		(DTRACEHIOC | 1)	/* add helper */
 #define	DTRACEHIOC_REMOVE	(DTRACEHIOC | 2)	/* remove helper */
 #define	DTRACEHIOC_ADDDOF	(DTRACEHIOC | 3)	/* add helper DOF */
+#else
+#define	DTRACEHIOC_ADD		_IOWR('z', 1, dof_hdr_t)/* add helper */
+#define	DTRACEHIOC_REMOVE	_IOW('z', 2, int)	/* remove helper */
+#define	DTRACEHIOC_ADDDOF	_IOWR('z', 3, dof_helper_t)/* add helper DOF */
+#endif
 
 typedef struct dof_helper {
 	char dofhp_mod[DTRACE_MODNAMELEN];	/* executable or library name */
 	uint64_t dofhp_addr;			/* base address of object */
 	uint64_t dofhp_dof;			/* address of helper DOF */
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	pid_t dofhp_pid;			/* target process ID */
+	int dofhp_gen;
+#endif
 } dof_helper_t;
 
 #define	DTRACEMNR_DTRACE	"dtrace"	/* node for DTrace ops */
@@ -1425,7 +1507,7 @@ typedef struct dof_helper {
  *   DTrace routines, including dtrace_probe_create(), dtrace_probe_lookup(),
  *   and dtrace_probe_arg().
  *
- * 1.3  void dtps_provide_module(void *arg, modctl_t *mp)
+ * 1.3  void dtps_provide_module(void *arg, dtrace_modctl_t *mp)
  *
  * 1.3.1  Overview
  *
@@ -1457,7 +1539,7 @@ typedef struct dof_helper {
  *   dtps_provide_module(); see "Arguments and Notes" for dtrace_register(),
  *   below.
  *
- * 1.4  int dtps_enable(void *arg, dtrace_id_t id, void *parg)
+ * 1.4  void dtps_enable(void *arg, dtrace_id_t id, void *parg)
  *
  * 1.4.1  Overview
  *
@@ -1478,8 +1560,7 @@ typedef struct dof_helper {
  *
  * 1.4.3  Return value
  *
- *   On success, dtps_enable() should return 0. On failure, -1 should be
- *   returned.
+ *   None.
  *
  * 1.4.4  Caller's context
  *
@@ -1650,7 +1731,22 @@ typedef struct dof_helper {
  *
  * 1.10.3  Return value
  *
- *   A boolean value.
+ *   A bitwise OR that encapsulates both the mode (either DTRACE_MODE_KERNEL
+ *   or DTRACE_MODE_USER) and the policy when the privilege of the enabling
+ *   is insufficient for that mode (a combination of DTRACE_MODE_NOPRIV_DROP,
+ *   DTRACE_MODE_NOPRIV_RESTRICT, and DTRACE_MODE_LIMITEDPRIV_RESTRICT).  If
+ *   DTRACE_MODE_NOPRIV_DROP bit is set, insufficient privilege will result
+ *   in the probe firing being silently ignored for the enabling; if the
+ *   DTRACE_NODE_NOPRIV_RESTRICT bit is set, insufficient privilege will not
+ *   prevent probe processing for the enabling, but restrictions will be in
+ *   place that induce a UPRIV fault upon attempt to examine probe arguments
+ *   or current process state.  If the DTRACE_MODE_LIMITEDPRIV_RESTRICT bit
+ *   is set, similar restrictions will be placed upon operation if the
+ *   privilege is sufficient to process the enabling, but does not otherwise
+ *   entitle the enabling to all zones.  The DTRACE_MODE_NOPRIV_DROP and
+ *   DTRACE_MODE_NOPRIV_RESTRICT are mutually exclusive (and one of these
+ *   two policies must be specified), but either may be combined (or not)
+ *   with DTRACE_MODE_LIMITEDPRIV_RESTRICT.
  *
  * 1.10.4  Caller's context
  *
@@ -2048,6 +2144,12 @@ typedef struct dtrace_pops {
 	void (*dtps_destroy)(void *arg, dtrace_id_t id, void *parg);
 } dtrace_pops_t;
 
+#define	DTRACE_MODE_KERNEL			0x01
+#define	DTRACE_MODE_USER			0x02
+#define	DTRACE_MODE_NOPRIV_DROP			0x10
+#define	DTRACE_MODE_NOPRIV_RESTRICT		0x20
+#define	DTRACE_MODE_LIMITEDPRIV_RESTRICT	0x40
+
 typedef uintptr_t	dtrace_provider_id_t;
 
 extern int dtrace_register(const char *, const dtrace_pattr_t *, uint32_t,
@@ -2055,8 +2157,8 @@ extern int dtrace_register(const char *, const dtrace_pattr_t *, uint32_t,
 extern int dtrace_unregister(dtrace_provider_id_t);
 extern int dtrace_condense(dtrace_provider_id_t);
 extern void dtrace_invalidate(dtrace_provider_id_t);
-extern dtrace_id_t dtrace_probe_lookup(dtrace_provider_id_t, char *,
-    char *, char *);
+extern dtrace_id_t dtrace_probe_lookup(dtrace_provider_id_t, const char *,
+    const char *, const char *);
 extern dtrace_id_t dtrace_probe_create(dtrace_provider_id_t, const char *,
     const char *, const char *, int, void *);
 extern void *dtrace_probe_arg(dtrace_provider_id_t, dtrace_id_t);
@@ -2229,7 +2331,7 @@ typedef enum dtrace_vtime_state {
 	DTRACE_VTIME_ACTIVE_TNF		/* DTrace virtual time _and_ TNF */
 } dtrace_vtime_state_t;
 
-#if defined(sun)
+#ifdef illumos
 extern dtrace_vtime_state_t dtrace_vtime_active;
 #endif
 extern void dtrace_vtime_switch(kthread_t *next);
@@ -2239,10 +2341,11 @@ extern void dtrace_vtime_enable(void);
 extern void dtrace_vtime_disable(void);
 
 struct regs;
+struct reg;
 
-#if defined(sun)
-extern int (*dtrace_pid_probe_ptr)(struct regs *);
-extern int (*dtrace_return_probe_ptr)(struct regs *);
+#ifdef illumos
+extern int (*dtrace_pid_probe_ptr)(struct reg *);
+extern int (*dtrace_return_probe_ptr)(struct reg *);
 extern void (*dtrace_fasttrap_fork_ptr)(proc_t *, proc_t *);
 extern void (*dtrace_fasttrap_exec_ptr)(proc_t *);
 extern void (*dtrace_fasttrap_exit_ptr)(proc_t *);
@@ -2259,26 +2362,29 @@ extern void dtrace_membar_producer(void);
 extern void dtrace_membar_consumer(void);
 
 extern void (*dtrace_cpu_init)(processorid_t);
+#ifdef illumos
 extern void (*dtrace_modload)(dtrace_modctl_t *);
 extern void (*dtrace_modunload)(dtrace_modctl_t *);
+#endif
 extern void (*dtrace_helpers_cleanup)(void);
 extern void (*dtrace_helpers_fork)(proc_t *parent, proc_t *child);
 extern void (*dtrace_cpustart_init)(void);
 extern void (*dtrace_cpustart_fini)(void);
+extern void (*dtrace_closef)(void);
 
 extern void (*dtrace_debugger_init)(void);
 extern void (*dtrace_debugger_fini)(void);
 extern dtrace_cacheid_t dtrace_predcache_id;
 
-#if defined(sun)
+#ifdef illumos
 extern hrtime_t dtrace_gethrtime(void);
 #else
-void dtrace_debug_printf(const char *, ...);
+void dtrace_debug_printf(const char *, ...) __printflike(1, 2);
 #endif
 extern void dtrace_sync(void);
 extern void dtrace_toxic_ranges(void (*)(uintptr_t, uintptr_t));
 extern void dtrace_xcall(processorid_t, dtrace_xcall_t, void *);
-extern void dtrace_vpanic(const char *, va_list);
+extern void dtrace_vpanic(const char *, __va_list);
 extern void dtrace_panic(const char *, ...);
 
 extern int dtrace_safe_defer_signal(void);
@@ -2286,29 +2392,24 @@ extern void dtrace_safe_synchronous_signal(void);
 
 extern int dtrace_mach_aframes(void);
 
-#if defined(__i386) || defined(__amd64) || defined(__arm__)
+#if defined(__i386) || defined(__amd64)
 extern int dtrace_instr_size(uchar_t *instr);
 extern int dtrace_instr_size_isa(uchar_t *, model_t, int *);
-extern void dtrace_invop_add(int (*)(uintptr_t, uintptr_t *, uintptr_t));
-extern void dtrace_invop_remove(int (*)(uintptr_t, uintptr_t *, uintptr_t));
 extern void dtrace_invop_callsite(void);
 #endif
+extern void dtrace_invop_add(int (*)(uintptr_t, uintptr_t *, uintptr_t));
+extern void dtrace_invop_remove(int (*)(uintptr_t, uintptr_t *, uintptr_t));
 
 #ifdef __sparc
 extern int dtrace_blksuword32(uintptr_t, uint32_t *, int);
 extern void dtrace_getfsr(uint64_t *);
 #endif
 
-#if defined(sun)
-#define	DTRACE_CPUFLAG_ISSET(flag) \
-	(cpu_core[curcpu_id].cpuc_dtrace_flags & (flag))
-
-#define	DTRACE_CPUFLAG_SET(flag) \
-	(cpu_core[curcpu_id].cpuc_dtrace_flags |= (flag))
+#ifndef illumos
+extern void dtrace_helpers_duplicate(proc_t *, proc_t *);
+extern void dtrace_helpers_destroy(proc_t *);
+#endif
 
-#define	DTRACE_CPUFLAG_CLEAR(flag) \
-	(cpu_core[curcpu_id].cpuc_dtrace_flags &= ~(flag))
-#else
 #define	DTRACE_CPUFLAG_ISSET(flag) \
 	(cpu_core[cpu_number()].cpuc_dtrace_flags & (flag))
 
@@ -2317,7 +2418,6 @@ extern void dtrace_getfsr(uint64_t *);
 
 #define	DTRACE_CPUFLAG_CLEAR(flag) \
 	(cpu_core[cpu_number()].cpuc_dtrace_flags &= ~(flag))
-#endif
 
 #endif /* _KERNEL */
 
@@ -2331,19 +2431,53 @@ extern void dtrace_getfsr(uint64_t *);
 #define	DTRACE_INVOP_NOP		4
 #define	DTRACE_INVOP_RET		5
 
+#elif defined(__powerpc__)
+
+#define DTRACE_INVOP_RET	1
+#define DTRACE_INVOP_BCTR	2
+#define DTRACE_INVOP_BLR	3
+#define DTRACE_INVOP_JUMP	4
+#define DTRACE_INVOP_MFLR_R0	5
+#define DTRACE_INVOP_NOP	6
+
 #elif defined(__arm__)
 
-#define	DTRACE_INVOP_MOV_IP_SP		1
-#define	DTRACE_INVOP_BX_LR		2
-#define	DTRACE_INVOP_MOV_PC_LR		3
-#define	DTRACE_INVOP_LDM		4
-#define	DTRACE_INVOP_LDMIB		5
-#define	DTRACE_INVOP_LDR_IMM		6
-#define	DTRACE_INVOP_MOVW		7
-#define	DTRACE_INVOP_MOV_IMM		8
-#define	DTRACE_INVOP_CMP_IMM		9
-#define	DTRACE_INVOP_B_LABEL		10
-#define	DTRACE_INVOP_PUSH		11
+#define	DTRACE_INVOP_SHIFT	4
+#define	DTRACE_INVOP_MASK	((1 << DTRACE_INVOP_SHIFT) - 1)
+#define	DTRACE_INVOP_DATA(x)	((x) >> DTRACE_INVOP_SHIFT)
+
+#define DTRACE_INVOP_PUSHM	1
+#define DTRACE_INVOP_POPM	2
+#define DTRACE_INVOP_B		3
+
+#elif defined(__aarch64__)
+
+#define	INSN_SIZE	4
+
+#define	B_MASK		0xff000000
+#define	B_DATA_MASK	0x00ffffff
+#define	B_INSTR		0x14000000
+
+#define	RET_INSTR	0xd65f03c0
+
+#define	LDP_STP_MASK	0xffc00000
+#define	STP_32		0x29800000
+#define	STP_64		0xa9800000
+#define	LDP_32		0x28c00000
+#define	LDP_64		0xa8c00000
+#define	LDP_STP_PREIND	(1 << 24)
+#define	LDP_STP_DIR	(1 << 22) /* Load instruction */
+#define	ARG1_SHIFT	0
+#define	ARG1_MASK	0x1f
+#define	ARG2_SHIFT	10
+#define	ARG2_MASK	0x1f
+#define	OFFSET_SHIFT	15
+#define	OFFSET_SIZE	7
+#define	OFFSET_MASK	((1 << OFFSET_SIZE) - 1)
+
+#define	DTRACE_INVOP_PUSHM	1
+#define	DTRACE_INVOP_RET	2
+#define	DTRACE_INVOP_B		3
 
 #endif
 
diff --git a/external/cddl/osnet/dist/uts/common/sys/dtrace_impl.h b/external/cddl/osnet/dist/uts/common/sys/dtrace_impl.h
index f7effe6..cc4e0fe 100644
--- a/external/cddl/osnet/dist/uts/common/sys/dtrace_impl.h
+++ b/external/cddl/osnet/dist/uts/common/sys/dtrace_impl.h
@@ -18,19 +18,22 @@
  *
  * CDDL HEADER END
  *
- * $FreeBSD: src/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace_impl.h,v 1.3.4.1 2009/08/03 08:13:06 kensmith Exp $
+ * $FreeBSD: head/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace_impl.h 277300 2015-01-17 14:44:59Z smh $
  */
 
 /*
  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
  * Use is subject to license terms.
  */
 
+/*
+ * Copyright (c) 2011, Joyent, Inc. All rights reserved.
+ */
+
 #ifndef _SYS_DTRACE_IMPL_H
 #define	_SYS_DTRACE_IMPL_H
 
-/* #pragma ident	"%Z%%M%	%I%	%E% SMI" */
-
 #ifdef	__cplusplus
 extern "C" {
 #endif
@@ -47,7 +50,7 @@ extern "C" {
  */
 
 #include <sys/dtrace.h>
-#if !defined(sun)
+#ifndef illumos
 #ifdef __sparcv9
 typedef uint32_t		pc_t;
 #else
@@ -207,15 +210,18 @@ typedef struct dtrace_hash {
  * predicate is non-NULL, the DIF object is executed.  If the result is
  * non-zero, the action list is processed, with each action being executed
  * accordingly.  When the action list has been completely executed, processing
- * advances to the next ECB.  processing advances to the next ECB.  If the
- * result is non-zero; For each ECB, it first determines the The ECB
- * abstraction allows disjoint consumers to multiplex on single probes.
+ * advances to the next ECB. The ECB abstraction allows disjoint consumers
+ * to multiplex on single probes.
+ *
+ * Execution of the ECB results in consuming dte_size bytes in the buffer
+ * to record data.  During execution, dte_needed bytes must be available in
+ * the buffer.  This space is used for both recorded data and tuple data.
  */
 struct dtrace_ecb {
 	dtrace_epid_t dte_epid;			/* enabled probe ID */
 	uint32_t dte_alignment;			/* required alignment */
-	size_t dte_needed;			/* bytes needed */
-	size_t dte_size;			/* total size of payload */
+	size_t dte_needed;			/* space needed for execution */
+	size_t dte_size;			/* size of recorded payload */
 	dtrace_predicate_t *dte_predicate;	/* predicate, if any */
 	dtrace_action_t *dte_action;		/* actions, if any */
 	dtrace_ecb_t *dte_next;			/* next ECB on probe */
@@ -273,27 +279,30 @@ typedef struct dtrace_aggregation {
  * the EPID, the consumer can determine the data layout.  (The data buffer
  * layout is shown schematically below.)  By assuring that one can determine
  * data layout from the EPID, the metadata stream can be separated from the
- * data stream -- simplifying the data stream enormously.
- *
- *      base of data buffer --->  +------+--------------------+------+
- *                                | EPID | data               | EPID |
- *                                +------+--------+------+----+------+
- *                                | data          | EPID | data      |
- *                                +---------------+------+-----------+
- *                                | data, cont.                      |
- *                                +------+--------------------+------+
- *                                | EPID | data               |      |
- *                                +------+--------------------+      |
- *                                |                ||                |
- *                                |                ||                |
- *                                |                \/                |
- *                                :                                  :
- *                                .                                  .
- *                                .                                  .
- *                                .                                  .
- *                                :                                  :
- *                                |                                  |
- *     limit of data buffer --->  +----------------------------------+
+ * data stream -- simplifying the data stream enormously.  The ECB always
+ * proceeds the recorded data as part of the dtrace_rechdr_t structure that
+ * includes the EPID and a high-resolution timestamp used for output ordering
+ * consistency.
+ *
+ *      base of data buffer --->  +--------+--------------------+--------+
+ *                                | rechdr | data               | rechdr |
+ *                                +--------+------+--------+----+--------+
+ *                                | data          | rechdr | data        |
+ *                                +---------------+--------+-------------+
+ *                                | data, cont.                          |
+ *                                +--------+--------------------+--------+
+ *                                | rechdr | data               |        |
+ *                                +--------+--------------------+        |
+ *                                |                ||                    |
+ *                                |                ||                    |
+ *                                |                \/                    |
+ *                                :                                      :
+ *                                .                                      .
+ *                                .                                      .
+ *                                .                                      .
+ *                                :                                      :
+ *                                |                                      |
+ *     limit of data buffer --->  +--------------------------------------+
  *
  * When evaluating an ECB, dtrace_probe() determines if the ECB's needs of the
  * principal buffer (both scratch and payload) exceed the available space.  If
@@ -429,8 +438,11 @@ typedef struct dtrace_buffer {
 	uint32_t dtb_errors;			/* number of errors */
 	uint32_t dtb_xamot_errors;		/* errors in inactive buffer */
 #ifndef _LP64
-	uint64_t dtb_pad1;
+	uint64_t dtb_pad1;			/* pad out to 64 bytes */
 #endif
+	uint64_t dtb_switched;			/* time of last switch */
+	uint64_t dtb_interval;			/* observed switch interval */
+	uint64_t dtb_pad2[6];			/* pad to avoid false sharing */
 } dtrace_buffer_t;
 
 /*
@@ -922,6 +934,7 @@ typedef struct dtrace_mstate {
 	uintptr_t dtms_strtok;			/* saved strtok() pointer */
 	uint32_t dtms_access;			/* memory access rights */
 	dtrace_difo_t *dtms_difo;		/* current dif object */
+	file_t *dtms_getf;			/* cached rval of getf() */
 } dtrace_mstate_t;
 
 #define	DTRACE_COND_OWNER	0x1
@@ -1109,7 +1122,11 @@ typedef struct dtrace_cred {
  * dtrace_state structure.
  */
 struct dtrace_state {
+#if defined(illumos) || defined(__NetBSD__)
 	dev_t dts_dev;				/* device */
+#else
+	struct cdev *dts_dev;			/* device */
+#endif
 	int dts_necbs;				/* total number of ECBs */
 	dtrace_ecb_t **dts_ecbs;		/* array of ECBs */
 	dtrace_epid_t dts_epid;			/* next EPID to allocate */
@@ -1123,7 +1140,11 @@ struct dtrace_state {
 	int dts_nspeculations;			/* number of speculations */
 	int dts_naggregations;			/* number of aggregations */
 	dtrace_aggregation_t **dts_aggregations; /* aggregation array */
+#if defined(illumos) || defined(__NetBSD__)
 	vmem_t *dts_aggid_arena;		/* arena for aggregation IDs */
+#else
+	struct unrhdr *dts_aggid_arena;		/* arena for aggregation IDs */
+#endif
 	uint64_t dts_errors;			/* total number of errors */
 	uint32_t dts_speculations_busy;		/* number of spec. busy */
 	uint32_t dts_speculations_unavail;	/* number of spec unavail */
@@ -1131,12 +1152,15 @@ struct dtrace_state {
 	uint32_t dts_dblerrors;			/* errors in ERROR probes */
 	uint32_t dts_reserve;			/* space reserved for END */
 	hrtime_t dts_laststatus;		/* time of last status */
-#if defined(sun)
+#if defined(illumos)
 	cyclic_id_t dts_cleaner;		/* cleaning cyclic */
 	cyclic_id_t dts_deadman;		/* deadman cyclic */
-#else
+#elif defined(__NetBSD__)
 	struct dtrace_state_worker *dts_cleaner;/* cleaning cyclic */
 	struct dtrace_state_worker *dts_deadman;/* deadman cyclic */
+#else
+	struct callout dts_cleaner;		/* Cleaning callout. */
+	struct callout dts_deadman;		/* Deadman callout. */
 #endif
 	hrtime_t dts_alive;			/* time last alive */
 	char dts_speculates;			/* boolean: has speculations */
@@ -1146,6 +1170,7 @@ struct dtrace_state {
 	dtrace_optval_t dts_options[DTRACEOPT_MAX]; /* options */
 	dtrace_cred_t dts_cred;			/* credentials */
 	size_t dts_nretained;			/* number of retained enabs */
+	int dts_getf;				/* number of getf() calls */
 };
 
 struct dtrace_provider {
@@ -1154,7 +1179,7 @@ struct dtrace_provider {
 	dtrace_pops_t dtpv_pops;		/* provider operations */
 	char *dtpv_name;			/* provider name */
 	void *dtpv_arg;				/* provider argument */
-	uint_t dtpv_defunct;			/* boolean: defunct provider */
+	hrtime_t dtpv_defunct;			/* when made defunct */
 	struct dtrace_provider *dtpv_next;	/* next provider */
 };
 
@@ -1248,7 +1273,11 @@ typedef struct dtrace_toxrange {
 	uintptr_t	dtt_limit;		/* limit of toxic range */
 } dtrace_toxrange_t;
 
+#ifdef illumos
 extern uint64_t dtrace_getarg(int, int);
+#else
+extern uint64_t __noinline dtrace_getarg(int, int);
+#endif
 extern greg_t dtrace_getfp(void);
 extern int dtrace_getipl(void);
 extern uintptr_t dtrace_caller(int);
@@ -1260,7 +1289,7 @@ extern void dtrace_copyout(uintptr_t, uintptr_t, size_t, volatile uint16_t *);
 extern void dtrace_copyoutstr(uintptr_t, uintptr_t, size_t,
     volatile uint16_t *);
 extern void dtrace_getpcstack(pc_t *, int, int, uint32_t *);
-extern ulong_t dtrace_getreg(struct regs *, uint_t);
+extern ulong_t dtrace_getreg(struct trapframe *, uint_t);
 extern int dtrace_getstackdepth(int);
 extern void dtrace_getupcstack(uint64_t *, int);
 extern void dtrace_getufpstack(uint64_t *, uint64_t *, int);
@@ -1274,7 +1303,7 @@ extern void dtrace_probe_error(dtrace_state_t *, dtrace_epid_t, int, int,
     int, uintptr_t);
 extern int dtrace_assfail(const char *, const char *, int);
 extern int dtrace_attached(void);
-#if defined(sun)
+#ifdef illumos
 extern hrtime_t dtrace_gethrestime(void);
 #endif
 
diff --git a/external/cddl/osnet/include/libproc.h b/external/cddl/osnet/include/libproc.h
index 3e06715..c5fb758 100644
--- a/external/cddl/osnet/include/libproc.h
+++ b/external/cddl/osnet/include/libproc.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: libproc.h,v 1.2 2010/02/21 01:46:34 darran Exp $	*/
+/*	$NetBSD: libproc.h,v 1.3 2015/09/24 14:17:20 christos Exp $	*/
 
 /*
  * Copyright (C) 2008 John Birrell <jb@freebsd.org>
@@ -54,13 +54,6 @@ typedef void (*proc_child_func)(void *);
 #define PS_DEAD         5
 #define PS_LOST         6
 
-
-typedef struct prmap {
-	uintptr_t	pr_vaddr;       /* Virtual address. */
-} prmap_t;
-
-#if 0
 #include_next <libproc.h>
-#endif
 
 #endif
diff --git a/external/cddl/osnet/lib/libctf/Makefile b/external/cddl/osnet/lib/libctf/Makefile
index db0a191..5855c66 100644
--- a/external/cddl/osnet/lib/libctf/Makefile
+++ b/external/cddl/osnet/lib/libctf/Makefile
@@ -1,10 +1,11 @@
-#	$NetBSD: Makefile,v 1.4 2013/09/10 11:23:20 christos Exp $
+#	$NetBSD: Makefile,v 1.8 2015/09/24 14:36:54 christos Exp $
 
 # $FreeBSD: src/cddl/lib/libctf/Makefile,v 1.2.2.1 2009/08/03 08:13:06 kensmith Exp $
 
 .include	"../../Makefile.inc"
 
 LIB=		ctf
+MAN=		ctf.5
 
 SRCS=		ctf_create.c \
 		ctf_decl.c \
@@ -30,5 +31,7 @@ CPPFLAGS+=	-I${OSNETDIR}/sys \
 		-I${OPENSOLARIS_USR_DISTDIR}/lib/libctf/common \
 		-I${OPENSOLARIS_SYS_DISTDIR}/uts/common
 
+LIBDPLIBS+=	z	${NETBSDSRCDIR}/lib/libz
+
 .include <bsd.lib.mk>
 
diff --git a/external/cddl/osnet/lib/libctf/shlib_version b/external/cddl/osnet/lib/libctf/shlib_version
index 686c8bf..36e5950 100644
--- a/external/cddl/osnet/lib/libctf/shlib_version
+++ b/external/cddl/osnet/lib/libctf/shlib_version
@@ -1,6 +1,6 @@
-#	$NetBSD: shlib_version,v 1.1 2010/02/21 01:46:35 darran Exp $
+#	$NetBSD: shlib_version,v 1.2 2015/09/24 14:36:54 christos Exp $
 #	Remember to update distrib/sets/lists/base/shl.* when changing
 #
 
-major=2
+major=3
 minor=0
diff --git a/external/cddl/osnet/lib/libdtrace/Makefile b/external/cddl/osnet/lib/libdtrace/Makefile
index 5ec9d04..022ed71 100644
--- a/external/cddl/osnet/lib/libdtrace/Makefile
+++ b/external/cddl/osnet/lib/libdtrace/Makefile
@@ -1,7 +1,8 @@
-#	$NetBSD: Makefile,v 1.9 2014/03/16 06:51:43 ozaki-r Exp $
+#	$NetBSD: Makefile,v 1.14 2015/10/05 17:49:10 christos Exp $
 
 # $FreeBSD: src/cddl/lib/libdtrace/Makefile,v 1.2.2.1 2009/08/03 08:13:06 kensmith Exp $
 
+WARNS=1
 .include <bsd.own.mk>
 
 .include	"../../Makefile.inc"
@@ -36,7 +37,9 @@ SRCS=		dt_aggregate.c \
 		dt_parser.c \
 		dt_pcb.c \
 		dt_pid.c \
+		dt_pq.c \
 		dt_pragma.c \
+		dt_print.c \
 		dt_printf.c \
 		dt_proc.c \
 		dt_program.c \
@@ -58,6 +61,7 @@ DSRCS=		errno.d			\
 .PATH:		${.CURDIR}/../../dist/lib/libdtrace/common
 
 CPPFLAGS+=	-I${.OBJDIR} \
+		-I${.CURDIR} \
 		-I${OSNETDIR}/sys \
 		-I${OSNETDIR}/include \
 		-I${OPENSOLARIS_USR_DISTDIR}/head \
@@ -79,6 +83,7 @@ COPTS.dt_link.c		+= -Wno-stack-protector
 COPTS.dt_options.c	+= -Wno-stack-protector
 COPTS.dt_parser.c	+= -Wno-stack-protector
 COPTS.dt_pragma.c	+= -Wno-stack-protector
+COPTS.dt_print.c	+= -Wno-stack-protector
 COPTS.dt_printf.c	+= -Wno-stack-protector
 COPTS.dt_program.c	+= -Wno-stack-protector
 COPTS.dt_provider.c	+= -Wno-stack-protector
@@ -86,6 +91,9 @@ COPTS.dt_subr.c		+= -Wno-stack-protector
 
 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
 CPPFLAGS+=	-I${OPENSOLARIS_SYS_DISTDIR}/uts/intel
+CPPFLAGS+=	-I${.CURDIR}/../../dev/dtrace/i386
+.PATH:		${.CURDIR}/../../dist/lib/libdtrace/i386 ${.CURDIR}/../../dev/dtrace/i386
+SRCS+=	dt_isadep.c # dis_tables.c
 .elif ${MACHINE_ARCH} == "sparc64"
 CPPFLAGS+=	-I${OPENSOLARIS_SYS_DISTDIR}/uts/sparc
 .elif ${MACHINE_CPU} == "arm"
@@ -100,22 +108,22 @@ YFLAGS+=-d
 
 CLEANFILES=	dt_errtags.c dt_names.c dt_grammar.h
 
-dt_errtags.c:
-	sh ${OPENSOLARIS_USR_DISTDIR}/lib/libdtrace/common/mkerrtags.sh < ${OPENSOLARIS_USR_DISTDIR}/lib/libdtrace/common/dt_errtags.h > dt_errtags.c
+MKERRTAGS=${OPENSOLARIS_USR_DISTDIR}/lib/libdtrace/common/mkerrtags.sh 
+dt_errtags.c: ${MKERRTAGS} ${OPENSOLARIS_USR_DISTDIR}/lib/libdtrace/common/dt_errtags.h 
+	sh ${MKERRTAGS} < ${.ALLSRC:M*.h} > ${.TARGET}
 
-dt_names.c:
-	sh ${OPENSOLARIS_USR_DISTDIR}/lib/libdtrace/common/mknames.sh < ${OPENSOLARIS_SYS_DISTDIR}/uts/common/sys/dtrace.h > dt_names.c
+MKNAMES=${OPENSOLARIS_USR_DISTDIR}/lib/libdtrace/common/mknames.sh
+dt_names.c: ${MKNAMES} ${OPENSOLARIS_SYS_DISTDIR}/uts/common/sys/dtrace.h
+	sh ${MKNAMES} < ${.ALLSRC:M*.h} > ${.TARGET}
 
 beforedepend:	dt_errtags.c dt_names.c
 
 foo:
 	echo ${OPENSOLARIS_USR_DISTDIR}
 
-#beforeinstall:
-#.if exists(${DESTDIR}/usr/lib/dtrace)
-#.for file in ${DSRCS}
-#	${INSTALL} -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} ${.CURDIR}/${file} ${DESTDIR}/usr/lib/dtrace
-#.endfor
-#.endif
+FILES=		${DSRCS}
+FILESDIR=	/usr/lib/dtrace
+
+LIBDPLIBS=	proc	${NETBSDSRCDIR}/external/bsd/libproc/lib
 
 .include <bsd.lib.mk>
diff --git a/external/cddl/osnet/lib/libdtrace/libproc_compat.h b/external/cddl/osnet/lib/libdtrace/libproc_compat.h
new file mode 100644
index 0000000..72b2598
--- /dev/null
+++ b/external/cddl/osnet/lib/libdtrace/libproc_compat.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2010 The FreeBSD Foundation 
+ * All rights reserved. 
+ * 
+ * This software was developed by Rui Paulo under sponsorship from the
+ * FreeBSD Foundation. 
+ *  
+ * Redistribution and use in source and binary forms, with or without 
+ * modification, are permitted provided that the following conditions 
+ * are met: 
+ * 1. Redistributions of source code must retain the above copyright 
+ *    notice, this list of conditions and the following disclaimer. 
+ * 2. Redistributions in binary form must reproduce the above copyright 
+ *    notice, this list of conditions and the following disclaimer in the 
+ *    documentation and/or other materials provided with the distribution. 
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
+ * SUCH DAMAGE. 
+ *
+ * $FreeBSD: head/cddl/lib/libdtrace/libproc_compat.h 281257 2015-04-08 02:36:37Z markj $
+ */
+
+/*
+ * Compatibility functions between Solaris libproc and FreeBSD libproc.
+ * Functions sorted alphabetically.
+ */
+#define	PR_LMID_EVERY 0
+#define	Psetrun(p, a1, a2) proc_continue((p))
+#define	Pxlookup_by_addr(p, a, n, s, sym, i) \
+    proc_addr2sym(p, a, n, s, sym)
+#define	Pxlookup_by_name(p, l, s1, s2, sym, a) \
+    proc_name2sym(p, s1, s2, sym, a)
+#define	Paddr_to_map proc_addr2map
+#define	Pcreate_error strerror
+#define	Pdelbkpt proc_bkptdel
+#define	Pgrab_error strerror
+#define	Plmid(p, a, l) (-1)
+#define	Plmid_to_map(p, l, o) proc_obj2map((p), (o))
+#define	Plookup_by_addr proc_addr2sym
+#define	Pname_to_ctf(p, obj) (ctf_file_t *)proc_name2ctf(p, obj)
+#define	Pname_to_map proc_name2map
+#define	Pobject_iter proc_iter_objs
+#define	Pobject_iter_resolved(p, f, arg) proc_iter_objs(p, f, arg)
+#define	Pobjname proc_objname
+#define	Pread proc_read
+#define	Prd_agent proc_rdagent
+#define	Prelease proc_detach
+#define	Psetbkpt proc_bkptset
+#define	Psetflags proc_setflags
+#define	Pstate proc_state
+#define	Psymbol_iter_by_addr proc_iter_symbyaddr
+#define	Punsetflags proc_clearflags
+#define	Pupdate_maps proc_rdagent
+#define	Pupdate_syms proc_updatesyms
+#define	Pxecbkpt proc_bkptexec
diff --git a/external/cddl/osnet/lib/libdtrace/psinfo.d b/external/cddl/osnet/lib/libdtrace/psinfo.d
index 5805971..d650c40 100644
--- a/external/cddl/osnet/lib/libdtrace/psinfo.d
+++ b/external/cddl/osnet/lib/libdtrace/psinfo.d
@@ -1,4 +1,4 @@
-/*	$NetBSD: psinfo.d,v 1.2 2010/02/21 01:46:35 darran Exp $	*/
+/*	$NetBSD: psinfo.d,v 1.5 2015/10/07 00:35:23 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -48,18 +48,18 @@ typedef struct psinfo {
 
 #pragma D binding "1.0" translator
 translator psinfo_t < struct proc *T > {
-	pr_nlwp = T->p_numthreads;
+	pr_nlwp = T->p_nlwps;
 	pr_pid = T->p_pid;
 	pr_ppid = (T->p_pptr == 0) ? 0 : T->p_pptr->p_pid;
-	pr_pgid = (T->p_leader == 0) ? 0 : T->p_leader->p_pid;
+	pr_pgid = (T->p_pgrp->pg_session->s_leader == 0) ? 0 : T->p_pgrp->pg_session->s_leader->p_pid;
 	pr_sid = (T->p_pgrp == 0) ? 0 : ((T->p_pgrp->pg_session == 0) ? 0 : T->p_pgrp->pg_session->s_sid);
-	pr_uid = T->p_ucred->cr_ruid;
-	pr_euid = T->p_ucred->cr_uid;
-	pr_gid = T->p_ucred->cr_rgid;
-	pr_egid = T->p_ucred->cr_groups[0];
+	pr_uid = T->p_cred->cr_uid;
+	pr_euid = T->p_cred->cr_euid;
+	pr_gid = T->p_cred->cr_gid;
+	pr_egid = T->p_cred->cr_egid;
 	pr_addr = 0;
-	pr_psargs = stringof(T->p_args->ar_args);
-	pr_arglen = T->p_args->ar_length;
+	pr_psargs = stringof(T->p_comm);
+	pr_arglen = strlen(T->p_comm);
 };
 
 typedef struct lwpsinfo {
@@ -76,22 +76,21 @@ typedef struct lwpsinfo {
 } lwpsinfo_t;
 
 #pragma D binding "1.0" translator
-translator lwpsinfo_t < struct thread *T > {
-	pr_lwpid = T->td_tid;
-	pr_pri = T->td_priority;
-	pr_flag = T->td_flags;
-	pr_state = 0; /* XXX */
-	pr_sname = '?'; /* XXX */
+translator lwpsinfo_t < struct lwp *T > {
+	pr_lwpid = T->l_lid;
+	pr_pri = T->l_priority;
+	pr_flag = T->l_flag;
+	pr_state = T->l_stat;
+	pr_sname = '?';	/* XXX */
 	pr_syscall = 0; /* XXX */
 	pr_addr = (uintptr_t)T;
-	pr_wchan = (uintptr_t)T->td_wchan;
+	pr_wchan = (uintptr_t)T->l_wchan;
 };
 
-inline psinfo_t *curpsinfo = xlate <psinfo_t *> (curthread->td_proc);
+inline psinfo_t *curpsinfo = xlate <psinfo_t *> (curthread->l_proc);
 #pragma D attributes Stable/Stable/Common curpsinfo
 #pragma D binding "1.0" curpsinfo
 
 inline lwpsinfo_t *curlwpsinfo = xlate <lwpsinfo_t *> (curthread);
 #pragma D attributes Stable/Stable/Common curlwpsinfo
 #pragma D binding "1.0" curlwpsinfo
-
diff --git a/external/cddl/osnet/lib/libdtrace/shlib_version b/external/cddl/osnet/lib/libdtrace/shlib_version
index 686c8bf..36e5950 100644
--- a/external/cddl/osnet/lib/libdtrace/shlib_version
+++ b/external/cddl/osnet/lib/libdtrace/shlib_version
@@ -1,6 +1,6 @@
-#	$NetBSD: shlib_version,v 1.1 2010/02/21 01:46:35 darran Exp $
+#	$NetBSD: shlib_version,v 1.2 2015/09/24 14:36:54 christos Exp $
 #	Remember to update distrib/sets/lists/base/shl.* when changing
 #
 
-major=2
+major=3
 minor=0
diff --git a/external/cddl/osnet/sys/kern/ddi.c b/external/cddl/osnet/sys/kern/ddi.c
index 4a61efb..7db3145 100644
--- a/external/cddl/osnet/sys/kern/ddi.c
+++ b/external/cddl/osnet/sys/kern/ddi.c
@@ -35,6 +35,7 @@
 #include <sys/debug.h>
 #include <sys/errno.h>
 #include <sys/param.h>
+#include <sys/lwp.h>
 #include <sys/kernel.h>
 #include <sys/kmem.h>
 #include <sys/cmn_err.h>
diff --git a/external/cddl/osnet/sys/sys/isa_defs.h b/external/cddl/osnet/sys/sys/isa_defs.h
index 1ab56a1..dc42011 100644
--- a/external/cddl/osnet/sys/sys/isa_defs.h
+++ b/external/cddl/osnet/sys/sys/isa_defs.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: isa_defs.h,v 1.1 2009/08/07 20:57:57 haad Exp $	*/
+/*	$NetBSD: isa_defs.h,v 1.2 2015/02/21 15:00:30 ozaki-r Exp $	*/
 
 /*-
  * Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -30,3 +30,22 @@
  */
 
 #include <sys/types.h>
+
+#if defined(__i386__)
+#if !defined(_ILP32)
+#define _ILP32
+#endif
+
+#elif defined(__amd64__)
+#if !defined(_LP64)
+#define _LP64
+#endif
+
+#elif defined(__arm__)
+#if !defined(_ILP32)
+#define _ILP32
+#endif
+
+#else
+#error "architecture not supported"
+#endif
diff --git a/external/cddl/osnet/sys/sys/sdt.h b/external/cddl/osnet/sys/sys/sdt.h
index abce33f..de3eefe 100644
--- a/external/cddl/osnet/sys/sys/sdt.h
+++ b/external/cddl/osnet/sys/sys/sdt.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: sdt.h,v 1.5 2010/03/01 23:42:41 darran Exp $	*/
+/*	$NetBSD: sdt.h,v 1.7 2015/10/02 17:28:57 christos Exp $	*/
 
 /*-
  * Copyright (c) 2007 Pawel Jakub Dawidek <pjd@FreeBSD.org>
@@ -33,19 +33,7 @@
 
 #include_next <sys/sdt.h>
 #include <sys/dtrace.h>
-
-#ifdef _KERNEL
-typedef struct {
-    char			name[SDT_MAX_NAME_SIZE];
-    dtrace_provider_id_t	id;
-    dtrace_pattr_t 		attr;
-    sdt_probe_t			*probes[];
-} sdt_provider_t;
-
-int sdt_register(sdt_provider_t *);
-int sdt_unregister(sdt_provider_t *);
-#endif /* _KERNEL */
-
+ 
 #undef	DTRACE_PROBE
 #undef	DTRACE_PROBE1
 #undef	DTRACE_PROBE2
diff --git a/external/cddl/osnet/sys/sys/sysmacros.h b/external/cddl/osnet/sys/sys/sysmacros.h
index 27e21fb..39c62a4 100644
--- a/external/cddl/osnet/sys/sys/sysmacros.h
+++ b/external/cddl/osnet/sys/sys/sysmacros.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: sysmacros.h,v 1.4 2010/03/02 21:08:36 darran Exp $	*/
+/*	$NetBSD: sysmacros.h,v 1.5 2015/02/07 20:30:04 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -407,19 +407,19 @@ highbit(ulong_t i)
 		h += 32; i >>= 32;
 	}
 #endif
-	if (i & 0xffff0000) {
+	if (i & 0xffff0000ul) {
 		h += 16; i >>= 16;
 	}
-	if (i & 0xff00) {
+	if (i & 0xff00ul) {
 		h += 8; i >>= 8;
 	}
-	if (i & 0xf0) {
+	if (i & 0xf0ul) {
 		h += 4; i >>= 4;
 	}
-	if (i & 0xc) {
+	if (i & 0xcul) {
 		h += 2; i >>= 2;
 	}
-	if (i & 0x2) {
+	if (i & 0x2ul) {
 		h += 1;
 	}
 	return (h);
diff --git a/external/cddl/osnet/sys/sys/uio.h b/external/cddl/osnet/sys/sys/uio.h
index 799da83..8092d27 100644
--- a/external/cddl/osnet/sys/sys/uio.h
+++ b/external/cddl/osnet/sys/sys/uio.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: uio.h,v 1.5 2010/12/14 01:21:25 haad Exp $	*/
+/*	$NetBSD: uio.h,v 1.9 2015/09/26 03:32:17 christos Exp $	*/
 
 /*-
  * Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -131,18 +131,18 @@ zfs_uiocopy(void *cp, size_t n, enum uio_rw dir, uio_t *uio, size_t *cbytes)
 static __inline void
 zfs_uioskip(uio_t *uiop, size_t n)
 {
-	if (n > uiop->uio_resid)
+	if (n > (size_t)uiop->uio_resid)
 		return;
 	while (n != 0) {
-		register iovec_t        *iovp = uiop->uio_iov;
-		register size_t         niovb = MIN(iovp->iov_len, n);
+		iovec_t        *iovp = uiop->uio_iov;
+		size_t         niovb = MIN(iovp->iov_len, n);
 
 		if (niovb == 0) {
 			uiop->uio_iov++;
 			uiop->uio_iovcnt--;
 			continue;
 		}
-		iovp->iov_base += niovb;
+		iovp->iov_base = (char *)iovp->iov_base + niovb;
 		uiop->uio_offset += niovb;
 		iovp->iov_len -= niovb;
 		uiop->uio_resid -= niovb;
diff --git a/external/cddl/osnet/usr.bin/ctfmerge/Makefile b/external/cddl/osnet/usr.bin/ctfmerge/Makefile
index ef905d3..caa01eb 100644
--- a/external/cddl/osnet/usr.bin/ctfmerge/Makefile
+++ b/external/cddl/osnet/usr.bin/ctfmerge/Makefile
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.6 2014/03/09 22:01:31 christos Exp $
+#	$NetBSD: Makefile,v 1.7 2015/09/29 20:31:43 christos Exp $
 
 # $FreeBSD: src/cddl/usr.bin/ctfmerge/Makefile,v 1.1.4.1 2009/08/03 08:13:06 kensmith Exp $
 
@@ -28,8 +28,7 @@ SRCS=		alist.c \
 		tdata.c \
 		traverse.c \
 		util.c
-
-LDADD+=-lrt -lpthread
-DPADD+=${LIBRT} ${LIBPTHREAD}
+LDADD+=-lpthread
+DPADD+=${LIBPTHREAD}
 
 .include <bsd.prog.mk>
diff --git a/external/cddl/osnet/usr.sbin/dtrace/Makefile b/external/cddl/osnet/usr.sbin/dtrace/Makefile
index fb8ba17..599083f 100644
--- a/external/cddl/osnet/usr.sbin/dtrace/Makefile
+++ b/external/cddl/osnet/usr.sbin/dtrace/Makefile
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.5 2014/01/12 17:48:25 riz Exp $
+#	$NetBSD: Makefile,v 1.6 2015/09/24 14:36:54 christos Exp $
 
 # $FreeBSD: src/cddl/usr.sbin/dtrace/Makefile,v 1.1.4.1 2009/08/03 08:13:06 kensmith Exp $
 
@@ -33,13 +33,11 @@ COPTS.dtrace.c += -Wno-stack-protector -Wno-format-extra-args
 
 LDFLAGS+=	-pthread
 
-LIBCTF_OBJDIR!=	cd ${.CURDIR}/../../lib/libctf && ${PRINTOBJDIR}
-LDFLAGS+=	-L${LIBDTRACE_OBJDIR} -ldtrace
-
-LIBDTRACE_OBJDIR!= cd ${.CURDIR}/../../lib/libdtrace && ${PRINTOBJDIR}
-LDFLAGS+=	-L${LIBCTF_OBJDIR} -lctf
-
-LDADD+=		-ly -ll -lelf -lz
-
+PROGDPLIBS+=	ctf ${.CURDIR}/../../lib/libctf
+PROGDPLIBS+=	dtrace ${.CURDIR}/../../lib/libdtrace
+PROGDPLIBS+=	elf ${NETBSDSRCDIR}/external/bsd/elftoolchain/lib/libelf
+PROGDPLIBS+=	y ${NETBSDSRCDIR}/lib/liby
+PROGDPLIBS+=	l ${NETBSDSRCDIR}/external/bsd/flex/lib
+PROGDPLIBS+=	z ${NETBSDSRCDIR}/lib/libz
 
 .include <bsd.prog.mk>
diff --git a/gnu/usr.bin/groff/tmac/mdoc.local b/gnu/usr.bin/groff/tmac/mdoc.local
index e1361c4..15bde29 100644
--- a/gnu/usr.bin/groff/tmac/mdoc.local
+++ b/gnu/usr.bin/groff/tmac/mdoc.local
@@ -98,10 +98,12 @@
 .ds doc-str-Lb-libnpf           NPF Packet Filter Library (libnpf, \-lnpf)
 .ds doc-str-Lb-libperfuse       PUFFS-enabled Relay to FUSE Library (libperfuse, \-lperfuse)
 .ds doc-str-Lb-libppath         Property-List Paths Library (libppath, \-lppath)
+.ds doc-str-Lb-libproc          Process manipulation Library (libproc, \-lproc)
 .ds doc-str-Lb-libprop          Property Container Object Library (libprop, \-lprop)
 .ds doc-str-Lb-libpuffs         puffs Convenience Library (libpuffs, \-lpuffs)
 .ds doc-str-Lb-libquota		Disk Quota Access and Control Library (libquota, \-lquota)
 .ds doc-str-Lb-librefuse        File System in Userspace Convenience Library (librefuse, \-lrefuse)
+.ds doc-str-Lb-librtld_db       Debugging interface to the runtime linker Library (librtld_db, \-lrtld_db)
 .ds doc-str-Lb-librumpclient	Clientside Stubs for rump Kernel Remote Protocols (librumpclient, \-lrumpclient)
 .ds doc-str-Lb-libsaslc         Simple Authentication and Security Layer client library (libsaslc, \-lsaslc)
 .ds doc-str-Lb-libssp           Buffer Overflow Protection Library (libssp, \-lssp)
diff --git a/include/util.h b/include/util.h
index 941e4be..2a1b5ed 100644
--- a/include/util.h
+++ b/include/util.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: util.h,v 1.65 2013/05/02 07:17:35 matt Exp $	*/
+/*	$NetBSD: util.h,v 1.68 2015/09/24 14:39:37 christos Exp $	*/
 
 /*-
  * Copyright (c) 1995
@@ -83,6 +83,7 @@ const char     *getdiskrawname(char *, size_t, const char *);
 const char     *getdiskcookedname(char *, size_t, const char *);
 const char     *getfstypename(int);
 const char     *getfsspecname(char *, size_t, const char *);
+struct kinfo_vmentry *kinfo_getvmmap(pid_t, size_t *);
 #ifndef __LIBC12_SOURCE__
 void		login(const struct utmp *) __RENAME(__login50);
 void		loginx(const struct utmpx *) __RENAME(__loginx50);
diff --git a/lib/Makefile b/lib/Makefile
index 75380b1..8d9b742 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -64,6 +64,13 @@ SUBDIR+=	../external/bsd/sljit/lib
 SUBDIR+=	libbpfjit
 .endif
 
+.if (${MKZFS} != "no")
+SUBDIR+=        ../external/cddl/osnet/lib/libavl
+SUBDIR+=        ../external/cddl/osnet/lib/libnvpair
+SUBDIR+=        ../external/cddl/osnet/lib/libumem
+SUBDIR+=        ../external/cddl/osnet/lib/libuutil
+.endif
+
 SUBDIR+=	../external/mit/expat/lib
 
 SUBDIR+=	../external/public-domain/sqlite/lib
@@ -91,6 +98,16 @@ SUBDIR+=	../external/lgpl3/mpc/lib/libmpc
 #==================== 1st library dependency barrier ====================
 SUBDIR+=	.WAIT
 
+.if ${MKDTRACE} != "no"
+SUBDIR+=	../external/bsd/librtld_db/lib		# depends on libutil
+.endif
+
+.if ${MKDTRACE} != "no" || ${MKCTF} != "no"
+SUBDIR+=        ../external/cddl/osnet/lib/libctf
+.endif
+
+SUBDIR+=	../external/public-domain/xz/lib	# depends on libpthread
+
 .if (${MKCRYPTO} != "no")
 SUBDIR+=	../crypto/external/bsd/netpgp/libmj
 SUBDIR+=	../crypto/external/bsd/netpgp/lib/verify # depends on libz
@@ -181,6 +198,9 @@ SUBDIR+=	../crypto/external/bsd/netpgp/lib  # depends on libcrypto, ...
 .endif
 
 SUBDIR+=	../external/bsd/libevent/lib	# depends on libcrypto
+.if ${MKDTRACE} != "no"
+SUBDIR+=	../external/bsd/libproc/lib	# depends on libstdc++, libctf
+.endif
 SUBDIR+=	../external/bsd/fetch/lib	# depends on libssl
 
 .if (${MKLDAP} != "no")
@@ -192,6 +212,10 @@ SUBDIR+=	.WAIT
 
 SUBDIR+=	../external/bsd/bind/lib	# depends on heimdal, libcrypto
 
+.if ${MKDTRACE} != "no"
+SUBDIR+=        ../external/cddl/osnet/lib/libdtrace	# depends on libproc
+.endif
+
 .if (${MKRUMP} != "no")
 SUBDIR+=	librumpdev	# depends on librump
 SUBDIR+=	librumpnet	# depends on librump
diff --git a/lib/libexecinfo/backtrace.c b/lib/libexecinfo/backtrace.c
index 68904cb..f3245eb 100644
--- a/lib/libexecinfo/backtrace.c
+++ b/lib/libexecinfo/backtrace.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: backtrace.c,v 1.4 2013/11/21 16:02:21 christos Exp $	*/
+/*	$NetBSD: backtrace.c,v 1.6 2015/09/25 19:27:31 christos Exp $	*/
 
 /*-
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: backtrace.c,v 1.4 2013/11/21 16:02:21 christos Exp $");
+__RCSID("$NetBSD: backtrace.c,v 1.6 2015/09/25 19:27:31 christos Exp $");
 
 #include <sys/param.h>
 #include <assert.h>
@@ -60,7 +60,7 @@ open_self(int flags)
 	const char *pathname = SELF;
 #ifdef KERN_PROC_PATHNAME
 	static const int name[] = {
-		CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1,
+		CTL_KERN, KERN_PROC_ARGS, -1, KERN_PROC_PATHNAME,
 	};
 	char path[MAXPATHLEN];
 	size_t len;
diff --git a/lib/libutil/Makefile b/lib/libutil/Makefile
index 2070310..989d85a 100644
--- a/lib/libutil/Makefile
+++ b/lib/libutil/Makefile
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.75 2013/06/20 20:42:30 christos Exp $
+#	$NetBSD: Makefile,v 1.78 2015/09/24 14:39:20 christos Exp $
 #	@(#)Makefile	8.1 (Berkeley) 6/4/93
 
 USE_SHLIBDIR=	yes
@@ -15,7 +15,7 @@ SRCS+=	efun.c \
 	getbootfile.c getbyteorder.c getlabelsector.c getmaxpartitions.c \
 	getfsspecname.c getmntopts.c getrawpartition.c getdiskrawname.c \
 	disklabel_dkcksum.c disklabel_scan.c \
-	if_media.c \
+	if_media.c kinfo_getvmmap.c \
 	login.c loginx.c login_cap.c login_tty.c logout.c logoutx.c \
 	logwtmp.c logwtmpx.c opendisk.c parsedate.y \
 	passwd.c pw_scan.c pidfile.c pidlock.c pty.c \
@@ -27,7 +27,7 @@ MAN=	efun.3 \
 	getbootfile.3 getbyteorder.3 getfstypename.3 getlabelsector.3 \
 	getmaxpartitions.3 getmntopts.3 getrawpartition.3 \
 	getdiskrawname.3 getfsspecname.3 \
-	login.3 login_cap.3 loginx.3 \
+	login.3 login_cap.3 loginx.3 kinfo_getvmmap.3 \
 	disklabel_dkcksum.3 disklabel_scan.3 \
 	opendisk.3 openpty.3 parsedate.3 pidfile.3 pidlock.3 \
 	proc_compare.3 pw_getconf.3 pw_init.3 pw_lock.3 secure_path.3 \
diff --git a/lib/libutil/kinfo_getvmmap.3 b/lib/libutil/kinfo_getvmmap.3
new file mode 100644
index 0000000..e0851c7
--- /dev/null
+++ b/lib/libutil/kinfo_getvmmap.3
@@ -0,0 +1,80 @@
+.\"	$NetBSD: kinfo_getvmmap.3,v 1.1 2015/09/24 14:39:20 christos Exp $
+.\"
+.\" Copyright (c) 2008 Peter Wemm
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD: head/lib/libutil/kinfo_getvmmap.3 283622 2015-05-27 17:51:06Z jhb $
+.\"
+.Dd September 16, 2015
+.Dt KINFO_GETVMMAP 3
+.Os
+.Sh NAME
+.Nm kinfo_getvmmap
+.Nd function for getting per-process memory map information
+.Sh LIBRARY
+.Lb libutil
+.Sh SYNOPSIS
+.In sys/types.h
+.In sys/sysctl.h
+.In util.h
+.Ft struct kinfo_vmentry *
+.Fn kinfo_getvmmap "pid_t pid" "size_t *cntp"
+.Sh DESCRIPTION
+This function is used for obtaining virtual memory mapping information
+of a particular process.
+.Pp
+The
+.Ar pid
+field contains the process identifier.
+This should be the a process that you have privilege to access.
+The
+.Ar cntp
+field is allows the caller to know how many records are returned.
+.Pp
+This function is a wrapper around
+.Xr sysctl 3
+with the
+.Dv KERN_PROC_VMMAP
+mib.
+While the kernel returns a packed structure, this function expands the
+data into a fixed record format.
+.Sh RETURN VALUES
+On success the
+.Fn kinfo_getvmmap
+function returns a pointer to an array of
+.Vt struct kinfo_vmentry
+structures as defined by
+.In sys/sysctl.h .
+The array was obtained by an internal call to
+.Xr malloc 3
+and must be freed by the caller with a call to
+.Xr free 3 .
+On failure the
+.Fn kinfo_getvmmap
+function returns
+.Dv NULL .
+.Sh SEE ALSO
+.Xr free 3 ,
+.\" .Xr kinfo_getfile 3 ,
+.Xr malloc 3
diff --git a/lib/libutil/kinfo_getvmmap.c b/lib/libutil/kinfo_getvmmap.c
new file mode 100644
index 0000000..0297c77
--- /dev/null
+++ b/lib/libutil/kinfo_getvmmap.c
@@ -0,0 +1,48 @@
+#include <sys/cdefs.h>
+#ifdef __FBSDID
+__FBSDID("$FreeBSD: head/lib/libutil/kinfo_getvmmap.c 186512 2008-12-27 11:12:23Z rwatson $");
+#endif
+__RCSID("$NetBSD: kinfo_getvmmap.c,v 1.1 2015/09/24 14:39:20 christos Exp $");
+
+#include <sys/param.h>
+#include <sys/user.h>
+#include <sys/sysctl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <util.h>
+
+struct kinfo_vmentry *
+kinfo_getvmmap(pid_t pid, size_t *cntp)
+{
+	int mib[5];
+	int error;
+	size_t len;
+	struct kinfo_vmentry *kiv;
+
+	*cntp = 0;
+	len = 0;
+	mib[0] = CTL_VM;
+	mib[1] = VM_PROC;
+	mib[2] = VM_PROC_MAP;
+	mib[3] = pid;
+	mib[4] = sizeof(*kiv);
+
+	error = sysctl(mib, __arraycount(mib), NULL, &len, NULL, 0);
+	if (error)
+		return NULL;
+
+	len = len * 4 / 3;
+
+	kiv = malloc(len);
+	if (kiv == NULL)
+		return NULL;
+
+	error = sysctl(mib, __arraycount(mib), kiv, &len, NULL, 0);
+	if (error) {
+		free(kiv);
+		return NULL;
+	}
+
+	*cntp = len / sizeof(*kiv);
+	return kiv;	/* Caller must free() return value */
+}
diff --git a/lib/libutil/shlib_version b/lib/libutil/shlib_version
index 7115edc..656fe59 100644
--- a/lib/libutil/shlib_version
+++ b/lib/libutil/shlib_version
@@ -1,5 +1,5 @@
-#	$NetBSD: shlib_version,v 1.51 2012/04/07 16:44:39 christos Exp $
+#	$NetBSD: shlib_version,v 1.53 2015/09/24 14:39:20 christos Exp $
 #	Remember to update distrib/sets/lists/base/shl.* when changing
 #
 major=7
-minor=21
+minor=23
diff --git a/share/man/man7/sysctl.7 b/share/man/man7/sysctl.7
index 316a869..a38fa01 100644
--- a/share/man/man7/sysctl.7
+++ b/share/man/man7/sysctl.7
@@ -1,4 +1,4 @@
-.\"	$NetBSD: sysctl.7,v 1.85 2014/08/03 09:15:21 apb Exp $
+.\"	$NetBSD: sysctl.7,v 1.93 2015/09/24 14:56:41 christos Exp $
 .\"
 .\" Copyright (c) 1993
 .\"	The Regents of the University of California.  All rights reserved.
@@ -29,7 +29,7 @@
 .\"
 .\"	@(#)sysctl.3	8.4 (Berkeley) 5/9/95
 .\"
-.Dd August 3, 2014
+.Dd September 24, 2015
 .Dt SYSCTL 7
 .Os
 .Sh NAME
@@ -2232,6 +2232,7 @@ privilege may change the value.
 .It vm.uvmexp	struct uvmexp	no
 .It vm.uvmexp2	struct uvmexp_sysctl	no
 .It vm.vmmeter	struct vmtotal	no
+.It vm.proc.map	struct kinfo_vmentry	no
 .El
 .Pp
 .Bl -tag -width "123456"
@@ -2276,7 +2277,16 @@ The returned data consists of a
 .Vt struct vmtotal .
 .It vm.user_va0_disable
 A flag which controls whether user processes can map virtual address\ 0.
-.It Li vm.uspace ( VM_USPACE )
+.It Li vm.proc.map ( Dv VM_PROC )
+The third level is 
+.dv VM_PROC_MAP ,
+the fourth is the pid of the process to display the vm object entries for, and
+the fifth is the size of
+.Vt struct kinfo_vmentry .
+Returns an array of
+.Vt struct kinfo_vmentry
+objects.
+.It Li vm.uspace ( Dv VM_USPACE )
 The number of bytes allocated for each kernel stack.
 .It Li vm.uvmexp ( VM_UVMEXP )
 Return system wide virtual memory statistics.
diff --git a/sys/arch/aarch64/include/ptrace.h b/sys/arch/aarch64/include/ptrace.h
index d35f697..6cb46d4 100644
--- a/sys/arch/aarch64/include/ptrace.h
+++ b/sys/arch/aarch64/include/ptrace.h
@@ -1,4 +1,4 @@
-/* $NetBSD: ptrace.h,v 1.1 2014/08/10 05:47:38 matt Exp $ */
+/* $NetBSD: ptrace.h,v 1.4 2015/09/25 16:05:17 christos Exp $ */
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -49,6 +49,16 @@
 	"PT_GETFPREGS", \
 	"PT_SETFPREGS",
 
+
+#include <machine/reg.h>
+#define PTRACE_REG_PC(r)	(r)->r_pc
+#define PTRACE_REG_SET_PC(r, v)	(r)->r_pc = (v)
+#define PTRACE_REG_SP(r)	(r)->r_sp
+#define PTRACE_REG_INTRV(r)	(r)->r_reg[0]
+
+#define PTRACE_BREAKPOINT	((const uint8_t[]) { 0xd4, 0x20, 0x01, 0xa0 })
+#define PTRACE_BREAKPOINT_SIZE	4
+
 #elif defined(__arm__)
 
 #include <arm/asm.h>
diff --git a/sys/arch/alpha/alpha/linux_syscall.c b/sys/arch/alpha/alpha/linux_syscall.c
index f6bb7c6..d3dffef 100644
--- a/sys/arch/alpha/alpha/linux_syscall.c
+++ b/sys/arch/alpha/alpha/linux_syscall.c
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_syscall.c,v 1.32 2012/02/06 02:14:11 matt Exp $ */
+/* $NetBSD: linux_syscall.c,v 1.33 2015/03/07 18:51:44 christos Exp $ */
 
 /*-
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -89,7 +89,7 @@
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
 
-__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.32 2012/02/06 02:14:11 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.33 2015/03/07 18:51:44 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -282,7 +282,7 @@ linux_syscall_fancy(struct lwp *l, uint64_t code, struct trapframe *framep)
 	args += hidden;
 
 
-	if ((error = trace_enter(code, args, callp->sy_narg)) != 0)
+	if ((error = trace_enter(code, callp, args)) != 0)
 		goto out;
 
 	rval[0] = 0;
@@ -308,7 +308,7 @@ out:
 		break;
 	}
 
-	trace_exit(code, rval, error);
+	trace_exit(code, callp, args, rval, error);
 
 	userret(l);
 }
diff --git a/sys/arch/alpha/alpha/osf1_syscall.c b/sys/arch/alpha/alpha/osf1_syscall.c
index a3aef00..b98b6ed 100644
--- a/sys/arch/alpha/alpha/osf1_syscall.c
+++ b/sys/arch/alpha/alpha/osf1_syscall.c
@@ -1,4 +1,4 @@
-/* $NetBSD: osf1_syscall.c,v 1.34 2012/02/06 02:14:12 matt Exp $ */
+/* $NetBSD: osf1_syscall.c,v 1.35 2015/03/07 18:51:44 christos Exp $ */
 
 /*-
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -89,7 +89,7 @@
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
 
-__KERNEL_RCSID(0, "$NetBSD: osf1_syscall.c,v 1.34 2012/02/06 02:14:12 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: osf1_syscall.c,v 1.35 2015/03/07 18:51:44 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -278,7 +278,7 @@ osf1_syscall_fancy(struct lwp *l, uint64_t code, struct trapframe *framep)
 	}
 	args += hidden;
 
-	if ((error = trace_enter(code, args, callp->sy_narg)) != 0)
+	if ((error = trace_enter(code, callp, args)) != 0)
 		goto out;
 
 	rval[0] = 0;
@@ -304,7 +304,7 @@ out:
 		break;
 	}
 
-	trace_exit(code, rval, error);
+	trace_exit(code, callp, args, rval, error);
 
 	userret(l);
 }
diff --git a/sys/arch/alpha/include/ptrace.h b/sys/arch/alpha/include/ptrace.h
index a0f8d68..cc1ff43 100644
--- a/sys/arch/alpha/include/ptrace.h
+++ b/sys/arch/alpha/include/ptrace.h
@@ -1,4 +1,4 @@
-/* $NetBSD: ptrace.h,v 1.6 2008/01/25 12:03:36 skrll Exp $ */
+/* $NetBSD: ptrace.h,v 1.8 2015/09/25 16:05:17 christos Exp $ */
 
 /*
  * Copyright (c) 1994 Christopher G. Demetriou
@@ -44,3 +44,13 @@
 	"PT_SETREGS", \
 	"PT_GETFPREGS", \
 	"PT_SETFPREGS",
+
+#include <machine/reg.h>
+
+#define PTRACE_REG_PC(r)	(r)->r_regs[R_ZERO]
+#define PTRACE_REG_SET_PC(r, v)	(r)->r_regs[R_ZERO] = (v)
+#define PTRACE_REG_SP(r)	(r)->r_regs[R_SP]
+#define PTRACE_REG_INTRV(r)	(r)->r_regs[R_V0]
+
+#define PTRACE_BREAKPOINT	((const uint8_t[]) { 0x80, 0x00, 0x00, 0x00 })
+#define PTRACE_BREAKPOINT_SIZE	4
diff --git a/sys/arch/amd64/amd64/linux32_syscall.c b/sys/arch/amd64/amd64/linux32_syscall.c
index 1ad3040..66e71e8 100644
--- a/sys/arch/amd64/amd64/linux32_syscall.c
+++ b/sys/arch/amd64/amd64/linux32_syscall.c
@@ -1,7 +1,7 @@
-/*	$NetBSD: linux32_syscall.c,v 1.30 2010/12/20 00:25:24 matt Exp $ */
+/*	$NetBSD: linux32_syscall.c,v 1.32 2015/03/07 18:41:40 christos Exp $ */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux32_syscall.c,v 1.30 2010/12/20 00:25:24 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_syscall.c,v 1.32 2015/03/07 18:41:40 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -63,14 +63,14 @@ linux32_syscall(struct trapframe *frame)
 	args[4] = frame->tf_rdi & 0xffffffff;
 	args[5] = frame->tf_rbp & 0xffffffff;
 
-	if (__predict_false(p->p_trace_enabled)) {
+	if (__predict_false(p->p_trace_enabled || KDTRACE_ENTRY(callp->sy_return))) {
 		narg = callp->sy_narg;
 		if (__predict_false(narg > __arraycount(args)))
 			panic("impossible syscall narg, code %d, narg %zd",
 			    code, narg);
 		for (i = 0; i < narg; i++)
 			args64[i] = args[i] & 0xffffffff;
-		if ((error = trace_enter(code, args64, narg)) != 0)
+		if ((error = trace_enter(code, callp, args64)) != 0)
 			goto out;
 	}
 
@@ -102,7 +102,11 @@ out:
 		break;
 	}
 
-	if (__predict_false(p->p_trace_enabled))
-		trace_exit(code, rval, error);
+	if (__predict_false(p->p_trace_enabled || KDTRACE_ENTRY(callp->sy_return))) {
+		narg = callp->sy_narg;
+		for (i = 0; i < narg; i++)
+			args64[i] = args[i] & 0xffffffff;
+		trace_exit(code, callp, args64, rval, error);
+	}
 	userret(l);
 }
diff --git a/sys/arch/amd64/amd64/linux_syscall.c b/sys/arch/amd64/amd64/linux_syscall.c
index 8525dfd..1646454 100644
--- a/sys/arch/amd64/amd64/linux_syscall.c
+++ b/sys/arch/amd64/amd64/linux_syscall.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_syscall.c,v 1.31 2010/12/20 00:25:24 matt Exp $ */
+/*	$NetBSD: linux_syscall.c,v 1.32 2015/03/07 18:41:40 christos Exp $ */
 
 /*-
  * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.31 2010/12/20 00:25:24 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.32 2015/03/07 18:41:40 christos Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_linux.h"
@@ -97,8 +97,8 @@ linux_syscall(struct trapframe *frame)
 	 * already adjacent in the syscall trapframe.
 	 */
 
-	if (__predict_false(p->p_trace_enabled)
-	    && (error = trace_enter(code, args, callp->sy_narg)) != 0)
+	if (__predict_false(p->p_trace_enabled || KDTRACE_ENTRY(callp->sy_entry))
+	    && (error = trace_enter(code, callp, args)) != 0)
 		goto out;
 
 	rval[0] = 0;
@@ -126,8 +126,8 @@ out:
 		break;
 	}
 
-	if (__predict_false(p->p_trace_enabled))
-		trace_exit(code, rval, error);
+	if (__predict_false(p->p_trace_enabled || KDTRACE_ENTRY(callp->sy_return)))
+		trace_exit(code, callp, args, rval, error);
 
 	userret(l);
 }
diff --git a/sys/arch/amd64/amd64/netbsd32_syscall.c b/sys/arch/amd64/amd64/netbsd32_syscall.c
index 7efbb5d..baea965 100644
--- a/sys/arch/amd64/amd64/netbsd32_syscall.c
+++ b/sys/arch/amd64/amd64/netbsd32_syscall.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_syscall.c,v 1.32 2014/05/16 12:55:43 njoly Exp $	*/
+/*	$NetBSD: netbsd32_syscall.c,v 1.33 2015/03/07 18:41:40 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -29,8 +29,12 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
+#if defined(_KERNEL) && defined(_KERNEL_OPT)
+#include "opt_dtrace.h"
+#endif
+
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscall.c,v 1.32 2014/05/16 12:55:43 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscall.c,v 1.33 2015/03/07 18:41:40 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -88,12 +92,12 @@ netbsd32_syscall(struct trapframe *frame)
 			goto bad;
 	}
 
-	if (__predict_false(p->p_trace_enabled)
+	if (__predict_false(p->p_trace_enabled || KDTRACE_ENTRY(callp->sy_entry))
 	    && !__predict_false(callp->sy_flags & SYCALL_INDIRECT)) {
 		int narg = callp->sy_argsize >> 2;
 		for (i = 0; i < narg; i++)
 			args64[i] = args[i];
-		error = trace_enter(code, args64, narg);
+		error = trace_enter(code, callp, args64);
 		if (__predict_false(error != 0))
 			goto out;
 	}
@@ -103,9 +107,12 @@ netbsd32_syscall(struct trapframe *frame)
 	error = sy_call(callp, l, args, rval);
 
 out:
-	if (__predict_false(p->p_trace_enabled)
+	if (__predict_false(p->p_trace_enabled || KDTRACE_ENTRY(callp->sy_return))
 	    && !__predict_false(callp->sy_flags & SYCALL_INDIRECT)) {
-		trace_exit(code, rval, error);
+		int narg = callp->sy_argsize >> 2;
+		for (i = 0; i < narg; i++)
+			args64[i] = args[i];
+		trace_exit(code, callp, args64, rval, error);
 	}
 
 	if (__predict_true(error == 0)) {
diff --git a/sys/arch/amd64/include/ptrace.h b/sys/arch/amd64/include/ptrace.h
index ed23b0a..2ff131d 100644
--- a/sys/arch/amd64/include/ptrace.h
+++ b/sys/arch/amd64/include/ptrace.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: ptrace.h,v 1.3 2007/04/16 12:22:26 njoly Exp $	*/
+/*	$NetBSD: ptrace.h,v 1.6 2015/09/25 16:05:17 christos Exp $	*/
 
 /*
  * Copyright (c) 1993 Christopher G. Demetriou
@@ -29,7 +29,10 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+#ifndef _AMD64_PTRACE_H_
+#define _AMD64_PTRACE_H_
 
+#ifdef __x86_64__
 /*
  * i386-dependent ptrace definitions
  */
@@ -46,6 +49,16 @@
 	"PT_GETFPREGS", \
 	"PT_SETFPREGS",
 
+#include <machine/reg.h>
+#define PTRACE_REG_PC(r)	(r)->regs[_REG_RIP]
+#define PTRACE_REG_SET_PC(r, v)	(r)->regs[_REG_RIP] = (v)
+#define PTRACE_REG_SP(r)	(r)->regs[_REG_RSP]
+#define PTRACE_REG_INTRV(r)	(r)->regs[_REG_RAX]
+
+#define PTRACE_BREAKPOINT	((const uint8_t[]) { 0xcc })
+#define PTRACE_BREAKPOINT_SIZE	1
+#define PTRACE_BREAKPOINT_ADJ	1
+
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd32.h"
 
@@ -57,5 +70,13 @@
 
 #define process_reg32		struct reg32
 #define process_fpreg32		struct fpreg32
-#endif
-#endif
+#endif	/* COMPAT_NETBSD32 */
+#endif	/* _KERNEL_OPT */
+
+#else	/* !__x86_64__ */
+
+#include <i386/ptrace.h>
+
+#endif	/* __x86_64__ */
+
+#endif	/* _AMD64_PTRACE_H_ */
diff --git a/sys/arch/arm/arm/linux_syscall.c b/sys/arch/arm/arm/linux_syscall.c
index af2b7c1..38cc9af 100644
--- a/sys/arch/arm/arm/linux_syscall.c
+++ b/sys/arch/arm/arm/linux_syscall.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_syscall.c,v 1.26 2014/04/03 16:22:20 rjs Exp $	*/
+/*	$NetBSD: linux_syscall.c,v 1.27 2015/03/07 18:52:46 christos Exp $	*/
 
 /*-
  * Copyright (c) 2000, 2003 The NetBSD Foundation, Inc.
@@ -69,7 +69,7 @@
 
 #include <sys/param.h>
 
-__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.26 2014/04/03 16:22:20 rjs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.27 2015/03/07 18:52:46 christos Exp $");
 
 #include <sys/device.h>
 #include <sys/errno.h>
@@ -182,7 +182,7 @@ linux_syscall_fancy(trapframe_t *frame, struct lwp *l, uint32_t insn)
 	args = &frame->tf_r0;
 	callp = p->p_emul->e_sysent + code;
 
-	if ((error = trace_enter(code, args, callp->sy_narg)) != 0)
+	if ((error = trace_enter(code, callp, args)) != 0)
 		goto out;
 
 	rval[0] = 0;
@@ -209,7 +209,7 @@ out:
 		break;
 	}
 
-	trace_exit(code, rval, error);
+	trace_exit(code, callp, args, rval, error);
 
 	userret(l);
 }
diff --git a/sys/arch/arm/include/ptrace.h b/sys/arch/arm/include/ptrace.h
index e5ec2a3..57e601d 100644
--- a/sys/arch/arm/include/ptrace.h
+++ b/sys/arch/arm/include/ptrace.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: ptrace.h,v 1.6 2012/12/05 19:05:46 matt Exp $	*/
+/*	$NetBSD: ptrace.h,v 1.8 2015/09/25 16:05:17 christos Exp $	*/
 
 /*
  * Copyright (c) 1995 Frank Lancaster
@@ -51,3 +51,12 @@
 	"old PT_SETFPREGS", \
 	"PT_GETFPREGS", \
 	"PT_SETFPREGS",
+
+#include <machine/reg.h>
+#define PTRACE_REG_PC(r)	(r)->r_pc
+#define PTRACE_REG_SET_PC(r, v)	(r)->r_pc = (v)
+#define PTRACE_REG_SP(r)	(r)->r_sp
+#define PTRACE_REG_INTRV(r)	(r)->r[0]
+
+#define PTRACE_BREAKPOINT	((const uint8_t[]) { 0xe7, 0xff, 0xff, 0xff })
+#define PTRACE_BREAKPOINT_SIZE	4
diff --git a/sys/arch/hppa/include/ptrace.h b/sys/arch/hppa/include/ptrace.h
index b821ed9..7e615e2 100644
--- a/sys/arch/hppa/include/ptrace.h
+++ b/sys/arch/hppa/include/ptrace.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: ptrace.h,v 1.3 2009/11/03 05:07:26 snj Exp $	*/
+/*	$NetBSD: ptrace.h,v 1.5 2015/09/25 16:05:17 christos Exp $	*/
 
 /*	$OpenBSD: ptrace.h,v 1.2 1998/12/01 03:05:44 mickey Exp $	*/
 
@@ -43,3 +43,15 @@
 	"PT_SETREGS", \
 	"PT_GETFPREGS", \
 	"PT_SETFPREGS",
+
+#include <machine/reg.h>
+#define PTRACE_REG_PC(r)	(r)->r_pcoqh
+#define PTRACE_REG_SET_PC(r, v)	do {	\
+	(r)->r_pcoqh = (v);		\
+	(r)->r_pcoqt = (v) + 4;		\
+    } while (/*CONSTCOND*/0)
+#define PTRACE_REG_SP(r)	(r)->r_out[30]
+#define PTRACE_REG_INTRV(r)	(r)->r_out[28]
+
+#define PTRACE_BREAKPOINT	((const uint8_t[]) { 0x00, 0x01, 0x00, 0x04 })
+#define PTRACE_BREAKPOINT_SIZE	4
diff --git a/sys/arch/i386/i386/freebsd_syscall.c b/sys/arch/i386/i386/freebsd_syscall.c
index c891b6f..35fe54e5 100644
--- a/sys/arch/i386/i386/freebsd_syscall.c
+++ b/sys/arch/i386/i386/freebsd_syscall.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: freebsd_syscall.c,v 1.39 2012/07/12 18:13:08 dsl Exp $	*/
+/*	$NetBSD: freebsd_syscall.c,v 1.40 2015/03/07 18:50:01 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: freebsd_syscall.c,v 1.39 2012/07/12 18:13:08 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: freebsd_syscall.c,v 1.40 2015/03/07 18:50:01 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -112,8 +112,8 @@ freebsd_syscall(struct trapframe *frame)
 			goto bad;
 	}
 
-	if (!__predict_false(p->p_trace_enabled)
-	    || (error = trace_enter(code, args, callp->sy_narg)) == 0) {
+	if (!__predict_false(p->p_trace_enabled || KDTRACE_ENTRY(callp->sy_entry))
+	    || (error = trace_enter(code, callp, args)) == 0) {
 		rval[0] = 0;
 		rval[1] = frame->tf_edx; /* need to keep edx for shared FreeBSD bins */
 		error = sy_call(callp, l, args, rval);
@@ -143,8 +143,8 @@ freebsd_syscall(struct trapframe *frame)
 		break;
 	}
 
-	if (__predict_false(p->p_trace_enabled))
-		trace_exit(code, rval, error);
+	if (__predict_false(p->p_trace_enabled || KDTRACE_ENTRY(callp->sy_return)))
+		trace_exit(code, callp, args, rval, error);
 
 	userret(l);
 }
diff --git a/sys/arch/i386/i386/ibcs2_syscall.c b/sys/arch/i386/i386/ibcs2_syscall.c
index 2f569d1..ed33ae4 100644
--- a/sys/arch/i386/i386/ibcs2_syscall.c
+++ b/sys/arch/i386/i386/ibcs2_syscall.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: ibcs2_syscall.c,v 1.48 2012/07/12 18:13:08 dsl Exp $	*/
+/*	$NetBSD: ibcs2_syscall.c,v 1.49 2015/03/07 18:50:01 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ibcs2_syscall.c,v 1.48 2012/07/12 18:13:08 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ibcs2_syscall.c,v 1.49 2015/03/07 18:50:01 christos Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_vm86.h"
@@ -111,8 +111,8 @@ ibcs2_syscall(struct trapframe *frame)
 			goto bad;
 	}
 
-	if (!__predict_false(p->p_trace_enabled)
-	    || (error = trace_enter(code, args, callp->sy_narg)) == 0) {
+	if (!__predict_false(p->p_trace_enabled || KDTRACE_ENTRY(callp->sy_entry))
+	    || (error = trace_enter(code, callp, args)) == 0) {
 		rval[0] = 0;
 		rval[1] = 0;
 		error = sy_call(callp, l, args, rval);
@@ -143,8 +143,8 @@ ibcs2_syscall(struct trapframe *frame)
 		break;
 	}
 
-	if (__predict_false(p->p_trace_enabled))
-		trace_exit(code, rval, error);
+	if (__predict_false(p->p_trace_enabled || KDTRACE_ENTRY(callp->sy_return)))
+		trace_exit(code, callp, args, rval, error);
 
 	userret(l);
 }
diff --git a/sys/arch/i386/i386/linux_syscall.c b/sys/arch/i386/i386/linux_syscall.c
index 614825d..a8c8dfb 100644
--- a/sys/arch/i386/i386/linux_syscall.c
+++ b/sys/arch/i386/i386/linux_syscall.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_syscall.c,v 1.51 2011/09/28 17:27:21 christos Exp $	*/
+/*	$NetBSD: linux_syscall.c,v 1.52 2015/03/07 18:50:01 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.51 2011/09/28 17:27:21 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.52 2015/03/07 18:50:01 christos Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_vm86.h"
@@ -99,12 +99,10 @@ linux_syscall(struct trapframe *frame)
 	rval[0] = 0;
 	rval[1] = 0;
 
-	if (__predict_false(l->l_proc->p_trace_enabled)) {
-		error = trace_enter(code, args, callp->sy_narg);
-		if (__predict_true(error == 0)) {
+	if (__predict_false(l->l_proc->p_trace_enabled || KDTRACE_ENTRY(callp->sy_entry))) {
+		error = trace_enter(code, callp, args);
+		if (__predict_true(error == 0))
 			error = sy_call(callp, l, args, rval);
-			trace_exit(code, rval, error);
-		}
 	} else
 		error = sy_call(callp, l, args, rval);
 
@@ -137,6 +135,8 @@ linux_syscall(struct trapframe *frame)
 			break;
 		}
 	}
+	if (__predict_false(l->l_proc->p_trace_enabled || KDTRACE_ENTRY(callp->sy_return)))
+		trace_exit(code, callp, args, rval, error);
 
 	userret(l);
 }
diff --git a/sys/arch/i386/i386/svr4_syscall.c b/sys/arch/i386/i386/svr4_syscall.c
index e9f319a..4e0a04f 100644
--- a/sys/arch/i386/i386/svr4_syscall.c
+++ b/sys/arch/i386/i386/svr4_syscall.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: svr4_syscall.c,v 1.47 2012/07/12 18:13:08 dsl Exp $	*/
+/*	$NetBSD: svr4_syscall.c,v 1.48 2015/03/07 18:50:01 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: svr4_syscall.c,v 1.47 2012/07/12 18:13:08 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: svr4_syscall.c,v 1.48 2015/03/07 18:50:01 christos Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_vm86.h"
@@ -108,8 +108,8 @@ svr4_syscall(struct trapframe *frame)
 			goto bad;
 	}
 
-	if (!__predict_false(p->p_trace_enabled)
-	    || (error = trace_enter(code, args, callp->sy_narg)) == 0) {
+	if (!__predict_false(p->p_trace_enabled || KDTRACE_ENTRY(callp->sy_entry))
+	    || (error = trace_enter(code, callp, args)) == 0) {
 		rval[0] = 0;
 		rval[1] = 0;
 		error = sy_call(callp, l, args, rval);
@@ -140,8 +140,8 @@ svr4_syscall(struct trapframe *frame)
 		break;
 	}
 
-	if (__predict_false(p->p_trace_enabled))
-		trace_exit(code, rval, error);
+	if (__predict_false(p->p_trace_enabled || KDTRACE_ENTRY(callp->sy_return)))
+		trace_exit(code, callp, args, rval, error);
 
 	userret(l);
 }
diff --git a/sys/arch/i386/include/ptrace.h b/sys/arch/i386/include/ptrace.h
index 2c51c5d..030c671 100644
--- a/sys/arch/i386/include/ptrace.h
+++ b/sys/arch/i386/include/ptrace.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: ptrace.h,v 1.13 2006/03/05 07:17:21 christos Exp $	*/
+/*	$NetBSD: ptrace.h,v 1.15 2015/09/25 16:05:17 christos Exp $	*/
 
 /*
  * Copyright (c) 2001 Wasabi Systems, Inc.
@@ -96,6 +96,16 @@
 	"PT_GETXMMREGS", \
 	"PT_SETXMMREGS",
 
+#include <machine/reg.h>
+#define PTRACE_REG_PC(r)	(r)->r_eip
+#define PTRACE_REG_SET_PC(r, v)	(r)->r_eip = (v)
+#define PTRACE_REG_SP(r)	(r)->r_esp
+#define PTRACE_REG_INTRV(r)	(r)->r_eax
+
+#define PTRACE_BREAKPOINT	((const uint8_t[]) { 0xcc })
+#define PTRACE_BREAKPOINT_SIZE	1
+#define PTRACE_BREAKPOINT_ADJ	sizeof(PTRACE_BREAKPOINT)
+
 #ifdef _KERNEL
 
 /*
diff --git a/sys/arch/ia64/include/ptrace.h b/sys/arch/ia64/include/ptrace.h
index 1b86e73..2fc98b4 100644
--- a/sys/arch/ia64/include/ptrace.h
+++ b/sys/arch/ia64/include/ptrace.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: ptrace.h,v 1.2 2008/01/25 12:03:36 skrll Exp $	*/
+/*	$NetBSD: ptrace.h,v 1.3 2015/09/15 15:49:02 christos Exp $	*/
 
 /*
  * Copyright (c) 1994 Christopher G. Demetriou
@@ -45,3 +45,11 @@
 	"PT_SETREGS", \
 	"PT_GETFPREGS", \
 	"PT_SETFPREGS",
+
+#include <machine/reg.h>
+#define PTRACE_REG_PC(r)	(r)->r_special.iip
+#define PTRACE_REG_SET_PC(r, v)	(r)->r_special.iip = (v)
+#define PTRACE_REG_SP(r)	(r)->r_special.sp
+#ifdef notyet
+#define PTRACE_REG_INTRV(r)	(r)->r_special.!!!
+#endif
diff --git a/sys/arch/m68k/include/ptrace.h b/sys/arch/m68k/include/ptrace.h
index 8bcf540..59b745d 100644
--- a/sys/arch/m68k/include/ptrace.h
+++ b/sys/arch/m68k/include/ptrace.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: ptrace.h,v 1.8 2008/01/25 12:03:36 skrll Exp $	*/
+/*	$NetBSD: ptrace.h,v 1.10 2015/09/25 16:05:17 christos Exp $	*/
 
 /*
  * Copyright (c) 1993 Christopher G. Demetriou
@@ -48,4 +48,13 @@
 	"PT_GETFPREGS", \
 	"PT_SETFPREGS",
 
+#include <machine/reg.h>
+#define PTRACE_REG_PC(r)	(r)->r_pc
+#define PTRACE_REG_SET_PC(r, v)	(r)->r_pc = (v)
+#define PTRACE_REG_SP(r)	(r)->r_regs[15]
+#define PTRACE_REG_INTRV(r)	(r)->r_regs[0]
+
+#define PTRACE_BREAKPOINT	((const uint8_t[]) { 0x4e, 0x4f })
+#define PTRACE_BREAKPOINT_SIZE	2
+
 #endif /* !_M68K_PTRACE_H_ */
diff --git a/sys/arch/m68k/m68k/linux_syscall.c b/sys/arch/m68k/m68k/linux_syscall.c
index f94a303..6fa2c0a 100644
--- a/sys/arch/m68k/m68k/linux_syscall.c
+++ b/sys/arch/m68k/m68k/linux_syscall.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_syscall.c,v 1.23 2014/03/24 20:06:32 christos Exp $	*/
+/*	$NetBSD: linux_syscall.c,v 1.24 2015/03/07 18:54:57 christos Exp $	*/
 
 /*-
  * Portions Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -65,7 +65,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.23 2014/03/24 20:06:32 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_syscall.c,v 1.24 2015/03/07 18:54:57 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_execfmt.h"
@@ -216,7 +216,7 @@ linux_syscall_fancy(register_t code, struct lwp *l, struct frame *frame)
 		break;
 	}
 
-	if ((error = trace_enter(code, args, callp->sy_narg)) != 0)
+	if ((error = trace_enter(code, callp, args)) != 0)
 		goto out;
 
 	rval[0] = 0;
@@ -252,5 +252,5 @@ out:
 		break;
 	}
 
-	trace_exit(code, rval, error);
+	trace_exit(code, callp, args, rval, error);
 }
diff --git a/sys/arch/m68k/m68k/m68k_syscall.c b/sys/arch/m68k/m68k/m68k_syscall.c
index 2dbab4f..52d4bfc 100644
--- a/sys/arch/m68k/m68k/m68k_syscall.c
+++ b/sys/arch/m68k/m68k/m68k_syscall.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: m68k_syscall.c,v 1.49 2013/10/25 20:45:35 martin Exp $	*/
+/*	$NetBSD: m68k_syscall.c,v 1.50 2015/03/07 18:54:57 christos Exp $	*/
 
 /*-
  * Portions Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -65,7 +65,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: m68k_syscall.c,v 1.49 2013/10/25 20:45:35 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: m68k_syscall.c,v 1.50 2015/03/07 18:54:57 christos Exp $");
 
 #include "opt_execfmt.h"
 #include "opt_compat_netbsd.h"
@@ -335,7 +335,7 @@ syscall_fancy(register_t code, struct lwp *l, struct frame *frame)
 			goto bad;
 	}
 
-	if ((error = trace_enter(code, args, callp->sy_narg)) != 0)
+	if ((error = trace_enter(code, callp, args)) != 0)
 		goto out;
 
 	rval[0] = 0;
@@ -387,7 +387,7 @@ out:
 		break;
 	}
 
-	trace_exit(code, rval, error);
+	trace_exit(code, callp, args, rval, error);
 }
 
 void
diff --git a/sys/arch/m68k/m68k/sunos_syscall.c b/sys/arch/m68k/m68k/sunos_syscall.c
index f6c9d35..3c6d030 100644
--- a/sys/arch/m68k/m68k/sunos_syscall.c
+++ b/sys/arch/m68k/m68k/sunos_syscall.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: sunos_syscall.c,v 1.22 2011/02/08 20:20:16 rmind Exp $	*/
+/*	$NetBSD: sunos_syscall.c,v 1.23 2015/03/07 18:54:57 christos Exp $	*/
 
 /*-
  * Portions Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -65,7 +65,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunos_syscall.c,v 1.22 2011/02/08 20:20:16 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunos_syscall.c,v 1.23 2015/03/07 18:54:57 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_execfmt.h"
@@ -273,7 +273,7 @@ sunos_syscall_fancy(register_t code, struct lwp *l, struct frame *frame)
 			goto bad;
 	}
 
-	if ((error = trace_enter(code, args, callp->sy_narg)) != 0)
+	if ((error = trace_enter(code, callp, args)) != 0)
 		goto out;
 
 	rval[0] = 0;
@@ -315,5 +315,5 @@ out:
 			frame->f_regs[SP] -= sizeof (int);
 	}
 
-	trace_exit(code, rval, error);
+	trace_exit(code, callp, args, rval, error);
 }
diff --git a/sys/arch/mips/include/ptrace.h b/sys/arch/mips/include/ptrace.h
index 879dd1f..75554fc 100644
--- a/sys/arch/mips/include/ptrace.h
+++ b/sys/arch/mips/include/ptrace.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: ptrace.h,v 1.12 2008/01/25 12:03:36 skrll Exp $	*/
+/*	$NetBSD: ptrace.h,v 1.14 2015/09/25 16:05:17 christos Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -53,6 +53,15 @@
 	"PT_GETFPREGS", \
 	"PT_SETFPREGS",
 
+#include <machine/reg.h>
+#define PTRACE_REG_PC(r)	(r)->r_regs[35]
+#define PTRACE_REG_SET_PC(r, v)	(r)->r_regs[35] = (v)
+#define PTRACE_REG_SP(r)	(r)->r_regs[29]
+#define PTRACE_REG_INTRV(r)	(r)->r_regs[2]
+
+#define PTRACE_BREAKPOINT	((const uint8_t[]) { 0x00, 0x00, 0x00, 0x0d })
+#define PTRACE_BREAKPOINT_SIZE	4
+
 /*
  * Glue for gdb: map NetBSD register names to legacy ptrace register names
  */
diff --git a/sys/arch/powerpc/include/ptrace.h b/sys/arch/powerpc/include/ptrace.h
index cb90ca9..59dcaf0 100644
--- a/sys/arch/powerpc/include/ptrace.h
+++ b/sys/arch/powerpc/include/ptrace.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: ptrace.h,v 1.11 2011/01/18 01:02:54 matt Exp $	*/
+/*	$NetBSD: ptrace.h,v 1.12 2015/09/15 15:49:03 christos Exp $	*/
 
 #ifndef _POWERPC_PTRACE_H
 #define	_POWERPC_PTRACE_H
@@ -17,6 +17,12 @@
 	"PT_GETFPREGS",		"PT_SETFPREGS",		\
 	"PT_GETVECREGS",	"PT_SETVECREGS",
 
+#include <machine/reg.h>
+#define PTRACE_REG_PC(r)	(r)->pc
+#define PTRACE_REG_SET_PC(r, v)	(r)->pc = (v)
+#define PTRACE_REG_SP(r)	(r)->fixreg[1]
+#define PTRACE_REG_INTRV(r)	(r)->fixreg[3]
+
 #ifdef _KERNEL
 #ifdef _KERNEL_OPT
 #include "opt_altivec.h"
diff --git a/sys/arch/sh3/include/ptrace.h b/sys/arch/sh3/include/ptrace.h
index bbd0c46..00cddd4 100644
--- a/sys/arch/sh3/include/ptrace.h
+++ b/sys/arch/sh3/include/ptrace.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: ptrace.h,v 1.10 2011/10/31 19:08:45 uwe Exp $	*/
+/*	$NetBSD: ptrace.h,v 1.12 2015/09/25 16:05:17 christos Exp $	*/
 
 /*
  * Copyright (c) 1993 Christopher G. Demetriou
@@ -58,6 +58,14 @@
 	"PT_GETREGS", \
 	"PT_SETREGS",
 
+#include <machine/reg.h>
+#define PTRACE_REG_PC(r)	r->r_spc
+#define PTRACE_REG_SET_PC(r, v)	r->r_spc = (v)
+#define PTRACE_REG_SP(r)	r->r_r15
+#define PTRACE_REG_INTV(r)	r->r_r0
+
+#define PTRACE_BREAKPOINT	((const uint8_t[]) { 0xc3, 0xc3 })
+#define PTRACE_BREAKPOINT_SIZE	2
 
 #ifdef _KERNEL
 #ifdef _KERNEL_OPT
diff --git a/sys/arch/sparc/include/ptrace.h b/sys/arch/sparc/include/ptrace.h
index b264c18..b286fa4 100644
--- a/sys/arch/sparc/include/ptrace.h
+++ b/sys/arch/sparc/include/ptrace.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: ptrace.h,v 1.7 2008/01/25 12:03:37 skrll Exp $ */
+/*	$NetBSD: ptrace.h,v 1.9 2015/09/25 16:05:17 christos Exp $ */
 
 /*
  * Copyright (c) 1992, 1993
@@ -53,3 +53,15 @@
 	"PT_SETREGS", \
 	"PT_GETFPREGS", \
 	"PT_SETFPREGS",
+
+#include <machine/reg.h>
+#define PTRACE_REG_PC(r)	(r)->r_pc
+#define PTRACE_REG_SET_PC(r, v)	do {	\
+	(r)->r_pc = (v);		\
+	(r)->r_npc = (v) + 4;		\
+    } while (/*CONSTCOND*/0)
+#define PTRACE_REG_SP(r)	(r)->r_out[6]
+#define PTRACE_REG_INTRV(r)	(r)->r_out[0]
+
+#define PTRACE_BREAKPOINT	((const uint8_t[]) { 0x91, 0xd0, 0x20, 0x01 })
+#define PTRACE_BREAKPOINT_SIZE	4
diff --git a/sys/arch/vax/include/ptrace.h b/sys/arch/vax/include/ptrace.h
index a263cb4..81ac285 100644
--- a/sys/arch/vax/include/ptrace.h
+++ b/sys/arch/vax/include/ptrace.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: ptrace.h,v 1.4 2008/01/25 12:03:37 skrll Exp $	*/
+/*	$NetBSD: ptrace.h,v 1.6 2015/09/25 16:05:18 christos Exp $	*/
 
 /*
  * Copyright (c) 1994 Ludd, University of Lule}, Sweden.
@@ -41,3 +41,13 @@
 	"PT_STEP", \
 	"PT_GETREGS", \
 	"PT_SETREGS",
+
+#include <machine/reg.h>
+
+#define PTRACE_REG_PC(r)	(r)->pc
+#define PTRACE_REG_SET_PC(r, v)	(r)->pc = (v)
+#define PTRACE_REG_SP(r)	(r)->sp
+#define PTRACE_REG_INTRV(r)	(r)->r0
+
+#define PTRACE_BREAKPOINT	((const uint8_t[]) { 0x03 })
+#define PTRACE_BREAKPOINT_SIZE	1
diff --git a/sys/compat/aoutm68k/aoutm68k_syscall.h b/sys/compat/aoutm68k/aoutm68k_syscall.h
index 0e1edbe..a13dd7a 100644
--- a/sys/compat/aoutm68k/aoutm68k_syscall.h
+++ b/sys/compat/aoutm68k/aoutm68k_syscall.h
@@ -1,4 +1,4 @@
-/* $NetBSD: aoutm68k_syscall.h,v 1.43 2014/01/25 16:43:03 christos Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
diff --git a/sys/compat/aoutm68k/aoutm68k_syscallargs.h b/sys/compat/aoutm68k/aoutm68k_syscallargs.h
index cb32b89..a87dccc 100644
--- a/sys/compat/aoutm68k/aoutm68k_syscallargs.h
+++ b/sys/compat/aoutm68k/aoutm68k_syscallargs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: aoutm68k_syscallargs.h,v 1.41 2014/01/25 16:43:03 christos Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
diff --git a/sys/compat/aoutm68k/aoutm68k_syscalls.c b/sys/compat/aoutm68k/aoutm68k_syscalls.c
index ae1dc50..536c4a4 100644
--- a/sys/compat/aoutm68k/aoutm68k_syscalls.c
+++ b/sys/compat/aoutm68k/aoutm68k_syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: aoutm68k_syscalls.c,v 1.40 2014/01/25 16:43:03 christos Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aoutm68k_syscalls.c,v 1.40 2014/01/25 16:43:03 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #if defined(_KERNEL_OPT)
@@ -26,6 +26,8 @@ __KERNEL_RCSID(0, "$NetBSD: aoutm68k_syscalls.c,v 1.40 2014/01/25 16:43:03 chris
 #include <sys/sched.h>
 #include <sys/syscallargs.h>
 #include <compat/aoutm68k/aoutm68k_syscallargs.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const aoutm68k_syscallnames[] = {
@@ -772,3 +774,750 @@ const char *const aoutm68k_syscallnames[] = {
 	/* 510 */	"# filler",
 	/* 511 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altaoutm68k_syscallnames[] = {
+	/*   0 */	NULL, /* syscall */
+	/*   1 */	NULL, /* exit */
+	/*   2 */	NULL, /* fork */
+	/*   3 */	NULL, /* read */
+	/*   4 */	NULL, /* write */
+	/*   5 */	NULL, /* open */
+	/*   6 */	NULL, /* close */
+	/*   7 */	NULL, /* wait4 */
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/*   8 */	"creat",
+#else
+	/*   8 */	NULL, /* excluded compat_43_sys_creat */
+#endif
+	/*   9 */	NULL, /* link */
+	/*  10 */	NULL, /* unlink */
+	/*  11 */	NULL, /* obsolete execv */
+	/*  12 */	NULL, /* chdir */
+	/*  13 */	NULL, /* fchdir */
+	/*  14 */	NULL, /* mknod */
+	/*  15 */	NULL, /* chmod */
+	/*  16 */	NULL, /* chown */
+	/*  17 */	"obreak",
+#if defined(COMPAT_20) || !defined(_KERNEL)
+	/*  18 */	NULL, /* getfsstat */
+#else
+	/*  18 */	NULL, /* excluded compat_20_sys_getfsstat */
+#endif
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/*  19 */	"lseek",
+#else
+	/*  19 */	NULL, /* excluded compat_43_sys_lseek */
+#endif
+	/*  20 */	NULL, /* getpid */
+	/*  21 */	NULL, /* mount */
+	/*  22 */	NULL, /* unmount */
+	/*  23 */	NULL, /* setuid */
+	/*  24 */	NULL, /* getuid */
+	/*  25 */	NULL, /* geteuid */
+	/*  26 */	NULL, /* ptrace */
+	/*  27 */	NULL, /* recvmsg */
+	/*  28 */	NULL, /* sendmsg */
+	/*  29 */	NULL, /* recvfrom */
+	/*  30 */	NULL, /* accept */
+	/*  31 */	NULL, /* getpeername */
+	/*  32 */	NULL, /* getsockname */
+	/*  33 */	NULL, /* access */
+	/*  34 */	NULL, /* chflags */
+	/*  35 */	NULL, /* fchflags */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	NULL, /* kill */
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/*  38 */	"stat",
+#else
+	/*  38 */	NULL, /* excluded aoutm68k_compat_43_sys_stat */
+#endif
+	/*  39 */	NULL, /* getppid */
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/*  40 */	"lstat",
+#else
+	/*  40 */	NULL, /* excluded aoutm68k_compat_43_sys_lstat */
+#endif
+	/*  41 */	NULL, /* dup */
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* getegid */
+	/*  44 */	NULL, /* profil */
+#if defined(KTRACE) || !defined(_KERNEL)
+	/*  45 */	NULL, /* ktrace */
+#else
+	/*  45 */	NULL, /* excluded ktrace */
+#endif
+#if defined(COMPAT_13) || !defined(_KERNEL)
+	/*  46 */	"sigaction",
+#else
+	/*  46 */	NULL, /* excluded compat_13_sys_sigaction */
+#endif
+	/*  47 */	NULL, /* getgid */
+#if defined(COMPAT_13) || !defined(_KERNEL)
+	/*  48 */	"sigprocmask",
+#else
+	/*  48 */	NULL, /* excluded compat_13_sys_sigprocmask */
+#endif
+	/*  49 */	NULL, /* __getlogin */
+	/*  50 */	NULL, /* __setlogin */
+	/*  51 */	NULL, /* acct */
+#if defined(COMPAT_13) || !defined(_KERNEL)
+	/*  52 */	"sigpending",
+	/*  53 */	"sigaltstack",
+#else
+	/*  52 */	NULL, /* excluded compat_13_sys_sigpending */
+	/*  53 */	NULL, /* excluded compat_13_sys_sigaltstack */
+#endif
+	/*  54 */	NULL, /* ioctl */
+#if defined(COMPAT_12) || !defined(_KERNEL)
+	/*  55 */	"reboot",
+#else
+	/*  55 */	NULL, /* excluded compat_12_sys_reboot */
+#endif
+	/*  56 */	NULL, /* revoke */
+	/*  57 */	NULL, /* symlink */
+	/*  58 */	NULL, /* readlink */
+	/*  59 */	NULL, /* execve */
+	/*  60 */	NULL, /* umask */
+	/*  61 */	NULL, /* chroot */
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/*  62 */	"fstat",
+	/*  63 */	"getkerninfo",
+	/*  64 */	"getpagesize",
+#else
+	/*  62 */	NULL, /* excluded aoutm68k_compat_43_sys_fstat */
+	/*  63 */	NULL, /* excluded compat_43_sys_getkerninfo */
+	/*  64 */	NULL, /* excluded compat_43_sys_getpagesize */
+#endif
+#if defined(COMPAT_12) || !defined(_KERNEL)
+	/*  65 */	NULL, /* msync */
+#else
+	/*  65 */	NULL, /* excluded compat_12_sys_msync */
+#endif
+	/*  66 */	NULL, /* vfork */
+	/*  67 */	NULL, /* obsolete vread */
+	/*  68 */	NULL, /* obsolete vwrite */
+	/*  69 */	NULL, /* sbrk */
+	/*  70 */	NULL, /* sstk */
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/*  71 */	"mmap",
+#else
+	/*  71 */	NULL, /* excluded compat_43_sys_mmap */
+#endif
+	/*  72 */	"ovadvise",
+	/*  73 */	NULL, /* munmap */
+	/*  74 */	NULL, /* mprotect */
+	/*  75 */	NULL, /* madvise */
+	/*  76 */	NULL, /* obsolete vhangup */
+	/*  77 */	NULL, /* obsolete vlimit */
+	/*  78 */	NULL, /* mincore */
+	/*  79 */	NULL, /* getgroups */
+	/*  80 */	NULL, /* setgroups */
+	/*  81 */	NULL, /* getpgrp */
+	/*  82 */	NULL, /* setpgid */
+	/*  83 */	NULL, /* setitimer */
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/*  84 */	"wait",
+#else
+	/*  84 */	NULL, /* excluded compat_43_sys_wait */
+#endif
+#if defined(COMPAT_12) || !defined(_KERNEL)
+	/*  85 */	"swapon",
+#else
+	/*  85 */	NULL, /* excluded compat_12_sys_swapon */
+#endif
+	/*  86 */	NULL, /* getitimer */
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/*  87 */	"gethostname",
+	/*  88 */	"sethostname",
+	/*  89 */	"getdtablesize",
+#else
+	/*  87 */	NULL, /* excluded compat_43_sys_gethostname */
+	/*  88 */	NULL, /* excluded compat_43_sys_sethostname */
+	/*  89 */	NULL, /* excluded compat_43_sys_getdtablesize */
+#endif
+	/*  90 */	NULL, /* dup2 */
+	/*  91 */	NULL, /* unimplemented getdopt */
+	/*  92 */	NULL, /* fcntl */
+	/*  93 */	NULL, /* select */
+	/*  94 */	NULL, /* unimplemented setdopt */
+	/*  95 */	NULL, /* fsync */
+	/*  96 */	NULL, /* setpriority */
+	/*  97 */	NULL, /* socket */
+	/*  98 */	NULL, /* connect */
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/*  99 */	"accept",
+#else
+	/*  99 */	NULL, /* excluded compat_43_sys_accept */
+#endif
+	/* 100 */	NULL, /* getpriority */
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/* 101 */	"send",
+	/* 102 */	"recv",
+#else
+	/* 101 */	NULL, /* excluded compat_43_sys_send */
+	/* 102 */	NULL, /* excluded compat_43_sys_recv */
+#endif
+#if defined(COMPAT_13) || !defined(_KERNEL)
+	/* 103 */	"sigreturn",
+#else
+	/* 103 */	NULL, /* excluded compat_13_sys_sigreturn */
+#endif
+	/* 104 */	NULL, /* bind */
+	/* 105 */	NULL, /* setsockopt */
+	/* 106 */	NULL, /* listen */
+	/* 107 */	NULL, /* obsolete vtimes */
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/* 108 */	"sigvec",
+	/* 109 */	"sigblock",
+	/* 110 */	"sigsetmask",
+#else
+	/* 108 */	NULL, /* excluded compat_43_sys_sigvec */
+	/* 109 */	NULL, /* excluded compat_43_sys_sigblock */
+	/* 110 */	NULL, /* excluded compat_43_sys_sigsetmask */
+#endif
+#if defined(COMPAT_13) || !defined(_KERNEL)
+	/* 111 */	"sigsuspend",
+#else
+	/* 111 */	NULL, /* excluded compat_13_sys_sigsuspend */
+#endif
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/* 112 */	"sigstack",
+	/* 113 */	"recvmsg",
+	/* 114 */	"sendmsg",
+#else
+	/* 112 */	NULL, /* excluded compat_43_sys_sigstack */
+	/* 113 */	NULL, /* excluded compat_43_sys_recvmesg */
+	/* 114 */	NULL, /* excluded compat_43_sys_sendmesg */
+#endif
+	/* 115 */	NULL, /* obsolete vtrace */
+	/* 116 */	NULL, /* gettimeofday */
+	/* 117 */	NULL, /* getrusage */
+	/* 118 */	NULL, /* getsockopt */
+	/* 119 */	NULL, /* obsolete resuba */
+	/* 120 */	NULL, /* readv */
+	/* 121 */	NULL, /* writev */
+	/* 122 */	NULL, /* settimeofday */
+	/* 123 */	NULL, /* fchown */
+	/* 124 */	NULL, /* fchmod */
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/* 125 */	"recvfrom",
+#else
+	/* 125 */	NULL, /* excluded compat_43_sys_recvfrom */
+#endif
+	/* 126 */	NULL, /* setreuid */
+	/* 127 */	NULL, /* setregid */
+	/* 128 */	NULL, /* rename */
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/* 129 */	"truncate",
+	/* 130 */	"ftruncate",
+#else
+	/* 129 */	NULL, /* excluded compat_43_sys_truncate */
+	/* 130 */	NULL, /* excluded compat_43_sys_ftruncate */
+#endif
+	/* 131 */	NULL, /* flock */
+	/* 132 */	NULL, /* mkfifo */
+	/* 133 */	NULL, /* sendto */
+	/* 134 */	NULL, /* shutdown */
+	/* 135 */	NULL, /* socketpair */
+	/* 136 */	NULL, /* mkdir */
+	/* 137 */	NULL, /* rmdir */
+	/* 138 */	NULL, /* utimes */
+	/* 139 */	NULL, /* obsolete 4.2 sigreturn */
+	/* 140 */	NULL, /* adjtime */
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/* 141 */	"getpeername",
+	/* 142 */	"gethostid",
+	/* 143 */	"sethostid",
+	/* 144 */	"getrlimit",
+	/* 145 */	"setrlimit",
+	/* 146 */	"killpg",
+#else
+	/* 141 */	NULL, /* excluded compat_43_sys_getpeername */
+	/* 142 */	NULL, /* excluded compat_43_sys_gethostid */
+	/* 143 */	NULL, /* excluded compat_43_sys_sethostid */
+	/* 144 */	NULL, /* excluded compat_43_sys_getrlimit */
+	/* 145 */	NULL, /* excluded compat_43_sys_setrlimit */
+	/* 146 */	NULL, /* excluded compat_43_sys_killpg */
+#endif
+	/* 147 */	NULL, /* setsid */
+	/* 148 */	NULL, /* quotactl */
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/* 149 */	"quota",
+	/* 150 */	"getsockname",
+#else
+	/* 149 */	NULL, /* excluded compat_43_sys_quota */
+	/* 150 */	NULL, /* excluded compat_43_sys_getsockname */
+#endif
+	/* 151 */	NULL, /* unimplemented */
+	/* 152 */	NULL, /* unimplemented */
+	/* 153 */	NULL, /* unimplemented */
+	/* 154 */	NULL, /* unimplemented */
+	/* 155 */	NULL, /* excluded nfssvc */
+#if defined(COMPAT_43) || !defined(_KERNEL)
+	/* 156 */	"getdirentries",
+#else
+	/* 156 */	NULL, /* excluded compat_43_sys_getdirentries */
+#endif
+#if defined(COMPAT_20) || !defined(_KERNEL)
+	/* 157 */	NULL, /* statfs */
+#else
+	/* 157 */	NULL, /* excluded compat_20_sys_statfs */
+#endif
+#if defined(COMPAT_20) || !defined(_KERNEL)
+	/* 158 */	NULL, /* fstatfs */
+#else
+	/* 158 */	NULL, /* excluded compat_20_sys_statfs */
+#endif
+	/* 159 */	NULL, /* unimplemented */
+	/* 160 */	NULL, /* unimplemented */
+	/* 161 */	NULL, /* getfh */
+#if defined(COMPAT_09) || !defined(_KERNEL)
+	/* 162 */	"getdomainname",
+	/* 163 */	"setdomainname",
+	/* 164 */	"uname",
+#else
+	/* 162 */	NULL, /* excluded compat_09_sys_getdomainname */
+	/* 163 */	NULL, /* excluded compat_09_sys_setdomainname */
+	/* 164 */	NULL, /* excluded compat_09_sys_uname */
+#endif
+	/* 165 */	NULL, /* sysarch */
+	/* 166 */	NULL, /* unimplemented */
+	/* 167 */	NULL, /* unimplemented */
+	/* 168 */	NULL, /* unimplemented */
+#if (defined(SYSVSEM) || !defined(_KERNEL)) && !defined(_LP64) && defined(COMPAT_10)
+	/* 169 */	"semsys",
+#else
+	/* 169 */	NULL, /* excluded 1.0 semsys */
+#endif
+#if (defined(SYSVMSG) || !defined(_KERNEL)) && !defined(_LP64) && defined(COMPAT_10)
+	/* 170 */	"msgsys",
+#else
+	/* 170 */	NULL, /* excluded 1.0 msgsys */
+#endif
+#if (defined(SYSVSHM) || !defined(_KERNEL)) && !defined(_LP64) && defined(COMPAT_10)
+	/* 171 */	"shmsys",
+#else
+	/* 171 */	NULL, /* excluded 1.0 shmsys */
+#endif
+	/* 172 */	NULL, /* unimplemented */
+	/* 173 */	NULL, /* pread */
+	/* 174 */	NULL, /* pwrite */
+	/* 175 */	NULL, /* unimplemented sys_ntp_gettime */
+#if defined(NTP) || !defined(_KERNEL)
+	/* 176 */	NULL, /* ntp_adjtime */
+#else
+	/* 176 */	NULL, /* excluded ntp_adjtime */
+#endif
+	/* 177 */	NULL, /* unimplemented */
+	/* 178 */	NULL, /* unimplemented */
+	/* 179 */	NULL, /* unimplemented */
+	/* 180 */	NULL, /* unimplemented */
+	/* 181 */	NULL, /* setgid */
+	/* 182 */	NULL, /* setegid */
+	/* 183 */	NULL, /* seteuid */
+	/* 184 */	NULL, /* excluded lfs_bmapv */
+	/* 185 */	NULL, /* excluded lfs_markv */
+	/* 186 */	NULL, /* excluded lfs_segclean */
+	/* 187 */	NULL, /* excluded lfs_segwait */
+#if defined(COMPAT_12) || !defined(_KERNEL)
+	/* 188 */	"stat",
+	/* 189 */	"fstat",
+	/* 190 */	"lstat",
+#else
+	/* 188 */	NULL, /* excluded aoutm68k_compat_12_sys_stat */
+	/* 189 */	NULL, /* excluded aoutm68k_compat_12_sys_fstat */
+	/* 190 */	NULL, /* excluded aoutm68k_compat_12_sys_lstat */
+#endif
+	/* 191 */	NULL, /* pathconf */
+	/* 192 */	NULL, /* fpathconf */
+	/* 193 */	NULL, /* unimplemented */
+	/* 194 */	NULL, /* getrlimit */
+	/* 195 */	NULL, /* setrlimit */
+#if defined(COMPAT_12) || !defined(_KERNEL)
+	/* 196 */	NULL, /* getdirentries */
+#else
+	/* 196 */	NULL, /* excluded compat_12_sys_getdirentries */
+#endif
+	/* 197 */	NULL, /* mmap */
+	/* 198 */	NULL, /* __syscall */
+	/* 199 */	NULL, /* lseek */
+	/* 200 */	NULL, /* truncate */
+	/* 201 */	NULL, /* ftruncate */
+	/* 202 */	NULL, /* __sysctl */
+	/* 203 */	NULL, /* mlock */
+	/* 204 */	NULL, /* munlock */
+	/* 205 */	NULL, /* undelete */
+	/* 206 */	NULL, /* futimes */
+	/* 207 */	NULL, /* getpgid */
+	/* 208 */	NULL, /* reboot */
+	/* 209 */	NULL, /* poll */
+	/* 210 */	NULL, /* unimplemented */
+	/* 211 */	NULL, /* unimplemented */
+	/* 212 */	NULL, /* unimplemented */
+	/* 213 */	NULL, /* unimplemented */
+	/* 214 */	NULL, /* unimplemented */
+	/* 215 */	NULL, /* unimplemented */
+	/* 216 */	NULL, /* unimplemented */
+	/* 217 */	NULL, /* unimplemented */
+	/* 218 */	NULL, /* unimplemented */
+	/* 219 */	NULL, /* unimplemented */
+#if defined(SYSVSEM) || !defined(_KERNEL)
+#if defined(COMPAT_14) || !defined(_KERNEL)
+	/* 220 */	NULL, /* __semctl */
+#else
+	/* 220 */	NULL, /* excluded compat_14_semctl */
+#endif
+	/* 221 */	NULL, /* semget */
+	/* 222 */	NULL, /* semop */
+	/* 223 */	NULL, /* semconfig */
+#else
+	/* 220 */	NULL, /* excluded compat_14_semctl */
+	/* 221 */	NULL, /* excluded semget */
+	/* 222 */	NULL, /* excluded semop */
+	/* 223 */	NULL, /* excluded semconfig */
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL)
+#if defined(COMPAT_14) || !defined(_KERNEL)
+	/* 224 */	NULL, /* msgctl */
+#else
+	/* 224 */	NULL, /* excluded compat_14_sys_msgctl */
+#endif
+	/* 225 */	NULL, /* msgget */
+	/* 226 */	NULL, /* msgsnd */
+	/* 227 */	NULL, /* msgrcv */
+#else
+	/* 224 */	NULL, /* excluded compat_14_msgctl */
+	/* 225 */	NULL, /* excluded msgget */
+	/* 226 */	NULL, /* excluded msgsnd */
+	/* 227 */	NULL, /* excluded msgrcv */
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL)
+	/* 228 */	NULL, /* shmat */
+#if defined(COMPAT_14) || !defined(_KERNEL)
+	/* 229 */	NULL, /* shmctl */
+#else
+	/* 229 */	NULL, /* excluded compat_14_sys_shmctl */
+#endif
+	/* 230 */	NULL, /* shmdt */
+	/* 231 */	NULL, /* shmget */
+#else
+	/* 228 */	NULL, /* excluded shmat */
+	/* 229 */	NULL, /* excluded compat_14_shmctl */
+	/* 230 */	NULL, /* excluded shmdt */
+	/* 231 */	NULL, /* excluded shmget */
+#endif
+	/* 232 */	NULL, /* clock_gettime */
+	/* 233 */	NULL, /* clock_settime */
+	/* 234 */	NULL, /* clock_getres */
+	/* 235 */	NULL, /* unimplemented timer_create */
+	/* 236 */	NULL, /* unimplemented timer_delete */
+	/* 237 */	NULL, /* unimplemented timer_settime */
+	/* 238 */	NULL, /* unimplemented timer_gettime */
+	/* 239 */	NULL, /* unimplemented timer_getoverrun */
+	/* 240 */	NULL, /* nanosleep */
+	/* 241 */	NULL, /* fdatasync */
+	/* 242 */	NULL, /* mlockall */
+	/* 243 */	NULL, /* munlockall */
+	/* 244 */	NULL, /* unimplemented */
+	/* 245 */	NULL, /* unimplemented */
+	/* 246 */	NULL, /* unimplemented */
+	/* 247 */	NULL, /* unimplemented */
+	/* 248 */	NULL, /* unimplemented */
+	/* 249 */	NULL, /* unimplemented */
+	/* 250 */	NULL, /* unimplemented */
+	/* 251 */	NULL, /* unimplemented */
+	/* 252 */	NULL, /* unimplemented */
+	/* 253 */	NULL, /* unimplemented */
+	/* 254 */	NULL, /* unimplemented */
+	/* 255 */	NULL, /* unimplemented */
+	/* 256 */	NULL, /* unimplemented */
+	/* 257 */	NULL, /* unimplemented */
+	/* 258 */	NULL, /* unimplemented */
+	/* 259 */	NULL, /* unimplemented */
+	/* 260 */	NULL, /* unimplemented */
+	/* 261 */	NULL, /* unimplemented */
+	/* 262 */	NULL, /* unimplemented */
+	/* 263 */	NULL, /* unimplemented */
+	/* 264 */	NULL, /* unimplemented */
+	/* 265 */	NULL, /* unimplemented */
+	/* 266 */	NULL, /* unimplemented */
+	/* 267 */	NULL, /* unimplemented */
+	/* 268 */	NULL, /* unimplemented */
+	/* 269 */	NULL, /* unimplemented */
+	/* 270 */	NULL, /* __posix_rename */
+	/* 271 */	NULL, /* swapctl */
+#if defined(COMPAT_30) || !defined(_KERNEL)
+	/* 272 */	NULL, /* getdents */
+#else
+	/* 272 */	NULL, /* excluded compat_30_sys_getdents */
+#endif
+	/* 273 */	NULL, /* minherit */
+	/* 274 */	NULL, /* lchmod */
+	/* 275 */	NULL, /* lchown */
+	/* 276 */	NULL, /* lutimes */
+	/* 277 */	"msync",
+	/* 278 */	"stat",
+	/* 279 */	"fstat",
+	/* 280 */	"lstat",
+	/* 281 */	"sigaltstack",
+	/* 282 */	"vfork",
+	/* 283 */	NULL, /* __posix_chown */
+	/* 284 */	NULL, /* __posix_fchown */
+	/* 285 */	NULL, /* __posix_lchown */
+	/* 286 */	NULL, /* getsid */
+	/* 287 */	NULL, /* unimplemented */
+#if defined(KTRACE) || !defined(_KERNEL)
+	/* 288 */	NULL, /* fktrace */
+#else
+	/* 288 */	NULL, /* excluded ktrace */
+#endif
+	/* 289 */	NULL, /* preadv */
+	/* 290 */	NULL, /* pwritev */
+#if defined(COMPAT_16) || !defined(_KERNEL)
+	/* 291 */	"sigaction",
+#else
+	/* 291 */	NULL, /* excluded compat_16_sys___sigaction14 */
+#endif
+	/* 292 */	"sigpending",
+	/* 293 */	"sigprocmask",
+	/* 294 */	"sigsuspend",
+#if defined(COMPAT_16) || !defined(_KERNEL)
+	/* 295 */	"sigreturn",
+#else
+	/* 295 */	NULL, /* excluded compat_16_sys___sigreturn14 */
+#endif
+	/* 296 */	NULL, /* __getcwd */
+	/* 297 */	NULL, /* fchroot */
+	/* 298 */	NULL, /* fhopen */
+	/* 299 */	NULL, /* fhstat */
+#if defined(COMPAT_20) || !defined(_KERNEL)
+	/* 300 */	NULL, /* fhstatfs */
+#else
+	/* 300 */	NULL, /* excluded compat_20_sys_fhstatfs */
+#endif
+#if defined(SYSVSEM) || !defined(_KERNEL)
+	/* 301 */	"__semctl",
+#else
+	/* 301 */	NULL, /* excluded ____semctl13 */
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL)
+	/* 302 */	"msgctl",
+#else
+	/* 302 */	NULL, /* excluded __msgctl13 */
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL)
+	/* 303 */	"shmctl",
+#else
+	/* 303 */	NULL, /* excluded __shmctl13 */
+#endif
+	/* 304 */	NULL, /* lchflags */
+	/* 305 */	NULL, /* issetugid */
+	/* 306 */	NULL, /* getcontext */
+	/* 307 */	NULL, /* setcontext */
+	/* 308 */	NULL, /* filler */
+	/* 309 */	NULL, /* filler */
+	/* 310 */	NULL, /* filler */
+	/* 311 */	NULL, /* filler */
+	/* 312 */	NULL, /* filler */
+	/* 313 */	NULL, /* filler */
+	/* 314 */	NULL, /* filler */
+	/* 315 */	NULL, /* filler */
+	/* 316 */	NULL, /* filler */
+	/* 317 */	NULL, /* filler */
+	/* 318 */	NULL, /* filler */
+	/* 319 */	NULL, /* filler */
+	/* 320 */	NULL, /* filler */
+	/* 321 */	NULL, /* filler */
+	/* 322 */	NULL, /* filler */
+	/* 323 */	NULL, /* filler */
+	/* 324 */	NULL, /* filler */
+	/* 325 */	NULL, /* filler */
+	/* 326 */	NULL, /* filler */
+	/* 327 */	NULL, /* filler */
+	/* 328 */	NULL, /* filler */
+	/* 329 */	NULL, /* filler */
+	/* 330 */	NULL, /* filler */
+	/* 331 */	NULL, /* filler */
+	/* 332 */	NULL, /* filler */
+	/* 333 */	NULL, /* filler */
+	/* 334 */	NULL, /* filler */
+	/* 335 */	NULL, /* filler */
+	/* 336 */	NULL, /* filler */
+	/* 337 */	NULL, /* filler */
+	/* 338 */	NULL, /* filler */
+	/* 339 */	NULL, /* filler */
+	/* 340 */	NULL, /* filler */
+	/* 341 */	NULL, /* filler */
+	/* 342 */	NULL, /* filler */
+	/* 343 */	NULL, /* filler */
+	/* 344 */	NULL, /* filler */
+	/* 345 */	NULL, /* filler */
+	/* 346 */	NULL, /* filler */
+	/* 347 */	NULL, /* filler */
+	/* 348 */	NULL, /* filler */
+	/* 349 */	NULL, /* filler */
+	/* 350 */	NULL, /* filler */
+	/* 351 */	NULL, /* filler */
+	/* 352 */	NULL, /* filler */
+	/* 353 */	NULL, /* filler */
+	/* 354 */	NULL, /* filler */
+	/* 355 */	NULL, /* filler */
+	/* 356 */	NULL, /* filler */
+	/* 357 */	NULL, /* filler */
+	/* 358 */	NULL, /* filler */
+	/* 359 */	NULL, /* filler */
+	/* 360 */	NULL, /* filler */
+	/* 361 */	NULL, /* filler */
+	/* 362 */	NULL, /* filler */
+	/* 363 */	NULL, /* filler */
+	/* 364 */	NULL, /* filler */
+	/* 365 */	NULL, /* filler */
+	/* 366 */	NULL, /* filler */
+	/* 367 */	NULL, /* filler */
+	/* 368 */	NULL, /* filler */
+	/* 369 */	NULL, /* filler */
+	/* 370 */	NULL, /* filler */
+	/* 371 */	NULL, /* filler */
+	/* 372 */	NULL, /* filler */
+	/* 373 */	NULL, /* filler */
+	/* 374 */	NULL, /* filler */
+	/* 375 */	NULL, /* filler */
+	/* 376 */	NULL, /* filler */
+	/* 377 */	NULL, /* filler */
+	/* 378 */	NULL, /* filler */
+	/* 379 */	NULL, /* filler */
+	/* 380 */	NULL, /* filler */
+	/* 381 */	NULL, /* filler */
+	/* 382 */	NULL, /* filler */
+	/* 383 */	NULL, /* filler */
+	/* 384 */	NULL, /* filler */
+	/* 385 */	NULL, /* filler */
+	/* 386 */	NULL, /* filler */
+	/* 387 */	NULL, /* filler */
+	/* 388 */	NULL, /* filler */
+	/* 389 */	NULL, /* filler */
+	/* 390 */	NULL, /* filler */
+	/* 391 */	NULL, /* filler */
+	/* 392 */	NULL, /* filler */
+	/* 393 */	NULL, /* filler */
+	/* 394 */	NULL, /* filler */
+	/* 395 */	NULL, /* filler */
+	/* 396 */	NULL, /* filler */
+	/* 397 */	NULL, /* filler */
+	/* 398 */	NULL, /* filler */
+	/* 399 */	NULL, /* filler */
+	/* 400 */	NULL, /* filler */
+	/* 401 */	NULL, /* filler */
+	/* 402 */	NULL, /* filler */
+	/* 403 */	NULL, /* filler */
+	/* 404 */	NULL, /* filler */
+	/* 405 */	NULL, /* filler */
+	/* 406 */	NULL, /* filler */
+	/* 407 */	NULL, /* filler */
+	/* 408 */	NULL, /* filler */
+	/* 409 */	NULL, /* filler */
+	/* 410 */	NULL, /* filler */
+	/* 411 */	NULL, /* filler */
+	/* 412 */	NULL, /* filler */
+	/* 413 */	NULL, /* filler */
+	/* 414 */	NULL, /* filler */
+	/* 415 */	NULL, /* filler */
+	/* 416 */	NULL, /* filler */
+	/* 417 */	NULL, /* filler */
+	/* 418 */	NULL, /* filler */
+	/* 419 */	NULL, /* filler */
+	/* 420 */	NULL, /* filler */
+	/* 421 */	NULL, /* filler */
+	/* 422 */	NULL, /* filler */
+	/* 423 */	NULL, /* filler */
+	/* 424 */	NULL, /* filler */
+	/* 425 */	NULL, /* filler */
+	/* 426 */	NULL, /* filler */
+	/* 427 */	NULL, /* filler */
+	/* 428 */	NULL, /* filler */
+	/* 429 */	NULL, /* filler */
+	/* 430 */	NULL, /* filler */
+	/* 431 */	NULL, /* filler */
+	/* 432 */	NULL, /* filler */
+	/* 433 */	NULL, /* filler */
+	/* 434 */	NULL, /* filler */
+	/* 435 */	NULL, /* filler */
+	/* 436 */	NULL, /* filler */
+	/* 437 */	NULL, /* filler */
+	/* 438 */	NULL, /* filler */
+	/* 439 */	NULL, /* filler */
+	/* 440 */	NULL, /* filler */
+	/* 441 */	NULL, /* filler */
+	/* 442 */	NULL, /* filler */
+	/* 443 */	NULL, /* filler */
+	/* 444 */	NULL, /* filler */
+	/* 445 */	NULL, /* filler */
+	/* 446 */	NULL, /* filler */
+	/* 447 */	NULL, /* filler */
+	/* 448 */	NULL, /* filler */
+	/* 449 */	NULL, /* filler */
+	/* 450 */	NULL, /* filler */
+	/* 451 */	NULL, /* filler */
+	/* 452 */	NULL, /* filler */
+	/* 453 */	NULL, /* filler */
+	/* 454 */	NULL, /* filler */
+	/* 455 */	NULL, /* filler */
+	/* 456 */	NULL, /* filler */
+	/* 457 */	NULL, /* filler */
+	/* 458 */	NULL, /* filler */
+	/* 459 */	NULL, /* filler */
+	/* 460 */	NULL, /* filler */
+	/* 461 */	NULL, /* filler */
+	/* 462 */	NULL, /* filler */
+	/* 463 */	NULL, /* filler */
+	/* 464 */	NULL, /* filler */
+	/* 465 */	NULL, /* filler */
+	/* 466 */	NULL, /* filler */
+	/* 467 */	NULL, /* filler */
+	/* 468 */	NULL, /* filler */
+	/* 469 */	NULL, /* filler */
+	/* 470 */	NULL, /* filler */
+	/* 471 */	NULL, /* filler */
+	/* 472 */	NULL, /* filler */
+	/* 473 */	NULL, /* filler */
+	/* 474 */	NULL, /* filler */
+	/* 475 */	NULL, /* filler */
+	/* 476 */	NULL, /* filler */
+	/* 477 */	NULL, /* filler */
+	/* 478 */	NULL, /* filler */
+	/* 479 */	NULL, /* filler */
+	/* 480 */	NULL, /* filler */
+	/* 481 */	NULL, /* filler */
+	/* 482 */	NULL, /* filler */
+	/* 483 */	NULL, /* filler */
+	/* 484 */	NULL, /* filler */
+	/* 485 */	NULL, /* filler */
+	/* 486 */	NULL, /* filler */
+	/* 487 */	NULL, /* filler */
+	/* 488 */	NULL, /* filler */
+	/* 489 */	NULL, /* filler */
+	/* 490 */	NULL, /* filler */
+	/* 491 */	NULL, /* filler */
+	/* 492 */	NULL, /* filler */
+	/* 493 */	NULL, /* filler */
+	/* 494 */	NULL, /* filler */
+	/* 495 */	NULL, /* filler */
+	/* 496 */	NULL, /* filler */
+	/* 497 */	NULL, /* filler */
+	/* 498 */	NULL, /* filler */
+	/* 499 */	NULL, /* filler */
+	/* 500 */	NULL, /* filler */
+	/* 501 */	NULL, /* filler */
+	/* 502 */	NULL, /* filler */
+	/* 503 */	NULL, /* filler */
+	/* 504 */	NULL, /* filler */
+	/* 505 */	NULL, /* filler */
+	/* 506 */	NULL, /* filler */
+	/* 507 */	NULL, /* filler */
+	/* 508 */	NULL, /* filler */
+	/* 509 */	NULL, /* filler */
+	/* 510 */	NULL, /* filler */
+	/* 511 */	NULL, /* filler */
+};
diff --git a/sys/compat/aoutm68k/aoutm68k_sysent.c b/sys/compat/aoutm68k/aoutm68k_sysent.c
index 919fe1d..a8917d2 100644
--- a/sys/compat/aoutm68k/aoutm68k_sysent.c
+++ b/sys/compat/aoutm68k/aoutm68k_sysent.c
@@ -1,4 +1,4 @@
-/* $NetBSD: aoutm68k_sysent.c,v 1.45 2014/01/25 16:43:03 christos Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aoutm68k_sysent.c,v 1.45 2014/01/25 16:43:03 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ktrace.h"
@@ -32,1337 +32,1337 @@ __KERNEL_RCSID(0, "$NetBSD: aoutm68k_sysent.c,v 1.45 2014/01/25 16:43:03 christo
 
 struct sysent aoutm68k_sysent[] = {
 	{ ns(struct sys_syscall_args), SYCALL_INDIRECT | 0,
-	    (sy_call_t *)sys_syscall },		/* 0 = syscall */
+	    (sy_call_t *)sys_syscall, 0, 0 },		/* 0 = syscall */
 	{ ns(struct sys_exit_args), 0,
-	    (sy_call_t *)sys_exit },		/* 1 = exit */
+	    (sy_call_t *)sys_exit, 0, 0 },		/* 1 = exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct sys_read_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_read },		/* 3 = read */
+	    (sy_call_t *)sys_read, 0, 0 },		/* 3 = read */
 	{ ns(struct sys_write_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_write },		/* 4 = write */
+	    (sy_call_t *)sys_write, 0, 0 },		/* 4 = write */
 	{ ns(struct sys_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_open },		/* 5 = open */
+	    (sy_call_t *)sys_open, 0, 0 },		/* 5 = open */
 	{ ns(struct sys_close_args), 0,
-	    (sy_call_t *)sys_close },		/* 6 = close */
+	    (sy_call_t *)sys_close, 0, 0 },		/* 6 = close */
 	{ ns(struct compat_50_sys_wait4_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_wait4 },	/* 7 = wait4 */
+	    (sy_call_t *)compat_50_sys_wait4, 0, 0 },	/* 7 = wait4 */
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ ns(struct compat_43_sys_creat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_creat },	/* 8 = ocreat */
+	    (sy_call_t *)compat_43_sys_creat, 0, 0 },	/* 8 = ocreat */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 8 = excluded compat_43_sys_creat */
+	    sys_nosys, 0, 0 },			/* 8 = excluded compat_43_sys_creat */
 #endif
 	{ ns(struct sys_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_link },		/* 9 = link */
+	    (sy_call_t *)sys_link, 0, 0 },		/* 9 = link */
 	{ ns(struct sys_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_unlink },		/* 10 = unlink */
+	    (sy_call_t *)sys_unlink, 0, 0 },		/* 10 = unlink */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 11 = obsolete execv */
+	    sys_nosys, 0, 0 },			/* 11 = obsolete execv */
 	{ ns(struct sys_chdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chdir },		/* 12 = chdir */
+	    (sy_call_t *)sys_chdir, 0, 0 },		/* 12 = chdir */
 	{ ns(struct sys_fchdir_args), 0,
-	    (sy_call_t *)sys_fchdir },		/* 13 = fchdir */
+	    (sy_call_t *)sys_fchdir, 0, 0 },		/* 13 = fchdir */
 	{ ns(struct compat_50_sys_mknod_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG2_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_mknod },	/* 14 = mknod */
+	    (sy_call_t *)compat_50_sys_mknod, 0, 0 },	/* 14 = mknod */
 	{ ns(struct sys_chmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chmod },		/* 15 = chmod */
+	    (sy_call_t *)sys_chmod, 0, 0 },		/* 15 = chmod */
 	{ ns(struct sys_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chown },		/* 16 = chown */
+	    (sy_call_t *)sys_chown, 0, 0 },		/* 16 = chown */
 	{ ns(struct sys_obreak_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_obreak },		/* 17 = break */
+	    (sy_call_t *)sys_obreak, 0, 0 },		/* 17 = break */
 #if defined(COMPAT_20) || !defined(_KERNEL)
 	{ ns(struct compat_20_sys_getfsstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_20_sys_getfsstat },/* 18 = getfsstat */
+	    (sy_call_t *)compat_20_sys_getfsstat, 0, 0 },/* 18 = getfsstat */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 18 = excluded compat_20_sys_getfsstat */
+	    sys_nosys, 0, 0 },			/* 18 = excluded compat_20_sys_getfsstat */
 #endif
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ ns(struct compat_43_sys_lseek_args), 0,
-	    (sy_call_t *)compat_43_sys_lseek },	/* 19 = olseek */
+	    (sy_call_t *)compat_43_sys_lseek, 0, 0 },	/* 19 = olseek */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 19 = excluded compat_43_sys_lseek */
+	    sys_nosys, 0, 0 },			/* 19 = excluded compat_43_sys_lseek */
 #endif
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid },		/* 20 = getpid */
+	    (sy_call_t *)sys_getpid, 0, 0 },		/* 20 = getpid */
 	{ ns(struct compat_40_sys_mount_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_40_sys_mount },	/* 21 = mount */
+	    (sy_call_t *)compat_40_sys_mount, 0, 0 },	/* 21 = mount */
 	{ ns(struct sys_unmount_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_unmount },		/* 22 = unmount */
+	    (sy_call_t *)sys_unmount, 0, 0 },		/* 22 = unmount */
 	{ ns(struct sys_setuid_args), 0,
-	    (sy_call_t *)sys_setuid },		/* 23 = setuid */
+	    (sy_call_t *)sys_setuid, 0, 0 },		/* 23 = setuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid },		/* 24 = getuid */
+	    (sy_call_t *)sys_getuid, 0, 0 },		/* 24 = getuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_geteuid },		/* 25 = geteuid */
+	    (sy_call_t *)sys_geteuid, 0, 0 },		/* 25 = geteuid */
 	{ ns(struct sys_ptrace_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_ptrace },		/* 26 = ptrace */
+	    (sy_call_t *)sys_ptrace, 0, 0 },		/* 26 = ptrace */
 	{ ns(struct sys_recvmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_recvmsg },		/* 27 = recvmsg */
+	    (sy_call_t *)sys_recvmsg, 0, 0 },		/* 27 = recvmsg */
 	{ ns(struct sys_sendmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_sendmsg },		/* 28 = sendmsg */
+	    (sy_call_t *)sys_sendmsg, 0, 0 },		/* 28 = sendmsg */
 	{ ns(struct sys_recvfrom_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_recvfrom },	/* 29 = recvfrom */
+	    (sy_call_t *)sys_recvfrom, 0, 0 },	/* 29 = recvfrom */
 	{ ns(struct sys_accept_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_accept },		/* 30 = accept */
+	    (sy_call_t *)sys_accept, 0, 0 },		/* 30 = accept */
 	{ ns(struct sys_getpeername_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getpeername },	/* 31 = getpeername */
+	    (sy_call_t *)sys_getpeername, 0, 0 },	/* 31 = getpeername */
 	{ ns(struct sys_getsockname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getsockname },	/* 32 = getsockname */
+	    (sy_call_t *)sys_getsockname, 0, 0 },	/* 32 = getsockname */
 	{ ns(struct sys_access_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_access },		/* 33 = access */
+	    (sy_call_t *)sys_access, 0, 0 },		/* 33 = access */
 	{ ns(struct sys_chflags_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chflags },		/* 34 = chflags */
+	    (sy_call_t *)sys_chflags, 0, 0 },		/* 34 = chflags */
 	{ ns(struct sys_fchflags_args), 0,
-	    (sy_call_t *)sys_fchflags },	/* 35 = fchflags */
+	    (sy_call_t *)sys_fchflags, 0, 0 },	/* 35 = fchflags */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct sys_kill_args), 0,
-	    (sy_call_t *)sys_kill },		/* 37 = kill */
+	    (sy_call_t *)sys_kill, 0, 0 },		/* 37 = kill */
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ ns(struct aoutm68k_compat_43_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)aoutm68k_compat_43_sys_stat },/* 38 = stat43 */
+	    (sy_call_t *)aoutm68k_compat_43_sys_stat, 0, 0 },/* 38 = stat43 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 38 = excluded aoutm68k_compat_43_sys_stat */
+	    sys_nosys, 0, 0 },			/* 38 = excluded aoutm68k_compat_43_sys_stat */
 #endif
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getppid },		/* 39 = getppid */
+	    (sy_call_t *)sys_getppid, 0, 0 },		/* 39 = getppid */
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ ns(struct aoutm68k_compat_43_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)aoutm68k_compat_43_sys_lstat },/* 40 = lstat43 */
+	    (sy_call_t *)aoutm68k_compat_43_sys_lstat, 0, 0 },/* 40 = lstat43 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 40 = excluded aoutm68k_compat_43_sys_lstat */
+	    sys_nosys, 0, 0 },			/* 40 = excluded aoutm68k_compat_43_sys_lstat */
 #endif
 	{ ns(struct sys_dup_args), 0,
-	    (sy_call_t *)sys_dup },		/* 41 = dup */
+	    (sy_call_t *)sys_dup, 0, 0 },		/* 41 = dup */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_pipe },		/* 42 = pipe */
+	    (sy_call_t *)sys_pipe, 0, 0 },		/* 42 = pipe */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getegid },		/* 43 = getegid */
+	    (sy_call_t *)sys_getegid, 0, 0 },		/* 43 = getegid */
 	{ ns(struct sys_profil_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_profil },		/* 44 = profil */
+	    (sy_call_t *)sys_profil, 0, 0 },		/* 44 = profil */
 #if defined(KTRACE) || !defined(_KERNEL)
 	{ ns(struct sys_ktrace_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_ktrace },		/* 45 = ktrace */
+	    (sy_call_t *)sys_ktrace, 0, 0 },		/* 45 = ktrace */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 45 = excluded ktrace */
+	    sys_nosys, 0, 0 },			/* 45 = excluded ktrace */
 #endif
 #if defined(COMPAT_13) || !defined(_KERNEL)
 	{ ns(struct compat_13_sys_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_13_sys_sigaction },/* 46 = sigaction13 */
+	    (sy_call_t *)compat_13_sys_sigaction, 0, 0 },/* 46 = sigaction13 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 46 = excluded compat_13_sys_sigaction */
+	    sys_nosys, 0, 0 },			/* 46 = excluded compat_13_sys_sigaction */
 #endif
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid },		/* 47 = getgid */
+	    (sy_call_t *)sys_getgid, 0, 0 },		/* 47 = getgid */
 #if defined(COMPAT_13) || !defined(_KERNEL)
 	{ ns(struct compat_13_sys_sigprocmask_args), 0,
-	    (sy_call_t *)compat_13_sys_sigprocmask },/* 48 = sigprocmask13 */
+	    (sy_call_t *)compat_13_sys_sigprocmask, 0, 0 },/* 48 = sigprocmask13 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 48 = excluded compat_13_sys_sigprocmask */
+	    sys_nosys, 0, 0 },			/* 48 = excluded compat_13_sys_sigprocmask */
 #endif
 	{ ns(struct sys___getlogin_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getlogin },	/* 49 = __getlogin */
+	    (sy_call_t *)sys___getlogin, 0, 0 },	/* 49 = __getlogin */
 	{ ns(struct sys___setlogin_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___setlogin },	/* 50 = __setlogin */
+	    (sy_call_t *)sys___setlogin, 0, 0 },	/* 50 = __setlogin */
 	{ ns(struct sys_acct_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_acct },		/* 51 = acct */
+	    (sy_call_t *)sys_acct, 0, 0 },		/* 51 = acct */
 #if defined(COMPAT_13) || !defined(_KERNEL)
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_13_sys_sigpending },/* 52 = sigpending13 */
+	    (sy_call_t *)compat_13_sys_sigpending, 0, 0 },/* 52 = sigpending13 */
 	{ ns(struct compat_13_sys_sigaltstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_13_sys_sigaltstack },/* 53 = sigaltstack13 */
+	    (sy_call_t *)compat_13_sys_sigaltstack, 0, 0 },/* 53 = sigaltstack13 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 52 = excluded compat_13_sys_sigpending */
+	    sys_nosys, 0, 0 },			/* 52 = excluded compat_13_sys_sigpending */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 53 = excluded compat_13_sys_sigaltstack */
+	    sys_nosys, 0, 0 },			/* 53 = excluded compat_13_sys_sigaltstack */
 #endif
 	{ ns(struct sys_ioctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_ioctl },		/* 54 = ioctl */
+	    (sy_call_t *)sys_ioctl, 0, 0 },		/* 54 = ioctl */
 #if defined(COMPAT_12) || !defined(_KERNEL)
 	{ ns(struct compat_12_sys_reboot_args), 0,
-	    (sy_call_t *)compat_12_sys_reboot },/* 55 = oreboot */
+	    (sy_call_t *)compat_12_sys_reboot, 0, 0 },/* 55 = oreboot */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 55 = excluded compat_12_sys_reboot */
+	    sys_nosys, 0, 0 },			/* 55 = excluded compat_12_sys_reboot */
 #endif
 	{ ns(struct sys_revoke_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_revoke },		/* 56 = revoke */
+	    (sy_call_t *)sys_revoke, 0, 0 },		/* 56 = revoke */
 	{ ns(struct sys_symlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlink },		/* 57 = symlink */
+	    (sy_call_t *)sys_symlink, 0, 0 },		/* 57 = symlink */
 	{ ns(struct sys_readlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlink },	/* 58 = readlink */
+	    (sy_call_t *)sys_readlink, 0, 0 },	/* 58 = readlink */
 	{ ns(struct sys_execve_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_execve },		/* 59 = execve */
+	    (sy_call_t *)sys_execve, 0, 0 },		/* 59 = execve */
 	{ ns(struct sys_umask_args), 0,
-	    (sy_call_t *)sys_umask },		/* 60 = umask */
+	    (sy_call_t *)sys_umask, 0, 0 },		/* 60 = umask */
 	{ ns(struct sys_chroot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chroot },		/* 61 = chroot */
+	    (sy_call_t *)sys_chroot, 0, 0 },		/* 61 = chroot */
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ ns(struct aoutm68k_compat_43_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)aoutm68k_compat_43_sys_fstat },/* 62 = fstat43 */
+	    (sy_call_t *)aoutm68k_compat_43_sys_fstat, 0, 0 },/* 62 = fstat43 */
 	{ ns(struct compat_43_sys_getkerninfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getkerninfo },/* 63 = ogetkerninfo */
+	    (sy_call_t *)compat_43_sys_getkerninfo, 0, 0 },/* 63 = ogetkerninfo */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_getpagesize },/* 64 = ogetpagesize */
+	    (sy_call_t *)compat_43_sys_getpagesize, 0, 0 },/* 64 = ogetpagesize */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 62 = excluded aoutm68k_compat_43_sys_fstat */
+	    sys_nosys, 0, 0 },			/* 62 = excluded aoutm68k_compat_43_sys_fstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 63 = excluded compat_43_sys_getkerninfo */
+	    sys_nosys, 0, 0 },			/* 63 = excluded compat_43_sys_getkerninfo */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 64 = excluded compat_43_sys_getpagesize */
+	    sys_nosys, 0, 0 },			/* 64 = excluded compat_43_sys_getpagesize */
 #endif
 #if defined(COMPAT_12) || !defined(_KERNEL)
 	{ ns(struct compat_12_sys_msync_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_12_sys_msync },	/* 65 = msync */
+	    (sy_call_t *)compat_12_sys_msync, 0, 0 },	/* 65 = msync */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 65 = excluded compat_12_sys_msync */
+	    sys_nosys, 0, 0 },			/* 65 = excluded compat_12_sys_msync */
 #endif
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_vfork },		/* 66 = vfork */
+	    (sy_call_t *)sys_vfork, 0, 0 },		/* 66 = vfork */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 67 = obsolete vread */
+	    sys_nosys, 0, 0 },			/* 67 = obsolete vread */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 68 = obsolete vwrite */
+	    sys_nosys, 0, 0 },			/* 68 = obsolete vwrite */
 	{ ns(struct sys_sbrk_args), 0,
-	    (sy_call_t *)sys_sbrk },		/* 69 = sbrk */
+	    (sy_call_t *)sys_sbrk, 0, 0 },		/* 69 = sbrk */
 	{ ns(struct sys_sstk_args), 0,
-	    (sy_call_t *)sys_sstk },		/* 70 = sstk */
+	    (sy_call_t *)sys_sstk, 0, 0 },		/* 70 = sstk */
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ ns(struct compat_43_sys_mmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_mmap },	/* 71 = ommap */
+	    (sy_call_t *)compat_43_sys_mmap, 0, 0 },	/* 71 = ommap */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 71 = excluded compat_43_sys_mmap */
+	    sys_nosys, 0, 0 },			/* 71 = excluded compat_43_sys_mmap */
 #endif
 	{ ns(struct sys_ovadvise_args), 0,
-	    (sy_call_t *)sys_ovadvise },	/* 72 = vadvise */
+	    (sy_call_t *)sys_ovadvise, 0, 0 },	/* 72 = vadvise */
 	{ ns(struct sys_munmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munmap },		/* 73 = munmap */
+	    (sy_call_t *)sys_munmap, 0, 0 },		/* 73 = munmap */
 	{ ns(struct sys_mprotect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mprotect },	/* 74 = mprotect */
+	    (sy_call_t *)sys_mprotect, 0, 0 },	/* 74 = mprotect */
 	{ ns(struct sys_madvise_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_madvise },		/* 75 = madvise */
+	    (sy_call_t *)sys_madvise, 0, 0 },		/* 75 = madvise */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 76 = obsolete vhangup */
+	    sys_nosys, 0, 0 },			/* 76 = obsolete vhangup */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 77 = obsolete vlimit */
+	    sys_nosys, 0, 0 },			/* 77 = obsolete vlimit */
 	{ ns(struct sys_mincore_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mincore },		/* 78 = mincore */
+	    (sy_call_t *)sys_mincore, 0, 0 },		/* 78 = mincore */
 	{ ns(struct sys_getgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getgroups },	/* 79 = getgroups */
+	    (sy_call_t *)sys_getgroups, 0, 0 },	/* 79 = getgroups */
 	{ ns(struct sys_setgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setgroups },	/* 80 = setgroups */
+	    (sy_call_t *)sys_setgroups, 0, 0 },	/* 80 = setgroups */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpgrp },		/* 81 = getpgrp */
+	    (sy_call_t *)sys_getpgrp, 0, 0 },		/* 81 = getpgrp */
 	{ ns(struct sys_setpgid_args), 0,
-	    (sy_call_t *)sys_setpgid },		/* 82 = setpgid */
+	    (sy_call_t *)sys_setpgid, 0, 0 },		/* 82 = setpgid */
 	{ ns(struct compat_50_sys_setitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_setitimer },/* 83 = setitimer */
+	    (sy_call_t *)compat_50_sys_setitimer, 0, 0 },/* 83 = setitimer */
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_wait },	/* 84 = owait */
+	    (sy_call_t *)compat_43_sys_wait, 0, 0 },	/* 84 = owait */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 84 = excluded compat_43_sys_wait */
+	    sys_nosys, 0, 0 },			/* 84 = excluded compat_43_sys_wait */
 #endif
 #if defined(COMPAT_12) || !defined(_KERNEL)
 	{ ns(struct compat_12_sys_swapon_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_12_sys_swapon },/* 85 = oswapon */
+	    (sy_call_t *)compat_12_sys_swapon, 0, 0 },/* 85 = oswapon */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 85 = excluded compat_12_sys_swapon */
+	    sys_nosys, 0, 0 },			/* 85 = excluded compat_12_sys_swapon */
 #endif
 	{ ns(struct compat_50_sys_getitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getitimer },/* 86 = getitimer */
+	    (sy_call_t *)compat_50_sys_getitimer, 0, 0 },/* 86 = getitimer */
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ ns(struct compat_43_sys_gethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_gethostname },/* 87 = ogethostname */
+	    (sy_call_t *)compat_43_sys_gethostname, 0, 0 },/* 87 = ogethostname */
 	{ ns(struct compat_43_sys_sethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sethostname },/* 88 = osethostname */
+	    (sy_call_t *)compat_43_sys_sethostname, 0, 0 },/* 88 = osethostname */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_getdtablesize },/* 89 = ogetdtablesize */
+	    (sy_call_t *)compat_43_sys_getdtablesize, 0, 0 },/* 89 = ogetdtablesize */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 87 = excluded compat_43_sys_gethostname */
+	    sys_nosys, 0, 0 },			/* 87 = excluded compat_43_sys_gethostname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 88 = excluded compat_43_sys_sethostname */
+	    sys_nosys, 0, 0 },			/* 88 = excluded compat_43_sys_sethostname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 89 = excluded compat_43_sys_getdtablesize */
+	    sys_nosys, 0, 0 },			/* 89 = excluded compat_43_sys_getdtablesize */
 #endif
 	{ ns(struct sys_dup2_args), 0,
-	    (sy_call_t *)sys_dup2 },		/* 90 = dup2 */
+	    (sy_call_t *)sys_dup2, 0, 0 },		/* 90 = dup2 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 91 = unimplemented getdopt */
+	    sys_nosys, 0, 0 },			/* 91 = unimplemented getdopt */
 	{ ns(struct sys_fcntl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_fcntl },		/* 92 = fcntl */
+	    (sy_call_t *)sys_fcntl, 0, 0 },		/* 92 = fcntl */
 	{ ns(struct compat_50_sys_select_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_select },/* 93 = select */
+	    (sy_call_t *)compat_50_sys_select, 0, 0 },/* 93 = select */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 94 = unimplemented setdopt */
+	    sys_nosys, 0, 0 },			/* 94 = unimplemented setdopt */
 	{ ns(struct sys_fsync_args), 0,
-	    (sy_call_t *)sys_fsync },		/* 95 = fsync */
+	    (sy_call_t *)sys_fsync, 0, 0 },		/* 95 = fsync */
 	{ ns(struct sys_setpriority_args), 0,
-	    (sy_call_t *)sys_setpriority },	/* 96 = setpriority */
+	    (sy_call_t *)sys_setpriority, 0, 0 },	/* 96 = setpriority */
 	{ ns(struct compat_30_sys_socket_args), 0,
-	    (sy_call_t *)compat_30_sys_socket },/* 97 = socket */
+	    (sy_call_t *)compat_30_sys_socket, 0, 0 },/* 97 = socket */
 	{ ns(struct sys_connect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_connect },		/* 98 = connect */
+	    (sy_call_t *)sys_connect, 0, 0 },		/* 98 = connect */
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ ns(struct compat_43_sys_accept_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_accept },/* 99 = oaccept */
+	    (sy_call_t *)compat_43_sys_accept, 0, 0 },/* 99 = oaccept */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 99 = excluded compat_43_sys_accept */
+	    sys_nosys, 0, 0 },			/* 99 = excluded compat_43_sys_accept */
 #endif
 	{ ns(struct sys_getpriority_args), 0,
-	    (sy_call_t *)sys_getpriority },	/* 100 = getpriority */
+	    (sy_call_t *)sys_getpriority, 0, 0 },	/* 100 = getpriority */
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ ns(struct compat_43_sys_send_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_send },	/* 101 = osend */
+	    (sy_call_t *)compat_43_sys_send, 0, 0 },	/* 101 = osend */
 	{ ns(struct compat_43_sys_recv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recv },	/* 102 = orecv */
+	    (sy_call_t *)compat_43_sys_recv, 0, 0 },	/* 102 = orecv */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 101 = excluded compat_43_sys_send */
+	    sys_nosys, 0, 0 },			/* 101 = excluded compat_43_sys_send */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 102 = excluded compat_43_sys_recv */
+	    sys_nosys, 0, 0 },			/* 102 = excluded compat_43_sys_recv */
 #endif
 #if defined(COMPAT_13) || !defined(_KERNEL)
 	{ ns(struct compat_13_sys_sigreturn_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_13_sys_sigreturn },/* 103 = sigreturn13 */
+	    (sy_call_t *)compat_13_sys_sigreturn, 0, 0 },/* 103 = sigreturn13 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 103 = excluded compat_13_sys_sigreturn */
+	    sys_nosys, 0, 0 },			/* 103 = excluded compat_13_sys_sigreturn */
 #endif
 	{ ns(struct sys_bind_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_bind },		/* 104 = bind */
+	    (sy_call_t *)sys_bind, 0, 0 },		/* 104 = bind */
 	{ ns(struct sys_setsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setsockopt },	/* 105 = setsockopt */
+	    (sy_call_t *)sys_setsockopt, 0, 0 },	/* 105 = setsockopt */
 	{ ns(struct sys_listen_args), 0,
-	    (sy_call_t *)sys_listen },		/* 106 = listen */
+	    (sy_call_t *)sys_listen, 0, 0 },		/* 106 = listen */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 107 = obsolete vtimes */
+	    sys_nosys, 0, 0 },			/* 107 = obsolete vtimes */
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ ns(struct compat_43_sys_sigvec_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sigvec },/* 108 = osigvec */
+	    (sy_call_t *)compat_43_sys_sigvec, 0, 0 },/* 108 = osigvec */
 	{ ns(struct compat_43_sys_sigblock_args), 0,
-	    (sy_call_t *)compat_43_sys_sigblock },/* 109 = osigblock */
+	    (sy_call_t *)compat_43_sys_sigblock, 0, 0 },/* 109 = osigblock */
 	{ ns(struct compat_43_sys_sigsetmask_args), 0,
-	    (sy_call_t *)compat_43_sys_sigsetmask },/* 110 = osigsetmask */
+	    (sy_call_t *)compat_43_sys_sigsetmask, 0, 0 },/* 110 = osigsetmask */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 108 = excluded compat_43_sys_sigvec */
+	    sys_nosys, 0, 0 },			/* 108 = excluded compat_43_sys_sigvec */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 109 = excluded compat_43_sys_sigblock */
+	    sys_nosys, 0, 0 },			/* 109 = excluded compat_43_sys_sigblock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 110 = excluded compat_43_sys_sigsetmask */
+	    sys_nosys, 0, 0 },			/* 110 = excluded compat_43_sys_sigsetmask */
 #endif
 #if defined(COMPAT_13) || !defined(_KERNEL)
 	{ ns(struct compat_13_sys_sigsuspend_args), 0,
-	    (sy_call_t *)compat_13_sys_sigsuspend },/* 111 = sigsuspend13 */
+	    (sy_call_t *)compat_13_sys_sigsuspend, 0, 0 },/* 111 = sigsuspend13 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 111 = excluded compat_13_sys_sigsuspend */
+	    sys_nosys, 0, 0 },			/* 111 = excluded compat_13_sys_sigsuspend */
 #endif
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ ns(struct compat_43_sys_sigstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sigstack },/* 112 = osigstack */
+	    (sy_call_t *)compat_43_sys_sigstack, 0, 0 },/* 112 = osigstack */
 	{ ns(struct compat_43_sys_recvmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recvmsg },/* 113 = orecvmsg */
+	    (sy_call_t *)compat_43_sys_recvmsg, 0, 0 },/* 113 = orecvmsg */
 	{ ns(struct compat_43_sys_sendmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sendmsg },/* 114 = osendmsg */
+	    (sy_call_t *)compat_43_sys_sendmsg, 0, 0 },/* 114 = osendmsg */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 112 = excluded compat_43_sys_sigstack */
+	    sys_nosys, 0, 0 },			/* 112 = excluded compat_43_sys_sigstack */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 113 = excluded compat_43_sys_recvmesg */
+	    sys_nosys, 0, 0 },			/* 113 = excluded compat_43_sys_recvmesg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 114 = excluded compat_43_sys_sendmesg */
+	    sys_nosys, 0, 0 },			/* 114 = excluded compat_43_sys_sendmesg */
 #endif
 	{ 0, 0, 0,
-	    sys_nosys },			/* 115 = obsolete vtrace */
+	    sys_nosys, 0, 0 },			/* 115 = obsolete vtrace */
 	{ ns(struct compat_50_sys_gettimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_gettimeofday },/* 116 = gettimeofday */
+	    (sy_call_t *)compat_50_sys_gettimeofday, 0, 0 },/* 116 = gettimeofday */
 	{ ns(struct compat_50_sys_getrusage_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getrusage },/* 117 = getrusage */
+	    (sy_call_t *)compat_50_sys_getrusage, 0, 0 },/* 117 = getrusage */
 	{ ns(struct sys_getsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getsockopt },	/* 118 = getsockopt */
+	    (sy_call_t *)sys_getsockopt, 0, 0 },	/* 118 = getsockopt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 119 = obsolete resuba */
+	    sys_nosys, 0, 0 },			/* 119 = obsolete resuba */
 	{ ns(struct sys_readv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readv },		/* 120 = readv */
+	    (sy_call_t *)sys_readv, 0, 0 },		/* 120 = readv */
 	{ ns(struct sys_writev_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_writev },		/* 121 = writev */
+	    (sy_call_t *)sys_writev, 0, 0 },		/* 121 = writev */
 	{ ns(struct compat_50_sys_settimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_settimeofday },/* 122 = settimeofday */
+	    (sy_call_t *)compat_50_sys_settimeofday, 0, 0 },/* 122 = settimeofday */
 	{ ns(struct sys_fchown_args), 0,
-	    (sy_call_t *)sys_fchown },		/* 123 = fchown */
+	    (sy_call_t *)sys_fchown, 0, 0 },		/* 123 = fchown */
 	{ ns(struct sys_fchmod_args), 0,
-	    (sy_call_t *)sys_fchmod },		/* 124 = fchmod */
+	    (sy_call_t *)sys_fchmod, 0, 0 },		/* 124 = fchmod */
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ ns(struct compat_43_sys_recvfrom_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recvfrom },/* 125 = orecvfrom */
+	    (sy_call_t *)compat_43_sys_recvfrom, 0, 0 },/* 125 = orecvfrom */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 125 = excluded compat_43_sys_recvfrom */
+	    sys_nosys, 0, 0 },			/* 125 = excluded compat_43_sys_recvfrom */
 #endif
 	{ ns(struct sys_setreuid_args), 0,
-	    (sy_call_t *)sys_setreuid },	/* 126 = setreuid */
+	    (sy_call_t *)sys_setreuid, 0, 0 },	/* 126 = setreuid */
 	{ ns(struct sys_setregid_args), 0,
-	    (sy_call_t *)sys_setregid },	/* 127 = setregid */
+	    (sy_call_t *)sys_setregid, 0, 0 },	/* 127 = setregid */
 	{ ns(struct sys_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rename },		/* 128 = rename */
+	    (sy_call_t *)sys_rename, 0, 0 },		/* 128 = rename */
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ ns(struct compat_43_sys_truncate_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_truncate },/* 129 = otruncate */
+	    (sy_call_t *)compat_43_sys_truncate, 0, 0 },/* 129 = otruncate */
 	{ ns(struct compat_43_sys_ftruncate_args), 0,
-	    (sy_call_t *)compat_43_sys_ftruncate },/* 130 = oftruncate */
+	    (sy_call_t *)compat_43_sys_ftruncate, 0, 0 },/* 130 = oftruncate */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 129 = excluded compat_43_sys_truncate */
+	    sys_nosys, 0, 0 },			/* 129 = excluded compat_43_sys_truncate */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 130 = excluded compat_43_sys_ftruncate */
+	    sys_nosys, 0, 0 },			/* 130 = excluded compat_43_sys_ftruncate */
 #endif
 	{ ns(struct sys_flock_args), 0,
-	    (sy_call_t *)sys_flock },		/* 131 = flock */
+	    (sy_call_t *)sys_flock, 0, 0 },		/* 131 = flock */
 	{ ns(struct sys_mkfifo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkfifo },		/* 132 = mkfifo */
+	    (sy_call_t *)sys_mkfifo, 0, 0 },		/* 132 = mkfifo */
 	{ ns(struct sys_sendto_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_sendto },		/* 133 = sendto */
+	    (sy_call_t *)sys_sendto, 0, 0 },		/* 133 = sendto */
 	{ ns(struct sys_shutdown_args), 0,
-	    (sy_call_t *)sys_shutdown },	/* 134 = shutdown */
+	    (sy_call_t *)sys_shutdown, 0, 0 },	/* 134 = shutdown */
 	{ ns(struct sys_socketpair_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_socketpair },	/* 135 = socketpair */
+	    (sy_call_t *)sys_socketpair, 0, 0 },	/* 135 = socketpair */
 	{ ns(struct sys_mkdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdir },		/* 136 = mkdir */
+	    (sy_call_t *)sys_mkdir, 0, 0 },		/* 136 = mkdir */
 	{ ns(struct sys_rmdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rmdir },		/* 137 = rmdir */
+	    (sy_call_t *)sys_rmdir, 0, 0 },		/* 137 = rmdir */
 	{ ns(struct compat_50_sys_utimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_utimes },/* 138 = utimes */
+	    (sy_call_t *)compat_50_sys_utimes, 0, 0 },/* 138 = utimes */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 139 = obsolete 4.2 sigreturn */
+	    sys_nosys, 0, 0 },			/* 139 = obsolete 4.2 sigreturn */
 	{ ns(struct compat_50_sys_adjtime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_adjtime },/* 140 = adjtime */
+	    (sy_call_t *)compat_50_sys_adjtime, 0, 0 },/* 140 = adjtime */
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ ns(struct compat_43_sys_getpeername_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getpeername },/* 141 = ogetpeername */
+	    (sy_call_t *)compat_43_sys_getpeername, 0, 0 },/* 141 = ogetpeername */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_gethostid },/* 142 = ogethostid */
+	    (sy_call_t *)compat_43_sys_gethostid, 0, 0 },/* 142 = ogethostid */
 	{ ns(struct compat_43_sys_sethostid_args), 0,
-	    (sy_call_t *)compat_43_sys_sethostid },/* 143 = osethostid */
+	    (sy_call_t *)compat_43_sys_sethostid, 0, 0 },/* 143 = osethostid */
 	{ ns(struct compat_43_sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getrlimit },/* 144 = ogetrlimit */
+	    (sy_call_t *)compat_43_sys_getrlimit, 0, 0 },/* 144 = ogetrlimit */
 	{ ns(struct compat_43_sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_setrlimit },/* 145 = osetrlimit */
+	    (sy_call_t *)compat_43_sys_setrlimit, 0, 0 },/* 145 = osetrlimit */
 	{ ns(struct compat_43_sys_killpg_args), 0,
-	    (sy_call_t *)compat_43_sys_killpg },/* 146 = okillpg */
+	    (sy_call_t *)compat_43_sys_killpg, 0, 0 },/* 146 = okillpg */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 141 = excluded compat_43_sys_getpeername */
+	    sys_nosys, 0, 0 },			/* 141 = excluded compat_43_sys_getpeername */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 142 = excluded compat_43_sys_gethostid */
+	    sys_nosys, 0, 0 },			/* 142 = excluded compat_43_sys_gethostid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 143 = excluded compat_43_sys_sethostid */
+	    sys_nosys, 0, 0 },			/* 143 = excluded compat_43_sys_sethostid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 144 = excluded compat_43_sys_getrlimit */
+	    sys_nosys, 0, 0 },			/* 144 = excluded compat_43_sys_getrlimit */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 145 = excluded compat_43_sys_setrlimit */
+	    sys_nosys, 0, 0 },			/* 145 = excluded compat_43_sys_setrlimit */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 146 = excluded compat_43_sys_killpg */
+	    sys_nosys, 0, 0 },			/* 146 = excluded compat_43_sys_killpg */
 #endif
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_setsid },		/* 147 = setsid */
+	    (sy_call_t *)sys_setsid, 0, 0 },		/* 147 = setsid */
 	{ ns(struct compat_50_sys_quotactl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_quotactl },/* 148 = quotactl */
+	    (sy_call_t *)compat_50_sys_quotactl, 0, 0 },/* 148 = quotactl */
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_quota },	/* 149 = oquota */
+	    (sy_call_t *)compat_43_sys_quota, 0, 0 },	/* 149 = oquota */
 	{ ns(struct compat_43_sys_getsockname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getsockname },/* 150 = ogetsockname */
+	    (sy_call_t *)compat_43_sys_getsockname, 0, 0 },/* 150 = ogetsockname */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 149 = excluded compat_43_sys_quota */
+	    sys_nosys, 0, 0 },			/* 149 = excluded compat_43_sys_quota */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 150 = excluded compat_43_sys_getsockname */
+	    sys_nosys, 0, 0 },			/* 150 = excluded compat_43_sys_getsockname */
 #endif
 	{ 0, 0, 0,
-	    sys_nosys },			/* 151 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 151 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 152 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 152 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 153 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 153 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 154 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 154 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 155 = excluded nfssvc */
+	    sys_nosys, 0, 0 },			/* 155 = excluded nfssvc */
 #if defined(COMPAT_43) || !defined(_KERNEL)
 	{ ns(struct compat_43_sys_getdirentries_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getdirentries },/* 156 = ogetdirentries */
+	    (sy_call_t *)compat_43_sys_getdirentries, 0, 0 },/* 156 = ogetdirentries */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 156 = excluded compat_43_sys_getdirentries */
+	    sys_nosys, 0, 0 },			/* 156 = excluded compat_43_sys_getdirentries */
 #endif
 #if defined(COMPAT_20) || !defined(_KERNEL)
 	{ ns(struct compat_20_sys_statfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_20_sys_statfs },/* 157 = statfs */
+	    (sy_call_t *)compat_20_sys_statfs, 0, 0 },/* 157 = statfs */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 157 = excluded compat_20_sys_statfs */
+	    sys_nosys, 0, 0 },			/* 157 = excluded compat_20_sys_statfs */
 #endif
 #if defined(COMPAT_20) || !defined(_KERNEL)
 	{ ns(struct compat_20_sys_fstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_20_sys_fstatfs },/* 158 = fstatfs */
+	    (sy_call_t *)compat_20_sys_fstatfs, 0, 0 },/* 158 = fstatfs */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 158 = excluded compat_20_sys_statfs */
+	    sys_nosys, 0, 0 },			/* 158 = excluded compat_20_sys_statfs */
 #endif
 	{ 0, 0, 0,
-	    sys_nosys },			/* 159 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 159 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 160 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 160 = unimplemented */
 	{ ns(struct compat_30_sys_getfh_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_30_sys_getfh },	/* 161 = getfh */
+	    (sy_call_t *)compat_30_sys_getfh, 0, 0 },	/* 161 = getfh */
 #if defined(COMPAT_09) || !defined(_KERNEL)
 	{ ns(struct compat_09_sys_getdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_09_sys_getdomainname },/* 162 = ogetdomainname */
+	    (sy_call_t *)compat_09_sys_getdomainname, 0, 0 },/* 162 = ogetdomainname */
 	{ ns(struct compat_09_sys_setdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_09_sys_setdomainname },/* 163 = osetdomainname */
+	    (sy_call_t *)compat_09_sys_setdomainname, 0, 0 },/* 163 = osetdomainname */
 	{ ns(struct compat_09_sys_uname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_09_sys_uname },	/* 164 = ouname */
+	    (sy_call_t *)compat_09_sys_uname, 0, 0 },	/* 164 = ouname */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 162 = excluded compat_09_sys_getdomainname */
+	    sys_nosys, 0, 0 },			/* 162 = excluded compat_09_sys_getdomainname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 163 = excluded compat_09_sys_setdomainname */
+	    sys_nosys, 0, 0 },			/* 163 = excluded compat_09_sys_setdomainname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 164 = excluded compat_09_sys_uname */
+	    sys_nosys, 0, 0 },			/* 164 = excluded compat_09_sys_uname */
 #endif
 	{ ns(struct sys_sysarch_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_sysarch },		/* 165 = sysarch */
+	    (sy_call_t *)sys_sysarch, 0, 0 },		/* 165 = sysarch */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 166 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 166 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 167 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 167 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 168 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 168 = unimplemented */
 #if (defined(SYSVSEM) || !defined(_KERNEL)) && !defined(_LP64) && defined(COMPAT_10)
 	{ ns(struct compat_10_sys_semsys_args), 0,
-	    (sy_call_t *)compat_10_sys_semsys },/* 169 = osemsys */
+	    (sy_call_t *)compat_10_sys_semsys, 0, 0 },/* 169 = osemsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 169 = excluded 1.0 semsys */
+	    sys_nosys, 0, 0 },			/* 169 = excluded 1.0 semsys */
 #endif
 #if (defined(SYSVMSG) || !defined(_KERNEL)) && !defined(_LP64) && defined(COMPAT_10)
 	{ ns(struct compat_10_sys_msgsys_args), 0,
-	    (sy_call_t *)compat_10_sys_msgsys },/* 170 = omsgsys */
+	    (sy_call_t *)compat_10_sys_msgsys, 0, 0 },/* 170 = omsgsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 170 = excluded 1.0 msgsys */
+	    sys_nosys, 0, 0 },			/* 170 = excluded 1.0 msgsys */
 #endif
 #if (defined(SYSVSHM) || !defined(_KERNEL)) && !defined(_LP64) && defined(COMPAT_10)
 	{ ns(struct compat_10_sys_shmsys_args), 0,
-	    (sy_call_t *)compat_10_sys_shmsys },/* 171 = oshmsys */
+	    (sy_call_t *)compat_10_sys_shmsys, 0, 0 },/* 171 = oshmsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 171 = excluded 1.0 shmsys */
+	    sys_nosys, 0, 0 },			/* 171 = excluded 1.0 shmsys */
 #endif
 	{ 0, 0, 0,
-	    sys_nosys },			/* 172 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 172 = unimplemented */
 	{ ns(struct sys_pread_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG4_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pread },		/* 173 = pread */
+	    (sy_call_t *)sys_pread, 0, 0 },		/* 173 = pread */
 	{ ns(struct sys_pwrite_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG4_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pwrite },		/* 174 = pwrite */
+	    (sy_call_t *)sys_pwrite, 0, 0 },		/* 174 = pwrite */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 175 = unimplemented sys_ntp_gettime */
+	    sys_nosys, 0, 0 },			/* 175 = unimplemented sys_ntp_gettime */
 #if defined(NTP) || !defined(_KERNEL)
 	{ ns(struct sys_ntp_adjtime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_ntp_adjtime },	/* 176 = ntp_adjtime */
+	    (sy_call_t *)sys_ntp_adjtime, 0, 0 },	/* 176 = ntp_adjtime */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 176 = excluded ntp_adjtime */
+	    sys_nosys, 0, 0 },			/* 176 = excluded ntp_adjtime */
 #endif
 	{ 0, 0, 0,
-	    sys_nosys },			/* 177 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 177 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 178 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 178 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 179 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 179 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 180 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 180 = unimplemented */
 	{ ns(struct sys_setgid_args), 0,
-	    (sy_call_t *)sys_setgid },		/* 181 = setgid */
+	    (sy_call_t *)sys_setgid, 0, 0 },		/* 181 = setgid */
 	{ ns(struct sys_setegid_args), 0,
-	    (sy_call_t *)sys_setegid },		/* 182 = setegid */
+	    (sy_call_t *)sys_setegid, 0, 0 },		/* 182 = setegid */
 	{ ns(struct sys_seteuid_args), 0,
-	    (sy_call_t *)sys_seteuid },		/* 183 = seteuid */
+	    (sy_call_t *)sys_seteuid, 0, 0 },		/* 183 = seteuid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 184 = excluded lfs_bmapv */
+	    sys_nosys, 0, 0 },			/* 184 = excluded lfs_bmapv */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 185 = excluded lfs_markv */
+	    sys_nosys, 0, 0 },			/* 185 = excluded lfs_markv */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 186 = excluded lfs_segclean */
+	    sys_nosys, 0, 0 },			/* 186 = excluded lfs_segclean */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 187 = excluded lfs_segwait */
+	    sys_nosys, 0, 0 },			/* 187 = excluded lfs_segwait */
 #if defined(COMPAT_12) || !defined(_KERNEL)
 	{ ns(struct aoutm68k_compat_12_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)aoutm68k_compat_12_sys_stat },/* 188 = stat12 */
+	    (sy_call_t *)aoutm68k_compat_12_sys_stat, 0, 0 },/* 188 = stat12 */
 	{ ns(struct aoutm68k_compat_12_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)aoutm68k_compat_12_sys_fstat },/* 189 = fstat12 */
+	    (sy_call_t *)aoutm68k_compat_12_sys_fstat, 0, 0 },/* 189 = fstat12 */
 	{ ns(struct aoutm68k_compat_12_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)aoutm68k_compat_12_sys_lstat },/* 190 = lstat12 */
+	    (sy_call_t *)aoutm68k_compat_12_sys_lstat, 0, 0 },/* 190 = lstat12 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 188 = excluded aoutm68k_compat_12_sys_stat */
+	    sys_nosys, 0, 0 },			/* 188 = excluded aoutm68k_compat_12_sys_stat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 189 = excluded aoutm68k_compat_12_sys_fstat */
+	    sys_nosys, 0, 0 },			/* 189 = excluded aoutm68k_compat_12_sys_fstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 190 = excluded aoutm68k_compat_12_sys_lstat */
+	    sys_nosys, 0, 0 },			/* 190 = excluded aoutm68k_compat_12_sys_lstat */
 #endif
 	{ ns(struct sys_pathconf_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pathconf },	/* 191 = pathconf */
+	    (sy_call_t *)sys_pathconf, 0, 0 },	/* 191 = pathconf */
 	{ ns(struct sys_fpathconf_args), 0,
-	    (sy_call_t *)sys_fpathconf },	/* 192 = fpathconf */
+	    (sy_call_t *)sys_fpathconf, 0, 0 },	/* 192 = fpathconf */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 193 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 193 = unimplemented */
 	{ ns(struct sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getrlimit },	/* 194 = getrlimit */
+	    (sy_call_t *)sys_getrlimit, 0, 0 },	/* 194 = getrlimit */
 	{ ns(struct sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setrlimit },	/* 195 = setrlimit */
+	    (sy_call_t *)sys_setrlimit, 0, 0 },	/* 195 = setrlimit */
 #if defined(COMPAT_12) || !defined(_KERNEL)
 	{ ns(struct compat_12_sys_getdirentries_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_12_sys_getdirentries },/* 196 = getdirentries */
+	    (sy_call_t *)compat_12_sys_getdirentries, 0, 0 },/* 196 = getdirentries */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 196 = excluded compat_12_sys_getdirentries */
+	    sys_nosys, 0, 0 },			/* 196 = excluded compat_12_sys_getdirentries */
 #endif
 	{ ns(struct sys_mmap_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG6_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mmap },		/* 197 = mmap */
+	    (sy_call_t *)sys_mmap, 0, 0 },		/* 197 = mmap */
 	{ ns(struct sys___syscall_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG0_64 | SYCALL_RET_64 | SYCALL_INDIRECT | 0,
-	    (sy_call_t *)sys___syscall },	/* 198 = __syscall */
+	    (sy_call_t *)sys___syscall, 0, 0 },	/* 198 = __syscall */
 	{ ns(struct sys_lseek_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG2_64 | SYCALL_RET_64,
-	    (sy_call_t *)sys_lseek },		/* 199 = lseek */
+	    (sy_call_t *)sys_lseek, 0, 0 },		/* 199 = lseek */
 	{ ns(struct sys_truncate_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG2_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_truncate },	/* 200 = truncate */
+	    (sy_call_t *)sys_truncate, 0, 0 },	/* 200 = truncate */
 	{ ns(struct sys_ftruncate_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG2_64,
-	    (sy_call_t *)sys_ftruncate },	/* 201 = ftruncate */
+	    (sy_call_t *)sys_ftruncate, 0, 0 },	/* 201 = ftruncate */
 	{ ns(struct sys___sysctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___sysctl },	/* 202 = __sysctl */
+	    (sy_call_t *)sys___sysctl, 0, 0 },	/* 202 = __sysctl */
 	{ ns(struct sys_mlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mlock },		/* 203 = mlock */
+	    (sy_call_t *)sys_mlock, 0, 0 },		/* 203 = mlock */
 	{ ns(struct sys_munlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munlock },		/* 204 = munlock */
+	    (sy_call_t *)sys_munlock, 0, 0 },		/* 204 = munlock */
 	{ ns(struct sys_undelete_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_undelete },	/* 205 = undelete */
+	    (sy_call_t *)sys_undelete, 0, 0 },	/* 205 = undelete */
 	{ ns(struct compat_50_sys_futimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_futimes },/* 206 = futimes */
+	    (sy_call_t *)compat_50_sys_futimes, 0, 0 },/* 206 = futimes */
 	{ ns(struct sys_getpgid_args), 0,
-	    (sy_call_t *)sys_getpgid },		/* 207 = getpgid */
+	    (sy_call_t *)sys_getpgid, 0, 0 },		/* 207 = getpgid */
 	{ ns(struct sys_reboot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_reboot },		/* 208 = reboot */
+	    (sy_call_t *)sys_reboot, 0, 0 },		/* 208 = reboot */
 	{ ns(struct sys_poll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_poll },		/* 209 = poll */
+	    (sy_call_t *)sys_poll, 0, 0 },		/* 209 = poll */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 210 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 210 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 211 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 211 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 212 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 212 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 213 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 213 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 214 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 214 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 215 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 215 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 216 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 216 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 217 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 217 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 218 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 218 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 219 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 219 = unimplemented */
 #if defined(SYSVSEM) || !defined(_KERNEL)
 #if defined(COMPAT_14) || !defined(_KERNEL)
 	{ ns(struct compat_14_sys___semctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_14_sys___semctl },/* 220 = __semctl */
+	    (sy_call_t *)compat_14_sys___semctl, 0, 0 },/* 220 = __semctl */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 220 = excluded compat_14_semctl */
+	    sys_nosys, 0, 0 },			/* 220 = excluded compat_14_semctl */
 #endif
 	{ ns(struct sys_semget_args), 0,
-	    (sy_call_t *)sys_semget },		/* 221 = semget */
+	    (sy_call_t *)sys_semget, 0, 0 },		/* 221 = semget */
 	{ ns(struct sys_semop_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_semop },		/* 222 = semop */
+	    (sy_call_t *)sys_semop, 0, 0 },		/* 222 = semop */
 	{ ns(struct sys_semconfig_args), 0,
-	    (sy_call_t *)sys_semconfig },	/* 223 = semconfig */
+	    (sy_call_t *)sys_semconfig, 0, 0 },	/* 223 = semconfig */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 220 = excluded compat_14_semctl */
+	    sys_nosys, 0, 0 },			/* 220 = excluded compat_14_semctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 221 = excluded semget */
+	    sys_nosys, 0, 0 },			/* 221 = excluded semget */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 222 = excluded semop */
+	    sys_nosys, 0, 0 },			/* 222 = excluded semop */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 223 = excluded semconfig */
+	    sys_nosys, 0, 0 },			/* 223 = excluded semconfig */
 #endif
 #if defined(SYSVMSG) || !defined(_KERNEL)
 #if defined(COMPAT_14) || !defined(_KERNEL)
 	{ ns(struct compat_14_sys_msgctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_14_sys_msgctl },/* 224 = msgctl */
+	    (sy_call_t *)compat_14_sys_msgctl, 0, 0 },/* 224 = msgctl */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 224 = excluded compat_14_sys_msgctl */
+	    sys_nosys, 0, 0 },			/* 224 = excluded compat_14_sys_msgctl */
 #endif
 	{ ns(struct sys_msgget_args), 0,
-	    (sy_call_t *)sys_msgget },		/* 225 = msgget */
+	    (sy_call_t *)sys_msgget, 0, 0 },		/* 225 = msgget */
 	{ ns(struct sys_msgsnd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_msgsnd },		/* 226 = msgsnd */
+	    (sy_call_t *)sys_msgsnd, 0, 0 },		/* 226 = msgsnd */
 	{ ns(struct sys_msgrcv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_msgrcv },		/* 227 = msgrcv */
+	    (sy_call_t *)sys_msgrcv, 0, 0 },		/* 227 = msgrcv */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 224 = excluded compat_14_msgctl */
+	    sys_nosys, 0, 0 },			/* 224 = excluded compat_14_msgctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 225 = excluded msgget */
+	    sys_nosys, 0, 0 },			/* 225 = excluded msgget */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 226 = excluded msgsnd */
+	    sys_nosys, 0, 0 },			/* 226 = excluded msgsnd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 227 = excluded msgrcv */
+	    sys_nosys, 0, 0 },			/* 227 = excluded msgrcv */
 #endif
 #if defined(SYSVSHM) || !defined(_KERNEL)
 	{ ns(struct sys_shmat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_shmat },		/* 228 = shmat */
+	    (sy_call_t *)sys_shmat, 0, 0 },		/* 228 = shmat */
 #if defined(COMPAT_14) || !defined(_KERNEL)
 	{ ns(struct compat_14_sys_shmctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_14_sys_shmctl },/* 229 = shmctl */
+	    (sy_call_t *)compat_14_sys_shmctl, 0, 0 },/* 229 = shmctl */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 229 = excluded compat_14_sys_shmctl */
+	    sys_nosys, 0, 0 },			/* 229 = excluded compat_14_sys_shmctl */
 #endif
 	{ ns(struct sys_shmdt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_shmdt },		/* 230 = shmdt */
+	    (sy_call_t *)sys_shmdt, 0, 0 },		/* 230 = shmdt */
 	{ ns(struct sys_shmget_args), 0,
-	    (sy_call_t *)sys_shmget },		/* 231 = shmget */
+	    (sy_call_t *)sys_shmget, 0, 0 },		/* 231 = shmget */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 228 = excluded shmat */
+	    sys_nosys, 0, 0 },			/* 228 = excluded shmat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 229 = excluded compat_14_shmctl */
+	    sys_nosys, 0, 0 },			/* 229 = excluded compat_14_shmctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 230 = excluded shmdt */
+	    sys_nosys, 0, 0 },			/* 230 = excluded shmdt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 231 = excluded shmget */
+	    sys_nosys, 0, 0 },			/* 231 = excluded shmget */
 #endif
 	{ ns(struct compat_50_sys_clock_gettime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_clock_gettime },/* 232 = clock_gettime */
+	    (sy_call_t *)compat_50_sys_clock_gettime, 0, 0 },/* 232 = clock_gettime */
 	{ ns(struct compat_50_sys_clock_settime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_clock_settime },/* 233 = clock_settime */
+	    (sy_call_t *)compat_50_sys_clock_settime, 0, 0 },/* 233 = clock_settime */
 	{ ns(struct compat_50_sys_clock_getres_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_clock_getres },/* 234 = clock_getres */
+	    (sy_call_t *)compat_50_sys_clock_getres, 0, 0 },/* 234 = clock_getres */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 235 = unimplemented timer_create */
+	    sys_nosys, 0, 0 },			/* 235 = unimplemented timer_create */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 236 = unimplemented timer_delete */
+	    sys_nosys, 0, 0 },			/* 236 = unimplemented timer_delete */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 237 = unimplemented timer_settime */
+	    sys_nosys, 0, 0 },			/* 237 = unimplemented timer_settime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 238 = unimplemented timer_gettime */
+	    sys_nosys, 0, 0 },			/* 238 = unimplemented timer_gettime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 239 = unimplemented timer_getoverrun */
+	    sys_nosys, 0, 0 },			/* 239 = unimplemented timer_getoverrun */
 	{ ns(struct compat_50_sys_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_nanosleep },/* 240 = nanosleep */
+	    (sy_call_t *)compat_50_sys_nanosleep, 0, 0 },/* 240 = nanosleep */
 	{ ns(struct sys_fdatasync_args), 0,
-	    (sy_call_t *)sys_fdatasync },	/* 241 = fdatasync */
+	    (sy_call_t *)sys_fdatasync, 0, 0 },	/* 241 = fdatasync */
 	{ ns(struct sys_mlockall_args), 0,
-	    (sy_call_t *)sys_mlockall },	/* 242 = mlockall */
+	    (sy_call_t *)sys_mlockall, 0, 0 },	/* 242 = mlockall */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_munlockall },	/* 243 = munlockall */
+	    (sy_call_t *)sys_munlockall, 0, 0 },	/* 243 = munlockall */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 244 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 244 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 245 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 245 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 246 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 246 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 247 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 247 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 248 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 248 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 249 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 249 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 250 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 250 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 251 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 251 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 252 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 252 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 253 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 253 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 254 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 254 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 255 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 255 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 256 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 256 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 257 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 257 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 258 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 258 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 259 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 259 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 260 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 260 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 261 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 261 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 262 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 262 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 263 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 263 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 264 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 264 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 265 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 265 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 266 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 266 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 267 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 267 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 268 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 268 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 269 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 269 = unimplemented */
 	{ ns(struct sys___posix_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_rename },	/* 270 = __posix_rename */
+	    (sy_call_t *)sys___posix_rename, 0, 0 },	/* 270 = __posix_rename */
 	{ ns(struct sys_swapctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_swapctl },		/* 271 = swapctl */
+	    (sy_call_t *)sys_swapctl, 0, 0 },		/* 271 = swapctl */
 #if defined(COMPAT_30) || !defined(_KERNEL)
 	{ ns(struct compat_30_sys_getdents_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_30_sys_getdents },/* 272 = getdents */
+	    (sy_call_t *)compat_30_sys_getdents, 0, 0 },/* 272 = getdents */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 272 = excluded compat_30_sys_getdents */
+	    sys_nosys, 0, 0 },			/* 272 = excluded compat_30_sys_getdents */
 #endif
 	{ ns(struct sys_minherit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_minherit },	/* 273 = minherit */
+	    (sy_call_t *)sys_minherit, 0, 0 },	/* 273 = minherit */
 	{ ns(struct sys_lchmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_lchmod },		/* 274 = lchmod */
+	    (sy_call_t *)sys_lchmod, 0, 0 },		/* 274 = lchmod */
 	{ ns(struct sys_lchown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_lchown },		/* 275 = lchown */
+	    (sy_call_t *)sys_lchown, 0, 0 },		/* 275 = lchown */
 	{ ns(struct compat_50_sys_lutimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_lutimes },/* 276 = lutimes */
+	    (sy_call_t *)compat_50_sys_lutimes, 0, 0 },/* 276 = lutimes */
 	{ ns(struct sys___msync13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___msync13 },	/* 277 = __msync13 */
+	    (sy_call_t *)sys___msync13, 0, 0 },	/* 277 = __msync13 */
 	{ ns(struct aoutm68k_sys___stat13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)aoutm68k_sys___stat13 },/* 278 = __stat13 */
+	    (sy_call_t *)aoutm68k_sys___stat13, 0, 0 },/* 278 = __stat13 */
 	{ ns(struct aoutm68k_sys___fstat13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)aoutm68k_sys___fstat13 },/* 279 = __fstat13 */
+	    (sy_call_t *)aoutm68k_sys___fstat13, 0, 0 },/* 279 = __fstat13 */
 	{ ns(struct aoutm68k_sys___lstat13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)aoutm68k_sys___lstat13 },/* 280 = __lstat13 */
+	    (sy_call_t *)aoutm68k_sys___lstat13, 0, 0 },/* 280 = __lstat13 */
 	{ ns(struct sys___sigaltstack14_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___sigaltstack14 },	/* 281 = __sigaltstack14 */
+	    (sy_call_t *)sys___sigaltstack14, 0, 0 },	/* 281 = __sigaltstack14 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys___vfork14 },	/* 282 = __vfork14 */
+	    (sy_call_t *)sys___vfork14, 0, 0 },	/* 282 = __vfork14 */
 	{ ns(struct sys___posix_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_chown },	/* 283 = __posix_chown */
+	    (sy_call_t *)sys___posix_chown, 0, 0 },	/* 283 = __posix_chown */
 	{ ns(struct sys___posix_fchown_args), 0,
-	    (sy_call_t *)sys___posix_fchown },	/* 284 = __posix_fchown */
+	    (sy_call_t *)sys___posix_fchown, 0, 0 },	/* 284 = __posix_fchown */
 	{ ns(struct sys___posix_lchown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_lchown },	/* 285 = __posix_lchown */
+	    (sy_call_t *)sys___posix_lchown, 0, 0 },	/* 285 = __posix_lchown */
 	{ ns(struct sys_getsid_args), 0,
-	    (sy_call_t *)sys_getsid },		/* 286 = getsid */
+	    (sy_call_t *)sys_getsid, 0, 0 },		/* 286 = getsid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 287 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 287 = unimplemented */
 #if defined(KTRACE) || !defined(_KERNEL)
 	{ ns(struct sys_fktrace_args), 0,
-	    (sy_call_t *)sys_fktrace },		/* 288 = fktrace */
+	    (sy_call_t *)sys_fktrace, 0, 0 },		/* 288 = fktrace */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 288 = excluded ktrace */
+	    sys_nosys, 0, 0 },			/* 288 = excluded ktrace */
 #endif
 	{ ns(struct sys_preadv_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG4_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_preadv },		/* 289 = preadv */
+	    (sy_call_t *)sys_preadv, 0, 0 },		/* 289 = preadv */
 	{ ns(struct sys_pwritev_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG4_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pwritev },		/* 290 = pwritev */
+	    (sy_call_t *)sys_pwritev, 0, 0 },		/* 290 = pwritev */
 #if defined(COMPAT_16) || !defined(_KERNEL)
 	{ ns(struct compat_16_sys___sigaction14_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_16_sys___sigaction14 },/* 291 = __sigaction14 */
+	    (sy_call_t *)compat_16_sys___sigaction14, 0, 0 },/* 291 = __sigaction14 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 291 = excluded compat_16_sys___sigaction14 */
+	    sys_nosys, 0, 0 },			/* 291 = excluded compat_16_sys___sigaction14 */
 #endif
 	{ ns(struct sys___sigpending14_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___sigpending14 },	/* 292 = __sigpending14 */
+	    (sy_call_t *)sys___sigpending14, 0, 0 },	/* 292 = __sigpending14 */
 	{ ns(struct sys___sigprocmask14_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___sigprocmask14 },	/* 293 = __sigprocmask14 */
+	    (sy_call_t *)sys___sigprocmask14, 0, 0 },	/* 293 = __sigprocmask14 */
 	{ ns(struct sys___sigsuspend14_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___sigsuspend14 },	/* 294 = __sigsuspend14 */
+	    (sy_call_t *)sys___sigsuspend14, 0, 0 },	/* 294 = __sigsuspend14 */
 #if defined(COMPAT_16) || !defined(_KERNEL)
 	{ ns(struct compat_16_sys___sigreturn14_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_16_sys___sigreturn14 },/* 295 = __sigreturn14 */
+	    (sy_call_t *)compat_16_sys___sigreturn14, 0, 0 },/* 295 = __sigreturn14 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 295 = excluded compat_16_sys___sigreturn14 */
+	    sys_nosys, 0, 0 },			/* 295 = excluded compat_16_sys___sigreturn14 */
 #endif
 	{ ns(struct sys___getcwd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getcwd },	/* 296 = __getcwd */
+	    (sy_call_t *)sys___getcwd, 0, 0 },	/* 296 = __getcwd */
 	{ ns(struct sys_fchroot_args), 0,
-	    (sy_call_t *)sys_fchroot },		/* 297 = fchroot */
+	    (sy_call_t *)sys_fchroot, 0, 0 },		/* 297 = fchroot */
 	{ ns(struct compat_30_sys_fhopen_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_30_sys_fhopen },/* 298 = fhopen */
+	    (sy_call_t *)compat_30_sys_fhopen, 0, 0 },/* 298 = fhopen */
 	{ ns(struct aoutm68k_sys_fhstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)aoutm68k_sys_fhstat },	/* 299 = fhstat */
+	    (sy_call_t *)aoutm68k_sys_fhstat, 0, 0 },	/* 299 = fhstat */
 #if defined(COMPAT_20) || !defined(_KERNEL)
 	{ ns(struct compat_20_sys_fhstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_20_sys_fhstatfs },/* 300 = fhstatfs */
+	    (sy_call_t *)compat_20_sys_fhstatfs, 0, 0 },/* 300 = fhstatfs */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 300 = excluded compat_20_sys_fhstatfs */
+	    sys_nosys, 0, 0 },			/* 300 = excluded compat_20_sys_fhstatfs */
 #endif
 #if defined(SYSVSEM) || !defined(_KERNEL)
 	{ ns(struct compat_50_sys_____semctl13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_____semctl13 },/* 301 = ____semctl13 */
+	    (sy_call_t *)compat_50_sys_____semctl13, 0, 0 },/* 301 = ____semctl13 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 301 = excluded ____semctl13 */
+	    sys_nosys, 0, 0 },			/* 301 = excluded ____semctl13 */
 #endif
 #if defined(SYSVMSG) || !defined(_KERNEL)
 	{ ns(struct compat_50_sys___msgctl13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys___msgctl13 },/* 302 = __msgctl13 */
+	    (sy_call_t *)compat_50_sys___msgctl13, 0, 0 },/* 302 = __msgctl13 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 302 = excluded __msgctl13 */
+	    sys_nosys, 0, 0 },			/* 302 = excluded __msgctl13 */
 #endif
 #if defined(SYSVSHM) || !defined(_KERNEL)
 	{ ns(struct compat_50_sys___shmctl13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys___shmctl13 },/* 303 = __shmctl13 */
+	    (sy_call_t *)compat_50_sys___shmctl13, 0, 0 },/* 303 = __shmctl13 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 303 = excluded __shmctl13 */
+	    sys_nosys, 0, 0 },			/* 303 = excluded __shmctl13 */
 #endif
 	{ ns(struct sys_lchflags_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_lchflags },	/* 304 = lchflags */
+	    (sy_call_t *)sys_lchflags, 0, 0 },	/* 304 = lchflags */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_issetugid },	/* 305 = issetugid */
+	    (sy_call_t *)sys_issetugid, 0, 0 },	/* 305 = issetugid */
 	{ ns(struct sys_getcontext_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getcontext },	/* 306 = getcontext */
+	    (sy_call_t *)sys_getcontext, 0, 0 },	/* 306 = getcontext */
 	{ ns(struct sys_setcontext_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setcontext },	/* 307 = setcontext */
+	    (sy_call_t *)sys_setcontext, 0, 0 },	/* 307 = setcontext */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 308 = filler */
+	    sys_nosys, 0, 0 },			/* 308 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 309 = filler */
+	    sys_nosys, 0, 0 },			/* 309 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 310 = filler */
+	    sys_nosys, 0, 0 },			/* 310 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 311 = filler */
+	    sys_nosys, 0, 0 },			/* 311 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 312 = filler */
+	    sys_nosys, 0, 0 },			/* 312 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 313 = filler */
+	    sys_nosys, 0, 0 },			/* 313 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 314 = filler */
+	    sys_nosys, 0, 0 },			/* 314 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 315 = filler */
+	    sys_nosys, 0, 0 },			/* 315 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 316 = filler */
+	    sys_nosys, 0, 0 },			/* 316 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 317 = filler */
+	    sys_nosys, 0, 0 },			/* 317 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 318 = filler */
+	    sys_nosys, 0, 0 },			/* 318 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 319 = filler */
+	    sys_nosys, 0, 0 },			/* 319 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 320 = filler */
+	    sys_nosys, 0, 0 },			/* 320 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 321 = filler */
+	    sys_nosys, 0, 0 },			/* 321 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 322 = filler */
+	    sys_nosys, 0, 0 },			/* 322 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 323 = filler */
+	    sys_nosys, 0, 0 },			/* 323 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 324 = filler */
+	    sys_nosys, 0, 0 },			/* 324 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 325 = filler */
+	    sys_nosys, 0, 0 },			/* 325 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 326 = filler */
+	    sys_nosys, 0, 0 },			/* 326 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 327 = filler */
+	    sys_nosys, 0, 0 },			/* 327 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 328 = filler */
+	    sys_nosys, 0, 0 },			/* 328 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 329 = filler */
+	    sys_nosys, 0, 0 },			/* 329 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 330 = filler */
+	    sys_nosys, 0, 0 },			/* 330 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 331 = filler */
+	    sys_nosys, 0, 0 },			/* 331 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 332 = filler */
+	    sys_nosys, 0, 0 },			/* 332 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 333 = filler */
+	    sys_nosys, 0, 0 },			/* 333 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 334 = filler */
+	    sys_nosys, 0, 0 },			/* 334 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 335 = filler */
+	    sys_nosys, 0, 0 },			/* 335 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 336 = filler */
+	    sys_nosys, 0, 0 },			/* 336 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 337 = filler */
+	    sys_nosys, 0, 0 },			/* 337 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 338 = filler */
+	    sys_nosys, 0, 0 },			/* 338 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 339 = filler */
+	    sys_nosys, 0, 0 },			/* 339 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 340 = filler */
+	    sys_nosys, 0, 0 },			/* 340 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 341 = filler */
+	    sys_nosys, 0, 0 },			/* 341 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 342 = filler */
+	    sys_nosys, 0, 0 },			/* 342 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 343 = filler */
+	    sys_nosys, 0, 0 },			/* 343 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 344 = filler */
+	    sys_nosys, 0, 0 },			/* 344 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 345 = filler */
+	    sys_nosys, 0, 0 },			/* 345 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 346 = filler */
+	    sys_nosys, 0, 0 },			/* 346 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 347 = filler */
+	    sys_nosys, 0, 0 },			/* 347 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 348 = filler */
+	    sys_nosys, 0, 0 },			/* 348 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 349 = filler */
+	    sys_nosys, 0, 0 },			/* 349 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 350 = filler */
+	    sys_nosys, 0, 0 },			/* 350 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 351 = filler */
+	    sys_nosys, 0, 0 },			/* 351 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 352 = filler */
+	    sys_nosys, 0, 0 },			/* 352 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 353 = filler */
+	    sys_nosys, 0, 0 },			/* 353 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 354 = filler */
+	    sys_nosys, 0, 0 },			/* 354 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 355 = filler */
+	    sys_nosys, 0, 0 },			/* 355 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 356 = filler */
+	    sys_nosys, 0, 0 },			/* 356 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 357 = filler */
+	    sys_nosys, 0, 0 },			/* 357 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 358 = filler */
+	    sys_nosys, 0, 0 },			/* 358 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 359 = filler */
+	    sys_nosys, 0, 0 },			/* 359 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 360 = filler */
+	    sys_nosys, 0, 0 },			/* 360 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 361 = filler */
+	    sys_nosys, 0, 0 },			/* 361 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 362 = filler */
+	    sys_nosys, 0, 0 },			/* 362 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 363 = filler */
+	    sys_nosys, 0, 0 },			/* 363 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 364 = filler */
+	    sys_nosys, 0, 0 },			/* 364 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 365 = filler */
+	    sys_nosys, 0, 0 },			/* 365 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 366 = filler */
+	    sys_nosys, 0, 0 },			/* 366 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 367 = filler */
+	    sys_nosys, 0, 0 },			/* 367 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 368 = filler */
+	    sys_nosys, 0, 0 },			/* 368 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 369 = filler */
+	    sys_nosys, 0, 0 },			/* 369 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 370 = filler */
+	    sys_nosys, 0, 0 },			/* 370 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 371 = filler */
+	    sys_nosys, 0, 0 },			/* 371 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 372 = filler */
+	    sys_nosys, 0, 0 },			/* 372 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 373 = filler */
+	    sys_nosys, 0, 0 },			/* 373 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 374 = filler */
+	    sys_nosys, 0, 0 },			/* 374 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 375 = filler */
+	    sys_nosys, 0, 0 },			/* 375 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 376 = filler */
+	    sys_nosys, 0, 0 },			/* 376 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 377 = filler */
+	    sys_nosys, 0, 0 },			/* 377 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 378 = filler */
+	    sys_nosys, 0, 0 },			/* 378 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 379 = filler */
+	    sys_nosys, 0, 0 },			/* 379 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 380 = filler */
+	    sys_nosys, 0, 0 },			/* 380 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 381 = filler */
+	    sys_nosys, 0, 0 },			/* 381 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 382 = filler */
+	    sys_nosys, 0, 0 },			/* 382 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 383 = filler */
+	    sys_nosys, 0, 0 },			/* 383 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 384 = filler */
+	    sys_nosys, 0, 0 },			/* 384 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 385 = filler */
+	    sys_nosys, 0, 0 },			/* 385 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 386 = filler */
+	    sys_nosys, 0, 0 },			/* 386 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 387 = filler */
+	    sys_nosys, 0, 0 },			/* 387 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 388 = filler */
+	    sys_nosys, 0, 0 },			/* 388 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 389 = filler */
+	    sys_nosys, 0, 0 },			/* 389 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 390 = filler */
+	    sys_nosys, 0, 0 },			/* 390 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 391 = filler */
+	    sys_nosys, 0, 0 },			/* 391 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 392 = filler */
+	    sys_nosys, 0, 0 },			/* 392 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 393 = filler */
+	    sys_nosys, 0, 0 },			/* 393 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 394 = filler */
+	    sys_nosys, 0, 0 },			/* 394 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 395 = filler */
+	    sys_nosys, 0, 0 },			/* 395 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 396 = filler */
+	    sys_nosys, 0, 0 },			/* 396 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 397 = filler */
+	    sys_nosys, 0, 0 },			/* 397 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 398 = filler */
+	    sys_nosys, 0, 0 },			/* 398 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 399 = filler */
+	    sys_nosys, 0, 0 },			/* 399 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 400 = filler */
+	    sys_nosys, 0, 0 },			/* 400 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 401 = filler */
+	    sys_nosys, 0, 0 },			/* 401 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 402 = filler */
+	    sys_nosys, 0, 0 },			/* 402 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 403 = filler */
+	    sys_nosys, 0, 0 },			/* 403 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 404 = filler */
+	    sys_nosys, 0, 0 },			/* 404 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 405 = filler */
+	    sys_nosys, 0, 0 },			/* 405 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 406 = filler */
+	    sys_nosys, 0, 0 },			/* 406 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 407 = filler */
+	    sys_nosys, 0, 0 },			/* 407 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 408 = filler */
+	    sys_nosys, 0, 0 },			/* 408 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 409 = filler */
+	    sys_nosys, 0, 0 },			/* 409 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 410 = filler */
+	    sys_nosys, 0, 0 },			/* 410 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 411 = filler */
+	    sys_nosys, 0, 0 },			/* 411 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 412 = filler */
+	    sys_nosys, 0, 0 },			/* 412 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 413 = filler */
+	    sys_nosys, 0, 0 },			/* 413 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 414 = filler */
+	    sys_nosys, 0, 0 },			/* 414 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 415 = filler */
+	    sys_nosys, 0, 0 },			/* 415 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 416 = filler */
+	    sys_nosys, 0, 0 },			/* 416 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 417 = filler */
+	    sys_nosys, 0, 0 },			/* 417 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 418 = filler */
+	    sys_nosys, 0, 0 },			/* 418 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 419 = filler */
+	    sys_nosys, 0, 0 },			/* 419 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 420 = filler */
+	    sys_nosys, 0, 0 },			/* 420 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 421 = filler */
+	    sys_nosys, 0, 0 },			/* 421 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 422 = filler */
+	    sys_nosys, 0, 0 },			/* 422 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 423 = filler */
+	    sys_nosys, 0, 0 },			/* 423 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 424 = filler */
+	    sys_nosys, 0, 0 },			/* 424 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 425 = filler */
+	    sys_nosys, 0, 0 },			/* 425 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 426 = filler */
+	    sys_nosys, 0, 0 },			/* 426 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 427 = filler */
+	    sys_nosys, 0, 0 },			/* 427 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 428 = filler */
+	    sys_nosys, 0, 0 },			/* 428 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 429 = filler */
+	    sys_nosys, 0, 0 },			/* 429 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 430 = filler */
+	    sys_nosys, 0, 0 },			/* 430 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 431 = filler */
+	    sys_nosys, 0, 0 },			/* 431 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 432 = filler */
+	    sys_nosys, 0, 0 },			/* 432 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 433 = filler */
+	    sys_nosys, 0, 0 },			/* 433 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 434 = filler */
+	    sys_nosys, 0, 0 },			/* 434 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 435 = filler */
+	    sys_nosys, 0, 0 },			/* 435 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 436 = filler */
+	    sys_nosys, 0, 0 },			/* 436 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 437 = filler */
+	    sys_nosys, 0, 0 },			/* 437 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 438 = filler */
+	    sys_nosys, 0, 0 },			/* 438 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 439 = filler */
+	    sys_nosys, 0, 0 },			/* 439 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 440 = filler */
+	    sys_nosys, 0, 0 },			/* 440 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 441 = filler */
+	    sys_nosys, 0, 0 },			/* 441 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 442 = filler */
+	    sys_nosys, 0, 0 },			/* 442 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 443 = filler */
+	    sys_nosys, 0, 0 },			/* 443 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 444 = filler */
+	    sys_nosys, 0, 0 },			/* 444 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 445 = filler */
+	    sys_nosys, 0, 0 },			/* 445 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 446 = filler */
+	    sys_nosys, 0, 0 },			/* 446 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 447 = filler */
+	    sys_nosys, 0, 0 },			/* 447 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 448 = filler */
+	    sys_nosys, 0, 0 },			/* 448 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 449 = filler */
+	    sys_nosys, 0, 0 },			/* 449 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 450 = filler */
+	    sys_nosys, 0, 0 },			/* 450 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 451 = filler */
+	    sys_nosys, 0, 0 },			/* 451 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 452 = filler */
+	    sys_nosys, 0, 0 },			/* 452 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 453 = filler */
+	    sys_nosys, 0, 0 },			/* 453 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 454 = filler */
+	    sys_nosys, 0, 0 },			/* 454 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 455 = filler */
+	    sys_nosys, 0, 0 },			/* 455 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 456 = filler */
+	    sys_nosys, 0, 0 },			/* 456 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 457 = filler */
+	    sys_nosys, 0, 0 },			/* 457 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 458 = filler */
+	    sys_nosys, 0, 0 },			/* 458 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 459 = filler */
+	    sys_nosys, 0, 0 },			/* 459 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 460 = filler */
+	    sys_nosys, 0, 0 },			/* 460 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 461 = filler */
+	    sys_nosys, 0, 0 },			/* 461 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 462 = filler */
+	    sys_nosys, 0, 0 },			/* 462 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 463 = filler */
+	    sys_nosys, 0, 0 },			/* 463 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 464 = filler */
+	    sys_nosys, 0, 0 },			/* 464 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 465 = filler */
+	    sys_nosys, 0, 0 },			/* 465 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 466 = filler */
+	    sys_nosys, 0, 0 },			/* 466 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 467 = filler */
+	    sys_nosys, 0, 0 },			/* 467 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 468 = filler */
+	    sys_nosys, 0, 0 },			/* 468 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 469 = filler */
+	    sys_nosys, 0, 0 },			/* 469 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 470 = filler */
+	    sys_nosys, 0, 0 },			/* 470 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 471 = filler */
+	    sys_nosys, 0, 0 },			/* 471 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 472 = filler */
+	    sys_nosys, 0, 0 },			/* 472 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 473 = filler */
+	    sys_nosys, 0, 0 },			/* 473 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 474 = filler */
+	    sys_nosys, 0, 0 },			/* 474 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 475 = filler */
+	    sys_nosys, 0, 0 },			/* 475 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 476 = filler */
+	    sys_nosys, 0, 0 },			/* 476 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 477 = filler */
+	    sys_nosys, 0, 0 },			/* 477 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 478 = filler */
+	    sys_nosys, 0, 0 },			/* 478 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 479 = filler */
+	    sys_nosys, 0, 0 },			/* 479 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 480 = filler */
+	    sys_nosys, 0, 0 },			/* 480 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 481 = filler */
+	    sys_nosys, 0, 0 },			/* 481 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 482 = filler */
+	    sys_nosys, 0, 0 },			/* 482 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 483 = filler */
+	    sys_nosys, 0, 0 },			/* 483 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 484 = filler */
+	    sys_nosys, 0, 0 },			/* 484 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 485 = filler */
+	    sys_nosys, 0, 0 },			/* 485 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 486 = filler */
+	    sys_nosys, 0, 0 },			/* 486 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 487 = filler */
+	    sys_nosys, 0, 0 },			/* 487 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 488 = filler */
+	    sys_nosys, 0, 0 },			/* 488 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 489 = filler */
+	    sys_nosys, 0, 0 },			/* 489 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 490 = filler */
+	    sys_nosys, 0, 0 },			/* 490 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 491 = filler */
+	    sys_nosys, 0, 0 },			/* 491 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 492 = filler */
+	    sys_nosys, 0, 0 },			/* 492 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 493 = filler */
+	    sys_nosys, 0, 0 },			/* 493 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 494 = filler */
+	    sys_nosys, 0, 0 },			/* 494 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 495 = filler */
+	    sys_nosys, 0, 0 },			/* 495 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 496 = filler */
+	    sys_nosys, 0, 0 },			/* 496 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 497 = filler */
+	    sys_nosys, 0, 0 },			/* 497 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 498 = filler */
+	    sys_nosys, 0, 0 },			/* 498 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 499 = filler */
+	    sys_nosys, 0, 0 },			/* 499 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 500 = filler */
+	    sys_nosys, 0, 0 },			/* 500 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 501 = filler */
+	    sys_nosys, 0, 0 },			/* 501 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 502 = filler */
+	    sys_nosys, 0, 0 },			/* 502 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 503 = filler */
+	    sys_nosys, 0, 0 },			/* 503 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 504 = filler */
+	    sys_nosys, 0, 0 },			/* 504 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 505 = filler */
+	    sys_nosys, 0, 0 },			/* 505 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 506 = filler */
+	    sys_nosys, 0, 0 },			/* 506 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 507 = filler */
+	    sys_nosys, 0, 0 },			/* 507 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 508 = filler */
+	    sys_nosys, 0, 0 },			/* 508 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 509 = filler */
+	    sys_nosys, 0, 0 },			/* 509 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 510 = filler */
+	    sys_nosys, 0, 0 },			/* 510 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 511 = filler */
+	    sys_nosys, 0, 0 },			/* 511 = filler */
 };
diff --git a/sys/compat/freebsd/freebsd_syscall.h b/sys/compat/freebsd/freebsd_syscall.h
index 1fd864e..642c7e4 100644
--- a/sys/compat/freebsd/freebsd_syscall.h
+++ b/sys/compat/freebsd/freebsd_syscall.h
@@ -1,4 +1,4 @@
-/* $NetBSD: freebsd_syscall.h,v 1.79 2013/11/07 19:39:57 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
diff --git a/sys/compat/freebsd/freebsd_syscallargs.h b/sys/compat/freebsd/freebsd_syscallargs.h
index bfa7c64..abe6bef 100644
--- a/sys/compat/freebsd/freebsd_syscallargs.h
+++ b/sys/compat/freebsd/freebsd_syscallargs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: freebsd_syscallargs.h,v 1.82 2013/11/07 19:39:57 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
diff --git a/sys/compat/freebsd/freebsd_syscalls.c b/sys/compat/freebsd/freebsd_syscalls.c
index 610c6da..8be4323 100644
--- a/sys/compat/freebsd/freebsd_syscalls.c
+++ b/sys/compat/freebsd/freebsd_syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: freebsd_syscalls.c,v 1.79 2013/11/07 19:39:57 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: freebsd_syscalls.c,v 1.79 2013/11/07 19:39:57 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #if defined(_KERNEL_OPT)
@@ -26,6 +26,8 @@ __KERNEL_RCSID(0, "$NetBSD: freebsd_syscalls.c,v 1.79 2013/11/07 19:39:57 njoly
 #include <compat/sys/time.h>
 #include <compat/freebsd/freebsd_syscallargs.h>
 #include <machine/freebsd_machdep.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const freebsd_syscallnames[] = {
@@ -595,3 +597,573 @@ const char *const freebsd_syscallnames[] = {
 	/* 510 */	"# filler",
 	/* 511 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altfreebsd_syscallnames[] = {
+	/*   0 */	"nosys",
+	/*   1 */	NULL, /* exit */
+	/*   2 */	NULL, /* fork */
+	/*   3 */	NULL, /* read */
+	/*   4 */	NULL, /* write */
+	/*   5 */	NULL, /* open */
+	/*   6 */	NULL, /* close */
+	/*   7 */	NULL, /* wait4 */
+	/*   8 */	"creat",
+	/*   9 */	NULL, /* link */
+	/*  10 */	NULL, /* unlink */
+	/*  11 */	NULL, /* obsolete execv */
+	/*  12 */	NULL, /* chdir */
+	/*  13 */	NULL, /* fchdir */
+	/*  14 */	NULL, /* mknod */
+	/*  15 */	NULL, /* chmod */
+	/*  16 */	NULL, /* chown */
+	/*  17 */	"obreak",
+	/*  18 */	NULL, /* getfsstat */
+	/*  19 */	"lseek",
+	/*  20 */	NULL, /* getpid_with_ppid */
+	/*  21 */	NULL, /* mount */
+	/*  22 */	NULL, /* unmount */
+	/*  23 */	NULL, /* setuid */
+	/*  24 */	NULL, /* getuid_with_euid */
+	/*  25 */	NULL, /* geteuid */
+	/*  26 */	NULL, /* ptrace */
+	/*  27 */	NULL, /* recvmsg */
+	/*  28 */	NULL, /* sendmsg */
+	/*  29 */	NULL, /* recvfrom */
+	/*  30 */	NULL, /* accept */
+	/*  31 */	NULL, /* getpeername */
+	/*  32 */	NULL, /* getsockname */
+	/*  33 */	NULL, /* access */
+	/*  34 */	NULL, /* chflags */
+	/*  35 */	NULL, /* fchflags */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	NULL, /* kill */
+	/*  38 */	"stat",
+	/*  39 */	NULL, /* getppid */
+	/*  40 */	"lstat",
+	/*  41 */	NULL, /* dup */
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* getegid */
+	/*  44 */	NULL, /* profil */
+#ifdef KTRACE
+	/*  45 */	NULL, /* ktrace */
+#else
+	/*  45 */	NULL, /* excluded ktrace */
+#endif
+	/*  46 */	NULL, /* sigaction */
+	/*  47 */	NULL, /* getgid_with_egid */
+	/*  48 */	NULL, /* sigprocmask */
+	/*  49 */	NULL, /* __getlogin */
+	/*  50 */	NULL, /* __setlogin */
+	/*  51 */	NULL, /* acct */
+	/*  52 */	NULL, /* sigpending */
+	/*  53 */	NULL, /* sigaltstack */
+	/*  54 */	NULL, /* ioctl */
+	/*  55 */	"reboot",
+	/*  56 */	NULL, /* revoke */
+	/*  57 */	NULL, /* symlink */
+	/*  58 */	NULL, /* readlink */
+	/*  59 */	NULL, /* execve */
+	/*  60 */	NULL, /* umask */
+	/*  61 */	NULL, /* chroot */
+	/*  62 */	"fstat",
+	/*  63 */	"getkerninfo",
+	/*  64 */	"getpagesize",
+	/*  65 */	NULL, /* msync */
+	/*  66 */	NULL, /* vfork */
+	/*  67 */	NULL, /* obsolete vread */
+	/*  68 */	NULL, /* obsolete vwrite */
+	/*  69 */	NULL, /* sbrk */
+	/*  70 */	NULL, /* sstk */
+	/*  71 */	"mmap",
+	/*  72 */	"ovadvise",
+	/*  73 */	NULL, /* munmap */
+	/*  74 */	NULL, /* mprotect */
+	/*  75 */	NULL, /* madvise */
+	/*  76 */	NULL, /* obsolete vhangup */
+	/*  77 */	NULL, /* obsolete vlimit */
+	/*  78 */	NULL, /* mincore */
+	/*  79 */	NULL, /* getgroups */
+	/*  80 */	NULL, /* setgroups */
+	/*  81 */	NULL, /* getpgrp */
+	/*  82 */	NULL, /* setpgid */
+	/*  83 */	NULL, /* setitimer */
+	/*  84 */	"wait",
+	/*  85 */	NULL, /* swapon */
+	/*  86 */	NULL, /* getitimer */
+	/*  87 */	"gethostname",
+	/*  88 */	"sethostname",
+	/*  89 */	"getdtablesize",
+	/*  90 */	NULL, /* dup2 */
+	/*  91 */	NULL, /* unimplemented getdopt */
+	/*  92 */	NULL, /* fcntl */
+	/*  93 */	NULL, /* select */
+	/*  94 */	NULL, /* unimplemented setdopt */
+	/*  95 */	NULL, /* fsync */
+	/*  96 */	NULL, /* setpriority */
+	/*  97 */	NULL, /* socket */
+	/*  98 */	NULL, /* connect */
+	/*  99 */	"accept",
+	/* 100 */	NULL, /* getpriority */
+	/* 101 */	"send",
+	/* 102 */	"recv",
+	/* 103 */	NULL, /* sigreturn */
+	/* 104 */	NULL, /* bind */
+	/* 105 */	NULL, /* setsockopt */
+	/* 106 */	NULL, /* listen */
+	/* 107 */	NULL, /* obsolete vtimes */
+	/* 108 */	"sigvec",
+	/* 109 */	"sigblock",
+	/* 110 */	"sigsetmask",
+	/* 111 */	NULL, /* sigsuspend */
+	/* 112 */	"sigstack",
+	/* 113 */	"recvmsg",
+	/* 114 */	"sendmsg",
+#ifdef TRACE
+	/* 115 */	NULL, /* vtrace */
+#else
+	/* 115 */	NULL, /* obsolete vtrace */
+#endif
+	/* 116 */	NULL, /* gettimeofday */
+	/* 117 */	NULL, /* getrusage */
+	/* 118 */	NULL, /* getsockopt */
+	/* 119 */	NULL, /* obsolete resuba */
+	/* 120 */	NULL, /* readv */
+	/* 121 */	NULL, /* writev */
+	/* 122 */	NULL, /* settimeofday */
+	/* 123 */	NULL, /* fchown */
+	/* 124 */	NULL, /* fchmod */
+	/* 125 */	"recvfrom",
+	/* 126 */	NULL, /* setreuid */
+	/* 127 */	NULL, /* setregid */
+	/* 128 */	NULL, /* rename */
+	/* 129 */	"truncate",
+	/* 130 */	"ftruncate",
+	/* 131 */	NULL, /* flock */
+	/* 132 */	NULL, /* mkfifo */
+	/* 133 */	NULL, /* sendto */
+	/* 134 */	NULL, /* shutdown */
+	/* 135 */	NULL, /* socketpair */
+	/* 136 */	NULL, /* mkdir */
+	/* 137 */	NULL, /* rmdir */
+	/* 138 */	NULL, /* utimes */
+	/* 139 */	NULL, /* obsolete 4.2 sigreturn */
+	/* 140 */	NULL, /* adjtime */
+	/* 141 */	"getpeername",
+	/* 142 */	"gethostid",
+	/* 143 */	"sethostid",
+	/* 144 */	"getrlimit",
+	/* 145 */	"setrlimit",
+	/* 146 */	"killpg",
+	/* 147 */	NULL, /* setsid */
+	/* 148 */	NULL, /* quotactl */
+	/* 149 */	"quota",
+	/* 150 */	"getsockname",
+	/* 151 */	NULL, /* unimplemented sem_lock */
+	/* 152 */	NULL, /* unimplemented sem_wakeup */
+	/* 153 */	NULL, /* unimplemented asyncdaemon */
+	/* 154 */	NULL, /* unimplemented */
+	/* 155 */	NULL, /* unimplemented nfssvc */
+	/* 156 */	"getdirentries",
+	/* 157 */	NULL, /* statfs */
+	/* 158 */	NULL, /* fstatfs */
+	/* 159 */	NULL, /* unimplemented */
+	/* 160 */	NULL, /* unimplemented */
+	/* 161 */	NULL, /* getfh */
+	/* 162 */	NULL, /* getdomainname */
+	/* 163 */	NULL, /* setdomainname */
+	/* 164 */	NULL, /* uname */
+	/* 165 */	NULL, /* sysarch */
+	/* 166 */	NULL, /* rtprio */
+	/* 167 */	NULL, /* unimplemented */
+	/* 168 */	NULL, /* unimplemented */
+#if defined(SYSVSEM) && !defined(_LP64)
+	/* 169 */	NULL, /* semsys */
+#else
+	/* 169 */	NULL, /* unimplemented 1.0 semsys */
+#endif
+#if defined(SYSVMSG) && !defined(_LP64)
+	/* 170 */	NULL, /* msgsys */
+#else
+	/* 170 */	NULL, /* unimplemented 1.0 msgsys */
+#endif
+#if defined(SYSVSHM) && !defined(_LP64)
+	/* 171 */	NULL, /* shmsys */
+#else
+	/* 171 */	NULL, /* unimplemented 1.0 shmsys */
+#endif
+	/* 172 */	NULL, /* unimplemented */
+	/* 173 */	NULL, /* pread */
+	/* 174 */	NULL, /* pwrite */
+	/* 175 */	NULL, /* unimplemented */
+#ifdef NTP
+	/* 176 */	"ntp_adjtime",
+#else
+	/* 176 */	NULL, /* excluded ntp_adjtime */
+#endif
+	/* 177 */	NULL, /* unimplemented sfork */
+	/* 178 */	NULL, /* unimplemented getdescriptor */
+	/* 179 */	NULL, /* unimplemented setdescriptor */
+	/* 180 */	NULL, /* unimplemented */
+	/* 181 */	NULL, /* setgid */
+	/* 182 */	NULL, /* setegid */
+	/* 183 */	NULL, /* seteuid */
+	/* 184 */	NULL, /* unimplemented */
+	/* 185 */	NULL, /* unimplemented */
+	/* 186 */	NULL, /* unimplemented */
+	/* 187 */	NULL, /* unimplemented */
+	/* 188 */	NULL, /* stat */
+	/* 189 */	NULL, /* fstat */
+	/* 190 */	NULL, /* lstat */
+	/* 191 */	NULL, /* pathconf */
+	/* 192 */	NULL, /* fpathconf */
+	/* 193 */	NULL, /* unimplemented */
+	/* 194 */	NULL, /* getrlimit */
+	/* 195 */	NULL, /* setrlimit */
+	/* 196 */	NULL, /* getdirentries */
+	/* 197 */	NULL, /* mmap */
+	/* 198 */	"nosys",
+	/* 199 */	NULL, /* lseek */
+	/* 200 */	NULL, /* truncate */
+	/* 201 */	NULL, /* ftruncate */
+	/* 202 */	NULL, /* sysctl */
+	/* 203 */	NULL, /* mlock */
+	/* 204 */	NULL, /* munlock */
+#ifdef FREEBSD_BASED_ON_44LITE_R2
+	/* 205 */	NULL, /* undelete */
+#else
+	/* 205 */	NULL, /* unimplemented undelete */
+#endif
+	/* 206 */	NULL, /* futimes */
+	/* 207 */	NULL, /* getpgid */
+#if 0
+	/* 208 */	NULL, /* reboot */
+#else
+	/* 208 */	NULL, /* unimplemented newreboot */
+#endif
+	/* 209 */	NULL, /* poll */
+	/* 210 */	NULL, /* unimplemented */
+	/* 211 */	NULL, /* unimplemented */
+	/* 212 */	NULL, /* unimplemented */
+	/* 213 */	NULL, /* unimplemented */
+	/* 214 */	NULL, /* unimplemented */
+	/* 215 */	NULL, /* unimplemented */
+	/* 216 */	NULL, /* unimplemented */
+	/* 217 */	NULL, /* unimplemented */
+	/* 218 */	NULL, /* unimplemented */
+	/* 219 */	NULL, /* unimplemented */
+#ifdef SYSVSEM
+	/* 220 */	NULL, /* __semctl */
+	/* 221 */	NULL, /* semget */
+	/* 222 */	NULL, /* semop */
+	/* 223 */	NULL, /* semconfig */
+#else
+	/* 220 */	NULL, /* unimplemented semctl */
+	/* 221 */	NULL, /* unimplemented semget */
+	/* 222 */	NULL, /* unimplemented semop */
+	/* 223 */	NULL, /* unimplemented semconfig */
+#endif
+#ifdef SYSVMSG
+	/* 224 */	NULL, /* msgctl */
+	/* 225 */	NULL, /* msgget */
+	/* 226 */	NULL, /* msgsnd */
+	/* 227 */	NULL, /* msgrcv */
+#else
+	/* 224 */	NULL, /* unimplemented msgctl */
+	/* 225 */	NULL, /* unimplemented msgget */
+	/* 226 */	NULL, /* unimplemented msgsnd */
+	/* 227 */	NULL, /* unimplemented msgrcv */
+#endif
+#ifdef SYSVSHM
+	/* 228 */	NULL, /* shmat */
+	/* 229 */	NULL, /* shmctl */
+	/* 230 */	NULL, /* shmdt */
+	/* 231 */	NULL, /* shmget */
+#else
+	/* 228 */	NULL, /* unimplemented shmat */
+	/* 229 */	NULL, /* unimplemented shmctl */
+	/* 230 */	NULL, /* unimplemented shmdt */
+	/* 231 */	NULL, /* unimplemented shmget */
+#endif
+	/* 232 */	NULL, /* clock_gettime */
+	/* 233 */	NULL, /* clock_settime */
+	/* 234 */	NULL, /* clock_getres */
+	/* 235 */	NULL, /* unimplemented timer_create */
+	/* 236 */	NULL, /* unimplemented timer_delete */
+	/* 237 */	NULL, /* unimplemented timer_settime */
+	/* 238 */	NULL, /* unimplemented timer_gettime */
+	/* 239 */	NULL, /* unimplemented timer_getoverrun */
+	/* 240 */	NULL, /* nanosleep */
+	/* 241 */	NULL, /* unimplemented */
+	/* 242 */	NULL, /* unimplemented */
+	/* 243 */	NULL, /* unimplemented */
+	/* 244 */	NULL, /* unimplemented */
+	/* 245 */	NULL, /* unimplemented */
+	/* 246 */	NULL, /* unimplemented */
+	/* 247 */	NULL, /* unimplemented */
+	/* 248 */	NULL, /* unimplemented */
+	/* 249 */	NULL, /* unimplemented */
+	/* 250 */	NULL, /* minherit */
+	/* 251 */	NULL, /* rfork */
+	/* 252 */	NULL, /* unimplemented openbsd_poll */
+	/* 253 */	NULL, /* issetugid */
+	/* 254 */	NULL, /* lchown */
+	/* 255 */	NULL, /* unimplemented */
+	/* 256 */	NULL, /* unimplemented */
+	/* 257 */	NULL, /* unimplemented */
+	/* 258 */	NULL, /* unimplemented */
+	/* 259 */	NULL, /* unimplemented */
+	/* 260 */	NULL, /* unimplemented */
+	/* 261 */	NULL, /* unimplemented */
+	/* 262 */	NULL, /* unimplemented */
+	/* 263 */	NULL, /* unimplemented */
+	/* 264 */	NULL, /* unimplemented */
+	/* 265 */	NULL, /* unimplemented */
+	/* 266 */	NULL, /* unimplemented */
+	/* 267 */	NULL, /* unimplemented */
+	/* 268 */	NULL, /* unimplemented */
+	/* 269 */	NULL, /* unimplemented */
+	/* 270 */	NULL, /* unimplemented */
+	/* 271 */	NULL, /* unimplemented */
+	/* 272 */	NULL, /* getdents */
+	/* 273 */	NULL, /* unimplemented */
+	/* 274 */	NULL, /* lchmod */
+	/* 275 */	"lchown",
+	/* 276 */	NULL, /* lutimes */
+	/* 277 */	"msync",
+	/* 278 */	"stat",
+	/* 279 */	"fstat",
+	/* 280 */	"lstat",
+	/* 281 */	NULL, /* unimplemented */
+	/* 282 */	NULL, /* unimplemented */
+	/* 283 */	NULL, /* unimplemented */
+	/* 284 */	NULL, /* unimplemented */
+	/* 285 */	NULL, /* unimplemented */
+	/* 286 */	NULL, /* unimplemented */
+	/* 287 */	NULL, /* unimplemented */
+	/* 288 */	NULL, /* unimplemented */
+	/* 289 */	NULL, /* unimplemented */
+	/* 290 */	NULL, /* unimplemented */
+	/* 291 */	NULL, /* unimplemented */
+	/* 292 */	NULL, /* unimplemented */
+	/* 293 */	NULL, /* unimplemented */
+	/* 294 */	NULL, /* unimplemented */
+	/* 295 */	NULL, /* unimplemented */
+	/* 296 */	NULL, /* unimplemented */
+	/* 297 */	NULL, /* fhstatfs */
+	/* 298 */	NULL, /* fhopen */
+	/* 299 */	NULL, /* fhstat */
+	/* 300 */	NULL, /* unimplemented modnext */
+	/* 301 */	NULL, /* unimplemented modstat */
+	/* 302 */	NULL, /* unimplemented modfnext */
+	/* 303 */	NULL, /* unimplemented modfind */
+	/* 304 */	NULL, /* unimplemented kldload */
+	/* 305 */	NULL, /* unimplemented kldunload */
+	/* 306 */	NULL, /* unimplemented kldfind */
+	/* 307 */	NULL, /* unimplemented kldnext */
+	/* 308 */	NULL, /* unimplemented kldstat */
+	/* 309 */	NULL, /* unimplemented kldfirstmod */
+	/* 310 */	NULL, /* getsid */
+	/* 311 */	NULL, /* unimplemented setresuid */
+	/* 312 */	NULL, /* unimplemented setresgid */
+	/* 313 */	NULL, /* unimplemented signanosleep */
+	/* 314 */	NULL, /* unimplemented aio_return */
+	/* 315 */	NULL, /* unimplemented aio_suspend */
+	/* 316 */	NULL, /* unimplemented aio_cancel */
+	/* 317 */	NULL, /* unimplemented aio_error */
+	/* 318 */	NULL, /* unimplemented aio_read */
+	/* 319 */	NULL, /* unimplemented aio_write */
+	/* 320 */	NULL, /* unimplemented lio_listio */
+	/* 321 */	NULL, /* yield */
+	/* 322 */	NULL, /* unimplemented thr_sleep */
+	/* 323 */	NULL, /* unimplemented thr_wakeup */
+	/* 324 */	NULL, /* mlockall */
+	/* 325 */	NULL, /* munlockall */
+	/* 326 */	NULL, /* __getcwd */
+	/* 327 */	NULL, /* sched_setparam */
+	/* 328 */	NULL, /* sched_getparam */
+	/* 329 */	NULL, /* sched_setscheduler */
+	/* 330 */	NULL, /* sched_getscheduler */
+	/* 331 */	NULL, /* sched_yield */
+	/* 332 */	NULL, /* sched_get_priority_max */
+	/* 333 */	NULL, /* sched_get_priority_min */
+	/* 334 */	NULL, /* unimplemented sched_rr_get_interval */
+	/* 335 */	NULL, /* utrace */
+	/* 336 */	NULL, /* unimplemented sendfile */
+	/* 337 */	NULL, /* unimplemented kldsym */
+	/* 338 */	NULL, /* unimplemented jail */
+	/* 339 */	NULL, /* unimplemented pioctl */
+	/* 340 */	"sigprocmask",
+	/* 341 */	"sigsuspend",
+	/* 342 */	NULL, /* sigaction4 */
+	/* 343 */	"sigpending",
+	/* 344 */	NULL, /* unimplemented 4.0 sigreturn */
+	/* 345 */	NULL, /* unimplemented sigtimedwait */
+	/* 346 */	NULL, /* unimplemented sigwaitinfo */
+	/* 347 */	NULL, /* unimplemented __acl_get_file */
+	/* 348 */	NULL, /* unimplemented __acl_set_file */
+	/* 349 */	NULL, /* unimplemented __acl_get_fd */
+	/* 350 */	NULL, /* unimplemented __acl_set_fd */
+	/* 351 */	NULL, /* unimplemented __acl_delete_file */
+	/* 352 */	NULL, /* unimplemented __acl_delete_fd */
+	/* 353 */	NULL, /* unimplemented __acl_aclcheck_file */
+	/* 354 */	NULL, /* unimplemented __acl_aclcheck_fd */
+	/* 355 */	NULL, /* unimplemented extattrctl */
+	/* 356 */	NULL, /* unimplemented extattr_set_file */
+	/* 357 */	NULL, /* unimplemented extattr_get_file */
+	/* 358 */	NULL, /* unimplemented extattr_delete_file */
+	/* 359 */	NULL, /* unimplemented aio_waitcomplete */
+	/* 360 */	NULL, /* unimplemented getresuid */
+	/* 361 */	NULL, /* unimplemented getresgid */
+	/* 362 */	NULL, /* unimplemented kqueue */
+	/* 363 */	NULL, /* unimplemented kevent */
+	/* 364 */	NULL, /* unimplemented __cap_get_proc */
+	/* 365 */	NULL, /* unimplemented __cap_set_proc */
+	/* 366 */	NULL, /* unimplemented __cap_get_fd */
+	/* 367 */	NULL, /* unimplemented __cap_get_file */
+	/* 368 */	NULL, /* unimplemented __cap_set_fd */
+	/* 369 */	NULL, /* unimplemented __cap_set_file */
+	/* 370 */	NULL, /* unimplemented lkmressym */
+	/* 371 */	NULL, /* unimplemented extattr_set_fd */
+	/* 372 */	NULL, /* unimplemented extattr_get_fd */
+	/* 373 */	NULL, /* unimplemented extattr_delete_fd */
+	/* 374 */	NULL, /* unimplemented __setugid */
+	/* 375 */	NULL, /* unimplemented nfsclnt */
+	/* 376 */	NULL, /* unimplemented eaccess */
+	/* 377 */	NULL, /* unimplemented afs_syscall */
+	/* 378 */	NULL, /* unimplemented nmount */
+	/* 379 */	NULL, /* unimplemented kse_exit */
+	/* 380 */	NULL, /* unimplemented kse_wakeup */
+	/* 381 */	NULL, /* unimplemented kse_create */
+	/* 382 */	NULL, /* unimplemented kse_thr_interrupt */
+	/* 383 */	NULL, /* unimplemented kse_release */
+	/* 384 */	NULL, /* unimplemented __mac_get_proc */
+	/* 385 */	NULL, /* unimplemented __mac_set_proc */
+	/* 386 */	NULL, /* unimplemented __mac_get_fd */
+	/* 387 */	NULL, /* unimplemented __mac_get_file */
+	/* 388 */	NULL, /* unimplemented __mac_set_fd */
+	/* 389 */	NULL, /* unimplemented __mac_set_file */
+	/* 390 */	NULL, /* unimplemented kenv */
+	/* 391 */	NULL, /* lchflags */
+	/* 392 */	NULL, /* uuidgen */
+	/* 393 */	NULL, /* unimplemented sendfile */
+	/* 394 */	NULL, /* unimplemented mac_syscall */
+	/* 395 */	NULL, /* unimplemented getfsstat */
+	/* 396 */	NULL, /* unimplemented statfs */
+	/* 397 */	NULL, /* unimplemented fsstatfs */
+	/* 398 */	NULL, /* unimplemented fhstatfs */
+	/* 399 */	NULL, /* unimplemented nosys */
+	/* 400 */	NULL, /* _ksem_close */
+	/* 401 */	NULL, /* _ksem_post */
+	/* 402 */	NULL, /* _ksem_wait */
+	/* 403 */	NULL, /* _ksem_trywait */
+	/* 404 */	NULL, /* unimplemented ksem_init */
+	/* 405 */	NULL, /* unimplemented ksem_open */
+	/* 406 */	NULL, /* _ksem_unlink */
+	/* 407 */	NULL, /* _ksem_getvalue */
+	/* 408 */	NULL, /* _ksem_destroy */
+	/* 409 */	NULL, /* unimplemented __mac_get_pid */
+	/* 410 */	NULL, /* unimplemented __mac_get_link */
+	/* 411 */	NULL, /* unimplemented __mac_set_link */
+	/* 412 */	NULL, /* unimplemented extattr_set_link */
+	/* 413 */	NULL, /* unimplemented extattr_get_link */
+	/* 414 */	NULL, /* unimplemented extattr_delete_link */
+	/* 415 */	NULL, /* unimplemented __mac_execve */
+	/* 416 */	NULL, /* unimplemented sigaction */
+	/* 417 */	NULL, /* unimplemented sigreturn */
+	/* 418 */	NULL, /* unimplemented __xstat */
+	/* 419 */	NULL, /* unimplemented __xfstat */
+	/* 420 */	NULL, /* unimplemented __xlstat */
+	/* 421 */	NULL, /* unimplemented getcontext */
+	/* 422 */	NULL, /* unimplemented setcontext */
+	/* 423 */	NULL, /* unimplemented swapcontext */
+	/* 424 */	NULL, /* unimplemented swapoff */
+	/* 425 */	NULL, /* unimplemented __acl_get_link */
+	/* 426 */	NULL, /* unimplemented __acl_set_link */
+	/* 427 */	NULL, /* unimplemented __acl_delete_link */
+	/* 428 */	NULL, /* unimplemented __acl_aclcheck_link */
+	/* 429 */	NULL, /* unimplemented sigwait */
+	/* 430 */	NULL, /* unimplemented thr_create */
+	/* 431 */	NULL, /* unimplemented thr_exit */
+	/* 432 */	NULL, /* unimplemented thr_self */
+	/* 433 */	NULL, /* unimplemented thr_kill */
+	/* 434 */	NULL, /* unimplemented _umtx_lock */
+	/* 435 */	NULL, /* unimplemented _umtx_unlock */
+	/* 436 */	NULL, /* unimplemented jail_attach */
+	/* 437 */	NULL, /* unimplemented extattr_list_fd */
+	/* 438 */	NULL, /* unimplemented extattr_list_file */
+	/* 439 */	NULL, /* unimplemented extattr_list_link */
+	/* 440 */	NULL, /* filler */
+	/* 441 */	NULL, /* filler */
+	/* 442 */	NULL, /* filler */
+	/* 443 */	NULL, /* filler */
+	/* 444 */	NULL, /* filler */
+	/* 445 */	NULL, /* filler */
+	/* 446 */	NULL, /* filler */
+	/* 447 */	NULL, /* filler */
+	/* 448 */	NULL, /* filler */
+	/* 449 */	NULL, /* filler */
+	/* 450 */	NULL, /* filler */
+	/* 451 */	NULL, /* filler */
+	/* 452 */	NULL, /* filler */
+	/* 453 */	NULL, /* filler */
+	/* 454 */	NULL, /* filler */
+	/* 455 */	NULL, /* filler */
+	/* 456 */	NULL, /* filler */
+	/* 457 */	NULL, /* filler */
+	/* 458 */	NULL, /* filler */
+	/* 459 */	NULL, /* filler */
+	/* 460 */	NULL, /* filler */
+	/* 461 */	NULL, /* filler */
+	/* 462 */	NULL, /* filler */
+	/* 463 */	NULL, /* filler */
+	/* 464 */	NULL, /* filler */
+	/* 465 */	NULL, /* filler */
+	/* 466 */	NULL, /* filler */
+	/* 467 */	NULL, /* filler */
+	/* 468 */	NULL, /* filler */
+	/* 469 */	NULL, /* filler */
+	/* 470 */	NULL, /* filler */
+	/* 471 */	NULL, /* filler */
+	/* 472 */	NULL, /* filler */
+	/* 473 */	NULL, /* filler */
+	/* 474 */	NULL, /* filler */
+	/* 475 */	NULL, /* filler */
+	/* 476 */	NULL, /* filler */
+	/* 477 */	NULL, /* filler */
+	/* 478 */	NULL, /* filler */
+	/* 479 */	NULL, /* filler */
+	/* 480 */	NULL, /* filler */
+	/* 481 */	NULL, /* filler */
+	/* 482 */	NULL, /* filler */
+	/* 483 */	NULL, /* filler */
+	/* 484 */	NULL, /* filler */
+	/* 485 */	NULL, /* filler */
+	/* 486 */	NULL, /* filler */
+	/* 487 */	NULL, /* filler */
+	/* 488 */	NULL, /* filler */
+	/* 489 */	NULL, /* filler */
+	/* 490 */	NULL, /* filler */
+	/* 491 */	NULL, /* filler */
+	/* 492 */	NULL, /* filler */
+	/* 493 */	NULL, /* filler */
+	/* 494 */	NULL, /* filler */
+	/* 495 */	NULL, /* filler */
+	/* 496 */	NULL, /* filler */
+	/* 497 */	NULL, /* filler */
+	/* 498 */	NULL, /* filler */
+	/* 499 */	NULL, /* filler */
+	/* 500 */	NULL, /* filler */
+	/* 501 */	NULL, /* filler */
+	/* 502 */	NULL, /* filler */
+	/* 503 */	NULL, /* filler */
+	/* 504 */	NULL, /* filler */
+	/* 505 */	NULL, /* filler */
+	/* 506 */	NULL, /* filler */
+	/* 507 */	NULL, /* filler */
+	/* 508 */	NULL, /* filler */
+	/* 509 */	NULL, /* filler */
+	/* 510 */	NULL, /* filler */
+	/* 511 */	NULL, /* filler */
+};
diff --git a/sys/compat/freebsd/freebsd_sysent.c b/sys/compat/freebsd/freebsd_sysent.c
index 025fdc38..0059be5 100644
--- a/sys/compat/freebsd/freebsd_sysent.c
+++ b/sys/compat/freebsd/freebsd_sysent.c
@@ -1,4 +1,4 @@
-/* $NetBSD: freebsd_sysent.c,v 1.81 2013/11/07 19:39:57 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: freebsd_sysent.c,v 1.81 2013/11/07 19:39:57 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ktrace.h"
@@ -32,1100 +32,1100 @@ __KERNEL_RCSID(0, "$NetBSD: freebsd_sysent.c,v 1.81 2013/11/07 19:39:57 njoly Ex
 
 struct sysent freebsd_sysent[] = {
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_nosys },		/* 0 = syscall */
+	    (sy_call_t *)sys_nosys, 0, 0 },		/* 0 = syscall */
 	{ ns(struct sys_exit_args), 0,
-	    (sy_call_t *)sys_exit },		/* 1 = exit */
+	    (sy_call_t *)sys_exit, 0, 0 },		/* 1 = exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct sys_read_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_read },		/* 3 = read */
+	    (sy_call_t *)sys_read, 0, 0 },		/* 3 = read */
 	{ ns(struct sys_write_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_write },		/* 4 = write */
+	    (sy_call_t *)sys_write, 0, 0 },		/* 4 = write */
 	{ ns(struct sys_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_open },		/* 5 = open */
+	    (sy_call_t *)sys_open, 0, 0 },		/* 5 = open */
 	{ ns(struct sys_close_args), 0,
-	    (sy_call_t *)sys_close },		/* 6 = close */
+	    (sy_call_t *)sys_close, 0, 0 },		/* 6 = close */
 	{ ns(struct compat_50_sys_wait4_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_wait4 },	/* 7 = wait4 */
+	    (sy_call_t *)compat_50_sys_wait4, 0, 0 },	/* 7 = wait4 */
 	{ ns(struct compat_43_sys_creat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_creat },	/* 8 = ocreat */
+	    (sy_call_t *)compat_43_sys_creat, 0, 0 },	/* 8 = ocreat */
 	{ ns(struct sys_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_link },		/* 9 = link */
+	    (sy_call_t *)sys_link, 0, 0 },		/* 9 = link */
 	{ ns(struct sys_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_unlink },		/* 10 = unlink */
+	    (sy_call_t *)sys_unlink, 0, 0 },		/* 10 = unlink */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 11 = obsolete execv */
+	    sys_nosys, 0, 0 },			/* 11 = obsolete execv */
 	{ ns(struct sys_chdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chdir },		/* 12 = chdir */
+	    (sy_call_t *)sys_chdir, 0, 0 },		/* 12 = chdir */
 	{ ns(struct sys_fchdir_args), 0,
-	    (sy_call_t *)sys_fchdir },		/* 13 = fchdir */
+	    (sy_call_t *)sys_fchdir, 0, 0 },		/* 13 = fchdir */
 	{ ns(struct compat_50_sys_mknod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_mknod },	/* 14 = mknod */
+	    (sy_call_t *)compat_50_sys_mknod, 0, 0 },	/* 14 = mknod */
 	{ ns(struct sys_chmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chmod },		/* 15 = chmod */
+	    (sy_call_t *)sys_chmod, 0, 0 },		/* 15 = chmod */
 	{ ns(struct sys_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chown },		/* 16 = chown */
+	    (sy_call_t *)sys_chown, 0, 0 },		/* 16 = chown */
 	{ ns(struct sys_obreak_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_obreak },		/* 17 = break */
+	    (sy_call_t *)sys_obreak, 0, 0 },		/* 17 = break */
 	{ ns(struct compat_20_sys_getfsstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_20_sys_getfsstat },/* 18 = getfsstat */
+	    (sy_call_t *)compat_20_sys_getfsstat, 0, 0 },/* 18 = getfsstat */
 	{ ns(struct compat_43_sys_lseek_args), 0,
-	    (sy_call_t *)compat_43_sys_lseek },	/* 19 = olseek */
+	    (sy_call_t *)compat_43_sys_lseek, 0, 0 },	/* 19 = olseek */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid_with_ppid },/* 20 = getpid_with_ppid */
+	    (sy_call_t *)sys_getpid_with_ppid, 0, 0 },/* 20 = getpid_with_ppid */
 	{ ns(struct freebsd_sys_mount_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)freebsd_sys_mount },	/* 21 = mount */
+	    (sy_call_t *)freebsd_sys_mount, 0, 0 },	/* 21 = mount */
 	{ ns(struct sys_unmount_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_unmount },		/* 22 = unmount */
+	    (sy_call_t *)sys_unmount, 0, 0 },		/* 22 = unmount */
 	{ ns(struct sys_setuid_args), 0,
-	    (sy_call_t *)sys_setuid },		/* 23 = setuid */
+	    (sy_call_t *)sys_setuid, 0, 0 },		/* 23 = setuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid_with_euid },/* 24 = getuid_with_euid */
+	    (sy_call_t *)sys_getuid_with_euid, 0, 0 },/* 24 = getuid_with_euid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_geteuid },		/* 25 = geteuid */
+	    (sy_call_t *)sys_geteuid, 0, 0 },		/* 25 = geteuid */
 	{ ns(struct freebsd_sys_ptrace_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)freebsd_sys_ptrace },	/* 26 = ptrace */
+	    (sy_call_t *)freebsd_sys_ptrace, 0, 0 },	/* 26 = ptrace */
 	{ ns(struct sys_recvmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_recvmsg },		/* 27 = recvmsg */
+	    (sy_call_t *)sys_recvmsg, 0, 0 },		/* 27 = recvmsg */
 	{ ns(struct sys_sendmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_sendmsg },		/* 28 = sendmsg */
+	    (sy_call_t *)sys_sendmsg, 0, 0 },		/* 28 = sendmsg */
 	{ ns(struct sys_recvfrom_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_recvfrom },	/* 29 = recvfrom */
+	    (sy_call_t *)sys_recvfrom, 0, 0 },	/* 29 = recvfrom */
 	{ ns(struct sys_accept_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_accept },		/* 30 = accept */
+	    (sy_call_t *)sys_accept, 0, 0 },		/* 30 = accept */
 	{ ns(struct sys_getpeername_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getpeername },	/* 31 = getpeername */
+	    (sy_call_t *)sys_getpeername, 0, 0 },	/* 31 = getpeername */
 	{ ns(struct sys_getsockname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getsockname },	/* 32 = getsockname */
+	    (sy_call_t *)sys_getsockname, 0, 0 },	/* 32 = getsockname */
 	{ ns(struct sys_access_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_access },		/* 33 = access */
+	    (sy_call_t *)sys_access, 0, 0 },		/* 33 = access */
 	{ ns(struct sys_chflags_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chflags },		/* 34 = chflags */
+	    (sy_call_t *)sys_chflags, 0, 0 },		/* 34 = chflags */
 	{ ns(struct sys_fchflags_args), 0,
-	    (sy_call_t *)sys_fchflags },	/* 35 = fchflags */
+	    (sy_call_t *)sys_fchflags, 0, 0 },	/* 35 = fchflags */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct sys_kill_args), 0,
-	    (sy_call_t *)sys_kill },		/* 37 = kill */
+	    (sy_call_t *)sys_kill, 0, 0 },		/* 37 = kill */
 	{ ns(struct compat_43_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_stat },	/* 38 = stat43 */
+	    (sy_call_t *)compat_43_sys_stat, 0, 0 },	/* 38 = stat43 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getppid },		/* 39 = getppid */
+	    (sy_call_t *)sys_getppid, 0, 0 },		/* 39 = getppid */
 	{ ns(struct compat_43_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_lstat },	/* 40 = lstat43 */
+	    (sy_call_t *)compat_43_sys_lstat, 0, 0 },	/* 40 = lstat43 */
 	{ ns(struct sys_dup_args), 0,
-	    (sy_call_t *)sys_dup },		/* 41 = dup */
+	    (sy_call_t *)sys_dup, 0, 0 },		/* 41 = dup */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_pipe },		/* 42 = pipe */
+	    (sy_call_t *)sys_pipe, 0, 0 },		/* 42 = pipe */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getegid },		/* 43 = getegid */
+	    (sy_call_t *)sys_getegid, 0, 0 },		/* 43 = getegid */
 	{ ns(struct sys_profil_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_profil },		/* 44 = profil */
+	    (sy_call_t *)sys_profil, 0, 0 },		/* 44 = profil */
 #ifdef KTRACE
 	{ ns(struct sys_ktrace_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_ktrace },		/* 45 = ktrace */
+	    (sy_call_t *)sys_ktrace, 0, 0 },		/* 45 = ktrace */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 45 = excluded ktrace */
+	    sys_nosys, 0, 0 },			/* 45 = excluded ktrace */
 #endif
 	{ ns(struct compat_13_sys_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_13_sys_sigaction },/* 46 = sigaction */
+	    (sy_call_t *)compat_13_sys_sigaction, 0, 0 },/* 46 = sigaction */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid_with_egid },/* 47 = getgid_with_egid */
+	    (sy_call_t *)sys_getgid_with_egid, 0, 0 },/* 47 = getgid_with_egid */
 	{ ns(struct compat_13_sys_sigprocmask_args), 0,
-	    (sy_call_t *)compat_13_sys_sigprocmask },/* 48 = sigprocmask */
+	    (sy_call_t *)compat_13_sys_sigprocmask, 0, 0 },/* 48 = sigprocmask */
 	{ ns(struct sys___getlogin_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getlogin },	/* 49 = __getlogin */
+	    (sy_call_t *)sys___getlogin, 0, 0 },	/* 49 = __getlogin */
 	{ ns(struct sys___setlogin_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___setlogin },	/* 50 = __setlogin */
+	    (sy_call_t *)sys___setlogin, 0, 0 },	/* 50 = __setlogin */
 	{ ns(struct sys_acct_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_acct },		/* 51 = acct */
+	    (sy_call_t *)sys_acct, 0, 0 },		/* 51 = acct */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_13_sys_sigpending },/* 52 = sigpending */
+	    (sy_call_t *)compat_13_sys_sigpending, 0, 0 },/* 52 = sigpending */
 	{ ns(struct compat_13_sys_sigaltstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_13_sys_sigaltstack },/* 53 = sigaltstack */
+	    (sy_call_t *)compat_13_sys_sigaltstack, 0, 0 },/* 53 = sigaltstack */
 	{ ns(struct freebsd_sys_ioctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)freebsd_sys_ioctl },	/* 54 = ioctl */
+	    (sy_call_t *)freebsd_sys_ioctl, 0, 0 },	/* 54 = ioctl */
 	{ ns(struct sys_reboot_args), 0,
-	    (sy_call_t *)sys_reboot },		/* 55 = oreboot */
+	    (sy_call_t *)sys_reboot, 0, 0 },		/* 55 = oreboot */
 	{ ns(struct sys_revoke_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_revoke },		/* 56 = revoke */
+	    (sy_call_t *)sys_revoke, 0, 0 },		/* 56 = revoke */
 	{ ns(struct sys_symlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlink },		/* 57 = symlink */
+	    (sy_call_t *)sys_symlink, 0, 0 },		/* 57 = symlink */
 	{ ns(struct sys_readlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlink },	/* 58 = readlink */
+	    (sy_call_t *)sys_readlink, 0, 0 },	/* 58 = readlink */
 	{ ns(struct sys_execve_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_execve },		/* 59 = execve */
+	    (sy_call_t *)sys_execve, 0, 0 },		/* 59 = execve */
 	{ ns(struct sys_umask_args), 0,
-	    (sy_call_t *)sys_umask },		/* 60 = umask */
+	    (sy_call_t *)sys_umask, 0, 0 },		/* 60 = umask */
 	{ ns(struct sys_chroot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chroot },		/* 61 = chroot */
+	    (sy_call_t *)sys_chroot, 0, 0 },		/* 61 = chroot */
 	{ ns(struct compat_43_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_fstat },	/* 62 = fstat43 */
+	    (sy_call_t *)compat_43_sys_fstat, 0, 0 },	/* 62 = fstat43 */
 	{ ns(struct compat_43_sys_getkerninfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getkerninfo },/* 63 = ogetkerninfo */
+	    (sy_call_t *)compat_43_sys_getkerninfo, 0, 0 },/* 63 = ogetkerninfo */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_getpagesize },/* 64 = ogetpagesize */
+	    (sy_call_t *)compat_43_sys_getpagesize, 0, 0 },/* 64 = ogetpagesize */
 	{ ns(struct freebsd_sys_msync_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)freebsd_sys_msync },	/* 65 = msync */
+	    (sy_call_t *)freebsd_sys_msync, 0, 0 },	/* 65 = msync */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_vfork },		/* 66 = vfork */
+	    (sy_call_t *)sys_vfork, 0, 0 },		/* 66 = vfork */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 67 = obsolete vread */
+	    sys_nosys, 0, 0 },			/* 67 = obsolete vread */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 68 = obsolete vwrite */
+	    sys_nosys, 0, 0 },			/* 68 = obsolete vwrite */
 	{ ns(struct sys_sbrk_args), 0,
-	    (sy_call_t *)sys_sbrk },		/* 69 = sbrk */
+	    (sy_call_t *)sys_sbrk, 0, 0 },		/* 69 = sbrk */
 	{ ns(struct sys_sstk_args), 0,
-	    (sy_call_t *)sys_sstk },		/* 70 = sstk */
+	    (sy_call_t *)sys_sstk, 0, 0 },		/* 70 = sstk */
 	{ ns(struct compat_43_sys_mmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_mmap },	/* 71 = ommap */
+	    (sy_call_t *)compat_43_sys_mmap, 0, 0 },	/* 71 = ommap */
 	{ ns(struct sys_ovadvise_args), 0,
-	    (sy_call_t *)sys_ovadvise },	/* 72 = vadvise */
+	    (sy_call_t *)sys_ovadvise, 0, 0 },	/* 72 = vadvise */
 	{ ns(struct sys_munmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munmap },		/* 73 = munmap */
+	    (sy_call_t *)sys_munmap, 0, 0 },		/* 73 = munmap */
 	{ ns(struct sys_mprotect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mprotect },	/* 74 = mprotect */
+	    (sy_call_t *)sys_mprotect, 0, 0 },	/* 74 = mprotect */
 	{ ns(struct sys_madvise_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_madvise },		/* 75 = madvise */
+	    (sy_call_t *)sys_madvise, 0, 0 },		/* 75 = madvise */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 76 = obsolete vhangup */
+	    sys_nosys, 0, 0 },			/* 76 = obsolete vhangup */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 77 = obsolete vlimit */
+	    sys_nosys, 0, 0 },			/* 77 = obsolete vlimit */
 	{ ns(struct sys_mincore_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mincore },		/* 78 = mincore */
+	    (sy_call_t *)sys_mincore, 0, 0 },		/* 78 = mincore */
 	{ ns(struct sys_getgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getgroups },	/* 79 = getgroups */
+	    (sy_call_t *)sys_getgroups, 0, 0 },	/* 79 = getgroups */
 	{ ns(struct sys_setgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setgroups },	/* 80 = setgroups */
+	    (sy_call_t *)sys_setgroups, 0, 0 },	/* 80 = setgroups */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpgrp },		/* 81 = getpgrp */
+	    (sy_call_t *)sys_getpgrp, 0, 0 },		/* 81 = getpgrp */
 	{ ns(struct sys_setpgid_args), 0,
-	    (sy_call_t *)sys_setpgid },		/* 82 = setpgid */
+	    (sy_call_t *)sys_setpgid, 0, 0 },		/* 82 = setpgid */
 	{ ns(struct compat_50_sys_setitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_setitimer },/* 83 = setitimer */
+	    (sy_call_t *)compat_50_sys_setitimer, 0, 0 },/* 83 = setitimer */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_wait },	/* 84 = owait */
+	    (sy_call_t *)compat_43_sys_wait, 0, 0 },	/* 84 = owait */
 	{ ns(struct compat_12_sys_swapon_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_12_sys_swapon },/* 85 = swapon */
+	    (sy_call_t *)compat_12_sys_swapon, 0, 0 },/* 85 = swapon */
 	{ ns(struct compat_50_sys_getitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getitimer },/* 86 = getitimer */
+	    (sy_call_t *)compat_50_sys_getitimer, 0, 0 },/* 86 = getitimer */
 	{ ns(struct compat_43_sys_gethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_gethostname },/* 87 = ogethostname */
+	    (sy_call_t *)compat_43_sys_gethostname, 0, 0 },/* 87 = ogethostname */
 	{ ns(struct compat_43_sys_sethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sethostname },/* 88 = osethostname */
+	    (sy_call_t *)compat_43_sys_sethostname, 0, 0 },/* 88 = osethostname */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_getdtablesize },/* 89 = ogetdtablesize */
+	    (sy_call_t *)compat_43_sys_getdtablesize, 0, 0 },/* 89 = ogetdtablesize */
 	{ ns(struct sys_dup2_args), 0,
-	    (sy_call_t *)sys_dup2 },		/* 90 = dup2 */
+	    (sy_call_t *)sys_dup2, 0, 0 },		/* 90 = dup2 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 91 = unimplemented getdopt */
+	    sys_nosys, 0, 0 },			/* 91 = unimplemented getdopt */
 	{ ns(struct sys_fcntl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_fcntl },		/* 92 = fcntl */
+	    (sy_call_t *)sys_fcntl, 0, 0 },		/* 92 = fcntl */
 	{ ns(struct compat_50_sys_select_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_select },/* 93 = select */
+	    (sy_call_t *)compat_50_sys_select, 0, 0 },/* 93 = select */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 94 = unimplemented setdopt */
+	    sys_nosys, 0, 0 },			/* 94 = unimplemented setdopt */
 	{ ns(struct sys_fsync_args), 0,
-	    (sy_call_t *)sys_fsync },		/* 95 = fsync */
+	    (sy_call_t *)sys_fsync, 0, 0 },		/* 95 = fsync */
 	{ ns(struct sys_setpriority_args), 0,
-	    (sy_call_t *)sys_setpriority },	/* 96 = setpriority */
+	    (sy_call_t *)sys_setpriority, 0, 0 },	/* 96 = setpriority */
 	{ ns(struct compat_30_sys_socket_args), 0,
-	    (sy_call_t *)compat_30_sys_socket },/* 97 = socket */
+	    (sy_call_t *)compat_30_sys_socket, 0, 0 },/* 97 = socket */
 	{ ns(struct sys_connect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_connect },		/* 98 = connect */
+	    (sy_call_t *)sys_connect, 0, 0 },		/* 98 = connect */
 	{ ns(struct compat_43_sys_accept_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_accept },/* 99 = oaccept */
+	    (sy_call_t *)compat_43_sys_accept, 0, 0 },/* 99 = oaccept */
 	{ ns(struct sys_getpriority_args), 0,
-	    (sy_call_t *)sys_getpriority },	/* 100 = getpriority */
+	    (sy_call_t *)sys_getpriority, 0, 0 },	/* 100 = getpriority */
 	{ ns(struct compat_43_sys_send_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_send },	/* 101 = osend */
+	    (sy_call_t *)compat_43_sys_send, 0, 0 },	/* 101 = osend */
 	{ ns(struct compat_43_sys_recv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recv },	/* 102 = orecv */
+	    (sy_call_t *)compat_43_sys_recv, 0, 0 },	/* 102 = orecv */
 	{ ns(struct freebsd_sys_sigreturn_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)freebsd_sys_sigreturn },/* 103 = sigreturn */
+	    (sy_call_t *)freebsd_sys_sigreturn, 0, 0 },/* 103 = sigreturn */
 	{ ns(struct sys_bind_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_bind },		/* 104 = bind */
+	    (sy_call_t *)sys_bind, 0, 0 },		/* 104 = bind */
 	{ ns(struct sys_setsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setsockopt },	/* 105 = setsockopt */
+	    (sy_call_t *)sys_setsockopt, 0, 0 },	/* 105 = setsockopt */
 	{ ns(struct sys_listen_args), 0,
-	    (sy_call_t *)sys_listen },		/* 106 = listen */
+	    (sy_call_t *)sys_listen, 0, 0 },		/* 106 = listen */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 107 = obsolete vtimes */
+	    sys_nosys, 0, 0 },			/* 107 = obsolete vtimes */
 	{ ns(struct compat_43_sys_sigvec_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sigvec },/* 108 = osigvec */
+	    (sy_call_t *)compat_43_sys_sigvec, 0, 0 },/* 108 = osigvec */
 	{ ns(struct compat_43_sys_sigblock_args), 0,
-	    (sy_call_t *)compat_43_sys_sigblock },/* 109 = osigblock */
+	    (sy_call_t *)compat_43_sys_sigblock, 0, 0 },/* 109 = osigblock */
 	{ ns(struct compat_43_sys_sigsetmask_args), 0,
-	    (sy_call_t *)compat_43_sys_sigsetmask },/* 110 = osigsetmask */
+	    (sy_call_t *)compat_43_sys_sigsetmask, 0, 0 },/* 110 = osigsetmask */
 	{ ns(struct compat_13_sys_sigsuspend_args), 0,
-	    (sy_call_t *)compat_13_sys_sigsuspend },/* 111 = sigsuspend */
+	    (sy_call_t *)compat_13_sys_sigsuspend, 0, 0 },/* 111 = sigsuspend */
 	{ ns(struct compat_43_sys_sigstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sigstack },/* 112 = osigstack */
+	    (sy_call_t *)compat_43_sys_sigstack, 0, 0 },/* 112 = osigstack */
 	{ ns(struct compat_43_sys_recvmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recvmsg },/* 113 = orecvmsg */
+	    (sy_call_t *)compat_43_sys_recvmsg, 0, 0 },/* 113 = orecvmsg */
 	{ ns(struct compat_43_sys_sendmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sendmsg },/* 114 = osendmsg */
+	    (sy_call_t *)compat_43_sys_sendmsg, 0, 0 },/* 114 = osendmsg */
 #ifdef TRACE
 	{ ns(struct sys_vtrace_args), 0,
-	    (sy_call_t *)sys_vtrace },		/* 115 = vtrace */
+	    (sy_call_t *)sys_vtrace, 0, 0 },		/* 115 = vtrace */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 115 = obsolete vtrace */
+	    sys_nosys, 0, 0 },			/* 115 = obsolete vtrace */
 #endif
 	{ ns(struct compat_50_sys_gettimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_gettimeofday },/* 116 = gettimeofday */
+	    (sy_call_t *)compat_50_sys_gettimeofday, 0, 0 },/* 116 = gettimeofday */
 	{ ns(struct compat_50_sys_getrusage_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getrusage },/* 117 = getrusage */
+	    (sy_call_t *)compat_50_sys_getrusage, 0, 0 },/* 117 = getrusage */
 	{ ns(struct sys_getsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getsockopt },	/* 118 = getsockopt */
+	    (sy_call_t *)sys_getsockopt, 0, 0 },	/* 118 = getsockopt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 119 = obsolete resuba */
+	    sys_nosys, 0, 0 },			/* 119 = obsolete resuba */
 	{ ns(struct sys_readv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readv },		/* 120 = readv */
+	    (sy_call_t *)sys_readv, 0, 0 },		/* 120 = readv */
 	{ ns(struct sys_writev_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_writev },		/* 121 = writev */
+	    (sy_call_t *)sys_writev, 0, 0 },		/* 121 = writev */
 	{ ns(struct compat_50_sys_settimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_settimeofday },/* 122 = settimeofday */
+	    (sy_call_t *)compat_50_sys_settimeofday, 0, 0 },/* 122 = settimeofday */
 	{ ns(struct sys_fchown_args), 0,
-	    (sy_call_t *)sys_fchown },		/* 123 = fchown */
+	    (sy_call_t *)sys_fchown, 0, 0 },		/* 123 = fchown */
 	{ ns(struct sys_fchmod_args), 0,
-	    (sy_call_t *)sys_fchmod },		/* 124 = fchmod */
+	    (sy_call_t *)sys_fchmod, 0, 0 },		/* 124 = fchmod */
 	{ ns(struct compat_43_sys_recvfrom_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recvfrom },/* 125 = orecvfrom */
+	    (sy_call_t *)compat_43_sys_recvfrom, 0, 0 },/* 125 = orecvfrom */
 	{ ns(struct sys_setreuid_args), 0,
-	    (sy_call_t *)sys_setreuid },	/* 126 = setreuid */
+	    (sy_call_t *)sys_setreuid, 0, 0 },	/* 126 = setreuid */
 	{ ns(struct sys_setregid_args), 0,
-	    (sy_call_t *)sys_setregid },	/* 127 = setregid */
+	    (sy_call_t *)sys_setregid, 0, 0 },	/* 127 = setregid */
 	{ ns(struct sys_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rename },		/* 128 = rename */
+	    (sy_call_t *)sys_rename, 0, 0 },		/* 128 = rename */
 	{ ns(struct compat_43_sys_truncate_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_truncate },/* 129 = otruncate */
+	    (sy_call_t *)compat_43_sys_truncate, 0, 0 },/* 129 = otruncate */
 	{ ns(struct compat_43_sys_ftruncate_args), 0,
-	    (sy_call_t *)compat_43_sys_ftruncate },/* 130 = oftruncate */
+	    (sy_call_t *)compat_43_sys_ftruncate, 0, 0 },/* 130 = oftruncate */
 	{ ns(struct sys_flock_args), 0,
-	    (sy_call_t *)sys_flock },		/* 131 = flock */
+	    (sy_call_t *)sys_flock, 0, 0 },		/* 131 = flock */
 	{ ns(struct sys_mkfifo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkfifo },		/* 132 = mkfifo */
+	    (sy_call_t *)sys_mkfifo, 0, 0 },		/* 132 = mkfifo */
 	{ ns(struct sys_sendto_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_sendto },		/* 133 = sendto */
+	    (sy_call_t *)sys_sendto, 0, 0 },		/* 133 = sendto */
 	{ ns(struct sys_shutdown_args), 0,
-	    (sy_call_t *)sys_shutdown },	/* 134 = shutdown */
+	    (sy_call_t *)sys_shutdown, 0, 0 },	/* 134 = shutdown */
 	{ ns(struct sys_socketpair_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_socketpair },	/* 135 = socketpair */
+	    (sy_call_t *)sys_socketpair, 0, 0 },	/* 135 = socketpair */
 	{ ns(struct sys_mkdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdir },		/* 136 = mkdir */
+	    (sy_call_t *)sys_mkdir, 0, 0 },		/* 136 = mkdir */
 	{ ns(struct sys_rmdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rmdir },		/* 137 = rmdir */
+	    (sy_call_t *)sys_rmdir, 0, 0 },		/* 137 = rmdir */
 	{ ns(struct compat_50_sys_utimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_utimes },/* 138 = utimes */
+	    (sy_call_t *)compat_50_sys_utimes, 0, 0 },/* 138 = utimes */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 139 = obsolete 4.2 sigreturn */
+	    sys_nosys, 0, 0 },			/* 139 = obsolete 4.2 sigreturn */
 	{ ns(struct compat_50_sys_adjtime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_adjtime },/* 140 = adjtime */
+	    (sy_call_t *)compat_50_sys_adjtime, 0, 0 },/* 140 = adjtime */
 	{ ns(struct compat_43_sys_getpeername_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getpeername },/* 141 = ogetpeername */
+	    (sy_call_t *)compat_43_sys_getpeername, 0, 0 },/* 141 = ogetpeername */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_gethostid },/* 142 = ogethostid */
+	    (sy_call_t *)compat_43_sys_gethostid, 0, 0 },/* 142 = ogethostid */
 	{ ns(struct compat_43_sys_sethostid_args), 0,
-	    (sy_call_t *)compat_43_sys_sethostid },/* 143 = osethostid */
+	    (sy_call_t *)compat_43_sys_sethostid, 0, 0 },/* 143 = osethostid */
 	{ ns(struct compat_43_sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getrlimit },/* 144 = ogetrlimit */
+	    (sy_call_t *)compat_43_sys_getrlimit, 0, 0 },/* 144 = ogetrlimit */
 	{ ns(struct compat_43_sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_setrlimit },/* 145 = osetrlimit */
+	    (sy_call_t *)compat_43_sys_setrlimit, 0, 0 },/* 145 = osetrlimit */
 	{ ns(struct compat_43_sys_killpg_args), 0,
-	    (sy_call_t *)compat_43_sys_killpg },/* 146 = okillpg */
+	    (sy_call_t *)compat_43_sys_killpg, 0, 0 },/* 146 = okillpg */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_setsid },		/* 147 = setsid */
+	    (sy_call_t *)sys_setsid, 0, 0 },		/* 147 = setsid */
 	{ ns(struct compat_50_sys_quotactl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_quotactl },/* 148 = quotactl */
+	    (sy_call_t *)compat_50_sys_quotactl, 0, 0 },/* 148 = quotactl */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_quota },	/* 149 = oquota */
+	    (sy_call_t *)compat_43_sys_quota, 0, 0 },	/* 149 = oquota */
 	{ ns(struct compat_43_sys_getsockname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getsockname },/* 150 = ogetsockname */
+	    (sy_call_t *)compat_43_sys_getsockname, 0, 0 },/* 150 = ogetsockname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 151 = unimplemented sem_lock */
+	    sys_nosys, 0, 0 },			/* 151 = unimplemented sem_lock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 152 = unimplemented sem_wakeup */
+	    sys_nosys, 0, 0 },			/* 152 = unimplemented sem_wakeup */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 153 = unimplemented asyncdaemon */
+	    sys_nosys, 0, 0 },			/* 153 = unimplemented asyncdaemon */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 154 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 154 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 155 = unimplemented nfssvc */
+	    sys_nosys, 0, 0 },			/* 155 = unimplemented nfssvc */
 	{ ns(struct compat_43_sys_getdirentries_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getdirentries },/* 156 = ogetdirentries */
+	    (sy_call_t *)compat_43_sys_getdirentries, 0, 0 },/* 156 = ogetdirentries */
 	{ ns(struct compat_20_sys_statfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_20_sys_statfs },/* 157 = statfs */
+	    (sy_call_t *)compat_20_sys_statfs, 0, 0 },/* 157 = statfs */
 	{ ns(struct compat_20_sys_fstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_20_sys_fstatfs },/* 158 = fstatfs */
+	    (sy_call_t *)compat_20_sys_fstatfs, 0, 0 },/* 158 = fstatfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 159 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 159 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 160 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 160 = unimplemented */
 	{ ns(struct compat_30_sys_getfh_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_30_sys_getfh },	/* 161 = getfh */
+	    (sy_call_t *)compat_30_sys_getfh, 0, 0 },	/* 161 = getfh */
 	{ ns(struct compat_09_sys_getdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_09_sys_getdomainname },/* 162 = getdomainname */
+	    (sy_call_t *)compat_09_sys_getdomainname, 0, 0 },/* 162 = getdomainname */
 	{ ns(struct compat_09_sys_setdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_09_sys_setdomainname },/* 163 = setdomainname */
+	    (sy_call_t *)compat_09_sys_setdomainname, 0, 0 },/* 163 = setdomainname */
 	{ ns(struct compat_09_sys_uname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_09_sys_uname },	/* 164 = uname */
+	    (sy_call_t *)compat_09_sys_uname, 0, 0 },	/* 164 = uname */
 	{ ns(struct sys_sysarch_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_sysarch },		/* 165 = sysarch */
+	    (sy_call_t *)sys_sysarch, 0, 0 },		/* 165 = sysarch */
 	{ ns(struct freebsd_sys_rtprio_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)freebsd_sys_rtprio },	/* 166 = rtprio */
+	    (sy_call_t *)freebsd_sys_rtprio, 0, 0 },	/* 166 = rtprio */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 167 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 167 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 168 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 168 = unimplemented */
 #if defined(SYSVSEM) && !defined(_LP64)
 	{ ns(struct freebsd_sys_semsys_args), 0,
-	    (sy_call_t *)freebsd_sys_semsys },	/* 169 = semsys */
+	    (sy_call_t *)freebsd_sys_semsys, 0, 0 },	/* 169 = semsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 169 = unimplemented 1.0 semsys */
+	    sys_nosys, 0, 0 },			/* 169 = unimplemented 1.0 semsys */
 #endif
 #if defined(SYSVMSG) && !defined(_LP64)
 	{ ns(struct freebsd_sys_msgsys_args), 0,
-	    (sy_call_t *)freebsd_sys_msgsys },	/* 170 = msgsys */
+	    (sy_call_t *)freebsd_sys_msgsys, 0, 0 },	/* 170 = msgsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 170 = unimplemented 1.0 msgsys */
+	    sys_nosys, 0, 0 },			/* 170 = unimplemented 1.0 msgsys */
 #endif
 #if defined(SYSVSHM) && !defined(_LP64)
 	{ ns(struct freebsd_sys_shmsys_args), 0,
-	    (sy_call_t *)freebsd_sys_shmsys },	/* 171 = shmsys */
+	    (sy_call_t *)freebsd_sys_shmsys, 0, 0 },	/* 171 = shmsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 171 = unimplemented 1.0 shmsys */
+	    sys_nosys, 0, 0 },			/* 171 = unimplemented 1.0 shmsys */
 #endif
 	{ 0, 0, 0,
-	    sys_nosys },			/* 172 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 172 = unimplemented */
 	{ ns(struct sys_pread_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG4_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pread },		/* 173 = pread */
+	    (sy_call_t *)sys_pread, 0, 0 },		/* 173 = pread */
 	{ ns(struct sys_pwrite_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG4_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pwrite },		/* 174 = pwrite */
+	    (sy_call_t *)sys_pwrite, 0, 0 },		/* 174 = pwrite */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 175 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 175 = unimplemented */
 #ifdef NTP
 	{ ns(struct freebsd_ntp_adjtime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)freebsd_ntp_adjtime },	/* 176 = freebsd_ntp_adjtime */
+	    (sy_call_t *)freebsd_ntp_adjtime, 0, 0 },	/* 176 = freebsd_ntp_adjtime */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 176 = excluded ntp_adjtime */
+	    sys_nosys, 0, 0 },			/* 176 = excluded ntp_adjtime */
 #endif
 	{ 0, 0, 0,
-	    sys_nosys },			/* 177 = unimplemented sfork */
+	    sys_nosys, 0, 0 },			/* 177 = unimplemented sfork */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 178 = unimplemented getdescriptor */
+	    sys_nosys, 0, 0 },			/* 178 = unimplemented getdescriptor */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 179 = unimplemented setdescriptor */
+	    sys_nosys, 0, 0 },			/* 179 = unimplemented setdescriptor */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 180 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 180 = unimplemented */
 	{ ns(struct sys_setgid_args), 0,
-	    (sy_call_t *)sys_setgid },		/* 181 = setgid */
+	    (sy_call_t *)sys_setgid, 0, 0 },		/* 181 = setgid */
 	{ ns(struct sys_setegid_args), 0,
-	    (sy_call_t *)sys_setegid },		/* 182 = setegid */
+	    (sy_call_t *)sys_setegid, 0, 0 },		/* 182 = setegid */
 	{ ns(struct sys_seteuid_args), 0,
-	    (sy_call_t *)sys_seteuid },		/* 183 = seteuid */
+	    (sy_call_t *)sys_seteuid, 0, 0 },		/* 183 = seteuid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 184 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 184 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 185 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 185 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 186 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 186 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 187 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 187 = unimplemented */
 	{ ns(struct compat_12_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_12_sys_stat },	/* 188 = stat */
+	    (sy_call_t *)compat_12_sys_stat, 0, 0 },	/* 188 = stat */
 	{ ns(struct compat_12_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_12_sys_fstat },	/* 189 = fstat */
+	    (sy_call_t *)compat_12_sys_fstat, 0, 0 },	/* 189 = fstat */
 	{ ns(struct compat_12_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_12_sys_lstat },	/* 190 = lstat */
+	    (sy_call_t *)compat_12_sys_lstat, 0, 0 },	/* 190 = lstat */
 	{ ns(struct sys_pathconf_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pathconf },	/* 191 = pathconf */
+	    (sy_call_t *)sys_pathconf, 0, 0 },	/* 191 = pathconf */
 	{ ns(struct sys_fpathconf_args), 0,
-	    (sy_call_t *)sys_fpathconf },	/* 192 = fpathconf */
+	    (sy_call_t *)sys_fpathconf, 0, 0 },	/* 192 = fpathconf */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 193 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 193 = unimplemented */
 	{ ns(struct sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getrlimit },	/* 194 = getrlimit */
+	    (sy_call_t *)sys_getrlimit, 0, 0 },	/* 194 = getrlimit */
 	{ ns(struct sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setrlimit },	/* 195 = setrlimit */
+	    (sy_call_t *)sys_setrlimit, 0, 0 },	/* 195 = setrlimit */
 	{ ns(struct compat_12_sys_getdirentries_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_12_sys_getdirentries },/* 196 = getdirentries */
+	    (sy_call_t *)compat_12_sys_getdirentries, 0, 0 },/* 196 = getdirentries */
 	{ ns(struct freebsd_sys_mmap_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG6_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)freebsd_sys_mmap },	/* 197 = mmap */
+	    (sy_call_t *)freebsd_sys_mmap, 0, 0 },	/* 197 = mmap */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_nosys },		/* 198 = __syscall */
+	    (sy_call_t *)sys_nosys, 0, 0 },		/* 198 = __syscall */
 	{ ns(struct sys_lseek_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG2_64 | SYCALL_RET_64,
-	    (sy_call_t *)sys_lseek },		/* 199 = lseek */
+	    (sy_call_t *)sys_lseek, 0, 0 },		/* 199 = lseek */
 	{ ns(struct sys_truncate_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG2_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_truncate },	/* 200 = truncate */
+	    (sy_call_t *)sys_truncate, 0, 0 },	/* 200 = truncate */
 	{ ns(struct sys_ftruncate_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG2_64,
-	    (sy_call_t *)sys_ftruncate },	/* 201 = ftruncate */
+	    (sy_call_t *)sys_ftruncate, 0, 0 },	/* 201 = ftruncate */
 	{ ns(struct freebsd_sys_sysctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)freebsd_sys_sysctl },	/* 202 = sysctl */
+	    (sy_call_t *)freebsd_sys_sysctl, 0, 0 },	/* 202 = sysctl */
 	{ ns(struct sys_mlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mlock },		/* 203 = mlock */
+	    (sy_call_t *)sys_mlock, 0, 0 },		/* 203 = mlock */
 	{ ns(struct sys_munlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munlock },		/* 204 = munlock */
+	    (sy_call_t *)sys_munlock, 0, 0 },		/* 204 = munlock */
 #ifdef FREEBSD_BASED_ON_44LITE_R2
 	{ ns(struct freebsd_sys_undelete_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)freebsd_sys_undelete },/* 205 = undelete */
+	    (sy_call_t *)freebsd_sys_undelete, 0, 0 },/* 205 = undelete */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 205 = unimplemented undelete */
+	    sys_nosys, 0, 0 },			/* 205 = unimplemented undelete */
 #endif
 	{ ns(struct compat_50_sys_futimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_futimes },/* 206 = futimes */
+	    (sy_call_t *)compat_50_sys_futimes, 0, 0 },/* 206 = futimes */
 	{ ns(struct sys_getpgid_args), 0,
-	    (sy_call_t *)sys_getpgid },		/* 207 = getpgid */
+	    (sy_call_t *)sys_getpgid, 0, 0 },		/* 207 = getpgid */
 #if 0
 	{ ns(struct sys_reboot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_reboot },		/* 208 = reboot */
+	    (sy_call_t *)sys_reboot, 0, 0 },		/* 208 = reboot */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 208 = unimplemented newreboot */
+	    sys_nosys, 0, 0 },			/* 208 = unimplemented newreboot */
 #endif
 	{ ns(struct sys_poll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_poll },		/* 209 = poll */
+	    (sy_call_t *)sys_poll, 0, 0 },		/* 209 = poll */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 210 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 210 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 211 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 211 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 212 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 212 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 213 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 213 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 214 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 214 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 215 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 215 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 216 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 216 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 217 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 217 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 218 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 218 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 219 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 219 = unimplemented */
 #ifdef SYSVSEM
 	{ ns(struct compat_14_sys___semctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_14_sys___semctl },/* 220 = __semctl */
+	    (sy_call_t *)compat_14_sys___semctl, 0, 0 },/* 220 = __semctl */
 	{ ns(struct sys_semget_args), 0,
-	    (sy_call_t *)sys_semget },		/* 221 = semget */
+	    (sy_call_t *)sys_semget, 0, 0 },		/* 221 = semget */
 	{ ns(struct sys_semop_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_semop },		/* 222 = semop */
+	    (sy_call_t *)sys_semop, 0, 0 },		/* 222 = semop */
 	{ ns(struct sys_semconfig_args), 0,
-	    (sy_call_t *)sys_semconfig },	/* 223 = semconfig */
+	    (sy_call_t *)sys_semconfig, 0, 0 },	/* 223 = semconfig */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 220 = unimplemented semctl */
+	    sys_nosys, 0, 0 },			/* 220 = unimplemented semctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 221 = unimplemented semget */
+	    sys_nosys, 0, 0 },			/* 221 = unimplemented semget */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 222 = unimplemented semop */
+	    sys_nosys, 0, 0 },			/* 222 = unimplemented semop */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 223 = unimplemented semconfig */
+	    sys_nosys, 0, 0 },			/* 223 = unimplemented semconfig */
 #endif
 #ifdef SYSVMSG
 	{ ns(struct compat_14_sys_msgctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_14_sys_msgctl },/* 224 = msgctl */
+	    (sy_call_t *)compat_14_sys_msgctl, 0, 0 },/* 224 = msgctl */
 	{ ns(struct sys_msgget_args), 0,
-	    (sy_call_t *)sys_msgget },		/* 225 = msgget */
+	    (sy_call_t *)sys_msgget, 0, 0 },		/* 225 = msgget */
 	{ ns(struct sys_msgsnd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_msgsnd },		/* 226 = msgsnd */
+	    (sy_call_t *)sys_msgsnd, 0, 0 },		/* 226 = msgsnd */
 	{ ns(struct sys_msgrcv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_msgrcv },		/* 227 = msgrcv */
+	    (sy_call_t *)sys_msgrcv, 0, 0 },		/* 227 = msgrcv */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 224 = unimplemented msgctl */
+	    sys_nosys, 0, 0 },			/* 224 = unimplemented msgctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 225 = unimplemented msgget */
+	    sys_nosys, 0, 0 },			/* 225 = unimplemented msgget */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 226 = unimplemented msgsnd */
+	    sys_nosys, 0, 0 },			/* 226 = unimplemented msgsnd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 227 = unimplemented msgrcv */
+	    sys_nosys, 0, 0 },			/* 227 = unimplemented msgrcv */
 #endif
 #ifdef SYSVSHM
 	{ ns(struct sys_shmat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_shmat },		/* 228 = shmat */
+	    (sy_call_t *)sys_shmat, 0, 0 },		/* 228 = shmat */
 	{ ns(struct compat_14_sys_shmctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_14_sys_shmctl },/* 229 = shmctl */
+	    (sy_call_t *)compat_14_sys_shmctl, 0, 0 },/* 229 = shmctl */
 	{ ns(struct sys_shmdt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_shmdt },		/* 230 = shmdt */
+	    (sy_call_t *)sys_shmdt, 0, 0 },		/* 230 = shmdt */
 	{ ns(struct sys_shmget_args), 0,
-	    (sy_call_t *)sys_shmget },		/* 231 = shmget */
+	    (sy_call_t *)sys_shmget, 0, 0 },		/* 231 = shmget */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 228 = unimplemented shmat */
+	    sys_nosys, 0, 0 },			/* 228 = unimplemented shmat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 229 = unimplemented shmctl */
+	    sys_nosys, 0, 0 },			/* 229 = unimplemented shmctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 230 = unimplemented shmdt */
+	    sys_nosys, 0, 0 },			/* 230 = unimplemented shmdt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 231 = unimplemented shmget */
+	    sys_nosys, 0, 0 },			/* 231 = unimplemented shmget */
 #endif
 	{ ns(struct compat_50_sys_clock_gettime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_clock_gettime },/* 232 = clock_gettime */
+	    (sy_call_t *)compat_50_sys_clock_gettime, 0, 0 },/* 232 = clock_gettime */
 	{ ns(struct compat_50_sys_clock_settime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_clock_settime },/* 233 = clock_settime */
+	    (sy_call_t *)compat_50_sys_clock_settime, 0, 0 },/* 233 = clock_settime */
 	{ ns(struct compat_50_sys_clock_getres_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_clock_getres },/* 234 = clock_getres */
+	    (sy_call_t *)compat_50_sys_clock_getres, 0, 0 },/* 234 = clock_getres */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 235 = unimplemented timer_create */
+	    sys_nosys, 0, 0 },			/* 235 = unimplemented timer_create */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 236 = unimplemented timer_delete */
+	    sys_nosys, 0, 0 },			/* 236 = unimplemented timer_delete */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 237 = unimplemented timer_settime */
+	    sys_nosys, 0, 0 },			/* 237 = unimplemented timer_settime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 238 = unimplemented timer_gettime */
+	    sys_nosys, 0, 0 },			/* 238 = unimplemented timer_gettime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 239 = unimplemented timer_getoverrun */
+	    sys_nosys, 0, 0 },			/* 239 = unimplemented timer_getoverrun */
 	{ ns(struct compat_50_sys_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_nanosleep },/* 240 = nanosleep */
+	    (sy_call_t *)compat_50_sys_nanosleep, 0, 0 },/* 240 = nanosleep */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 241 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 241 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 242 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 242 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 243 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 243 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 244 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 244 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 245 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 245 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 246 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 246 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 247 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 247 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 248 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 248 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 249 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 249 = unimplemented */
 	{ ns(struct sys_minherit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_minherit },	/* 250 = minherit */
+	    (sy_call_t *)sys_minherit, 0, 0 },	/* 250 = minherit */
 	{ ns(struct freebsd_sys_rfork_args), 0,
-	    (sy_call_t *)freebsd_sys_rfork },	/* 251 = rfork */
+	    (sy_call_t *)freebsd_sys_rfork, 0, 0 },	/* 251 = rfork */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 252 = unimplemented openbsd_poll */
+	    sys_nosys, 0, 0 },			/* 252 = unimplemented openbsd_poll */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_issetugid },	/* 253 = issetugid */
+	    (sy_call_t *)sys_issetugid, 0, 0 },	/* 253 = issetugid */
 	{ ns(struct sys_lchown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_lchown },		/* 254 = lchown */
+	    (sy_call_t *)sys_lchown, 0, 0 },		/* 254 = lchown */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 255 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 255 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 256 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 256 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 257 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 257 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 258 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 258 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 259 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 259 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 260 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 260 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 261 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 261 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 262 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 262 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 263 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 263 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 264 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 264 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 265 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 265 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 266 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 266 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 267 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 267 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 268 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 268 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 269 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 269 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 270 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 270 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 271 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 271 = unimplemented */
 	{ ns(struct compat_30_sys_getdents_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_30_sys_getdents },/* 272 = getdents */
+	    (sy_call_t *)compat_30_sys_getdents, 0, 0 },/* 272 = getdents */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 273 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 273 = unimplemented */
 	{ ns(struct sys_lchmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_lchmod },		/* 274 = lchmod */
+	    (sy_call_t *)sys_lchmod, 0, 0 },		/* 274 = lchmod */
 	{ ns(struct sys_lchown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_lchown },		/* 275 = netbsd_lchown */
+	    (sy_call_t *)sys_lchown, 0, 0 },		/* 275 = netbsd_lchown */
 	{ ns(struct compat_50_sys_lutimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_lutimes },/* 276 = lutimes */
+	    (sy_call_t *)compat_50_sys_lutimes, 0, 0 },/* 276 = lutimes */
 	{ ns(struct sys___msync13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___msync13 },	/* 277 = __msync13 */
+	    (sy_call_t *)sys___msync13, 0, 0 },	/* 277 = __msync13 */
 	{ ns(struct compat_30_sys___stat13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_30_sys___stat13 },/* 278 = __stat13 */
+	    (sy_call_t *)compat_30_sys___stat13, 0, 0 },/* 278 = __stat13 */
 	{ ns(struct compat_30_sys___fstat13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_30_sys___fstat13 },/* 279 = __fstat13 */
+	    (sy_call_t *)compat_30_sys___fstat13, 0, 0 },/* 279 = __fstat13 */
 	{ ns(struct compat_30_sys___lstat13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_30_sys___lstat13 },/* 280 = __lstat13 */
+	    (sy_call_t *)compat_30_sys___lstat13, 0, 0 },/* 280 = __lstat13 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 281 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 281 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 282 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 282 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 283 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 283 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 284 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 284 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 285 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 285 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 286 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 286 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 287 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 287 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 288 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 288 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 289 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 289 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 290 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 290 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 291 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 291 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 292 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 292 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 293 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 293 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 294 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 294 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 295 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 295 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 296 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 296 = unimplemented */
 	{ ns(struct compat_20_sys_fhstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_20_sys_fhstatfs },/* 297 = fhstatfs */
+	    (sy_call_t *)compat_20_sys_fhstatfs, 0, 0 },/* 297 = fhstatfs */
 	{ ns(struct compat_30_sys_fhopen_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_30_sys_fhopen },/* 298 = fhopen */
+	    (sy_call_t *)compat_30_sys_fhopen, 0, 0 },/* 298 = fhopen */
 	{ ns(struct compat_30_sys_fhstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_30_sys_fhstat },/* 299 = fhstat */
+	    (sy_call_t *)compat_30_sys_fhstat, 0, 0 },/* 299 = fhstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 300 = unimplemented modnext */
+	    sys_nosys, 0, 0 },			/* 300 = unimplemented modnext */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 301 = unimplemented modstat */
+	    sys_nosys, 0, 0 },			/* 301 = unimplemented modstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 302 = unimplemented modfnext */
+	    sys_nosys, 0, 0 },			/* 302 = unimplemented modfnext */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 303 = unimplemented modfind */
+	    sys_nosys, 0, 0 },			/* 303 = unimplemented modfind */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 304 = unimplemented kldload */
+	    sys_nosys, 0, 0 },			/* 304 = unimplemented kldload */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 305 = unimplemented kldunload */
+	    sys_nosys, 0, 0 },			/* 305 = unimplemented kldunload */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 306 = unimplemented kldfind */
+	    sys_nosys, 0, 0 },			/* 306 = unimplemented kldfind */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 307 = unimplemented kldnext */
+	    sys_nosys, 0, 0 },			/* 307 = unimplemented kldnext */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 308 = unimplemented kldstat */
+	    sys_nosys, 0, 0 },			/* 308 = unimplemented kldstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 309 = unimplemented kldfirstmod */
+	    sys_nosys, 0, 0 },			/* 309 = unimplemented kldfirstmod */
 	{ ns(struct sys_getsid_args), 0,
-	    (sy_call_t *)sys_getsid },		/* 310 = getsid */
+	    (sy_call_t *)sys_getsid, 0, 0 },		/* 310 = getsid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 311 = unimplemented setresuid */
+	    sys_nosys, 0, 0 },			/* 311 = unimplemented setresuid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 312 = unimplemented setresgid */
+	    sys_nosys, 0, 0 },			/* 312 = unimplemented setresgid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 313 = unimplemented signanosleep */
+	    sys_nosys, 0, 0 },			/* 313 = unimplemented signanosleep */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 314 = unimplemented aio_return */
+	    sys_nosys, 0, 0 },			/* 314 = unimplemented aio_return */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 315 = unimplemented aio_suspend */
+	    sys_nosys, 0, 0 },			/* 315 = unimplemented aio_suspend */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 316 = unimplemented aio_cancel */
+	    sys_nosys, 0, 0 },			/* 316 = unimplemented aio_cancel */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 317 = unimplemented aio_error */
+	    sys_nosys, 0, 0 },			/* 317 = unimplemented aio_error */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 318 = unimplemented aio_read */
+	    sys_nosys, 0, 0 },			/* 318 = unimplemented aio_read */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 319 = unimplemented aio_write */
+	    sys_nosys, 0, 0 },			/* 319 = unimplemented aio_write */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 320 = unimplemented lio_listio */
+	    sys_nosys, 0, 0 },			/* 320 = unimplemented lio_listio */
 	{ 0, 0, 0,
-	    (sy_call_t *)freebsd_sys_yield },	/* 321 = yield */
+	    (sy_call_t *)freebsd_sys_yield, 0, 0 },	/* 321 = yield */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 322 = unimplemented thr_sleep */
+	    sys_nosys, 0, 0 },			/* 322 = unimplemented thr_sleep */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 323 = unimplemented thr_wakeup */
+	    sys_nosys, 0, 0 },			/* 323 = unimplemented thr_wakeup */
 	{ ns(struct sys_mlockall_args), 0,
-	    (sy_call_t *)sys_mlockall },	/* 324 = mlockall */
+	    (sy_call_t *)sys_mlockall, 0, 0 },	/* 324 = mlockall */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_munlockall },	/* 325 = munlockall */
+	    (sy_call_t *)sys_munlockall, 0, 0 },	/* 325 = munlockall */
 	{ ns(struct sys___getcwd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getcwd },	/* 326 = __getcwd */
+	    (sy_call_t *)sys___getcwd, 0, 0 },	/* 326 = __getcwd */
 	{ ns(struct freebsd_sys_sched_setparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)freebsd_sys_sched_setparam },/* 327 = sched_setparam */
+	    (sy_call_t *)freebsd_sys_sched_setparam, 0, 0 },/* 327 = sched_setparam */
 	{ ns(struct freebsd_sys_sched_getparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)freebsd_sys_sched_getparam },/* 328 = sched_getparam */
+	    (sy_call_t *)freebsd_sys_sched_getparam, 0, 0 },/* 328 = sched_getparam */
 	{ ns(struct freebsd_sys_sched_setscheduler_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)freebsd_sys_sched_setscheduler },/* 329 = sched_setscheduler */
+	    (sy_call_t *)freebsd_sys_sched_setscheduler, 0, 0 },/* 329 = sched_setscheduler */
 	{ ns(struct freebsd_sys_sched_getscheduler_args), 0,
-	    (sy_call_t *)freebsd_sys_sched_getscheduler },/* 330 = sched_getscheduler */
+	    (sy_call_t *)freebsd_sys_sched_getscheduler, 0, 0 },/* 330 = sched_getscheduler */
 	{ 0, 0, 0,
-	    (sy_call_t *)freebsd_sys_sched_yield },/* 331 = sched_yield */
+	    (sy_call_t *)freebsd_sys_sched_yield, 0, 0 },/* 331 = sched_yield */
 	{ ns(struct freebsd_sys_sched_get_priority_max_args), 0,
-	    (sy_call_t *)freebsd_sys_sched_get_priority_max },/* 332 = sched_get_priority_max */
+	    (sy_call_t *)freebsd_sys_sched_get_priority_max, 0, 0 },/* 332 = sched_get_priority_max */
 	{ ns(struct freebsd_sys_sched_get_priority_min_args), 0,
-	    (sy_call_t *)freebsd_sys_sched_get_priority_min },/* 333 = sched_get_priority_min */
+	    (sy_call_t *)freebsd_sys_sched_get_priority_min, 0, 0 },/* 333 = sched_get_priority_min */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 334 = unimplemented sched_rr_get_interval */
+	    sys_nosys, 0, 0 },			/* 334 = unimplemented sched_rr_get_interval */
 	{ ns(struct freebsd_sys_utrace_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)freebsd_sys_utrace },	/* 335 = utrace */
+	    (sy_call_t *)freebsd_sys_utrace, 0, 0 },	/* 335 = utrace */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 336 = unimplemented sendfile */
+	    sys_nosys, 0, 0 },			/* 336 = unimplemented sendfile */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 337 = unimplemented kldsym */
+	    sys_nosys, 0, 0 },			/* 337 = unimplemented kldsym */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 338 = unimplemented jail */
+	    sys_nosys, 0, 0 },			/* 338 = unimplemented jail */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 339 = unimplemented pioctl */
+	    sys_nosys, 0, 0 },			/* 339 = unimplemented pioctl */
 	{ ns(struct sys___sigprocmask14_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___sigprocmask14 },	/* 340 = __sigprocmask14 */
+	    (sy_call_t *)sys___sigprocmask14, 0, 0 },	/* 340 = __sigprocmask14 */
 	{ ns(struct sys___sigsuspend14_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___sigsuspend14 },	/* 341 = __sigsuspend14 */
+	    (sy_call_t *)sys___sigsuspend14, 0, 0 },	/* 341 = __sigsuspend14 */
 	{ ns(struct freebsd_sys_sigaction4_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)freebsd_sys_sigaction4 },/* 342 = sigaction4 */
+	    (sy_call_t *)freebsd_sys_sigaction4, 0, 0 },/* 342 = sigaction4 */
 	{ ns(struct sys___sigpending14_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___sigpending14 },	/* 343 = __sigpending14 */
+	    (sy_call_t *)sys___sigpending14, 0, 0 },	/* 343 = __sigpending14 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 344 = unimplemented 4.0 sigreturn */
+	    sys_nosys, 0, 0 },			/* 344 = unimplemented 4.0 sigreturn */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 345 = unimplemented sigtimedwait */
+	    sys_nosys, 0, 0 },			/* 345 = unimplemented sigtimedwait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 346 = unimplemented sigwaitinfo */
+	    sys_nosys, 0, 0 },			/* 346 = unimplemented sigwaitinfo */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 347 = unimplemented __acl_get_file */
+	    sys_nosys, 0, 0 },			/* 347 = unimplemented __acl_get_file */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 348 = unimplemented __acl_set_file */
+	    sys_nosys, 0, 0 },			/* 348 = unimplemented __acl_set_file */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 349 = unimplemented __acl_get_fd */
+	    sys_nosys, 0, 0 },			/* 349 = unimplemented __acl_get_fd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 350 = unimplemented __acl_set_fd */
+	    sys_nosys, 0, 0 },			/* 350 = unimplemented __acl_set_fd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 351 = unimplemented __acl_delete_file */
+	    sys_nosys, 0, 0 },			/* 351 = unimplemented __acl_delete_file */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 352 = unimplemented __acl_delete_fd */
+	    sys_nosys, 0, 0 },			/* 352 = unimplemented __acl_delete_fd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 353 = unimplemented __acl_aclcheck_file */
+	    sys_nosys, 0, 0 },			/* 353 = unimplemented __acl_aclcheck_file */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 354 = unimplemented __acl_aclcheck_fd */
+	    sys_nosys, 0, 0 },			/* 354 = unimplemented __acl_aclcheck_fd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 355 = unimplemented extattrctl */
+	    sys_nosys, 0, 0 },			/* 355 = unimplemented extattrctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 356 = unimplemented extattr_set_file */
+	    sys_nosys, 0, 0 },			/* 356 = unimplemented extattr_set_file */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 357 = unimplemented extattr_get_file */
+	    sys_nosys, 0, 0 },			/* 357 = unimplemented extattr_get_file */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 358 = unimplemented extattr_delete_file */
+	    sys_nosys, 0, 0 },			/* 358 = unimplemented extattr_delete_file */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 359 = unimplemented aio_waitcomplete */
+	    sys_nosys, 0, 0 },			/* 359 = unimplemented aio_waitcomplete */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 360 = unimplemented getresuid */
+	    sys_nosys, 0, 0 },			/* 360 = unimplemented getresuid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 361 = unimplemented getresgid */
+	    sys_nosys, 0, 0 },			/* 361 = unimplemented getresgid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 362 = unimplemented kqueue */
+	    sys_nosys, 0, 0 },			/* 362 = unimplemented kqueue */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 363 = unimplemented kevent */
+	    sys_nosys, 0, 0 },			/* 363 = unimplemented kevent */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 364 = unimplemented __cap_get_proc */
+	    sys_nosys, 0, 0 },			/* 364 = unimplemented __cap_get_proc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 365 = unimplemented __cap_set_proc */
+	    sys_nosys, 0, 0 },			/* 365 = unimplemented __cap_set_proc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 366 = unimplemented __cap_get_fd */
+	    sys_nosys, 0, 0 },			/* 366 = unimplemented __cap_get_fd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 367 = unimplemented __cap_get_file */
+	    sys_nosys, 0, 0 },			/* 367 = unimplemented __cap_get_file */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 368 = unimplemented __cap_set_fd */
+	    sys_nosys, 0, 0 },			/* 368 = unimplemented __cap_set_fd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 369 = unimplemented __cap_set_file */
+	    sys_nosys, 0, 0 },			/* 369 = unimplemented __cap_set_file */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 370 = unimplemented lkmressym */
+	    sys_nosys, 0, 0 },			/* 370 = unimplemented lkmressym */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 371 = unimplemented extattr_set_fd */
+	    sys_nosys, 0, 0 },			/* 371 = unimplemented extattr_set_fd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 372 = unimplemented extattr_get_fd */
+	    sys_nosys, 0, 0 },			/* 372 = unimplemented extattr_get_fd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 373 = unimplemented extattr_delete_fd */
+	    sys_nosys, 0, 0 },			/* 373 = unimplemented extattr_delete_fd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 374 = unimplemented __setugid */
+	    sys_nosys, 0, 0 },			/* 374 = unimplemented __setugid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 375 = unimplemented nfsclnt */
+	    sys_nosys, 0, 0 },			/* 375 = unimplemented nfsclnt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 376 = unimplemented eaccess */
+	    sys_nosys, 0, 0 },			/* 376 = unimplemented eaccess */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 377 = unimplemented afs_syscall */
+	    sys_nosys, 0, 0 },			/* 377 = unimplemented afs_syscall */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 378 = unimplemented nmount */
+	    sys_nosys, 0, 0 },			/* 378 = unimplemented nmount */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 379 = unimplemented kse_exit */
+	    sys_nosys, 0, 0 },			/* 379 = unimplemented kse_exit */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 380 = unimplemented kse_wakeup */
+	    sys_nosys, 0, 0 },			/* 380 = unimplemented kse_wakeup */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 381 = unimplemented kse_create */
+	    sys_nosys, 0, 0 },			/* 381 = unimplemented kse_create */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 382 = unimplemented kse_thr_interrupt */
+	    sys_nosys, 0, 0 },			/* 382 = unimplemented kse_thr_interrupt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 383 = unimplemented kse_release */
+	    sys_nosys, 0, 0 },			/* 383 = unimplemented kse_release */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 384 = unimplemented __mac_get_proc */
+	    sys_nosys, 0, 0 },			/* 384 = unimplemented __mac_get_proc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 385 = unimplemented __mac_set_proc */
+	    sys_nosys, 0, 0 },			/* 385 = unimplemented __mac_set_proc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 386 = unimplemented __mac_get_fd */
+	    sys_nosys, 0, 0 },			/* 386 = unimplemented __mac_get_fd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 387 = unimplemented __mac_get_file */
+	    sys_nosys, 0, 0 },			/* 387 = unimplemented __mac_get_file */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 388 = unimplemented __mac_set_fd */
+	    sys_nosys, 0, 0 },			/* 388 = unimplemented __mac_set_fd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 389 = unimplemented __mac_set_file */
+	    sys_nosys, 0, 0 },			/* 389 = unimplemented __mac_set_file */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 390 = unimplemented kenv */
+	    sys_nosys, 0, 0 },			/* 390 = unimplemented kenv */
 	{ ns(struct sys_lchflags_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_lchflags },	/* 391 = lchflags */
+	    (sy_call_t *)sys_lchflags, 0, 0 },	/* 391 = lchflags */
 	{ ns(struct sys_uuidgen_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_uuidgen },		/* 392 = uuidgen */
+	    (sy_call_t *)sys_uuidgen, 0, 0 },		/* 392 = uuidgen */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 393 = unimplemented sendfile */
+	    sys_nosys, 0, 0 },			/* 393 = unimplemented sendfile */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 394 = unimplemented mac_syscall */
+	    sys_nosys, 0, 0 },			/* 394 = unimplemented mac_syscall */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 395 = unimplemented getfsstat */
+	    sys_nosys, 0, 0 },			/* 395 = unimplemented getfsstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 396 = unimplemented statfs */
+	    sys_nosys, 0, 0 },			/* 396 = unimplemented statfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 397 = unimplemented fsstatfs */
+	    sys_nosys, 0, 0 },			/* 397 = unimplemented fsstatfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 398 = unimplemented fhstatfs */
+	    sys_nosys, 0, 0 },			/* 398 = unimplemented fhstatfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 399 = unimplemented nosys */
+	    sys_nosys, 0, 0 },			/* 399 = unimplemented nosys */
 	{ ns(struct sys__ksem_close_args), 0,
-	    (sy_call_t *)sys__ksem_close },	/* 400 = _ksem_close */
+	    (sy_call_t *)sys__ksem_close, 0, 0 },	/* 400 = _ksem_close */
 	{ ns(struct sys__ksem_post_args), 0,
-	    (sy_call_t *)sys__ksem_post },	/* 401 = _ksem_post */
+	    (sy_call_t *)sys__ksem_post, 0, 0 },	/* 401 = _ksem_post */
 	{ ns(struct sys__ksem_wait_args), 0,
-	    (sy_call_t *)sys__ksem_wait },	/* 402 = _ksem_wait */
+	    (sy_call_t *)sys__ksem_wait, 0, 0 },	/* 402 = _ksem_wait */
 	{ ns(struct sys__ksem_trywait_args), 0,
-	    (sy_call_t *)sys__ksem_trywait },	/* 403 = _ksem_trywait */
+	    (sy_call_t *)sys__ksem_trywait, 0, 0 },	/* 403 = _ksem_trywait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 404 = unimplemented ksem_init */
+	    sys_nosys, 0, 0 },			/* 404 = unimplemented ksem_init */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 405 = unimplemented ksem_open */
+	    sys_nosys, 0, 0 },			/* 405 = unimplemented ksem_open */
 	{ ns(struct sys__ksem_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys__ksem_unlink },	/* 406 = _ksem_unlink */
+	    (sy_call_t *)sys__ksem_unlink, 0, 0 },	/* 406 = _ksem_unlink */
 	{ ns(struct sys__ksem_getvalue_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys__ksem_getvalue },	/* 407 = _ksem_getvalue */
+	    (sy_call_t *)sys__ksem_getvalue, 0, 0 },	/* 407 = _ksem_getvalue */
 	{ ns(struct sys__ksem_destroy_args), 0,
-	    (sy_call_t *)sys__ksem_destroy },	/* 408 = _ksem_destroy */
+	    (sy_call_t *)sys__ksem_destroy, 0, 0 },	/* 408 = _ksem_destroy */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 409 = unimplemented __mac_get_pid */
+	    sys_nosys, 0, 0 },			/* 409 = unimplemented __mac_get_pid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 410 = unimplemented __mac_get_link */
+	    sys_nosys, 0, 0 },			/* 410 = unimplemented __mac_get_link */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 411 = unimplemented __mac_set_link */
+	    sys_nosys, 0, 0 },			/* 411 = unimplemented __mac_set_link */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 412 = unimplemented extattr_set_link */
+	    sys_nosys, 0, 0 },			/* 412 = unimplemented extattr_set_link */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 413 = unimplemented extattr_get_link */
+	    sys_nosys, 0, 0 },			/* 413 = unimplemented extattr_get_link */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 414 = unimplemented extattr_delete_link */
+	    sys_nosys, 0, 0 },			/* 414 = unimplemented extattr_delete_link */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 415 = unimplemented __mac_execve */
+	    sys_nosys, 0, 0 },			/* 415 = unimplemented __mac_execve */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 416 = unimplemented sigaction */
+	    sys_nosys, 0, 0 },			/* 416 = unimplemented sigaction */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 417 = unimplemented sigreturn */
+	    sys_nosys, 0, 0 },			/* 417 = unimplemented sigreturn */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 418 = unimplemented __xstat */
+	    sys_nosys, 0, 0 },			/* 418 = unimplemented __xstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 419 = unimplemented __xfstat */
+	    sys_nosys, 0, 0 },			/* 419 = unimplemented __xfstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 420 = unimplemented __xlstat */
+	    sys_nosys, 0, 0 },			/* 420 = unimplemented __xlstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 421 = unimplemented getcontext */
+	    sys_nosys, 0, 0 },			/* 421 = unimplemented getcontext */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 422 = unimplemented setcontext */
+	    sys_nosys, 0, 0 },			/* 422 = unimplemented setcontext */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 423 = unimplemented swapcontext */
+	    sys_nosys, 0, 0 },			/* 423 = unimplemented swapcontext */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 424 = unimplemented swapoff */
+	    sys_nosys, 0, 0 },			/* 424 = unimplemented swapoff */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 425 = unimplemented __acl_get_link */
+	    sys_nosys, 0, 0 },			/* 425 = unimplemented __acl_get_link */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 426 = unimplemented __acl_set_link */
+	    sys_nosys, 0, 0 },			/* 426 = unimplemented __acl_set_link */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 427 = unimplemented __acl_delete_link */
+	    sys_nosys, 0, 0 },			/* 427 = unimplemented __acl_delete_link */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 428 = unimplemented __acl_aclcheck_link */
+	    sys_nosys, 0, 0 },			/* 428 = unimplemented __acl_aclcheck_link */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 429 = unimplemented sigwait */
+	    sys_nosys, 0, 0 },			/* 429 = unimplemented sigwait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 430 = unimplemented thr_create */
+	    sys_nosys, 0, 0 },			/* 430 = unimplemented thr_create */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 431 = unimplemented thr_exit */
+	    sys_nosys, 0, 0 },			/* 431 = unimplemented thr_exit */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 432 = unimplemented thr_self */
+	    sys_nosys, 0, 0 },			/* 432 = unimplemented thr_self */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 433 = unimplemented thr_kill */
+	    sys_nosys, 0, 0 },			/* 433 = unimplemented thr_kill */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 434 = unimplemented _umtx_lock */
+	    sys_nosys, 0, 0 },			/* 434 = unimplemented _umtx_lock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 435 = unimplemented _umtx_unlock */
+	    sys_nosys, 0, 0 },			/* 435 = unimplemented _umtx_unlock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 436 = unimplemented jail_attach */
+	    sys_nosys, 0, 0 },			/* 436 = unimplemented jail_attach */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 437 = unimplemented extattr_list_fd */
+	    sys_nosys, 0, 0 },			/* 437 = unimplemented extattr_list_fd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 438 = unimplemented extattr_list_file */
+	    sys_nosys, 0, 0 },			/* 438 = unimplemented extattr_list_file */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 439 = unimplemented extattr_list_link */
+	    sys_nosys, 0, 0 },			/* 439 = unimplemented extattr_list_link */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 440 = filler */
+	    sys_nosys, 0, 0 },			/* 440 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 441 = filler */
+	    sys_nosys, 0, 0 },			/* 441 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 442 = filler */
+	    sys_nosys, 0, 0 },			/* 442 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 443 = filler */
+	    sys_nosys, 0, 0 },			/* 443 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 444 = filler */
+	    sys_nosys, 0, 0 },			/* 444 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 445 = filler */
+	    sys_nosys, 0, 0 },			/* 445 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 446 = filler */
+	    sys_nosys, 0, 0 },			/* 446 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 447 = filler */
+	    sys_nosys, 0, 0 },			/* 447 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 448 = filler */
+	    sys_nosys, 0, 0 },			/* 448 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 449 = filler */
+	    sys_nosys, 0, 0 },			/* 449 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 450 = filler */
+	    sys_nosys, 0, 0 },			/* 450 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 451 = filler */
+	    sys_nosys, 0, 0 },			/* 451 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 452 = filler */
+	    sys_nosys, 0, 0 },			/* 452 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 453 = filler */
+	    sys_nosys, 0, 0 },			/* 453 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 454 = filler */
+	    sys_nosys, 0, 0 },			/* 454 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 455 = filler */
+	    sys_nosys, 0, 0 },			/* 455 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 456 = filler */
+	    sys_nosys, 0, 0 },			/* 456 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 457 = filler */
+	    sys_nosys, 0, 0 },			/* 457 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 458 = filler */
+	    sys_nosys, 0, 0 },			/* 458 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 459 = filler */
+	    sys_nosys, 0, 0 },			/* 459 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 460 = filler */
+	    sys_nosys, 0, 0 },			/* 460 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 461 = filler */
+	    sys_nosys, 0, 0 },			/* 461 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 462 = filler */
+	    sys_nosys, 0, 0 },			/* 462 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 463 = filler */
+	    sys_nosys, 0, 0 },			/* 463 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 464 = filler */
+	    sys_nosys, 0, 0 },			/* 464 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 465 = filler */
+	    sys_nosys, 0, 0 },			/* 465 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 466 = filler */
+	    sys_nosys, 0, 0 },			/* 466 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 467 = filler */
+	    sys_nosys, 0, 0 },			/* 467 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 468 = filler */
+	    sys_nosys, 0, 0 },			/* 468 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 469 = filler */
+	    sys_nosys, 0, 0 },			/* 469 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 470 = filler */
+	    sys_nosys, 0, 0 },			/* 470 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 471 = filler */
+	    sys_nosys, 0, 0 },			/* 471 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 472 = filler */
+	    sys_nosys, 0, 0 },			/* 472 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 473 = filler */
+	    sys_nosys, 0, 0 },			/* 473 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 474 = filler */
+	    sys_nosys, 0, 0 },			/* 474 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 475 = filler */
+	    sys_nosys, 0, 0 },			/* 475 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 476 = filler */
+	    sys_nosys, 0, 0 },			/* 476 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 477 = filler */
+	    sys_nosys, 0, 0 },			/* 477 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 478 = filler */
+	    sys_nosys, 0, 0 },			/* 478 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 479 = filler */
+	    sys_nosys, 0, 0 },			/* 479 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 480 = filler */
+	    sys_nosys, 0, 0 },			/* 480 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 481 = filler */
+	    sys_nosys, 0, 0 },			/* 481 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 482 = filler */
+	    sys_nosys, 0, 0 },			/* 482 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 483 = filler */
+	    sys_nosys, 0, 0 },			/* 483 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 484 = filler */
+	    sys_nosys, 0, 0 },			/* 484 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 485 = filler */
+	    sys_nosys, 0, 0 },			/* 485 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 486 = filler */
+	    sys_nosys, 0, 0 },			/* 486 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 487 = filler */
+	    sys_nosys, 0, 0 },			/* 487 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 488 = filler */
+	    sys_nosys, 0, 0 },			/* 488 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 489 = filler */
+	    sys_nosys, 0, 0 },			/* 489 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 490 = filler */
+	    sys_nosys, 0, 0 },			/* 490 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 491 = filler */
+	    sys_nosys, 0, 0 },			/* 491 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 492 = filler */
+	    sys_nosys, 0, 0 },			/* 492 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 493 = filler */
+	    sys_nosys, 0, 0 },			/* 493 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 494 = filler */
+	    sys_nosys, 0, 0 },			/* 494 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 495 = filler */
+	    sys_nosys, 0, 0 },			/* 495 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 496 = filler */
+	    sys_nosys, 0, 0 },			/* 496 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 497 = filler */
+	    sys_nosys, 0, 0 },			/* 497 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 498 = filler */
+	    sys_nosys, 0, 0 },			/* 498 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 499 = filler */
+	    sys_nosys, 0, 0 },			/* 499 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 500 = filler */
+	    sys_nosys, 0, 0 },			/* 500 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 501 = filler */
+	    sys_nosys, 0, 0 },			/* 501 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 502 = filler */
+	    sys_nosys, 0, 0 },			/* 502 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 503 = filler */
+	    sys_nosys, 0, 0 },			/* 503 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 504 = filler */
+	    sys_nosys, 0, 0 },			/* 504 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 505 = filler */
+	    sys_nosys, 0, 0 },			/* 505 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 506 = filler */
+	    sys_nosys, 0, 0 },			/* 506 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 507 = filler */
+	    sys_nosys, 0, 0 },			/* 507 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 508 = filler */
+	    sys_nosys, 0, 0 },			/* 508 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 509 = filler */
+	    sys_nosys, 0, 0 },			/* 509 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 510 = filler */
+	    sys_nosys, 0, 0 },			/* 510 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 511 = filler */
+	    sys_nosys, 0, 0 },			/* 511 = filler */
 };
diff --git a/sys/compat/ibcs2/ibcs2_syscall.h b/sys/compat/ibcs2/ibcs2_syscall.h
index a966418..b05e529 100644
--- a/sys/compat/ibcs2/ibcs2_syscall.h
+++ b/sys/compat/ibcs2/ibcs2_syscall.h
@@ -1,4 +1,4 @@
-/* $NetBSD: ibcs2_syscall.h,v 1.50 2013/11/07 19:39:57 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
diff --git a/sys/compat/ibcs2/ibcs2_syscallargs.h b/sys/compat/ibcs2/ibcs2_syscallargs.h
index d226753..257f130 100644
--- a/sys/compat/ibcs2/ibcs2_syscallargs.h
+++ b/sys/compat/ibcs2/ibcs2_syscallargs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: ibcs2_syscallargs.h,v 1.51 2013/11/07 19:39:57 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
diff --git a/sys/compat/ibcs2/ibcs2_syscalls.c b/sys/compat/ibcs2/ibcs2_syscalls.c
index 1d373e1..3186cff 100644
--- a/sys/compat/ibcs2/ibcs2_syscalls.c
+++ b/sys/compat/ibcs2/ibcs2_syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: ibcs2_syscalls.c,v 1.51 2013/11/07 19:39:57 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ibcs2_syscalls.c,v 1.51 2013/11/07 19:39:57 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #if defined(_KERNEL_OPT)
@@ -25,6 +25,8 @@ __KERNEL_RCSID(0, "$NetBSD: ibcs2_syscalls.c,v 1.51 2013/11/07 19:39:57 njoly Ex
 #include <compat/ibcs2/ibcs2_signal.h>
 #include <compat/ibcs2/ibcs2_syscallargs.h>
 #include <compat/ibcs2/ibcs2_statfs.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const ibcs2_syscallnames[] = {
@@ -553,3 +555,532 @@ const char *const ibcs2_syscallnames[] = {
 	/* 510 */	"# filler",
 	/* 511 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altibcs2_syscallnames[] = {
+	/*   0 */	"nosys",
+	/*   1 */	NULL, /* exit */
+	/*   2 */	NULL, /* fork */
+	/*   3 */	NULL, /* read */
+	/*   4 */	NULL, /* write */
+	/*   5 */	NULL, /* open */
+	/*   6 */	NULL, /* close */
+	/*   7 */	NULL, /* waitsys */
+	/*   8 */	NULL, /* creat */
+	/*   9 */	NULL, /* link */
+	/*  10 */	NULL, /* unlink */
+	/*  11 */	NULL, /* execv */
+	/*  12 */	NULL, /* chdir */
+	/*  13 */	NULL, /* time */
+	/*  14 */	NULL, /* mknod */
+	/*  15 */	NULL, /* chmod */
+	/*  16 */	NULL, /* __posix_chown */
+	/*  17 */	NULL, /* obreak */
+	/*  18 */	NULL, /* stat */
+	/*  19 */	NULL, /* lseek */
+	/*  20 */	NULL, /* getpid_with_ppid */
+	/*  21 */	NULL, /* mount */
+	/*  22 */	NULL, /* umount */
+	/*  23 */	NULL, /* setuid */
+	/*  24 */	NULL, /* getuid_with_euid */
+	/*  25 */	NULL, /* stime */
+	/*  26 */	NULL, /* unimplemented ibcs2_ptrace */
+	/*  27 */	NULL, /* alarm */
+	/*  28 */	NULL, /* fstat */
+	/*  29 */	NULL, /* pause */
+	/*  30 */	NULL, /* utime */
+	/*  31 */	NULL, /* unimplemented was stty */
+	/*  32 */	NULL, /* gtty */
+	/*  33 */	NULL, /* access */
+	/*  34 */	NULL, /* nice */
+	/*  35 */	NULL, /* statfs */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	NULL, /* kill */
+	/*  38 */	NULL, /* fstatfs */
+	/*  39 */	NULL, /* pgrpsys */
+	/*  40 */	NULL, /* unimplemented ibcs2_xenix */
+	/*  41 */	NULL, /* dup */
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* times */
+	/*  44 */	NULL, /* unimplemented profil */
+	/*  45 */	NULL, /* plock */
+	/*  46 */	NULL, /* setgid */
+	/*  47 */	NULL, /* getgid_with_egid */
+	/*  48 */	NULL, /* sigsys */
+#ifdef SYSVMSG
+	/*  49 */	NULL, /* msgsys */
+#else
+	/*  49 */	NULL, /* unimplemented msgsys */
+#endif
+	/*  50 */	NULL, /* sysmachine */
+	/*  51 */	NULL, /* unimplemented ibcs2_acct */
+#ifdef SYSVSHM
+	/*  52 */	NULL, /* shmsys */
+#else
+	/*  52 */	NULL, /* unimplemented shmsys */
+#endif
+#ifdef SYSVSEM
+	/*  53 */	NULL, /* semsys */
+#else
+	/*  53 */	NULL, /* unimplemented semsys */
+#endif
+	/*  54 */	NULL, /* ioctl */
+	/*  55 */	NULL, /* uadmin */
+	/*  56 */	NULL, /* unimplemented */
+	/*  57 */	NULL, /* utssys */
+	/*  58 */	NULL, /* fsync */
+	/*  59 */	NULL, /* execve */
+	/*  60 */	NULL, /* umask */
+	/*  61 */	NULL, /* chroot */
+	/*  62 */	NULL, /* fcntl */
+	/*  63 */	NULL, /* ulimit */
+	/*  64 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  65 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  66 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  67 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  68 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  69 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  70 */	NULL, /* obsolete rfs_advfs */
+	/*  71 */	NULL, /* obsolete rfs_unadvfs */
+	/*  72 */	NULL, /* obsolete rfs_rmount */
+	/*  73 */	NULL, /* obsolete rfs_rumount */
+	/*  74 */	NULL, /* obsolete rfs_rfstart */
+	/*  75 */	NULL, /* obsolete rfs_sigret */
+	/*  76 */	NULL, /* obsolete rfs_rdebug */
+	/*  77 */	NULL, /* obsolete rfs_rfstop */
+	/*  78 */	NULL, /* unimplemented rfs_rfsys */
+	/*  79 */	NULL, /* rmdir */
+	/*  80 */	NULL, /* mkdir */
+	/*  81 */	NULL, /* getdents */
+	/*  82 */	NULL, /* unimplemented libattach */
+	/*  83 */	NULL, /* unimplemented libdetach */
+	/*  84 */	NULL, /* sysfs */
+	/*  85 */	NULL, /* getmsg */
+	/*  86 */	NULL, /* putmsg */
+	/*  87 */	NULL, /* poll */
+	/*  88 */	NULL, /* unimplemented unknown */
+	/*  89 */	NULL, /* unimplemented secure */
+	/*  90 */	NULL, /* symlink */
+	/*  91 */	NULL, /* lstat */
+	/*  92 */	NULL, /* readlink */
+	/*  93 */	NULL, /* fchmod */
+	/*  94 */	"__posix_fchown",
+	/*  95 */	NULL, /* unimplemented sigprocmask */
+	/*  96 */	NULL, /* sigreturn */
+	/*  97 */	NULL, /* sigaltstack */
+	/*  98 */	NULL, /* unimplemented sigaction */
+	/*  99 */	NULL, /* unimplemented sigpending */
+	/* 100 */	NULL, /* unimplemented getcontext/setcontext/sigsetjmp */
+	/* 101 */	NULL, /* unimplemented envsys */
+	/* 102 */	NULL, /* unimplemented evtrapret */
+	/* 103 */	NULL, /* statvfs */
+	/* 104 */	NULL, /* fstatvfs */
+	/* 105 */	NULL, /* unimplemented isc */
+	/* 106 */	NULL, /* unimplemented nfssys */
+	/* 107 */	NULL, /* unimplemented waitsys */
+	/* 108 */	NULL, /* unimplemented sigsendsys */
+	/* 109 */	NULL, /* unimplemented hrtsys */
+	/* 110 */	NULL, /* unimplemented acancel */
+	/* 111 */	NULL, /* unimplemented async */
+	/* 112 */	NULL, /* unimplemented priocntlsys */
+	/* 113 */	NULL, /* unimplemented pathconf */
+	/* 114 */	NULL, /* unimplemented mincore */
+	/* 115 */	NULL, /* mmap */
+	/* 116 */	NULL, /* mprotect */
+	/* 117 */	NULL, /* munmap */
+	/* 118 */	NULL, /* unimplemented fpathconf */
+	/* 119 */	NULL, /* unimplemented vfork */
+	/* 120 */	NULL, /* fchdir */
+	/* 121 */	NULL, /* readv */
+	/* 122 */	NULL, /* writev */
+	/* 123 */	NULL, /* unimplemented xstat */
+	/* 124 */	NULL, /* unimplemented lxstat */
+	/* 125 */	NULL, /* unimplemented fxstat */
+	/* 126 */	NULL, /* unimplemented xmknod */
+	/* 127 */	NULL, /* unimplemented clocal */
+	/* 128 */	NULL, /* unimplemented setrlimit */
+	/* 129 */	NULL, /* unimplemented getrlimit */
+	/* 130 */	NULL, /* unimplemented lchown */
+	/* 131 */	NULL, /* memcntl */
+	/* 132 */	NULL, /* unimplemented getpmsg */
+	/* 133 */	NULL, /* unimplemented putpmsg */
+	/* 134 */	NULL, /* unimplemented rename */
+	/* 135 */	NULL, /* unimplemented uname */
+	/* 136 */	NULL, /* unimplemented setegid */
+	/* 137 */	NULL, /* unimplemented sysconfig */
+	/* 138 */	NULL, /* unimplemented adjtime */
+	/* 139 */	NULL, /* unimplemented systeminfo */
+	/* 140 */	NULL, /* unimplemented */
+	/* 141 */	NULL, /* unimplemented seteuid */
+	/* 142 */	NULL, /* unimplemented */
+	/* 143 */	NULL, /* unimplemented */
+	/* 144 */	NULL, /* unimplemented */
+	/* 145 */	NULL, /* unimplemented */
+	/* 146 */	NULL, /* unimplemented */
+	/* 147 */	NULL, /* unimplemented */
+	/* 148 */	NULL, /* unimplemented */
+	/* 149 */	NULL, /* unimplemented */
+	/* 150 */	NULL, /* unimplemented */
+	/* 151 */	NULL, /* unimplemented */
+	/* 152 */	NULL, /* unimplemented */
+	/* 153 */	NULL, /* unimplemented */
+	/* 154 */	NULL, /* unimplemented */
+	/* 155 */	NULL, /* unimplemented */
+	/* 156 */	NULL, /* unimplemented */
+	/* 157 */	NULL, /* unimplemented */
+	/* 158 */	NULL, /* unimplemented */
+	/* 159 */	NULL, /* unimplemented */
+	/* 160 */	NULL, /* unimplemented */
+	/* 161 */	NULL, /* unimplemented */
+	/* 162 */	NULL, /* unimplemented */
+	/* 163 */	NULL, /* unimplemented */
+	/* 164 */	NULL, /* unimplemented */
+	/* 165 */	NULL, /* unimplemented */
+	/* 166 */	NULL, /* unimplemented */
+	/* 167 */	NULL, /* unimplemented */
+	/* 168 */	NULL, /* unimplemented */
+	/* 169 */	NULL, /* unimplemented */
+	/* 170 */	NULL, /* unimplemented */
+	/* 171 */	NULL, /* gettimeofday */
+	/* 172 */	NULL, /* settimeofday */
+	/* 173 */	NULL, /* unimplemented */
+	/* 174 */	NULL, /* unimplemented */
+	/* 175 */	NULL, /* unimplemented */
+	/* 176 */	NULL, /* unimplemented */
+	/* 177 */	NULL, /* unimplemented */
+	/* 178 */	NULL, /* unimplemented */
+	/* 179 */	NULL, /* unimplemented */
+	/* 180 */	NULL, /* unimplemented */
+	/* 181 */	NULL, /* unimplemented */
+	/* 182 */	NULL, /* unimplemented */
+	/* 183 */	NULL, /* unimplemented */
+	/* 184 */	NULL, /* unimplemented */
+	/* 185 */	NULL, /* unimplemented */
+	/* 186 */	NULL, /* unimplemented */
+	/* 187 */	NULL, /* unimplemented */
+	/* 188 */	NULL, /* unimplemented */
+	/* 189 */	NULL, /* unimplemented */
+	/* 190 */	NULL, /* unimplemented */
+	/* 191 */	NULL, /* truncate */
+	/* 192 */	NULL, /* ftruncate */
+	/* 193 */	NULL, /* unimplemented */
+	/* 194 */	NULL, /* unimplemented */
+	/* 195 */	NULL, /* unimplemented */
+	/* 196 */	NULL, /* unimplemented */
+	/* 197 */	NULL, /* unimplemented */
+	/* 198 */	NULL, /* unimplemented */
+	/* 199 */	NULL, /* unimplemented */
+	/* 200 */	NULL, /* unimplemented */
+	/* 201 */	NULL, /* locking */
+	/* 202 */	NULL, /* unimplemented xenix_creatsem */
+	/* 203 */	NULL, /* unimplemented xenix_opensem */
+	/* 204 */	NULL, /* unimplemented xenix_sigsem */
+	/* 205 */	NULL, /* unimplemented xenix_waitsem */
+	/* 206 */	NULL, /* unimplemented xenix_nbwaitsem */
+	/* 207 */	NULL, /* rdchk */
+	/* 208 */	NULL, /* unimplemented */
+	/* 209 */	NULL, /* unimplemented */
+	/* 210 */	NULL, /* chsize */
+	/* 211 */	NULL, /* ftime */
+	/* 212 */	NULL, /* nap */
+	/* 213 */	NULL, /* unimplemented xenix_sdget */
+	/* 214 */	NULL, /* unimplemented xenix_sdfree */
+	/* 215 */	NULL, /* unimplemented xenix_sdenter */
+	/* 216 */	NULL, /* unimplemented xenix_sdleave */
+	/* 217 */	NULL, /* unimplemented xenix_sdgetv */
+	/* 218 */	NULL, /* unimplemented xenix_sdwaitv */
+	/* 219 */	NULL, /* unimplemented */
+	/* 220 */	NULL, /* unimplemented */
+	/* 221 */	NULL, /* unimplemented */
+	/* 222 */	NULL, /* unimplemented */
+	/* 223 */	NULL, /* unimplemented */
+	/* 224 */	NULL, /* unimplemented */
+	/* 225 */	NULL, /* unimplemented */
+	/* 226 */	NULL, /* unimplemented */
+	/* 227 */	NULL, /* unimplemented */
+	/* 228 */	NULL, /* unimplemented */
+	/* 229 */	NULL, /* unimplemented */
+	/* 230 */	NULL, /* unimplemented */
+	/* 231 */	NULL, /* unimplemented */
+	/* 232 */	NULL, /* unimplemented xenix_proctl */
+	/* 233 */	NULL, /* unimplemented xenix_execseg */
+	/* 234 */	NULL, /* unimplemented xenix_unexecseg */
+	/* 235 */	NULL, /* unimplemented */
+	/* 236 */	NULL, /* select */
+	/* 237 */	NULL, /* eaccess */
+	/* 238 */	NULL, /* unimplemented xenix_paccess */
+	/* 239 */	NULL, /* sigaction */
+	/* 240 */	NULL, /* sigprocmask */
+	/* 241 */	NULL, /* sigpending */
+	/* 242 */	NULL, /* sigsuspend */
+	/* 243 */	NULL, /* getgroups */
+	/* 244 */	NULL, /* setgroups */
+	/* 245 */	NULL, /* sysconf */
+	/* 246 */	NULL, /* pathconf */
+	/* 247 */	NULL, /* fpathconf */
+	/* 248 */	NULL, /* __posix_rename */
+	/* 249 */	NULL, /* unimplemented */
+	/* 250 */	NULL, /* scoinfo */
+	/* 251 */	NULL, /* unimplemented */
+	/* 252 */	NULL, /* unimplemented */
+	/* 253 */	NULL, /* unimplemented */
+	/* 254 */	NULL, /* unimplemented */
+	/* 255 */	NULL, /* unimplemented getitimer */
+	/* 256 */	NULL, /* unimplemented setitimer */
+	/* 257 */	NULL, /* unimplemented */
+	/* 258 */	NULL, /* unimplemented setreuid */
+	/* 259 */	NULL, /* unimplemented setregid */
+	/* 260 */	NULL, /* filler */
+	/* 261 */	NULL, /* filler */
+	/* 262 */	NULL, /* filler */
+	/* 263 */	NULL, /* filler */
+	/* 264 */	NULL, /* filler */
+	/* 265 */	NULL, /* filler */
+	/* 266 */	NULL, /* filler */
+	/* 267 */	NULL, /* filler */
+	/* 268 */	NULL, /* filler */
+	/* 269 */	NULL, /* filler */
+	/* 270 */	NULL, /* filler */
+	/* 271 */	NULL, /* filler */
+	/* 272 */	NULL, /* filler */
+	/* 273 */	NULL, /* filler */
+	/* 274 */	NULL, /* filler */
+	/* 275 */	NULL, /* filler */
+	/* 276 */	NULL, /* filler */
+	/* 277 */	NULL, /* filler */
+	/* 278 */	NULL, /* filler */
+	/* 279 */	NULL, /* filler */
+	/* 280 */	NULL, /* filler */
+	/* 281 */	NULL, /* filler */
+	/* 282 */	NULL, /* filler */
+	/* 283 */	NULL, /* filler */
+	/* 284 */	NULL, /* filler */
+	/* 285 */	NULL, /* filler */
+	/* 286 */	NULL, /* filler */
+	/* 287 */	NULL, /* filler */
+	/* 288 */	NULL, /* filler */
+	/* 289 */	NULL, /* filler */
+	/* 290 */	NULL, /* filler */
+	/* 291 */	NULL, /* filler */
+	/* 292 */	NULL, /* filler */
+	/* 293 */	NULL, /* filler */
+	/* 294 */	NULL, /* filler */
+	/* 295 */	NULL, /* filler */
+	/* 296 */	NULL, /* filler */
+	/* 297 */	NULL, /* filler */
+	/* 298 */	NULL, /* filler */
+	/* 299 */	NULL, /* filler */
+	/* 300 */	NULL, /* filler */
+	/* 301 */	NULL, /* filler */
+	/* 302 */	NULL, /* filler */
+	/* 303 */	NULL, /* filler */
+	/* 304 */	NULL, /* filler */
+	/* 305 */	NULL, /* filler */
+	/* 306 */	NULL, /* filler */
+	/* 307 */	NULL, /* filler */
+	/* 308 */	NULL, /* filler */
+	/* 309 */	NULL, /* filler */
+	/* 310 */	NULL, /* filler */
+	/* 311 */	NULL, /* filler */
+	/* 312 */	NULL, /* filler */
+	/* 313 */	NULL, /* filler */
+	/* 314 */	NULL, /* filler */
+	/* 315 */	NULL, /* filler */
+	/* 316 */	NULL, /* filler */
+	/* 317 */	NULL, /* filler */
+	/* 318 */	NULL, /* filler */
+	/* 319 */	NULL, /* filler */
+	/* 320 */	NULL, /* filler */
+	/* 321 */	NULL, /* filler */
+	/* 322 */	NULL, /* filler */
+	/* 323 */	NULL, /* filler */
+	/* 324 */	NULL, /* filler */
+	/* 325 */	NULL, /* filler */
+	/* 326 */	NULL, /* filler */
+	/* 327 */	NULL, /* filler */
+	/* 328 */	NULL, /* filler */
+	/* 329 */	NULL, /* filler */
+	/* 330 */	NULL, /* filler */
+	/* 331 */	NULL, /* filler */
+	/* 332 */	NULL, /* filler */
+	/* 333 */	NULL, /* filler */
+	/* 334 */	NULL, /* filler */
+	/* 335 */	NULL, /* filler */
+	/* 336 */	NULL, /* filler */
+	/* 337 */	NULL, /* filler */
+	/* 338 */	NULL, /* filler */
+	/* 339 */	NULL, /* filler */
+	/* 340 */	NULL, /* filler */
+	/* 341 */	NULL, /* filler */
+	/* 342 */	NULL, /* filler */
+	/* 343 */	NULL, /* filler */
+	/* 344 */	NULL, /* filler */
+	/* 345 */	NULL, /* filler */
+	/* 346 */	NULL, /* filler */
+	/* 347 */	NULL, /* filler */
+	/* 348 */	NULL, /* filler */
+	/* 349 */	NULL, /* filler */
+	/* 350 */	NULL, /* filler */
+	/* 351 */	NULL, /* filler */
+	/* 352 */	NULL, /* filler */
+	/* 353 */	NULL, /* filler */
+	/* 354 */	NULL, /* filler */
+	/* 355 */	NULL, /* filler */
+	/* 356 */	NULL, /* filler */
+	/* 357 */	NULL, /* filler */
+	/* 358 */	NULL, /* filler */
+	/* 359 */	NULL, /* filler */
+	/* 360 */	NULL, /* filler */
+	/* 361 */	NULL, /* filler */
+	/* 362 */	NULL, /* filler */
+	/* 363 */	NULL, /* filler */
+	/* 364 */	NULL, /* filler */
+	/* 365 */	NULL, /* filler */
+	/* 366 */	NULL, /* filler */
+	/* 367 */	NULL, /* filler */
+	/* 368 */	NULL, /* filler */
+	/* 369 */	NULL, /* filler */
+	/* 370 */	NULL, /* filler */
+	/* 371 */	NULL, /* filler */
+	/* 372 */	NULL, /* filler */
+	/* 373 */	NULL, /* filler */
+	/* 374 */	NULL, /* filler */
+	/* 375 */	NULL, /* filler */
+	/* 376 */	NULL, /* filler */
+	/* 377 */	NULL, /* filler */
+	/* 378 */	NULL, /* filler */
+	/* 379 */	NULL, /* filler */
+	/* 380 */	NULL, /* filler */
+	/* 381 */	NULL, /* filler */
+	/* 382 */	NULL, /* filler */
+	/* 383 */	NULL, /* filler */
+	/* 384 */	NULL, /* filler */
+	/* 385 */	NULL, /* filler */
+	/* 386 */	NULL, /* filler */
+	/* 387 */	NULL, /* filler */
+	/* 388 */	NULL, /* filler */
+	/* 389 */	NULL, /* filler */
+	/* 390 */	NULL, /* filler */
+	/* 391 */	NULL, /* filler */
+	/* 392 */	NULL, /* filler */
+	/* 393 */	NULL, /* filler */
+	/* 394 */	NULL, /* filler */
+	/* 395 */	NULL, /* filler */
+	/* 396 */	NULL, /* filler */
+	/* 397 */	NULL, /* filler */
+	/* 398 */	NULL, /* filler */
+	/* 399 */	NULL, /* filler */
+	/* 400 */	NULL, /* filler */
+	/* 401 */	NULL, /* filler */
+	/* 402 */	NULL, /* filler */
+	/* 403 */	NULL, /* filler */
+	/* 404 */	NULL, /* filler */
+	/* 405 */	NULL, /* filler */
+	/* 406 */	NULL, /* filler */
+	/* 407 */	NULL, /* filler */
+	/* 408 */	NULL, /* filler */
+	/* 409 */	NULL, /* filler */
+	/* 410 */	NULL, /* filler */
+	/* 411 */	NULL, /* filler */
+	/* 412 */	NULL, /* filler */
+	/* 413 */	NULL, /* filler */
+	/* 414 */	NULL, /* filler */
+	/* 415 */	NULL, /* filler */
+	/* 416 */	NULL, /* filler */
+	/* 417 */	NULL, /* filler */
+	/* 418 */	NULL, /* filler */
+	/* 419 */	NULL, /* filler */
+	/* 420 */	NULL, /* filler */
+	/* 421 */	NULL, /* filler */
+	/* 422 */	NULL, /* filler */
+	/* 423 */	NULL, /* filler */
+	/* 424 */	NULL, /* filler */
+	/* 425 */	NULL, /* filler */
+	/* 426 */	NULL, /* filler */
+	/* 427 */	NULL, /* filler */
+	/* 428 */	NULL, /* filler */
+	/* 429 */	NULL, /* filler */
+	/* 430 */	NULL, /* filler */
+	/* 431 */	NULL, /* filler */
+	/* 432 */	NULL, /* filler */
+	/* 433 */	NULL, /* filler */
+	/* 434 */	NULL, /* filler */
+	/* 435 */	NULL, /* filler */
+	/* 436 */	NULL, /* filler */
+	/* 437 */	NULL, /* filler */
+	/* 438 */	NULL, /* filler */
+	/* 439 */	NULL, /* filler */
+	/* 440 */	NULL, /* filler */
+	/* 441 */	NULL, /* filler */
+	/* 442 */	NULL, /* filler */
+	/* 443 */	NULL, /* filler */
+	/* 444 */	NULL, /* filler */
+	/* 445 */	NULL, /* filler */
+	/* 446 */	NULL, /* filler */
+	/* 447 */	NULL, /* filler */
+	/* 448 */	NULL, /* filler */
+	/* 449 */	NULL, /* filler */
+	/* 450 */	NULL, /* filler */
+	/* 451 */	NULL, /* filler */
+	/* 452 */	NULL, /* filler */
+	/* 453 */	NULL, /* filler */
+	/* 454 */	NULL, /* filler */
+	/* 455 */	NULL, /* filler */
+	/* 456 */	NULL, /* filler */
+	/* 457 */	NULL, /* filler */
+	/* 458 */	NULL, /* filler */
+	/* 459 */	NULL, /* filler */
+	/* 460 */	NULL, /* filler */
+	/* 461 */	NULL, /* filler */
+	/* 462 */	NULL, /* filler */
+	/* 463 */	NULL, /* filler */
+	/* 464 */	NULL, /* filler */
+	/* 465 */	NULL, /* filler */
+	/* 466 */	NULL, /* filler */
+	/* 467 */	NULL, /* filler */
+	/* 468 */	NULL, /* filler */
+	/* 469 */	NULL, /* filler */
+	/* 470 */	NULL, /* filler */
+	/* 471 */	NULL, /* filler */
+	/* 472 */	NULL, /* filler */
+	/* 473 */	NULL, /* filler */
+	/* 474 */	NULL, /* filler */
+	/* 475 */	NULL, /* filler */
+	/* 476 */	NULL, /* filler */
+	/* 477 */	NULL, /* filler */
+	/* 478 */	NULL, /* filler */
+	/* 479 */	NULL, /* filler */
+	/* 480 */	NULL, /* filler */
+	/* 481 */	NULL, /* filler */
+	/* 482 */	NULL, /* filler */
+	/* 483 */	NULL, /* filler */
+	/* 484 */	NULL, /* filler */
+	/* 485 */	NULL, /* filler */
+	/* 486 */	NULL, /* filler */
+	/* 487 */	NULL, /* filler */
+	/* 488 */	NULL, /* filler */
+	/* 489 */	NULL, /* filler */
+	/* 490 */	NULL, /* filler */
+	/* 491 */	NULL, /* filler */
+	/* 492 */	NULL, /* filler */
+	/* 493 */	NULL, /* filler */
+	/* 494 */	NULL, /* filler */
+	/* 495 */	NULL, /* filler */
+	/* 496 */	NULL, /* filler */
+	/* 497 */	NULL, /* filler */
+	/* 498 */	NULL, /* filler */
+	/* 499 */	NULL, /* filler */
+	/* 500 */	NULL, /* filler */
+	/* 501 */	NULL, /* filler */
+	/* 502 */	NULL, /* filler */
+	/* 503 */	NULL, /* filler */
+	/* 504 */	NULL, /* filler */
+	/* 505 */	NULL, /* filler */
+	/* 506 */	NULL, /* filler */
+	/* 507 */	NULL, /* filler */
+	/* 508 */	NULL, /* filler */
+	/* 509 */	NULL, /* filler */
+	/* 510 */	NULL, /* filler */
+	/* 511 */	NULL, /* filler */
+};
diff --git a/sys/compat/ibcs2/ibcs2_sysent.c b/sys/compat/ibcs2/ibcs2_sysent.c
index 92f8aed..dd69f12 100644
--- a/sys/compat/ibcs2/ibcs2_sysent.c
+++ b/sys/compat/ibcs2/ibcs2_sysent.c
@@ -1,4 +1,4 @@
-/* $NetBSD: ibcs2_sysent.c,v 1.52 2013/11/07 19:39:57 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ibcs2_sysent.c,v 1.52 2013/11/07 19:39:57 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include "opt_sysv.h"
@@ -31,1042 +31,1042 @@ __KERNEL_RCSID(0, "$NetBSD: ibcs2_sysent.c,v 1.52 2013/11/07 19:39:57 njoly Exp
 
 struct sysent ibcs2_sysent[] = {
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_nosys },		/* 0 = syscall */
+	    (sy_call_t *)sys_nosys, 0, 0 },		/* 0 = syscall */
 	{ ns(struct sys_exit_args), 0,
-	    (sy_call_t *)sys_exit },		/* 1 = exit */
+	    (sy_call_t *)sys_exit, 0, 0 },		/* 1 = exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct ibcs2_sys_read_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_read },	/* 3 = read */
+	    (sy_call_t *)ibcs2_sys_read, 0, 0 },	/* 3 = read */
 	{ ns(struct sys_write_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_write },		/* 4 = write */
+	    (sy_call_t *)sys_write, 0, 0 },		/* 4 = write */
 	{ ns(struct ibcs2_sys_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_open },	/* 5 = open */
+	    (sy_call_t *)ibcs2_sys_open, 0, 0 },	/* 5 = open */
 	{ ns(struct sys_close_args), 0,
-	    (sy_call_t *)sys_close },		/* 6 = close */
+	    (sy_call_t *)sys_close, 0, 0 },		/* 6 = close */
 	{ ns(struct ibcs2_sys_waitsys_args), 0,
-	    (sy_call_t *)ibcs2_sys_waitsys },	/* 7 = waitsys */
+	    (sy_call_t *)ibcs2_sys_waitsys, 0, 0 },	/* 7 = waitsys */
 	{ ns(struct ibcs2_sys_creat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_creat },	/* 8 = creat */
+	    (sy_call_t *)ibcs2_sys_creat, 0, 0 },	/* 8 = creat */
 	{ ns(struct sys_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_link },		/* 9 = link */
+	    (sy_call_t *)sys_link, 0, 0 },		/* 9 = link */
 	{ ns(struct sys_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_unlink },		/* 10 = unlink */
+	    (sy_call_t *)sys_unlink, 0, 0 },		/* 10 = unlink */
 	{ ns(struct ibcs2_sys_execv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_execv },	/* 11 = execv */
+	    (sy_call_t *)ibcs2_sys_execv, 0, 0 },	/* 11 = execv */
 	{ ns(struct sys_chdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chdir },		/* 12 = chdir */
+	    (sy_call_t *)sys_chdir, 0, 0 },		/* 12 = chdir */
 	{ ns(struct ibcs2_sys_time_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_time },	/* 13 = time */
+	    (sy_call_t *)ibcs2_sys_time, 0, 0 },	/* 13 = time */
 	{ ns(struct ibcs2_sys_mknod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_mknod },	/* 14 = mknod */
+	    (sy_call_t *)ibcs2_sys_mknod, 0, 0 },	/* 14 = mknod */
 	{ ns(struct sys_chmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chmod },		/* 15 = chmod */
+	    (sy_call_t *)sys_chmod, 0, 0 },		/* 15 = chmod */
 	{ ns(struct sys___posix_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_chown },	/* 16 = __posix_chown */
+	    (sy_call_t *)sys___posix_chown, 0, 0 },	/* 16 = __posix_chown */
 	{ ns(struct sys_obreak_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_obreak },		/* 17 = obreak */
+	    (sy_call_t *)sys_obreak, 0, 0 },		/* 17 = obreak */
 	{ ns(struct ibcs2_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_stat },	/* 18 = stat */
+	    (sy_call_t *)ibcs2_sys_stat, 0, 0 },	/* 18 = stat */
 	{ ns(struct compat_43_sys_lseek_args), 0,
-	    (sy_call_t *)compat_43_sys_lseek },	/* 19 = lseek */
+	    (sy_call_t *)compat_43_sys_lseek, 0, 0 },	/* 19 = lseek */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid_with_ppid },/* 20 = getpid_with_ppid */
+	    (sy_call_t *)sys_getpid_with_ppid, 0, 0 },/* 20 = getpid_with_ppid */
 	{ ns(struct ibcs2_sys_mount_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_mount },	/* 21 = mount */
+	    (sy_call_t *)ibcs2_sys_mount, 0, 0 },	/* 21 = mount */
 	{ ns(struct ibcs2_sys_umount_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_umount },	/* 22 = umount */
+	    (sy_call_t *)ibcs2_sys_umount, 0, 0 },	/* 22 = umount */
 	{ ns(struct ibcs2_sys_setuid_args), 0,
-	    (sy_call_t *)ibcs2_sys_setuid },	/* 23 = setuid */
+	    (sy_call_t *)ibcs2_sys_setuid, 0, 0 },	/* 23 = setuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid_with_euid },/* 24 = getuid_with_euid */
+	    (sy_call_t *)sys_getuid_with_euid, 0, 0 },/* 24 = getuid_with_euid */
 	{ ns(struct ibcs2_sys_stime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_stime },	/* 25 = stime */
+	    (sy_call_t *)ibcs2_sys_stime, 0, 0 },	/* 25 = stime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 26 = unimplemented ibcs2_ptrace */
+	    sys_nosys, 0, 0 },			/* 26 = unimplemented ibcs2_ptrace */
 	{ ns(struct ibcs2_sys_alarm_args), 0,
-	    (sy_call_t *)ibcs2_sys_alarm },	/* 27 = alarm */
+	    (sy_call_t *)ibcs2_sys_alarm, 0, 0 },	/* 27 = alarm */
 	{ ns(struct ibcs2_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_fstat },	/* 28 = fstat */
+	    (sy_call_t *)ibcs2_sys_fstat, 0, 0 },	/* 28 = fstat */
 	{ 0, 0, 0,
-	    (sy_call_t *)ibcs2_sys_pause },	/* 29 = pause */
+	    (sy_call_t *)ibcs2_sys_pause, 0, 0 },	/* 29 = pause */
 	{ ns(struct ibcs2_sys_utime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_utime },	/* 30 = utime */
+	    (sy_call_t *)ibcs2_sys_utime, 0, 0 },	/* 30 = utime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 31 = unimplemented was stty */
+	    sys_nosys, 0, 0 },			/* 31 = unimplemented was stty */
 	{ ns(struct ibcs2_sys_gtty_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_gtty },	/* 32 = gtty */
+	    (sy_call_t *)ibcs2_sys_gtty, 0, 0 },	/* 32 = gtty */
 	{ ns(struct ibcs2_sys_access_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_access },	/* 33 = access */
+	    (sy_call_t *)ibcs2_sys_access, 0, 0 },	/* 33 = access */
 	{ ns(struct ibcs2_sys_nice_args), 0,
-	    (sy_call_t *)ibcs2_sys_nice },	/* 34 = nice */
+	    (sy_call_t *)ibcs2_sys_nice, 0, 0 },	/* 34 = nice */
 	{ ns(struct ibcs2_sys_statfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_statfs },	/* 35 = statfs */
+	    (sy_call_t *)ibcs2_sys_statfs, 0, 0 },	/* 35 = statfs */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct ibcs2_sys_kill_args), 0,
-	    (sy_call_t *)ibcs2_sys_kill },	/* 37 = kill */
+	    (sy_call_t *)ibcs2_sys_kill, 0, 0 },	/* 37 = kill */
 	{ ns(struct ibcs2_sys_fstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_fstatfs },	/* 38 = fstatfs */
+	    (sy_call_t *)ibcs2_sys_fstatfs, 0, 0 },	/* 38 = fstatfs */
 	{ ns(struct ibcs2_sys_pgrpsys_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_pgrpsys },	/* 39 = pgrpsys */
+	    (sy_call_t *)ibcs2_sys_pgrpsys, 0, 0 },	/* 39 = pgrpsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 40 = unimplemented ibcs2_xenix */
+	    sys_nosys, 0, 0 },			/* 40 = unimplemented ibcs2_xenix */
 	{ ns(struct sys_dup_args), 0,
-	    (sy_call_t *)sys_dup },		/* 41 = dup */
+	    (sy_call_t *)sys_dup, 0, 0 },		/* 41 = dup */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_pipe },		/* 42 = pipe */
+	    (sy_call_t *)sys_pipe, 0, 0 },		/* 42 = pipe */
 	{ ns(struct ibcs2_sys_times_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_times },	/* 43 = times */
+	    (sy_call_t *)ibcs2_sys_times, 0, 0 },	/* 43 = times */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 44 = unimplemented profil */
+	    sys_nosys, 0, 0 },			/* 44 = unimplemented profil */
 	{ ns(struct ibcs2_sys_plock_args), 0,
-	    (sy_call_t *)ibcs2_sys_plock },	/* 45 = plock */
+	    (sy_call_t *)ibcs2_sys_plock, 0, 0 },	/* 45 = plock */
 	{ ns(struct ibcs2_sys_setgid_args), 0,
-	    (sy_call_t *)ibcs2_sys_setgid },	/* 46 = setgid */
+	    (sy_call_t *)ibcs2_sys_setgid, 0, 0 },	/* 46 = setgid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid_with_egid },/* 47 = getgid_with_egid */
+	    (sy_call_t *)sys_getgid_with_egid, 0, 0 },/* 47 = getgid_with_egid */
 	{ ns(struct ibcs2_sys_sigsys_args), 0,
-	    (sy_call_t *)ibcs2_sys_sigsys },	/* 48 = sigsys */
+	    (sy_call_t *)ibcs2_sys_sigsys, 0, 0 },	/* 48 = sigsys */
 #ifdef SYSVMSG
 	{ ns(struct ibcs2_sys_msgsys_args), 0,
-	    (sy_call_t *)ibcs2_sys_msgsys },	/* 49 = msgsys */
+	    (sy_call_t *)ibcs2_sys_msgsys, 0, 0 },	/* 49 = msgsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 49 = unimplemented msgsys */
+	    sys_nosys, 0, 0 },			/* 49 = unimplemented msgsys */
 #endif
 	{ ns(struct ibcs2_sys_sysmachine_args), 0,
-	    (sy_call_t *)ibcs2_sys_sysmachine },/* 50 = sysmachine */
+	    (sy_call_t *)ibcs2_sys_sysmachine, 0, 0 },/* 50 = sysmachine */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 51 = unimplemented ibcs2_acct */
+	    sys_nosys, 0, 0 },			/* 51 = unimplemented ibcs2_acct */
 #ifdef SYSVSHM
 	{ ns(struct ibcs2_sys_shmsys_args), 0,
-	    (sy_call_t *)ibcs2_sys_shmsys },	/* 52 = shmsys */
+	    (sy_call_t *)ibcs2_sys_shmsys, 0, 0 },	/* 52 = shmsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 52 = unimplemented shmsys */
+	    sys_nosys, 0, 0 },			/* 52 = unimplemented shmsys */
 #endif
 #ifdef SYSVSEM
 	{ ns(struct ibcs2_sys_semsys_args), 0,
-	    (sy_call_t *)ibcs2_sys_semsys },	/* 53 = semsys */
+	    (sy_call_t *)ibcs2_sys_semsys, 0, 0 },	/* 53 = semsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 53 = unimplemented semsys */
+	    sys_nosys, 0, 0 },			/* 53 = unimplemented semsys */
 #endif
 	{ ns(struct ibcs2_sys_ioctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_ioctl },	/* 54 = ioctl */
+	    (sy_call_t *)ibcs2_sys_ioctl, 0, 0 },	/* 54 = ioctl */
 	{ ns(struct ibcs2_sys_uadmin_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_uadmin },	/* 55 = uadmin */
+	    (sy_call_t *)ibcs2_sys_uadmin, 0, 0 },	/* 55 = uadmin */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 56 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 56 = unimplemented */
 	{ ns(struct ibcs2_sys_utssys_args), 0,
-	    (sy_call_t *)ibcs2_sys_utssys },	/* 57 = utssys */
+	    (sy_call_t *)ibcs2_sys_utssys, 0, 0 },	/* 57 = utssys */
 	{ ns(struct sys_fsync_args), 0,
-	    (sy_call_t *)sys_fsync },		/* 58 = fsync */
+	    (sy_call_t *)sys_fsync, 0, 0 },		/* 58 = fsync */
 	{ ns(struct ibcs2_sys_execve_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_execve },	/* 59 = execve */
+	    (sy_call_t *)ibcs2_sys_execve, 0, 0 },	/* 59 = execve */
 	{ ns(struct sys_umask_args), 0,
-	    (sy_call_t *)sys_umask },		/* 60 = umask */
+	    (sy_call_t *)sys_umask, 0, 0 },		/* 60 = umask */
 	{ ns(struct sys_chroot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chroot },		/* 61 = chroot */
+	    (sy_call_t *)sys_chroot, 0, 0 },		/* 61 = chroot */
 	{ ns(struct ibcs2_sys_fcntl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_fcntl },	/* 62 = fcntl */
+	    (sy_call_t *)ibcs2_sys_fcntl, 0, 0 },	/* 62 = fcntl */
 	{ ns(struct ibcs2_sys_ulimit_args), 0,
-	    (sy_call_t *)ibcs2_sys_ulimit },	/* 63 = ulimit */
+	    (sy_call_t *)ibcs2_sys_ulimit, 0, 0 },	/* 63 = ulimit */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 64 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 64 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 65 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 65 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 66 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 66 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 67 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 67 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 68 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 68 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 69 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 69 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 70 = obsolete rfs_advfs */
+	    sys_nosys, 0, 0 },			/* 70 = obsolete rfs_advfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 71 = obsolete rfs_unadvfs */
+	    sys_nosys, 0, 0 },			/* 71 = obsolete rfs_unadvfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 72 = obsolete rfs_rmount */
+	    sys_nosys, 0, 0 },			/* 72 = obsolete rfs_rmount */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 73 = obsolete rfs_rumount */
+	    sys_nosys, 0, 0 },			/* 73 = obsolete rfs_rumount */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 74 = obsolete rfs_rfstart */
+	    sys_nosys, 0, 0 },			/* 74 = obsolete rfs_rfstart */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 75 = obsolete rfs_sigret */
+	    sys_nosys, 0, 0 },			/* 75 = obsolete rfs_sigret */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 76 = obsolete rfs_rdebug */
+	    sys_nosys, 0, 0 },			/* 76 = obsolete rfs_rdebug */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 77 = obsolete rfs_rfstop */
+	    sys_nosys, 0, 0 },			/* 77 = obsolete rfs_rfstop */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 78 = unimplemented rfs_rfsys */
+	    sys_nosys, 0, 0 },			/* 78 = unimplemented rfs_rfsys */
 	{ ns(struct sys_rmdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rmdir },		/* 79 = rmdir */
+	    (sy_call_t *)sys_rmdir, 0, 0 },		/* 79 = rmdir */
 	{ ns(struct sys_mkdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdir },		/* 80 = mkdir */
+	    (sy_call_t *)sys_mkdir, 0, 0 },		/* 80 = mkdir */
 	{ ns(struct ibcs2_sys_getdents_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_getdents },	/* 81 = getdents */
+	    (sy_call_t *)ibcs2_sys_getdents, 0, 0 },	/* 81 = getdents */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 82 = unimplemented libattach */
+	    sys_nosys, 0, 0 },			/* 82 = unimplemented libattach */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 83 = unimplemented libdetach */
+	    sys_nosys, 0, 0 },			/* 83 = unimplemented libdetach */
 	{ ns(struct ibcs2_sys_sysfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_sysfs },	/* 84 = sysfs */
+	    (sy_call_t *)ibcs2_sys_sysfs, 0, 0 },	/* 84 = sysfs */
 	{ ns(struct ibcs2_sys_getmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_getmsg },	/* 85 = getmsg */
+	    (sy_call_t *)ibcs2_sys_getmsg, 0, 0 },	/* 85 = getmsg */
 	{ ns(struct ibcs2_sys_putmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_putmsg },	/* 86 = putmsg */
+	    (sy_call_t *)ibcs2_sys_putmsg, 0, 0 },	/* 86 = putmsg */
 	{ ns(struct sys_poll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_poll },		/* 87 = poll */
+	    (sy_call_t *)sys_poll, 0, 0 },		/* 87 = poll */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 88 = unimplemented unknown */
+	    sys_nosys, 0, 0 },			/* 88 = unimplemented unknown */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 89 = unimplemented secure */
+	    sys_nosys, 0, 0 },			/* 89 = unimplemented secure */
 	{ ns(struct sys_symlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlink },		/* 90 = symlink */
+	    (sy_call_t *)sys_symlink, 0, 0 },		/* 90 = symlink */
 	{ ns(struct ibcs2_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_lstat },	/* 91 = lstat */
+	    (sy_call_t *)ibcs2_sys_lstat, 0, 0 },	/* 91 = lstat */
 	{ ns(struct sys_readlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlink },	/* 92 = readlink */
+	    (sy_call_t *)sys_readlink, 0, 0 },	/* 92 = readlink */
 	{ ns(struct sys_fchmod_args), 0,
-	    (sy_call_t *)sys_fchmod },		/* 93 = fchmod */
+	    (sy_call_t *)sys_fchmod, 0, 0 },		/* 93 = fchmod */
 	{ ns(struct sys___posix_fchown_args), 0,
-	    (sy_call_t *)sys___posix_fchown },	/* 94 = fchown */
+	    (sy_call_t *)sys___posix_fchown, 0, 0 },	/* 94 = fchown */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 95 = unimplemented sigprocmask */
+	    sys_nosys, 0, 0 },			/* 95 = unimplemented sigprocmask */
 	{ ns(struct compat_16_sys___sigreturn14_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_16_sys___sigreturn14 },/* 96 = sigreturn */
+	    (sy_call_t *)compat_16_sys___sigreturn14, 0, 0 },/* 96 = sigreturn */
 	{ ns(struct ibcs2_sys_sigaltstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_sigaltstack },/* 97 = sigaltstack */
+	    (sy_call_t *)ibcs2_sys_sigaltstack, 0, 0 },/* 97 = sigaltstack */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 98 = unimplemented sigaction */
+	    sys_nosys, 0, 0 },			/* 98 = unimplemented sigaction */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 99 = unimplemented sigpending */
+	    sys_nosys, 0, 0 },			/* 99 = unimplemented sigpending */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 100 = unimplemented getcontext/setcontext/sigsetjmp */
+	    sys_nosys, 0, 0 },			/* 100 = unimplemented getcontext/setcontext/sigsetjmp */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 101 = unimplemented envsys */
+	    sys_nosys, 0, 0 },			/* 101 = unimplemented envsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 102 = unimplemented evtrapret */
+	    sys_nosys, 0, 0 },			/* 102 = unimplemented evtrapret */
 	{ ns(struct ibcs2_sys_statvfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_statvfs },	/* 103 = statvfs */
+	    (sy_call_t *)ibcs2_sys_statvfs, 0, 0 },	/* 103 = statvfs */
 	{ ns(struct ibcs2_sys_fstatvfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_fstatvfs },	/* 104 = fstatvfs */
+	    (sy_call_t *)ibcs2_sys_fstatvfs, 0, 0 },	/* 104 = fstatvfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 105 = unimplemented isc */
+	    sys_nosys, 0, 0 },			/* 105 = unimplemented isc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 106 = unimplemented nfssys */
+	    sys_nosys, 0, 0 },			/* 106 = unimplemented nfssys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 107 = unimplemented waitsys */
+	    sys_nosys, 0, 0 },			/* 107 = unimplemented waitsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 108 = unimplemented sigsendsys */
+	    sys_nosys, 0, 0 },			/* 108 = unimplemented sigsendsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 109 = unimplemented hrtsys */
+	    sys_nosys, 0, 0 },			/* 109 = unimplemented hrtsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 110 = unimplemented acancel */
+	    sys_nosys, 0, 0 },			/* 110 = unimplemented acancel */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 111 = unimplemented async */
+	    sys_nosys, 0, 0 },			/* 111 = unimplemented async */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 112 = unimplemented priocntlsys */
+	    sys_nosys, 0, 0 },			/* 112 = unimplemented priocntlsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 113 = unimplemented pathconf */
+	    sys_nosys, 0, 0 },			/* 113 = unimplemented pathconf */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 114 = unimplemented mincore */
+	    sys_nosys, 0, 0 },			/* 114 = unimplemented mincore */
 	{ ns(struct ibcs2_sys_mmap_args), 0,
-	    (sy_call_t *)ibcs2_sys_mmap },	/* 115 = mmap */
+	    (sy_call_t *)ibcs2_sys_mmap, 0, 0 },	/* 115 = mmap */
 	{ ns(struct sys_mprotect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mprotect },	/* 116 = mprotect */
+	    (sy_call_t *)sys_mprotect, 0, 0 },	/* 116 = mprotect */
 	{ ns(struct sys_munmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munmap },		/* 117 = munmap */
+	    (sy_call_t *)sys_munmap, 0, 0 },		/* 117 = munmap */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 118 = unimplemented fpathconf */
+	    sys_nosys, 0, 0 },			/* 118 = unimplemented fpathconf */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 119 = unimplemented vfork */
+	    sys_nosys, 0, 0 },			/* 119 = unimplemented vfork */
 	{ ns(struct sys_fchdir_args), 0,
-	    (sy_call_t *)sys_fchdir },		/* 120 = fchdir */
+	    (sy_call_t *)sys_fchdir, 0, 0 },		/* 120 = fchdir */
 	{ ns(struct sys_readv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readv },		/* 121 = readv */
+	    (sy_call_t *)sys_readv, 0, 0 },		/* 121 = readv */
 	{ ns(struct sys_writev_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_writev },		/* 122 = writev */
+	    (sy_call_t *)sys_writev, 0, 0 },		/* 122 = writev */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 123 = unimplemented xstat */
+	    sys_nosys, 0, 0 },			/* 123 = unimplemented xstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 124 = unimplemented lxstat */
+	    sys_nosys, 0, 0 },			/* 124 = unimplemented lxstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 125 = unimplemented fxstat */
+	    sys_nosys, 0, 0 },			/* 125 = unimplemented fxstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 126 = unimplemented xmknod */
+	    sys_nosys, 0, 0 },			/* 126 = unimplemented xmknod */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 127 = unimplemented clocal */
+	    sys_nosys, 0, 0 },			/* 127 = unimplemented clocal */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 128 = unimplemented setrlimit */
+	    sys_nosys, 0, 0 },			/* 128 = unimplemented setrlimit */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 129 = unimplemented getrlimit */
+	    sys_nosys, 0, 0 },			/* 129 = unimplemented getrlimit */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 130 = unimplemented lchown */
+	    sys_nosys, 0, 0 },			/* 130 = unimplemented lchown */
 	{ ns(struct ibcs2_sys_memcntl_args), 0,
-	    (sy_call_t *)ibcs2_sys_memcntl },	/* 131 = memcntl */
+	    (sy_call_t *)ibcs2_sys_memcntl, 0, 0 },	/* 131 = memcntl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 132 = unimplemented getpmsg */
+	    sys_nosys, 0, 0 },			/* 132 = unimplemented getpmsg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 133 = unimplemented putpmsg */
+	    sys_nosys, 0, 0 },			/* 133 = unimplemented putpmsg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 134 = unimplemented rename */
+	    sys_nosys, 0, 0 },			/* 134 = unimplemented rename */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 135 = unimplemented uname */
+	    sys_nosys, 0, 0 },			/* 135 = unimplemented uname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 136 = unimplemented setegid */
+	    sys_nosys, 0, 0 },			/* 136 = unimplemented setegid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 137 = unimplemented sysconfig */
+	    sys_nosys, 0, 0 },			/* 137 = unimplemented sysconfig */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 138 = unimplemented adjtime */
+	    sys_nosys, 0, 0 },			/* 138 = unimplemented adjtime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 139 = unimplemented systeminfo */
+	    sys_nosys, 0, 0 },			/* 139 = unimplemented systeminfo */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 140 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 140 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 141 = unimplemented seteuid */
+	    sys_nosys, 0, 0 },			/* 141 = unimplemented seteuid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 142 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 142 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 143 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 143 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 144 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 144 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 145 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 145 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 146 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 146 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 147 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 147 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 148 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 148 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 149 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 149 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 150 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 150 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 151 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 151 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 152 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 152 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 153 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 153 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 154 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 154 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 155 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 155 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 156 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 156 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 157 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 157 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 158 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 158 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 159 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 159 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 160 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 160 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 161 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 161 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 162 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 162 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 163 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 163 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 164 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 164 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 165 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 165 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 166 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 166 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 167 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 167 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 168 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 168 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 169 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 169 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 170 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 170 = unimplemented */
 	{ ns(struct ibcs2_sys_gettimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_gettimeofday },/* 171 = gettimeofday */
+	    (sy_call_t *)ibcs2_sys_gettimeofday, 0, 0 },/* 171 = gettimeofday */
 	{ ns(struct ibcs2_sys_settimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_settimeofday },/* 172 = settimeofday */
+	    (sy_call_t *)ibcs2_sys_settimeofday, 0, 0 },/* 172 = settimeofday */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 173 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 173 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 174 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 174 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 175 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 175 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 176 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 176 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 177 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 177 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 178 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 178 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 179 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 179 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 180 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 180 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 181 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 181 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 182 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 182 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 183 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 183 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 184 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 184 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 185 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 185 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 186 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 186 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 187 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 187 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 188 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 188 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 189 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 189 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 190 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 190 = unimplemented */
 	{ ns(struct compat_43_sys_truncate_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_truncate },/* 191 = truncate */
+	    (sy_call_t *)compat_43_sys_truncate, 0, 0 },/* 191 = truncate */
 	{ ns(struct compat_43_sys_ftruncate_args), 0,
-	    (sy_call_t *)compat_43_sys_ftruncate },/* 192 = ftruncate */
+	    (sy_call_t *)compat_43_sys_ftruncate, 0, 0 },/* 192 = ftruncate */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 193 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 193 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 194 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 194 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 195 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 195 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 196 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 196 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 197 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 197 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 198 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 198 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 199 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 199 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 200 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 200 = unimplemented */
 	{ ns(struct xenix_sys_locking_args), 0,
-	    (sy_call_t *)xenix_sys_locking },	/* 201 = locking */
+	    (sy_call_t *)xenix_sys_locking, 0, 0 },	/* 201 = locking */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 202 = unimplemented xenix_creatsem */
+	    sys_nosys, 0, 0 },			/* 202 = unimplemented xenix_creatsem */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 203 = unimplemented xenix_opensem */
+	    sys_nosys, 0, 0 },			/* 203 = unimplemented xenix_opensem */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 204 = unimplemented xenix_sigsem */
+	    sys_nosys, 0, 0 },			/* 204 = unimplemented xenix_sigsem */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 205 = unimplemented xenix_waitsem */
+	    sys_nosys, 0, 0 },			/* 205 = unimplemented xenix_waitsem */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 206 = unimplemented xenix_nbwaitsem */
+	    sys_nosys, 0, 0 },			/* 206 = unimplemented xenix_nbwaitsem */
 	{ ns(struct xenix_sys_rdchk_args), 0,
-	    (sy_call_t *)xenix_sys_rdchk },	/* 207 = rdchk */
+	    (sy_call_t *)xenix_sys_rdchk, 0, 0 },	/* 207 = rdchk */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 208 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 208 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 209 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 209 = unimplemented */
 	{ ns(struct xenix_sys_chsize_args), 0,
-	    (sy_call_t *)xenix_sys_chsize },	/* 210 = chsize */
+	    (sy_call_t *)xenix_sys_chsize, 0, 0 },	/* 210 = chsize */
 	{ ns(struct xenix_sys_ftime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)xenix_sys_ftime },	/* 211 = ftime */
+	    (sy_call_t *)xenix_sys_ftime, 0, 0 },	/* 211 = ftime */
 	{ ns(struct xenix_sys_nap_args), 0,
-	    (sy_call_t *)xenix_sys_nap },	/* 212 = nap */
+	    (sy_call_t *)xenix_sys_nap, 0, 0 },	/* 212 = nap */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 213 = unimplemented xenix_sdget */
+	    sys_nosys, 0, 0 },			/* 213 = unimplemented xenix_sdget */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 214 = unimplemented xenix_sdfree */
+	    sys_nosys, 0, 0 },			/* 214 = unimplemented xenix_sdfree */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 215 = unimplemented xenix_sdenter */
+	    sys_nosys, 0, 0 },			/* 215 = unimplemented xenix_sdenter */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 216 = unimplemented xenix_sdleave */
+	    sys_nosys, 0, 0 },			/* 216 = unimplemented xenix_sdleave */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 217 = unimplemented xenix_sdgetv */
+	    sys_nosys, 0, 0 },			/* 217 = unimplemented xenix_sdgetv */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 218 = unimplemented xenix_sdwaitv */
+	    sys_nosys, 0, 0 },			/* 218 = unimplemented xenix_sdwaitv */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 219 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 219 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 220 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 220 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 221 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 221 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 222 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 222 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 223 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 223 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 224 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 224 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 225 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 225 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 226 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 226 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 227 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 227 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 228 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 228 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 229 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 229 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 230 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 230 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 231 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 231 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 232 = unimplemented xenix_proctl */
+	    sys_nosys, 0, 0 },			/* 232 = unimplemented xenix_proctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 233 = unimplemented xenix_execseg */
+	    sys_nosys, 0, 0 },			/* 233 = unimplemented xenix_execseg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 234 = unimplemented xenix_unexecseg */
+	    sys_nosys, 0, 0 },			/* 234 = unimplemented xenix_unexecseg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 235 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 235 = unimplemented */
 	{ ns(struct compat_50_sys_select_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_select },/* 236 = select */
+	    (sy_call_t *)compat_50_sys_select, 0, 0 },/* 236 = select */
 	{ ns(struct ibcs2_sys_eaccess_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_eaccess },	/* 237 = eaccess */
+	    (sy_call_t *)ibcs2_sys_eaccess, 0, 0 },	/* 237 = eaccess */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 238 = unimplemented xenix_paccess */
+	    sys_nosys, 0, 0 },			/* 238 = unimplemented xenix_paccess */
 	{ ns(struct ibcs2_sys_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_sigaction },	/* 239 = sigaction */
+	    (sy_call_t *)ibcs2_sys_sigaction, 0, 0 },	/* 239 = sigaction */
 	{ ns(struct ibcs2_sys_sigprocmask_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_sigprocmask },/* 240 = sigprocmask */
+	    (sy_call_t *)ibcs2_sys_sigprocmask, 0, 0 },/* 240 = sigprocmask */
 	{ ns(struct ibcs2_sys_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_sigpending },/* 241 = sigpending */
+	    (sy_call_t *)ibcs2_sys_sigpending, 0, 0 },/* 241 = sigpending */
 	{ ns(struct ibcs2_sys_sigsuspend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_sigsuspend },/* 242 = sigsuspend */
+	    (sy_call_t *)ibcs2_sys_sigsuspend, 0, 0 },/* 242 = sigsuspend */
 	{ ns(struct ibcs2_sys_getgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_getgroups },	/* 243 = getgroups */
+	    (sy_call_t *)ibcs2_sys_getgroups, 0, 0 },	/* 243 = getgroups */
 	{ ns(struct ibcs2_sys_setgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_setgroups },	/* 244 = setgroups */
+	    (sy_call_t *)ibcs2_sys_setgroups, 0, 0 },	/* 244 = setgroups */
 	{ ns(struct ibcs2_sys_sysconf_args), 0,
-	    (sy_call_t *)ibcs2_sys_sysconf },	/* 245 = sysconf */
+	    (sy_call_t *)ibcs2_sys_sysconf, 0, 0 },	/* 245 = sysconf */
 	{ ns(struct ibcs2_sys_pathconf_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_pathconf },	/* 246 = pathconf */
+	    (sy_call_t *)ibcs2_sys_pathconf, 0, 0 },	/* 246 = pathconf */
 	{ ns(struct ibcs2_sys_fpathconf_args), 0,
-	    (sy_call_t *)ibcs2_sys_fpathconf },	/* 247 = fpathconf */
+	    (sy_call_t *)ibcs2_sys_fpathconf, 0, 0 },	/* 247 = fpathconf */
 	{ ns(struct sys___posix_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_rename },	/* 248 = __posix_rename */
+	    (sy_call_t *)sys___posix_rename, 0, 0 },	/* 248 = __posix_rename */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 249 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 249 = unimplemented */
 	{ ns(struct ibcs2_sys_scoinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ibcs2_sys_scoinfo },	/* 250 = scoinfo */
+	    (sy_call_t *)ibcs2_sys_scoinfo, 0, 0 },	/* 250 = scoinfo */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 251 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 251 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 252 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 252 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 253 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 253 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 254 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 254 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 255 = unimplemented getitimer */
+	    sys_nosys, 0, 0 },			/* 255 = unimplemented getitimer */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 256 = unimplemented setitimer */
+	    sys_nosys, 0, 0 },			/* 256 = unimplemented setitimer */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 257 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 257 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 258 = unimplemented setreuid */
+	    sys_nosys, 0, 0 },			/* 258 = unimplemented setreuid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 259 = unimplemented setregid */
+	    sys_nosys, 0, 0 },			/* 259 = unimplemented setregid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 260 = filler */
+	    sys_nosys, 0, 0 },			/* 260 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 261 = filler */
+	    sys_nosys, 0, 0 },			/* 261 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 262 = filler */
+	    sys_nosys, 0, 0 },			/* 262 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 263 = filler */
+	    sys_nosys, 0, 0 },			/* 263 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 264 = filler */
+	    sys_nosys, 0, 0 },			/* 264 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 265 = filler */
+	    sys_nosys, 0, 0 },			/* 265 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 266 = filler */
+	    sys_nosys, 0, 0 },			/* 266 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 267 = filler */
+	    sys_nosys, 0, 0 },			/* 267 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 268 = filler */
+	    sys_nosys, 0, 0 },			/* 268 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 269 = filler */
+	    sys_nosys, 0, 0 },			/* 269 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 270 = filler */
+	    sys_nosys, 0, 0 },			/* 270 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 271 = filler */
+	    sys_nosys, 0, 0 },			/* 271 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 272 = filler */
+	    sys_nosys, 0, 0 },			/* 272 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 273 = filler */
+	    sys_nosys, 0, 0 },			/* 273 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 274 = filler */
+	    sys_nosys, 0, 0 },			/* 274 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 275 = filler */
+	    sys_nosys, 0, 0 },			/* 275 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 276 = filler */
+	    sys_nosys, 0, 0 },			/* 276 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 277 = filler */
+	    sys_nosys, 0, 0 },			/* 277 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 278 = filler */
+	    sys_nosys, 0, 0 },			/* 278 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 279 = filler */
+	    sys_nosys, 0, 0 },			/* 279 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 280 = filler */
+	    sys_nosys, 0, 0 },			/* 280 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 281 = filler */
+	    sys_nosys, 0, 0 },			/* 281 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 282 = filler */
+	    sys_nosys, 0, 0 },			/* 282 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 283 = filler */
+	    sys_nosys, 0, 0 },			/* 283 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 284 = filler */
+	    sys_nosys, 0, 0 },			/* 284 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 285 = filler */
+	    sys_nosys, 0, 0 },			/* 285 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 286 = filler */
+	    sys_nosys, 0, 0 },			/* 286 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 287 = filler */
+	    sys_nosys, 0, 0 },			/* 287 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 288 = filler */
+	    sys_nosys, 0, 0 },			/* 288 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 289 = filler */
+	    sys_nosys, 0, 0 },			/* 289 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 290 = filler */
+	    sys_nosys, 0, 0 },			/* 290 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 291 = filler */
+	    sys_nosys, 0, 0 },			/* 291 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 292 = filler */
+	    sys_nosys, 0, 0 },			/* 292 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 293 = filler */
+	    sys_nosys, 0, 0 },			/* 293 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 294 = filler */
+	    sys_nosys, 0, 0 },			/* 294 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 295 = filler */
+	    sys_nosys, 0, 0 },			/* 295 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 296 = filler */
+	    sys_nosys, 0, 0 },			/* 296 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 297 = filler */
+	    sys_nosys, 0, 0 },			/* 297 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 298 = filler */
+	    sys_nosys, 0, 0 },			/* 298 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 299 = filler */
+	    sys_nosys, 0, 0 },			/* 299 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 300 = filler */
+	    sys_nosys, 0, 0 },			/* 300 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 301 = filler */
+	    sys_nosys, 0, 0 },			/* 301 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 302 = filler */
+	    sys_nosys, 0, 0 },			/* 302 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 303 = filler */
+	    sys_nosys, 0, 0 },			/* 303 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 304 = filler */
+	    sys_nosys, 0, 0 },			/* 304 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 305 = filler */
+	    sys_nosys, 0, 0 },			/* 305 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 306 = filler */
+	    sys_nosys, 0, 0 },			/* 306 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 307 = filler */
+	    sys_nosys, 0, 0 },			/* 307 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 308 = filler */
+	    sys_nosys, 0, 0 },			/* 308 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 309 = filler */
+	    sys_nosys, 0, 0 },			/* 309 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 310 = filler */
+	    sys_nosys, 0, 0 },			/* 310 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 311 = filler */
+	    sys_nosys, 0, 0 },			/* 311 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 312 = filler */
+	    sys_nosys, 0, 0 },			/* 312 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 313 = filler */
+	    sys_nosys, 0, 0 },			/* 313 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 314 = filler */
+	    sys_nosys, 0, 0 },			/* 314 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 315 = filler */
+	    sys_nosys, 0, 0 },			/* 315 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 316 = filler */
+	    sys_nosys, 0, 0 },			/* 316 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 317 = filler */
+	    sys_nosys, 0, 0 },			/* 317 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 318 = filler */
+	    sys_nosys, 0, 0 },			/* 318 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 319 = filler */
+	    sys_nosys, 0, 0 },			/* 319 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 320 = filler */
+	    sys_nosys, 0, 0 },			/* 320 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 321 = filler */
+	    sys_nosys, 0, 0 },			/* 321 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 322 = filler */
+	    sys_nosys, 0, 0 },			/* 322 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 323 = filler */
+	    sys_nosys, 0, 0 },			/* 323 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 324 = filler */
+	    sys_nosys, 0, 0 },			/* 324 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 325 = filler */
+	    sys_nosys, 0, 0 },			/* 325 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 326 = filler */
+	    sys_nosys, 0, 0 },			/* 326 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 327 = filler */
+	    sys_nosys, 0, 0 },			/* 327 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 328 = filler */
+	    sys_nosys, 0, 0 },			/* 328 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 329 = filler */
+	    sys_nosys, 0, 0 },			/* 329 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 330 = filler */
+	    sys_nosys, 0, 0 },			/* 330 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 331 = filler */
+	    sys_nosys, 0, 0 },			/* 331 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 332 = filler */
+	    sys_nosys, 0, 0 },			/* 332 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 333 = filler */
+	    sys_nosys, 0, 0 },			/* 333 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 334 = filler */
+	    sys_nosys, 0, 0 },			/* 334 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 335 = filler */
+	    sys_nosys, 0, 0 },			/* 335 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 336 = filler */
+	    sys_nosys, 0, 0 },			/* 336 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 337 = filler */
+	    sys_nosys, 0, 0 },			/* 337 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 338 = filler */
+	    sys_nosys, 0, 0 },			/* 338 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 339 = filler */
+	    sys_nosys, 0, 0 },			/* 339 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 340 = filler */
+	    sys_nosys, 0, 0 },			/* 340 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 341 = filler */
+	    sys_nosys, 0, 0 },			/* 341 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 342 = filler */
+	    sys_nosys, 0, 0 },			/* 342 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 343 = filler */
+	    sys_nosys, 0, 0 },			/* 343 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 344 = filler */
+	    sys_nosys, 0, 0 },			/* 344 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 345 = filler */
+	    sys_nosys, 0, 0 },			/* 345 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 346 = filler */
+	    sys_nosys, 0, 0 },			/* 346 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 347 = filler */
+	    sys_nosys, 0, 0 },			/* 347 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 348 = filler */
+	    sys_nosys, 0, 0 },			/* 348 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 349 = filler */
+	    sys_nosys, 0, 0 },			/* 349 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 350 = filler */
+	    sys_nosys, 0, 0 },			/* 350 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 351 = filler */
+	    sys_nosys, 0, 0 },			/* 351 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 352 = filler */
+	    sys_nosys, 0, 0 },			/* 352 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 353 = filler */
+	    sys_nosys, 0, 0 },			/* 353 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 354 = filler */
+	    sys_nosys, 0, 0 },			/* 354 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 355 = filler */
+	    sys_nosys, 0, 0 },			/* 355 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 356 = filler */
+	    sys_nosys, 0, 0 },			/* 356 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 357 = filler */
+	    sys_nosys, 0, 0 },			/* 357 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 358 = filler */
+	    sys_nosys, 0, 0 },			/* 358 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 359 = filler */
+	    sys_nosys, 0, 0 },			/* 359 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 360 = filler */
+	    sys_nosys, 0, 0 },			/* 360 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 361 = filler */
+	    sys_nosys, 0, 0 },			/* 361 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 362 = filler */
+	    sys_nosys, 0, 0 },			/* 362 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 363 = filler */
+	    sys_nosys, 0, 0 },			/* 363 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 364 = filler */
+	    sys_nosys, 0, 0 },			/* 364 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 365 = filler */
+	    sys_nosys, 0, 0 },			/* 365 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 366 = filler */
+	    sys_nosys, 0, 0 },			/* 366 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 367 = filler */
+	    sys_nosys, 0, 0 },			/* 367 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 368 = filler */
+	    sys_nosys, 0, 0 },			/* 368 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 369 = filler */
+	    sys_nosys, 0, 0 },			/* 369 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 370 = filler */
+	    sys_nosys, 0, 0 },			/* 370 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 371 = filler */
+	    sys_nosys, 0, 0 },			/* 371 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 372 = filler */
+	    sys_nosys, 0, 0 },			/* 372 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 373 = filler */
+	    sys_nosys, 0, 0 },			/* 373 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 374 = filler */
+	    sys_nosys, 0, 0 },			/* 374 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 375 = filler */
+	    sys_nosys, 0, 0 },			/* 375 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 376 = filler */
+	    sys_nosys, 0, 0 },			/* 376 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 377 = filler */
+	    sys_nosys, 0, 0 },			/* 377 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 378 = filler */
+	    sys_nosys, 0, 0 },			/* 378 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 379 = filler */
+	    sys_nosys, 0, 0 },			/* 379 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 380 = filler */
+	    sys_nosys, 0, 0 },			/* 380 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 381 = filler */
+	    sys_nosys, 0, 0 },			/* 381 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 382 = filler */
+	    sys_nosys, 0, 0 },			/* 382 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 383 = filler */
+	    sys_nosys, 0, 0 },			/* 383 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 384 = filler */
+	    sys_nosys, 0, 0 },			/* 384 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 385 = filler */
+	    sys_nosys, 0, 0 },			/* 385 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 386 = filler */
+	    sys_nosys, 0, 0 },			/* 386 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 387 = filler */
+	    sys_nosys, 0, 0 },			/* 387 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 388 = filler */
+	    sys_nosys, 0, 0 },			/* 388 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 389 = filler */
+	    sys_nosys, 0, 0 },			/* 389 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 390 = filler */
+	    sys_nosys, 0, 0 },			/* 390 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 391 = filler */
+	    sys_nosys, 0, 0 },			/* 391 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 392 = filler */
+	    sys_nosys, 0, 0 },			/* 392 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 393 = filler */
+	    sys_nosys, 0, 0 },			/* 393 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 394 = filler */
+	    sys_nosys, 0, 0 },			/* 394 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 395 = filler */
+	    sys_nosys, 0, 0 },			/* 395 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 396 = filler */
+	    sys_nosys, 0, 0 },			/* 396 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 397 = filler */
+	    sys_nosys, 0, 0 },			/* 397 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 398 = filler */
+	    sys_nosys, 0, 0 },			/* 398 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 399 = filler */
+	    sys_nosys, 0, 0 },			/* 399 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 400 = filler */
+	    sys_nosys, 0, 0 },			/* 400 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 401 = filler */
+	    sys_nosys, 0, 0 },			/* 401 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 402 = filler */
+	    sys_nosys, 0, 0 },			/* 402 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 403 = filler */
+	    sys_nosys, 0, 0 },			/* 403 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 404 = filler */
+	    sys_nosys, 0, 0 },			/* 404 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 405 = filler */
+	    sys_nosys, 0, 0 },			/* 405 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 406 = filler */
+	    sys_nosys, 0, 0 },			/* 406 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 407 = filler */
+	    sys_nosys, 0, 0 },			/* 407 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 408 = filler */
+	    sys_nosys, 0, 0 },			/* 408 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 409 = filler */
+	    sys_nosys, 0, 0 },			/* 409 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 410 = filler */
+	    sys_nosys, 0, 0 },			/* 410 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 411 = filler */
+	    sys_nosys, 0, 0 },			/* 411 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 412 = filler */
+	    sys_nosys, 0, 0 },			/* 412 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 413 = filler */
+	    sys_nosys, 0, 0 },			/* 413 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 414 = filler */
+	    sys_nosys, 0, 0 },			/* 414 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 415 = filler */
+	    sys_nosys, 0, 0 },			/* 415 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 416 = filler */
+	    sys_nosys, 0, 0 },			/* 416 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 417 = filler */
+	    sys_nosys, 0, 0 },			/* 417 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 418 = filler */
+	    sys_nosys, 0, 0 },			/* 418 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 419 = filler */
+	    sys_nosys, 0, 0 },			/* 419 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 420 = filler */
+	    sys_nosys, 0, 0 },			/* 420 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 421 = filler */
+	    sys_nosys, 0, 0 },			/* 421 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 422 = filler */
+	    sys_nosys, 0, 0 },			/* 422 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 423 = filler */
+	    sys_nosys, 0, 0 },			/* 423 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 424 = filler */
+	    sys_nosys, 0, 0 },			/* 424 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 425 = filler */
+	    sys_nosys, 0, 0 },			/* 425 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 426 = filler */
+	    sys_nosys, 0, 0 },			/* 426 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 427 = filler */
+	    sys_nosys, 0, 0 },			/* 427 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 428 = filler */
+	    sys_nosys, 0, 0 },			/* 428 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 429 = filler */
+	    sys_nosys, 0, 0 },			/* 429 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 430 = filler */
+	    sys_nosys, 0, 0 },			/* 430 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 431 = filler */
+	    sys_nosys, 0, 0 },			/* 431 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 432 = filler */
+	    sys_nosys, 0, 0 },			/* 432 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 433 = filler */
+	    sys_nosys, 0, 0 },			/* 433 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 434 = filler */
+	    sys_nosys, 0, 0 },			/* 434 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 435 = filler */
+	    sys_nosys, 0, 0 },			/* 435 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 436 = filler */
+	    sys_nosys, 0, 0 },			/* 436 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 437 = filler */
+	    sys_nosys, 0, 0 },			/* 437 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 438 = filler */
+	    sys_nosys, 0, 0 },			/* 438 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 439 = filler */
+	    sys_nosys, 0, 0 },			/* 439 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 440 = filler */
+	    sys_nosys, 0, 0 },			/* 440 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 441 = filler */
+	    sys_nosys, 0, 0 },			/* 441 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 442 = filler */
+	    sys_nosys, 0, 0 },			/* 442 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 443 = filler */
+	    sys_nosys, 0, 0 },			/* 443 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 444 = filler */
+	    sys_nosys, 0, 0 },			/* 444 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 445 = filler */
+	    sys_nosys, 0, 0 },			/* 445 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 446 = filler */
+	    sys_nosys, 0, 0 },			/* 446 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 447 = filler */
+	    sys_nosys, 0, 0 },			/* 447 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 448 = filler */
+	    sys_nosys, 0, 0 },			/* 448 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 449 = filler */
+	    sys_nosys, 0, 0 },			/* 449 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 450 = filler */
+	    sys_nosys, 0, 0 },			/* 450 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 451 = filler */
+	    sys_nosys, 0, 0 },			/* 451 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 452 = filler */
+	    sys_nosys, 0, 0 },			/* 452 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 453 = filler */
+	    sys_nosys, 0, 0 },			/* 453 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 454 = filler */
+	    sys_nosys, 0, 0 },			/* 454 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 455 = filler */
+	    sys_nosys, 0, 0 },			/* 455 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 456 = filler */
+	    sys_nosys, 0, 0 },			/* 456 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 457 = filler */
+	    sys_nosys, 0, 0 },			/* 457 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 458 = filler */
+	    sys_nosys, 0, 0 },			/* 458 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 459 = filler */
+	    sys_nosys, 0, 0 },			/* 459 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 460 = filler */
+	    sys_nosys, 0, 0 },			/* 460 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 461 = filler */
+	    sys_nosys, 0, 0 },			/* 461 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 462 = filler */
+	    sys_nosys, 0, 0 },			/* 462 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 463 = filler */
+	    sys_nosys, 0, 0 },			/* 463 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 464 = filler */
+	    sys_nosys, 0, 0 },			/* 464 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 465 = filler */
+	    sys_nosys, 0, 0 },			/* 465 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 466 = filler */
+	    sys_nosys, 0, 0 },			/* 466 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 467 = filler */
+	    sys_nosys, 0, 0 },			/* 467 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 468 = filler */
+	    sys_nosys, 0, 0 },			/* 468 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 469 = filler */
+	    sys_nosys, 0, 0 },			/* 469 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 470 = filler */
+	    sys_nosys, 0, 0 },			/* 470 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 471 = filler */
+	    sys_nosys, 0, 0 },			/* 471 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 472 = filler */
+	    sys_nosys, 0, 0 },			/* 472 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 473 = filler */
+	    sys_nosys, 0, 0 },			/* 473 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 474 = filler */
+	    sys_nosys, 0, 0 },			/* 474 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 475 = filler */
+	    sys_nosys, 0, 0 },			/* 475 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 476 = filler */
+	    sys_nosys, 0, 0 },			/* 476 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 477 = filler */
+	    sys_nosys, 0, 0 },			/* 477 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 478 = filler */
+	    sys_nosys, 0, 0 },			/* 478 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 479 = filler */
+	    sys_nosys, 0, 0 },			/* 479 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 480 = filler */
+	    sys_nosys, 0, 0 },			/* 480 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 481 = filler */
+	    sys_nosys, 0, 0 },			/* 481 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 482 = filler */
+	    sys_nosys, 0, 0 },			/* 482 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 483 = filler */
+	    sys_nosys, 0, 0 },			/* 483 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 484 = filler */
+	    sys_nosys, 0, 0 },			/* 484 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 485 = filler */
+	    sys_nosys, 0, 0 },			/* 485 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 486 = filler */
+	    sys_nosys, 0, 0 },			/* 486 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 487 = filler */
+	    sys_nosys, 0, 0 },			/* 487 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 488 = filler */
+	    sys_nosys, 0, 0 },			/* 488 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 489 = filler */
+	    sys_nosys, 0, 0 },			/* 489 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 490 = filler */
+	    sys_nosys, 0, 0 },			/* 490 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 491 = filler */
+	    sys_nosys, 0, 0 },			/* 491 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 492 = filler */
+	    sys_nosys, 0, 0 },			/* 492 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 493 = filler */
+	    sys_nosys, 0, 0 },			/* 493 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 494 = filler */
+	    sys_nosys, 0, 0 },			/* 494 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 495 = filler */
+	    sys_nosys, 0, 0 },			/* 495 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 496 = filler */
+	    sys_nosys, 0, 0 },			/* 496 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 497 = filler */
+	    sys_nosys, 0, 0 },			/* 497 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 498 = filler */
+	    sys_nosys, 0, 0 },			/* 498 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 499 = filler */
+	    sys_nosys, 0, 0 },			/* 499 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 500 = filler */
+	    sys_nosys, 0, 0 },			/* 500 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 501 = filler */
+	    sys_nosys, 0, 0 },			/* 501 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 502 = filler */
+	    sys_nosys, 0, 0 },			/* 502 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 503 = filler */
+	    sys_nosys, 0, 0 },			/* 503 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 504 = filler */
+	    sys_nosys, 0, 0 },			/* 504 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 505 = filler */
+	    sys_nosys, 0, 0 },			/* 505 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 506 = filler */
+	    sys_nosys, 0, 0 },			/* 506 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 507 = filler */
+	    sys_nosys, 0, 0 },			/* 507 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 508 = filler */
+	    sys_nosys, 0, 0 },			/* 508 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 509 = filler */
+	    sys_nosys, 0, 0 },			/* 509 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 510 = filler */
+	    sys_nosys, 0, 0 },			/* 510 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 511 = filler */
+	    sys_nosys, 0, 0 },			/* 511 = filler */
 };
diff --git a/sys/compat/linux/arch/alpha/linux_syscall.h b/sys/compat/linux/arch/alpha/linux_syscall.h
index e045246..ea46717 100644
--- a/sys/compat/linux/arch/alpha/linux_syscall.h
+++ b/sys/compat/linux/arch/alpha/linux_syscall.h
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_syscall.h,v 1.94 2014/05/29 10:36:31 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
diff --git a/sys/compat/linux/arch/alpha/linux_syscallargs.h b/sys/compat/linux/arch/alpha/linux_syscallargs.h
index bc5d1b8..63706f1 100644
--- a/sys/compat/linux/arch/alpha/linux_syscallargs.h
+++ b/sys/compat/linux/arch/alpha/linux_syscallargs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_syscallargs.h,v 1.93 2014/05/29 10:36:31 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
diff --git a/sys/compat/linux/arch/alpha/linux_syscalls.c b/sys/compat/linux/arch/alpha/linux_syscalls.c
index 7f42d17..4f430fc 100644
--- a/sys/compat/linux/arch/alpha/linux_syscalls.c
+++ b/sys/compat/linux/arch/alpha/linux_syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_syscalls.c,v 1.95 2014/05/29 10:36:31 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.95 2014/05/29 10:36:31 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #if defined(_KERNEL_OPT)
@@ -29,6 +29,8 @@ __KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.95 2014/05/29 10:36:31 njoly Ex
 #include <compat/linux/common/linux_shm.h>
 #include <compat/linux/common/linux_mmap.h>
 #include <compat/linux/linux_syscallargs.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const linux_syscallnames[] = {
@@ -569,3 +571,544 @@ const char *const linux_syscallnames[] = {
 	/* 510 */	"# filler",
 	/* 511 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altlinux_syscallnames[] = {
+	/*   0 */	"nosys",
+	/*   1 */	NULL, /* exit */
+	/*   2 */	NULL, /* fork */
+	/*   3 */	NULL, /* read */
+	/*   4 */	NULL, /* write */
+	/*   5 */	NULL, /* unimplemented */
+	/*   6 */	NULL, /* close */
+	/*   7 */	NULL, /* wait4 */
+	/*   8 */	NULL, /* creat */
+	/*   9 */	NULL, /* link */
+	/*  10 */	NULL, /* unlink */
+	/*  11 */	NULL, /* unimplemented */
+	/*  12 */	NULL, /* chdir */
+	/*  13 */	NULL, /* fchdir */
+	/*  14 */	NULL, /* mknod */
+	/*  15 */	NULL, /* chmod */
+	/*  16 */	NULL, /* __posix_chown */
+	/*  17 */	NULL, /* brk */
+	/*  18 */	NULL, /* unimplemented */
+	/*  19 */	NULL, /* lseek */
+	/*  20 */	NULL, /* getpid_with_ppid */
+	/*  21 */	NULL, /* mount */
+	/*  22 */	NULL, /* unimplemented umount */
+	/*  23 */	NULL, /* setuid */
+	/*  24 */	NULL, /* getuid_with_euid */
+	/*  25 */	NULL, /* unimplemented */
+	/*  26 */	NULL, /* ptrace */
+	/*  27 */	NULL, /* unimplemented */
+	/*  28 */	NULL, /* unimplemented */
+	/*  29 */	NULL, /* unimplemented */
+	/*  30 */	NULL, /* unimplemented */
+	/*  31 */	NULL, /* unimplemented */
+	/*  32 */	NULL, /* unimplemented */
+	/*  33 */	NULL, /* access */
+	/*  34 */	NULL, /* unimplemented */
+	/*  35 */	NULL, /* unimplemented */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	NULL, /* kill */
+	/*  38 */	NULL, /* unimplemented */
+	/*  39 */	NULL, /* setpgid */
+	/*  40 */	NULL, /* unimplemented */
+	/*  41 */	NULL, /* dup */
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* set_program_attributes */
+	/*  44 */	NULL, /* unimplemented */
+	/*  45 */	NULL, /* open */
+	/*  46 */	NULL, /* unimplemented */
+	/*  47 */	NULL, /* getgid_with_egid */
+	/*  48 */	NULL, /* sigprocmask */
+	/*  49 */	NULL, /* unimplemented */
+	/*  50 */	NULL, /* unimplemented */
+	/*  51 */	NULL, /* acct */
+	/*  52 */	NULL, /* sigpending */
+	/*  53 */	NULL, /* unimplemented */
+	/*  54 */	NULL, /* ioctl */
+	/*  55 */	NULL, /* unimplemented */
+	/*  56 */	NULL, /* unimplemented */
+	/*  57 */	NULL, /* symlink */
+	/*  58 */	NULL, /* readlink */
+	/*  59 */	NULL, /* execve */
+	/*  60 */	NULL, /* umask */
+	/*  61 */	NULL, /* chroot */
+	/*  62 */	NULL, /* unimplemented */
+	/*  63 */	NULL, /* getpgrp */
+	/*  64 */	NULL, /* getpagesize */
+	/*  65 */	NULL, /* unimplemented */
+	/*  66 */	"vfork",
+	/*  67 */	NULL, /* stat */
+	/*  68 */	NULL, /* lstat */
+	/*  69 */	NULL, /* unimplemented */
+	/*  70 */	NULL, /* unimplemented */
+	/*  71 */	NULL, /* mmap */
+	/*  72 */	NULL, /* unimplemented */
+	/*  73 */	NULL, /* munmap */
+	/*  74 */	NULL, /* mprotect */
+	/*  75 */	NULL, /* madvise */
+	/*  76 */	NULL, /* unimplemented vhangup */
+	/*  77 */	NULL, /* unimplemented */
+	/*  78 */	NULL, /* unimplemented */
+	/*  79 */	NULL, /* getgroups */
+	/*  80 */	NULL, /* setgroups */
+	/*  81 */	NULL, /* unimplemented */
+	/*  82 */	NULL, /* unimplemented setpgrp */
+	/*  83 */	NULL, /* setitimer */
+	/*  84 */	NULL, /* unimplemented */
+	/*  85 */	NULL, /* unimplemented */
+	/*  86 */	NULL, /* unimplemented osf1_sys_getitimer */
+	/*  87 */	NULL, /* gethostname */
+	/*  88 */	NULL, /* sethostname */
+	/*  89 */	NULL, /* unimplemented getdtablesize */
+	/*  90 */	NULL, /* dup2 */
+	/*  91 */	NULL, /* fstat */
+	/*  92 */	NULL, /* fcntl */
+	/*  93 */	NULL, /* select */
+	/*  94 */	NULL, /* poll */
+	/*  95 */	NULL, /* fsync */
+	/*  96 */	NULL, /* setpriority */
+	/*  97 */	NULL, /* socket */
+	/*  98 */	NULL, /* connect */
+	/*  99 */	NULL, /* accept */
+	/* 100 */	NULL, /* getpriority */
+	/* 101 */	NULL, /* send */
+	/* 102 */	NULL, /* recv */
+	/* 103 */	NULL, /* sigreturn */
+	/* 104 */	NULL, /* bind */
+	/* 105 */	NULL, /* setsockopt */
+	/* 106 */	NULL, /* listen */
+	/* 107 */	NULL, /* unimplemented */
+	/* 108 */	NULL, /* unimplemented */
+	/* 109 */	NULL, /* unimplemented */
+	/* 110 */	NULL, /* unimplemented */
+	/* 111 */	NULL, /* sigsuspend */
+	/* 112 */	NULL, /* sigstack */
+	/* 113 */	NULL, /* recvmsg */
+	/* 114 */	NULL, /* sendmsg */
+	/* 115 */	NULL, /* unimplemented */
+	/* 116 */	NULL, /* gettimeofday */
+	/* 117 */	NULL, /* getrusage */
+	/* 118 */	NULL, /* getsockopt */
+	/* 119 */	NULL, /* unimplemented */
+	/* 120 */	NULL, /* readv */
+	/* 121 */	NULL, /* writev */
+	/* 122 */	NULL, /* settimeofday */
+	/* 123 */	NULL, /* __posix_fchown */
+	/* 124 */	NULL, /* fchmod */
+	/* 125 */	NULL, /* recvfrom */
+	/* 126 */	NULL, /* setreuid */
+	/* 127 */	NULL, /* setregid */
+	/* 128 */	NULL, /* __posix_rename */
+	/* 129 */	NULL, /* truncate */
+	/* 130 */	NULL, /* ftruncate */
+	/* 131 */	NULL, /* flock */
+	/* 132 */	NULL, /* setgid */
+	/* 133 */	NULL, /* sendto */
+	/* 134 */	NULL, /* shutdown */
+	/* 135 */	NULL, /* socketpair */
+	/* 136 */	NULL, /* mkdir */
+	/* 137 */	NULL, /* rmdir */
+	/* 138 */	NULL, /* utimes */
+	/* 139 */	NULL, /* unimplemented */
+	/* 140 */	NULL, /* unimplemented */
+	/* 141 */	NULL, /* getpeername */
+	/* 142 */	NULL, /* unimplemented */
+	/* 143 */	NULL, /* unimplemented */
+	/* 144 */	NULL, /* getrlimit */
+	/* 145 */	NULL, /* setrlimit */
+	/* 146 */	NULL, /* unimplemented */
+	/* 147 */	NULL, /* setsid */
+	/* 148 */	NULL, /* unimplemented quotactl */
+	/* 149 */	NULL, /* unimplemented */
+	/* 150 */	NULL, /* getsockname */
+	/* 151 */	NULL, /* unimplemented */
+	/* 152 */	NULL, /* unimplemented */
+	/* 153 */	NULL, /* unimplemented */
+	/* 154 */	NULL, /* unimplemented */
+	/* 155 */	NULL, /* unimplemented */
+	/* 156 */	NULL, /* sigaction */
+	/* 157 */	NULL, /* unimplemented */
+	/* 158 */	NULL, /* unimplemented */
+	/* 159 */	NULL, /* getdirentries */
+	/* 160 */	NULL, /* statfs */
+	/* 161 */	NULL, /* fstatfs */
+	/* 162 */	NULL, /* unimplemented */
+	/* 163 */	NULL, /* unimplemented */
+	/* 164 */	NULL, /* unimplemented */
+	/* 165 */	NULL, /* getdomainname */
+	/* 166 */	NULL, /* setdomainname */
+	/* 167 */	NULL, /* unimplemented */
+	/* 168 */	NULL, /* unimplemented */
+	/* 169 */	NULL, /* unimplemented */
+	/* 170 */	NULL, /* unimplemented */
+	/* 171 */	NULL, /* unimplemented */
+	/* 172 */	NULL, /* unimplemented */
+	/* 173 */	NULL, /* unimplemented */
+	/* 174 */	NULL, /* unimplemented */
+	/* 175 */	NULL, /* unimplemented */
+	/* 176 */	NULL, /* unimplemented */
+	/* 177 */	NULL, /* unimplemented */
+	/* 178 */	NULL, /* unimplemented */
+	/* 179 */	NULL, /* unimplemented */
+	/* 180 */	NULL, /* unimplemented */
+	/* 181 */	NULL, /* unimplemented */
+	/* 182 */	NULL, /* unimplemented */
+	/* 183 */	NULL, /* unimplemented */
+	/* 184 */	NULL, /* unimplemented */
+	/* 185 */	NULL, /* unimplemented */
+	/* 186 */	NULL, /* unimplemented */
+	/* 187 */	NULL, /* unimplemented */
+	/* 188 */	NULL, /* unimplemented */
+	/* 189 */	NULL, /* unimplemented */
+	/* 190 */	NULL, /* unimplemented */
+	/* 191 */	NULL, /* ugetrlimit */
+	/* 192 */	NULL, /* unimplemented mmap2 */
+	/* 193 */	NULL, /* unimplemented */
+	/* 194 */	NULL, /* unimplemented */
+	/* 195 */	NULL, /* unimplemented */
+	/* 196 */	NULL, /* unimplemented */
+	/* 197 */	NULL, /* unimplemented */
+	/* 198 */	NULL, /* unimplemented */
+	/* 199 */	NULL, /* unimplemented osf1_sys_swapon */
+#ifdef SYSVMSG
+	/* 200 */	NULL, /* msgctl */
+	/* 201 */	NULL, /* msgget */
+	/* 202 */	NULL, /* msgrcv */
+	/* 203 */	NULL, /* msgsnd */
+#else
+	/* 200 */	NULL, /* unimplemented msgctl */
+	/* 201 */	NULL, /* unimplemented msgget */
+	/* 202 */	NULL, /* unimplemented msgrcv */
+	/* 203 */	NULL, /* unimplemented msgsnd */
+#endif
+#ifdef SYSVSEM
+	/* 204 */	NULL, /* semctl */
+	/* 205 */	NULL, /* semget */
+	/* 206 */	NULL, /* semop */
+#else
+	/* 204 */	NULL, /* unimplemented semctl */
+	/* 205 */	NULL, /* unimplemented semget */
+	/* 206 */	NULL, /* unimplemented semop */
+#endif
+	/* 207 */	NULL, /* olduname */
+	/* 208 */	NULL, /* __posix_lchown */
+#ifdef SYSVSHM
+	/* 209 */	NULL, /* shmat */
+	/* 210 */	NULL, /* shmctl */
+	/* 211 */	NULL, /* shmdt */
+	/* 212 */	NULL, /* shmget */
+#else
+	/* 209 */	NULL, /* unimplemented shmat */
+	/* 210 */	NULL, /* unimplemented shmctl */
+	/* 211 */	NULL, /* unimplemented shmdt */
+	/* 212 */	NULL, /* unimplemented shmget */
+#endif
+	/* 213 */	NULL, /* unimplemented */
+	/* 214 */	NULL, /* unimplemented */
+	/* 215 */	NULL, /* unimplemented */
+	/* 216 */	NULL, /* unimplemented */
+	/* 217 */	"msync",
+	/* 218 */	NULL, /* unimplemented */
+	/* 219 */	NULL, /* unimplemented */
+	/* 220 */	NULL, /* unimplemented */
+	/* 221 */	NULL, /* unimplemented */
+	/* 222 */	NULL, /* unimplemented */
+	/* 223 */	NULL, /* unimplemented */
+	/* 224 */	NULL, /* unimplemented */
+	/* 225 */	NULL, /* unimplemented */
+	/* 226 */	NULL, /* unimplemented */
+	/* 227 */	NULL, /* unimplemented */
+	/* 228 */	NULL, /* unimplemented */
+	/* 229 */	NULL, /* unimplemented */
+	/* 230 */	NULL, /* unimplemented */
+	/* 231 */	NULL, /* unimplemented */
+	/* 232 */	NULL, /* unimplemented */
+	/* 233 */	NULL, /* getpgid */
+	/* 234 */	NULL, /* getsid */
+	/* 235 */	NULL, /* unimplemented sigaltstack */
+	/* 236 */	NULL, /* unimplemented */
+	/* 237 */	NULL, /* unimplemented */
+	/* 238 */	NULL, /* unimplemented */
+	/* 239 */	NULL, /* unimplemented */
+	/* 240 */	NULL, /* unimplemented */
+	/* 241 */	NULL, /* sysinfo */
+	/* 242 */	NULL, /* unimplemented */
+	/* 243 */	NULL, /* unimplemented */
+	/* 244 */	NULL, /* unimplemented osf1_sys_proplist_syscall */
+	/* 245 */	NULL, /* unimplemented */
+	/* 246 */	NULL, /* unimplemented */
+	/* 247 */	NULL, /* unimplemented */
+	/* 248 */	NULL, /* unimplemented */
+	/* 249 */	NULL, /* unimplemented */
+	/* 250 */	NULL, /* unimplemented */
+	/* 251 */	NULL, /* usleep_thread */
+	/* 252 */	NULL, /* unimplemented */
+	/* 253 */	NULL, /* unimplemented */
+	/* 254 */	NULL, /* unimplemented */
+	/* 255 */	NULL, /* unimplemented sysfs */
+	/* 256 */	NULL, /* getsysinfo */
+	/* 257 */	NULL, /* setsysinfo */
+	/* 258 */	NULL, /* unimplemented */
+	/* 259 */	NULL, /* unimplemented */
+	/* 260 */	NULL, /* unimplemented */
+	/* 261 */	NULL, /* fdatasync */
+	/* 262 */	NULL, /* unimplemented */
+	/* 263 */	NULL, /* unimplemented */
+	/* 264 */	NULL, /* unimplemented */
+	/* 265 */	NULL, /* unimplemented */
+	/* 266 */	NULL, /* unimplemented */
+	/* 267 */	NULL, /* unimplemented */
+	/* 268 */	NULL, /* unimplemented */
+	/* 269 */	NULL, /* unimplemented */
+	/* 270 */	NULL, /* unimplemented */
+	/* 271 */	NULL, /* unimplemented */
+	/* 272 */	NULL, /* unimplemented */
+	/* 273 */	NULL, /* unimplemented */
+	/* 274 */	NULL, /* unimplemented */
+	/* 275 */	NULL, /* unimplemented */
+	/* 276 */	NULL, /* unimplemented */
+	/* 277 */	NULL, /* unimplemented */
+	/* 278 */	NULL, /* unimplemented */
+	/* 279 */	NULL, /* unimplemented */
+	/* 280 */	NULL, /* unimplemented */
+	/* 281 */	NULL, /* unimplemented */
+	/* 282 */	NULL, /* unimplemented */
+	/* 283 */	NULL, /* unimplemented */
+	/* 284 */	NULL, /* unimplemented */
+	/* 285 */	NULL, /* unimplemented */
+	/* 286 */	NULL, /* unimplemented */
+	/* 287 */	NULL, /* unimplemented */
+	/* 288 */	NULL, /* unimplemented */
+	/* 289 */	NULL, /* unimplemented */
+	/* 290 */	NULL, /* unimplemented */
+	/* 291 */	NULL, /* unimplemented */
+	/* 292 */	NULL, /* unimplemented */
+	/* 293 */	NULL, /* unimplemented */
+	/* 294 */	NULL, /* unimplemented */
+	/* 295 */	NULL, /* unimplemented */
+	/* 296 */	NULL, /* unimplemented */
+	/* 297 */	NULL, /* unimplemented */
+	/* 298 */	NULL, /* unimplemented */
+	/* 299 */	NULL, /* unimplemented */
+	/* 300 */	NULL, /* unimplemented bdflush */
+	/* 301 */	NULL, /* unimplemented sethae */
+	/* 302 */	NULL, /* unimplemented mount */
+	/* 303 */	NULL, /* unimplemented old_adjtimex */
+	/* 304 */	NULL, /* swapoff */
+	/* 305 */	NULL, /* getdents */
+	/* 306 */	NULL, /* unimplemented alpha_create_module */
+	/* 307 */	NULL, /* unimplemented init_module */
+	/* 308 */	NULL, /* unimplemented delete_module */
+	/* 309 */	NULL, /* unimplemented get_kernel_syms */
+	/* 310 */	NULL, /* unimplemented syslog */
+	/* 311 */	NULL, /* reboot */
+	/* 312 */	NULL, /* clone */
+#ifdef EXEC_AOUT
+	/* 313 */	NULL, /* uselib */
+#else
+	/* 313 */	NULL, /* unimplemented sys_uselib */
+#endif
+	/* 314 */	NULL, /* mlock */
+	/* 315 */	NULL, /* munlock */
+	/* 316 */	NULL, /* mlockall */
+	/* 317 */	NULL, /* munlockall */
+	/* 318 */	NULL, /* sysinfo */
+	/* 319 */	NULL, /* __sysctl */
+	/* 320 */	NULL, /* unimplemented idle */
+	/* 321 */	NULL, /* unimplemented oldumount */
+	/* 322 */	NULL, /* swapon */
+	/* 323 */	NULL, /* times */
+	/* 324 */	NULL, /* personality */
+	/* 325 */	NULL, /* setfsuid */
+	/* 326 */	NULL, /* setfsgid */
+	/* 327 */	NULL, /* unimplemented ustat */
+	/* 328 */	NULL, /* statfs */
+	/* 329 */	NULL, /* fstatfs */
+	/* 330 */	NULL, /* sched_setparam */
+	/* 331 */	NULL, /* sched_getparam */
+	/* 332 */	NULL, /* sched_setscheduler */
+	/* 333 */	NULL, /* sched_getscheduler */
+	/* 334 */	NULL, /* sched_yield */
+	/* 335 */	NULL, /* sched_get_priority_max */
+	/* 336 */	NULL, /* sched_get_priority_min */
+	/* 337 */	NULL, /* unimplemented sched_rr_get_interval */
+	/* 338 */	NULL, /* unimplemented afs_syscall */
+	/* 339 */	NULL, /* uname */
+	/* 340 */	NULL, /* nanosleep */
+	/* 341 */	NULL, /* mremap */
+	/* 342 */	NULL, /* unimplemented nfsservctl */
+	/* 343 */	NULL, /* setresuid */
+	/* 344 */	NULL, /* getresuid */
+	/* 345 */	NULL, /* unimplemented pciconfig_read */
+	/* 346 */	NULL, /* unimplemented pciconfig_write */
+	/* 347 */	NULL, /* unimplemented query_module */
+	/* 348 */	NULL, /* unimplemented prctl */
+	/* 349 */	NULL, /* pread */
+	/* 350 */	NULL, /* pwrite */
+	/* 351 */	NULL, /* rt_sigreturn */
+	/* 352 */	NULL, /* rt_sigaction */
+	/* 353 */	NULL, /* rt_sigprocmask */
+	/* 354 */	NULL, /* rt_sigpending */
+	/* 355 */	NULL, /* rt_sigtimedwait */
+	/* 356 */	NULL, /* rt_queueinfo */
+	/* 357 */	NULL, /* rt_sigsuspend */
+	/* 358 */	NULL, /* select */
+	/* 359 */	NULL, /* gettimeofday */
+	/* 360 */	NULL, /* settimeofday */
+	/* 361 */	NULL, /* getitimer */
+	/* 362 */	NULL, /* setitimer */
+	/* 363 */	NULL, /* utimes */
+	/* 364 */	NULL, /* getrusage */
+	/* 365 */	NULL, /* wait4 */
+	/* 366 */	NULL, /* unimplemented adjtimex */
+	/* 367 */	NULL, /* __getcwd */
+	/* 368 */	NULL, /* unimplemented capget */
+	/* 369 */	NULL, /* unimplemented capset */
+	/* 370 */	NULL, /* unimplemented sendfile */
+	/* 371 */	NULL, /* unimplemented setresgid */
+	/* 372 */	NULL, /* unimplemented getresgid */
+	/* 373 */	NULL, /* unimplemented sys_dipc */
+	/* 374 */	NULL, /* unimplemented pivot_root */
+	/* 375 */	NULL, /* mincore */
+	/* 376 */	NULL, /* unimplemented pciconfig_iobase */
+	/* 377 */	NULL, /* getdents64 */
+	/* 378 */	NULL, /* gettid */
+	/* 379 */	NULL, /* unimplemented readahead */
+	/* 380 */	NULL, /* unimplemented / * unused * / */
+	/* 381 */	NULL, /* tkill */
+	/* 382 */	NULL, /* setxattr */
+	/* 383 */	NULL, /* lsetxattr */
+	/* 384 */	NULL, /* fsetxattr */
+	/* 385 */	NULL, /* getxattr */
+	/* 386 */	NULL, /* lgetxattr */
+	/* 387 */	NULL, /* fgetxattr */
+	/* 388 */	NULL, /* listxattr */
+	/* 389 */	NULL, /* llistxattr */
+	/* 390 */	NULL, /* flistxattr */
+	/* 391 */	NULL, /* removexattr */
+	/* 392 */	NULL, /* lremovexattr */
+	/* 393 */	NULL, /* fremovexattr */
+	/* 394 */	NULL, /* futex */
+	/* 395 */	NULL, /* sched_setaffinity */
+	/* 396 */	NULL, /* sched_getaffinity */
+	/* 397 */	NULL, /* unimplemented tuxcall */
+	/* 398 */	NULL, /* unimplemented io_setup */
+	/* 399 */	NULL, /* unimplemented io_destroy */
+	/* 400 */	NULL, /* unimplemented io_getevents */
+	/* 401 */	NULL, /* unimplemented io_submit */
+	/* 402 */	NULL, /* unimplemented io_cancel */
+	/* 403 */	NULL, /* unimplemented / * unused * / */
+	/* 404 */	NULL, /* unimplemented / * unused * / */
+	/* 405 */	NULL, /* exit_group */
+	/* 406 */	NULL, /* unimplemented lookup_dcookie */
+	/* 407 */	NULL, /* unimplemented sys_epoll_create */
+	/* 408 */	NULL, /* unimplemented sys_epoll_ctl */
+	/* 409 */	NULL, /* unimplemented sys_epoll_wait */
+	/* 410 */	NULL, /* unimplemented remap_file_pages */
+	/* 411 */	NULL, /* set_tid_address */
+	/* 412 */	NULL, /* unimplemented restart_syscall */
+	/* 413 */	NULL, /* fadvise64 */
+	/* 414 */	NULL, /* unimplemented timer_create */
+	/* 415 */	NULL, /* unimplemented timer_settime */
+	/* 416 */	NULL, /* unimplemented timer_gettime */
+	/* 417 */	NULL, /* unimplemented timer_getoverrun */
+	/* 418 */	NULL, /* unimplemented timer_delete */
+	/* 419 */	NULL, /* clock_settime */
+	/* 420 */	NULL, /* clock_gettime */
+	/* 421 */	NULL, /* clock_getres */
+	/* 422 */	NULL, /* clock_nanosleep */
+	/* 423 */	NULL, /* unimplemented semtimedop */
+	/* 424 */	NULL, /* tgkill */
+	/* 425 */	NULL, /* stat64 */
+	/* 426 */	NULL, /* lstat64 */
+	/* 427 */	NULL, /* fstat64 */
+	/* 428 */	NULL, /* unimplemented vserver */
+	/* 429 */	NULL, /* unimplemented mbind */
+	/* 430 */	NULL, /* unimplemented get_mempolicy */
+	/* 431 */	NULL, /* unimplemented set_mempolicy */
+	/* 432 */	NULL, /* unimplemented mq_open */
+	/* 433 */	NULL, /* unimplemented mq_unlink */
+	/* 434 */	NULL, /* unimplemented mq_timedsend */
+	/* 435 */	NULL, /* unimplemented mq_timedreceive */
+	/* 436 */	NULL, /* unimplemented mq_notify */
+	/* 437 */	NULL, /* unimplemented mq_getsetattr */
+	/* 438 */	NULL, /* unimplemented waitid */
+	/* 439 */	NULL, /* unimplemented add_key */
+	/* 440 */	NULL, /* unimplemented request_key */
+	/* 441 */	NULL, /* unimplemented keyctl */
+	/* 442 */	NULL, /* unimplemented ioprio_set */
+	/* 443 */	NULL, /* unimplemented ioprio_get */
+	/* 444 */	NULL, /* unimplemented inotify_init */
+	/* 445 */	NULL, /* unimplemented inotify_add_watch */
+	/* 446 */	NULL, /* unimplemented inotify_rm_watch */
+	/* 447 */	NULL, /* unimplemented fdatasync */
+	/* 448 */	NULL, /* unimplemented kexec_load */
+	/* 449 */	NULL, /* unimplemented migrate_pages */
+	/* 450 */	NULL, /* openat */
+	/* 451 */	NULL, /* mkdirat */
+	/* 452 */	NULL, /* mknodat */
+	/* 453 */	NULL, /* fchownat */
+	/* 454 */	NULL, /* unimplemented futimesat */
+	/* 455 */	NULL, /* fstatat64 */
+	/* 456 */	NULL, /* unlinkat */
+	/* 457 */	NULL, /* renameat */
+	/* 458 */	NULL, /* linkat */
+	/* 459 */	NULL, /* symlinkat */
+	/* 460 */	NULL, /* readlinkat */
+	/* 461 */	NULL, /* fchmodat */
+	/* 462 */	NULL, /* faccessat */
+	/* 463 */	NULL, /* unimplemented pselect6 */
+	/* 464 */	NULL, /* ppoll */
+	/* 465 */	NULL, /* unimplemented unshare */
+	/* 466 */	NULL, /* set_robust_list */
+	/* 467 */	NULL, /* get_robust_list */
+	/* 468 */	NULL, /* unimplemented splice */
+	/* 469 */	NULL, /* unimplemented sync_file_range */
+	/* 470 */	NULL, /* unimplemented tee */
+	/* 471 */	NULL, /* unimplemented vmsplice */
+	/* 472 */	NULL, /* unimplemented move_pages */
+	/* 473 */	NULL, /* unimplemented getcpu */
+	/* 474 */	NULL, /* unimplemented epoll_wait */
+	/* 475 */	NULL, /* utimensat */
+	/* 476 */	NULL, /* unimplemented signalfd */
+	/* 477 */	NULL, /* unimplemented timerfd */
+	/* 478 */	NULL, /* unimplemented eventfd */
+	/* 479 */	NULL, /* unimplemented recvmmsg */
+	/* 480 */	NULL, /* unimplemented fallocate */
+	/* 481 */	NULL, /* unimplemented timerfd_create */
+	/* 482 */	NULL, /* unimplemented timerfd_settime */
+	/* 483 */	NULL, /* unimplemented timerfd_gettime */
+	/* 484 */	NULL, /* unimplemented signalfd4 */
+	/* 485 */	NULL, /* unimplemented eventfd2 */
+	/* 486 */	NULL, /* unimplemented epoll_create1 */
+	/* 487 */	NULL, /* dup3 */
+	/* 488 */	NULL, /* pipe2 */
+	/* 489 */	NULL, /* unimplemented inotify_init1 */
+	/* 490 */	NULL, /* unimplemented preadv */
+	/* 491 */	NULL, /* unimplemented pwritev */
+	/* 492 */	NULL, /* unimplemented rt_tgsigqueueinfo */
+	/* 493 */	NULL, /* unimplemented perf_counter_open */
+	/* 494 */	NULL, /* filler */
+	/* 495 */	NULL, /* filler */
+	/* 496 */	NULL, /* filler */
+	/* 497 */	NULL, /* filler */
+	/* 498 */	NULL, /* filler */
+	/* 499 */	NULL, /* filler */
+	/* 500 */	NULL, /* filler */
+	/* 501 */	NULL, /* filler */
+	/* 502 */	NULL, /* filler */
+	/* 503 */	NULL, /* filler */
+	/* 504 */	NULL, /* filler */
+	/* 505 */	NULL, /* filler */
+	/* 506 */	NULL, /* filler */
+	/* 507 */	NULL, /* filler */
+	/* 508 */	NULL, /* filler */
+	/* 509 */	NULL, /* filler */
+	/* 510 */	NULL, /* filler */
+	/* 511 */	NULL, /* filler */
+};
diff --git a/sys/compat/linux/arch/alpha/linux_sysent.c b/sys/compat/linux/arch/alpha/linux_sysent.c
index c7870b0..21de182 100644
--- a/sys/compat/linux/arch/alpha/linux_sysent.c
+++ b/sys/compat/linux/arch/alpha/linux_sysent.c
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_sysent.c,v 1.94 2014/05/29 10:36:31 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.94 2014/05/29 10:36:31 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include "opt_sysv.h"
@@ -35,1063 +35,1063 @@ __KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.94 2014/05/29 10:36:31 njoly Exp
 
 struct sysent linux_sysent[] = {
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_nosys },	/* 0 = syscall */
+	    (sy_call_t *)linux_sys_nosys, 0, 0 },	/* 0 = syscall */
 	{ ns(struct linux_sys_exit_args), 0,
-	    (sy_call_t *)linux_sys_exit },	/* 1 = exit */
+	    (sy_call_t *)linux_sys_exit, 0, 0 },	/* 1 = exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct sys_read_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_read },		/* 3 = read */
+	    (sy_call_t *)sys_read, 0, 0 },		/* 3 = read */
 	{ ns(struct sys_write_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_write },		/* 4 = write */
+	    (sy_call_t *)sys_write, 0, 0 },		/* 4 = write */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 5 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 5 = unimplemented */
 	{ ns(struct sys_close_args), 0,
-	    (sy_call_t *)sys_close },		/* 6 = close */
+	    (sy_call_t *)sys_close, 0, 0 },		/* 6 = close */
 	{ ns(struct osf1_sys_wait4_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_wait4 },	/* 7 = wait4 */
+	    (sy_call_t *)osf1_sys_wait4, 0, 0 },	/* 7 = wait4 */
 	{ ns(struct linux_sys_creat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_creat },	/* 8 = creat */
+	    (sy_call_t *)linux_sys_creat, 0, 0 },	/* 8 = creat */
 	{ ns(struct sys_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_link },		/* 9 = link */
+	    (sy_call_t *)sys_link, 0, 0 },		/* 9 = link */
 	{ ns(struct linux_sys_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_unlink },	/* 10 = unlink */
+	    (sy_call_t *)linux_sys_unlink, 0, 0 },	/* 10 = unlink */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 11 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 11 = unimplemented */
 	{ ns(struct sys_chdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chdir },		/* 12 = chdir */
+	    (sy_call_t *)sys_chdir, 0, 0 },		/* 12 = chdir */
 	{ ns(struct sys_fchdir_args), 0,
-	    (sy_call_t *)sys_fchdir },		/* 13 = fchdir */
+	    (sy_call_t *)sys_fchdir, 0, 0 },		/* 13 = fchdir */
 	{ ns(struct linux_sys_mknod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mknod },	/* 14 = mknod */
+	    (sy_call_t *)linux_sys_mknod, 0, 0 },	/* 14 = mknod */
 	{ ns(struct sys_chmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chmod },		/* 15 = chmod */
+	    (sy_call_t *)sys_chmod, 0, 0 },		/* 15 = chmod */
 	{ ns(struct sys___posix_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_chown },	/* 16 = __posix_chown */
+	    (sy_call_t *)sys___posix_chown, 0, 0 },	/* 16 = __posix_chown */
 	{ ns(struct linux_sys_brk_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_brk },	/* 17 = brk */
+	    (sy_call_t *)linux_sys_brk, 0, 0 },	/* 17 = brk */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 18 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 18 = unimplemented */
 	{ ns(struct compat_43_sys_lseek_args), 0,
-	    (sy_call_t *)compat_43_sys_lseek },	/* 19 = lseek */
+	    (sy_call_t *)compat_43_sys_lseek, 0, 0 },	/* 19 = lseek */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid_with_ppid },/* 20 = getpid_with_ppid */
+	    (sy_call_t *)sys_getpid_with_ppid, 0, 0 },/* 20 = getpid_with_ppid */
 	{ ns(struct osf1_sys_mount_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_mount },	/* 21 = mount */
+	    (sy_call_t *)osf1_sys_mount, 0, 0 },	/* 21 = mount */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 22 = unimplemented umount */
+	    linux_sys_nosys, 0, 0 },			/* 22 = unimplemented umount */
 	{ ns(struct sys_setuid_args), 0,
-	    (sy_call_t *)sys_setuid },		/* 23 = setuid */
+	    (sy_call_t *)sys_setuid, 0, 0 },		/* 23 = setuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid_with_euid },/* 24 = getuid_with_euid */
+	    (sy_call_t *)sys_getuid_with_euid, 0, 0 },/* 24 = getuid_with_euid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 25 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 25 = unimplemented */
 	{ ns(struct linux_sys_ptrace_args), 0,
-	    (sy_call_t *)linux_sys_ptrace },	/* 26 = ptrace */
+	    (sy_call_t *)linux_sys_ptrace, 0, 0 },	/* 26 = ptrace */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 27 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 27 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 28 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 28 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 29 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 29 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 30 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 30 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 31 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 31 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 32 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 32 = unimplemented */
 	{ ns(struct sys_access_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_access },		/* 33 = access */
+	    (sy_call_t *)sys_access, 0, 0 },		/* 33 = access */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 34 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 34 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 35 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 35 = unimplemented */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct linux_sys_kill_args), 0,
-	    (sy_call_t *)linux_sys_kill },	/* 37 = kill */
+	    (sy_call_t *)linux_sys_kill, 0, 0 },	/* 37 = kill */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 38 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 38 = unimplemented */
 	{ ns(struct sys_setpgid_args), 0,
-	    (sy_call_t *)sys_setpgid },		/* 39 = setpgid */
+	    (sy_call_t *)sys_setpgid, 0, 0 },		/* 39 = setpgid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 40 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 40 = unimplemented */
 	{ ns(struct sys_dup_args), 0,
-	    (sy_call_t *)sys_dup },		/* 41 = dup */
+	    (sy_call_t *)sys_dup, 0, 0 },		/* 41 = dup */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_pipe },	/* 42 = pipe */
+	    (sy_call_t *)linux_sys_pipe, 0, 0 },	/* 42 = pipe */
 	{ ns(struct osf1_sys_set_program_attributes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_set_program_attributes },/* 43 = set_program_attributes */
+	    (sy_call_t *)osf1_sys_set_program_attributes, 0, 0 },/* 43 = set_program_attributes */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 44 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 44 = unimplemented */
 	{ ns(struct linux_sys_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_open },	/* 45 = open */
+	    (sy_call_t *)linux_sys_open, 0, 0 },	/* 45 = open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 46 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 46 = unimplemented */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid_with_egid },/* 47 = getgid_with_egid */
+	    (sy_call_t *)sys_getgid_with_egid, 0, 0 },/* 47 = getgid_with_egid */
 	{ ns(struct compat_13_sys_sigprocmask_args), 0,
-	    (sy_call_t *)compat_13_sys_sigprocmask },/* 48 = sigprocmask */
+	    (sy_call_t *)compat_13_sys_sigprocmask, 0, 0 },/* 48 = sigprocmask */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 49 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 49 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 50 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 50 = unimplemented */
 	{ ns(struct sys_acct_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_acct },		/* 51 = acct */
+	    (sy_call_t *)sys_acct, 0, 0 },		/* 51 = acct */
 	{ ns(struct linux_sys_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigpending },/* 52 = sigpending */
+	    (sy_call_t *)linux_sys_sigpending, 0, 0 },/* 52 = sigpending */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 53 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 53 = unimplemented */
 	{ ns(struct linux_sys_ioctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ioctl },	/* 54 = ioctl */
+	    (sy_call_t *)linux_sys_ioctl, 0, 0 },	/* 54 = ioctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 55 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 55 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 56 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 56 = unimplemented */
 	{ ns(struct sys_symlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlink },		/* 57 = symlink */
+	    (sy_call_t *)sys_symlink, 0, 0 },		/* 57 = symlink */
 	{ ns(struct sys_readlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlink },	/* 58 = readlink */
+	    (sy_call_t *)sys_readlink, 0, 0 },	/* 58 = readlink */
 	{ ns(struct sys_execve_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_execve },		/* 59 = execve */
+	    (sy_call_t *)sys_execve, 0, 0 },		/* 59 = execve */
 	{ ns(struct sys_umask_args), 0,
-	    (sy_call_t *)sys_umask },		/* 60 = umask */
+	    (sy_call_t *)sys_umask, 0, 0 },		/* 60 = umask */
 	{ ns(struct sys_chroot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chroot },		/* 61 = chroot */
+	    (sy_call_t *)sys_chroot, 0, 0 },		/* 61 = chroot */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 62 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 62 = unimplemented */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpgrp },		/* 63 = getpgrp */
+	    (sy_call_t *)sys_getpgrp, 0, 0 },		/* 63 = getpgrp */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_getpagesize },/* 64 = getpagesize */
+	    (sy_call_t *)compat_43_sys_getpagesize, 0, 0 },/* 64 = getpagesize */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 65 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 65 = unimplemented */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys___vfork14 },	/* 66 = __vfork14 */
+	    (sy_call_t *)sys___vfork14, 0, 0 },	/* 66 = __vfork14 */
 	{ ns(struct linux_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stat },	/* 67 = stat */
+	    (sy_call_t *)linux_sys_stat, 0, 0 },	/* 67 = stat */
 	{ ns(struct linux_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lstat },	/* 68 = lstat */
+	    (sy_call_t *)linux_sys_lstat, 0, 0 },	/* 68 = lstat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 69 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 69 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 70 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 70 = unimplemented */
 	{ ns(struct linux_sys_mmap_args), 0,
-	    (sy_call_t *)linux_sys_mmap },	/* 71 = mmap */
+	    (sy_call_t *)linux_sys_mmap, 0, 0 },	/* 71 = mmap */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 72 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 72 = unimplemented */
 	{ ns(struct sys_munmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munmap },		/* 73 = munmap */
+	    (sy_call_t *)sys_munmap, 0, 0 },		/* 73 = munmap */
 	{ ns(struct linux_sys_mprotect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mprotect },	/* 74 = mprotect */
+	    (sy_call_t *)linux_sys_mprotect, 0, 0 },	/* 74 = mprotect */
 	{ ns(struct sys_madvise_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_madvise },		/* 75 = madvise */
+	    (sy_call_t *)sys_madvise, 0, 0 },		/* 75 = madvise */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 76 = unimplemented vhangup */
+	    linux_sys_nosys, 0, 0 },			/* 76 = unimplemented vhangup */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 77 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 77 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 78 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 78 = unimplemented */
 	{ ns(struct sys_getgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getgroups },	/* 79 = getgroups */
+	    (sy_call_t *)sys_getgroups, 0, 0 },	/* 79 = getgroups */
 	{ ns(struct sys_setgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setgroups },	/* 80 = setgroups */
+	    (sy_call_t *)sys_setgroups, 0, 0 },	/* 80 = setgroups */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 81 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 81 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 82 = unimplemented setpgrp */
+	    linux_sys_nosys, 0, 0 },			/* 82 = unimplemented setpgrp */
 	{ ns(struct osf1_sys_setitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_setitimer },	/* 83 = setitimer */
+	    (sy_call_t *)osf1_sys_setitimer, 0, 0 },	/* 83 = setitimer */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 84 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 84 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 85 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 85 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 86 = unimplemented osf1_sys_getitimer */
+	    linux_sys_nosys, 0, 0 },			/* 86 = unimplemented osf1_sys_getitimer */
 	{ ns(struct compat_43_sys_gethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_gethostname },/* 87 = gethostname */
+	    (sy_call_t *)compat_43_sys_gethostname, 0, 0 },/* 87 = gethostname */
 	{ ns(struct compat_43_sys_sethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sethostname },/* 88 = sethostname */
+	    (sy_call_t *)compat_43_sys_sethostname, 0, 0 },/* 88 = sethostname */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 89 = unimplemented getdtablesize */
+	    linux_sys_nosys, 0, 0 },			/* 89 = unimplemented getdtablesize */
 	{ ns(struct sys_dup2_args), 0,
-	    (sy_call_t *)sys_dup2 },		/* 90 = dup2 */
+	    (sy_call_t *)sys_dup2, 0, 0 },		/* 90 = dup2 */
 	{ ns(struct linux_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstat },	/* 91 = fstat */
+	    (sy_call_t *)linux_sys_fstat, 0, 0 },	/* 91 = fstat */
 	{ ns(struct linux_sys_fcntl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fcntl },	/* 92 = fcntl */
+	    (sy_call_t *)linux_sys_fcntl, 0, 0 },	/* 92 = fcntl */
 	{ ns(struct osf1_sys_select_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_select },	/* 93 = select */
+	    (sy_call_t *)osf1_sys_select, 0, 0 },	/* 93 = select */
 	{ ns(struct sys_poll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_poll },		/* 94 = poll */
+	    (sy_call_t *)sys_poll, 0, 0 },		/* 94 = poll */
 	{ ns(struct sys_fsync_args), 0,
-	    (sy_call_t *)sys_fsync },		/* 95 = fsync */
+	    (sy_call_t *)sys_fsync, 0, 0 },		/* 95 = fsync */
 	{ ns(struct sys_setpriority_args), 0,
-	    (sy_call_t *)sys_setpriority },	/* 96 = setpriority */
+	    (sy_call_t *)sys_setpriority, 0, 0 },	/* 96 = setpriority */
 	{ ns(struct linux_sys_socket_args), 0,
-	    (sy_call_t *)linux_sys_socket },	/* 97 = socket */
+	    (sy_call_t *)linux_sys_socket, 0, 0 },	/* 97 = socket */
 	{ ns(struct linux_sys_connect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_connect },	/* 98 = connect */
+	    (sy_call_t *)linux_sys_connect, 0, 0 },	/* 98 = connect */
 	{ ns(struct linux_sys_accept_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_accept },	/* 99 = accept */
+	    (sy_call_t *)linux_sys_accept, 0, 0 },	/* 99 = accept */
 	{ ns(struct linux_sys_getpriority_args), 0,
-	    (sy_call_t *)linux_sys_getpriority },/* 100 = getpriority */
+	    (sy_call_t *)linux_sys_getpriority, 0, 0 },/* 100 = getpriority */
 	{ ns(struct linux_sys_send_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_send },	/* 101 = send */
+	    (sy_call_t *)linux_sys_send, 0, 0 },	/* 101 = send */
 	{ ns(struct linux_sys_recv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_recv },	/* 102 = recv */
+	    (sy_call_t *)linux_sys_recv, 0, 0 },	/* 102 = recv */
 	{ ns(struct linux_sys_sigreturn_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigreturn },	/* 103 = sigreturn */
+	    (sy_call_t *)linux_sys_sigreturn, 0, 0 },	/* 103 = sigreturn */
 	{ ns(struct linux_sys_bind_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_bind },	/* 104 = bind */
+	    (sy_call_t *)linux_sys_bind, 0, 0 },	/* 104 = bind */
 	{ ns(struct linux_sys_setsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setsockopt },/* 105 = setsockopt */
+	    (sy_call_t *)linux_sys_setsockopt, 0, 0 },/* 105 = setsockopt */
 	{ ns(struct sys_listen_args), 0,
-	    (sy_call_t *)sys_listen },		/* 106 = listen */
+	    (sy_call_t *)sys_listen, 0, 0 },		/* 106 = listen */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 107 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 107 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 108 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 108 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 109 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 109 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 110 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 110 = unimplemented */
 	{ ns(struct linux_sys_sigsuspend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigsuspend },/* 111 = sigsuspend */
+	    (sy_call_t *)linux_sys_sigsuspend, 0, 0 },/* 111 = sigsuspend */
 	{ ns(struct compat_43_sys_sigstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sigstack },/* 112 = sigstack */
+	    (sy_call_t *)compat_43_sys_sigstack, 0, 0 },/* 112 = sigstack */
 	{ ns(struct linux_sys_recvmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_recvmsg },	/* 113 = recvmsg */
+	    (sy_call_t *)linux_sys_recvmsg, 0, 0 },	/* 113 = recvmsg */
 	{ ns(struct linux_sys_sendmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sendmsg },	/* 114 = sendmsg */
+	    (sy_call_t *)linux_sys_sendmsg, 0, 0 },	/* 114 = sendmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 115 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 115 = unimplemented */
 	{ ns(struct osf1_sys_gettimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_gettimeofday },/* 116 = gettimeofday */
+	    (sy_call_t *)osf1_sys_gettimeofday, 0, 0 },/* 116 = gettimeofday */
 	{ ns(struct osf1_sys_getrusage_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_getrusage },	/* 117 = getrusage */
+	    (sy_call_t *)osf1_sys_getrusage, 0, 0 },	/* 117 = getrusage */
 	{ ns(struct linux_sys_getsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getsockopt },/* 118 = getsockopt */
+	    (sy_call_t *)linux_sys_getsockopt, 0, 0 },/* 118 = getsockopt */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 119 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 119 = unimplemented */
 	{ ns(struct sys_readv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readv },		/* 120 = readv */
+	    (sy_call_t *)sys_readv, 0, 0 },		/* 120 = readv */
 	{ ns(struct sys_writev_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_writev },		/* 121 = writev */
+	    (sy_call_t *)sys_writev, 0, 0 },		/* 121 = writev */
 	{ ns(struct osf1_sys_settimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_settimeofday },/* 122 = settimeofday */
+	    (sy_call_t *)osf1_sys_settimeofday, 0, 0 },/* 122 = settimeofday */
 	{ ns(struct sys___posix_fchown_args), 0,
-	    (sy_call_t *)sys___posix_fchown },	/* 123 = __posix_fchown */
+	    (sy_call_t *)sys___posix_fchown, 0, 0 },	/* 123 = __posix_fchown */
 	{ ns(struct sys_fchmod_args), 0,
-	    (sy_call_t *)sys_fchmod },		/* 124 = fchmod */
+	    (sy_call_t *)sys_fchmod, 0, 0 },		/* 124 = fchmod */
 	{ ns(struct linux_sys_recvfrom_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_recvfrom },	/* 125 = recvfrom */
+	    (sy_call_t *)linux_sys_recvfrom, 0, 0 },	/* 125 = recvfrom */
 	{ ns(struct sys_setreuid_args), 0,
-	    (sy_call_t *)sys_setreuid },	/* 126 = setreuid */
+	    (sy_call_t *)sys_setreuid, 0, 0 },	/* 126 = setreuid */
 	{ ns(struct sys_setregid_args), 0,
-	    (sy_call_t *)sys_setregid },	/* 127 = setregid */
+	    (sy_call_t *)sys_setregid, 0, 0 },	/* 127 = setregid */
 	{ ns(struct sys___posix_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_rename },	/* 128 = __posix_rename */
+	    (sy_call_t *)sys___posix_rename, 0, 0 },	/* 128 = __posix_rename */
 	{ ns(struct compat_43_sys_truncate_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_truncate },/* 129 = truncate */
+	    (sy_call_t *)compat_43_sys_truncate, 0, 0 },/* 129 = truncate */
 	{ ns(struct compat_43_sys_ftruncate_args), 0,
-	    (sy_call_t *)compat_43_sys_ftruncate },/* 130 = ftruncate */
+	    (sy_call_t *)compat_43_sys_ftruncate, 0, 0 },/* 130 = ftruncate */
 	{ ns(struct sys_flock_args), 0,
-	    (sy_call_t *)sys_flock },		/* 131 = flock */
+	    (sy_call_t *)sys_flock, 0, 0 },		/* 131 = flock */
 	{ ns(struct sys_setgid_args), 0,
-	    (sy_call_t *)sys_setgid },		/* 132 = setgid */
+	    (sy_call_t *)sys_setgid, 0, 0 },		/* 132 = setgid */
 	{ ns(struct linux_sys_sendto_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sendto },	/* 133 = sendto */
+	    (sy_call_t *)linux_sys_sendto, 0, 0 },	/* 133 = sendto */
 	{ ns(struct sys_shutdown_args), 0,
-	    (sy_call_t *)sys_shutdown },	/* 134 = shutdown */
+	    (sy_call_t *)sys_shutdown, 0, 0 },	/* 134 = shutdown */
 	{ ns(struct linux_sys_socketpair_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_socketpair },/* 135 = socketpair */
+	    (sy_call_t *)linux_sys_socketpair, 0, 0 },/* 135 = socketpair */
 	{ ns(struct sys_mkdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdir },		/* 136 = mkdir */
+	    (sy_call_t *)sys_mkdir, 0, 0 },		/* 136 = mkdir */
 	{ ns(struct sys_rmdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rmdir },		/* 137 = rmdir */
+	    (sy_call_t *)sys_rmdir, 0, 0 },		/* 137 = rmdir */
 	{ ns(struct osf1_sys_utimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_utimes },	/* 138 = utimes */
+	    (sy_call_t *)osf1_sys_utimes, 0, 0 },	/* 138 = utimes */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 139 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 139 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 140 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 140 = unimplemented */
 	{ ns(struct linux_sys_getpeername_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getpeername },/* 141 = getpeername */
+	    (sy_call_t *)linux_sys_getpeername, 0, 0 },/* 141 = getpeername */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 142 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 142 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 143 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 143 = unimplemented */
 	{ ns(struct linux_sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getrlimit },	/* 144 = getrlimit */
+	    (sy_call_t *)linux_sys_getrlimit, 0, 0 },	/* 144 = getrlimit */
 	{ ns(struct linux_sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setrlimit },	/* 145 = setrlimit */
+	    (sy_call_t *)linux_sys_setrlimit, 0, 0 },	/* 145 = setrlimit */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 146 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 146 = unimplemented */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_setsid },		/* 147 = setsid */
+	    (sy_call_t *)sys_setsid, 0, 0 },		/* 147 = setsid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 148 = unimplemented quotactl */
+	    linux_sys_nosys, 0, 0 },			/* 148 = unimplemented quotactl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 149 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 149 = unimplemented */
 	{ ns(struct linux_sys_getsockname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getsockname },/* 150 = getsockname */
+	    (sy_call_t *)linux_sys_getsockname, 0, 0 },/* 150 = getsockname */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 151 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 151 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 152 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 152 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 153 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 153 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 154 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 154 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 155 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 155 = unimplemented */
 	{ ns(struct linux_sys_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigaction },	/* 156 = sigaction */
+	    (sy_call_t *)linux_sys_sigaction, 0, 0 },	/* 156 = sigaction */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 157 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 157 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 158 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 158 = unimplemented */
 	{ ns(struct compat_43_sys_getdirentries_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getdirentries },/* 159 = getdirentries */
+	    (sy_call_t *)compat_43_sys_getdirentries, 0, 0 },/* 159 = getdirentries */
 	{ ns(struct osf1_sys_statfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_statfs },	/* 160 = statfs */
+	    (sy_call_t *)osf1_sys_statfs, 0, 0 },	/* 160 = statfs */
 	{ ns(struct osf1_sys_fstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_fstatfs },	/* 161 = fstatfs */
+	    (sy_call_t *)osf1_sys_fstatfs, 0, 0 },	/* 161 = fstatfs */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 162 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 162 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 163 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 163 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 164 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 164 = unimplemented */
 	{ ns(struct compat_09_sys_getdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_09_sys_getdomainname },/* 165 = getdomainname */
+	    (sy_call_t *)compat_09_sys_getdomainname, 0, 0 },/* 165 = getdomainname */
 	{ ns(struct linux_sys_setdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setdomainname },/* 166 = setdomainname */
+	    (sy_call_t *)linux_sys_setdomainname, 0, 0 },/* 166 = setdomainname */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 167 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 167 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 168 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 168 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 169 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 169 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 170 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 170 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 171 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 171 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 172 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 172 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 173 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 173 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 174 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 174 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 175 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 175 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 176 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 176 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 177 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 177 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 178 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 178 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 179 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 179 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 180 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 180 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 181 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 181 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 182 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 182 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 183 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 183 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 184 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 184 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 185 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 185 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 186 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 186 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 187 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 187 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 188 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 188 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 189 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 189 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 190 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 190 = unimplemented */
 	{ ns(struct linux_sys_ugetrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ugetrlimit },/* 191 = ugetrlimit */
+	    (sy_call_t *)linux_sys_ugetrlimit, 0, 0 },/* 191 = ugetrlimit */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 192 = unimplemented mmap2 */
+	    linux_sys_nosys, 0, 0 },			/* 192 = unimplemented mmap2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 193 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 193 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 194 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 194 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 195 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 195 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 196 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 196 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 197 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 197 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 198 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 198 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 199 = unimplemented osf1_sys_swapon */
+	    linux_sys_nosys, 0, 0 },			/* 199 = unimplemented osf1_sys_swapon */
 #ifdef SYSVMSG
 	{ ns(struct linux_sys_msgctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_msgctl },	/* 200 = msgctl */
+	    (sy_call_t *)linux_sys_msgctl, 0, 0 },	/* 200 = msgctl */
 	{ ns(struct sys_msgget_args), 0,
-	    (sy_call_t *)sys_msgget },		/* 201 = msgget */
+	    (sy_call_t *)sys_msgget, 0, 0 },		/* 201 = msgget */
 	{ ns(struct sys_msgrcv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_msgrcv },		/* 202 = msgrcv */
+	    (sy_call_t *)sys_msgrcv, 0, 0 },		/* 202 = msgrcv */
 	{ ns(struct sys_msgsnd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_msgsnd },		/* 203 = msgsnd */
+	    (sy_call_t *)sys_msgsnd, 0, 0 },		/* 203 = msgsnd */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 200 = unimplemented msgctl */
+	    linux_sys_nosys, 0, 0 },			/* 200 = unimplemented msgctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 201 = unimplemented msgget */
+	    linux_sys_nosys, 0, 0 },			/* 201 = unimplemented msgget */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 202 = unimplemented msgrcv */
+	    linux_sys_nosys, 0, 0 },			/* 202 = unimplemented msgrcv */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 203 = unimplemented msgsnd */
+	    linux_sys_nosys, 0, 0 },			/* 203 = unimplemented msgsnd */
 #endif
 #ifdef SYSVSEM
 	{ ns(struct linux_sys_semctl_args), 0,
-	    (sy_call_t *)linux_sys_semctl },	/* 204 = semctl */
+	    (sy_call_t *)linux_sys_semctl, 0, 0 },	/* 204 = semctl */
 	{ ns(struct sys_semget_args), 0,
-	    (sy_call_t *)sys_semget },		/* 205 = semget */
+	    (sy_call_t *)sys_semget, 0, 0 },		/* 205 = semget */
 	{ ns(struct sys_semop_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_semop },		/* 206 = semop */
+	    (sy_call_t *)sys_semop, 0, 0 },		/* 206 = semop */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 204 = unimplemented semctl */
+	    linux_sys_nosys, 0, 0 },			/* 204 = unimplemented semctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 205 = unimplemented semget */
+	    linux_sys_nosys, 0, 0 },			/* 205 = unimplemented semget */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 206 = unimplemented semop */
+	    linux_sys_nosys, 0, 0 },			/* 206 = unimplemented semop */
 #endif
 	{ ns(struct linux_sys_olduname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_olduname },	/* 207 = olduname */
+	    (sy_call_t *)linux_sys_olduname, 0, 0 },	/* 207 = olduname */
 	{ ns(struct sys___posix_lchown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_lchown },	/* 208 = __posix_lchown */
+	    (sy_call_t *)sys___posix_lchown, 0, 0 },	/* 208 = __posix_lchown */
 #ifdef SYSVSHM
 	{ ns(struct linux_sys_shmat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_shmat },	/* 209 = shmat */
+	    (sy_call_t *)linux_sys_shmat, 0, 0 },	/* 209 = shmat */
 	{ ns(struct linux_sys_shmctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_shmctl },	/* 210 = shmctl */
+	    (sy_call_t *)linux_sys_shmctl, 0, 0 },	/* 210 = shmctl */
 	{ ns(struct sys_shmdt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_shmdt },		/* 211 = shmdt */
+	    (sy_call_t *)sys_shmdt, 0, 0 },		/* 211 = shmdt */
 	{ ns(struct linux_sys_shmget_args), 0,
-	    (sy_call_t *)linux_sys_shmget },	/* 212 = shmget */
+	    (sy_call_t *)linux_sys_shmget, 0, 0 },	/* 212 = shmget */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 209 = unimplemented shmat */
+	    linux_sys_nosys, 0, 0 },			/* 209 = unimplemented shmat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 210 = unimplemented shmctl */
+	    linux_sys_nosys, 0, 0 },			/* 210 = unimplemented shmctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 211 = unimplemented shmdt */
+	    linux_sys_nosys, 0, 0 },			/* 211 = unimplemented shmdt */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 212 = unimplemented shmget */
+	    linux_sys_nosys, 0, 0 },			/* 212 = unimplemented shmget */
 #endif
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 213 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 213 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 214 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 214 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 215 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 215 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 216 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 216 = unimplemented */
 	{ ns(struct sys___msync13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___msync13 },	/* 217 = __msync13 */
+	    (sy_call_t *)sys___msync13, 0, 0 },	/* 217 = __msync13 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 218 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 218 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 219 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 219 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 220 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 220 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 221 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 221 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 222 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 222 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 223 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 223 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 224 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 224 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 225 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 225 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 226 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 226 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 227 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 227 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 228 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 228 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 229 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 229 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 230 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 230 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 231 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 231 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 232 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 232 = unimplemented */
 	{ ns(struct sys_getpgid_args), 0,
-	    (sy_call_t *)sys_getpgid },		/* 233 = getpgid */
+	    (sy_call_t *)sys_getpgid, 0, 0 },		/* 233 = getpgid */
 	{ ns(struct sys_getsid_args), 0,
-	    (sy_call_t *)sys_getsid },		/* 234 = getsid */
+	    (sy_call_t *)sys_getsid, 0, 0 },		/* 234 = getsid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 235 = unimplemented sigaltstack */
+	    linux_sys_nosys, 0, 0 },			/* 235 = unimplemented sigaltstack */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 236 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 236 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 237 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 237 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 238 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 238 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 239 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 239 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 240 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 240 = unimplemented */
 	{ ns(struct osf1_sys_sysinfo_args), 0,
-	    (sy_call_t *)osf1_sys_sysinfo },	/* 241 = sysinfo */
+	    (sy_call_t *)osf1_sys_sysinfo, 0, 0 },	/* 241 = sysinfo */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 242 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 242 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 243 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 243 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 244 = unimplemented osf1_sys_proplist_syscall */
+	    linux_sys_nosys, 0, 0 },			/* 244 = unimplemented osf1_sys_proplist_syscall */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 245 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 245 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 246 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 246 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 247 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 247 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 248 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 248 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 249 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 249 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 250 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 250 = unimplemented */
 	{ ns(struct osf1_sys_usleep_thread_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_usleep_thread },/* 251 = usleep_thread */
+	    (sy_call_t *)osf1_sys_usleep_thread, 0, 0 },/* 251 = usleep_thread */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 252 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 252 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 253 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 253 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 254 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 254 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 255 = unimplemented sysfs */
+	    linux_sys_nosys, 0, 0 },			/* 255 = unimplemented sysfs */
 	{ ns(struct osf1_sys_getsysinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_getsysinfo },	/* 256 = getsysinfo */
+	    (sy_call_t *)osf1_sys_getsysinfo, 0, 0 },	/* 256 = getsysinfo */
 	{ ns(struct osf1_sys_setsysinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_setsysinfo },	/* 257 = setsysinfo */
+	    (sy_call_t *)osf1_sys_setsysinfo, 0, 0 },	/* 257 = setsysinfo */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 258 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 258 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 259 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 259 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 260 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 260 = unimplemented */
 	{ ns(struct linux_sys_fdatasync_args), 0,
-	    (sy_call_t *)linux_sys_fdatasync },	/* 261 = fdatasync */
+	    (sy_call_t *)linux_sys_fdatasync, 0, 0 },	/* 261 = fdatasync */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 262 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 262 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 263 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 263 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 264 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 264 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 265 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 265 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 266 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 266 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 267 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 267 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 268 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 268 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 269 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 269 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 270 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 270 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 271 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 271 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 272 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 272 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 273 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 273 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 274 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 274 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 275 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 275 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 276 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 276 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 277 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 277 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 278 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 278 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 279 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 279 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 280 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 280 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 281 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 281 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 282 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 282 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 283 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 283 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 284 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 284 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 285 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 285 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 286 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 286 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 287 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 287 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 288 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 288 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 289 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 289 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 290 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 290 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 291 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 291 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 292 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 292 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 293 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 293 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 294 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 294 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 295 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 295 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 296 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 296 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 297 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 297 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 298 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 298 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 299 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 299 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 300 = unimplemented bdflush */
+	    linux_sys_nosys, 0, 0 },			/* 300 = unimplemented bdflush */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 301 = unimplemented sethae */
+	    linux_sys_nosys, 0, 0 },			/* 301 = unimplemented sethae */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 302 = unimplemented mount */
+	    linux_sys_nosys, 0, 0 },			/* 302 = unimplemented mount */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 303 = unimplemented old_adjtimex */
+	    linux_sys_nosys, 0, 0 },			/* 303 = unimplemented old_adjtimex */
 	{ ns(struct linux_sys_swapoff_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_swapoff },	/* 304 = swapoff */
+	    (sy_call_t *)linux_sys_swapoff, 0, 0 },	/* 304 = swapoff */
 	{ ns(struct linux_sys_getdents_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getdents },	/* 305 = getdents */
+	    (sy_call_t *)linux_sys_getdents, 0, 0 },	/* 305 = getdents */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 306 = unimplemented alpha_create_module */
+	    linux_sys_nosys, 0, 0 },			/* 306 = unimplemented alpha_create_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 307 = unimplemented init_module */
+	    linux_sys_nosys, 0, 0 },			/* 307 = unimplemented init_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 308 = unimplemented delete_module */
+	    linux_sys_nosys, 0, 0 },			/* 308 = unimplemented delete_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 309 = unimplemented get_kernel_syms */
+	    linux_sys_nosys, 0, 0 },			/* 309 = unimplemented get_kernel_syms */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 310 = unimplemented syslog */
+	    linux_sys_nosys, 0, 0 },			/* 310 = unimplemented syslog */
 	{ ns(struct linux_sys_reboot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_reboot },	/* 311 = reboot */
+	    (sy_call_t *)linux_sys_reboot, 0, 0 },	/* 311 = reboot */
 	{ ns(struct linux_sys_clone_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clone },	/* 312 = clone */
+	    (sy_call_t *)linux_sys_clone, 0, 0 },	/* 312 = clone */
 #ifdef EXEC_AOUT
 	{ ns(struct linux_sys_uselib_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_uselib },	/* 313 = uselib */
+	    (sy_call_t *)linux_sys_uselib, 0, 0 },	/* 313 = uselib */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 313 = unimplemented sys_uselib */
+	    linux_sys_nosys, 0, 0 },			/* 313 = unimplemented sys_uselib */
 #endif
 	{ ns(struct sys_mlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mlock },		/* 314 = mlock */
+	    (sy_call_t *)sys_mlock, 0, 0 },		/* 314 = mlock */
 	{ ns(struct sys_munlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munlock },		/* 315 = munlock */
+	    (sy_call_t *)sys_munlock, 0, 0 },		/* 315 = munlock */
 	{ ns(struct sys_mlockall_args), 0,
-	    (sy_call_t *)sys_mlockall },	/* 316 = mlockall */
+	    (sy_call_t *)sys_mlockall, 0, 0 },	/* 316 = mlockall */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_munlockall },	/* 317 = munlockall */
+	    (sy_call_t *)sys_munlockall, 0, 0 },	/* 317 = munlockall */
 	{ ns(struct linux_sys_sysinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sysinfo },	/* 318 = sysinfo */
+	    (sy_call_t *)linux_sys_sysinfo, 0, 0 },	/* 318 = sysinfo */
 	{ ns(struct linux_sys___sysctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys___sysctl },	/* 319 = __sysctl */
+	    (sy_call_t *)linux_sys___sysctl, 0, 0 },	/* 319 = __sysctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 320 = unimplemented idle */
+	    linux_sys_nosys, 0, 0 },			/* 320 = unimplemented idle */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 321 = unimplemented oldumount */
+	    linux_sys_nosys, 0, 0 },			/* 321 = unimplemented oldumount */
 	{ ns(struct linux_sys_swapon_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_swapon },	/* 322 = swapon */
+	    (sy_call_t *)linux_sys_swapon, 0, 0 },	/* 322 = swapon */
 	{ ns(struct linux_sys_times_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_times },	/* 323 = times */
+	    (sy_call_t *)linux_sys_times, 0, 0 },	/* 323 = times */
 	{ ns(struct linux_sys_personality_args), 0,
-	    (sy_call_t *)linux_sys_personality },/* 324 = personality */
+	    (sy_call_t *)linux_sys_personality, 0, 0 },/* 324 = personality */
 	{ ns(struct linux_sys_setfsuid_args), 0,
-	    (sy_call_t *)linux_sys_setfsuid },	/* 325 = setfsuid */
+	    (sy_call_t *)linux_sys_setfsuid, 0, 0 },	/* 325 = setfsuid */
 	{ ns(struct linux_sys_setfsgid_args), 0,
-	    (sy_call_t *)linux_sys_setfsgid },	/* 326 = setfsgid */
+	    (sy_call_t *)linux_sys_setfsgid, 0, 0 },	/* 326 = setfsgid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 327 = unimplemented ustat */
+	    linux_sys_nosys, 0, 0 },			/* 327 = unimplemented ustat */
 	{ ns(struct linux_sys_statfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_statfs },	/* 328 = statfs */
+	    (sy_call_t *)linux_sys_statfs, 0, 0 },	/* 328 = statfs */
 	{ ns(struct linux_sys_fstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatfs },	/* 329 = fstatfs */
+	    (sy_call_t *)linux_sys_fstatfs, 0, 0 },	/* 329 = fstatfs */
 	{ ns(struct linux_sys_sched_setparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setparam },/* 330 = sched_setparam */
+	    (sy_call_t *)linux_sys_sched_setparam, 0, 0 },/* 330 = sched_setparam */
 	{ ns(struct linux_sys_sched_getparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_getparam },/* 331 = sched_getparam */
+	    (sy_call_t *)linux_sys_sched_getparam, 0, 0 },/* 331 = sched_getparam */
 	{ ns(struct linux_sys_sched_setscheduler_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setscheduler },/* 332 = sched_setscheduler */
+	    (sy_call_t *)linux_sys_sched_setscheduler, 0, 0 },/* 332 = sched_setscheduler */
 	{ ns(struct linux_sys_sched_getscheduler_args), 0,
-	    (sy_call_t *)linux_sys_sched_getscheduler },/* 333 = sched_getscheduler */
+	    (sy_call_t *)linux_sys_sched_getscheduler, 0, 0 },/* 333 = sched_getscheduler */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_sched_yield },/* 334 = sched_yield */
+	    (sy_call_t *)linux_sys_sched_yield, 0, 0 },/* 334 = sched_yield */
 	{ ns(struct linux_sys_sched_get_priority_max_args), 0,
-	    (sy_call_t *)linux_sys_sched_get_priority_max },/* 335 = sched_get_priority_max */
+	    (sy_call_t *)linux_sys_sched_get_priority_max, 0, 0 },/* 335 = sched_get_priority_max */
 	{ ns(struct linux_sys_sched_get_priority_min_args), 0,
-	    (sy_call_t *)linux_sys_sched_get_priority_min },/* 336 = sched_get_priority_min */
+	    (sy_call_t *)linux_sys_sched_get_priority_min, 0, 0 },/* 336 = sched_get_priority_min */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 337 = unimplemented sched_rr_get_interval */
+	    linux_sys_nosys, 0, 0 },			/* 337 = unimplemented sched_rr_get_interval */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 338 = unimplemented afs_syscall */
+	    linux_sys_nosys, 0, 0 },			/* 338 = unimplemented afs_syscall */
 	{ ns(struct linux_sys_uname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_uname },	/* 339 = uname */
+	    (sy_call_t *)linux_sys_uname, 0, 0 },	/* 339 = uname */
 	{ ns(struct linux_sys_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_nanosleep },	/* 340 = nanosleep */
+	    (sy_call_t *)linux_sys_nanosleep, 0, 0 },	/* 340 = nanosleep */
 	{ ns(struct linux_sys_mremap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mremap },	/* 341 = mremap */
+	    (sy_call_t *)linux_sys_mremap, 0, 0 },	/* 341 = mremap */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 342 = unimplemented nfsservctl */
+	    linux_sys_nosys, 0, 0 },			/* 342 = unimplemented nfsservctl */
 	{ ns(struct linux_sys_setresuid_args), 0,
-	    (sy_call_t *)linux_sys_setresuid },	/* 343 = setresuid */
+	    (sy_call_t *)linux_sys_setresuid, 0, 0 },	/* 343 = setresuid */
 	{ ns(struct linux_sys_getresuid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresuid },	/* 344 = getresuid */
+	    (sy_call_t *)linux_sys_getresuid, 0, 0 },	/* 344 = getresuid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 345 = unimplemented pciconfig_read */
+	    linux_sys_nosys, 0, 0 },			/* 345 = unimplemented pciconfig_read */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 346 = unimplemented pciconfig_write */
+	    linux_sys_nosys, 0, 0 },			/* 346 = unimplemented pciconfig_write */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 347 = unimplemented query_module */
+	    linux_sys_nosys, 0, 0 },			/* 347 = unimplemented query_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 348 = unimplemented prctl */
+	    linux_sys_nosys, 0, 0 },			/* 348 = unimplemented prctl */
 	{ ns(struct linux_sys_pread_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG3_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pread },	/* 349 = pread */
+	    (sy_call_t *)linux_sys_pread, 0, 0 },	/* 349 = pread */
 	{ ns(struct linux_sys_pwrite_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG3_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pwrite },	/* 350 = pwrite */
+	    (sy_call_t *)linux_sys_pwrite, 0, 0 },	/* 350 = pwrite */
 	{ ns(struct linux_sys_rt_sigreturn_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigreturn },/* 351 = rt_sigreturn */
+	    (sy_call_t *)linux_sys_rt_sigreturn, 0, 0 },/* 351 = rt_sigreturn */
 	{ ns(struct linux_sys_rt_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigaction },/* 352 = rt_sigaction */
+	    (sy_call_t *)linux_sys_rt_sigaction, 0, 0 },/* 352 = rt_sigaction */
 	{ ns(struct linux_sys_rt_sigprocmask_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigprocmask },/* 353 = rt_sigprocmask */
+	    (sy_call_t *)linux_sys_rt_sigprocmask, 0, 0 },/* 353 = rt_sigprocmask */
 	{ ns(struct linux_sys_rt_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigpending },/* 354 = rt_sigpending */
+	    (sy_call_t *)linux_sys_rt_sigpending, 0, 0 },/* 354 = rt_sigpending */
 	{ ns(struct linux_sys_rt_sigtimedwait_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigtimedwait },/* 355 = rt_sigtimedwait */
+	    (sy_call_t *)linux_sys_rt_sigtimedwait, 0, 0 },/* 355 = rt_sigtimedwait */
 	{ ns(struct linux_sys_rt_queueinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_queueinfo },/* 356 = rt_queueinfo */
+	    (sy_call_t *)linux_sys_rt_queueinfo, 0, 0 },/* 356 = rt_queueinfo */
 	{ ns(struct linux_sys_rt_sigsuspend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigsuspend },/* 357 = rt_sigsuspend */
+	    (sy_call_t *)linux_sys_rt_sigsuspend, 0, 0 },/* 357 = rt_sigsuspend */
 	{ ns(struct linux_sys_select_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_select },	/* 358 = select */
+	    (sy_call_t *)linux_sys_select, 0, 0 },	/* 358 = select */
 	{ ns(struct linux_sys_gettimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_gettimeofday },/* 359 = gettimeofday */
+	    (sy_call_t *)linux_sys_gettimeofday, 0, 0 },/* 359 = gettimeofday */
 	{ ns(struct linux_sys_settimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_settimeofday },/* 360 = settimeofday */
+	    (sy_call_t *)linux_sys_settimeofday, 0, 0 },/* 360 = settimeofday */
 	{ ns(struct compat_50_sys_getitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getitimer },/* 361 = getitimer */
+	    (sy_call_t *)compat_50_sys_getitimer, 0, 0 },/* 361 = getitimer */
 	{ ns(struct compat_50_sys_setitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_setitimer },/* 362 = setitimer */
+	    (sy_call_t *)compat_50_sys_setitimer, 0, 0 },/* 362 = setitimer */
 	{ ns(struct compat_50_sys_utimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_utimes },/* 363 = utimes */
+	    (sy_call_t *)compat_50_sys_utimes, 0, 0 },/* 363 = utimes */
 	{ ns(struct compat_50_sys_getrusage_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getrusage },/* 364 = getrusage */
+	    (sy_call_t *)compat_50_sys_getrusage, 0, 0 },/* 364 = getrusage */
 	{ ns(struct linux_sys_wait4_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_wait4 },	/* 365 = wait4 */
+	    (sy_call_t *)linux_sys_wait4, 0, 0 },	/* 365 = wait4 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 366 = unimplemented adjtimex */
+	    linux_sys_nosys, 0, 0 },			/* 366 = unimplemented adjtimex */
 	{ ns(struct sys___getcwd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getcwd },	/* 367 = __getcwd */
+	    (sy_call_t *)sys___getcwd, 0, 0 },	/* 367 = __getcwd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 368 = unimplemented capget */
+	    linux_sys_nosys, 0, 0 },			/* 368 = unimplemented capget */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 369 = unimplemented capset */
+	    linux_sys_nosys, 0, 0 },			/* 369 = unimplemented capset */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 370 = unimplemented sendfile */
+	    linux_sys_nosys, 0, 0 },			/* 370 = unimplemented sendfile */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 371 = unimplemented setresgid */
+	    linux_sys_nosys, 0, 0 },			/* 371 = unimplemented setresgid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 372 = unimplemented getresgid */
+	    linux_sys_nosys, 0, 0 },			/* 372 = unimplemented getresgid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 373 = unimplemented sys_dipc */
+	    linux_sys_nosys, 0, 0 },			/* 373 = unimplemented sys_dipc */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 374 = unimplemented pivot_root */
+	    linux_sys_nosys, 0, 0 },			/* 374 = unimplemented pivot_root */
 	{ ns(struct sys_mincore_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mincore },		/* 375 = mincore */
+	    (sy_call_t *)sys_mincore, 0, 0 },		/* 375 = mincore */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 376 = unimplemented pciconfig_iobase */
+	    linux_sys_nosys, 0, 0 },			/* 376 = unimplemented pciconfig_iobase */
 	{ ns(struct linux_sys_getdents64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getdents64 },/* 377 = getdents64 */
+	    (sy_call_t *)linux_sys_getdents64, 0, 0 },/* 377 = getdents64 */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_gettid },	/* 378 = gettid */
+	    (sy_call_t *)linux_sys_gettid, 0, 0 },	/* 378 = gettid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 379 = unimplemented readahead */
+	    linux_sys_nosys, 0, 0 },			/* 379 = unimplemented readahead */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 380 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 380 = unimplemented / * unused * / */
 	{ ns(struct linux_sys_tkill_args), 0,
-	    (sy_call_t *)linux_sys_tkill },	/* 381 = tkill */
+	    (sy_call_t *)linux_sys_tkill, 0, 0 },	/* 381 = tkill */
 	{ ns(struct linux_sys_setxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setxattr },	/* 382 = setxattr */
+	    (sy_call_t *)linux_sys_setxattr, 0, 0 },	/* 382 = setxattr */
 	{ ns(struct linux_sys_lsetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lsetxattr },	/* 383 = lsetxattr */
+	    (sy_call_t *)linux_sys_lsetxattr, 0, 0 },	/* 383 = lsetxattr */
 	{ ns(struct linux_sys_fsetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fsetxattr },	/* 384 = fsetxattr */
+	    (sy_call_t *)linux_sys_fsetxattr, 0, 0 },	/* 384 = fsetxattr */
 	{ ns(struct linux_sys_getxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getxattr },	/* 385 = getxattr */
+	    (sy_call_t *)linux_sys_getxattr, 0, 0 },	/* 385 = getxattr */
 	{ ns(struct linux_sys_lgetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lgetxattr },	/* 386 = lgetxattr */
+	    (sy_call_t *)linux_sys_lgetxattr, 0, 0 },	/* 386 = lgetxattr */
 	{ ns(struct linux_sys_fgetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fgetxattr },	/* 387 = fgetxattr */
+	    (sy_call_t *)linux_sys_fgetxattr, 0, 0 },	/* 387 = fgetxattr */
 	{ ns(struct linux_sys_listxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_listxattr },	/* 388 = listxattr */
+	    (sy_call_t *)linux_sys_listxattr, 0, 0 },	/* 388 = listxattr */
 	{ ns(struct linux_sys_llistxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_llistxattr },/* 389 = llistxattr */
+	    (sy_call_t *)linux_sys_llistxattr, 0, 0 },/* 389 = llistxattr */
 	{ ns(struct linux_sys_flistxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_flistxattr },/* 390 = flistxattr */
+	    (sy_call_t *)linux_sys_flistxattr, 0, 0 },/* 390 = flistxattr */
 	{ ns(struct linux_sys_removexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_removexattr },/* 391 = removexattr */
+	    (sy_call_t *)linux_sys_removexattr, 0, 0 },/* 391 = removexattr */
 	{ ns(struct linux_sys_lremovexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lremovexattr },/* 392 = lremovexattr */
+	    (sy_call_t *)linux_sys_lremovexattr, 0, 0 },/* 392 = lremovexattr */
 	{ ns(struct linux_sys_fremovexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fremovexattr },/* 393 = fremovexattr */
+	    (sy_call_t *)linux_sys_fremovexattr, 0, 0 },/* 393 = fremovexattr */
 	{ ns(struct linux_sys_futex_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_futex },	/* 394 = futex */
+	    (sy_call_t *)linux_sys_futex, 0, 0 },	/* 394 = futex */
 	{ ns(struct linux_sys_sched_setaffinity_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setaffinity },/* 395 = sched_setaffinity */
+	    (sy_call_t *)linux_sys_sched_setaffinity, 0, 0 },/* 395 = sched_setaffinity */
 	{ ns(struct linux_sys_sched_getaffinity_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_getaffinity },/* 396 = sched_getaffinity */
+	    (sy_call_t *)linux_sys_sched_getaffinity, 0, 0 },/* 396 = sched_getaffinity */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 397 = unimplemented tuxcall */
+	    linux_sys_nosys, 0, 0 },			/* 397 = unimplemented tuxcall */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 398 = unimplemented io_setup */
+	    linux_sys_nosys, 0, 0 },			/* 398 = unimplemented io_setup */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 399 = unimplemented io_destroy */
+	    linux_sys_nosys, 0, 0 },			/* 399 = unimplemented io_destroy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 400 = unimplemented io_getevents */
+	    linux_sys_nosys, 0, 0 },			/* 400 = unimplemented io_getevents */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 401 = unimplemented io_submit */
+	    linux_sys_nosys, 0, 0 },			/* 401 = unimplemented io_submit */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 402 = unimplemented io_cancel */
+	    linux_sys_nosys, 0, 0 },			/* 402 = unimplemented io_cancel */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 403 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 403 = unimplemented / * unused * / */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 404 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 404 = unimplemented / * unused * / */
 	{ ns(struct linux_sys_exit_group_args), 0,
-	    (sy_call_t *)linux_sys_exit_group },/* 405 = exit_group */
+	    (sy_call_t *)linux_sys_exit_group, 0, 0 },/* 405 = exit_group */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 406 = unimplemented lookup_dcookie */
+	    linux_sys_nosys, 0, 0 },			/* 406 = unimplemented lookup_dcookie */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 407 = unimplemented sys_epoll_create */
+	    linux_sys_nosys, 0, 0 },			/* 407 = unimplemented sys_epoll_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 408 = unimplemented sys_epoll_ctl */
+	    linux_sys_nosys, 0, 0 },			/* 408 = unimplemented sys_epoll_ctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 409 = unimplemented sys_epoll_wait */
+	    linux_sys_nosys, 0, 0 },			/* 409 = unimplemented sys_epoll_wait */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 410 = unimplemented remap_file_pages */
+	    linux_sys_nosys, 0, 0 },			/* 410 = unimplemented remap_file_pages */
 	{ ns(struct linux_sys_set_tid_address_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_tid_address },/* 411 = set_tid_address */
+	    (sy_call_t *)linux_sys_set_tid_address, 0, 0 },/* 411 = set_tid_address */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 412 = unimplemented restart_syscall */
+	    linux_sys_nosys, 0, 0 },			/* 412 = unimplemented restart_syscall */
 	{ ns(struct linux_sys_fadvise64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64,
-	    (sy_call_t *)linux_sys_fadvise64 },	/* 413 = fadvise64 */
+	    (sy_call_t *)linux_sys_fadvise64, 0, 0 },	/* 413 = fadvise64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 414 = unimplemented timer_create */
+	    linux_sys_nosys, 0, 0 },			/* 414 = unimplemented timer_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 415 = unimplemented timer_settime */
+	    linux_sys_nosys, 0, 0 },			/* 415 = unimplemented timer_settime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 416 = unimplemented timer_gettime */
+	    linux_sys_nosys, 0, 0 },			/* 416 = unimplemented timer_gettime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 417 = unimplemented timer_getoverrun */
+	    linux_sys_nosys, 0, 0 },			/* 417 = unimplemented timer_getoverrun */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 418 = unimplemented timer_delete */
+	    linux_sys_nosys, 0, 0 },			/* 418 = unimplemented timer_delete */
 	{ ns(struct linux_sys_clock_settime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_settime },/* 419 = clock_settime */
+	    (sy_call_t *)linux_sys_clock_settime, 0, 0 },/* 419 = clock_settime */
 	{ ns(struct linux_sys_clock_gettime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_gettime },/* 420 = clock_gettime */
+	    (sy_call_t *)linux_sys_clock_gettime, 0, 0 },/* 420 = clock_gettime */
 	{ ns(struct linux_sys_clock_getres_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_getres },/* 421 = clock_getres */
+	    (sy_call_t *)linux_sys_clock_getres, 0, 0 },/* 421 = clock_getres */
 	{ ns(struct linux_sys_clock_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_nanosleep },/* 422 = clock_nanosleep */
+	    (sy_call_t *)linux_sys_clock_nanosleep, 0, 0 },/* 422 = clock_nanosleep */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 423 = unimplemented semtimedop */
+	    linux_sys_nosys, 0, 0 },			/* 423 = unimplemented semtimedop */
 	{ ns(struct linux_sys_tgkill_args), 0,
-	    (sy_call_t *)linux_sys_tgkill },	/* 424 = tgkill */
+	    (sy_call_t *)linux_sys_tgkill, 0, 0 },	/* 424 = tgkill */
 	{ ns(struct linux_sys_stat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stat64 },	/* 425 = stat64 */
+	    (sy_call_t *)linux_sys_stat64, 0, 0 },	/* 425 = stat64 */
 	{ ns(struct linux_sys_lstat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lstat64 },	/* 426 = lstat64 */
+	    (sy_call_t *)linux_sys_lstat64, 0, 0 },	/* 426 = lstat64 */
 	{ ns(struct linux_sys_fstat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstat64 },	/* 427 = fstat64 */
+	    (sy_call_t *)linux_sys_fstat64, 0, 0 },	/* 427 = fstat64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 428 = unimplemented vserver */
+	    linux_sys_nosys, 0, 0 },			/* 428 = unimplemented vserver */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 429 = unimplemented mbind */
+	    linux_sys_nosys, 0, 0 },			/* 429 = unimplemented mbind */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 430 = unimplemented get_mempolicy */
+	    linux_sys_nosys, 0, 0 },			/* 430 = unimplemented get_mempolicy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 431 = unimplemented set_mempolicy */
+	    linux_sys_nosys, 0, 0 },			/* 431 = unimplemented set_mempolicy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 432 = unimplemented mq_open */
+	    linux_sys_nosys, 0, 0 },			/* 432 = unimplemented mq_open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 433 = unimplemented mq_unlink */
+	    linux_sys_nosys, 0, 0 },			/* 433 = unimplemented mq_unlink */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 434 = unimplemented mq_timedsend */
+	    linux_sys_nosys, 0, 0 },			/* 434 = unimplemented mq_timedsend */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 435 = unimplemented mq_timedreceive */
+	    linux_sys_nosys, 0, 0 },			/* 435 = unimplemented mq_timedreceive */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 436 = unimplemented mq_notify */
+	    linux_sys_nosys, 0, 0 },			/* 436 = unimplemented mq_notify */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 437 = unimplemented mq_getsetattr */
+	    linux_sys_nosys, 0, 0 },			/* 437 = unimplemented mq_getsetattr */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 438 = unimplemented waitid */
+	    linux_sys_nosys, 0, 0 },			/* 438 = unimplemented waitid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 439 = unimplemented add_key */
+	    linux_sys_nosys, 0, 0 },			/* 439 = unimplemented add_key */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 440 = unimplemented request_key */
+	    linux_sys_nosys, 0, 0 },			/* 440 = unimplemented request_key */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 441 = unimplemented keyctl */
+	    linux_sys_nosys, 0, 0 },			/* 441 = unimplemented keyctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 442 = unimplemented ioprio_set */
+	    linux_sys_nosys, 0, 0 },			/* 442 = unimplemented ioprio_set */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 443 = unimplemented ioprio_get */
+	    linux_sys_nosys, 0, 0 },			/* 443 = unimplemented ioprio_get */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 444 = unimplemented inotify_init */
+	    linux_sys_nosys, 0, 0 },			/* 444 = unimplemented inotify_init */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 445 = unimplemented inotify_add_watch */
+	    linux_sys_nosys, 0, 0 },			/* 445 = unimplemented inotify_add_watch */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 446 = unimplemented inotify_rm_watch */
+	    linux_sys_nosys, 0, 0 },			/* 446 = unimplemented inotify_rm_watch */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 447 = unimplemented fdatasync */
+	    linux_sys_nosys, 0, 0 },			/* 447 = unimplemented fdatasync */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 448 = unimplemented kexec_load */
+	    linux_sys_nosys, 0, 0 },			/* 448 = unimplemented kexec_load */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 449 = unimplemented migrate_pages */
+	    linux_sys_nosys, 0, 0 },			/* 449 = unimplemented migrate_pages */
 	{ ns(struct linux_sys_openat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_openat },	/* 450 = openat */
+	    (sy_call_t *)linux_sys_openat, 0, 0 },	/* 450 = openat */
 	{ ns(struct sys_mkdirat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdirat },		/* 451 = mkdirat */
+	    (sy_call_t *)sys_mkdirat, 0, 0 },		/* 451 = mkdirat */
 	{ ns(struct linux_sys_mknodat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mknodat },	/* 452 = mknodat */
+	    (sy_call_t *)linux_sys_mknodat, 0, 0 },	/* 452 = mknodat */
 	{ ns(struct linux_sys_fchownat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fchownat },	/* 453 = fchownat */
+	    (sy_call_t *)linux_sys_fchownat, 0, 0 },	/* 453 = fchownat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 454 = unimplemented futimesat */
+	    linux_sys_nosys, 0, 0 },			/* 454 = unimplemented futimesat */
 	{ ns(struct linux_sys_fstatat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatat64 },	/* 455 = fstatat64 */
+	    (sy_call_t *)linux_sys_fstatat64, 0, 0 },	/* 455 = fstatat64 */
 	{ ns(struct linux_sys_unlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_unlinkat },	/* 456 = unlinkat */
+	    (sy_call_t *)linux_sys_unlinkat, 0, 0 },	/* 456 = unlinkat */
 	{ ns(struct sys_renameat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_renameat },	/* 457 = renameat */
+	    (sy_call_t *)sys_renameat, 0, 0 },	/* 457 = renameat */
 	{ ns(struct linux_sys_linkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_linkat },	/* 458 = linkat */
+	    (sy_call_t *)linux_sys_linkat, 0, 0 },	/* 458 = linkat */
 	{ ns(struct sys_symlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlinkat },	/* 459 = symlinkat */
+	    (sy_call_t *)sys_symlinkat, 0, 0 },	/* 459 = symlinkat */
 	{ ns(struct sys_readlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlinkat },	/* 460 = readlinkat */
+	    (sy_call_t *)sys_readlinkat, 0, 0 },	/* 460 = readlinkat */
 	{ ns(struct linux_sys_fchmodat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fchmodat },	/* 461 = fchmodat */
+	    (sy_call_t *)linux_sys_fchmodat, 0, 0 },	/* 461 = fchmodat */
 	{ ns(struct linux_sys_faccessat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_faccessat },	/* 462 = faccessat */
+	    (sy_call_t *)linux_sys_faccessat, 0, 0 },	/* 462 = faccessat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 463 = unimplemented pselect6 */
+	    linux_sys_nosys, 0, 0 },			/* 463 = unimplemented pselect6 */
 	{ ns(struct linux_sys_ppoll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ppoll },	/* 464 = ppoll */
+	    (sy_call_t *)linux_sys_ppoll, 0, 0 },	/* 464 = ppoll */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 465 = unimplemented unshare */
+	    linux_sys_nosys, 0, 0 },			/* 465 = unimplemented unshare */
 	{ ns(struct linux_sys_set_robust_list_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_robust_list },/* 466 = set_robust_list */
+	    (sy_call_t *)linux_sys_set_robust_list, 0, 0 },/* 466 = set_robust_list */
 	{ ns(struct linux_sys_get_robust_list_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_get_robust_list },/* 467 = get_robust_list */
+	    (sy_call_t *)linux_sys_get_robust_list, 0, 0 },/* 467 = get_robust_list */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 468 = unimplemented splice */
+	    linux_sys_nosys, 0, 0 },			/* 468 = unimplemented splice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 469 = unimplemented sync_file_range */
+	    linux_sys_nosys, 0, 0 },			/* 469 = unimplemented sync_file_range */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 470 = unimplemented tee */
+	    linux_sys_nosys, 0, 0 },			/* 470 = unimplemented tee */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 471 = unimplemented vmsplice */
+	    linux_sys_nosys, 0, 0 },			/* 471 = unimplemented vmsplice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 472 = unimplemented move_pages */
+	    linux_sys_nosys, 0, 0 },			/* 472 = unimplemented move_pages */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 473 = unimplemented getcpu */
+	    linux_sys_nosys, 0, 0 },			/* 473 = unimplemented getcpu */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 474 = unimplemented epoll_wait */
+	    linux_sys_nosys, 0, 0 },			/* 474 = unimplemented epoll_wait */
 	{ ns(struct linux_sys_utimensat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_utimensat },	/* 475 = utimensat */
+	    (sy_call_t *)linux_sys_utimensat, 0, 0 },	/* 475 = utimensat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 476 = unimplemented signalfd */
+	    linux_sys_nosys, 0, 0 },			/* 476 = unimplemented signalfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 477 = unimplemented timerfd */
+	    linux_sys_nosys, 0, 0 },			/* 477 = unimplemented timerfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 478 = unimplemented eventfd */
+	    linux_sys_nosys, 0, 0 },			/* 478 = unimplemented eventfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 479 = unimplemented recvmmsg */
+	    linux_sys_nosys, 0, 0 },			/* 479 = unimplemented recvmmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 480 = unimplemented fallocate */
+	    linux_sys_nosys, 0, 0 },			/* 480 = unimplemented fallocate */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 481 = unimplemented timerfd_create */
+	    linux_sys_nosys, 0, 0 },			/* 481 = unimplemented timerfd_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 482 = unimplemented timerfd_settime */
+	    linux_sys_nosys, 0, 0 },			/* 482 = unimplemented timerfd_settime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 483 = unimplemented timerfd_gettime */
+	    linux_sys_nosys, 0, 0 },			/* 483 = unimplemented timerfd_gettime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 484 = unimplemented signalfd4 */
+	    linux_sys_nosys, 0, 0 },			/* 484 = unimplemented signalfd4 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 485 = unimplemented eventfd2 */
+	    linux_sys_nosys, 0, 0 },			/* 485 = unimplemented eventfd2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 486 = unimplemented epoll_create1 */
+	    linux_sys_nosys, 0, 0 },			/* 486 = unimplemented epoll_create1 */
 	{ ns(struct linux_sys_dup3_args), 0,
-	    (sy_call_t *)linux_sys_dup3 },	/* 487 = dup3 */
+	    (sy_call_t *)linux_sys_dup3, 0, 0 },	/* 487 = dup3 */
 	{ ns(struct linux_sys_pipe2_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pipe2 },	/* 488 = pipe2 */
+	    (sy_call_t *)linux_sys_pipe2, 0, 0 },	/* 488 = pipe2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 489 = unimplemented inotify_init1 */
+	    linux_sys_nosys, 0, 0 },			/* 489 = unimplemented inotify_init1 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 490 = unimplemented preadv */
+	    linux_sys_nosys, 0, 0 },			/* 490 = unimplemented preadv */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 491 = unimplemented pwritev */
+	    linux_sys_nosys, 0, 0 },			/* 491 = unimplemented pwritev */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 492 = unimplemented rt_tgsigqueueinfo */
+	    linux_sys_nosys, 0, 0 },			/* 492 = unimplemented rt_tgsigqueueinfo */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 493 = unimplemented perf_counter_open */
+	    linux_sys_nosys, 0, 0 },			/* 493 = unimplemented perf_counter_open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 494 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 494 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 495 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 495 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 496 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 496 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 497 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 497 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 498 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 498 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 499 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 499 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 500 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 500 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 501 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 501 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 502 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 502 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 503 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 503 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 504 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 504 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 505 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 505 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 506 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 506 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 507 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 507 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 508 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 508 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 509 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 509 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 510 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 510 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 511 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 511 = filler */
 };
diff --git a/sys/compat/linux/arch/amd64/linux_syscall.h b/sys/compat/linux/arch/amd64/linux_syscall.h
index c8d4769..3f60aed 100644
--- a/sys/compat/linux/arch/amd64/linux_syscall.h
+++ b/sys/compat/linux/arch/amd64/linux_syscall.h
@@ -1,10 +1,10 @@
-/* $NetBSD: linux_syscall.h,v 1.54 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.52 2014/05/31 08:51:19 njoly Exp
+ * created from	NetBSD: syscalls.master,v 1.54 2015/03/07 03:25:19 christos Exp
  */
 
 #ifndef _LINUX_SYS_SYSCALL_H_
diff --git a/sys/compat/linux/arch/amd64/linux_syscallargs.h b/sys/compat/linux/arch/amd64/linux_syscallargs.h
index c5b0175..27f399a 100644
--- a/sys/compat/linux/arch/amd64/linux_syscallargs.h
+++ b/sys/compat/linux/arch/amd64/linux_syscallargs.h
@@ -1,10 +1,10 @@
-/* $NetBSD: linux_syscallargs.h,v 1.54 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.52 2014/05/31 08:51:19 njoly Exp
+ * created from	NetBSD: syscalls.master,v 1.54 2015/03/07 03:25:19 christos Exp
  */
 
 #ifndef _LINUX_SYS_SYSCALLARGS_H_
diff --git a/sys/compat/linux/arch/amd64/linux_syscalls.c b/sys/compat/linux/arch/amd64/linux_syscalls.c
index 6dd57b2..98400e1 100644
--- a/sys/compat/linux/arch/amd64/linux_syscalls.c
+++ b/sys/compat/linux/arch/amd64/linux_syscalls.c
@@ -1,14 +1,14 @@
-/* $NetBSD: linux_syscalls.c,v 1.54 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.52 2014/05/31 08:51:19 njoly Exp
+ * created from	NetBSD: syscalls.master,v 1.54 2015/03/07 03:25:19 christos Exp
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.54 2014/05/31 08:52:54 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #if defined(_KERNEL_OPT)
@@ -34,6 +34,8 @@ __KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.54 2014/05/31 08:52:54 njoly Ex
 #include <compat/linux/common/linux_siginfo.h>
 #include <compat/linux/common/linux_machdep.h>
 #include <compat/linux/linux_syscallargs.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const linux_syscallnames[] = {
@@ -577,3 +579,547 @@ const char *const linux_syscallnames[] = {
 	/* 510 */	"# filler",
 	/* 511 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altlinux_syscallnames[] = {
+	/*   0 */	NULL, /* read */
+	/*   1 */	NULL, /* write */
+	/*   2 */	NULL, /* open */
+	/*   3 */	NULL, /* close */
+	/*   4 */	NULL, /* stat64 */
+	/*   5 */	NULL, /* fstat64 */
+	/*   6 */	NULL, /* lstat64 */
+	/*   7 */	NULL, /* poll */
+	/*   8 */	NULL, /* lseek */
+	/*   9 */	NULL, /* mmap */
+	/*  10 */	NULL, /* mprotect */
+	/*  11 */	NULL, /* munmap */
+	/*  12 */	NULL, /* brk */
+	/*  13 */	NULL, /* rt_sigaction */
+	/*  14 */	NULL, /* rt_sigprocmask */
+	/*  15 */	NULL, /* rt_sigreturn */
+	/*  16 */	NULL, /* ioctl */
+	/*  17 */	NULL, /* pread */
+	/*  18 */	NULL, /* pwrite */
+	/*  19 */	NULL, /* readv */
+	/*  20 */	NULL, /* writev */
+	/*  21 */	NULL, /* access */
+	/*  22 */	NULL, /* pipe */
+	/*  23 */	NULL, /* select */
+	/*  24 */	NULL, /* sched_yield */
+	/*  25 */	NULL, /* mremap */
+	/*  26 */	"msync",
+	/*  27 */	NULL, /* mincore */
+	/*  28 */	NULL, /* madvise */
+#ifdef SYSVSHM
+	/*  29 */	NULL, /* shmget */
+	/*  30 */	NULL, /* shmat */
+	/*  31 */	NULL, /* shmctl */
+#else
+	/*  29 */	NULL, /* unimplemented shmget */
+	/*  30 */	NULL, /* unimplemented shmat */
+	/*  31 */	NULL, /* unimplemented shmctl */
+#endif
+	/*  32 */	NULL, /* dup */
+	/*  33 */	NULL, /* dup2 */
+	/*  34 */	NULL, /* pause */
+	/*  35 */	NULL, /* nanosleep */
+	/*  36 */	NULL, /* getitimer */
+	/*  37 */	NULL, /* alarm */
+	/*  38 */	NULL, /* setitimer */
+	/*  39 */	NULL, /* getpid */
+	/*  40 */	NULL, /* unimplemented sendfile */
+	/*  41 */	NULL, /* socket */
+	/*  42 */	NULL, /* connect */
+	/*  43 */	"accept",
+	/*  44 */	NULL, /* sendto */
+	/*  45 */	NULL, /* recvfrom */
+	/*  46 */	NULL, /* sendmsg */
+	/*  47 */	NULL, /* recvmsg */
+	/*  48 */	NULL, /* shutdown */
+	/*  49 */	NULL, /* bind */
+	/*  50 */	NULL, /* listen */
+	/*  51 */	NULL, /* getsockname */
+	/*  52 */	NULL, /* getpeername */
+	/*  53 */	NULL, /* socketpair */
+	/*  54 */	NULL, /* setsockopt */
+	/*  55 */	NULL, /* getsockopt */
+	/*  56 */	NULL, /* clone */
+	/*  57 */	NULL, /* fork */
+	/*  58 */	"vfork",
+	/*  59 */	NULL, /* execve */
+	/*  60 */	NULL, /* exit */
+	/*  61 */	NULL, /* wait4 */
+	/*  62 */	NULL, /* kill */
+	/*  63 */	NULL, /* uname */
+#ifdef SYSVSEM
+	/*  64 */	NULL, /* semget */
+	/*  65 */	NULL, /* semop */
+	/*  66 */	NULL, /* semctl */
+#else
+	/*  64 */	NULL, /* unimplemented semget */
+	/*  65 */	NULL, /* unimplemented semop */
+	/*  66 */	NULL, /* unimplemented semctl */
+#endif
+#ifdef SYSVSHM
+	/*  67 */	NULL, /* shmdt */
+#else
+	/*  67 */	NULL, /* unimplemented shmdt */
+#endif
+#ifdef SYSVMSG
+	/*  68 */	NULL, /* msgget */
+	/*  69 */	NULL, /* msgsnd */
+	/*  70 */	NULL, /* msgrcv */
+	/*  71 */	NULL, /* msgctl */
+#else
+	/*  68 */	NULL, /* unimplemented msgget */
+	/*  69 */	NULL, /* unimplemented msgsnd */
+	/*  70 */	NULL, /* unimplemented msgrcv */
+	/*  71 */	NULL, /* unimplemented msgctl */
+#endif
+	/*  72 */	NULL, /* fcntl */
+	/*  73 */	NULL, /* flock */
+	/*  74 */	NULL, /* fsync */
+	/*  75 */	NULL, /* fdatasync */
+	/*  76 */	NULL, /* truncate64 */
+	/*  77 */	NULL, /* ftruncate64 */
+	/*  78 */	NULL, /* getdents */
+	/*  79 */	NULL, /* __getcwd */
+	/*  80 */	NULL, /* chdir */
+	/*  81 */	NULL, /* fchdir */
+	/*  82 */	NULL, /* __posix_rename */
+	/*  83 */	NULL, /* mkdir */
+	/*  84 */	NULL, /* rmdir */
+	/*  85 */	NULL, /* creat */
+	/*  86 */	NULL, /* link */
+	/*  87 */	NULL, /* unlink */
+	/*  88 */	NULL, /* symlink */
+	/*  89 */	NULL, /* readlink */
+	/*  90 */	NULL, /* chmod */
+	/*  91 */	NULL, /* fchmod */
+	/*  92 */	NULL, /* __posix_chown */
+	/*  93 */	NULL, /* __posix_fchown */
+	/*  94 */	NULL, /* __posix_lchown */
+	/*  95 */	NULL, /* umask */
+	/*  96 */	NULL, /* gettimeofday */
+	/*  97 */	NULL, /* getrlimit */
+	/*  98 */	NULL, /* getrusage */
+	/*  99 */	NULL, /* sysinfo */
+	/* 100 */	NULL, /* times */
+	/* 101 */	NULL, /* ptrace */
+	/* 102 */	NULL, /* getuid */
+	/* 103 */	NULL, /* unimplemented syslog */
+	/* 104 */	NULL, /* getgid */
+	/* 105 */	NULL, /* setuid */
+	/* 106 */	NULL, /* setgid */
+	/* 107 */	NULL, /* geteuid */
+	/* 108 */	NULL, /* getegid */
+	/* 109 */	NULL, /* setpgid */
+	/* 110 */	NULL, /* getppid */
+	/* 111 */	NULL, /* getpgrp */
+	/* 112 */	NULL, /* setsid */
+	/* 113 */	NULL, /* setreuid */
+	/* 114 */	NULL, /* setregid */
+	/* 115 */	NULL, /* getgroups */
+	/* 116 */	NULL, /* setgroups */
+	/* 117 */	NULL, /* setresuid */
+	/* 118 */	NULL, /* getresuid */
+	/* 119 */	NULL, /* setresgid */
+	/* 120 */	NULL, /* getresgid */
+	/* 121 */	NULL, /* getpgid */
+	/* 122 */	NULL, /* setfsuid */
+	/* 123 */	NULL, /* setfsgid */
+	/* 124 */	NULL, /* getsid */
+	/* 125 */	NULL, /* unimplemented capget */
+	/* 126 */	NULL, /* unimplemented capset */
+	/* 127 */	NULL, /* rt_sigpending */
+	/* 128 */	NULL, /* rt_sigtimedwait */
+	/* 129 */	NULL, /* rt_queueinfo */
+	/* 130 */	NULL, /* rt_sigsuspend */
+	/* 131 */	NULL, /* sigaltstack */
+	/* 132 */	NULL, /* utime */
+	/* 133 */	NULL, /* mknod */
+#ifdef EXEC_AOUT
+	/* 134 */	NULL, /* uselib */
+#else
+	/* 134 */	NULL, /* unimplemented sys_uselib */
+#endif
+	/* 135 */	NULL, /* personality */
+	/* 136 */	NULL, /* unimplemented ustat */
+	/* 137 */	NULL, /* statfs */
+	/* 138 */	NULL, /* fstatfs */
+	/* 139 */	NULL, /* unimplemented sysfs */
+	/* 140 */	NULL, /* getpriority */
+	/* 141 */	NULL, /* setpriority */
+	/* 142 */	NULL, /* sched_setparam */
+	/* 143 */	NULL, /* sched_getparam */
+	/* 144 */	NULL, /* sched_setscheduler */
+	/* 145 */	NULL, /* sched_getscheduler */
+	/* 146 */	NULL, /* sched_get_priority_max */
+	/* 147 */	NULL, /* sched_get_priority_min */
+	/* 148 */	NULL, /* unimplemented sys_sched_rr_get_interval */
+	/* 149 */	NULL, /* mlock */
+	/* 150 */	NULL, /* munlock */
+	/* 151 */	NULL, /* mlockall */
+	/* 152 */	NULL, /* munlockall */
+	/* 153 */	NULL, /* unimplemented vhangup */
+	/* 154 */	NULL, /* modify_ldt */
+	/* 155 */	NULL, /* unimplemented pivot_root */
+	/* 156 */	NULL, /* __sysctl */
+	/* 157 */	NULL, /* unimplemented prctl */
+	/* 158 */	NULL, /* arch_prctl */
+	/* 159 */	NULL, /* unimplemented adjtimex */
+	/* 160 */	NULL, /* setrlimit */
+	/* 161 */	NULL, /* chroot */
+	/* 162 */	NULL, /* sync */
+	/* 163 */	NULL, /* acct */
+	/* 164 */	NULL, /* settimeofday */
+	/* 165 */	NULL, /* unimplemented mount */
+	/* 166 */	NULL, /* unimplemented umount2 */
+	/* 167 */	NULL, /* swapon */
+	/* 168 */	NULL, /* swapoff */
+	/* 169 */	NULL, /* reboot */
+	/* 170 */	NULL, /* sethostname */
+	/* 171 */	NULL, /* setdomainname */
+	/* 172 */	NULL, /* iopl */
+	/* 173 */	NULL, /* ioperm */
+	/* 174 */	NULL, /* unimplemented create_module */
+	/* 175 */	NULL, /* unimplemented init_module */
+	/* 176 */	NULL, /* unimplemented delete_module */
+	/* 177 */	NULL, /* unimplemented get_kernel_syms */
+	/* 178 */	NULL, /* unimplemented query_module */
+	/* 179 */	NULL, /* unimplemented quotactl */
+	/* 180 */	NULL, /* unimplemented nfsservctl */
+	/* 181 */	NULL, /* unimplemented getpmsg */
+	/* 182 */	NULL, /* unimplemented putpmsg */
+	/* 183 */	NULL, /* unimplemented afs_syscall */
+	/* 184 */	NULL, /* unimplemented tuxcall */
+	/* 185 */	NULL, /* unimplemented security */
+	/* 186 */	NULL, /* gettid */
+	/* 187 */	NULL, /* unimplemented readahead */
+	/* 188 */	NULL, /* setxattr */
+	/* 189 */	NULL, /* lsetxattr */
+	/* 190 */	NULL, /* fsetxattr */
+	/* 191 */	NULL, /* getxattr */
+	/* 192 */	NULL, /* lgetxattr */
+	/* 193 */	NULL, /* fgetxattr */
+	/* 194 */	NULL, /* listxattr */
+	/* 195 */	NULL, /* llistxattr */
+	/* 196 */	NULL, /* flistxattr */
+	/* 197 */	NULL, /* removexattr */
+	/* 198 */	NULL, /* lremovexattr */
+	/* 199 */	NULL, /* fremovexattr */
+	/* 200 */	NULL, /* tkill */
+	/* 201 */	NULL, /* time */
+	/* 202 */	NULL, /* futex */
+	/* 203 */	NULL, /* sched_setaffinity */
+	/* 204 */	NULL, /* sched_getaffinity */
+	/* 205 */	NULL, /* unimplemented set_thread_area */
+	/* 206 */	NULL, /* unimplemented io_setup */
+	/* 207 */	NULL, /* unimplemented io_destroy */
+	/* 208 */	NULL, /* unimplemented io_getevents */
+	/* 209 */	NULL, /* unimplemented io_submit */
+	/* 210 */	NULL, /* unimplemented io_cancel */
+	/* 211 */	NULL, /* unimplemented get_thread_area */
+	/* 212 */	NULL, /* unimplemented lookup_dcookie */
+	/* 213 */	NULL, /* unimplemented epoll_create */
+	/* 214 */	NULL, /* unimplemented epoll_ctl_old */
+	/* 215 */	NULL, /* unimplemented epoll_wait_old */
+	/* 216 */	NULL, /* unimplemented remap_file_pages */
+	/* 217 */	NULL, /* getdents64 */
+	/* 218 */	NULL, /* set_tid_address */
+	/* 219 */	NULL, /* unimplemented restart_syscall */
+	/* 220 */	NULL, /* unimplemented semtimedop */
+	/* 221 */	NULL, /* fadvise64 */
+	/* 222 */	NULL, /* unimplemented timer_create */
+	/* 223 */	NULL, /* unimplemented timer_settime */
+	/* 224 */	NULL, /* unimplemented timer_gettime */
+	/* 225 */	NULL, /* unimplemented timer_getoverrun */
+	/* 226 */	NULL, /* unimplemented timer_delete */
+	/* 227 */	NULL, /* clock_settime */
+	/* 228 */	NULL, /* clock_gettime */
+	/* 229 */	NULL, /* clock_getres */
+	/* 230 */	NULL, /* clock_nanosleep */
+	/* 231 */	NULL, /* exit_group */
+	/* 232 */	NULL, /* unimplemented epoll_wait */
+	/* 233 */	NULL, /* unimplemented epoll_ctl */
+	/* 234 */	NULL, /* tgkill */
+	/* 235 */	NULL, /* utimes */
+	/* 236 */	NULL, /* unimplemented vserver */
+	/* 237 */	NULL, /* unimplemented mbind */
+	/* 238 */	NULL, /* unimplemented set_mempolicy */
+	/* 239 */	NULL, /* unimplemented get_mempolicy */
+	/* 240 */	NULL, /* unimplemented mq_open */
+	/* 241 */	NULL, /* unimplemented mq_unlink */
+	/* 242 */	NULL, /* unimplemented mq_timedsend */
+	/* 243 */	NULL, /* unimplemented mq_timedreceive */
+	/* 244 */	NULL, /* unimplemented mq_notify */
+	/* 245 */	NULL, /* unimplemented mq_getsetattr */
+	/* 246 */	NULL, /* unimplemented kexec_load */
+	/* 247 */	NULL, /* unimplemented waitid */
+	/* 248 */	NULL, /* unimplemented add_key */
+	/* 249 */	NULL, /* unimplemented request_key */
+	/* 250 */	NULL, /* unimplemented keyctl */
+	/* 251 */	NULL, /* unimplemented ioprio_set */
+	/* 252 */	NULL, /* unimplemented ioprio_get */
+	/* 253 */	NULL, /* unimplemented inotify_init */
+	/* 254 */	NULL, /* unimplemented inotify_add_watch */
+	/* 255 */	NULL, /* unimplemented inotify_rm_watch */
+	/* 256 */	NULL, /* unimplemented migrate_pages */
+	/* 257 */	NULL, /* openat */
+	/* 258 */	NULL, /* mkdirat */
+	/* 259 */	NULL, /* mknodat */
+	/* 260 */	NULL, /* fchownat */
+	/* 261 */	NULL, /* unimplemented futimesat */
+	/* 262 */	NULL, /* fstatat64 */
+	/* 263 */	NULL, /* unlinkat */
+	/* 264 */	NULL, /* renameat */
+	/* 265 */	NULL, /* linkat */
+	/* 266 */	NULL, /* symlinkat */
+	/* 267 */	NULL, /* readlinkat */
+	/* 268 */	NULL, /* fchmodat */
+	/* 269 */	NULL, /* faccessat */
+	/* 270 */	NULL, /* unimplemented pselect6 */
+	/* 271 */	NULL, /* ppoll */
+	/* 272 */	NULL, /* unimplemented unshare */
+	/* 273 */	NULL, /* set_robust_list */
+	/* 274 */	NULL, /* get_robust_list */
+	/* 275 */	NULL, /* unimplemented splice */
+	/* 276 */	NULL, /* unimplemented tee */
+	/* 277 */	NULL, /* unimplemented sync_file_range */
+	/* 278 */	NULL, /* unimplemented vmsplice */
+	/* 279 */	NULL, /* unimplemented move_pages */
+	/* 280 */	NULL, /* utimensat */
+	/* 281 */	NULL, /* unimplemented epoll_pwait */
+	/* 282 */	NULL, /* unimplemented signalfd */
+	/* 283 */	NULL, /* unimplemented timerfd_create */
+	/* 284 */	NULL, /* unimplemented eventfd */
+	/* 285 */	NULL, /* unimplemented fallocate */
+	/* 286 */	NULL, /* unimplemented timerfd_settime */
+	/* 287 */	NULL, /* unimplemented timerfd_gettime */
+	/* 288 */	NULL, /* unimplemented accept4 */
+	/* 289 */	NULL, /* unimplemented signalfd4 */
+	/* 290 */	NULL, /* unimplemented eventfd2 */
+	/* 291 */	NULL, /* unimplemented epoll_create1 */
+	/* 292 */	NULL, /* dup3 */
+	/* 293 */	NULL, /* pipe2 */
+	/* 294 */	NULL, /* unimplemented inotify_init1 */
+	/* 295 */	NULL, /* unimplemented preadv */
+	/* 296 */	NULL, /* unimplemented pwritev */
+	/* 297 */	NULL, /* unimplemented rt_tgsigqueueinfo */
+	/* 298 */	NULL, /* unimplemented perf_counter_open */
+	/* 299 */	NULL, /* unimplemented recvmmsg */
+	/* 300 */	NULL, /* unimplemented fanotify_init */
+	/* 301 */	NULL, /* unimplemented fanotify_mark */
+	/* 302 */	NULL, /* unimplemented prlimit64 */
+	/* 303 */	NULL, /* unimplemented name_to_handle_at */
+	/* 304 */	NULL, /* unimplemented open_by_handle_at */
+	/* 305 */	NULL, /* unimplemented clock_adjtime */
+	/* 306 */	NULL, /* unimplemented syncfs */
+	/* 307 */	NULL, /* unimplemented sendmmsg */
+	/* 308 */	NULL, /* unimplemented setns */
+	/* 309 */	NULL, /* unimplemented getcpu */
+	/* 310 */	NULL, /* unimplemented process_vm_readv */
+	/* 311 */	NULL, /* unimplemented process_vm_writev */
+	/* 312 */	NULL, /* unimplemented kcmp */
+	/* 313 */	NULL, /* unimplemented finit_module */
+	/* 314 */	NULL, /* nosys */
+	/* 315 */	NULL, /* filler */
+	/* 316 */	NULL, /* filler */
+	/* 317 */	NULL, /* filler */
+	/* 318 */	NULL, /* filler */
+	/* 319 */	NULL, /* filler */
+	/* 320 */	NULL, /* filler */
+	/* 321 */	NULL, /* filler */
+	/* 322 */	NULL, /* filler */
+	/* 323 */	NULL, /* filler */
+	/* 324 */	NULL, /* filler */
+	/* 325 */	NULL, /* filler */
+	/* 326 */	NULL, /* filler */
+	/* 327 */	NULL, /* filler */
+	/* 328 */	NULL, /* filler */
+	/* 329 */	NULL, /* filler */
+	/* 330 */	NULL, /* filler */
+	/* 331 */	NULL, /* filler */
+	/* 332 */	NULL, /* filler */
+	/* 333 */	NULL, /* filler */
+	/* 334 */	NULL, /* filler */
+	/* 335 */	NULL, /* filler */
+	/* 336 */	NULL, /* filler */
+	/* 337 */	NULL, /* filler */
+	/* 338 */	NULL, /* filler */
+	/* 339 */	NULL, /* filler */
+	/* 340 */	NULL, /* filler */
+	/* 341 */	NULL, /* filler */
+	/* 342 */	NULL, /* filler */
+	/* 343 */	NULL, /* filler */
+	/* 344 */	NULL, /* filler */
+	/* 345 */	NULL, /* filler */
+	/* 346 */	NULL, /* filler */
+	/* 347 */	NULL, /* filler */
+	/* 348 */	NULL, /* filler */
+	/* 349 */	NULL, /* filler */
+	/* 350 */	NULL, /* filler */
+	/* 351 */	NULL, /* filler */
+	/* 352 */	NULL, /* filler */
+	/* 353 */	NULL, /* filler */
+	/* 354 */	NULL, /* filler */
+	/* 355 */	NULL, /* filler */
+	/* 356 */	NULL, /* filler */
+	/* 357 */	NULL, /* filler */
+	/* 358 */	NULL, /* filler */
+	/* 359 */	NULL, /* filler */
+	/* 360 */	NULL, /* filler */
+	/* 361 */	NULL, /* filler */
+	/* 362 */	NULL, /* filler */
+	/* 363 */	NULL, /* filler */
+	/* 364 */	NULL, /* filler */
+	/* 365 */	NULL, /* filler */
+	/* 366 */	NULL, /* filler */
+	/* 367 */	NULL, /* filler */
+	/* 368 */	NULL, /* filler */
+	/* 369 */	NULL, /* filler */
+	/* 370 */	NULL, /* filler */
+	/* 371 */	NULL, /* filler */
+	/* 372 */	NULL, /* filler */
+	/* 373 */	NULL, /* filler */
+	/* 374 */	NULL, /* filler */
+	/* 375 */	NULL, /* filler */
+	/* 376 */	NULL, /* filler */
+	/* 377 */	NULL, /* filler */
+	/* 378 */	NULL, /* filler */
+	/* 379 */	NULL, /* filler */
+	/* 380 */	NULL, /* filler */
+	/* 381 */	NULL, /* filler */
+	/* 382 */	NULL, /* filler */
+	/* 383 */	NULL, /* filler */
+	/* 384 */	NULL, /* filler */
+	/* 385 */	NULL, /* filler */
+	/* 386 */	NULL, /* filler */
+	/* 387 */	NULL, /* filler */
+	/* 388 */	NULL, /* filler */
+	/* 389 */	NULL, /* filler */
+	/* 390 */	NULL, /* filler */
+	/* 391 */	NULL, /* filler */
+	/* 392 */	NULL, /* filler */
+	/* 393 */	NULL, /* filler */
+	/* 394 */	NULL, /* filler */
+	/* 395 */	NULL, /* filler */
+	/* 396 */	NULL, /* filler */
+	/* 397 */	NULL, /* filler */
+	/* 398 */	NULL, /* filler */
+	/* 399 */	NULL, /* filler */
+	/* 400 */	NULL, /* filler */
+	/* 401 */	NULL, /* filler */
+	/* 402 */	NULL, /* filler */
+	/* 403 */	NULL, /* filler */
+	/* 404 */	NULL, /* filler */
+	/* 405 */	NULL, /* filler */
+	/* 406 */	NULL, /* filler */
+	/* 407 */	NULL, /* filler */
+	/* 408 */	NULL, /* filler */
+	/* 409 */	NULL, /* filler */
+	/* 410 */	NULL, /* filler */
+	/* 411 */	NULL, /* filler */
+	/* 412 */	NULL, /* filler */
+	/* 413 */	NULL, /* filler */
+	/* 414 */	NULL, /* filler */
+	/* 415 */	NULL, /* filler */
+	/* 416 */	NULL, /* filler */
+	/* 417 */	NULL, /* filler */
+	/* 418 */	NULL, /* filler */
+	/* 419 */	NULL, /* filler */
+	/* 420 */	NULL, /* filler */
+	/* 421 */	NULL, /* filler */
+	/* 422 */	NULL, /* filler */
+	/* 423 */	NULL, /* filler */
+	/* 424 */	NULL, /* filler */
+	/* 425 */	NULL, /* filler */
+	/* 426 */	NULL, /* filler */
+	/* 427 */	NULL, /* filler */
+	/* 428 */	NULL, /* filler */
+	/* 429 */	NULL, /* filler */
+	/* 430 */	NULL, /* filler */
+	/* 431 */	NULL, /* filler */
+	/* 432 */	NULL, /* filler */
+	/* 433 */	NULL, /* filler */
+	/* 434 */	NULL, /* filler */
+	/* 435 */	NULL, /* filler */
+	/* 436 */	NULL, /* filler */
+	/* 437 */	NULL, /* filler */
+	/* 438 */	NULL, /* filler */
+	/* 439 */	NULL, /* filler */
+	/* 440 */	NULL, /* filler */
+	/* 441 */	NULL, /* filler */
+	/* 442 */	NULL, /* filler */
+	/* 443 */	NULL, /* filler */
+	/* 444 */	NULL, /* filler */
+	/* 445 */	NULL, /* filler */
+	/* 446 */	NULL, /* filler */
+	/* 447 */	NULL, /* filler */
+	/* 448 */	NULL, /* filler */
+	/* 449 */	NULL, /* filler */
+	/* 450 */	NULL, /* filler */
+	/* 451 */	NULL, /* filler */
+	/* 452 */	NULL, /* filler */
+	/* 453 */	NULL, /* filler */
+	/* 454 */	NULL, /* filler */
+	/* 455 */	NULL, /* filler */
+	/* 456 */	NULL, /* filler */
+	/* 457 */	NULL, /* filler */
+	/* 458 */	NULL, /* filler */
+	/* 459 */	NULL, /* filler */
+	/* 460 */	NULL, /* filler */
+	/* 461 */	NULL, /* filler */
+	/* 462 */	NULL, /* filler */
+	/* 463 */	NULL, /* filler */
+	/* 464 */	NULL, /* filler */
+	/* 465 */	NULL, /* filler */
+	/* 466 */	NULL, /* filler */
+	/* 467 */	NULL, /* filler */
+	/* 468 */	NULL, /* filler */
+	/* 469 */	NULL, /* filler */
+	/* 470 */	NULL, /* filler */
+	/* 471 */	NULL, /* filler */
+	/* 472 */	NULL, /* filler */
+	/* 473 */	NULL, /* filler */
+	/* 474 */	NULL, /* filler */
+	/* 475 */	NULL, /* filler */
+	/* 476 */	NULL, /* filler */
+	/* 477 */	NULL, /* filler */
+	/* 478 */	NULL, /* filler */
+	/* 479 */	NULL, /* filler */
+	/* 480 */	NULL, /* filler */
+	/* 481 */	NULL, /* filler */
+	/* 482 */	NULL, /* filler */
+	/* 483 */	NULL, /* filler */
+	/* 484 */	NULL, /* filler */
+	/* 485 */	NULL, /* filler */
+	/* 486 */	NULL, /* filler */
+	/* 487 */	NULL, /* filler */
+	/* 488 */	NULL, /* filler */
+	/* 489 */	NULL, /* filler */
+	/* 490 */	NULL, /* filler */
+	/* 491 */	NULL, /* filler */
+	/* 492 */	NULL, /* filler */
+	/* 493 */	NULL, /* filler */
+	/* 494 */	NULL, /* filler */
+	/* 495 */	NULL, /* filler */
+	/* 496 */	NULL, /* filler */
+	/* 497 */	NULL, /* filler */
+	/* 498 */	NULL, /* filler */
+	/* 499 */	NULL, /* filler */
+	/* 500 */	NULL, /* filler */
+	/* 501 */	NULL, /* filler */
+	/* 502 */	NULL, /* filler */
+	/* 503 */	NULL, /* filler */
+	/* 504 */	NULL, /* filler */
+	/* 505 */	NULL, /* filler */
+	/* 506 */	NULL, /* filler */
+	/* 507 */	NULL, /* filler */
+	/* 508 */	NULL, /* filler */
+	/* 509 */	NULL, /* filler */
+	/* 510 */	NULL, /* filler */
+	/* 511 */	NULL, /* filler */
+};
diff --git a/sys/compat/linux/arch/amd64/linux_sysent.c b/sys/compat/linux/arch/amd64/linux_sysent.c
index 6e854a8..e018ab6 100644
--- a/sys/compat/linux/arch/amd64/linux_sysent.c
+++ b/sys/compat/linux/arch/amd64/linux_sysent.c
@@ -1,14 +1,14 @@
-/* $NetBSD: linux_sysent.c,v 1.54 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.52 2014/05/31 08:51:19 njoly Exp
+ * created from	NetBSD: syscalls.master,v 1.54 2015/03/07 03:25:19 christos Exp
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.54 2014/05/31 08:52:54 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include "opt_sysv.h"
@@ -40,1066 +40,1066 @@ __KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.54 2014/05/31 08:52:54 njoly Exp
 
 struct sysent linux_sysent[] = {
 	{ ns(struct sys_read_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_read },		/* 0 = read */
+	    (sy_call_t *)sys_read, 0, 0 },		/* 0 = read */
 	{ ns(struct sys_write_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_write },		/* 1 = write */
+	    (sy_call_t *)sys_write, 0, 0 },		/* 1 = write */
 	{ ns(struct linux_sys_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_open },	/* 2 = open */
+	    (sy_call_t *)linux_sys_open, 0, 0 },	/* 2 = open */
 	{ ns(struct sys_close_args), 0,
-	    (sy_call_t *)sys_close },		/* 3 = close */
+	    (sy_call_t *)sys_close, 0, 0 },		/* 3 = close */
 	{ ns(struct linux_sys_stat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stat64 },	/* 4 = stat64 */
+	    (sy_call_t *)linux_sys_stat64, 0, 0 },	/* 4 = stat64 */
 	{ ns(struct linux_sys_fstat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstat64 },	/* 5 = fstat64 */
+	    (sy_call_t *)linux_sys_fstat64, 0, 0 },	/* 5 = fstat64 */
 	{ ns(struct linux_sys_lstat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lstat64 },	/* 6 = lstat64 */
+	    (sy_call_t *)linux_sys_lstat64, 0, 0 },	/* 6 = lstat64 */
 	{ ns(struct sys_poll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_poll },		/* 7 = poll */
+	    (sy_call_t *)sys_poll, 0, 0 },		/* 7 = poll */
 	{ ns(struct compat_43_sys_lseek_args), 0,
-	    (sy_call_t *)compat_43_sys_lseek },	/* 8 = lseek */
+	    (sy_call_t *)compat_43_sys_lseek, 0, 0 },	/* 8 = lseek */
 	{ ns(struct linux_sys_mmap_args), 0,
-	    (sy_call_t *)linux_sys_mmap },	/* 9 = mmap */
+	    (sy_call_t *)linux_sys_mmap, 0, 0 },	/* 9 = mmap */
 	{ ns(struct linux_sys_mprotect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mprotect },	/* 10 = mprotect */
+	    (sy_call_t *)linux_sys_mprotect, 0, 0 },	/* 10 = mprotect */
 	{ ns(struct sys_munmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munmap },		/* 11 = munmap */
+	    (sy_call_t *)sys_munmap, 0, 0 },		/* 11 = munmap */
 	{ ns(struct linux_sys_brk_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_brk },	/* 12 = brk */
+	    (sy_call_t *)linux_sys_brk, 0, 0 },	/* 12 = brk */
 	{ ns(struct linux_sys_rt_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigaction },/* 13 = rt_sigaction */
+	    (sy_call_t *)linux_sys_rt_sigaction, 0, 0 },/* 13 = rt_sigaction */
 	{ ns(struct linux_sys_rt_sigprocmask_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigprocmask },/* 14 = rt_sigprocmask */
+	    (sy_call_t *)linux_sys_rt_sigprocmask, 0, 0 },/* 14 = rt_sigprocmask */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_rt_sigreturn },/* 15 = rt_sigreturn */
+	    (sy_call_t *)linux_sys_rt_sigreturn, 0, 0 },/* 15 = rt_sigreturn */
 	{ ns(struct linux_sys_ioctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ioctl },	/* 16 = ioctl */
+	    (sy_call_t *)linux_sys_ioctl, 0, 0 },	/* 16 = ioctl */
 	{ ns(struct linux_sys_pread_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG3_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pread },	/* 17 = pread */
+	    (sy_call_t *)linux_sys_pread, 0, 0 },	/* 17 = pread */
 	{ ns(struct linux_sys_pwrite_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG3_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pwrite },	/* 18 = pwrite */
+	    (sy_call_t *)linux_sys_pwrite, 0, 0 },	/* 18 = pwrite */
 	{ ns(struct sys_readv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readv },		/* 19 = readv */
+	    (sy_call_t *)sys_readv, 0, 0 },		/* 19 = readv */
 	{ ns(struct sys_writev_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_writev },		/* 20 = writev */
+	    (sy_call_t *)sys_writev, 0, 0 },		/* 20 = writev */
 	{ ns(struct sys_access_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_access },		/* 21 = access */
+	    (sy_call_t *)sys_access, 0, 0 },		/* 21 = access */
 	{ ns(struct linux_sys_pipe_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pipe },	/* 22 = pipe */
+	    (sy_call_t *)linux_sys_pipe, 0, 0 },	/* 22 = pipe */
 	{ ns(struct linux_sys_select_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_select },	/* 23 = select */
+	    (sy_call_t *)linux_sys_select, 0, 0 },	/* 23 = select */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_sched_yield },/* 24 = sched_yield */
+	    (sy_call_t *)linux_sys_sched_yield, 0, 0 },/* 24 = sched_yield */
 	{ ns(struct linux_sys_mremap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mremap },	/* 25 = mremap */
+	    (sy_call_t *)linux_sys_mremap, 0, 0 },	/* 25 = mremap */
 	{ ns(struct sys___msync13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___msync13 },	/* 26 = __msync13 */
+	    (sy_call_t *)sys___msync13, 0, 0 },	/* 26 = __msync13 */
 	{ ns(struct sys_mincore_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mincore },		/* 27 = mincore */
+	    (sy_call_t *)sys_mincore, 0, 0 },		/* 27 = mincore */
 	{ ns(struct sys_madvise_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_madvise },		/* 28 = madvise */
+	    (sy_call_t *)sys_madvise, 0, 0 },		/* 28 = madvise */
 #ifdef SYSVSHM
 	{ ns(struct linux_sys_shmget_args), 0,
-	    (sy_call_t *)linux_sys_shmget },	/* 29 = shmget */
+	    (sy_call_t *)linux_sys_shmget, 0, 0 },	/* 29 = shmget */
 	{ ns(struct sys_shmat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_shmat },		/* 30 = shmat */
+	    (sy_call_t *)sys_shmat, 0, 0 },		/* 30 = shmat */
 	{ ns(struct linux_sys_shmctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_shmctl },	/* 31 = shmctl */
+	    (sy_call_t *)linux_sys_shmctl, 0, 0 },	/* 31 = shmctl */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 29 = unimplemented shmget */
+	    linux_sys_nosys, 0, 0 },			/* 29 = unimplemented shmget */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 30 = unimplemented shmat */
+	    linux_sys_nosys, 0, 0 },			/* 30 = unimplemented shmat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 31 = unimplemented shmctl */
+	    linux_sys_nosys, 0, 0 },			/* 31 = unimplemented shmctl */
 #endif
 	{ ns(struct sys_dup_args), 0,
-	    (sy_call_t *)sys_dup },		/* 32 = dup */
+	    (sy_call_t *)sys_dup, 0, 0 },		/* 32 = dup */
 	{ ns(struct sys_dup2_args), 0,
-	    (sy_call_t *)sys_dup2 },		/* 33 = dup2 */
+	    (sy_call_t *)sys_dup2, 0, 0 },		/* 33 = dup2 */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_pause },	/* 34 = pause */
+	    (sy_call_t *)linux_sys_pause, 0, 0 },	/* 34 = pause */
 	{ ns(struct linux_sys_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_nanosleep },	/* 35 = nanosleep */
+	    (sy_call_t *)linux_sys_nanosleep, 0, 0 },	/* 35 = nanosleep */
 	{ ns(struct compat_50_sys_getitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getitimer },/* 36 = getitimer */
+	    (sy_call_t *)compat_50_sys_getitimer, 0, 0 },/* 36 = getitimer */
 	{ ns(struct linux_sys_alarm_args), 0,
-	    (sy_call_t *)linux_sys_alarm },	/* 37 = alarm */
+	    (sy_call_t *)linux_sys_alarm, 0, 0 },	/* 37 = alarm */
 	{ ns(struct compat_50_sys_setitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_setitimer },/* 38 = setitimer */
+	    (sy_call_t *)compat_50_sys_setitimer, 0, 0 },/* 38 = setitimer */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid },		/* 39 = getpid */
+	    (sy_call_t *)sys_getpid, 0, 0 },		/* 39 = getpid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 40 = unimplemented sendfile */
+	    linux_sys_nosys, 0, 0 },			/* 40 = unimplemented sendfile */
 	{ ns(struct linux_sys_socket_args), 0,
-	    (sy_call_t *)linux_sys_socket },	/* 41 = socket */
+	    (sy_call_t *)linux_sys_socket, 0, 0 },	/* 41 = socket */
 	{ ns(struct linux_sys_connect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_connect },	/* 42 = connect */
+	    (sy_call_t *)linux_sys_connect, 0, 0 },	/* 42 = connect */
 	{ ns(struct linux_sys_accept_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_accept },	/* 43 = oaccept */
+	    (sy_call_t *)linux_sys_accept, 0, 0 },	/* 43 = oaccept */
 	{ ns(struct linux_sys_sendto_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sendto },	/* 44 = sendto */
+	    (sy_call_t *)linux_sys_sendto, 0, 0 },	/* 44 = sendto */
 	{ ns(struct linux_sys_recvfrom_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_recvfrom },	/* 45 = recvfrom */
+	    (sy_call_t *)linux_sys_recvfrom, 0, 0 },	/* 45 = recvfrom */
 	{ ns(struct linux_sys_sendmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sendmsg },	/* 46 = sendmsg */
+	    (sy_call_t *)linux_sys_sendmsg, 0, 0 },	/* 46 = sendmsg */
 	{ ns(struct linux_sys_recvmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_recvmsg },	/* 47 = recvmsg */
+	    (sy_call_t *)linux_sys_recvmsg, 0, 0 },	/* 47 = recvmsg */
 	{ ns(struct sys_shutdown_args), 0,
-	    (sy_call_t *)sys_shutdown },	/* 48 = shutdown */
+	    (sy_call_t *)sys_shutdown, 0, 0 },	/* 48 = shutdown */
 	{ ns(struct linux_sys_bind_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_bind },	/* 49 = bind */
+	    (sy_call_t *)linux_sys_bind, 0, 0 },	/* 49 = bind */
 	{ ns(struct sys_listen_args), 0,
-	    (sy_call_t *)sys_listen },		/* 50 = listen */
+	    (sy_call_t *)sys_listen, 0, 0 },		/* 50 = listen */
 	{ ns(struct linux_sys_getsockname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getsockname },/* 51 = getsockname */
+	    (sy_call_t *)linux_sys_getsockname, 0, 0 },/* 51 = getsockname */
 	{ ns(struct linux_sys_getpeername_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getpeername },/* 52 = getpeername */
+	    (sy_call_t *)linux_sys_getpeername, 0, 0 },/* 52 = getpeername */
 	{ ns(struct linux_sys_socketpair_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_socketpair },/* 53 = socketpair */
+	    (sy_call_t *)linux_sys_socketpair, 0, 0 },/* 53 = socketpair */
 	{ ns(struct linux_sys_setsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setsockopt },/* 54 = setsockopt */
+	    (sy_call_t *)linux_sys_setsockopt, 0, 0 },/* 54 = setsockopt */
 	{ ns(struct linux_sys_getsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getsockopt },/* 55 = getsockopt */
+	    (sy_call_t *)linux_sys_getsockopt, 0, 0 },/* 55 = getsockopt */
 	{ ns(struct linux_sys_clone_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clone },	/* 56 = clone */
+	    (sy_call_t *)linux_sys_clone, 0, 0 },	/* 56 = clone */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 57 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 57 = fork */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys___vfork14 },	/* 58 = __vfork14 */
+	    (sy_call_t *)sys___vfork14, 0, 0 },	/* 58 = __vfork14 */
 	{ ns(struct sys_execve_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_execve },		/* 59 = execve */
+	    (sy_call_t *)sys_execve, 0, 0 },		/* 59 = execve */
 	{ ns(struct linux_sys_exit_args), 0,
-	    (sy_call_t *)linux_sys_exit },	/* 60 = exit */
+	    (sy_call_t *)linux_sys_exit, 0, 0 },	/* 60 = exit */
 	{ ns(struct linux_sys_wait4_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_wait4 },	/* 61 = wait4 */
+	    (sy_call_t *)linux_sys_wait4, 0, 0 },	/* 61 = wait4 */
 	{ ns(struct linux_sys_kill_args), 0,
-	    (sy_call_t *)linux_sys_kill },	/* 62 = kill */
+	    (sy_call_t *)linux_sys_kill, 0, 0 },	/* 62 = kill */
 	{ ns(struct linux_sys_uname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_uname },	/* 63 = uname */
+	    (sy_call_t *)linux_sys_uname, 0, 0 },	/* 63 = uname */
 #ifdef SYSVSEM
 	{ ns(struct sys_semget_args), 0,
-	    (sy_call_t *)sys_semget },		/* 64 = semget */
+	    (sy_call_t *)sys_semget, 0, 0 },		/* 64 = semget */
 	{ ns(struct sys_semop_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_semop },		/* 65 = semop */
+	    (sy_call_t *)sys_semop, 0, 0 },		/* 65 = semop */
 	{ ns(struct linux_sys_semctl_args), 0,
-	    (sy_call_t *)linux_sys_semctl },	/* 66 = semctl */
+	    (sy_call_t *)linux_sys_semctl, 0, 0 },	/* 66 = semctl */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 64 = unimplemented semget */
+	    linux_sys_nosys, 0, 0 },			/* 64 = unimplemented semget */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 65 = unimplemented semop */
+	    linux_sys_nosys, 0, 0 },			/* 65 = unimplemented semop */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 66 = unimplemented semctl */
+	    linux_sys_nosys, 0, 0 },			/* 66 = unimplemented semctl */
 #endif
 #ifdef SYSVSHM
 	{ ns(struct sys_shmdt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_shmdt },		/* 67 = shmdt */
+	    (sy_call_t *)sys_shmdt, 0, 0 },		/* 67 = shmdt */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 67 = unimplemented shmdt */
+	    linux_sys_nosys, 0, 0 },			/* 67 = unimplemented shmdt */
 #endif
 #ifdef SYSVMSG
 	{ ns(struct sys_msgget_args), 0,
-	    (sy_call_t *)sys_msgget },		/* 68 = msgget */
+	    (sy_call_t *)sys_msgget, 0, 0 },		/* 68 = msgget */
 	{ ns(struct sys_msgsnd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_msgsnd },		/* 69 = msgsnd */
+	    (sy_call_t *)sys_msgsnd, 0, 0 },		/* 69 = msgsnd */
 	{ ns(struct sys_msgrcv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_msgrcv },		/* 70 = msgrcv */
+	    (sy_call_t *)sys_msgrcv, 0, 0 },		/* 70 = msgrcv */
 	{ ns(struct linux_sys_msgctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_msgctl },	/* 71 = msgctl */
+	    (sy_call_t *)linux_sys_msgctl, 0, 0 },	/* 71 = msgctl */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 68 = unimplemented msgget */
+	    linux_sys_nosys, 0, 0 },			/* 68 = unimplemented msgget */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 69 = unimplemented msgsnd */
+	    linux_sys_nosys, 0, 0 },			/* 69 = unimplemented msgsnd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 70 = unimplemented msgrcv */
+	    linux_sys_nosys, 0, 0 },			/* 70 = unimplemented msgrcv */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 71 = unimplemented msgctl */
+	    linux_sys_nosys, 0, 0 },			/* 71 = unimplemented msgctl */
 #endif
 	{ ns(struct linux_sys_fcntl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fcntl },	/* 72 = fcntl */
+	    (sy_call_t *)linux_sys_fcntl, 0, 0 },	/* 72 = fcntl */
 	{ ns(struct sys_flock_args), 0,
-	    (sy_call_t *)sys_flock },		/* 73 = flock */
+	    (sy_call_t *)sys_flock, 0, 0 },		/* 73 = flock */
 	{ ns(struct sys_fsync_args), 0,
-	    (sy_call_t *)sys_fsync },		/* 74 = fsync */
+	    (sy_call_t *)sys_fsync, 0, 0 },		/* 74 = fsync */
 	{ ns(struct linux_sys_fdatasync_args), 0,
-	    (sy_call_t *)linux_sys_fdatasync },	/* 75 = fdatasync */
+	    (sy_call_t *)linux_sys_fdatasync, 0, 0 },	/* 75 = fdatasync */
 	{ ns(struct linux_sys_truncate64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_truncate64 },/* 76 = truncate64 */
+	    (sy_call_t *)linux_sys_truncate64, 0, 0 },/* 76 = truncate64 */
 	{ ns(struct linux_sys_ftruncate64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64,
-	    (sy_call_t *)linux_sys_ftruncate64 },/* 77 = ftruncate64 */
+	    (sy_call_t *)linux_sys_ftruncate64, 0, 0 },/* 77 = ftruncate64 */
 	{ ns(struct linux_sys_getdents_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getdents },	/* 78 = getdents */
+	    (sy_call_t *)linux_sys_getdents, 0, 0 },	/* 78 = getdents */
 	{ ns(struct sys___getcwd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getcwd },	/* 79 = __getcwd */
+	    (sy_call_t *)sys___getcwd, 0, 0 },	/* 79 = __getcwd */
 	{ ns(struct sys_chdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chdir },		/* 80 = chdir */
+	    (sy_call_t *)sys_chdir, 0, 0 },		/* 80 = chdir */
 	{ ns(struct sys_fchdir_args), 0,
-	    (sy_call_t *)sys_fchdir },		/* 81 = fchdir */
+	    (sy_call_t *)sys_fchdir, 0, 0 },		/* 81 = fchdir */
 	{ ns(struct sys___posix_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_rename },	/* 82 = __posix_rename */
+	    (sy_call_t *)sys___posix_rename, 0, 0 },	/* 82 = __posix_rename */
 	{ ns(struct sys_mkdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdir },		/* 83 = mkdir */
+	    (sy_call_t *)sys_mkdir, 0, 0 },		/* 83 = mkdir */
 	{ ns(struct sys_rmdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rmdir },		/* 84 = rmdir */
+	    (sy_call_t *)sys_rmdir, 0, 0 },		/* 84 = rmdir */
 	{ ns(struct linux_sys_creat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_creat },	/* 85 = creat */
+	    (sy_call_t *)linux_sys_creat, 0, 0 },	/* 85 = creat */
 	{ ns(struct sys_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_link },		/* 86 = link */
+	    (sy_call_t *)sys_link, 0, 0 },		/* 86 = link */
 	{ ns(struct linux_sys_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_unlink },	/* 87 = unlink */
+	    (sy_call_t *)linux_sys_unlink, 0, 0 },	/* 87 = unlink */
 	{ ns(struct sys_symlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlink },		/* 88 = symlink */
+	    (sy_call_t *)sys_symlink, 0, 0 },		/* 88 = symlink */
 	{ ns(struct sys_readlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlink },	/* 89 = readlink */
+	    (sy_call_t *)sys_readlink, 0, 0 },	/* 89 = readlink */
 	{ ns(struct sys_chmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chmod },		/* 90 = chmod */
+	    (sy_call_t *)sys_chmod, 0, 0 },		/* 90 = chmod */
 	{ ns(struct sys_fchmod_args), 0,
-	    (sy_call_t *)sys_fchmod },		/* 91 = fchmod */
+	    (sy_call_t *)sys_fchmod, 0, 0 },		/* 91 = fchmod */
 	{ ns(struct sys___posix_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_chown },	/* 92 = __posix_chown */
+	    (sy_call_t *)sys___posix_chown, 0, 0 },	/* 92 = __posix_chown */
 	{ ns(struct sys___posix_fchown_args), 0,
-	    (sy_call_t *)sys___posix_fchown },	/* 93 = __posix_fchown */
+	    (sy_call_t *)sys___posix_fchown, 0, 0 },	/* 93 = __posix_fchown */
 	{ ns(struct sys___posix_lchown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_lchown },	/* 94 = __posix_lchown */
+	    (sy_call_t *)sys___posix_lchown, 0, 0 },	/* 94 = __posix_lchown */
 	{ ns(struct sys_umask_args), 0,
-	    (sy_call_t *)sys_umask },		/* 95 = umask */
+	    (sy_call_t *)sys_umask, 0, 0 },		/* 95 = umask */
 	{ ns(struct linux_sys_gettimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_gettimeofday },/* 96 = gettimeofday */
+	    (sy_call_t *)linux_sys_gettimeofday, 0, 0 },/* 96 = gettimeofday */
 	{ ns(struct linux_sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getrlimit },	/* 97 = getrlimit */
+	    (sy_call_t *)linux_sys_getrlimit, 0, 0 },	/* 97 = getrlimit */
 	{ ns(struct compat_50_sys_getrusage_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getrusage },/* 98 = getrusage */
+	    (sy_call_t *)compat_50_sys_getrusage, 0, 0 },/* 98 = getrusage */
 	{ ns(struct linux_sys_sysinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sysinfo },	/* 99 = sysinfo */
+	    (sy_call_t *)linux_sys_sysinfo, 0, 0 },	/* 99 = sysinfo */
 	{ ns(struct linux_sys_times_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_times },	/* 100 = times */
+	    (sy_call_t *)linux_sys_times, 0, 0 },	/* 100 = times */
 	{ ns(struct linux_sys_ptrace_args), 0,
-	    (sy_call_t *)linux_sys_ptrace },	/* 101 = ptrace */
+	    (sy_call_t *)linux_sys_ptrace, 0, 0 },	/* 101 = ptrace */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid },		/* 102 = getuid */
+	    (sy_call_t *)sys_getuid, 0, 0 },		/* 102 = getuid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 103 = unimplemented syslog */
+	    linux_sys_nosys, 0, 0 },			/* 103 = unimplemented syslog */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid },		/* 104 = getgid */
+	    (sy_call_t *)sys_getgid, 0, 0 },		/* 104 = getgid */
 	{ ns(struct sys_setuid_args), 0,
-	    (sy_call_t *)sys_setuid },		/* 105 = setuid */
+	    (sy_call_t *)sys_setuid, 0, 0 },		/* 105 = setuid */
 	{ ns(struct sys_setgid_args), 0,
-	    (sy_call_t *)sys_setgid },		/* 106 = setgid */
+	    (sy_call_t *)sys_setgid, 0, 0 },		/* 106 = setgid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_geteuid },		/* 107 = geteuid */
+	    (sy_call_t *)sys_geteuid, 0, 0 },		/* 107 = geteuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getegid },		/* 108 = getegid */
+	    (sy_call_t *)sys_getegid, 0, 0 },		/* 108 = getegid */
 	{ ns(struct sys_setpgid_args), 0,
-	    (sy_call_t *)sys_setpgid },		/* 109 = setpgid */
+	    (sy_call_t *)sys_setpgid, 0, 0 },		/* 109 = setpgid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getppid },		/* 110 = getppid */
+	    (sy_call_t *)sys_getppid, 0, 0 },		/* 110 = getppid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpgrp },		/* 111 = getpgrp */
+	    (sy_call_t *)sys_getpgrp, 0, 0 },		/* 111 = getpgrp */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_setsid },		/* 112 = setsid */
+	    (sy_call_t *)sys_setsid, 0, 0 },		/* 112 = setsid */
 	{ ns(struct sys_setreuid_args), 0,
-	    (sy_call_t *)sys_setreuid },	/* 113 = setreuid */
+	    (sy_call_t *)sys_setreuid, 0, 0 },	/* 113 = setreuid */
 	{ ns(struct sys_setregid_args), 0,
-	    (sy_call_t *)sys_setregid },	/* 114 = setregid */
+	    (sy_call_t *)sys_setregid, 0, 0 },	/* 114 = setregid */
 	{ ns(struct sys_getgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getgroups },	/* 115 = getgroups */
+	    (sy_call_t *)sys_getgroups, 0, 0 },	/* 115 = getgroups */
 	{ ns(struct sys_setgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setgroups },	/* 116 = setgroups */
+	    (sy_call_t *)sys_setgroups, 0, 0 },	/* 116 = setgroups */
 	{ ns(struct linux_sys_setresuid_args), 0,
-	    (sy_call_t *)linux_sys_setresuid },	/* 117 = setresuid */
+	    (sy_call_t *)linux_sys_setresuid, 0, 0 },	/* 117 = setresuid */
 	{ ns(struct linux_sys_getresuid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresuid },	/* 118 = getresuid */
+	    (sy_call_t *)linux_sys_getresuid, 0, 0 },	/* 118 = getresuid */
 	{ ns(struct linux_sys_setresgid_args), 0,
-	    (sy_call_t *)linux_sys_setresgid },	/* 119 = setresgid */
+	    (sy_call_t *)linux_sys_setresgid, 0, 0 },	/* 119 = setresgid */
 	{ ns(struct linux_sys_getresgid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresgid },	/* 120 = getresgid */
+	    (sy_call_t *)linux_sys_getresgid, 0, 0 },	/* 120 = getresgid */
 	{ ns(struct sys_getpgid_args), 0,
-	    (sy_call_t *)sys_getpgid },		/* 121 = getpgid */
+	    (sy_call_t *)sys_getpgid, 0, 0 },		/* 121 = getpgid */
 	{ ns(struct linux_sys_setfsuid_args), 0,
-	    (sy_call_t *)linux_sys_setfsuid },	/* 122 = setfsuid */
+	    (sy_call_t *)linux_sys_setfsuid, 0, 0 },	/* 122 = setfsuid */
 	{ ns(struct linux_sys_setfsgid_args), 0,
-	    (sy_call_t *)linux_sys_setfsgid },	/* 123 = setfsgid */
+	    (sy_call_t *)linux_sys_setfsgid, 0, 0 },	/* 123 = setfsgid */
 	{ ns(struct sys_getsid_args), 0,
-	    (sy_call_t *)sys_getsid },		/* 124 = getsid */
+	    (sy_call_t *)sys_getsid, 0, 0 },		/* 124 = getsid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 125 = unimplemented capget */
+	    linux_sys_nosys, 0, 0 },			/* 125 = unimplemented capget */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 126 = unimplemented capset */
+	    linux_sys_nosys, 0, 0 },			/* 126 = unimplemented capset */
 	{ ns(struct linux_sys_rt_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigpending },/* 127 = rt_sigpending */
+	    (sy_call_t *)linux_sys_rt_sigpending, 0, 0 },/* 127 = rt_sigpending */
 	{ ns(struct linux_sys_rt_sigtimedwait_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigtimedwait },/* 128 = rt_sigtimedwait */
+	    (sy_call_t *)linux_sys_rt_sigtimedwait, 0, 0 },/* 128 = rt_sigtimedwait */
 	{ ns(struct linux_sys_rt_queueinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_queueinfo },/* 129 = rt_queueinfo */
+	    (sy_call_t *)linux_sys_rt_queueinfo, 0, 0 },/* 129 = rt_queueinfo */
 	{ ns(struct linux_sys_rt_sigsuspend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigsuspend },/* 130 = rt_sigsuspend */
+	    (sy_call_t *)linux_sys_rt_sigsuspend, 0, 0 },/* 130 = rt_sigsuspend */
 	{ ns(struct linux_sys_sigaltstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigaltstack },/* 131 = sigaltstack */
+	    (sy_call_t *)linux_sys_sigaltstack, 0, 0 },/* 131 = sigaltstack */
 	{ ns(struct linux_sys_utime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_utime },	/* 132 = utime */
+	    (sy_call_t *)linux_sys_utime, 0, 0 },	/* 132 = utime */
 	{ ns(struct linux_sys_mknod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mknod },	/* 133 = mknod */
+	    (sy_call_t *)linux_sys_mknod, 0, 0 },	/* 133 = mknod */
 #ifdef EXEC_AOUT
 	{ ns(struct linux_sys_uselib_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_uselib },	/* 134 = uselib */
+	    (sy_call_t *)linux_sys_uselib, 0, 0 },	/* 134 = uselib */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 134 = unimplemented sys_uselib */
+	    linux_sys_nosys, 0, 0 },			/* 134 = unimplemented sys_uselib */
 #endif
 	{ ns(struct linux_sys_personality_args), 0,
-	    (sy_call_t *)linux_sys_personality },/* 135 = personality */
+	    (sy_call_t *)linux_sys_personality, 0, 0 },/* 135 = personality */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 136 = unimplemented ustat */
+	    linux_sys_nosys, 0, 0 },			/* 136 = unimplemented ustat */
 	{ ns(struct linux_sys_statfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_statfs },	/* 137 = statfs */
+	    (sy_call_t *)linux_sys_statfs, 0, 0 },	/* 137 = statfs */
 	{ ns(struct linux_sys_fstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatfs },	/* 138 = fstatfs */
+	    (sy_call_t *)linux_sys_fstatfs, 0, 0 },	/* 138 = fstatfs */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 139 = unimplemented sysfs */
+	    linux_sys_nosys, 0, 0 },			/* 139 = unimplemented sysfs */
 	{ ns(struct linux_sys_getpriority_args), 0,
-	    (sy_call_t *)linux_sys_getpriority },/* 140 = getpriority */
+	    (sy_call_t *)linux_sys_getpriority, 0, 0 },/* 140 = getpriority */
 	{ ns(struct sys_setpriority_args), 0,
-	    (sy_call_t *)sys_setpriority },	/* 141 = setpriority */
+	    (sy_call_t *)sys_setpriority, 0, 0 },	/* 141 = setpriority */
 	{ ns(struct linux_sys_sched_setparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setparam },/* 142 = sched_setparam */
+	    (sy_call_t *)linux_sys_sched_setparam, 0, 0 },/* 142 = sched_setparam */
 	{ ns(struct linux_sys_sched_getparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_getparam },/* 143 = sched_getparam */
+	    (sy_call_t *)linux_sys_sched_getparam, 0, 0 },/* 143 = sched_getparam */
 	{ ns(struct linux_sys_sched_setscheduler_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setscheduler },/* 144 = sched_setscheduler */
+	    (sy_call_t *)linux_sys_sched_setscheduler, 0, 0 },/* 144 = sched_setscheduler */
 	{ ns(struct linux_sys_sched_getscheduler_args), 0,
-	    (sy_call_t *)linux_sys_sched_getscheduler },/* 145 = sched_getscheduler */
+	    (sy_call_t *)linux_sys_sched_getscheduler, 0, 0 },/* 145 = sched_getscheduler */
 	{ ns(struct linux_sys_sched_get_priority_max_args), 0,
-	    (sy_call_t *)linux_sys_sched_get_priority_max },/* 146 = sched_get_priority_max */
+	    (sy_call_t *)linux_sys_sched_get_priority_max, 0, 0 },/* 146 = sched_get_priority_max */
 	{ ns(struct linux_sys_sched_get_priority_min_args), 0,
-	    (sy_call_t *)linux_sys_sched_get_priority_min },/* 147 = sched_get_priority_min */
+	    (sy_call_t *)linux_sys_sched_get_priority_min, 0, 0 },/* 147 = sched_get_priority_min */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 148 = unimplemented sys_sched_rr_get_interval */
+	    linux_sys_nosys, 0, 0 },			/* 148 = unimplemented sys_sched_rr_get_interval */
 	{ ns(struct sys_mlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mlock },		/* 149 = mlock */
+	    (sy_call_t *)sys_mlock, 0, 0 },		/* 149 = mlock */
 	{ ns(struct sys_munlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munlock },		/* 150 = munlock */
+	    (sy_call_t *)sys_munlock, 0, 0 },		/* 150 = munlock */
 	{ ns(struct sys_mlockall_args), 0,
-	    (sy_call_t *)sys_mlockall },	/* 151 = mlockall */
+	    (sy_call_t *)sys_mlockall, 0, 0 },	/* 151 = mlockall */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_munlockall },	/* 152 = munlockall */
+	    (sy_call_t *)sys_munlockall, 0, 0 },	/* 152 = munlockall */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 153 = unimplemented vhangup */
+	    linux_sys_nosys, 0, 0 },			/* 153 = unimplemented vhangup */
 	{ ns(struct linux_sys_modify_ldt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_modify_ldt },/* 154 = modify_ldt */
+	    (sy_call_t *)linux_sys_modify_ldt, 0, 0 },/* 154 = modify_ldt */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 155 = unimplemented pivot_root */
+	    linux_sys_nosys, 0, 0 },			/* 155 = unimplemented pivot_root */
 	{ ns(struct linux_sys___sysctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys___sysctl },	/* 156 = __sysctl */
+	    (sy_call_t *)linux_sys___sysctl, 0, 0 },	/* 156 = __sysctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 157 = unimplemented prctl */
+	    linux_sys_nosys, 0, 0 },			/* 157 = unimplemented prctl */
 	{ ns(struct linux_sys_arch_prctl_args), 0,
-	    (sy_call_t *)linux_sys_arch_prctl },/* 158 = arch_prctl */
+	    (sy_call_t *)linux_sys_arch_prctl, 0, 0 },/* 158 = arch_prctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 159 = unimplemented adjtimex */
+	    linux_sys_nosys, 0, 0 },			/* 159 = unimplemented adjtimex */
 	{ ns(struct linux_sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setrlimit },	/* 160 = setrlimit */
+	    (sy_call_t *)linux_sys_setrlimit, 0, 0 },	/* 160 = setrlimit */
 	{ ns(struct sys_chroot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chroot },		/* 161 = chroot */
+	    (sy_call_t *)sys_chroot, 0, 0 },		/* 161 = chroot */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 162 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 162 = sync */
 	{ ns(struct sys_acct_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_acct },		/* 163 = acct */
+	    (sy_call_t *)sys_acct, 0, 0 },		/* 163 = acct */
 	{ ns(struct linux_sys_settimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_settimeofday },/* 164 = settimeofday */
+	    (sy_call_t *)linux_sys_settimeofday, 0, 0 },/* 164 = settimeofday */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 165 = unimplemented mount */
+	    linux_sys_nosys, 0, 0 },			/* 165 = unimplemented mount */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 166 = unimplemented umount2 */
+	    linux_sys_nosys, 0, 0 },			/* 166 = unimplemented umount2 */
 	{ ns(struct linux_sys_swapon_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_swapon },	/* 167 = swapon */
+	    (sy_call_t *)linux_sys_swapon, 0, 0 },	/* 167 = swapon */
 	{ ns(struct linux_sys_swapoff_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_swapoff },	/* 168 = swapoff */
+	    (sy_call_t *)linux_sys_swapoff, 0, 0 },	/* 168 = swapoff */
 	{ ns(struct linux_sys_reboot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_reboot },	/* 169 = reboot */
+	    (sy_call_t *)linux_sys_reboot, 0, 0 },	/* 169 = reboot */
 	{ ns(struct compat_43_sys_sethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sethostname },/* 170 = sethostname */
+	    (sy_call_t *)compat_43_sys_sethostname, 0, 0 },/* 170 = sethostname */
 	{ ns(struct linux_sys_setdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setdomainname },/* 171 = setdomainname */
+	    (sy_call_t *)linux_sys_setdomainname, 0, 0 },/* 171 = setdomainname */
 	{ ns(struct linux_sys_iopl_args), 0,
-	    (sy_call_t *)linux_sys_iopl },	/* 172 = iopl */
+	    (sy_call_t *)linux_sys_iopl, 0, 0 },	/* 172 = iopl */
 	{ ns(struct linux_sys_ioperm_args), 0,
-	    (sy_call_t *)linux_sys_ioperm },	/* 173 = ioperm */
+	    (sy_call_t *)linux_sys_ioperm, 0, 0 },	/* 173 = ioperm */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 174 = unimplemented create_module */
+	    linux_sys_nosys, 0, 0 },			/* 174 = unimplemented create_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 175 = unimplemented init_module */
+	    linux_sys_nosys, 0, 0 },			/* 175 = unimplemented init_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 176 = unimplemented delete_module */
+	    linux_sys_nosys, 0, 0 },			/* 176 = unimplemented delete_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 177 = unimplemented get_kernel_syms */
+	    linux_sys_nosys, 0, 0 },			/* 177 = unimplemented get_kernel_syms */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 178 = unimplemented query_module */
+	    linux_sys_nosys, 0, 0 },			/* 178 = unimplemented query_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 179 = unimplemented quotactl */
+	    linux_sys_nosys, 0, 0 },			/* 179 = unimplemented quotactl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 180 = unimplemented nfsservctl */
+	    linux_sys_nosys, 0, 0 },			/* 180 = unimplemented nfsservctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 181 = unimplemented getpmsg */
+	    linux_sys_nosys, 0, 0 },			/* 181 = unimplemented getpmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 182 = unimplemented putpmsg */
+	    linux_sys_nosys, 0, 0 },			/* 182 = unimplemented putpmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 183 = unimplemented afs_syscall */
+	    linux_sys_nosys, 0, 0 },			/* 183 = unimplemented afs_syscall */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 184 = unimplemented tuxcall */
+	    linux_sys_nosys, 0, 0 },			/* 184 = unimplemented tuxcall */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 185 = unimplemented security */
+	    linux_sys_nosys, 0, 0 },			/* 185 = unimplemented security */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_gettid },	/* 186 = gettid */
+	    (sy_call_t *)linux_sys_gettid, 0, 0 },	/* 186 = gettid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 187 = unimplemented readahead */
+	    linux_sys_nosys, 0, 0 },			/* 187 = unimplemented readahead */
 	{ ns(struct linux_sys_setxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setxattr },	/* 188 = setxattr */
+	    (sy_call_t *)linux_sys_setxattr, 0, 0 },	/* 188 = setxattr */
 	{ ns(struct linux_sys_lsetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lsetxattr },	/* 189 = lsetxattr */
+	    (sy_call_t *)linux_sys_lsetxattr, 0, 0 },	/* 189 = lsetxattr */
 	{ ns(struct linux_sys_fsetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fsetxattr },	/* 190 = fsetxattr */
+	    (sy_call_t *)linux_sys_fsetxattr, 0, 0 },	/* 190 = fsetxattr */
 	{ ns(struct linux_sys_getxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getxattr },	/* 191 = getxattr */
+	    (sy_call_t *)linux_sys_getxattr, 0, 0 },	/* 191 = getxattr */
 	{ ns(struct linux_sys_lgetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lgetxattr },	/* 192 = lgetxattr */
+	    (sy_call_t *)linux_sys_lgetxattr, 0, 0 },	/* 192 = lgetxattr */
 	{ ns(struct linux_sys_fgetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fgetxattr },	/* 193 = fgetxattr */
+	    (sy_call_t *)linux_sys_fgetxattr, 0, 0 },	/* 193 = fgetxattr */
 	{ ns(struct linux_sys_listxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_listxattr },	/* 194 = listxattr */
+	    (sy_call_t *)linux_sys_listxattr, 0, 0 },	/* 194 = listxattr */
 	{ ns(struct linux_sys_llistxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_llistxattr },/* 195 = llistxattr */
+	    (sy_call_t *)linux_sys_llistxattr, 0, 0 },/* 195 = llistxattr */
 	{ ns(struct linux_sys_flistxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_flistxattr },/* 196 = flistxattr */
+	    (sy_call_t *)linux_sys_flistxattr, 0, 0 },/* 196 = flistxattr */
 	{ ns(struct linux_sys_removexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_removexattr },/* 197 = removexattr */
+	    (sy_call_t *)linux_sys_removexattr, 0, 0 },/* 197 = removexattr */
 	{ ns(struct linux_sys_lremovexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lremovexattr },/* 198 = lremovexattr */
+	    (sy_call_t *)linux_sys_lremovexattr, 0, 0 },/* 198 = lremovexattr */
 	{ ns(struct linux_sys_fremovexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fremovexattr },/* 199 = fremovexattr */
+	    (sy_call_t *)linux_sys_fremovexattr, 0, 0 },/* 199 = fremovexattr */
 	{ ns(struct linux_sys_tkill_args), 0,
-	    (sy_call_t *)linux_sys_tkill },	/* 200 = tkill */
+	    (sy_call_t *)linux_sys_tkill, 0, 0 },	/* 200 = tkill */
 	{ ns(struct linux_sys_time_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_time },	/* 201 = time */
+	    (sy_call_t *)linux_sys_time, 0, 0 },	/* 201 = time */
 	{ ns(struct linux_sys_futex_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_futex },	/* 202 = futex */
+	    (sy_call_t *)linux_sys_futex, 0, 0 },	/* 202 = futex */
 	{ ns(struct linux_sys_sched_setaffinity_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setaffinity },/* 203 = sched_setaffinity */
+	    (sy_call_t *)linux_sys_sched_setaffinity, 0, 0 },/* 203 = sched_setaffinity */
 	{ ns(struct linux_sys_sched_getaffinity_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_getaffinity },/* 204 = sched_getaffinity */
+	    (sy_call_t *)linux_sys_sched_getaffinity, 0, 0 },/* 204 = sched_getaffinity */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 205 = unimplemented set_thread_area */
+	    linux_sys_nosys, 0, 0 },			/* 205 = unimplemented set_thread_area */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 206 = unimplemented io_setup */
+	    linux_sys_nosys, 0, 0 },			/* 206 = unimplemented io_setup */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 207 = unimplemented io_destroy */
+	    linux_sys_nosys, 0, 0 },			/* 207 = unimplemented io_destroy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 208 = unimplemented io_getevents */
+	    linux_sys_nosys, 0, 0 },			/* 208 = unimplemented io_getevents */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 209 = unimplemented io_submit */
+	    linux_sys_nosys, 0, 0 },			/* 209 = unimplemented io_submit */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 210 = unimplemented io_cancel */
+	    linux_sys_nosys, 0, 0 },			/* 210 = unimplemented io_cancel */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 211 = unimplemented get_thread_area */
+	    linux_sys_nosys, 0, 0 },			/* 211 = unimplemented get_thread_area */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 212 = unimplemented lookup_dcookie */
+	    linux_sys_nosys, 0, 0 },			/* 212 = unimplemented lookup_dcookie */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 213 = unimplemented epoll_create */
+	    linux_sys_nosys, 0, 0 },			/* 213 = unimplemented epoll_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 214 = unimplemented epoll_ctl_old */
+	    linux_sys_nosys, 0, 0 },			/* 214 = unimplemented epoll_ctl_old */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 215 = unimplemented epoll_wait_old */
+	    linux_sys_nosys, 0, 0 },			/* 215 = unimplemented epoll_wait_old */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 216 = unimplemented remap_file_pages */
+	    linux_sys_nosys, 0, 0 },			/* 216 = unimplemented remap_file_pages */
 	{ ns(struct linux_sys_getdents64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getdents64 },/* 217 = getdents64 */
+	    (sy_call_t *)linux_sys_getdents64, 0, 0 },/* 217 = getdents64 */
 	{ ns(struct linux_sys_set_tid_address_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_tid_address },/* 218 = set_tid_address */
+	    (sy_call_t *)linux_sys_set_tid_address, 0, 0 },/* 218 = set_tid_address */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 219 = unimplemented restart_syscall */
+	    linux_sys_nosys, 0, 0 },			/* 219 = unimplemented restart_syscall */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 220 = unimplemented semtimedop */
+	    linux_sys_nosys, 0, 0 },			/* 220 = unimplemented semtimedop */
 	{ ns(struct linux_sys_fadvise64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64,
-	    (sy_call_t *)linux_sys_fadvise64 },	/* 221 = fadvise64 */
+	    (sy_call_t *)linux_sys_fadvise64, 0, 0 },	/* 221 = fadvise64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 222 = unimplemented timer_create */
+	    linux_sys_nosys, 0, 0 },			/* 222 = unimplemented timer_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 223 = unimplemented timer_settime */
+	    linux_sys_nosys, 0, 0 },			/* 223 = unimplemented timer_settime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 224 = unimplemented timer_gettime */
+	    linux_sys_nosys, 0, 0 },			/* 224 = unimplemented timer_gettime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 225 = unimplemented timer_getoverrun */
+	    linux_sys_nosys, 0, 0 },			/* 225 = unimplemented timer_getoverrun */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 226 = unimplemented timer_delete */
+	    linux_sys_nosys, 0, 0 },			/* 226 = unimplemented timer_delete */
 	{ ns(struct linux_sys_clock_settime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_settime },/* 227 = clock_settime */
+	    (sy_call_t *)linux_sys_clock_settime, 0, 0 },/* 227 = clock_settime */
 	{ ns(struct linux_sys_clock_gettime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_gettime },/* 228 = clock_gettime */
+	    (sy_call_t *)linux_sys_clock_gettime, 0, 0 },/* 228 = clock_gettime */
 	{ ns(struct linux_sys_clock_getres_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_getres },/* 229 = clock_getres */
+	    (sy_call_t *)linux_sys_clock_getres, 0, 0 },/* 229 = clock_getres */
 	{ ns(struct linux_sys_clock_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_nanosleep },/* 230 = clock_nanosleep */
+	    (sy_call_t *)linux_sys_clock_nanosleep, 0, 0 },/* 230 = clock_nanosleep */
 	{ ns(struct linux_sys_exit_group_args), 0,
-	    (sy_call_t *)linux_sys_exit_group },/* 231 = exit_group */
+	    (sy_call_t *)linux_sys_exit_group, 0, 0 },/* 231 = exit_group */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 232 = unimplemented epoll_wait */
+	    linux_sys_nosys, 0, 0 },			/* 232 = unimplemented epoll_wait */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 233 = unimplemented epoll_ctl */
+	    linux_sys_nosys, 0, 0 },			/* 233 = unimplemented epoll_ctl */
 	{ ns(struct linux_sys_tgkill_args), 0,
-	    (sy_call_t *)linux_sys_tgkill },	/* 234 = tgkill */
+	    (sy_call_t *)linux_sys_tgkill, 0, 0 },	/* 234 = tgkill */
 	{ ns(struct compat_50_sys_utimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_utimes },/* 235 = utimes */
+	    (sy_call_t *)compat_50_sys_utimes, 0, 0 },/* 235 = utimes */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 236 = unimplemented vserver */
+	    linux_sys_nosys, 0, 0 },			/* 236 = unimplemented vserver */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 237 = unimplemented mbind */
+	    linux_sys_nosys, 0, 0 },			/* 237 = unimplemented mbind */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 238 = unimplemented set_mempolicy */
+	    linux_sys_nosys, 0, 0 },			/* 238 = unimplemented set_mempolicy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 239 = unimplemented get_mempolicy */
+	    linux_sys_nosys, 0, 0 },			/* 239 = unimplemented get_mempolicy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 240 = unimplemented mq_open */
+	    linux_sys_nosys, 0, 0 },			/* 240 = unimplemented mq_open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 241 = unimplemented mq_unlink */
+	    linux_sys_nosys, 0, 0 },			/* 241 = unimplemented mq_unlink */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 242 = unimplemented mq_timedsend */
+	    linux_sys_nosys, 0, 0 },			/* 242 = unimplemented mq_timedsend */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 243 = unimplemented mq_timedreceive */
+	    linux_sys_nosys, 0, 0 },			/* 243 = unimplemented mq_timedreceive */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 244 = unimplemented mq_notify */
+	    linux_sys_nosys, 0, 0 },			/* 244 = unimplemented mq_notify */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 245 = unimplemented mq_getsetattr */
+	    linux_sys_nosys, 0, 0 },			/* 245 = unimplemented mq_getsetattr */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 246 = unimplemented kexec_load */
+	    linux_sys_nosys, 0, 0 },			/* 246 = unimplemented kexec_load */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 247 = unimplemented waitid */
+	    linux_sys_nosys, 0, 0 },			/* 247 = unimplemented waitid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 248 = unimplemented add_key */
+	    linux_sys_nosys, 0, 0 },			/* 248 = unimplemented add_key */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 249 = unimplemented request_key */
+	    linux_sys_nosys, 0, 0 },			/* 249 = unimplemented request_key */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 250 = unimplemented keyctl */
+	    linux_sys_nosys, 0, 0 },			/* 250 = unimplemented keyctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 251 = unimplemented ioprio_set */
+	    linux_sys_nosys, 0, 0 },			/* 251 = unimplemented ioprio_set */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 252 = unimplemented ioprio_get */
+	    linux_sys_nosys, 0, 0 },			/* 252 = unimplemented ioprio_get */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 253 = unimplemented inotify_init */
+	    linux_sys_nosys, 0, 0 },			/* 253 = unimplemented inotify_init */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 254 = unimplemented inotify_add_watch */
+	    linux_sys_nosys, 0, 0 },			/* 254 = unimplemented inotify_add_watch */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 255 = unimplemented inotify_rm_watch */
+	    linux_sys_nosys, 0, 0 },			/* 255 = unimplemented inotify_rm_watch */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 256 = unimplemented migrate_pages */
+	    linux_sys_nosys, 0, 0 },			/* 256 = unimplemented migrate_pages */
 	{ ns(struct linux_sys_openat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_openat },	/* 257 = openat */
+	    (sy_call_t *)linux_sys_openat, 0, 0 },	/* 257 = openat */
 	{ ns(struct sys_mkdirat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdirat },		/* 258 = mkdirat */
+	    (sy_call_t *)sys_mkdirat, 0, 0 },		/* 258 = mkdirat */
 	{ ns(struct linux_sys_mknodat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mknodat },	/* 259 = mknodat */
+	    (sy_call_t *)linux_sys_mknodat, 0, 0 },	/* 259 = mknodat */
 	{ ns(struct linux_sys_fchownat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fchownat },	/* 260 = fchownat */
+	    (sy_call_t *)linux_sys_fchownat, 0, 0 },	/* 260 = fchownat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 261 = unimplemented futimesat */
+	    linux_sys_nosys, 0, 0 },			/* 261 = unimplemented futimesat */
 	{ ns(struct linux_sys_fstatat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatat64 },	/* 262 = fstatat64 */
+	    (sy_call_t *)linux_sys_fstatat64, 0, 0 },	/* 262 = fstatat64 */
 	{ ns(struct linux_sys_unlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_unlinkat },	/* 263 = unlinkat */
+	    (sy_call_t *)linux_sys_unlinkat, 0, 0 },	/* 263 = unlinkat */
 	{ ns(struct sys_renameat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_renameat },	/* 264 = renameat */
+	    (sy_call_t *)sys_renameat, 0, 0 },	/* 264 = renameat */
 	{ ns(struct linux_sys_linkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_linkat },	/* 265 = linkat */
+	    (sy_call_t *)linux_sys_linkat, 0, 0 },	/* 265 = linkat */
 	{ ns(struct sys_symlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlinkat },	/* 266 = symlinkat */
+	    (sy_call_t *)sys_symlinkat, 0, 0 },	/* 266 = symlinkat */
 	{ ns(struct sys_readlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlinkat },	/* 267 = readlinkat */
+	    (sy_call_t *)sys_readlinkat, 0, 0 },	/* 267 = readlinkat */
 	{ ns(struct linux_sys_fchmodat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fchmodat },	/* 268 = fchmodat */
+	    (sy_call_t *)linux_sys_fchmodat, 0, 0 },	/* 268 = fchmodat */
 	{ ns(struct linux_sys_faccessat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_faccessat },	/* 269 = faccessat */
+	    (sy_call_t *)linux_sys_faccessat, 0, 0 },	/* 269 = faccessat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 270 = unimplemented pselect6 */
+	    linux_sys_nosys, 0, 0 },			/* 270 = unimplemented pselect6 */
 	{ ns(struct linux_sys_ppoll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ppoll },	/* 271 = ppoll */
+	    (sy_call_t *)linux_sys_ppoll, 0, 0 },	/* 271 = ppoll */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 272 = unimplemented unshare */
+	    linux_sys_nosys, 0, 0 },			/* 272 = unimplemented unshare */
 	{ ns(struct linux_sys_set_robust_list_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_robust_list },/* 273 = set_robust_list */
+	    (sy_call_t *)linux_sys_set_robust_list, 0, 0 },/* 273 = set_robust_list */
 	{ ns(struct linux_sys_get_robust_list_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_get_robust_list },/* 274 = get_robust_list */
+	    (sy_call_t *)linux_sys_get_robust_list, 0, 0 },/* 274 = get_robust_list */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 275 = unimplemented splice */
+	    linux_sys_nosys, 0, 0 },			/* 275 = unimplemented splice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 276 = unimplemented tee */
+	    linux_sys_nosys, 0, 0 },			/* 276 = unimplemented tee */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 277 = unimplemented sync_file_range */
+	    linux_sys_nosys, 0, 0 },			/* 277 = unimplemented sync_file_range */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 278 = unimplemented vmsplice */
+	    linux_sys_nosys, 0, 0 },			/* 278 = unimplemented vmsplice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 279 = unimplemented move_pages */
+	    linux_sys_nosys, 0, 0 },			/* 279 = unimplemented move_pages */
 	{ ns(struct linux_sys_utimensat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_utimensat },	/* 280 = utimensat */
+	    (sy_call_t *)linux_sys_utimensat, 0, 0 },	/* 280 = utimensat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 281 = unimplemented epoll_pwait */
+	    linux_sys_nosys, 0, 0 },			/* 281 = unimplemented epoll_pwait */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 282 = unimplemented signalfd */
+	    linux_sys_nosys, 0, 0 },			/* 282 = unimplemented signalfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 283 = unimplemented timerfd_create */
+	    linux_sys_nosys, 0, 0 },			/* 283 = unimplemented timerfd_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 284 = unimplemented eventfd */
+	    linux_sys_nosys, 0, 0 },			/* 284 = unimplemented eventfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 285 = unimplemented fallocate */
+	    linux_sys_nosys, 0, 0 },			/* 285 = unimplemented fallocate */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 286 = unimplemented timerfd_settime */
+	    linux_sys_nosys, 0, 0 },			/* 286 = unimplemented timerfd_settime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 287 = unimplemented timerfd_gettime */
+	    linux_sys_nosys, 0, 0 },			/* 287 = unimplemented timerfd_gettime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 288 = unimplemented accept4 */
+	    linux_sys_nosys, 0, 0 },			/* 288 = unimplemented accept4 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 289 = unimplemented signalfd4 */
+	    linux_sys_nosys, 0, 0 },			/* 289 = unimplemented signalfd4 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 290 = unimplemented eventfd2 */
+	    linux_sys_nosys, 0, 0 },			/* 290 = unimplemented eventfd2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 291 = unimplemented epoll_create1 */
+	    linux_sys_nosys, 0, 0 },			/* 291 = unimplemented epoll_create1 */
 	{ ns(struct linux_sys_dup3_args), 0,
-	    (sy_call_t *)linux_sys_dup3 },	/* 292 = dup3 */
+	    (sy_call_t *)linux_sys_dup3, 0, 0 },	/* 292 = dup3 */
 	{ ns(struct linux_sys_pipe2_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pipe2 },	/* 293 = pipe2 */
+	    (sy_call_t *)linux_sys_pipe2, 0, 0 },	/* 293 = pipe2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 294 = unimplemented inotify_init1 */
+	    linux_sys_nosys, 0, 0 },			/* 294 = unimplemented inotify_init1 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 295 = unimplemented preadv */
+	    linux_sys_nosys, 0, 0 },			/* 295 = unimplemented preadv */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 296 = unimplemented pwritev */
+	    linux_sys_nosys, 0, 0 },			/* 296 = unimplemented pwritev */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 297 = unimplemented rt_tgsigqueueinfo */
+	    linux_sys_nosys, 0, 0 },			/* 297 = unimplemented rt_tgsigqueueinfo */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 298 = unimplemented perf_counter_open */
+	    linux_sys_nosys, 0, 0 },			/* 298 = unimplemented perf_counter_open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 299 = unimplemented recvmmsg */
+	    linux_sys_nosys, 0, 0 },			/* 299 = unimplemented recvmmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 300 = unimplemented fanotify_init */
+	    linux_sys_nosys, 0, 0 },			/* 300 = unimplemented fanotify_init */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 301 = unimplemented fanotify_mark */
+	    linux_sys_nosys, 0, 0 },			/* 301 = unimplemented fanotify_mark */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 302 = unimplemented prlimit64 */
+	    linux_sys_nosys, 0, 0 },			/* 302 = unimplemented prlimit64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 303 = unimplemented name_to_handle_at */
+	    linux_sys_nosys, 0, 0 },			/* 303 = unimplemented name_to_handle_at */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 304 = unimplemented open_by_handle_at */
+	    linux_sys_nosys, 0, 0 },			/* 304 = unimplemented open_by_handle_at */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 305 = unimplemented clock_adjtime */
+	    linux_sys_nosys, 0, 0 },			/* 305 = unimplemented clock_adjtime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 306 = unimplemented syncfs */
+	    linux_sys_nosys, 0, 0 },			/* 306 = unimplemented syncfs */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 307 = unimplemented sendmmsg */
+	    linux_sys_nosys, 0, 0 },			/* 307 = unimplemented sendmmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 308 = unimplemented setns */
+	    linux_sys_nosys, 0, 0 },			/* 308 = unimplemented setns */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 309 = unimplemented getcpu */
+	    linux_sys_nosys, 0, 0 },			/* 309 = unimplemented getcpu */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 310 = unimplemented process_vm_readv */
+	    linux_sys_nosys, 0, 0 },			/* 310 = unimplemented process_vm_readv */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 311 = unimplemented process_vm_writev */
+	    linux_sys_nosys, 0, 0 },			/* 311 = unimplemented process_vm_writev */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 312 = unimplemented kcmp */
+	    linux_sys_nosys, 0, 0 },			/* 312 = unimplemented kcmp */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 313 = unimplemented finit_module */
+	    linux_sys_nosys, 0, 0 },			/* 313 = unimplemented finit_module */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_nosys },	/* 314 = nosys */
+	    (sy_call_t *)linux_sys_nosys, 0, 0 },	/* 314 = nosys */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 315 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 315 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 316 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 316 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 317 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 317 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 318 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 318 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 319 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 319 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 320 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 320 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 321 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 321 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 322 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 322 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 323 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 323 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 324 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 324 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 325 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 325 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 326 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 326 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 327 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 327 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 328 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 328 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 329 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 329 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 330 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 330 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 331 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 331 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 332 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 332 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 333 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 333 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 334 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 334 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 335 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 335 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 336 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 336 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 337 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 337 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 338 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 338 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 339 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 339 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 340 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 340 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 341 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 341 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 342 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 342 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 343 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 343 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 344 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 344 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 345 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 345 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 346 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 346 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 347 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 347 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 348 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 348 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 349 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 349 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 350 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 350 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 351 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 351 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 352 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 352 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 353 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 353 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 354 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 354 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 355 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 355 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 356 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 356 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 357 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 357 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 358 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 358 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 359 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 359 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 360 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 360 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 361 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 361 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 362 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 362 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 363 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 363 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 364 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 364 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 365 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 365 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 366 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 366 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 367 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 367 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 368 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 368 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 369 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 369 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 370 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 370 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 371 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 371 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 372 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 372 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 373 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 373 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 374 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 374 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 375 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 375 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 376 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 376 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 377 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 377 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 378 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 378 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 379 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 379 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 380 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 380 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 381 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 381 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 382 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 382 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 383 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 383 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 384 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 384 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 385 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 385 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 386 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 386 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 387 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 387 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 388 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 388 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 389 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 389 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 390 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 390 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 391 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 391 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 392 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 392 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 393 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 393 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 394 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 394 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 395 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 395 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 396 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 396 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 397 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 397 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 398 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 398 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 399 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 399 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 400 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 400 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 401 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 401 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 402 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 402 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 403 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 403 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 404 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 404 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 405 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 405 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 406 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 406 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 407 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 407 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 408 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 408 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 409 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 409 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 410 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 410 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 411 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 411 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 412 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 412 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 413 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 413 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 414 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 414 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 415 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 415 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 416 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 416 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 417 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 417 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 418 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 418 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 419 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 419 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 420 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 420 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 421 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 421 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 422 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 422 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 423 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 423 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 424 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 424 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 425 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 425 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 426 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 426 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 427 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 427 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 428 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 428 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 429 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 429 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 430 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 430 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 431 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 431 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 432 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 432 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 433 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 433 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 434 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 434 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 435 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 435 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 436 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 436 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 437 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 437 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 438 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 438 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 439 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 439 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 440 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 440 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 441 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 441 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 442 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 442 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 443 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 443 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 444 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 444 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 445 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 445 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 446 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 446 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 447 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 447 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 448 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 448 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 449 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 449 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 450 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 450 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 451 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 451 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 452 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 452 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 453 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 453 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 454 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 454 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 455 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 455 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 456 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 456 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 457 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 457 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 458 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 458 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 459 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 459 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 460 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 460 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 461 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 461 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 462 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 462 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 463 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 463 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 464 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 464 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 465 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 465 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 466 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 466 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 467 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 467 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 468 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 468 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 469 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 469 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 470 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 470 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 471 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 471 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 472 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 472 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 473 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 473 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 474 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 474 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 475 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 475 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 476 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 476 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 477 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 477 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 478 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 478 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 479 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 479 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 480 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 480 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 481 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 481 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 482 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 482 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 483 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 483 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 484 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 484 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 485 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 485 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 486 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 486 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 487 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 487 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 488 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 488 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 489 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 489 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 490 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 490 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 491 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 491 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 492 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 492 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 493 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 493 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 494 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 494 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 495 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 495 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 496 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 496 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 497 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 497 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 498 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 498 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 499 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 499 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 500 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 500 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 501 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 501 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 502 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 502 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 503 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 503 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 504 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 504 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 505 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 505 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 506 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 506 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 507 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 507 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 508 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 508 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 509 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 509 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 510 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 510 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 511 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 511 = filler */
 };
diff --git a/sys/compat/linux/arch/amd64/linux_systrace_args.c b/sys/compat/linux/arch/amd64/linux_systrace_args.c
new file mode 100644
index 0000000..0ac8f94
--- /dev/null
+++ b/sys/compat/linux/arch/amd64/linux_systrace_args.c
@@ -0,0 +1,5674 @@
+/* $NetBSD$ */
+
+/*
+ * System call argument to DTrace register array converstion.
+ *
+ * DO NOT EDIT-- this file is automatically generated.
+ * This file is part of the DTrace syscall provider.
+ */
+
+static void
+systrace_args(register_t sysnum, const void *params, uintptr_t *uarg, size_t *n_args)
+{
+	intptr_t *iarg  = (intptr_t *)uarg;
+	switch (sysnum) {
+	/* sys_read */
+	case 0: {
+		struct sys_read_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* void * */
+		uarg[2] = SCARG(p, nbyte); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_write */
+	case 1: {
+		struct sys_write_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* const void * */
+		iarg[2] = SCARG(p, nbyte); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_open */
+	case 2: {
+		struct linux_sys_open_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, flags); /* int */
+		iarg[2] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_close */
+	case 3: {
+		struct sys_close_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_stat64 */
+	case 4: {
+		struct linux_sys_stat64_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_stat64 * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_fstat64 */
+	case 5: {
+		struct linux_sys_fstat64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_stat64 * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_lstat64 */
+	case 6: {
+		struct linux_sys_lstat64_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_stat64 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_poll */
+	case 7: {
+		struct sys_poll_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fds); /* struct pollfd * */
+		uarg[1] = SCARG(p, nfds); /* u_int */
+		iarg[2] = SCARG(p, timeout); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* compat_43_sys_lseek */
+	case 8: {
+		struct compat_43_sys_lseek_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, offset); /* long */
+		iarg[2] = SCARG(p, whence); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_mmap */
+	case 9: {
+		struct linux_sys_mmap_args *p = params;
+		uarg[0] = SCARG(p, addr); /* unsigned long */
+		uarg[1] = SCARG(p, len); /* size_t */
+		iarg[2] = SCARG(p, prot); /* int */
+		iarg[3] = SCARG(p, flags); /* int */
+		iarg[4] = SCARG(p, fd); /* int */
+		iarg[5] = SCARG(p, offset); /* linux_off_t */
+		*n_args = 6;
+		break;
+	}
+	/* linux_sys_mprotect */
+	case 10: {
+		struct linux_sys_mprotect_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, start); /* const void * */
+		uarg[1] = SCARG(p, len); /* unsigned long */
+		iarg[2] = SCARG(p, prot); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_munmap */
+	case 11: {
+		struct sys_munmap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_brk */
+	case 12: {
+		struct linux_sys_brk_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, nsize); /* char * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_rt_sigaction */
+	case 13: {
+		struct linux_sys_rt_sigaction_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		uarg[1] = (intptr_t) SCARG(p, nsa); /* const struct linux_sigaction * */
+		uarg[2] = (intptr_t) SCARG(p, osa); /* struct linux_sigaction * */
+		uarg[3] = SCARG(p, sigsetsize); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_rt_sigprocmask */
+	case 14: {
+		struct linux_sys_rt_sigprocmask_args *p = params;
+		iarg[0] = SCARG(p, how); /* int */
+		uarg[1] = (intptr_t) SCARG(p, set); /* const linux_sigset_t * */
+		uarg[2] = (intptr_t) SCARG(p, oset); /* linux_sigset_t * */
+		uarg[3] = SCARG(p, sigsetsize); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_rt_sigreturn */
+	case 15: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_ioctl */
+	case 16: {
+		struct linux_sys_ioctl_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, com); /* u_long */
+		uarg[2] = (intptr_t) SCARG(p, data); /* void * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_pread */
+	case 17: {
+		struct linux_sys_pread_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* char * */
+		uarg[2] = SCARG(p, nbyte); /* size_t */
+		iarg[3] = SCARG(p, offset); /* off_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_pwrite */
+	case 18: {
+		struct linux_sys_pwrite_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* char * */
+		uarg[2] = SCARG(p, nbyte); /* size_t */
+		iarg[3] = SCARG(p, offset); /* off_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_readv */
+	case 19: {
+		struct sys_readv_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, iovp); /* const struct iovec * */
+		iarg[2] = SCARG(p, iovcnt); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_writev */
+	case 20: {
+		struct sys_writev_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, iovp); /* const struct iovec * */
+		iarg[2] = SCARG(p, iovcnt); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_access */
+	case 21: {
+		struct sys_access_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, flags); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_pipe */
+	case 22: {
+		struct linux_sys_pipe_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, pfds); /* int * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_select */
+	case 23: {
+		struct linux_sys_select_args *p = params;
+		iarg[0] = SCARG(p, nfds); /* int */
+		uarg[1] = (intptr_t) SCARG(p, readfds); /* fd_set * */
+		uarg[2] = (intptr_t) SCARG(p, writefds); /* fd_set * */
+		uarg[3] = (intptr_t) SCARG(p, exceptfds); /* fd_set * */
+		uarg[4] = (intptr_t) SCARG(p, timeout); /* struct timeval50 * */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_sched_yield */
+	case 24: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_mremap */
+	case 25: {
+		struct linux_sys_mremap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, old_address); /* void * */
+		uarg[1] = SCARG(p, old_size); /* size_t */
+		uarg[2] = SCARG(p, new_size); /* size_t */
+		uarg[3] = SCARG(p, flags); /* u_long */
+		*n_args = 4;
+		break;
+	}
+	/* sys___msync13 */
+	case 26: {
+		struct sys___msync13_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_mincore */
+	case 27: {
+		struct sys_mincore_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		uarg[2] = (intptr_t) SCARG(p, vec); /* char * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_madvise */
+	case 28: {
+		struct sys_madvise_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		iarg[2] = SCARG(p, behav); /* int */
+		*n_args = 3;
+		break;
+	}
+#ifdef SYSVSHM
+	/* linux_sys_shmget */
+	case 29: {
+		struct linux_sys_shmget_args *p = params;
+		iarg[0] = SCARG(p, key); /* key_t */
+		uarg[1] = SCARG(p, size); /* size_t */
+		iarg[2] = SCARG(p, shmflg); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_shmat */
+	case 30: {
+		struct sys_shmat_args *p = params;
+		iarg[0] = SCARG(p, shmid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, shmaddr); /* void * */
+		iarg[2] = SCARG(p, shmflg); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_shmctl */
+	case 31: {
+		struct linux_sys_shmctl_args *p = params;
+		iarg[0] = SCARG(p, shmid); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, buf); /* struct linux_shmid_ds * */
+		*n_args = 3;
+		break;
+	}
+#else
+#endif
+	/* sys_dup */
+	case 32: {
+		struct sys_dup_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_dup2 */
+	case 33: {
+		struct sys_dup2_args *p = params;
+		iarg[0] = SCARG(p, from); /* int */
+		iarg[1] = SCARG(p, to); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_pause */
+	case 34: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_nanosleep */
+	case 35: {
+		struct linux_sys_nanosleep_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, rqtp); /* const struct linux_timespec * */
+		uarg[1] = (intptr_t) SCARG(p, rmtp); /* struct linux_timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* compat_50_sys_getitimer */
+	case 36: {
+		struct compat_50_sys_getitimer_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, itv); /* struct itimerval50 * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_alarm */
+	case 37: {
+		struct linux_sys_alarm_args *p = params;
+		uarg[0] = SCARG(p, secs); /* unsigned int */
+		*n_args = 1;
+		break;
+	}
+	/* compat_50_sys_setitimer */
+	case 38: {
+		struct compat_50_sys_setitimer_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, itv); /* struct itimerval50 * */
+		uarg[2] = (intptr_t) SCARG(p, oitv); /* struct itimerval50 * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getpid */
+	case 39: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_socket */
+	case 41: {
+		struct linux_sys_socket_args *p = params;
+		iarg[0] = SCARG(p, domain); /* int */
+		iarg[1] = SCARG(p, type); /* int */
+		iarg[2] = SCARG(p, protocol); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_connect */
+	case 42: {
+		struct linux_sys_connect_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* const struct osockaddr * */
+		uarg[2] = SCARG(p, namelen); /* unsigned int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_accept */
+	case 43: {
+		struct linux_sys_accept_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* struct osockaddr * */
+		uarg[2] = (intptr_t) SCARG(p, anamelen); /* int * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_sendto */
+	case 44: {
+		struct linux_sys_sendto_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msg); /* void * */
+		iarg[2] = SCARG(p, len); /* int */
+		iarg[3] = SCARG(p, flags); /* int */
+		uarg[4] = (intptr_t) SCARG(p, to); /* struct osockaddr * */
+		iarg[5] = SCARG(p, tolen); /* int */
+		*n_args = 6;
+		break;
+	}
+	/* linux_sys_recvfrom */
+	case 45: {
+		struct linux_sys_recvfrom_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* void * */
+		uarg[2] = SCARG(p, len); /* size_t */
+		iarg[3] = SCARG(p, flags); /* int */
+		uarg[4] = (intptr_t) SCARG(p, from); /* struct osockaddr * */
+		uarg[5] = (intptr_t) SCARG(p, fromlenaddr); /* unsigned int * */
+		*n_args = 6;
+		break;
+	}
+	/* linux_sys_sendmsg */
+	case 46: {
+		struct linux_sys_sendmsg_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msg); /* const struct linux_msghdr * */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_recvmsg */
+	case 47: {
+		struct linux_sys_recvmsg_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msg); /* struct linux_msghdr * */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_shutdown */
+	case 48: {
+		struct sys_shutdown_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		iarg[1] = SCARG(p, how); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_bind */
+	case 49: {
+		struct linux_sys_bind_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* const struct osockaddr * */
+		uarg[2] = SCARG(p, namelen); /* unsigned int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_listen */
+	case 50: {
+		struct sys_listen_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		iarg[1] = SCARG(p, backlog); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_getsockname */
+	case 51: {
+		struct linux_sys_getsockname_args *p = params;
+		iarg[0] = SCARG(p, fdec); /* int */
+		uarg[1] = (intptr_t) SCARG(p, asa); /* void * */
+		uarg[2] = (intptr_t) SCARG(p, alen); /* int * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_getpeername */
+	case 52: {
+		struct linux_sys_getpeername_args *p = params;
+		iarg[0] = SCARG(p, fdes); /* int */
+		uarg[1] = (intptr_t) SCARG(p, asa); /* struct sockaddr * */
+		uarg[2] = (intptr_t) SCARG(p, alen); /* unsigned int * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_socketpair */
+	case 53: {
+		struct linux_sys_socketpair_args *p = params;
+		iarg[0] = SCARG(p, domain); /* int */
+		iarg[1] = SCARG(p, type); /* int */
+		iarg[2] = SCARG(p, protocol); /* int */
+		uarg[3] = (intptr_t) SCARG(p, rsv); /* int * */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_setsockopt */
+	case 54: {
+		struct linux_sys_setsockopt_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		iarg[1] = SCARG(p, level); /* int */
+		iarg[2] = SCARG(p, optname); /* int */
+		uarg[3] = (intptr_t) SCARG(p, optval); /* void * */
+		iarg[4] = SCARG(p, optlen); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_getsockopt */
+	case 55: {
+		struct linux_sys_getsockopt_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		iarg[1] = SCARG(p, level); /* int */
+		iarg[2] = SCARG(p, optname); /* int */
+		uarg[3] = (intptr_t) SCARG(p, optval); /* void * */
+		uarg[4] = (intptr_t) SCARG(p, optlen); /* int * */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_clone */
+	case 56: {
+		struct linux_sys_clone_args *p = params;
+		iarg[0] = SCARG(p, flags); /* int */
+		uarg[1] = (intptr_t) SCARG(p, stack); /* void * */
+		uarg[2] = (intptr_t) SCARG(p, parent_tidptr); /* void * */
+		uarg[3] = (intptr_t) SCARG(p, child_tidptr); /* void * */
+		uarg[4] = (intptr_t) SCARG(p, tls); /* void * */
+		*n_args = 5;
+		break;
+	}
+	/* sys_fork */
+	case 57: {
+		*n_args = 0;
+		break;
+	}
+	/* sys___vfork14 */
+	case 58: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_execve */
+	case 59: {
+		struct sys_execve_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, argp); /* char ** */
+		uarg[2] = (intptr_t) SCARG(p, envp); /* char ** */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_exit */
+	case 60: {
+		struct linux_sys_exit_args *p = params;
+		iarg[0] = SCARG(p, rval); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_wait4 */
+	case 61: {
+		struct linux_sys_wait4_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, status); /* int * */
+		iarg[2] = SCARG(p, options); /* int */
+		uarg[3] = (intptr_t) SCARG(p, rusage); /* struct rusage50 * */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_kill */
+	case 62: {
+		struct linux_sys_kill_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		iarg[1] = SCARG(p, signum); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_uname */
+	case 63: {
+		struct linux_sys_uname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, up); /* struct linux_utsname * */
+		*n_args = 1;
+		break;
+	}
+#ifdef SYSVSEM
+	/* sys_semget */
+	case 64: {
+		struct sys_semget_args *p = params;
+		iarg[0] = SCARG(p, key); /* key_t */
+		iarg[1] = SCARG(p, nsems); /* int */
+		iarg[2] = SCARG(p, semflg); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_semop */
+	case 65: {
+		struct sys_semop_args *p = params;
+		iarg[0] = SCARG(p, semid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sops); /* struct sembuf * */
+		uarg[2] = SCARG(p, nsops); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_semctl */
+	case 66: {
+		struct linux_sys_semctl_args *p = params;
+		iarg[0] = SCARG(p, semid); /* int */
+		iarg[1] = SCARG(p, semnum); /* int */
+		iarg[2] = SCARG(p, cmd); /* int */
+		uarg[3] = SCARG(p, arg); /* union linux_semun */
+		*n_args = 4;
+		break;
+	}
+#else
+#endif
+#ifdef SYSVSHM
+	/* sys_shmdt */
+	case 67: {
+		struct sys_shmdt_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, shmaddr); /* const void * */
+		*n_args = 1;
+		break;
+	}
+#else
+#endif
+#ifdef SYSVMSG
+	/* sys_msgget */
+	case 68: {
+		struct sys_msgget_args *p = params;
+		iarg[0] = SCARG(p, key); /* key_t */
+		iarg[1] = SCARG(p, msgflg); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_msgsnd */
+	case 69: {
+		struct sys_msgsnd_args *p = params;
+		iarg[0] = SCARG(p, msqid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msgp); /* void * */
+		uarg[2] = SCARG(p, msgsz); /* size_t */
+		iarg[3] = SCARG(p, msgflg); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* sys_msgrcv */
+	case 70: {
+		struct sys_msgrcv_args *p = params;
+		iarg[0] = SCARG(p, msqid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msgp); /* void * */
+		uarg[2] = SCARG(p, msgsz); /* size_t */
+		iarg[3] = SCARG(p, msgtyp); /* long */
+		iarg[4] = SCARG(p, msgflg); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_msgctl */
+	case 71: {
+		struct linux_sys_msgctl_args *p = params;
+		iarg[0] = SCARG(p, msqid); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, buf); /* struct linux_msqid_ds * */
+		*n_args = 3;
+		break;
+	}
+#else
+#endif
+	/* linux_sys_fcntl */
+	case 72: {
+		struct linux_sys_fcntl_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, arg); /* void * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_flock */
+	case 73: {
+		struct sys_flock_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, how); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_fsync */
+	case 74: {
+		struct sys_fsync_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_fdatasync */
+	case 75: {
+		struct linux_sys_fdatasync_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_truncate64 */
+	case 76: {
+		struct linux_sys_truncate64_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, length); /* off_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_ftruncate64 */
+	case 77: {
+		struct linux_sys_ftruncate64_args *p = params;
+		uarg[0] = SCARG(p, fd); /* unsigned int */
+		iarg[1] = SCARG(p, length); /* off_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_getdents */
+	case 78: {
+		struct linux_sys_getdents_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, dent); /* struct linux_dirent * */
+		uarg[2] = SCARG(p, count); /* unsigned int */
+		*n_args = 3;
+		break;
+	}
+	/* sys___getcwd */
+	case 79: {
+		struct sys___getcwd_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, bufp); /* char * */
+		uarg[1] = SCARG(p, length); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_chdir */
+	case 80: {
+		struct sys_chdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_fchdir */
+	case 81: {
+		struct sys_fchdir_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys___posix_rename */
+	case 82: {
+		struct sys___posix_rename_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, from); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, to); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_mkdir */
+	case 83: {
+		struct sys_mkdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_rmdir */
+	case 84: {
+		struct sys_rmdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_creat */
+	case 85: {
+		struct linux_sys_creat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_link */
+	case 86: {
+		struct sys_link_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, link); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_unlink */
+	case 87: {
+		struct linux_sys_unlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_symlink */
+	case 88: {
+		struct sys_symlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, link); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_readlink */
+	case 89: {
+		struct sys_readlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* char * */
+		iarg[2] = SCARG(p, count); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_chmod */
+	case 90: {
+		struct sys_chmod_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_fchmod */
+	case 91: {
+		struct sys_fchmod_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys___posix_chown */
+	case 92: {
+		struct sys___posix_chown_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys___posix_fchown */
+	case 93: {
+		struct sys___posix_fchown_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys___posix_lchown */
+	case 94: {
+		struct sys___posix_lchown_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_umask */
+	case 95: {
+		struct sys_umask_args *p = params;
+		iarg[0] = SCARG(p, newmask); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_gettimeofday */
+	case 96: {
+		struct linux_sys_gettimeofday_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tp); /* struct timeval50 * */
+		uarg[1] = (intptr_t) SCARG(p, tzp); /* struct timezone * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_getrlimit */
+	case 97: {
+		struct linux_sys_getrlimit_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rlp); /* struct rlimit * */
+		*n_args = 2;
+		break;
+	}
+	/* compat_50_sys_getrusage */
+	case 98: {
+		struct compat_50_sys_getrusage_args *p = params;
+		iarg[0] = SCARG(p, who); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rusage); /* struct rusage50 * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_sysinfo */
+	case 99: {
+		struct linux_sys_sysinfo_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, arg); /* struct linux_sysinfo * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_times */
+	case 100: {
+		struct linux_sys_times_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tms); /* struct times * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_ptrace */
+	case 101: {
+		struct linux_sys_ptrace_args *p = params;
+		iarg[0] = SCARG(p, request); /* long */
+		iarg[1] = SCARG(p, pid); /* long */
+		iarg[2] = SCARG(p, addr); /* long */
+		iarg[3] = SCARG(p, data); /* long */
+		*n_args = 4;
+		break;
+	}
+	/* sys_getuid */
+	case 102: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getgid */
+	case 104: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_setuid */
+	case 105: {
+		struct sys_setuid_args *p = params;
+		uarg[0] = SCARG(p, uid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_setgid */
+	case 106: {
+		struct sys_setgid_args *p = params;
+		iarg[0] = SCARG(p, gid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_geteuid */
+	case 107: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getegid */
+	case 108: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_setpgid */
+	case 109: {
+		struct sys_setpgid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		iarg[1] = SCARG(p, pgid); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getppid */
+	case 110: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getpgrp */
+	case 111: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_setsid */
+	case 112: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_setreuid */
+	case 113: {
+		struct sys_setreuid_args *p = params;
+		uarg[0] = SCARG(p, ruid); /* uid_t */
+		uarg[1] = SCARG(p, euid); /* uid_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setregid */
+	case 114: {
+		struct sys_setregid_args *p = params;
+		iarg[0] = SCARG(p, rgid); /* gid_t */
+		iarg[1] = SCARG(p, egid); /* gid_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getgroups */
+	case 115: {
+		struct sys_getgroups_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset); /* gid_t * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setgroups */
+	case 116: {
+		struct sys_setgroups_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset); /* gid_t * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_setresuid */
+	case 117: {
+		struct linux_sys_setresuid_args *p = params;
+		uarg[0] = SCARG(p, ruid); /* uid_t */
+		uarg[1] = SCARG(p, euid); /* uid_t */
+		uarg[2] = SCARG(p, suid); /* uid_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_getresuid */
+	case 118: {
+		struct linux_sys_getresuid_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ruid); /* uid_t * */
+		uarg[1] = (intptr_t) SCARG(p, euid); /* uid_t * */
+		uarg[2] = (intptr_t) SCARG(p, suid); /* uid_t * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_setresgid */
+	case 119: {
+		struct linux_sys_setresgid_args *p = params;
+		iarg[0] = SCARG(p, rgid); /* gid_t */
+		iarg[1] = SCARG(p, egid); /* gid_t */
+		iarg[2] = SCARG(p, sgid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_getresgid */
+	case 120: {
+		struct linux_sys_getresgid_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, rgid); /* gid_t * */
+		uarg[1] = (intptr_t) SCARG(p, egid); /* gid_t * */
+		uarg[2] = (intptr_t) SCARG(p, sgid); /* gid_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getpgid */
+	case 121: {
+		struct sys_getpgid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_setfsuid */
+	case 122: {
+		struct linux_sys_setfsuid_args *p = params;
+		uarg[0] = SCARG(p, uid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_setfsgid */
+	case 123: {
+		struct linux_sys_setfsgid_args *p = params;
+		iarg[0] = SCARG(p, gid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_getsid */
+	case 124: {
+		struct sys_getsid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_rt_sigpending */
+	case 127: {
+		struct linux_sys_rt_sigpending_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set); /* linux_sigset_t * */
+		uarg[1] = SCARG(p, sigsetsize); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_rt_sigtimedwait */
+	case 128: {
+		struct linux_sys_rt_sigtimedwait_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set); /* const linux_sigset_t * */
+		uarg[1] = (intptr_t) SCARG(p, info); /* linux_siginfo_t * */
+		uarg[2] = (intptr_t) SCARG(p, timeout); /* const struct linux_timespec * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_rt_queueinfo */
+	case 129: {
+		struct linux_sys_rt_queueinfo_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		iarg[1] = SCARG(p, signum); /* int */
+		uarg[2] = (intptr_t) SCARG(p, uinfo); /* linux_siginfo_t * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_rt_sigsuspend */
+	case 130: {
+		struct linux_sys_rt_sigsuspend_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, unewset); /* linux_sigset_t * */
+		uarg[1] = SCARG(p, sigsetsize); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_sigaltstack */
+	case 131: {
+		struct linux_sys_sigaltstack_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ss); /* const struct linux_sigaltstack * */
+		uarg[1] = (intptr_t) SCARG(p, oss); /* struct linux_sigaltstack * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_utime */
+	case 132: {
+		struct linux_sys_utime_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, times); /* struct linux_utimbuf * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_mknod */
+	case 133: {
+		struct linux_sys_mknod_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		uarg[2] = SCARG(p, dev); /* unsigned */
+		*n_args = 3;
+		break;
+	}
+#ifdef EXEC_AOUT
+	/* linux_sys_uselib */
+	case 134: {
+		struct linux_sys_uselib_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+#else
+#endif
+	/* linux_sys_personality */
+	case 135: {
+		struct linux_sys_personality_args *p = params;
+		uarg[0] = SCARG(p, per); /* unsigned long */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_statfs */
+	case 137: {
+		struct linux_sys_statfs_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_statfs * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_fstatfs */
+	case 138: {
+		struct linux_sys_fstatfs_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_statfs * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_getpriority */
+	case 140: {
+		struct linux_sys_getpriority_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, who); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setpriority */
+	case 141: {
+		struct sys_setpriority_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, who); /* int */
+		iarg[2] = SCARG(p, prio); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_sched_setparam */
+	case 142: {
+		struct linux_sys_sched_setparam_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* const struct linux_sched_param * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_sched_getparam */
+	case 143: {
+		struct linux_sys_sched_getparam_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_sched_param * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_sched_setscheduler */
+	case 144: {
+		struct linux_sys_sched_setscheduler_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		iarg[1] = SCARG(p, policy); /* int */
+		uarg[2] = (intptr_t) SCARG(p, sp); /* const struct linux_sched_param * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_sched_getscheduler */
+	case 145: {
+		struct linux_sys_sched_getscheduler_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_sched_get_priority_max */
+	case 146: {
+		struct linux_sys_sched_get_priority_max_args *p = params;
+		iarg[0] = SCARG(p, policy); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_sched_get_priority_min */
+	case 147: {
+		struct linux_sys_sched_get_priority_min_args *p = params;
+		iarg[0] = SCARG(p, policy); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_mlock */
+	case 149: {
+		struct sys_mlock_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_munlock */
+	case 150: {
+		struct sys_munlock_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_mlockall */
+	case 151: {
+		struct sys_mlockall_args *p = params;
+		iarg[0] = SCARG(p, flags); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_munlockall */
+	case 152: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_modify_ldt */
+	case 154: {
+		struct linux_sys_modify_ldt_args *p = params;
+		iarg[0] = SCARG(p, func); /* int */
+		uarg[1] = (intptr_t) SCARG(p, ptr); /* void * */
+		uarg[2] = SCARG(p, bytecount); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys___sysctl */
+	case 156: {
+		struct linux_sys___sysctl_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, lsp); /* struct linux___sysctl * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_arch_prctl */
+	case 158: {
+		struct linux_sys_arch_prctl_args *p = params;
+		iarg[0] = SCARG(p, code); /* int */
+		uarg[1] = SCARG(p, addr); /* unsigned long */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_setrlimit */
+	case 160: {
+		struct linux_sys_setrlimit_args *p = params;
+		uarg[0] = SCARG(p, which); /* u_int */
+		uarg[1] = (intptr_t) SCARG(p, rlp); /* struct rlimit * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_chroot */
+	case 161: {
+		struct sys_chroot_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_sync */
+	case 162: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_acct */
+	case 163: {
+		struct sys_acct_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_settimeofday */
+	case 164: {
+		struct linux_sys_settimeofday_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tp); /* struct timeval50 * */
+		uarg[1] = (intptr_t) SCARG(p, tzp); /* struct timezone * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_swapon */
+	case 167: {
+		struct linux_sys_swapon_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, name); /* char * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_swapoff */
+	case 168: {
+		struct linux_sys_swapoff_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_reboot */
+	case 169: {
+		struct linux_sys_reboot_args *p = params;
+		iarg[0] = SCARG(p, magic1); /* int */
+		iarg[1] = SCARG(p, magic2); /* int */
+		iarg[2] = SCARG(p, cmd); /* int */
+		uarg[3] = (intptr_t) SCARG(p, arg); /* void * */
+		*n_args = 4;
+		break;
+	}
+	/* compat_43_sys_sethostname */
+	case 170: {
+		struct compat_43_sys_sethostname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, hostname); /* char * */
+		uarg[1] = SCARG(p, len); /* u_int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_setdomainname */
+	case 171: {
+		struct linux_sys_setdomainname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, domainname); /* char * */
+		iarg[1] = SCARG(p, len); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_iopl */
+	case 172: {
+		struct linux_sys_iopl_args *p = params;
+		iarg[0] = SCARG(p, level); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_ioperm */
+	case 173: {
+		struct linux_sys_ioperm_args *p = params;
+		uarg[0] = SCARG(p, lo); /* unsigned int */
+		uarg[1] = SCARG(p, hi); /* unsigned int */
+		iarg[2] = SCARG(p, val); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_gettid */
+	case 186: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_setxattr */
+	case 188: {
+		struct linux_sys_setxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_lsetxattr */
+	case 189: {
+		struct linux_sys_lsetxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_fsetxattr */
+	case 190: {
+		struct linux_sys_fsetxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_getxattr */
+	case 191: {
+		struct linux_sys_getxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_lgetxattr */
+	case 192: {
+		struct linux_sys_lgetxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_fgetxattr */
+	case 193: {
+		struct linux_sys_fgetxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_listxattr */
+	case 194: {
+		struct linux_sys_listxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, list); /* char * */
+		uarg[2] = SCARG(p, size); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_llistxattr */
+	case 195: {
+		struct linux_sys_llistxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, list); /* char * */
+		uarg[2] = SCARG(p, size); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_flistxattr */
+	case 196: {
+		struct linux_sys_flistxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, list); /* char * */
+		uarg[2] = SCARG(p, size); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_removexattr */
+	case 197: {
+		struct linux_sys_removexattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_lremovexattr */
+	case 198: {
+		struct linux_sys_lremovexattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_fremovexattr */
+	case 199: {
+		struct linux_sys_fremovexattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_tkill */
+	case 200: {
+		struct linux_sys_tkill_args *p = params;
+		iarg[0] = SCARG(p, tid); /* int */
+		iarg[1] = SCARG(p, sig); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_time */
+	case 201: {
+		struct linux_sys_time_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, t); /* linux_time_t * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_futex */
+	case 202: {
+		struct linux_sys_futex_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, uaddr); /* int * */
+		iarg[1] = SCARG(p, op); /* int */
+		iarg[2] = SCARG(p, val); /* int */
+		uarg[3] = (intptr_t) SCARG(p, timeout); /* const struct linux_timespec * */
+		uarg[4] = (intptr_t) SCARG(p, uaddr2); /* int * */
+		iarg[5] = SCARG(p, val3); /* int */
+		*n_args = 6;
+		break;
+	}
+	/* linux_sys_sched_setaffinity */
+	case 203: {
+		struct linux_sys_sched_setaffinity_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = SCARG(p, len); /* unsigned int */
+		uarg[2] = (intptr_t) SCARG(p, mask); /* unsigned long * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_sched_getaffinity */
+	case 204: {
+		struct linux_sys_sched_getaffinity_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = SCARG(p, len); /* unsigned int */
+		uarg[2] = (intptr_t) SCARG(p, mask); /* unsigned long * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_getdents64 */
+	case 217: {
+		struct linux_sys_getdents64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, dent); /* struct linux_dirent64 * */
+		uarg[2] = SCARG(p, count); /* unsigned int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_set_tid_address */
+	case 218: {
+		struct linux_sys_set_tid_address_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tid); /* int * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_fadvise64 */
+	case 221: {
+		struct linux_sys_fadvise64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, offset); /* off_t */
+		uarg[2] = SCARG(p, len); /* size_t */
+		iarg[3] = SCARG(p, advice); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_clock_settime */
+	case 227: {
+		struct linux_sys_clock_settime_args *p = params;
+		iarg[0] = SCARG(p, which); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp); /* struct linux_timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_clock_gettime */
+	case 228: {
+		struct linux_sys_clock_gettime_args *p = params;
+		iarg[0] = SCARG(p, which); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp); /* struct linux_timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_clock_getres */
+	case 229: {
+		struct linux_sys_clock_getres_args *p = params;
+		iarg[0] = SCARG(p, which); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp); /* struct linux_timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_clock_nanosleep */
+	case 230: {
+		struct linux_sys_clock_nanosleep_args *p = params;
+		iarg[0] = SCARG(p, which); /* clockid_t */
+		iarg[1] = SCARG(p, flags); /* int */
+		uarg[2] = (intptr_t) SCARG(p, rqtp); /* struct linux_timespec * */
+		uarg[3] = (intptr_t) SCARG(p, rmtp); /* struct linux_timespec * */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_exit_group */
+	case 231: {
+		struct linux_sys_exit_group_args *p = params;
+		iarg[0] = SCARG(p, error_code); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_tgkill */
+	case 234: {
+		struct linux_sys_tgkill_args *p = params;
+		iarg[0] = SCARG(p, tgid); /* int */
+		iarg[1] = SCARG(p, tid); /* int */
+		iarg[2] = SCARG(p, sig); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* compat_50_sys_utimes */
+	case 235: {
+		struct compat_50_sys_utimes_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, tptr); /* const struct timeval50 * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_openat */
+	case 257: {
+		struct linux_sys_openat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, flags); /* int */
+		iarg[3] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_mkdirat */
+	case 258: {
+		struct sys_mkdirat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_mknodat */
+	case 259: {
+		struct linux_sys_mknodat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, mode); /* linux_umode_t */
+		uarg[3] = SCARG(p, dev); /* unsigned */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_fchownat */
+	case 260: {
+		struct linux_sys_fchownat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = SCARG(p, owner); /* uid_t */
+		iarg[3] = SCARG(p, group); /* gid_t */
+		iarg[4] = SCARG(p, flag); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_fstatat64 */
+	case 262: {
+		struct linux_sys_fstatat64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, sp); /* struct linux_stat * */
+		iarg[3] = SCARG(p, flag); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_unlinkat */
+	case 263: {
+		struct linux_sys_unlinkat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, flag); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_renameat */
+	case 264: {
+		struct sys_renameat_args *p = params;
+		iarg[0] = SCARG(p, fromfd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, from); /* const char * */
+		iarg[2] = SCARG(p, tofd); /* int */
+		uarg[3] = (intptr_t) SCARG(p, to); /* const char * */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_linkat */
+	case 265: {
+		struct linux_sys_linkat_args *p = params;
+		iarg[0] = SCARG(p, fd1); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name1); /* const char * */
+		iarg[2] = SCARG(p, fd2); /* int */
+		uarg[3] = (intptr_t) SCARG(p, name2); /* const char * */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* sys_symlinkat */
+	case 266: {
+		struct sys_symlinkat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path1); /* const char * */
+		iarg[1] = SCARG(p, fd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, path2); /* const char * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_readlinkat */
+	case 267: {
+		struct sys_readlinkat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, buf); /* char * */
+		uarg[3] = SCARG(p, bufsize); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_fchmodat */
+	case 268: {
+		struct linux_sys_fchmodat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_faccessat */
+	case 269: {
+		struct linux_sys_faccessat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, amode); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_ppoll */
+	case 271: {
+		struct linux_sys_ppoll_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fds); /* struct pollfd * */
+		iarg[1] = SCARG(p, nfds); /* int */
+		uarg[2] = (intptr_t) SCARG(p, timeout); /* struct linux_timespec * */
+		uarg[3] = (intptr_t) SCARG(p, sigset); /* linux_sigset_t * */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_set_robust_list */
+	case 273: {
+		struct linux_sys_set_robust_list_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, head); /* struct linux_robust_list_head * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_get_robust_list */
+	case 274: {
+		struct linux_sys_get_robust_list_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, head); /* struct linux_robust_list_head ** */
+		uarg[2] = (intptr_t) SCARG(p, len); /* size_t * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_utimensat */
+	case 280: {
+		struct linux_sys_utimensat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, times); /* struct linux_timespec * */
+		iarg[3] = SCARG(p, flag); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_dup3 */
+	case 292: {
+		struct linux_sys_dup3_args *p = params;
+		iarg[0] = SCARG(p, from); /* int */
+		iarg[1] = SCARG(p, to); /* int */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_pipe2 */
+	case 293: {
+		struct linux_sys_pipe2_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, pfds); /* int * */
+		iarg[1] = SCARG(p, flags); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_nosys */
+	case 314: {
+		*n_args = 0;
+		break;
+	}
+	default:
+		*n_args = 0;
+		break;
+	};
+}
+static void
+systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
+{
+	const char *p = NULL;
+	switch (sysnum) {
+	/* sys_read */
+	case 0:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_write */
+	case 1:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const void *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_open */
+	case 2:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_close */
+	case 3:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_stat64 */
+	case 4:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct linux_stat64 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fstat64 */
+	case 5:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_stat64 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_lstat64 */
+	case 6:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct linux_stat64 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_poll */
+	case 7:
+		switch(ndx) {
+		case 0:
+			p = "struct pollfd *";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_sys_lseek */
+	case 8:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "long";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_mmap */
+	case 9:
+		switch(ndx) {
+		case 0:
+			p = "unsigned long";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "int";
+			break;
+		case 5:
+			p = "linux_off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_mprotect */
+	case 10:
+		switch(ndx) {
+		case 0:
+			p = "const void *";
+			break;
+		case 1:
+			p = "unsigned long";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_munmap */
+	case 11:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_brk */
+	case 12:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigaction */
+	case 13:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct linux_sigaction *";
+			break;
+		case 2:
+			p = "struct linux_sigaction *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigprocmask */
+	case 14:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const linux_sigset_t *";
+			break;
+		case 2:
+			p = "linux_sigset_t *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigreturn */
+	case 15:
+		break;
+	/* linux_sys_ioctl */
+	case 16:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "u_long";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_pread */
+	case 17:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_pwrite */
+	case 18:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_readv */
+	case 19:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct iovec *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_writev */
+	case 20:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct iovec *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_access */
+	case 21:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_pipe */
+	case 22:
+		switch(ndx) {
+		case 0:
+			p = "int *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_select */
+	case 23:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "fd_set *";
+			break;
+		case 2:
+			p = "fd_set *";
+			break;
+		case 3:
+			p = "fd_set *";
+			break;
+		case 4:
+			p = "struct timeval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_yield */
+	case 24:
+		break;
+	/* linux_sys_mremap */
+	case 25:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "u_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___msync13 */
+	case 26:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mincore */
+	case 27:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_madvise */
+	case 28:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+#ifdef SYSVSHM
+	/* linux_sys_shmget */
+	case 29:
+		switch(ndx) {
+		case 0:
+			p = "key_t";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_shmat */
+	case 30:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_shmctl */
+	case 31:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "struct linux_shmid_ds *";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* sys_dup */
+	case 32:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_dup2 */
+	case 33:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_pause */
+	case 34:
+		break;
+	/* linux_sys_nanosleep */
+	case 35:
+		switch(ndx) {
+		case 0:
+			p = "const struct linux_timespec *";
+			break;
+		case 1:
+			p = "struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_50_sys_getitimer */
+	case 36:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct itimerval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_alarm */
+	case 37:
+		switch(ndx) {
+		case 0:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_50_sys_setitimer */
+	case 38:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct itimerval50 *";
+			break;
+		case 2:
+			p = "struct itimerval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpid */
+	case 39:
+		break;
+	/* linux_sys_socket */
+	case 41:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_connect */
+	case 42:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct osockaddr *";
+			break;
+		case 2:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_accept */
+	case 43:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct osockaddr *";
+			break;
+		case 2:
+			p = "int *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sendto */
+	case 44:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "struct osockaddr *";
+			break;
+		case 5:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_recvfrom */
+	case 45:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "struct osockaddr *";
+			break;
+		case 5:
+			p = "unsigned int *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sendmsg */
+	case 46:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct linux_msghdr *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_recvmsg */
+	case 47:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_msghdr *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_shutdown */
+	case 48:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_bind */
+	case 49:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct osockaddr *";
+			break;
+		case 2:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_listen */
+	case 50:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getsockname */
+	case 51:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "int *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getpeername */
+	case 52:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct sockaddr *";
+			break;
+		case 2:
+			p = "unsigned int *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_socketpair */
+	case 53:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setsockopt */
+	case 54:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getsockopt */
+	case 55:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		case 4:
+			p = "int *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_clone */
+	case 56:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		case 4:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fork */
+	case 57:
+		break;
+	/* sys___vfork14 */
+	case 58:
+		break;
+	/* sys_execve */
+	case 59:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "char **";
+			break;
+		case 2:
+			p = "char **";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_exit */
+	case 60:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_wait4 */
+	case 61:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "struct rusage50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_kill */
+	case 62:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_uname */
+	case 63:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_utsname *";
+			break;
+		default:
+			break;
+		};
+		break;
+#ifdef SYSVSEM
+	/* sys_semget */
+	case 64:
+		switch(ndx) {
+		case 0:
+			p = "key_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_semop */
+	case 65:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct sembuf *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_semctl */
+	case 66:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "union linux_semun";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#ifdef SYSVSHM
+	/* sys_shmdt */
+	case 67:
+		switch(ndx) {
+		case 0:
+			p = "const void *";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#ifdef SYSVMSG
+	/* sys_msgget */
+	case 68:
+		switch(ndx) {
+		case 0:
+			p = "key_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_msgsnd */
+	case 69:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_msgrcv */
+	case 70:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "long";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_msgctl */
+	case 71:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "struct linux_msqid_ds *";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* linux_sys_fcntl */
+	case 72:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_flock */
+	case 73:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fsync */
+	case 74:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fdatasync */
+	case 75:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_truncate64 */
+	case 76:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_ftruncate64 */
+	case 77:
+		switch(ndx) {
+		case 0:
+			p = "unsigned int";
+			break;
+		case 1:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getdents */
+	case 78:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_dirent *";
+			break;
+		case 2:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___getcwd */
+	case 79:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_chdir */
+	case 80:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fchdir */
+	case 81:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___posix_rename */
+	case 82:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mkdir */
+	case 83:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_rmdir */
+	case 84:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_creat */
+	case 85:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_link */
+	case 86:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_unlink */
+	case 87:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_symlink */
+	case 88:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_readlink */
+	case 89:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_chmod */
+	case 90:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fchmod */
+	case 91:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___posix_chown */
+	case 92:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___posix_fchown */
+	case 93:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___posix_lchown */
+	case 94:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_umask */
+	case 95:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_gettimeofday */
+	case 96:
+		switch(ndx) {
+		case 0:
+			p = "struct timeval50 *";
+			break;
+		case 1:
+			p = "struct timezone *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getrlimit */
+	case 97:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct rlimit *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_50_sys_getrusage */
+	case 98:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct rusage50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sysinfo */
+	case 99:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_sysinfo *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_times */
+	case 100:
+		switch(ndx) {
+		case 0:
+			p = "struct times *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_ptrace */
+	case 101:
+		switch(ndx) {
+		case 0:
+			p = "long";
+			break;
+		case 1:
+			p = "long";
+			break;
+		case 2:
+			p = "long";
+			break;
+		case 3:
+			p = "long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getuid */
+	case 102:
+		break;
+	/* sys_getgid */
+	case 104:
+		break;
+	/* sys_setuid */
+	case 105:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setgid */
+	case 106:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_geteuid */
+	case 107:
+		break;
+	/* sys_getegid */
+	case 108:
+		break;
+	/* sys_setpgid */
+	case 109:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getppid */
+	case 110:
+		break;
+	/* sys_getpgrp */
+	case 111:
+		break;
+	/* sys_setsid */
+	case 112:
+		break;
+	/* sys_setreuid */
+	case 113:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setregid */
+	case 114:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		case 1:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getgroups */
+	case 115:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "gid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setgroups */
+	case 116:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "gid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setresuid */
+	case 117:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getresuid */
+	case 118:
+		switch(ndx) {
+		case 0:
+			p = "uid_t *";
+			break;
+		case 1:
+			p = "uid_t *";
+			break;
+		case 2:
+			p = "uid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setresgid */
+	case 119:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		case 1:
+			p = "gid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getresgid */
+	case 120:
+		switch(ndx) {
+		case 0:
+			p = "gid_t *";
+			break;
+		case 1:
+			p = "gid_t *";
+			break;
+		case 2:
+			p = "gid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpgid */
+	case 121:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setfsuid */
+	case 122:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setfsgid */
+	case 123:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getsid */
+	case 124:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigpending */
+	case 127:
+		switch(ndx) {
+		case 0:
+			p = "linux_sigset_t *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigtimedwait */
+	case 128:
+		switch(ndx) {
+		case 0:
+			p = "const linux_sigset_t *";
+			break;
+		case 1:
+			p = "linux_siginfo_t *";
+			break;
+		case 2:
+			p = "const struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_queueinfo */
+	case 129:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "linux_siginfo_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigsuspend */
+	case 130:
+		switch(ndx) {
+		case 0:
+			p = "linux_sigset_t *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sigaltstack */
+	case 131:
+		switch(ndx) {
+		case 0:
+			p = "const struct linux_sigaltstack *";
+			break;
+		case 1:
+			p = "struct linux_sigaltstack *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_utime */
+	case 132:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct linux_utimbuf *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_mknod */
+	case 133:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		case 2:
+			p = "unsigned";
+			break;
+		default:
+			break;
+		};
+		break;
+#ifdef EXEC_AOUT
+	/* linux_sys_uselib */
+	case 134:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* linux_sys_personality */
+	case 135:
+		switch(ndx) {
+		case 0:
+			p = "unsigned long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_statfs */
+	case 137:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct linux_statfs *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fstatfs */
+	case 138:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_statfs *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getpriority */
+	case 140:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setpriority */
+	case 141:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_setparam */
+	case 142:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "const struct linux_sched_param *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_getparam */
+	case 143:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "struct linux_sched_param *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_setscheduler */
+	case 144:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const struct linux_sched_param *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_getscheduler */
+	case 145:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_get_priority_max */
+	case 146:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_get_priority_min */
+	case 147:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mlock */
+	case 149:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_munlock */
+	case 150:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mlockall */
+	case 151:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_munlockall */
+	case 152:
+		break;
+	/* linux_sys_modify_ldt */
+	case 154:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys___sysctl */
+	case 156:
+		switch(ndx) {
+		case 0:
+			p = "struct linux___sysctl *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_arch_prctl */
+	case 158:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "unsigned long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setrlimit */
+	case 160:
+		switch(ndx) {
+		case 0:
+			p = "u_int";
+			break;
+		case 1:
+			p = "struct rlimit *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_chroot */
+	case 161:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sync */
+	case 162:
+		break;
+	/* sys_acct */
+	case 163:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_settimeofday */
+	case 164:
+		switch(ndx) {
+		case 0:
+			p = "struct timeval50 *";
+			break;
+		case 1:
+			p = "struct timezone *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_swapon */
+	case 167:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_swapoff */
+	case 168:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_reboot */
+	case 169:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_sys_sethostname */
+	case 170:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setdomainname */
+	case 171:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_iopl */
+	case 172:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_ioperm */
+	case 173:
+		switch(ndx) {
+		case 0:
+			p = "unsigned int";
+			break;
+		case 1:
+			p = "unsigned int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_gettid */
+	case 186:
+		break;
+	/* linux_sys_setxattr */
+	case 188:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_lsetxattr */
+	case 189:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fsetxattr */
+	case 190:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getxattr */
+	case 191:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_lgetxattr */
+	case 192:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fgetxattr */
+	case 193:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_listxattr */
+	case 194:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_llistxattr */
+	case 195:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_flistxattr */
+	case 196:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_removexattr */
+	case 197:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_lremovexattr */
+	case 198:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fremovexattr */
+	case 199:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_tkill */
+	case 200:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_time */
+	case 201:
+		switch(ndx) {
+		case 0:
+			p = "linux_time_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_futex */
+	case 202:
+		switch(ndx) {
+		case 0:
+			p = "int *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "const struct linux_timespec *";
+			break;
+		case 4:
+			p = "int *";
+			break;
+		case 5:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_setaffinity */
+	case 203:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "unsigned int";
+			break;
+		case 2:
+			p = "unsigned long *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_getaffinity */
+	case 204:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "unsigned int";
+			break;
+		case 2:
+			p = "unsigned long *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getdents64 */
+	case 217:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_dirent64 *";
+			break;
+		case 2:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_set_tid_address */
+	case 218:
+		switch(ndx) {
+		case 0:
+			p = "int *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fadvise64 */
+	case 221:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "off_t";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_clock_settime */
+	case 227:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_clock_gettime */
+	case 228:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_clock_getres */
+	case 229:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_clock_nanosleep */
+	case 230:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "struct linux_timespec *";
+			break;
+		case 3:
+			p = "struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_exit_group */
+	case 231:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_tgkill */
+	case 234:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_50_sys_utimes */
+	case 235:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const struct timeval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_openat */
+	case 257:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mkdirat */
+	case 258:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_mknodat */
+	case 259:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "linux_umode_t";
+			break;
+		case 3:
+			p = "unsigned";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fchownat */
+	case 260:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "uid_t";
+			break;
+		case 3:
+			p = "gid_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fstatat64 */
+	case 262:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "struct linux_stat *";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_unlinkat */
+	case 263:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_renameat */
+	case 264:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_linkat */
+	case 265:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "const char *";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_symlinkat */
+	case 266:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_readlinkat */
+	case 267:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "char *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fchmodat */
+	case 268:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_faccessat */
+	case 269:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_ppoll */
+	case 271:
+		switch(ndx) {
+		case 0:
+			p = "struct pollfd *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "struct linux_timespec *";
+			break;
+		case 3:
+			p = "linux_sigset_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_set_robust_list */
+	case 273:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_robust_list_head *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_get_robust_list */
+	case 274:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_robust_list_head **";
+			break;
+		case 2:
+			p = "size_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_utimensat */
+	case 280:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "struct linux_timespec *";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_dup3 */
+	case 292:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_pipe2 */
+	case 293:
+		switch(ndx) {
+		case 0:
+			p = "int *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_nosys */
+	case 314:
+		break;
+	default:
+		break;
+	};
+	if (p != NULL)
+		strlcpy(desc, p, descsz);
+}
+static void
+systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
+{
+	const char *p = NULL;
+	switch (sysnum) {
+	/* sys_read */
+	case 0:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_write */
+	case 1:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_open */
+	case 2:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_close */
+	case 3:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_stat64 */
+	case 4:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fstat64 */
+	case 5:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_lstat64 */
+	case 6:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_poll */
+	case 7:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_sys_lseek */
+	case 8:
+		if (ndx == 0 || ndx == 1)
+			p = "long";
+		break;
+	/* linux_sys_mmap */
+	case 9:
+		if (ndx == 0 || ndx == 1)
+			p = "linux_off_t";
+		break;
+	/* linux_sys_mprotect */
+	case 10:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_munmap */
+	case 11:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_brk */
+	case 12:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_sigaction */
+	case 13:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_sigprocmask */
+	case 14:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_sigreturn */
+	case 15:
+	/* linux_sys_ioctl */
+	case 16:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_pread */
+	case 17:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_pwrite */
+	case 18:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_readv */
+	case 19:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_writev */
+	case 20:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_access */
+	case 21:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_pipe */
+	case 22:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_select */
+	case 23:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_yield */
+	case 24:
+	/* linux_sys_mremap */
+	case 25:
+		if (ndx == 0 || ndx == 1)
+			p = "void *";
+		break;
+	/* sys___msync13 */
+	case 26:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mincore */
+	case 27:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_madvise */
+	case 28:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#ifdef SYSVSHM
+	/* linux_sys_shmget */
+	case 29:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_shmat */
+	case 30:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_shmctl */
+	case 31:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* sys_dup */
+	case 32:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_dup2 */
+	case 33:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_pause */
+	case 34:
+	/* linux_sys_nanosleep */
+	case 35:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_50_sys_getitimer */
+	case 36:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_alarm */
+	case 37:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_50_sys_setitimer */
+	case 38:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getpid */
+	case 39:
+	/* linux_sys_socket */
+	case 41:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_connect */
+	case 42:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_accept */
+	case 43:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sendto */
+	case 44:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_recvfrom */
+	case 45:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_sendmsg */
+	case 46:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_recvmsg */
+	case 47:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_shutdown */
+	case 48:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_bind */
+	case 49:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_listen */
+	case 50:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getsockname */
+	case 51:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getpeername */
+	case 52:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_socketpair */
+	case 53:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setsockopt */
+	case 54:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getsockopt */
+	case 55:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_clone */
+	case 56:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fork */
+	case 57:
+	/* sys___vfork14 */
+	case 58:
+	/* sys_execve */
+	case 59:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_exit */
+	case 60:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_wait4 */
+	case 61:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_kill */
+	case 62:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_uname */
+	case 63:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#ifdef SYSVSEM
+	/* sys_semget */
+	case 64:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_semop */
+	case 65:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_semctl */
+	case 66:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+#ifdef SYSVSHM
+	/* sys_shmdt */
+	case 67:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+#ifdef SYSVMSG
+	/* sys_msgget */
+	case 68:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_msgsnd */
+	case 69:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_msgrcv */
+	case 70:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_msgctl */
+	case 71:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* linux_sys_fcntl */
+	case 72:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_flock */
+	case 73:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fsync */
+	case 74:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fdatasync */
+	case 75:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_truncate64 */
+	case 76:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_ftruncate64 */
+	case 77:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getdents */
+	case 78:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___getcwd */
+	case 79:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_chdir */
+	case 80:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fchdir */
+	case 81:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___posix_rename */
+	case 82:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mkdir */
+	case 83:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_rmdir */
+	case 84:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_creat */
+	case 85:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_link */
+	case 86:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_unlink */
+	case 87:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_symlink */
+	case 88:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_readlink */
+	case 89:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_chmod */
+	case 90:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fchmod */
+	case 91:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___posix_chown */
+	case 92:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___posix_fchown */
+	case 93:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___posix_lchown */
+	case 94:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_umask */
+	case 95:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_gettimeofday */
+	case 96:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getrlimit */
+	case 97:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_50_sys_getrusage */
+	case 98:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sysinfo */
+	case 99:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_times */
+	case 100:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_ptrace */
+	case 101:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getuid */
+	case 102:
+	/* sys_getgid */
+	case 104:
+	/* sys_setuid */
+	case 105:
+		if (ndx == 0 || ndx == 1)
+			p = "void";
+		break;
+	/* sys_setgid */
+	case 106:
+		if (ndx == 0 || ndx == 1)
+			p = "void";
+		break;
+	/* sys_geteuid */
+	case 107:
+	/* sys_getegid */
+	case 108:
+	/* sys_setpgid */
+	case 109:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getppid */
+	case 110:
+	/* sys_getpgrp */
+	case 111:
+	/* sys_setsid */
+	case 112:
+	/* sys_setreuid */
+	case 113:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setregid */
+	case 114:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getgroups */
+	case 115:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setgroups */
+	case 116:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setresuid */
+	case 117:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getresuid */
+	case 118:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setresgid */
+	case 119:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getresgid */
+	case 120:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getpgid */
+	case 121:
+		if (ndx == 0 || ndx == 1)
+			p = "pid_t";
+		break;
+	/* linux_sys_setfsuid */
+	case 122:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setfsgid */
+	case 123:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getsid */
+	case 124:
+		if (ndx == 0 || ndx == 1)
+			p = "pid_t";
+		break;
+	/* linux_sys_rt_sigpending */
+	case 127:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_sigtimedwait */
+	case 128:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_queueinfo */
+	case 129:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_sigsuspend */
+	case 130:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sigaltstack */
+	case 131:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_utime */
+	case 132:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_mknod */
+	case 133:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#ifdef EXEC_AOUT
+	/* linux_sys_uselib */
+	case 134:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* linux_sys_personality */
+	case 135:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_statfs */
+	case 137:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fstatfs */
+	case 138:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getpriority */
+	case 140:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setpriority */
+	case 141:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_setparam */
+	case 142:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_getparam */
+	case 143:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_setscheduler */
+	case 144:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_getscheduler */
+	case 145:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_get_priority_max */
+	case 146:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_get_priority_min */
+	case 147:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mlock */
+	case 149:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_munlock */
+	case 150:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mlockall */
+	case 151:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_munlockall */
+	case 152:
+	/* linux_sys_modify_ldt */
+	case 154:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys___sysctl */
+	case 156:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_arch_prctl */
+	case 158:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setrlimit */
+	case 160:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_chroot */
+	case 161:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sync */
+	case 162:
+	/* sys_acct */
+	case 163:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_settimeofday */
+	case 164:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_swapon */
+	case 167:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_swapoff */
+	case 168:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_reboot */
+	case 169:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_sys_sethostname */
+	case 170:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setdomainname */
+	case 171:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_iopl */
+	case 172:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_ioperm */
+	case 173:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_gettid */
+	case 186:
+	/* linux_sys_setxattr */
+	case 188:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_lsetxattr */
+	case 189:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fsetxattr */
+	case 190:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getxattr */
+	case 191:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_lgetxattr */
+	case 192:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_fgetxattr */
+	case 193:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_listxattr */
+	case 194:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_llistxattr */
+	case 195:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_flistxattr */
+	case 196:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_removexattr */
+	case 197:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_lremovexattr */
+	case 198:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fremovexattr */
+	case 199:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_tkill */
+	case 200:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_time */
+	case 201:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_futex */
+	case 202:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_setaffinity */
+	case 203:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_getaffinity */
+	case 204:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getdents64 */
+	case 217:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_set_tid_address */
+	case 218:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fadvise64 */
+	case 221:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_clock_settime */
+	case 227:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_clock_gettime */
+	case 228:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_clock_getres */
+	case 229:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_clock_nanosleep */
+	case 230:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_exit_group */
+	case 231:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_tgkill */
+	case 234:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_50_sys_utimes */
+	case 235:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_openat */
+	case 257:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mkdirat */
+	case 258:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_mknodat */
+	case 259:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fchownat */
+	case 260:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fstatat64 */
+	case 262:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_unlinkat */
+	case 263:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_renameat */
+	case 264:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_linkat */
+	case 265:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_symlinkat */
+	case 266:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_readlinkat */
+	case 267:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fchmodat */
+	case 268:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_faccessat */
+	case 269:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_ppoll */
+	case 271:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_set_robust_list */
+	case 273:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_get_robust_list */
+	case 274:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_utimensat */
+	case 280:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_dup3 */
+	case 292:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_pipe2 */
+	case 293:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_nosys */
+	case 314:
+	default:
+		break;
+	};
+	if (p != NULL)
+		strlcpy(desc, p, descsz);
+}
diff --git a/sys/compat/linux/arch/amd64/syscalls.conf b/sys/compat/linux/arch/amd64/syscalls.conf
index e0dd425..6339943 100644
--- a/sys/compat/linux/arch/amd64/syscalls.conf
+++ b/sys/compat/linux/arch/amd64/syscalls.conf
@@ -1,9 +1,10 @@
-#	$NetBSD: syscalls.conf,v 1.2 2005/12/11 12:20:14 christos Exp $
+#	$NetBSD: syscalls.conf,v 1.3 2015/03/07 15:22:38 christos Exp $
 
 sysnames="linux_syscalls.c"
 sysnumhdr="linux_syscall.h"
 syssw="linux_sysent.c"
 sysarghdr="linux_syscallargs.h"
+systrace="linux_systrace_args.c"
 compatopts=""
 libcompatopts=""
 
diff --git a/sys/compat/linux/arch/amd64/syscalls.master b/sys/compat/linux/arch/amd64/syscalls.master
index 4d7e6d6..13a8ba4 100644
--- a/sys/compat/linux/arch/amd64/syscalls.master
+++ b/sys/compat/linux/arch/amd64/syscalls.master
@@ -1,4 +1,4 @@
-	$NetBSD: syscalls.master,v 1.52 2014/05/31 08:51:19 njoly Exp $
+	$NetBSD: syscalls.master,v 1.54 2015/03/07 03:25:19 christos Exp $
 
 ;	@(#)syscalls.master	8.1 (Berkeley) 7/19/93
 
@@ -234,8 +234,8 @@
 85	STD		{ int|linux_sys||creat(const char *path, linux_umode_t mode); }
 86	NOARGS		{ int|sys||link(const char *path, const char *link); }
 87	STD		{ int|linux_sys||unlink(const char *path); }
-88	NOARGS		{ int|sys||symlink(const char *path, const char *to); }
-89	NOARGS		{ int|sys||readlink(const char *name, char *buf, \
+88	NOARGS		{ int|sys||symlink(const char *path, const char *link); }
+89	NOARGS		{ int|sys||readlink(const char *path, char *buf, \
 			    int count); }
 90	NOARGS		{ int|sys||chmod(const char *path, linux_umode_t mode); }
 91	NOARGS		{ int|sys||fchmod(int fd, linux_umode_t mode); }
diff --git a/sys/compat/linux/arch/arm/linux_syscall.h b/sys/compat/linux/arch/arm/linux_syscall.h
index 9ac1dec..5d3e83d 100644
--- a/sys/compat/linux/arch/arm/linux_syscall.h
+++ b/sys/compat/linux/arch/arm/linux_syscall.h
@@ -1,10 +1,10 @@
-/* $NetBSD: linux_syscall.h,v 1.64 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.61 2014/05/31 08:51:19 njoly Exp
+ * created from	NetBSD: syscalls.master,v 1.63 2015/03/23 07:50:03 ozaki-r Exp
  */
 
 #ifndef _LINUX_SYS_SYSCALL_H_
diff --git a/sys/compat/linux/arch/arm/linux_syscallargs.h b/sys/compat/linux/arch/arm/linux_syscallargs.h
index 862ffd4..9ae71e4 100644
--- a/sys/compat/linux/arch/arm/linux_syscallargs.h
+++ b/sys/compat/linux/arch/arm/linux_syscallargs.h
@@ -1,10 +1,10 @@
-/* $NetBSD: linux_syscallargs.h,v 1.64 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.61 2014/05/31 08:51:19 njoly Exp
+ * created from	NetBSD: syscalls.master,v 1.63 2015/03/23 07:50:03 ozaki-r Exp
  */
 
 #ifndef _LINUX_SYS_SYSCALLARGS_H_
diff --git a/sys/compat/linux/arch/arm/linux_syscalls.c b/sys/compat/linux/arch/arm/linux_syscalls.c
index e62e216..29fd94c 100644
--- a/sys/compat/linux/arch/arm/linux_syscalls.c
+++ b/sys/compat/linux/arch/arm/linux_syscalls.c
@@ -1,14 +1,14 @@
-/* $NetBSD: linux_syscalls.c,v 1.64 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.61 2014/05/31 08:51:19 njoly Exp
+ * created from	NetBSD: syscalls.master,v 1.63 2015/03/23 07:50:03 ozaki-r Exp
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.64 2014/05/31 08:52:54 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include <sys/param.h>
@@ -25,6 +25,8 @@ __KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.64 2014/05/31 08:52:54 njoly Ex
 #include <compat/linux/common/linux_siginfo.h>
 #include <compat/linux/common/linux_machdep.h>
 #include <compat/linux/linux_syscallargs.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const linux_syscallnames[] = {
@@ -546,3 +548,525 @@ const char *const linux_syscallnames[] = {
 	/* 510 */	"# filler",
 	/* 511 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altlinux_syscallnames[] = {
+	/*   0 */	NULL, /* nosys */
+	/*   1 */	NULL, /* exit */
+	/*   2 */	NULL, /* fork */
+	/*   3 */	NULL, /* read */
+	/*   4 */	NULL, /* write */
+	/*   5 */	NULL, /* open */
+	/*   6 */	NULL, /* close */
+	/*   7 */	NULL, /* waitpid */
+	/*   8 */	NULL, /* creat */
+	/*   9 */	NULL, /* link */
+	/*  10 */	NULL, /* unlink */
+	/*  11 */	NULL, /* execve */
+	/*  12 */	NULL, /* chdir */
+	/*  13 */	NULL, /* time */
+	/*  14 */	NULL, /* mknod */
+	/*  15 */	NULL, /* chmod */
+	/*  16 */	NULL, /* lchown16 */
+	/*  17 */	NULL, /* obsolete break */
+	/*  18 */	NULL, /* obsolete ostat */
+	/*  19 */	NULL, /* lseek */
+	/*  20 */	NULL, /* getpid */
+	/*  21 */	NULL, /* unimplemented mount */
+	/*  22 */	NULL, /* obsolete umount */
+	/*  23 */	NULL, /* setuid */
+	/*  24 */	NULL, /* getuid */
+	/*  25 */	NULL, /* stime */
+	/*  26 */	NULL, /* ptrace */
+	/*  27 */	NULL, /* alarm */
+	/*  28 */	NULL, /* obsolete ofstat */
+	/*  29 */	NULL, /* pause */
+	/*  30 */	NULL, /* utime */
+	/*  31 */	NULL, /* obsolete stty */
+	/*  32 */	NULL, /* obsolete gtty */
+	/*  33 */	NULL, /* access */
+	/*  34 */	NULL, /* nice */
+	/*  35 */	NULL, /* obsolete ftime */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	NULL, /* kill */
+	/*  38 */	NULL, /* __posix_rename */
+	/*  39 */	NULL, /* mkdir */
+	/*  40 */	NULL, /* rmdir */
+	/*  41 */	NULL, /* dup */
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* times */
+	/*  44 */	NULL, /* obsolete prof */
+	/*  45 */	NULL, /* brk */
+	/*  46 */	NULL, /* setgid */
+	/*  47 */	NULL, /* getgid */
+	/*  48 */	NULL, /* signal */
+	/*  49 */	NULL, /* geteuid */
+	/*  50 */	NULL, /* getegid */
+	/*  51 */	NULL, /* acct */
+	/*  52 */	NULL, /* unimplemented umount */
+	/*  53 */	NULL, /* obsolete lock */
+	/*  54 */	NULL, /* ioctl */
+	/*  55 */	NULL, /* fcntl */
+	/*  56 */	NULL, /* obsolete mpx */
+	/*  57 */	NULL, /* setpgid */
+	/*  58 */	NULL, /* obsolete ulimit */
+	/*  59 */	NULL, /* oldolduname */
+	/*  60 */	NULL, /* umask */
+	/*  61 */	NULL, /* chroot */
+	/*  62 */	NULL, /* unimplemented ustat */
+	/*  63 */	NULL, /* dup2 */
+	/*  64 */	NULL, /* getppid */
+	/*  65 */	NULL, /* getpgrp */
+	/*  66 */	NULL, /* setsid */
+	/*  67 */	NULL, /* sigaction */
+	/*  68 */	NULL, /* siggetmask */
+	/*  69 */	NULL, /* sigsetmask */
+	/*  70 */	NULL, /* setreuid16 */
+	/*  71 */	NULL, /* setregid16 */
+	/*  72 */	NULL, /* sigsuspend */
+	/*  73 */	NULL, /* sigpending */
+	/*  74 */	NULL, /* sethostname */
+	/*  75 */	NULL, /* setrlimit */
+	/*  76 */	NULL, /* getrlimit */
+	/*  77 */	NULL, /* getrusage */
+	/*  78 */	NULL, /* gettimeofday */
+	/*  79 */	NULL, /* settimeofday */
+	/*  80 */	NULL, /* getgroups16 */
+	/*  81 */	NULL, /* setgroups16 */
+	/*  82 */	NULL, /* oldselect */
+	/*  83 */	NULL, /* symlink */
+	/*  84 */	"lstat",
+	/*  85 */	NULL, /* readlink */
+#ifdef EXEC_AOUT
+	/*  86 */	NULL, /* uselib */
+#else
+	/*  86 */	NULL, /* excluded uselib */
+#endif
+	/*  87 */	NULL, /* swapon */
+	/*  88 */	NULL, /* reboot */
+	/*  89 */	NULL, /* readdir */
+	/*  90 */	NULL, /* old_mmap */
+	/*  91 */	NULL, /* munmap */
+	/*  92 */	NULL, /* truncate */
+	/*  93 */	NULL, /* ftruncate */
+	/*  94 */	NULL, /* fchmod */
+	/*  95 */	NULL, /* fchown16 */
+	/*  96 */	NULL, /* getpriority */
+	/*  97 */	NULL, /* setpriority */
+	/*  98 */	NULL, /* profil */
+	/*  99 */	NULL, /* statfs */
+	/* 100 */	NULL, /* fstatfs */
+	/* 101 */	NULL, /* unimplemented */
+	/* 102 */	NULL, /* socketcall */
+	/* 103 */	NULL, /* unimplemented syslog */
+	/* 104 */	NULL, /* setitimer */
+	/* 105 */	NULL, /* getitimer */
+	/* 106 */	NULL, /* stat */
+	/* 107 */	NULL, /* lstat */
+	/* 108 */	NULL, /* fstat */
+	/* 109 */	NULL, /* olduname */
+	/* 110 */	NULL, /* unimplemented */
+	/* 111 */	NULL, /* unimplemented vhangup */
+	/* 112 */	NULL, /* unimplemented idle */
+	/* 113 */	NULL, /* unimplemented syscall */
+	/* 114 */	NULL, /* wait4 */
+	/* 115 */	NULL, /* swapoff */
+	/* 116 */	NULL, /* sysinfo */
+	/* 117 */	NULL, /* ipc */
+	/* 118 */	NULL, /* fsync */
+	/* 119 */	NULL, /* sigreturn */
+	/* 120 */	NULL, /* clone */
+	/* 121 */	NULL, /* setdomainname */
+	/* 122 */	NULL, /* uname */
+	/* 123 */	NULL, /* unimplemented modify_ldt */
+	/* 124 */	NULL, /* unimplemented adjtimex */
+	/* 125 */	NULL, /* mprotect */
+	/* 126 */	NULL, /* sigprocmask */
+	/* 127 */	NULL, /* unimplemented create_module */
+	/* 128 */	NULL, /* unimplemented init_module */
+	/* 129 */	NULL, /* unimplemented delete_module */
+	/* 130 */	NULL, /* unimplemented get_kernel_syms */
+	/* 131 */	NULL, /* unimplemented quotactl */
+	/* 132 */	NULL, /* getpgid */
+	/* 133 */	NULL, /* fchdir */
+	/* 134 */	NULL, /* unimplemented bdflush */
+	/* 135 */	NULL, /* unimplemented sysfs */
+	/* 136 */	NULL, /* personality */
+	/* 137 */	NULL, /* unimplemented afs_syscall */
+	/* 138 */	NULL, /* setfsuid */
+	/* 139 */	NULL, /* setfsgid */
+	/* 140 */	NULL, /* llseek */
+	/* 141 */	NULL, /* getdents */
+	/* 142 */	NULL, /* select */
+	/* 143 */	NULL, /* flock */
+	/* 144 */	"msync",
+	/* 145 */	NULL, /* readv */
+	/* 146 */	NULL, /* writev */
+	/* 147 */	NULL, /* getsid */
+	/* 148 */	NULL, /* fdatasync */
+	/* 149 */	NULL, /* __sysctl */
+	/* 150 */	NULL, /* mlock */
+	/* 151 */	NULL, /* munlock */
+	/* 152 */	NULL, /* mlockall */
+	/* 153 */	NULL, /* munlockall */
+	/* 154 */	NULL, /* sched_setparam */
+	/* 155 */	NULL, /* sched_getparam */
+	/* 156 */	NULL, /* sched_setscheduler */
+	/* 157 */	NULL, /* sched_getscheduler */
+	/* 158 */	NULL, /* sched_yield */
+	/* 159 */	NULL, /* sched_get_priority_max */
+	/* 160 */	NULL, /* sched_get_priority_min */
+	/* 161 */	NULL, /* unimplemented sched_rr_get_interval */
+	/* 162 */	NULL, /* nanosleep */
+	/* 163 */	NULL, /* mremap */
+	/* 164 */	NULL, /* setresuid16 */
+	/* 165 */	NULL, /* getresuid16 */
+	/* 166 */	NULL, /* unimplemented */
+	/* 167 */	NULL, /* unimplemented query_module */
+	/* 168 */	NULL, /* poll */
+	/* 169 */	NULL, /* unimplemented nfsservctl */
+	/* 170 */	NULL, /* setresgid16 */
+	/* 171 */	NULL, /* getresgid16 */
+	/* 172 */	NULL, /* unimplemented prctl */
+	/* 173 */	NULL, /* unimplemented rt_sigreturn */
+	/* 174 */	NULL, /* rt_sigaction */
+	/* 175 */	NULL, /* rt_sigprocmask */
+	/* 176 */	NULL, /* rt_sigpending */
+	/* 177 */	NULL, /* rt_sigtimedwait */
+	/* 178 */	NULL, /* rt_queueinfo */
+	/* 179 */	NULL, /* rt_sigsuspend */
+	/* 180 */	NULL, /* pread */
+	/* 181 */	NULL, /* pwrite */
+	/* 182 */	NULL, /* chown16 */
+	/* 183 */	NULL, /* __getcwd */
+	/* 184 */	NULL, /* unimplemented capget */
+	/* 185 */	NULL, /* unimplemented capset */
+	/* 186 */	NULL, /* sigaltstack */
+	/* 187 */	NULL, /* unimplemented sendfile */
+	/* 188 */	NULL, /* unimplemented getpmsg */
+	/* 189 */	NULL, /* unimplemented putpmsg */
+	/* 190 */	NULL, /* vfork */
+	/* 191 */	NULL, /* ugetrlimit */
+#define linux_sys_mmap2_args linux_sys_mmap_args
+	/* 192 */	NULL, /* mmap2 */
+	/* 193 */	NULL, /* truncate64 */
+	/* 194 */	NULL, /* ftruncate64 */
+	/* 195 */	NULL, /* stat64 */
+	/* 196 */	NULL, /* lstat64 */
+	/* 197 */	NULL, /* fstat64 */
+	/* 198 */	NULL, /* __posix_lchown */
+	/* 199 */	"getuid",
+	/* 200 */	"getgid",
+	/* 201 */	"geteuid",
+	/* 202 */	"getegid",
+	/* 203 */	"setreuid",
+	/* 204 */	"setregid",
+	/* 205 */	"getgroups",
+	/* 206 */	"setgroups",
+	/* 207 */	"__posix_fchown",
+	/* 208 */	"setresuid",
+	/* 209 */	"getresuid",
+	/* 210 */	"setresgid",
+	/* 211 */	"getresgid",
+	/* 212 */	"__posix_chown",
+	/* 213 */	"setuid",
+	/* 214 */	"setgid",
+	/* 215 */	"setfsuid",
+	/* 216 */	"setfsgid",
+	/* 217 */	NULL, /* getdents64 */
+	/* 218 */	NULL, /* unimplemented pivot_root */
+	/* 219 */	NULL, /* mincore */
+	/* 220 */	NULL, /* madvise */
+	/* 221 */	NULL, /* fcntl64 */
+	/* 222 */	NULL, /* unimplemented / * for tux * / */
+	/* 223 */	NULL, /* unimplemented / * unused * / */
+	/* 224 */	NULL, /* gettid */
+	/* 225 */	NULL, /* unimplemented readahead */
+	/* 226 */	NULL, /* setxattr */
+	/* 227 */	NULL, /* lsetxattr */
+	/* 228 */	NULL, /* fsetxattr */
+	/* 229 */	NULL, /* getxattr */
+	/* 230 */	NULL, /* lgetxattr */
+	/* 231 */	NULL, /* fgetxattr */
+	/* 232 */	NULL, /* listxattr */
+	/* 233 */	NULL, /* llistxattr */
+	/* 234 */	NULL, /* flistxattr */
+	/* 235 */	NULL, /* removexattr */
+	/* 236 */	NULL, /* lremovexattr */
+	/* 237 */	NULL, /* fremovexattr */
+	/* 238 */	NULL, /* tkill */
+	/* 239 */	NULL, /* unimplemented sendfile64 */
+	/* 240 */	NULL, /* futex */
+	/* 241 */	NULL, /* sched_setaffinity */
+	/* 242 */	NULL, /* sched_getaffinity */
+	/* 243 */	NULL, /* unimplemented io_setup */
+	/* 244 */	NULL, /* unimplemented io_destroy */
+	/* 245 */	NULL, /* unimplemented io_getevents */
+	/* 246 */	NULL, /* unimplemented io_submit */
+	/* 247 */	NULL, /* unimplemented io_cancel */
+	/* 248 */	NULL, /* exit_group */
+	/* 249 */	NULL, /* unimplemented lookup_dcookie */
+	/* 250 */	NULL, /* unimplemented epoll_create */
+	/* 251 */	NULL, /* unimplemented epoll_ctl */
+	/* 252 */	NULL, /* unimplemented epoll_wait */
+	/* 253 */	NULL, /* unimplemented remap_file_pages */
+	/* 254 */	NULL, /* unimplemented set_thread_area */
+	/* 255 */	NULL, /* unimplemented get_thread_area */
+	/* 256 */	NULL, /* set_tid_address */
+	/* 257 */	NULL, /* unimplemented timer_create */
+	/* 258 */	NULL, /* unimplemented timer_settime */
+	/* 259 */	NULL, /* unimplemented timer_gettime */
+	/* 260 */	NULL, /* unimplemented timer_getoverrun */
+	/* 261 */	NULL, /* unimplemented timer_delete */
+	/* 262 */	NULL, /* clock_settime */
+	/* 263 */	NULL, /* clock_gettime */
+	/* 264 */	NULL, /* clock_getres */
+	/* 265 */	NULL, /* clock_nanosleep */
+	/* 266 */	NULL, /* statfs64 */
+	/* 267 */	NULL, /* fstatfs64 */
+	/* 268 */	NULL, /* tgkill */
+	/* 269 */	NULL, /* utimes */
+	/* 270 */	NULL, /* fadvise64_64 */
+	/* 271 */	NULL, /* unimplemented pciconfig_iobase */
+	/* 272 */	NULL, /* unimplemented pciconfig_read */
+	/* 273 */	NULL, /* unimplemented pciconfig_write */
+	/* 274 */	NULL, /* unimplemented mq_open */
+	/* 275 */	NULL, /* unimplemented mq_unlink */
+	/* 276 */	NULL, /* unimplemented mq_timedsend */
+	/* 277 */	NULL, /* unimplemented mq_timedreceive */
+	/* 278 */	NULL, /* unimplemented mq_notify */
+	/* 279 */	NULL, /* unimplemented mq_getsetattr */
+	/* 280 */	NULL, /* unimplemented waitid */
+	/* 281 */	NULL, /* unimplemented socket */
+	/* 282 */	NULL, /* unimplemented bind */
+	/* 283 */	NULL, /* unimplemented connect */
+	/* 284 */	NULL, /* unimplemented listen */
+	/* 285 */	NULL, /* unimplemented accept */
+	/* 286 */	NULL, /* unimplemented getsockname */
+	/* 287 */	NULL, /* unimplemented getpeername */
+	/* 288 */	NULL, /* unimplemented socketpair */
+	/* 289 */	NULL, /* unimplemented send */
+	/* 290 */	NULL, /* unimplemented sendto */
+	/* 291 */	NULL, /* unimplemented recv */
+	/* 292 */	NULL, /* unimplemented recvfrom */
+	/* 293 */	NULL, /* unimplemented shutdown */
+	/* 294 */	NULL, /* unimplemented setsockopt */
+	/* 295 */	NULL, /* unimplemented getsockopt */
+	/* 296 */	NULL, /* unimplemented sendmsg */
+	/* 297 */	NULL, /* unimplemented recvmsg */
+	/* 298 */	NULL, /* unimplemented semop */
+	/* 299 */	NULL, /* unimplemented semget */
+	/* 300 */	NULL, /* unimplemented semctl */
+	/* 301 */	NULL, /* unimplemented msgsnd */
+	/* 302 */	NULL, /* unimplemented msgrcv */
+	/* 303 */	NULL, /* unimplemented msgget */
+	/* 304 */	NULL, /* unimplemented msgctl */
+	/* 305 */	NULL, /* unimplemented shmat */
+	/* 306 */	NULL, /* unimplemented shmdt */
+	/* 307 */	NULL, /* unimplemented shmget */
+	/* 308 */	NULL, /* unimplemented shmctl */
+	/* 309 */	NULL, /* unimplemented add_key */
+	/* 310 */	NULL, /* unimplemented request_key */
+	/* 311 */	NULL, /* unimplemented keyctl */
+	/* 312 */	NULL, /* unimplemented semtimedop */
+	/* 313 */	NULL, /* unimplemented vserver */
+	/* 314 */	NULL, /* unimplemented ioptio_set */
+	/* 315 */	NULL, /* unimplemented ioptio_get */
+	/* 316 */	NULL, /* unimplemented inotify_init */
+	/* 317 */	NULL, /* unimplemented inotify_add_watch */
+	/* 318 */	NULL, /* unimplemented inotify_rm_watch */
+	/* 319 */	NULL, /* unimplemented mbind */
+	/* 320 */	NULL, /* unimplemented get_mempolicy */
+	/* 321 */	NULL, /* unimplemented set_mempolicy */
+	/* 322 */	NULL, /* openat */
+	/* 323 */	NULL, /* mkdirat */
+	/* 324 */	NULL, /* mknodat */
+	/* 325 */	NULL, /* fchownat */
+	/* 326 */	NULL, /* unimplemented futimesat */
+	/* 327 */	NULL, /* fstatat64 */
+	/* 328 */	NULL, /* unlinkat */
+	/* 329 */	NULL, /* renameat */
+	/* 330 */	NULL, /* linkat */
+	/* 331 */	NULL, /* symlinkat */
+	/* 332 */	NULL, /* readlinkat */
+	/* 333 */	NULL, /* fchmodat */
+	/* 334 */	NULL, /* faccessat */
+	/* 335 */	NULL, /* unimplemented pselect6 */
+	/* 336 */	NULL, /* ppoll */
+	/* 337 */	NULL, /* unimplemented unshare */
+	/* 338 */	NULL, /* set_robust_list */
+	/* 339 */	NULL, /* get_robust_list */
+	/* 340 */	NULL, /* unimplemented splice */
+	/* 341 */	NULL, /* unimplemented sync_file_range2 */
+	/* 342 */	NULL, /* unimplemented tee */
+	/* 343 */	NULL, /* unimplemented vmsplice */
+	/* 344 */	NULL, /* unimplemented move_pages */
+	/* 345 */	NULL, /* unimplemented getcpu */
+	/* 346 */	NULL, /* unimplemented epoll_wait */
+	/* 347 */	NULL, /* unimplemented kexec_load */
+	/* 348 */	NULL, /* utimensat */
+	/* 349 */	NULL, /* unimplemented signalfd */
+	/* 350 */	NULL, /* unimplemented timerfd_create */
+	/* 351 */	NULL, /* unimplemented eventfd */
+	/* 352 */	NULL, /* unimplemented fallocate */
+	/* 353 */	NULL, /* unimplemented timerfd_settime */
+	/* 354 */	NULL, /* unimplemented timerfd_gettime */
+	/* 355 */	NULL, /* unimplemented signalfd4 */
+	/* 356 */	NULL, /* unimplemented eventfd2 */
+	/* 357 */	NULL, /* unimplemented epoll_create1 */
+	/* 358 */	NULL, /* dup3 */
+	/* 359 */	NULL, /* pipe2 */
+	/* 360 */	NULL, /* unimplemented inotify_init1 */
+	/* 361 */	NULL, /* unimplemented preadv */
+	/* 362 */	NULL, /* unimplemented pwritev */
+	/* 363 */	NULL, /* unimplemented rt_tgsigqueueinfo */
+	/* 364 */	NULL, /* unimplemented perf_counter_open */
+	/* 365 */	NULL, /* unimplemented recvmmsg */
+	/* 366 */	NULL, /* unimplemented */
+	/* 367 */	NULL, /* unimplemented */
+	/* 368 */	NULL, /* unimplemented */
+	/* 369 */	NULL, /* unimplemented */
+	/* 370 */	NULL, /* unimplemented */
+	/* 371 */	NULL, /* unimplemented */
+	/* 372 */	NULL, /* unimplemented */
+	/* 373 */	NULL, /* unimplemented */
+	/* 374 */	NULL, /* unimplemented */
+	/* 375 */	NULL, /* unimplemented */
+	/* 376 */	NULL, /* unimplemented */
+	/* 377 */	NULL, /* unimplemented */
+	/* 378 */	NULL, /* unimplemented */
+	/* 379 */	NULL, /* unimplemented */
+	/* 380 */	NULL, /* unimplemented */
+	/* 381 */	NULL, /* unimplemented */
+	/* 382 */	NULL, /* unimplemented */
+	/* 383 */	NULL, /* unimplemented */
+	/* 384 */	NULL, /* unimplemented / * base * / */
+	/* 385 */	NULL, /* breakpoint */
+	/* 386 */	NULL, /* cacheflush */
+	/* 387 */	NULL, /* unimplemented usr26 */
+	/* 388 */	NULL, /* unimplemented usr32 */
+	/* 389 */	NULL, /* set_tls */
+	/* 390 */	NULL, /* filler */
+	/* 391 */	NULL, /* filler */
+	/* 392 */	NULL, /* filler */
+	/* 393 */	NULL, /* filler */
+	/* 394 */	NULL, /* filler */
+	/* 395 */	NULL, /* filler */
+	/* 396 */	NULL, /* filler */
+	/* 397 */	NULL, /* filler */
+	/* 398 */	NULL, /* filler */
+	/* 399 */	NULL, /* filler */
+	/* 400 */	NULL, /* filler */
+	/* 401 */	NULL, /* filler */
+	/* 402 */	NULL, /* filler */
+	/* 403 */	NULL, /* filler */
+	/* 404 */	NULL, /* filler */
+	/* 405 */	NULL, /* filler */
+	/* 406 */	NULL, /* filler */
+	/* 407 */	NULL, /* filler */
+	/* 408 */	NULL, /* filler */
+	/* 409 */	NULL, /* filler */
+	/* 410 */	NULL, /* filler */
+	/* 411 */	NULL, /* filler */
+	/* 412 */	NULL, /* filler */
+	/* 413 */	NULL, /* filler */
+	/* 414 */	NULL, /* filler */
+	/* 415 */	NULL, /* filler */
+	/* 416 */	NULL, /* filler */
+	/* 417 */	NULL, /* filler */
+	/* 418 */	NULL, /* filler */
+	/* 419 */	NULL, /* filler */
+	/* 420 */	NULL, /* filler */
+	/* 421 */	NULL, /* filler */
+	/* 422 */	NULL, /* filler */
+	/* 423 */	NULL, /* filler */
+	/* 424 */	NULL, /* filler */
+	/* 425 */	NULL, /* filler */
+	/* 426 */	NULL, /* filler */
+	/* 427 */	NULL, /* filler */
+	/* 428 */	NULL, /* filler */
+	/* 429 */	NULL, /* filler */
+	/* 430 */	NULL, /* filler */
+	/* 431 */	NULL, /* filler */
+	/* 432 */	NULL, /* filler */
+	/* 433 */	NULL, /* filler */
+	/* 434 */	NULL, /* filler */
+	/* 435 */	NULL, /* filler */
+	/* 436 */	NULL, /* filler */
+	/* 437 */	NULL, /* filler */
+	/* 438 */	NULL, /* filler */
+	/* 439 */	NULL, /* filler */
+	/* 440 */	NULL, /* filler */
+	/* 441 */	NULL, /* filler */
+	/* 442 */	NULL, /* filler */
+	/* 443 */	NULL, /* filler */
+	/* 444 */	NULL, /* filler */
+	/* 445 */	NULL, /* filler */
+	/* 446 */	NULL, /* filler */
+	/* 447 */	NULL, /* filler */
+	/* 448 */	NULL, /* filler */
+	/* 449 */	NULL, /* filler */
+	/* 450 */	NULL, /* filler */
+	/* 451 */	NULL, /* filler */
+	/* 452 */	NULL, /* filler */
+	/* 453 */	NULL, /* filler */
+	/* 454 */	NULL, /* filler */
+	/* 455 */	NULL, /* filler */
+	/* 456 */	NULL, /* filler */
+	/* 457 */	NULL, /* filler */
+	/* 458 */	NULL, /* filler */
+	/* 459 */	NULL, /* filler */
+	/* 460 */	NULL, /* filler */
+	/* 461 */	NULL, /* filler */
+	/* 462 */	NULL, /* filler */
+	/* 463 */	NULL, /* filler */
+	/* 464 */	NULL, /* filler */
+	/* 465 */	NULL, /* filler */
+	/* 466 */	NULL, /* filler */
+	/* 467 */	NULL, /* filler */
+	/* 468 */	NULL, /* filler */
+	/* 469 */	NULL, /* filler */
+	/* 470 */	NULL, /* filler */
+	/* 471 */	NULL, /* filler */
+	/* 472 */	NULL, /* filler */
+	/* 473 */	NULL, /* filler */
+	/* 474 */	NULL, /* filler */
+	/* 475 */	NULL, /* filler */
+	/* 476 */	NULL, /* filler */
+	/* 477 */	NULL, /* filler */
+	/* 478 */	NULL, /* filler */
+	/* 479 */	NULL, /* filler */
+	/* 480 */	NULL, /* filler */
+	/* 481 */	NULL, /* filler */
+	/* 482 */	NULL, /* filler */
+	/* 483 */	NULL, /* filler */
+	/* 484 */	NULL, /* filler */
+	/* 485 */	NULL, /* filler */
+	/* 486 */	NULL, /* filler */
+	/* 487 */	NULL, /* filler */
+	/* 488 */	NULL, /* filler */
+	/* 489 */	NULL, /* filler */
+	/* 490 */	NULL, /* filler */
+	/* 491 */	NULL, /* filler */
+	/* 492 */	NULL, /* filler */
+	/* 493 */	NULL, /* filler */
+	/* 494 */	NULL, /* filler */
+	/* 495 */	NULL, /* filler */
+	/* 496 */	NULL, /* filler */
+	/* 497 */	NULL, /* filler */
+	/* 498 */	NULL, /* filler */
+	/* 499 */	NULL, /* filler */
+	/* 500 */	NULL, /* filler */
+	/* 501 */	NULL, /* filler */
+	/* 502 */	NULL, /* filler */
+	/* 503 */	NULL, /* filler */
+	/* 504 */	NULL, /* filler */
+	/* 505 */	NULL, /* filler */
+	/* 506 */	NULL, /* filler */
+	/* 507 */	NULL, /* filler */
+	/* 508 */	NULL, /* filler */
+	/* 509 */	NULL, /* filler */
+	/* 510 */	NULL, /* filler */
+	/* 511 */	NULL, /* filler */
+};
diff --git a/sys/compat/linux/arch/arm/linux_sysent.c b/sys/compat/linux/arch/arm/linux_sysent.c
index 21cc53d..a65b41d 100644
--- a/sys/compat/linux/arch/arm/linux_sysent.c
+++ b/sys/compat/linux/arch/arm/linux_sysent.c
@@ -1,14 +1,14 @@
-/* $NetBSD: linux_sysent.c,v 1.64 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.61 2014/05/31 08:51:19 njoly Exp
+ * created from	NetBSD: syscalls.master,v 1.63 2015/03/23 07:50:03 ozaki-r Exp
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.64 2014/05/31 08:52:54 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #include <sys/param.h>
 #include <sys/poll.h>
@@ -31,1033 +31,1033 @@ __KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.64 2014/05/31 08:52:54 njoly Exp
 
 struct sysent linux_sysent[] = {
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_nosys },	/* 0 = nosys */
+	    (sy_call_t *)linux_sys_nosys, 0, 0 },	/* 0 = nosys */
 	{ ns(struct linux_sys_exit_args), 0,
-	    (sy_call_t *)linux_sys_exit },	/* 1 = exit */
+	    (sy_call_t *)linux_sys_exit, 0, 0 },	/* 1 = exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct sys_read_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_read },		/* 3 = read */
+	    (sy_call_t *)sys_read, 0, 0 },		/* 3 = read */
 	{ ns(struct sys_write_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_write },		/* 4 = write */
+	    (sy_call_t *)sys_write, 0, 0 },		/* 4 = write */
 	{ ns(struct linux_sys_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_open },	/* 5 = open */
+	    (sy_call_t *)linux_sys_open, 0, 0 },	/* 5 = open */
 	{ ns(struct sys_close_args), 0,
-	    (sy_call_t *)sys_close },		/* 6 = close */
+	    (sy_call_t *)sys_close, 0, 0 },		/* 6 = close */
 	{ ns(struct linux_sys_waitpid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_waitpid },	/* 7 = waitpid */
+	    (sy_call_t *)linux_sys_waitpid, 0, 0 },	/* 7 = waitpid */
 	{ ns(struct linux_sys_creat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_creat },	/* 8 = creat */
+	    (sy_call_t *)linux_sys_creat, 0, 0 },	/* 8 = creat */
 	{ ns(struct sys_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_link },		/* 9 = link */
+	    (sy_call_t *)sys_link, 0, 0 },		/* 9 = link */
 	{ ns(struct linux_sys_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_unlink },	/* 10 = unlink */
+	    (sy_call_t *)linux_sys_unlink, 0, 0 },	/* 10 = unlink */
 	{ ns(struct sys_execve_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_execve },		/* 11 = execve */
+	    (sy_call_t *)sys_execve, 0, 0 },		/* 11 = execve */
 	{ ns(struct sys_chdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chdir },		/* 12 = chdir */
+	    (sy_call_t *)sys_chdir, 0, 0 },		/* 12 = chdir */
 	{ ns(struct linux_sys_time_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_time },	/* 13 = time */
+	    (sy_call_t *)linux_sys_time, 0, 0 },	/* 13 = time */
 	{ ns(struct linux_sys_mknod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mknod },	/* 14 = mknod */
+	    (sy_call_t *)linux_sys_mknod, 0, 0 },	/* 14 = mknod */
 	{ ns(struct sys_chmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chmod },		/* 15 = chmod */
+	    (sy_call_t *)sys_chmod, 0, 0 },		/* 15 = chmod */
 	{ ns(struct linux_sys_lchown16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lchown16 },	/* 16 = lchown16 */
+	    (sy_call_t *)linux_sys_lchown16, 0, 0 },	/* 16 = lchown16 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 17 = obsolete break */
+	    linux_sys_nosys, 0, 0 },			/* 17 = obsolete break */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 18 = obsolete ostat */
+	    linux_sys_nosys, 0, 0 },			/* 18 = obsolete ostat */
 	{ ns(struct compat_43_sys_lseek_args), 0,
-	    (sy_call_t *)compat_43_sys_lseek },	/* 19 = lseek */
+	    (sy_call_t *)compat_43_sys_lseek, 0, 0 },	/* 19 = lseek */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid },		/* 20 = getpid */
+	    (sy_call_t *)sys_getpid, 0, 0 },		/* 20 = getpid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 21 = unimplemented mount */
+	    linux_sys_nosys, 0, 0 },			/* 21 = unimplemented mount */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 22 = obsolete umount */
+	    linux_sys_nosys, 0, 0 },			/* 22 = obsolete umount */
 	{ ns(struct sys_setuid_args), 0,
-	    (sy_call_t *)sys_setuid },		/* 23 = setuid */
+	    (sy_call_t *)sys_setuid, 0, 0 },		/* 23 = setuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid },		/* 24 = getuid */
+	    (sy_call_t *)sys_getuid, 0, 0 },		/* 24 = getuid */
 	{ ns(struct linux_sys_stime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stime },	/* 25 = stime */
+	    (sy_call_t *)linux_sys_stime, 0, 0 },	/* 25 = stime */
 	{ ns(struct linux_sys_ptrace_args), 0,
-	    (sy_call_t *)linux_sys_ptrace },	/* 26 = ptrace */
+	    (sy_call_t *)linux_sys_ptrace, 0, 0 },	/* 26 = ptrace */
 	{ ns(struct linux_sys_alarm_args), 0,
-	    (sy_call_t *)linux_sys_alarm },	/* 27 = alarm */
+	    (sy_call_t *)linux_sys_alarm, 0, 0 },	/* 27 = alarm */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 28 = obsolete ofstat */
+	    linux_sys_nosys, 0, 0 },			/* 28 = obsolete ofstat */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_pause },	/* 29 = pause */
+	    (sy_call_t *)linux_sys_pause, 0, 0 },	/* 29 = pause */
 	{ ns(struct linux_sys_utime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_utime },	/* 30 = utime */
+	    (sy_call_t *)linux_sys_utime, 0, 0 },	/* 30 = utime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 31 = obsolete stty */
+	    linux_sys_nosys, 0, 0 },			/* 31 = obsolete stty */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 32 = obsolete gtty */
+	    linux_sys_nosys, 0, 0 },			/* 32 = obsolete gtty */
 	{ ns(struct sys_access_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_access },		/* 33 = access */
+	    (sy_call_t *)sys_access, 0, 0 },		/* 33 = access */
 	{ ns(struct linux_sys_nice_args), 0,
-	    (sy_call_t *)linux_sys_nice },	/* 34 = nice */
+	    (sy_call_t *)linux_sys_nice, 0, 0 },	/* 34 = nice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 35 = obsolete ftime */
+	    linux_sys_nosys, 0, 0 },			/* 35 = obsolete ftime */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct linux_sys_kill_args), 0,
-	    (sy_call_t *)linux_sys_kill },	/* 37 = kill */
+	    (sy_call_t *)linux_sys_kill, 0, 0 },	/* 37 = kill */
 	{ ns(struct sys___posix_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_rename },	/* 38 = __posix_rename */
+	    (sy_call_t *)sys___posix_rename, 0, 0 },	/* 38 = __posix_rename */
 	{ ns(struct sys_mkdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdir },		/* 39 = mkdir */
+	    (sy_call_t *)sys_mkdir, 0, 0 },		/* 39 = mkdir */
 	{ ns(struct sys_rmdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rmdir },		/* 40 = rmdir */
+	    (sy_call_t *)sys_rmdir, 0, 0 },		/* 40 = rmdir */
 	{ ns(struct sys_dup_args), 0,
-	    (sy_call_t *)sys_dup },		/* 41 = dup */
+	    (sy_call_t *)sys_dup, 0, 0 },		/* 41 = dup */
 	{ ns(struct linux_sys_pipe_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pipe },	/* 42 = pipe */
+	    (sy_call_t *)linux_sys_pipe, 0, 0 },	/* 42 = pipe */
 	{ ns(struct linux_sys_times_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_times },	/* 43 = times */
+	    (sy_call_t *)linux_sys_times, 0, 0 },	/* 43 = times */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 44 = obsolete prof */
+	    linux_sys_nosys, 0, 0 },			/* 44 = obsolete prof */
 	{ ns(struct linux_sys_brk_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_brk },	/* 45 = brk */
+	    (sy_call_t *)linux_sys_brk, 0, 0 },	/* 45 = brk */
 	{ ns(struct sys_setgid_args), 0,
-	    (sy_call_t *)sys_setgid },		/* 46 = setgid */
+	    (sy_call_t *)sys_setgid, 0, 0 },		/* 46 = setgid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid },		/* 47 = getgid */
+	    (sy_call_t *)sys_getgid, 0, 0 },		/* 47 = getgid */
 	{ ns(struct linux_sys_signal_args), 0,
-	    (sy_call_t *)linux_sys_signal },	/* 48 = signal */
+	    (sy_call_t *)linux_sys_signal, 0, 0 },	/* 48 = signal */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_geteuid },		/* 49 = geteuid */
+	    (sy_call_t *)sys_geteuid, 0, 0 },		/* 49 = geteuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getegid },		/* 50 = getegid */
+	    (sy_call_t *)sys_getegid, 0, 0 },		/* 50 = getegid */
 	{ ns(struct sys_acct_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_acct },		/* 51 = acct */
+	    (sy_call_t *)sys_acct, 0, 0 },		/* 51 = acct */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 52 = unimplemented umount */
+	    linux_sys_nosys, 0, 0 },			/* 52 = unimplemented umount */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 53 = obsolete lock */
+	    linux_sys_nosys, 0, 0 },			/* 53 = obsolete lock */
 	{ ns(struct linux_sys_ioctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ioctl },	/* 54 = ioctl */
+	    (sy_call_t *)linux_sys_ioctl, 0, 0 },	/* 54 = ioctl */
 	{ ns(struct linux_sys_fcntl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fcntl },	/* 55 = fcntl */
+	    (sy_call_t *)linux_sys_fcntl, 0, 0 },	/* 55 = fcntl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 56 = obsolete mpx */
+	    linux_sys_nosys, 0, 0 },			/* 56 = obsolete mpx */
 	{ ns(struct sys_setpgid_args), 0,
-	    (sy_call_t *)sys_setpgid },		/* 57 = setpgid */
+	    (sy_call_t *)sys_setpgid, 0, 0 },		/* 57 = setpgid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 58 = obsolete ulimit */
+	    linux_sys_nosys, 0, 0 },			/* 58 = obsolete ulimit */
 	{ ns(struct linux_sys_oldolduname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_oldolduname },/* 59 = oldolduname */
+	    (sy_call_t *)linux_sys_oldolduname, 0, 0 },/* 59 = oldolduname */
 	{ ns(struct sys_umask_args), 0,
-	    (sy_call_t *)sys_umask },		/* 60 = umask */
+	    (sy_call_t *)sys_umask, 0, 0 },		/* 60 = umask */
 	{ ns(struct sys_chroot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chroot },		/* 61 = chroot */
+	    (sy_call_t *)sys_chroot, 0, 0 },		/* 61 = chroot */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 62 = unimplemented ustat */
+	    linux_sys_nosys, 0, 0 },			/* 62 = unimplemented ustat */
 	{ ns(struct sys_dup2_args), 0,
-	    (sy_call_t *)sys_dup2 },		/* 63 = dup2 */
+	    (sy_call_t *)sys_dup2, 0, 0 },		/* 63 = dup2 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getppid },		/* 64 = getppid */
+	    (sy_call_t *)sys_getppid, 0, 0 },		/* 64 = getppid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpgrp },		/* 65 = getpgrp */
+	    (sy_call_t *)sys_getpgrp, 0, 0 },		/* 65 = getpgrp */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_setsid },		/* 66 = setsid */
+	    (sy_call_t *)sys_setsid, 0, 0 },		/* 66 = setsid */
 	{ ns(struct linux_sys_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigaction },	/* 67 = sigaction */
+	    (sy_call_t *)linux_sys_sigaction, 0, 0 },	/* 67 = sigaction */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_siggetmask },/* 68 = siggetmask */
+	    (sy_call_t *)linux_sys_siggetmask, 0, 0 },/* 68 = siggetmask */
 	{ ns(struct linux_sys_sigsetmask_args), 0,
-	    (sy_call_t *)linux_sys_sigsetmask },/* 69 = sigsetmask */
+	    (sy_call_t *)linux_sys_sigsetmask, 0, 0 },/* 69 = sigsetmask */
 	{ ns(struct linux_sys_setreuid16_args), 0,
-	    (sy_call_t *)linux_sys_setreuid16 },/* 70 = setreuid16 */
+	    (sy_call_t *)linux_sys_setreuid16, 0, 0 },/* 70 = setreuid16 */
 	{ ns(struct linux_sys_setregid16_args), 0,
-	    (sy_call_t *)linux_sys_setregid16 },/* 71 = setregid16 */
+	    (sy_call_t *)linux_sys_setregid16, 0, 0 },/* 71 = setregid16 */
 	{ ns(struct linux_sys_sigsuspend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigsuspend },/* 72 = sigsuspend */
+	    (sy_call_t *)linux_sys_sigsuspend, 0, 0 },/* 72 = sigsuspend */
 	{ ns(struct linux_sys_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigpending },/* 73 = sigpending */
+	    (sy_call_t *)linux_sys_sigpending, 0, 0 },/* 73 = sigpending */
 	{ ns(struct compat_43_sys_sethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sethostname },/* 74 = sethostname */
+	    (sy_call_t *)compat_43_sys_sethostname, 0, 0 },/* 74 = sethostname */
 	{ ns(struct linux_sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setrlimit },	/* 75 = setrlimit */
+	    (sy_call_t *)linux_sys_setrlimit, 0, 0 },	/* 75 = setrlimit */
 	{ ns(struct linux_sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getrlimit },	/* 76 = getrlimit */
+	    (sy_call_t *)linux_sys_getrlimit, 0, 0 },	/* 76 = getrlimit */
 	{ ns(struct compat_50_sys_getrusage_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getrusage },/* 77 = getrusage */
+	    (sy_call_t *)compat_50_sys_getrusage, 0, 0 },/* 77 = getrusage */
 	{ ns(struct linux_sys_gettimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_gettimeofday },/* 78 = gettimeofday */
+	    (sy_call_t *)linux_sys_gettimeofday, 0, 0 },/* 78 = gettimeofday */
 	{ ns(struct linux_sys_settimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_settimeofday },/* 79 = settimeofday */
+	    (sy_call_t *)linux_sys_settimeofday, 0, 0 },/* 79 = settimeofday */
 	{ ns(struct linux_sys_getgroups16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getgroups16 },/* 80 = getgroups16 */
+	    (sy_call_t *)linux_sys_getgroups16, 0, 0 },/* 80 = getgroups16 */
 	{ ns(struct linux_sys_setgroups16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setgroups16 },/* 81 = setgroups16 */
+	    (sy_call_t *)linux_sys_setgroups16, 0, 0 },/* 81 = setgroups16 */
 	{ ns(struct linux_sys_oldselect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_oldselect },	/* 82 = oldselect */
+	    (sy_call_t *)linux_sys_oldselect, 0, 0 },	/* 82 = oldselect */
 	{ ns(struct sys_symlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlink },		/* 83 = symlink */
+	    (sy_call_t *)sys_symlink, 0, 0 },		/* 83 = symlink */
 	{ ns(struct compat_43_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_lstat },	/* 84 = oolstat */
+	    (sy_call_t *)compat_43_sys_lstat, 0, 0 },	/* 84 = oolstat */
 	{ ns(struct sys_readlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlink },	/* 85 = readlink */
+	    (sy_call_t *)sys_readlink, 0, 0 },	/* 85 = readlink */
 #ifdef EXEC_AOUT
 	{ ns(struct linux_sys_uselib_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_uselib },	/* 86 = uselib */
+	    (sy_call_t *)linux_sys_uselib, 0, 0 },	/* 86 = uselib */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 86 = excluded uselib */
+	    linux_sys_nosys, 0, 0 },			/* 86 = excluded uselib */
 #endif
 	{ ns(struct linux_sys_swapon_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_swapon },	/* 87 = swapon */
+	    (sy_call_t *)linux_sys_swapon, 0, 0 },	/* 87 = swapon */
 	{ ns(struct linux_sys_reboot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_reboot },	/* 88 = reboot */
+	    (sy_call_t *)linux_sys_reboot, 0, 0 },	/* 88 = reboot */
 	{ ns(struct linux_sys_readdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_readdir },	/* 89 = readdir */
+	    (sy_call_t *)linux_sys_readdir, 0, 0 },	/* 89 = readdir */
 	{ ns(struct linux_sys_old_mmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_old_mmap },	/* 90 = old_mmap */
+	    (sy_call_t *)linux_sys_old_mmap, 0, 0 },	/* 90 = old_mmap */
 	{ ns(struct sys_munmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munmap },		/* 91 = munmap */
+	    (sy_call_t *)sys_munmap, 0, 0 },		/* 91 = munmap */
 	{ ns(struct compat_43_sys_truncate_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_truncate },/* 92 = truncate */
+	    (sy_call_t *)compat_43_sys_truncate, 0, 0 },/* 92 = truncate */
 	{ ns(struct compat_43_sys_ftruncate_args), 0,
-	    (sy_call_t *)compat_43_sys_ftruncate },/* 93 = ftruncate */
+	    (sy_call_t *)compat_43_sys_ftruncate, 0, 0 },/* 93 = ftruncate */
 	{ ns(struct sys_fchmod_args), 0,
-	    (sy_call_t *)sys_fchmod },		/* 94 = fchmod */
+	    (sy_call_t *)sys_fchmod, 0, 0 },		/* 94 = fchmod */
 	{ ns(struct linux_sys_fchown16_args), 0,
-	    (sy_call_t *)linux_sys_fchown16 },	/* 95 = fchown16 */
+	    (sy_call_t *)linux_sys_fchown16, 0, 0 },	/* 95 = fchown16 */
 	{ ns(struct linux_sys_getpriority_args), 0,
-	    (sy_call_t *)linux_sys_getpriority },/* 96 = getpriority */
+	    (sy_call_t *)linux_sys_getpriority, 0, 0 },/* 96 = getpriority */
 	{ ns(struct sys_setpriority_args), 0,
-	    (sy_call_t *)sys_setpriority },	/* 97 = setpriority */
+	    (sy_call_t *)sys_setpriority, 0, 0 },	/* 97 = setpriority */
 	{ ns(struct sys_profil_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_profil },		/* 98 = profil */
+	    (sy_call_t *)sys_profil, 0, 0 },		/* 98 = profil */
 	{ ns(struct linux_sys_statfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_statfs },	/* 99 = statfs */
+	    (sy_call_t *)linux_sys_statfs, 0, 0 },	/* 99 = statfs */
 	{ ns(struct linux_sys_fstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatfs },	/* 100 = fstatfs */
+	    (sy_call_t *)linux_sys_fstatfs, 0, 0 },	/* 100 = fstatfs */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 101 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 101 = unimplemented */
 	{ ns(struct linux_sys_socketcall_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_socketcall },/* 102 = socketcall */
+	    (sy_call_t *)linux_sys_socketcall, 0, 0 },/* 102 = socketcall */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 103 = unimplemented syslog */
+	    linux_sys_nosys, 0, 0 },			/* 103 = unimplemented syslog */
 	{ ns(struct compat_50_sys_setitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_setitimer },/* 104 = setitimer */
+	    (sy_call_t *)compat_50_sys_setitimer, 0, 0 },/* 104 = setitimer */
 	{ ns(struct compat_50_sys_getitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getitimer },/* 105 = getitimer */
+	    (sy_call_t *)compat_50_sys_getitimer, 0, 0 },/* 105 = getitimer */
 	{ ns(struct linux_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stat },	/* 106 = stat */
+	    (sy_call_t *)linux_sys_stat, 0, 0 },	/* 106 = stat */
 	{ ns(struct linux_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lstat },	/* 107 = lstat */
+	    (sy_call_t *)linux_sys_lstat, 0, 0 },	/* 107 = lstat */
 	{ ns(struct linux_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstat },	/* 108 = fstat */
+	    (sy_call_t *)linux_sys_fstat, 0, 0 },	/* 108 = fstat */
 	{ ns(struct linux_sys_olduname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_olduname },	/* 109 = olduname */
+	    (sy_call_t *)linux_sys_olduname, 0, 0 },	/* 109 = olduname */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 110 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 110 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 111 = unimplemented vhangup */
+	    linux_sys_nosys, 0, 0 },			/* 111 = unimplemented vhangup */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 112 = unimplemented idle */
+	    linux_sys_nosys, 0, 0 },			/* 112 = unimplemented idle */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 113 = unimplemented syscall */
+	    linux_sys_nosys, 0, 0 },			/* 113 = unimplemented syscall */
 	{ ns(struct linux_sys_wait4_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_wait4 },	/* 114 = wait4 */
+	    (sy_call_t *)linux_sys_wait4, 0, 0 },	/* 114 = wait4 */
 	{ ns(struct linux_sys_swapoff_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_swapoff },	/* 115 = swapoff */
+	    (sy_call_t *)linux_sys_swapoff, 0, 0 },	/* 115 = swapoff */
 	{ ns(struct linux_sys_sysinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sysinfo },	/* 116 = sysinfo */
+	    (sy_call_t *)linux_sys_sysinfo, 0, 0 },	/* 116 = sysinfo */
 	{ ns(struct linux_sys_ipc_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ipc },	/* 117 = ipc */
+	    (sy_call_t *)linux_sys_ipc, 0, 0 },	/* 117 = ipc */
 	{ ns(struct sys_fsync_args), 0,
-	    (sy_call_t *)sys_fsync },		/* 118 = fsync */
+	    (sy_call_t *)sys_fsync, 0, 0 },		/* 118 = fsync */
 	{ ns(struct linux_sys_sigreturn_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigreturn },	/* 119 = sigreturn */
+	    (sy_call_t *)linux_sys_sigreturn, 0, 0 },	/* 119 = sigreturn */
 	{ ns(struct linux_sys_clone_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clone },	/* 120 = clone */
+	    (sy_call_t *)linux_sys_clone, 0, 0 },	/* 120 = clone */
 	{ ns(struct linux_sys_setdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setdomainname },/* 121 = setdomainname */
+	    (sy_call_t *)linux_sys_setdomainname, 0, 0 },/* 121 = setdomainname */
 	{ ns(struct linux_sys_uname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_uname },	/* 122 = uname */
+	    (sy_call_t *)linux_sys_uname, 0, 0 },	/* 122 = uname */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 123 = unimplemented modify_ldt */
+	    linux_sys_nosys, 0, 0 },			/* 123 = unimplemented modify_ldt */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 124 = unimplemented adjtimex */
+	    linux_sys_nosys, 0, 0 },			/* 124 = unimplemented adjtimex */
 	{ ns(struct linux_sys_mprotect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mprotect },	/* 125 = mprotect */
+	    (sy_call_t *)linux_sys_mprotect, 0, 0 },	/* 125 = mprotect */
 	{ ns(struct linux_sys_sigprocmask_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigprocmask },/* 126 = sigprocmask */
+	    (sy_call_t *)linux_sys_sigprocmask, 0, 0 },/* 126 = sigprocmask */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 127 = unimplemented create_module */
+	    linux_sys_nosys, 0, 0 },			/* 127 = unimplemented create_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 128 = unimplemented init_module */
+	    linux_sys_nosys, 0, 0 },			/* 128 = unimplemented init_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 129 = unimplemented delete_module */
+	    linux_sys_nosys, 0, 0 },			/* 129 = unimplemented delete_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 130 = unimplemented get_kernel_syms */
+	    linux_sys_nosys, 0, 0 },			/* 130 = unimplemented get_kernel_syms */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 131 = unimplemented quotactl */
+	    linux_sys_nosys, 0, 0 },			/* 131 = unimplemented quotactl */
 	{ ns(struct sys_getpgid_args), 0,
-	    (sy_call_t *)sys_getpgid },		/* 132 = getpgid */
+	    (sy_call_t *)sys_getpgid, 0, 0 },		/* 132 = getpgid */
 	{ ns(struct sys_fchdir_args), 0,
-	    (sy_call_t *)sys_fchdir },		/* 133 = fchdir */
+	    (sy_call_t *)sys_fchdir, 0, 0 },		/* 133 = fchdir */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 134 = unimplemented bdflush */
+	    linux_sys_nosys, 0, 0 },			/* 134 = unimplemented bdflush */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 135 = unimplemented sysfs */
+	    linux_sys_nosys, 0, 0 },			/* 135 = unimplemented sysfs */
 	{ ns(struct linux_sys_personality_args), 0,
-	    (sy_call_t *)linux_sys_personality },/* 136 = personality */
+	    (sy_call_t *)linux_sys_personality, 0, 0 },/* 136 = personality */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 137 = unimplemented afs_syscall */
+	    linux_sys_nosys, 0, 0 },			/* 137 = unimplemented afs_syscall */
 	{ ns(struct linux_sys_setfsuid_args), 0,
-	    (sy_call_t *)linux_sys_setfsuid },	/* 138 = setfsuid */
+	    (sy_call_t *)linux_sys_setfsuid, 0, 0 },	/* 138 = setfsuid */
 	{ ns(struct linux_sys_setfsgid_args), 0,
-	    (sy_call_t *)linux_sys_setfsgid },	/* 139 = setfsgid */
+	    (sy_call_t *)linux_sys_setfsgid, 0, 0 },	/* 139 = setfsgid */
 	{ ns(struct linux_sys_llseek_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_llseek },	/* 140 = llseek */
+	    (sy_call_t *)linux_sys_llseek, 0, 0 },	/* 140 = llseek */
 	{ ns(struct linux_sys_getdents_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getdents },	/* 141 = getdents */
+	    (sy_call_t *)linux_sys_getdents, 0, 0 },	/* 141 = getdents */
 	{ ns(struct linux_sys_select_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_select },	/* 142 = select */
+	    (sy_call_t *)linux_sys_select, 0, 0 },	/* 142 = select */
 	{ ns(struct sys_flock_args), 0,
-	    (sy_call_t *)sys_flock },		/* 143 = flock */
+	    (sy_call_t *)sys_flock, 0, 0 },		/* 143 = flock */
 	{ ns(struct sys___msync13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___msync13 },	/* 144 = __msync13 */
+	    (sy_call_t *)sys___msync13, 0, 0 },	/* 144 = __msync13 */
 	{ ns(struct sys_readv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readv },		/* 145 = readv */
+	    (sy_call_t *)sys_readv, 0, 0 },		/* 145 = readv */
 	{ ns(struct sys_writev_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_writev },		/* 146 = writev */
+	    (sy_call_t *)sys_writev, 0, 0 },		/* 146 = writev */
 	{ ns(struct sys_getsid_args), 0,
-	    (sy_call_t *)sys_getsid },		/* 147 = getsid */
+	    (sy_call_t *)sys_getsid, 0, 0 },		/* 147 = getsid */
 	{ ns(struct linux_sys_fdatasync_args), 0,
-	    (sy_call_t *)linux_sys_fdatasync },	/* 148 = fdatasync */
+	    (sy_call_t *)linux_sys_fdatasync, 0, 0 },	/* 148 = fdatasync */
 	{ ns(struct linux_sys___sysctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys___sysctl },	/* 149 = __sysctl */
+	    (sy_call_t *)linux_sys___sysctl, 0, 0 },	/* 149 = __sysctl */
 	{ ns(struct sys_mlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mlock },		/* 150 = mlock */
+	    (sy_call_t *)sys_mlock, 0, 0 },		/* 150 = mlock */
 	{ ns(struct sys_munlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munlock },		/* 151 = munlock */
+	    (sy_call_t *)sys_munlock, 0, 0 },		/* 151 = munlock */
 	{ ns(struct sys_mlockall_args), 0,
-	    (sy_call_t *)sys_mlockall },	/* 152 = mlockall */
+	    (sy_call_t *)sys_mlockall, 0, 0 },	/* 152 = mlockall */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_munlockall },	/* 153 = munlockall */
+	    (sy_call_t *)sys_munlockall, 0, 0 },	/* 153 = munlockall */
 	{ ns(struct linux_sys_sched_setparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setparam },/* 154 = sched_setparam */
+	    (sy_call_t *)linux_sys_sched_setparam, 0, 0 },/* 154 = sched_setparam */
 	{ ns(struct linux_sys_sched_getparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_getparam },/* 155 = sched_getparam */
+	    (sy_call_t *)linux_sys_sched_getparam, 0, 0 },/* 155 = sched_getparam */
 	{ ns(struct linux_sys_sched_setscheduler_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setscheduler },/* 156 = sched_setscheduler */
+	    (sy_call_t *)linux_sys_sched_setscheduler, 0, 0 },/* 156 = sched_setscheduler */
 	{ ns(struct linux_sys_sched_getscheduler_args), 0,
-	    (sy_call_t *)linux_sys_sched_getscheduler },/* 157 = sched_getscheduler */
+	    (sy_call_t *)linux_sys_sched_getscheduler, 0, 0 },/* 157 = sched_getscheduler */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_sched_yield },/* 158 = sched_yield */
+	    (sy_call_t *)linux_sys_sched_yield, 0, 0 },/* 158 = sched_yield */
 	{ ns(struct linux_sys_sched_get_priority_max_args), 0,
-	    (sy_call_t *)linux_sys_sched_get_priority_max },/* 159 = sched_get_priority_max */
+	    (sy_call_t *)linux_sys_sched_get_priority_max, 0, 0 },/* 159 = sched_get_priority_max */
 	{ ns(struct linux_sys_sched_get_priority_min_args), 0,
-	    (sy_call_t *)linux_sys_sched_get_priority_min },/* 160 = sched_get_priority_min */
+	    (sy_call_t *)linux_sys_sched_get_priority_min, 0, 0 },/* 160 = sched_get_priority_min */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 161 = unimplemented sched_rr_get_interval */
+	    linux_sys_nosys, 0, 0 },			/* 161 = unimplemented sched_rr_get_interval */
 	{ ns(struct linux_sys_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_nanosleep },	/* 162 = nanosleep */
+	    (sy_call_t *)linux_sys_nanosleep, 0, 0 },	/* 162 = nanosleep */
 	{ ns(struct linux_sys_mremap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mremap },	/* 163 = mremap */
+	    (sy_call_t *)linux_sys_mremap, 0, 0 },	/* 163 = mremap */
 	{ ns(struct linux_sys_setresuid16_args), 0,
-	    (sy_call_t *)linux_sys_setresuid16 },/* 164 = setresuid16 */
+	    (sy_call_t *)linux_sys_setresuid16, 0, 0 },/* 164 = setresuid16 */
 	{ ns(struct linux_sys_getresuid16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresuid16 },/* 165 = getresuid16 */
+	    (sy_call_t *)linux_sys_getresuid16, 0, 0 },/* 165 = getresuid16 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 166 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 166 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 167 = unimplemented query_module */
+	    linux_sys_nosys, 0, 0 },			/* 167 = unimplemented query_module */
 	{ ns(struct sys_poll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_poll },		/* 168 = poll */
+	    (sy_call_t *)sys_poll, 0, 0 },		/* 168 = poll */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 169 = unimplemented nfsservctl */
+	    linux_sys_nosys, 0, 0 },			/* 169 = unimplemented nfsservctl */
 	{ ns(struct linux_sys_setresgid16_args), 0,
-	    (sy_call_t *)linux_sys_setresgid16 },/* 170 = setresgid16 */
+	    (sy_call_t *)linux_sys_setresgid16, 0, 0 },/* 170 = setresgid16 */
 	{ ns(struct linux_sys_getresgid16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresgid16 },/* 171 = getresgid16 */
+	    (sy_call_t *)linux_sys_getresgid16, 0, 0 },/* 171 = getresgid16 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 172 = unimplemented prctl */
+	    linux_sys_nosys, 0, 0 },			/* 172 = unimplemented prctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 173 = unimplemented rt_sigreturn */
+	    linux_sys_nosys, 0, 0 },			/* 173 = unimplemented rt_sigreturn */
 	{ ns(struct linux_sys_rt_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigaction },/* 174 = rt_sigaction */
+	    (sy_call_t *)linux_sys_rt_sigaction, 0, 0 },/* 174 = rt_sigaction */
 	{ ns(struct linux_sys_rt_sigprocmask_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigprocmask },/* 175 = rt_sigprocmask */
+	    (sy_call_t *)linux_sys_rt_sigprocmask, 0, 0 },/* 175 = rt_sigprocmask */
 	{ ns(struct linux_sys_rt_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigpending },/* 176 = rt_sigpending */
+	    (sy_call_t *)linux_sys_rt_sigpending, 0, 0 },/* 176 = rt_sigpending */
 	{ ns(struct linux_sys_rt_sigtimedwait_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigtimedwait },/* 177 = rt_sigtimedwait */
+	    (sy_call_t *)linux_sys_rt_sigtimedwait, 0, 0 },/* 177 = rt_sigtimedwait */
 	{ ns(struct linux_sys_rt_queueinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_queueinfo },/* 178 = rt_queueinfo */
+	    (sy_call_t *)linux_sys_rt_queueinfo, 0, 0 },/* 178 = rt_queueinfo */
 	{ ns(struct linux_sys_rt_sigsuspend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigsuspend },/* 179 = rt_sigsuspend */
+	    (sy_call_t *)linux_sys_rt_sigsuspend, 0, 0 },/* 179 = rt_sigsuspend */
 	{ ns(struct linux_sys_pread_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG3_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pread },	/* 180 = pread */
+	    (sy_call_t *)linux_sys_pread, 0, 0 },	/* 180 = pread */
 	{ ns(struct linux_sys_pwrite_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG3_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pwrite },	/* 181 = pwrite */
+	    (sy_call_t *)linux_sys_pwrite, 0, 0 },	/* 181 = pwrite */
 	{ ns(struct linux_sys_chown16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_chown16 },	/* 182 = chown16 */
+	    (sy_call_t *)linux_sys_chown16, 0, 0 },	/* 182 = chown16 */
 	{ ns(struct sys___getcwd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getcwd },	/* 183 = __getcwd */
+	    (sy_call_t *)sys___getcwd, 0, 0 },	/* 183 = __getcwd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 184 = unimplemented capget */
+	    linux_sys_nosys, 0, 0 },			/* 184 = unimplemented capget */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 185 = unimplemented capset */
+	    linux_sys_nosys, 0, 0 },			/* 185 = unimplemented capset */
 	{ ns(struct linux_sys_sigaltstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigaltstack },/* 186 = sigaltstack */
+	    (sy_call_t *)linux_sys_sigaltstack, 0, 0 },/* 186 = sigaltstack */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 187 = unimplemented sendfile */
+	    linux_sys_nosys, 0, 0 },			/* 187 = unimplemented sendfile */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 188 = unimplemented getpmsg */
+	    linux_sys_nosys, 0, 0 },			/* 188 = unimplemented getpmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 189 = unimplemented putpmsg */
+	    linux_sys_nosys, 0, 0 },			/* 189 = unimplemented putpmsg */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys___vfork14 },	/* 190 = vfork */
+	    (sy_call_t *)sys___vfork14, 0, 0 },	/* 190 = vfork */
 	{ ns(struct linux_sys_ugetrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ugetrlimit },/* 191 = ugetrlimit */
+	    (sy_call_t *)linux_sys_ugetrlimit, 0, 0 },/* 191 = ugetrlimit */
 #define linux_sys_mmap2_args linux_sys_mmap_args
 	{ ns(struct linux_sys_mmap2_args), 0,
-	    (sy_call_t *)linux_sys_mmap2 },	/* 192 = mmap2 */
+	    (sy_call_t *)linux_sys_mmap2, 0, 0 },	/* 192 = mmap2 */
 	{ ns(struct linux_sys_truncate64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_truncate64 },/* 193 = truncate64 */
+	    (sy_call_t *)linux_sys_truncate64, 0, 0 },/* 193 = truncate64 */
 	{ ns(struct linux_sys_ftruncate64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64,
-	    (sy_call_t *)linux_sys_ftruncate64 },/* 194 = ftruncate64 */
+	    (sy_call_t *)linux_sys_ftruncate64, 0, 0 },/* 194 = ftruncate64 */
 	{ ns(struct linux_sys_stat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stat64 },	/* 195 = stat64 */
+	    (sy_call_t *)linux_sys_stat64, 0, 0 },	/* 195 = stat64 */
 	{ ns(struct linux_sys_lstat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lstat64 },	/* 196 = lstat64 */
+	    (sy_call_t *)linux_sys_lstat64, 0, 0 },	/* 196 = lstat64 */
 	{ ns(struct linux_sys_fstat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstat64 },	/* 197 = fstat64 */
+	    (sy_call_t *)linux_sys_fstat64, 0, 0 },	/* 197 = fstat64 */
 	{ ns(struct sys___posix_lchown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_lchown },	/* 198 = __posix_lchown */
+	    (sy_call_t *)sys___posix_lchown, 0, 0 },	/* 198 = __posix_lchown */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid },		/* 199 = getuid32 */
+	    (sy_call_t *)sys_getuid, 0, 0 },		/* 199 = getuid32 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid },		/* 200 = getgid32 */
+	    (sy_call_t *)sys_getgid, 0, 0 },		/* 200 = getgid32 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_geteuid },		/* 201 = geteuid32 */
+	    (sy_call_t *)sys_geteuid, 0, 0 },		/* 201 = geteuid32 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getegid },		/* 202 = getegid32 */
+	    (sy_call_t *)sys_getegid, 0, 0 },		/* 202 = getegid32 */
 	{ ns(struct sys_setreuid_args), 0,
-	    (sy_call_t *)sys_setreuid },	/* 203 = setreuid32 */
+	    (sy_call_t *)sys_setreuid, 0, 0 },	/* 203 = setreuid32 */
 	{ ns(struct sys_setregid_args), 0,
-	    (sy_call_t *)sys_setregid },	/* 204 = setregid32 */
+	    (sy_call_t *)sys_setregid, 0, 0 },	/* 204 = setregid32 */
 	{ ns(struct sys_getgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getgroups },	/* 205 = getgroups32 */
+	    (sy_call_t *)sys_getgroups, 0, 0 },	/* 205 = getgroups32 */
 	{ ns(struct sys_setgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setgroups },	/* 206 = setgroups32 */
+	    (sy_call_t *)sys_setgroups, 0, 0 },	/* 206 = setgroups32 */
 	{ ns(struct sys___posix_fchown_args), 0,
-	    (sy_call_t *)sys___posix_fchown },	/* 207 = fchown32 */
+	    (sy_call_t *)sys___posix_fchown, 0, 0 },	/* 207 = fchown32 */
 	{ ns(struct linux_sys_setresuid_args), 0,
-	    (sy_call_t *)linux_sys_setresuid },	/* 208 = setresuid32 */
+	    (sy_call_t *)linux_sys_setresuid, 0, 0 },	/* 208 = setresuid32 */
 	{ ns(struct linux_sys_getresuid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresuid },	/* 209 = getresuid32 */
+	    (sy_call_t *)linux_sys_getresuid, 0, 0 },	/* 209 = getresuid32 */
 	{ ns(struct linux_sys_setresgid_args), 0,
-	    (sy_call_t *)linux_sys_setresgid },	/* 210 = setresgid32 */
+	    (sy_call_t *)linux_sys_setresgid, 0, 0 },	/* 210 = setresgid32 */
 	{ ns(struct linux_sys_getresgid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresgid },	/* 211 = getresgid32 */
+	    (sy_call_t *)linux_sys_getresgid, 0, 0 },	/* 211 = getresgid32 */
 	{ ns(struct sys___posix_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_chown },	/* 212 = chown32 */
+	    (sy_call_t *)sys___posix_chown, 0, 0 },	/* 212 = chown32 */
 	{ ns(struct sys_setuid_args), 0,
-	    (sy_call_t *)sys_setuid },		/* 213 = setuid32 */
+	    (sy_call_t *)sys_setuid, 0, 0 },		/* 213 = setuid32 */
 	{ ns(struct sys_setgid_args), 0,
-	    (sy_call_t *)sys_setgid },		/* 214 = setgid32 */
+	    (sy_call_t *)sys_setgid, 0, 0 },		/* 214 = setgid32 */
 	{ ns(struct linux_sys_setfsuid_args), 0,
-	    (sy_call_t *)linux_sys_setfsuid },	/* 215 = setfsuid32 */
+	    (sy_call_t *)linux_sys_setfsuid, 0, 0 },	/* 215 = setfsuid32 */
 	{ ns(struct linux_sys_setfsgid_args), 0,
-	    (sy_call_t *)linux_sys_setfsgid },	/* 216 = setfsgid32 */
+	    (sy_call_t *)linux_sys_setfsgid, 0, 0 },	/* 216 = setfsgid32 */
 	{ ns(struct linux_sys_getdents64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getdents64 },/* 217 = getdents64 */
+	    (sy_call_t *)linux_sys_getdents64, 0, 0 },/* 217 = getdents64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 218 = unimplemented pivot_root */
+	    linux_sys_nosys, 0, 0 },			/* 218 = unimplemented pivot_root */
 	{ ns(struct sys_mincore_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mincore },		/* 219 = mincore */
+	    (sy_call_t *)sys_mincore, 0, 0 },		/* 219 = mincore */
 	{ ns(struct sys_madvise_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_madvise },		/* 220 = madvise */
+	    (sy_call_t *)sys_madvise, 0, 0 },		/* 220 = madvise */
 	{ ns(struct linux_sys_fcntl64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fcntl64 },	/* 221 = fcntl64 */
+	    (sy_call_t *)linux_sys_fcntl64, 0, 0 },	/* 221 = fcntl64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 222 = unimplemented / * for tux * / */
+	    linux_sys_nosys, 0, 0 },			/* 222 = unimplemented / * for tux * / */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 223 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 223 = unimplemented / * unused * / */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_gettid },	/* 224 = gettid */
+	    (sy_call_t *)linux_sys_gettid, 0, 0 },	/* 224 = gettid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 225 = unimplemented readahead */
+	    linux_sys_nosys, 0, 0 },			/* 225 = unimplemented readahead */
 	{ ns(struct linux_sys_setxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setxattr },	/* 226 = setxattr */
+	    (sy_call_t *)linux_sys_setxattr, 0, 0 },	/* 226 = setxattr */
 	{ ns(struct linux_sys_lsetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lsetxattr },	/* 227 = lsetxattr */
+	    (sy_call_t *)linux_sys_lsetxattr, 0, 0 },	/* 227 = lsetxattr */
 	{ ns(struct linux_sys_fsetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fsetxattr },	/* 228 = fsetxattr */
+	    (sy_call_t *)linux_sys_fsetxattr, 0, 0 },	/* 228 = fsetxattr */
 	{ ns(struct linux_sys_getxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getxattr },	/* 229 = getxattr */
+	    (sy_call_t *)linux_sys_getxattr, 0, 0 },	/* 229 = getxattr */
 	{ ns(struct linux_sys_lgetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lgetxattr },	/* 230 = lgetxattr */
+	    (sy_call_t *)linux_sys_lgetxattr, 0, 0 },	/* 230 = lgetxattr */
 	{ ns(struct linux_sys_fgetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fgetxattr },	/* 231 = fgetxattr */
+	    (sy_call_t *)linux_sys_fgetxattr, 0, 0 },	/* 231 = fgetxattr */
 	{ ns(struct linux_sys_listxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_listxattr },	/* 232 = listxattr */
+	    (sy_call_t *)linux_sys_listxattr, 0, 0 },	/* 232 = listxattr */
 	{ ns(struct linux_sys_llistxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_llistxattr },/* 233 = llistxattr */
+	    (sy_call_t *)linux_sys_llistxattr, 0, 0 },/* 233 = llistxattr */
 	{ ns(struct linux_sys_flistxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_flistxattr },/* 234 = flistxattr */
+	    (sy_call_t *)linux_sys_flistxattr, 0, 0 },/* 234 = flistxattr */
 	{ ns(struct linux_sys_removexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_removexattr },/* 235 = removexattr */
+	    (sy_call_t *)linux_sys_removexattr, 0, 0 },/* 235 = removexattr */
 	{ ns(struct linux_sys_lremovexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lremovexattr },/* 236 = lremovexattr */
+	    (sy_call_t *)linux_sys_lremovexattr, 0, 0 },/* 236 = lremovexattr */
 	{ ns(struct linux_sys_fremovexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fremovexattr },/* 237 = fremovexattr */
+	    (sy_call_t *)linux_sys_fremovexattr, 0, 0 },/* 237 = fremovexattr */
 	{ ns(struct linux_sys_tkill_args), 0,
-	    (sy_call_t *)linux_sys_tkill },	/* 238 = tkill */
+	    (sy_call_t *)linux_sys_tkill, 0, 0 },	/* 238 = tkill */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 239 = unimplemented sendfile64 */
+	    linux_sys_nosys, 0, 0 },			/* 239 = unimplemented sendfile64 */
 	{ ns(struct linux_sys_futex_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_futex },	/* 240 = futex */
+	    (sy_call_t *)linux_sys_futex, 0, 0 },	/* 240 = futex */
 	{ ns(struct linux_sys_sched_setaffinity_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setaffinity },/* 241 = sched_setaffinity */
+	    (sy_call_t *)linux_sys_sched_setaffinity, 0, 0 },/* 241 = sched_setaffinity */
 	{ ns(struct linux_sys_sched_getaffinity_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_getaffinity },/* 242 = sched_getaffinity */
+	    (sy_call_t *)linux_sys_sched_getaffinity, 0, 0 },/* 242 = sched_getaffinity */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 243 = unimplemented io_setup */
+	    linux_sys_nosys, 0, 0 },			/* 243 = unimplemented io_setup */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 244 = unimplemented io_destroy */
+	    linux_sys_nosys, 0, 0 },			/* 244 = unimplemented io_destroy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 245 = unimplemented io_getevents */
+	    linux_sys_nosys, 0, 0 },			/* 245 = unimplemented io_getevents */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 246 = unimplemented io_submit */
+	    linux_sys_nosys, 0, 0 },			/* 246 = unimplemented io_submit */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 247 = unimplemented io_cancel */
+	    linux_sys_nosys, 0, 0 },			/* 247 = unimplemented io_cancel */
 	{ ns(struct linux_sys_exit_group_args), 0,
-	    (sy_call_t *)linux_sys_exit_group },/* 248 = exit_group */
+	    (sy_call_t *)linux_sys_exit_group, 0, 0 },/* 248 = exit_group */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 249 = unimplemented lookup_dcookie */
+	    linux_sys_nosys, 0, 0 },			/* 249 = unimplemented lookup_dcookie */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 250 = unimplemented epoll_create */
+	    linux_sys_nosys, 0, 0 },			/* 250 = unimplemented epoll_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 251 = unimplemented epoll_ctl */
+	    linux_sys_nosys, 0, 0 },			/* 251 = unimplemented epoll_ctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 252 = unimplemented epoll_wait */
+	    linux_sys_nosys, 0, 0 },			/* 252 = unimplemented epoll_wait */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 253 = unimplemented remap_file_pages */
+	    linux_sys_nosys, 0, 0 },			/* 253 = unimplemented remap_file_pages */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 254 = unimplemented set_thread_area */
+	    linux_sys_nosys, 0, 0 },			/* 254 = unimplemented set_thread_area */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 255 = unimplemented get_thread_area */
+	    linux_sys_nosys, 0, 0 },			/* 255 = unimplemented get_thread_area */
 	{ ns(struct linux_sys_set_tid_address_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_tid_address },/* 256 = set_tid_address */
+	    (sy_call_t *)linux_sys_set_tid_address, 0, 0 },/* 256 = set_tid_address */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 257 = unimplemented timer_create */
+	    linux_sys_nosys, 0, 0 },			/* 257 = unimplemented timer_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 258 = unimplemented timer_settime */
+	    linux_sys_nosys, 0, 0 },			/* 258 = unimplemented timer_settime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 259 = unimplemented timer_gettime */
+	    linux_sys_nosys, 0, 0 },			/* 259 = unimplemented timer_gettime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 260 = unimplemented timer_getoverrun */
+	    linux_sys_nosys, 0, 0 },			/* 260 = unimplemented timer_getoverrun */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 261 = unimplemented timer_delete */
+	    linux_sys_nosys, 0, 0 },			/* 261 = unimplemented timer_delete */
 	{ ns(struct linux_sys_clock_settime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_settime },/* 262 = clock_settime */
+	    (sy_call_t *)linux_sys_clock_settime, 0, 0 },/* 262 = clock_settime */
 	{ ns(struct linux_sys_clock_gettime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_gettime },/* 263 = clock_gettime */
+	    (sy_call_t *)linux_sys_clock_gettime, 0, 0 },/* 263 = clock_gettime */
 	{ ns(struct linux_sys_clock_getres_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_getres },/* 264 = clock_getres */
+	    (sy_call_t *)linux_sys_clock_getres, 0, 0 },/* 264 = clock_getres */
 	{ ns(struct linux_sys_clock_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_nanosleep },/* 265 = clock_nanosleep */
+	    (sy_call_t *)linux_sys_clock_nanosleep, 0, 0 },/* 265 = clock_nanosleep */
 	{ ns(struct linux_sys_statfs64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_statfs64 },	/* 266 = statfs64 */
+	    (sy_call_t *)linux_sys_statfs64, 0, 0 },	/* 266 = statfs64 */
 	{ ns(struct linux_sys_fstatfs64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatfs64 },	/* 267 = fstatfs64 */
+	    (sy_call_t *)linux_sys_fstatfs64, 0, 0 },	/* 267 = fstatfs64 */
 	{ ns(struct linux_sys_tgkill_args), 0,
-	    (sy_call_t *)linux_sys_tgkill },	/* 268 = tgkill */
+	    (sy_call_t *)linux_sys_tgkill, 0, 0 },	/* 268 = tgkill */
 	{ ns(struct compat_50_sys_utimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_utimes },/* 269 = utimes */
+	    (sy_call_t *)compat_50_sys_utimes, 0, 0 },/* 269 = utimes */
 	{ ns(struct linux_sys_fadvise64_64_args), SYCALL_NARGS64_VAL(2) | SYCALL_ARG2_64 | SYCALL_ARG1_64,
-	    (sy_call_t *)linux_sys_fadvise64_64 },/* 270 = fadvise64_64 */
+	    (sy_call_t *)linux_sys_fadvise64_64, 0, 0 },/* 270 = fadvise64_64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 271 = unimplemented pciconfig_iobase */
+	    linux_sys_nosys, 0, 0 },			/* 271 = unimplemented pciconfig_iobase */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 272 = unimplemented pciconfig_read */
+	    linux_sys_nosys, 0, 0 },			/* 272 = unimplemented pciconfig_read */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 273 = unimplemented pciconfig_write */
+	    linux_sys_nosys, 0, 0 },			/* 273 = unimplemented pciconfig_write */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 274 = unimplemented mq_open */
+	    linux_sys_nosys, 0, 0 },			/* 274 = unimplemented mq_open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 275 = unimplemented mq_unlink */
+	    linux_sys_nosys, 0, 0 },			/* 275 = unimplemented mq_unlink */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 276 = unimplemented mq_timedsend */
+	    linux_sys_nosys, 0, 0 },			/* 276 = unimplemented mq_timedsend */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 277 = unimplemented mq_timedreceive */
+	    linux_sys_nosys, 0, 0 },			/* 277 = unimplemented mq_timedreceive */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 278 = unimplemented mq_notify */
+	    linux_sys_nosys, 0, 0 },			/* 278 = unimplemented mq_notify */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 279 = unimplemented mq_getsetattr */
+	    linux_sys_nosys, 0, 0 },			/* 279 = unimplemented mq_getsetattr */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 280 = unimplemented waitid */
+	    linux_sys_nosys, 0, 0 },			/* 280 = unimplemented waitid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 281 = unimplemented socket */
+	    linux_sys_nosys, 0, 0 },			/* 281 = unimplemented socket */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 282 = unimplemented bind */
+	    linux_sys_nosys, 0, 0 },			/* 282 = unimplemented bind */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 283 = unimplemented connect */
+	    linux_sys_nosys, 0, 0 },			/* 283 = unimplemented connect */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 284 = unimplemented listen */
+	    linux_sys_nosys, 0, 0 },			/* 284 = unimplemented listen */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 285 = unimplemented accept */
+	    linux_sys_nosys, 0, 0 },			/* 285 = unimplemented accept */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 286 = unimplemented getsockname */
+	    linux_sys_nosys, 0, 0 },			/* 286 = unimplemented getsockname */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 287 = unimplemented getpeername */
+	    linux_sys_nosys, 0, 0 },			/* 287 = unimplemented getpeername */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 288 = unimplemented socketpair */
+	    linux_sys_nosys, 0, 0 },			/* 288 = unimplemented socketpair */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 289 = unimplemented send */
+	    linux_sys_nosys, 0, 0 },			/* 289 = unimplemented send */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 290 = unimplemented sendto */
+	    linux_sys_nosys, 0, 0 },			/* 290 = unimplemented sendto */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 291 = unimplemented recv */
+	    linux_sys_nosys, 0, 0 },			/* 291 = unimplemented recv */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 292 = unimplemented recvfrom */
+	    linux_sys_nosys, 0, 0 },			/* 292 = unimplemented recvfrom */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 293 = unimplemented shutdown */
+	    linux_sys_nosys, 0, 0 },			/* 293 = unimplemented shutdown */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 294 = unimplemented setsockopt */
+	    linux_sys_nosys, 0, 0 },			/* 294 = unimplemented setsockopt */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 295 = unimplemented getsockopt */
+	    linux_sys_nosys, 0, 0 },			/* 295 = unimplemented getsockopt */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 296 = unimplemented sendmsg */
+	    linux_sys_nosys, 0, 0 },			/* 296 = unimplemented sendmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 297 = unimplemented recvmsg */
+	    linux_sys_nosys, 0, 0 },			/* 297 = unimplemented recvmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 298 = unimplemented semop */
+	    linux_sys_nosys, 0, 0 },			/* 298 = unimplemented semop */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 299 = unimplemented semget */
+	    linux_sys_nosys, 0, 0 },			/* 299 = unimplemented semget */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 300 = unimplemented semctl */
+	    linux_sys_nosys, 0, 0 },			/* 300 = unimplemented semctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 301 = unimplemented msgsnd */
+	    linux_sys_nosys, 0, 0 },			/* 301 = unimplemented msgsnd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 302 = unimplemented msgrcv */
+	    linux_sys_nosys, 0, 0 },			/* 302 = unimplemented msgrcv */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 303 = unimplemented msgget */
+	    linux_sys_nosys, 0, 0 },			/* 303 = unimplemented msgget */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 304 = unimplemented msgctl */
+	    linux_sys_nosys, 0, 0 },			/* 304 = unimplemented msgctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 305 = unimplemented shmat */
+	    linux_sys_nosys, 0, 0 },			/* 305 = unimplemented shmat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 306 = unimplemented shmdt */
+	    linux_sys_nosys, 0, 0 },			/* 306 = unimplemented shmdt */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 307 = unimplemented shmget */
+	    linux_sys_nosys, 0, 0 },			/* 307 = unimplemented shmget */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 308 = unimplemented shmctl */
+	    linux_sys_nosys, 0, 0 },			/* 308 = unimplemented shmctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 309 = unimplemented add_key */
+	    linux_sys_nosys, 0, 0 },			/* 309 = unimplemented add_key */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 310 = unimplemented request_key */
+	    linux_sys_nosys, 0, 0 },			/* 310 = unimplemented request_key */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 311 = unimplemented keyctl */
+	    linux_sys_nosys, 0, 0 },			/* 311 = unimplemented keyctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 312 = unimplemented semtimedop */
+	    linux_sys_nosys, 0, 0 },			/* 312 = unimplemented semtimedop */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 313 = unimplemented vserver */
+	    linux_sys_nosys, 0, 0 },			/* 313 = unimplemented vserver */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 314 = unimplemented ioptio_set */
+	    linux_sys_nosys, 0, 0 },			/* 314 = unimplemented ioptio_set */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 315 = unimplemented ioptio_get */
+	    linux_sys_nosys, 0, 0 },			/* 315 = unimplemented ioptio_get */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 316 = unimplemented inotify_init */
+	    linux_sys_nosys, 0, 0 },			/* 316 = unimplemented inotify_init */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 317 = unimplemented inotify_add_watch */
+	    linux_sys_nosys, 0, 0 },			/* 317 = unimplemented inotify_add_watch */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 318 = unimplemented inotify_rm_watch */
+	    linux_sys_nosys, 0, 0 },			/* 318 = unimplemented inotify_rm_watch */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 319 = unimplemented mbind */
+	    linux_sys_nosys, 0, 0 },			/* 319 = unimplemented mbind */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 320 = unimplemented get_mempolicy */
+	    linux_sys_nosys, 0, 0 },			/* 320 = unimplemented get_mempolicy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 321 = unimplemented set_mempolicy */
+	    linux_sys_nosys, 0, 0 },			/* 321 = unimplemented set_mempolicy */
 	{ ns(struct linux_sys_openat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_openat },	/* 322 = openat */
+	    (sy_call_t *)linux_sys_openat, 0, 0 },	/* 322 = openat */
 	{ ns(struct sys_mkdirat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdirat },		/* 323 = mkdirat */
+	    (sy_call_t *)sys_mkdirat, 0, 0 },		/* 323 = mkdirat */
 	{ ns(struct linux_sys_mknodat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mknodat },	/* 324 = mknodat */
+	    (sy_call_t *)linux_sys_mknodat, 0, 0 },	/* 324 = mknodat */
 	{ ns(struct linux_sys_fchownat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fchownat },	/* 325 = fchownat */
+	    (sy_call_t *)linux_sys_fchownat, 0, 0 },	/* 325 = fchownat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 326 = unimplemented futimesat */
+	    linux_sys_nosys, 0, 0 },			/* 326 = unimplemented futimesat */
 	{ ns(struct linux_sys_fstatat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatat64 },	/* 327 = fstatat64 */
+	    (sy_call_t *)linux_sys_fstatat64, 0, 0 },	/* 327 = fstatat64 */
 	{ ns(struct linux_sys_unlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_unlinkat },	/* 328 = unlinkat */
+	    (sy_call_t *)linux_sys_unlinkat, 0, 0 },	/* 328 = unlinkat */
 	{ ns(struct sys_renameat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_renameat },	/* 329 = renameat */
+	    (sy_call_t *)sys_renameat, 0, 0 },	/* 329 = renameat */
 	{ ns(struct linux_sys_linkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_linkat },	/* 330 = linkat */
+	    (sy_call_t *)linux_sys_linkat, 0, 0 },	/* 330 = linkat */
 	{ ns(struct sys_symlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlinkat },	/* 331 = symlinkat */
+	    (sy_call_t *)sys_symlinkat, 0, 0 },	/* 331 = symlinkat */
 	{ ns(struct sys_readlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlinkat },	/* 332 = readlinkat */
+	    (sy_call_t *)sys_readlinkat, 0, 0 },	/* 332 = readlinkat */
 	{ ns(struct linux_sys_fchmodat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fchmodat },	/* 333 = fchmodat */
+	    (sy_call_t *)linux_sys_fchmodat, 0, 0 },	/* 333 = fchmodat */
 	{ ns(struct linux_sys_faccessat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_faccessat },	/* 334 = faccessat */
+	    (sy_call_t *)linux_sys_faccessat, 0, 0 },	/* 334 = faccessat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 335 = unimplemented pselect6 */
+	    linux_sys_nosys, 0, 0 },			/* 335 = unimplemented pselect6 */
 	{ ns(struct linux_sys_ppoll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ppoll },	/* 336 = ppoll */
+	    (sy_call_t *)linux_sys_ppoll, 0, 0 },	/* 336 = ppoll */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 337 = unimplemented unshare */
+	    linux_sys_nosys, 0, 0 },			/* 337 = unimplemented unshare */
 	{ ns(struct linux_sys_set_robust_list_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_robust_list },/* 338 = set_robust_list */
+	    (sy_call_t *)linux_sys_set_robust_list, 0, 0 },/* 338 = set_robust_list */
 	{ ns(struct linux_sys_get_robust_list_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_get_robust_list },/* 339 = get_robust_list */
+	    (sy_call_t *)linux_sys_get_robust_list, 0, 0 },/* 339 = get_robust_list */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 340 = unimplemented splice */
+	    linux_sys_nosys, 0, 0 },			/* 340 = unimplemented splice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 341 = unimplemented sync_file_range2 */
+	    linux_sys_nosys, 0, 0 },			/* 341 = unimplemented sync_file_range2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 342 = unimplemented tee */
+	    linux_sys_nosys, 0, 0 },			/* 342 = unimplemented tee */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 343 = unimplemented vmsplice */
+	    linux_sys_nosys, 0, 0 },			/* 343 = unimplemented vmsplice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 344 = unimplemented move_pages */
+	    linux_sys_nosys, 0, 0 },			/* 344 = unimplemented move_pages */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 345 = unimplemented getcpu */
+	    linux_sys_nosys, 0, 0 },			/* 345 = unimplemented getcpu */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 346 = unimplemented epoll_wait */
+	    linux_sys_nosys, 0, 0 },			/* 346 = unimplemented epoll_wait */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 347 = unimplemented kexec_load */
+	    linux_sys_nosys, 0, 0 },			/* 347 = unimplemented kexec_load */
 	{ ns(struct linux_sys_utimensat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_utimensat },	/* 348 = utimensat */
+	    (sy_call_t *)linux_sys_utimensat, 0, 0 },	/* 348 = utimensat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 349 = unimplemented signalfd */
+	    linux_sys_nosys, 0, 0 },			/* 349 = unimplemented signalfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 350 = unimplemented timerfd_create */
+	    linux_sys_nosys, 0, 0 },			/* 350 = unimplemented timerfd_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 351 = unimplemented eventfd */
+	    linux_sys_nosys, 0, 0 },			/* 351 = unimplemented eventfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 352 = unimplemented fallocate */
+	    linux_sys_nosys, 0, 0 },			/* 352 = unimplemented fallocate */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 353 = unimplemented timerfd_settime */
+	    linux_sys_nosys, 0, 0 },			/* 353 = unimplemented timerfd_settime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 354 = unimplemented timerfd_gettime */
+	    linux_sys_nosys, 0, 0 },			/* 354 = unimplemented timerfd_gettime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 355 = unimplemented signalfd4 */
+	    linux_sys_nosys, 0, 0 },			/* 355 = unimplemented signalfd4 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 356 = unimplemented eventfd2 */
+	    linux_sys_nosys, 0, 0 },			/* 356 = unimplemented eventfd2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 357 = unimplemented epoll_create1 */
+	    linux_sys_nosys, 0, 0 },			/* 357 = unimplemented epoll_create1 */
 	{ ns(struct linux_sys_dup3_args), 0,
-	    (sy_call_t *)linux_sys_dup3 },	/* 358 = dup3 */
+	    (sy_call_t *)linux_sys_dup3, 0, 0 },	/* 358 = dup3 */
 	{ ns(struct linux_sys_pipe2_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pipe2 },	/* 359 = pipe2 */
+	    (sy_call_t *)linux_sys_pipe2, 0, 0 },	/* 359 = pipe2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 360 = unimplemented inotify_init1 */
+	    linux_sys_nosys, 0, 0 },			/* 360 = unimplemented inotify_init1 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 361 = unimplemented preadv */
+	    linux_sys_nosys, 0, 0 },			/* 361 = unimplemented preadv */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 362 = unimplemented pwritev */
+	    linux_sys_nosys, 0, 0 },			/* 362 = unimplemented pwritev */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 363 = unimplemented rt_tgsigqueueinfo */
+	    linux_sys_nosys, 0, 0 },			/* 363 = unimplemented rt_tgsigqueueinfo */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 364 = unimplemented perf_counter_open */
+	    linux_sys_nosys, 0, 0 },			/* 364 = unimplemented perf_counter_open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 365 = unimplemented recvmmsg */
+	    linux_sys_nosys, 0, 0 },			/* 365 = unimplemented recvmmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 366 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 366 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 367 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 367 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 368 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 368 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 369 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 369 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 370 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 370 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 371 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 371 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 372 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 372 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 373 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 373 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 374 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 374 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 375 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 375 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 376 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 376 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 377 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 377 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 378 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 378 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 379 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 379 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 380 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 380 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 381 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 381 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 382 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 382 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 383 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 383 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 384 = unimplemented / * base * / */
+	    linux_sys_nosys, 0, 0 },			/* 384 = unimplemented / * base * / */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_breakpoint },/* 385 = breakpoint */
+	    (sy_call_t *)linux_sys_breakpoint, 0, 0 },/* 385 = breakpoint */
 	{ ns(struct linux_sys_cacheflush_args), 0,
-	    (sy_call_t *)linux_sys_cacheflush },/* 386 = cacheflush */
+	    (sy_call_t *)linux_sys_cacheflush, 0, 0 },/* 386 = cacheflush */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 387 = unimplemented usr26 */
+	    linux_sys_nosys, 0, 0 },			/* 387 = unimplemented usr26 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 388 = unimplemented usr32 */
+	    linux_sys_nosys, 0, 0 },			/* 388 = unimplemented usr32 */
 	{ ns(struct linux_sys_set_tls_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_tls },	/* 389 = set_tls */
+	    (sy_call_t *)linux_sys_set_tls, 0, 0 },	/* 389 = set_tls */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 390 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 390 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 391 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 391 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 392 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 392 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 393 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 393 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 394 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 394 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 395 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 395 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 396 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 396 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 397 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 397 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 398 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 398 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 399 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 399 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 400 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 400 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 401 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 401 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 402 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 402 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 403 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 403 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 404 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 404 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 405 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 405 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 406 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 406 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 407 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 407 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 408 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 408 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 409 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 409 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 410 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 410 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 411 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 411 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 412 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 412 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 413 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 413 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 414 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 414 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 415 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 415 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 416 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 416 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 417 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 417 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 418 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 418 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 419 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 419 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 420 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 420 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 421 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 421 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 422 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 422 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 423 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 423 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 424 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 424 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 425 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 425 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 426 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 426 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 427 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 427 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 428 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 428 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 429 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 429 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 430 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 430 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 431 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 431 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 432 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 432 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 433 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 433 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 434 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 434 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 435 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 435 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 436 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 436 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 437 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 437 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 438 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 438 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 439 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 439 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 440 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 440 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 441 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 441 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 442 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 442 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 443 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 443 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 444 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 444 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 445 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 445 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 446 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 446 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 447 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 447 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 448 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 448 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 449 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 449 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 450 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 450 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 451 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 451 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 452 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 452 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 453 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 453 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 454 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 454 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 455 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 455 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 456 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 456 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 457 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 457 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 458 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 458 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 459 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 459 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 460 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 460 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 461 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 461 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 462 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 462 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 463 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 463 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 464 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 464 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 465 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 465 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 466 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 466 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 467 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 467 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 468 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 468 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 469 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 469 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 470 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 470 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 471 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 471 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 472 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 472 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 473 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 473 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 474 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 474 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 475 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 475 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 476 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 476 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 477 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 477 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 478 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 478 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 479 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 479 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 480 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 480 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 481 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 481 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 482 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 482 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 483 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 483 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 484 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 484 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 485 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 485 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 486 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 486 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 487 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 487 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 488 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 488 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 489 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 489 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 490 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 490 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 491 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 491 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 492 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 492 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 493 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 493 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 494 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 494 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 495 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 495 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 496 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 496 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 497 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 497 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 498 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 498 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 499 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 499 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 500 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 500 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 501 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 501 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 502 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 502 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 503 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 503 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 504 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 504 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 505 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 505 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 506 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 506 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 507 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 507 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 508 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 508 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 509 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 509 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 510 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 510 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 511 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 511 = filler */
 };
diff --git a/sys/compat/linux/arch/arm/linux_systrace_args.c b/sys/compat/linux/arch/arm/linux_systrace_args.c
new file mode 100644
index 0000000..98815dc
--- /dev/null
+++ b/sys/compat/linux/arch/arm/linux_systrace_args.c
@@ -0,0 +1,5999 @@
+/* $NetBSD$ */
+
+/*
+ * System call argument to DTrace register array converstion.
+ *
+ * DO NOT EDIT-- this file is automatically generated.
+ * This file is part of the DTrace syscall provider.
+ */
+
+static void
+systrace_args(register_t sysnum, const void *params, uintptr_t *uarg, size_t *n_args)
+{
+	intptr_t *iarg  = (intptr_t *)uarg;
+	switch (sysnum) {
+	/* linux_sys_nosys */
+	case 0: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_exit */
+	case 1: {
+		struct linux_sys_exit_args *p = params;
+		iarg[0] = SCARG(p, rval); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_fork */
+	case 2: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_read */
+	case 3: {
+		struct sys_read_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* void * */
+		uarg[2] = SCARG(p, nbyte); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_write */
+	case 4: {
+		struct sys_write_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* const void * */
+		uarg[2] = SCARG(p, nbyte); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_open */
+	case 5: {
+		struct linux_sys_open_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, flags); /* int */
+		iarg[2] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_close */
+	case 6: {
+		struct sys_close_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_waitpid */
+	case 7: {
+		struct linux_sys_waitpid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, status); /* int * */
+		iarg[2] = SCARG(p, options); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_creat */
+	case 8: {
+		struct linux_sys_creat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_link */
+	case 9: {
+		struct sys_link_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, link); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_unlink */
+	case 10: {
+		struct linux_sys_unlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_execve */
+	case 11: {
+		struct sys_execve_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, argp); /* char ** */
+		uarg[2] = (intptr_t) SCARG(p, envp); /* char ** */
+		*n_args = 3;
+		break;
+	}
+	/* sys_chdir */
+	case 12: {
+		struct sys_chdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_time */
+	case 13: {
+		struct linux_sys_time_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, t); /* linux_time_t * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_mknod */
+	case 14: {
+		struct linux_sys_mknod_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		uarg[2] = SCARG(p, dev); /* unsigned */
+		*n_args = 3;
+		break;
+	}
+	/* sys_chmod */
+	case 15: {
+		struct sys_chmod_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_lchown16 */
+	case 16: {
+		struct linux_sys_lchown16_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, uid); /* linux_uid16_t */
+		iarg[2] = SCARG(p, gid); /* linux_gid16_t */
+		*n_args = 3;
+		break;
+	}
+	/* compat_43_sys_lseek */
+	case 19: {
+		struct compat_43_sys_lseek_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, offset); /* long */
+		iarg[2] = SCARG(p, whence); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getpid */
+	case 20: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_setuid */
+	case 23: {
+		struct sys_setuid_args *p = params;
+		uarg[0] = SCARG(p, uid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_getuid */
+	case 24: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_stime */
+	case 25: {
+		struct linux_sys_stime_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, t); /* linux_time_t * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_ptrace */
+	case 26: {
+		struct linux_sys_ptrace_args *p = params;
+		iarg[0] = SCARG(p, request); /* int */
+		iarg[1] = SCARG(p, pid); /* int */
+		iarg[2] = SCARG(p, addr); /* int */
+		iarg[3] = SCARG(p, data); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_alarm */
+	case 27: {
+		struct linux_sys_alarm_args *p = params;
+		uarg[0] = SCARG(p, secs); /* unsigned int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_pause */
+	case 29: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_utime */
+	case 30: {
+		struct linux_sys_utime_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, times); /* struct linux_utimbuf * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_access */
+	case 33: {
+		struct sys_access_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, flags); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_nice */
+	case 34: {
+		struct linux_sys_nice_args *p = params;
+		iarg[0] = SCARG(p, incr); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_sync */
+	case 36: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_kill */
+	case 37: {
+		struct linux_sys_kill_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		iarg[1] = SCARG(p, signum); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys___posix_rename */
+	case 38: {
+		struct sys___posix_rename_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, from); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, to); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_mkdir */
+	case 39: {
+		struct sys_mkdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_rmdir */
+	case 40: {
+		struct sys_rmdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_dup */
+	case 41: {
+		struct sys_dup_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_pipe */
+	case 42: {
+		struct linux_sys_pipe_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, pfds); /* int * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_times */
+	case 43: {
+		struct linux_sys_times_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tms); /* struct times * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_brk */
+	case 45: {
+		struct linux_sys_brk_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, nsize); /* char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_setgid */
+	case 46: {
+		struct sys_setgid_args *p = params;
+		iarg[0] = SCARG(p, gid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_getgid */
+	case 47: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_signal */
+	case 48: {
+		struct linux_sys_signal_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		iarg[1] = SCARG(p, handler); /* linux_handler_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_geteuid */
+	case 49: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getegid */
+	case 50: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_acct */
+	case 51: {
+		struct sys_acct_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_ioctl */
+	case 54: {
+		struct linux_sys_ioctl_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, com); /* u_long */
+		uarg[2] = (intptr_t) SCARG(p, data); /* void * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_fcntl */
+	case 55: {
+		struct linux_sys_fcntl_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, arg); /* void * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_setpgid */
+	case 57: {
+		struct sys_setpgid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		iarg[1] = SCARG(p, pgid); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_oldolduname */
+	case 59: {
+		struct linux_sys_oldolduname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, up); /* struct linux_oldold_utsname * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_umask */
+	case 60: {
+		struct sys_umask_args *p = params;
+		iarg[0] = SCARG(p, newmask); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_chroot */
+	case 61: {
+		struct sys_chroot_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_dup2 */
+	case 63: {
+		struct sys_dup2_args *p = params;
+		iarg[0] = SCARG(p, from); /* int */
+		iarg[1] = SCARG(p, to); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getppid */
+	case 64: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getpgrp */
+	case 65: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_setsid */
+	case 66: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_sigaction */
+	case 67: {
+		struct linux_sys_sigaction_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		uarg[1] = (intptr_t) SCARG(p, nsa); /* const struct linux_old_sigaction * */
+		uarg[2] = (intptr_t) SCARG(p, osa); /* struct linux_old_sigaction * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_siggetmask */
+	case 68: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_sigsetmask */
+	case 69: {
+		struct linux_sys_sigsetmask_args *p = params;
+		iarg[0] = SCARG(p, mask); /* linux_old_sigset_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_setreuid16 */
+	case 70: {
+		struct linux_sys_setreuid16_args *p = params;
+		iarg[0] = SCARG(p, ruid); /* linux_uid16_t */
+		iarg[1] = SCARG(p, euid); /* linux_uid16_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_setregid16 */
+	case 71: {
+		struct linux_sys_setregid16_args *p = params;
+		iarg[0] = SCARG(p, rgid); /* linux_gid16_t */
+		iarg[1] = SCARG(p, egid); /* linux_gid16_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_sigsuspend */
+	case 72: {
+		struct linux_sys_sigsuspend_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, restart); /* void * */
+		iarg[1] = SCARG(p, oldmask); /* int */
+		iarg[2] = SCARG(p, mask); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_sigpending */
+	case 73: {
+		struct linux_sys_sigpending_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set); /* linux_old_sigset_t * */
+		*n_args = 1;
+		break;
+	}
+	/* compat_43_sys_sethostname */
+	case 74: {
+		struct compat_43_sys_sethostname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, hostname); /* char * */
+		uarg[1] = SCARG(p, len); /* u_int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_setrlimit */
+	case 75: {
+		struct linux_sys_setrlimit_args *p = params;
+		uarg[0] = SCARG(p, which); /* u_int */
+		uarg[1] = (intptr_t) SCARG(p, rlp); /* struct orlimit * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_getrlimit */
+	case 76: {
+		struct linux_sys_getrlimit_args *p = params;
+		uarg[0] = SCARG(p, which); /* u_int */
+		uarg[1] = (intptr_t) SCARG(p, rlp); /* struct orlimit * */
+		*n_args = 2;
+		break;
+	}
+	/* compat_50_sys_getrusage */
+	case 77: {
+		struct compat_50_sys_getrusage_args *p = params;
+		iarg[0] = SCARG(p, who); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rusage); /* struct rusage50 * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_gettimeofday */
+	case 78: {
+		struct linux_sys_gettimeofday_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tp); /* struct timeval50 * */
+		uarg[1] = (intptr_t) SCARG(p, tzp); /* struct timezone * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_settimeofday */
+	case 79: {
+		struct linux_sys_settimeofday_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tp); /* struct timeval50 * */
+		uarg[1] = (intptr_t) SCARG(p, tzp); /* struct timezone * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_getgroups16 */
+	case 80: {
+		struct linux_sys_getgroups16_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset); /* linux_gid16_t * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_setgroups16 */
+	case 81: {
+		struct linux_sys_setgroups16_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset); /* linux_gid16_t * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_oldselect */
+	case 82: {
+		struct linux_sys_oldselect_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, lsp); /* struct linux_oldselect * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_symlink */
+	case 83: {
+		struct sys_symlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, link); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* compat_43_sys_lstat */
+	case 84: {
+		struct compat_43_sys_lstat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, ub); /* struct stat43 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_readlink */
+	case 85: {
+		struct sys_readlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* char * */
+		iarg[2] = SCARG(p, count); /* int */
+		*n_args = 3;
+		break;
+	}
+#ifdef EXEC_AOUT
+	/* linux_sys_uselib */
+	case 86: {
+		struct linux_sys_uselib_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+#else
+#endif
+	/* linux_sys_swapon */
+	case 87: {
+		struct linux_sys_swapon_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, name); /* char * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_reboot */
+	case 88: {
+		struct linux_sys_reboot_args *p = params;
+		iarg[0] = SCARG(p, magic1); /* int */
+		iarg[1] = SCARG(p, magic2); /* int */
+		iarg[2] = SCARG(p, cmd); /* int */
+		uarg[3] = (intptr_t) SCARG(p, arg); /* void * */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_readdir */
+	case 89: {
+		struct linux_sys_readdir_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, dent); /* void * */
+		uarg[2] = SCARG(p, count); /* unsigned int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_old_mmap */
+	case 90: {
+		struct linux_sys_old_mmap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, lmp); /* struct linux_oldmmap * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_munmap */
+	case 91: {
+		struct sys_munmap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* compat_43_sys_truncate */
+	case 92: {
+		struct compat_43_sys_truncate_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, length); /* long */
+		*n_args = 2;
+		break;
+	}
+	/* compat_43_sys_ftruncate */
+	case 93: {
+		struct compat_43_sys_ftruncate_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, length); /* long */
+		*n_args = 2;
+		break;
+	}
+	/* sys_fchmod */
+	case 94: {
+		struct sys_fchmod_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_fchown16 */
+	case 95: {
+		struct linux_sys_fchown16_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, uid); /* linux_uid16_t */
+		iarg[2] = SCARG(p, gid); /* linux_gid16_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_getpriority */
+	case 96: {
+		struct linux_sys_getpriority_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, who); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setpriority */
+	case 97: {
+		struct sys_setpriority_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, who); /* int */
+		iarg[2] = SCARG(p, prio); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_profil */
+	case 98: {
+		struct sys_profil_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, samples); /* void * */
+		uarg[1] = SCARG(p, size); /* u_int */
+		uarg[2] = SCARG(p, offset); /* u_int */
+		uarg[3] = SCARG(p, scale); /* u_int */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_statfs */
+	case 99: {
+		struct linux_sys_statfs_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_statfs * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_fstatfs */
+	case 100: {
+		struct linux_sys_fstatfs_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_statfs * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_socketcall */
+	case 102: {
+		struct linux_sys_socketcall_args *p = params;
+		iarg[0] = SCARG(p, what); /* int */
+		uarg[1] = (intptr_t) SCARG(p, args); /* void * */
+		*n_args = 2;
+		break;
+	}
+	/* compat_50_sys_setitimer */
+	case 104: {
+		struct compat_50_sys_setitimer_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, itv); /* struct itimerval50 * */
+		uarg[2] = (intptr_t) SCARG(p, oitv); /* struct itimerval50 * */
+		*n_args = 3;
+		break;
+	}
+	/* compat_50_sys_getitimer */
+	case 105: {
+		struct compat_50_sys_getitimer_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, itv); /* struct itimerval50 * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_stat */
+	case 106: {
+		struct linux_sys_stat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_stat * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_lstat */
+	case 107: {
+		struct linux_sys_lstat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_stat * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_fstat */
+	case 108: {
+		struct linux_sys_fstat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_stat * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_olduname */
+	case 109: {
+		struct linux_sys_olduname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, up); /* struct linux_oldutsname * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_wait4 */
+	case 114: {
+		struct linux_sys_wait4_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, status); /* int * */
+		iarg[2] = SCARG(p, options); /* int */
+		uarg[3] = (intptr_t) SCARG(p, rusage); /* struct rusage50 * */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_swapoff */
+	case 115: {
+		struct linux_sys_swapoff_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_sysinfo */
+	case 116: {
+		struct linux_sys_sysinfo_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, arg); /* struct linux_sysinfo * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_ipc */
+	case 117: {
+		struct linux_sys_ipc_args *p = params;
+		iarg[0] = SCARG(p, what); /* int */
+		iarg[1] = SCARG(p, a1); /* int */
+		iarg[2] = SCARG(p, a2); /* int */
+		iarg[3] = SCARG(p, a3); /* int */
+		uarg[4] = (intptr_t) SCARG(p, ptr); /* void * */
+		*n_args = 5;
+		break;
+	}
+	/* sys_fsync */
+	case 118: {
+		struct sys_fsync_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_sigreturn */
+	case 119: {
+		struct linux_sys_sigreturn_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, scp); /* struct linux_sigcontext * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_clone */
+	case 120: {
+		struct linux_sys_clone_args *p = params;
+		iarg[0] = SCARG(p, flags); /* int */
+		uarg[1] = (intptr_t) SCARG(p, stack); /* void * */
+		uarg[2] = (intptr_t) SCARG(p, parent_tidptr); /* void * */
+		uarg[3] = (intptr_t) SCARG(p, tls); /* void * */
+		uarg[4] = (intptr_t) SCARG(p, child_tidptr); /* void * */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_setdomainname */
+	case 121: {
+		struct linux_sys_setdomainname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, domainname); /* char * */
+		iarg[1] = SCARG(p, len); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_uname */
+	case 122: {
+		struct linux_sys_uname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, up); /* struct linux_utsname * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_mprotect */
+	case 125: {
+		struct linux_sys_mprotect_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, start); /* const void * */
+		uarg[1] = SCARG(p, len); /* unsigned long */
+		iarg[2] = SCARG(p, prot); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_sigprocmask */
+	case 126: {
+		struct linux_sys_sigprocmask_args *p = params;
+		iarg[0] = SCARG(p, how); /* int */
+		uarg[1] = (intptr_t) SCARG(p, set); /* const linux_old_sigset_t * */
+		uarg[2] = (intptr_t) SCARG(p, oset); /* linux_old_sigset_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getpgid */
+	case 132: {
+		struct sys_getpgid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_fchdir */
+	case 133: {
+		struct sys_fchdir_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_personality */
+	case 136: {
+		struct linux_sys_personality_args *p = params;
+		uarg[0] = SCARG(p, per); /* unsigned long */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_setfsuid */
+	case 138: {
+		struct linux_sys_setfsuid_args *p = params;
+		uarg[0] = SCARG(p, uid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_setfsgid */
+	case 139: {
+		struct linux_sys_setfsgid_args *p = params;
+		iarg[0] = SCARG(p, gid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_llseek */
+	case 140: {
+		struct linux_sys_llseek_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, ohigh); /* u_int32_t */
+		uarg[2] = SCARG(p, olow); /* u_int32_t */
+		uarg[3] = (intptr_t) SCARG(p, res); /* void * */
+		iarg[4] = SCARG(p, whence); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_getdents */
+	case 141: {
+		struct linux_sys_getdents_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, dent); /* struct linux_dirent * */
+		uarg[2] = SCARG(p, count); /* unsigned int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_select */
+	case 142: {
+		struct linux_sys_select_args *p = params;
+		iarg[0] = SCARG(p, nfds); /* int */
+		uarg[1] = (intptr_t) SCARG(p, readfds); /* fd_set * */
+		uarg[2] = (intptr_t) SCARG(p, writefds); /* fd_set * */
+		uarg[3] = (intptr_t) SCARG(p, exceptfds); /* fd_set * */
+		uarg[4] = (intptr_t) SCARG(p, timeout); /* struct timeval50 * */
+		*n_args = 5;
+		break;
+	}
+	/* sys_flock */
+	case 143: {
+		struct sys_flock_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, how); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys___msync13 */
+	case 144: {
+		struct sys___msync13_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_readv */
+	case 145: {
+		struct sys_readv_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, iovp); /* const struct iovec * */
+		iarg[2] = SCARG(p, iovcnt); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_writev */
+	case 146: {
+		struct sys_writev_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, iovp); /* const struct iovec * */
+		iarg[2] = SCARG(p, iovcnt); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getsid */
+	case 147: {
+		struct sys_getsid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_fdatasync */
+	case 148: {
+		struct linux_sys_fdatasync_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys___sysctl */
+	case 149: {
+		struct linux_sys___sysctl_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, lsp); /* struct linux___sysctl * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_mlock */
+	case 150: {
+		struct sys_mlock_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_munlock */
+	case 151: {
+		struct sys_munlock_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_mlockall */
+	case 152: {
+		struct sys_mlockall_args *p = params;
+		iarg[0] = SCARG(p, flags); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_munlockall */
+	case 153: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_sched_setparam */
+	case 154: {
+		struct linux_sys_sched_setparam_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* const struct linux_sched_param * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_sched_getparam */
+	case 155: {
+		struct linux_sys_sched_getparam_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_sched_param * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_sched_setscheduler */
+	case 156: {
+		struct linux_sys_sched_setscheduler_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		iarg[1] = SCARG(p, policy); /* int */
+		uarg[2] = (intptr_t) SCARG(p, sp); /* const struct linux_sched_param * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_sched_getscheduler */
+	case 157: {
+		struct linux_sys_sched_getscheduler_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_sched_yield */
+	case 158: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_sched_get_priority_max */
+	case 159: {
+		struct linux_sys_sched_get_priority_max_args *p = params;
+		iarg[0] = SCARG(p, policy); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_sched_get_priority_min */
+	case 160: {
+		struct linux_sys_sched_get_priority_min_args *p = params;
+		iarg[0] = SCARG(p, policy); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_nanosleep */
+	case 162: {
+		struct linux_sys_nanosleep_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, rqtp); /* const struct linux_timespec * */
+		uarg[1] = (intptr_t) SCARG(p, rmtp); /* struct linux_timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_mremap */
+	case 163: {
+		struct linux_sys_mremap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, old_address); /* void * */
+		uarg[1] = SCARG(p, old_size); /* size_t */
+		uarg[2] = SCARG(p, new_size); /* size_t */
+		uarg[3] = SCARG(p, flags); /* u_long */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_setresuid16 */
+	case 164: {
+		struct linux_sys_setresuid16_args *p = params;
+		iarg[0] = SCARG(p, ruid); /* linux_uid16_t */
+		iarg[1] = SCARG(p, euid); /* linux_uid16_t */
+		iarg[2] = SCARG(p, suid); /* linux_uid16_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_getresuid16 */
+	case 165: {
+		struct linux_sys_getresuid16_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ruid); /* linux_uid16_t * */
+		uarg[1] = (intptr_t) SCARG(p, euid); /* linux_uid16_t * */
+		uarg[2] = (intptr_t) SCARG(p, suid); /* linux_uid16_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_poll */
+	case 168: {
+		struct sys_poll_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fds); /* struct pollfd * */
+		uarg[1] = SCARG(p, nfds); /* u_int */
+		iarg[2] = SCARG(p, timeout); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_setresgid16 */
+	case 170: {
+		struct linux_sys_setresgid16_args *p = params;
+		iarg[0] = SCARG(p, rgid); /* linux_gid16_t */
+		iarg[1] = SCARG(p, egid); /* linux_gid16_t */
+		iarg[2] = SCARG(p, sgid); /* linux_gid16_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_getresgid16 */
+	case 171: {
+		struct linux_sys_getresgid16_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, rgid); /* linux_gid16_t * */
+		uarg[1] = (intptr_t) SCARG(p, egid); /* linux_gid16_t * */
+		uarg[2] = (intptr_t) SCARG(p, sgid); /* linux_gid16_t * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_rt_sigaction */
+	case 174: {
+		struct linux_sys_rt_sigaction_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		uarg[1] = (intptr_t) SCARG(p, nsa); /* const struct linux_sigaction * */
+		uarg[2] = (intptr_t) SCARG(p, osa); /* struct linux_sigaction * */
+		uarg[3] = SCARG(p, sigsetsize); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_rt_sigprocmask */
+	case 175: {
+		struct linux_sys_rt_sigprocmask_args *p = params;
+		iarg[0] = SCARG(p, how); /* int */
+		uarg[1] = (intptr_t) SCARG(p, set); /* const linux_sigset_t * */
+		uarg[2] = (intptr_t) SCARG(p, oset); /* linux_sigset_t * */
+		uarg[3] = SCARG(p, sigsetsize); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_rt_sigpending */
+	case 176: {
+		struct linux_sys_rt_sigpending_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set); /* linux_sigset_t * */
+		uarg[1] = SCARG(p, sigsetsize); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_rt_sigtimedwait */
+	case 177: {
+		struct linux_sys_rt_sigtimedwait_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set); /* const linux_sigset_t * */
+		uarg[1] = (intptr_t) SCARG(p, info); /* linux_siginfo_t * */
+		uarg[2] = (intptr_t) SCARG(p, timeout); /* const struct linux_timespec * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_rt_queueinfo */
+	case 178: {
+		struct linux_sys_rt_queueinfo_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		iarg[1] = SCARG(p, signum); /* int */
+		uarg[2] = (intptr_t) SCARG(p, uinfo); /* linux_siginfo_t * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_rt_sigsuspend */
+	case 179: {
+		struct linux_sys_rt_sigsuspend_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, unewset); /* linux_sigset_t * */
+		uarg[1] = SCARG(p, sigsetsize); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_pread */
+	case 180: {
+		struct linux_sys_pread_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* char * */
+		uarg[2] = SCARG(p, nbyte); /* size_t */
+		iarg[3] = SCARG(p, offset); /* off_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_pwrite */
+	case 181: {
+		struct linux_sys_pwrite_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* char * */
+		uarg[2] = SCARG(p, nbyte); /* size_t */
+		iarg[3] = SCARG(p, offset); /* off_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_chown16 */
+	case 182: {
+		struct linux_sys_chown16_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, uid); /* linux_uid16_t */
+		iarg[2] = SCARG(p, gid); /* linux_gid16_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys___getcwd */
+	case 183: {
+		struct sys___getcwd_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, bufp); /* char * */
+		uarg[1] = SCARG(p, length); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_sigaltstack */
+	case 186: {
+		struct linux_sys_sigaltstack_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ss); /* const struct linux_sigaltstack * */
+		uarg[1] = (intptr_t) SCARG(p, oss); /* struct linux_sigaltstack * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___vfork14 */
+	case 190: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_ugetrlimit */
+	case 191: {
+		struct linux_sys_ugetrlimit_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rlp); /* struct rlimit * */
+		*n_args = 2;
+		break;
+	}
+#define linux_sys_mmap2_args linux_sys_mmap_args
+	/* linux_sys_mmap2 */
+	case 192: {
+		struct linux_sys_mmap2_args *p = params;
+		uarg[0] = SCARG(p, addr); /* unsigned long */
+		uarg[1] = SCARG(p, len); /* size_t */
+		iarg[2] = SCARG(p, prot); /* int */
+		iarg[3] = SCARG(p, flags); /* int */
+		iarg[4] = SCARG(p, fd); /* int */
+		iarg[5] = SCARG(p, offset); /* linux_off_t */
+		*n_args = 6;
+		break;
+	}
+	/* linux_sys_truncate64 */
+	case 193: {
+		struct linux_sys_truncate64_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, length); /* off_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_ftruncate64 */
+	case 194: {
+		struct linux_sys_ftruncate64_args *p = params;
+		uarg[0] = SCARG(p, fd); /* unsigned int */
+		iarg[1] = SCARG(p, length); /* off_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_stat64 */
+	case 195: {
+		struct linux_sys_stat64_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_stat64 * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_lstat64 */
+	case 196: {
+		struct linux_sys_lstat64_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_stat64 * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_fstat64 */
+	case 197: {
+		struct linux_sys_fstat64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_stat64 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___posix_lchown */
+	case 198: {
+		struct sys___posix_lchown_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getuid */
+	case 199: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getgid */
+	case 200: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_geteuid */
+	case 201: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getegid */
+	case 202: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_setreuid */
+	case 203: {
+		struct sys_setreuid_args *p = params;
+		uarg[0] = SCARG(p, ruid); /* uid_t */
+		uarg[1] = SCARG(p, euid); /* uid_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setregid */
+	case 204: {
+		struct sys_setregid_args *p = params;
+		iarg[0] = SCARG(p, rgid); /* gid_t */
+		iarg[1] = SCARG(p, egid); /* gid_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getgroups */
+	case 205: {
+		struct sys_getgroups_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset); /* gid_t * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setgroups */
+	case 206: {
+		struct sys_setgroups_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset); /* gid_t * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___posix_fchown */
+	case 207: {
+		struct sys___posix_fchown_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_setresuid */
+	case 208: {
+		struct linux_sys_setresuid_args *p = params;
+		uarg[0] = SCARG(p, ruid); /* uid_t */
+		uarg[1] = SCARG(p, euid); /* uid_t */
+		uarg[2] = SCARG(p, suid); /* uid_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_getresuid */
+	case 209: {
+		struct linux_sys_getresuid_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ruid); /* uid_t * */
+		uarg[1] = (intptr_t) SCARG(p, euid); /* uid_t * */
+		uarg[2] = (intptr_t) SCARG(p, suid); /* uid_t * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_setresgid */
+	case 210: {
+		struct linux_sys_setresgid_args *p = params;
+		iarg[0] = SCARG(p, rgid); /* gid_t */
+		iarg[1] = SCARG(p, egid); /* gid_t */
+		iarg[2] = SCARG(p, sgid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_getresgid */
+	case 211: {
+		struct linux_sys_getresgid_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, rgid); /* gid_t * */
+		uarg[1] = (intptr_t) SCARG(p, egid); /* gid_t * */
+		uarg[2] = (intptr_t) SCARG(p, sgid); /* gid_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys___posix_chown */
+	case 212: {
+		struct sys___posix_chown_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_setuid */
+	case 213: {
+		struct sys_setuid_args *p = params;
+		uarg[0] = SCARG(p, uid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_setgid */
+	case 214: {
+		struct sys_setgid_args *p = params;
+		iarg[0] = SCARG(p, gid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_setfsuid */
+	case 215: {
+		struct linux_sys_setfsuid_args *p = params;
+		uarg[0] = SCARG(p, uid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_setfsgid */
+	case 216: {
+		struct linux_sys_setfsgid_args *p = params;
+		iarg[0] = SCARG(p, gid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_getdents64 */
+	case 217: {
+		struct linux_sys_getdents64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, dent); /* struct linux_dirent64 * */
+		uarg[2] = SCARG(p, count); /* unsigned int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_mincore */
+	case 219: {
+		struct sys_mincore_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		uarg[2] = (intptr_t) SCARG(p, vec); /* char * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_madvise */
+	case 220: {
+		struct sys_madvise_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		iarg[2] = SCARG(p, behav); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_fcntl64 */
+	case 221: {
+		struct linux_sys_fcntl64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, arg); /* void * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_gettid */
+	case 224: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_setxattr */
+	case 226: {
+		struct linux_sys_setxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_lsetxattr */
+	case 227: {
+		struct linux_sys_lsetxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_fsetxattr */
+	case 228: {
+		struct linux_sys_fsetxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_getxattr */
+	case 229: {
+		struct linux_sys_getxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_lgetxattr */
+	case 230: {
+		struct linux_sys_lgetxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_fgetxattr */
+	case 231: {
+		struct linux_sys_fgetxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_listxattr */
+	case 232: {
+		struct linux_sys_listxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, list); /* char * */
+		uarg[2] = SCARG(p, size); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_llistxattr */
+	case 233: {
+		struct linux_sys_llistxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, list); /* char * */
+		uarg[2] = SCARG(p, size); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_flistxattr */
+	case 234: {
+		struct linux_sys_flistxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, list); /* char * */
+		uarg[2] = SCARG(p, size); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_removexattr */
+	case 235: {
+		struct linux_sys_removexattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_lremovexattr */
+	case 236: {
+		struct linux_sys_lremovexattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_fremovexattr */
+	case 237: {
+		struct linux_sys_fremovexattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_tkill */
+	case 238: {
+		struct linux_sys_tkill_args *p = params;
+		iarg[0] = SCARG(p, tid); /* int */
+		iarg[1] = SCARG(p, sig); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_futex */
+	case 240: {
+		struct linux_sys_futex_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, uaddr); /* int * */
+		iarg[1] = SCARG(p, op); /* int */
+		iarg[2] = SCARG(p, val); /* int */
+		uarg[3] = (intptr_t) SCARG(p, timeout); /* const struct linux_timespec * */
+		uarg[4] = (intptr_t) SCARG(p, uaddr2); /* int * */
+		iarg[5] = SCARG(p, val3); /* int */
+		*n_args = 6;
+		break;
+	}
+	/* linux_sys_sched_setaffinity */
+	case 241: {
+		struct linux_sys_sched_setaffinity_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = SCARG(p, len); /* unsigned int */
+		uarg[2] = (intptr_t) SCARG(p, mask); /* unsigned long * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_sched_getaffinity */
+	case 242: {
+		struct linux_sys_sched_getaffinity_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = SCARG(p, len); /* unsigned int */
+		uarg[2] = (intptr_t) SCARG(p, mask); /* unsigned long * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_exit_group */
+	case 248: {
+		struct linux_sys_exit_group_args *p = params;
+		iarg[0] = SCARG(p, error_code); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_set_tid_address */
+	case 256: {
+		struct linux_sys_set_tid_address_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tid); /* int * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_clock_settime */
+	case 262: {
+		struct linux_sys_clock_settime_args *p = params;
+		iarg[0] = SCARG(p, which); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp); /* struct linux_timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_clock_gettime */
+	case 263: {
+		struct linux_sys_clock_gettime_args *p = params;
+		iarg[0] = SCARG(p, which); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp); /* struct linux_timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_clock_getres */
+	case 264: {
+		struct linux_sys_clock_getres_args *p = params;
+		iarg[0] = SCARG(p, which); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp); /* struct linux_timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_clock_nanosleep */
+	case 265: {
+		struct linux_sys_clock_nanosleep_args *p = params;
+		iarg[0] = SCARG(p, which); /* clockid_t */
+		iarg[1] = SCARG(p, flags); /* int */
+		uarg[2] = (intptr_t) SCARG(p, rqtp); /* struct linux_timespec * */
+		uarg[3] = (intptr_t) SCARG(p, rmtp); /* struct linux_timespec * */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_statfs64 */
+	case 266: {
+		struct linux_sys_statfs64_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = SCARG(p, sz); /* size_t */
+		uarg[2] = (intptr_t) SCARG(p, sp); /* struct linux_statfs64 * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_fstatfs64 */
+	case 267: {
+		struct linux_sys_fstatfs64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, sz); /* size_t */
+		uarg[2] = (intptr_t) SCARG(p, sp); /* struct linux_statfs64 * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_tgkill */
+	case 268: {
+		struct linux_sys_tgkill_args *p = params;
+		iarg[0] = SCARG(p, tgid); /* int */
+		iarg[1] = SCARG(p, tid); /* int */
+		iarg[2] = SCARG(p, sig); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* compat_50_sys_utimes */
+	case 269: {
+		struct compat_50_sys_utimes_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, tptr); /* const struct timeval50 * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_fadvise64_64 */
+	case 270: {
+		struct linux_sys_fadvise64_64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, offset); /* off_t */
+		iarg[2] = SCARG(p, len); /* off_t */
+		iarg[3] = SCARG(p, advice); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_openat */
+	case 322: {
+		struct linux_sys_openat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, flags); /* int */
+		iarg[3] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_mkdirat */
+	case 323: {
+		struct sys_mkdirat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_mknodat */
+	case 324: {
+		struct linux_sys_mknodat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, mode); /* linux_umode_t */
+		uarg[3] = SCARG(p, dev); /* unsigned */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_fchownat */
+	case 325: {
+		struct linux_sys_fchownat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = SCARG(p, owner); /* uid_t */
+		iarg[3] = SCARG(p, group); /* gid_t */
+		iarg[4] = SCARG(p, flag); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_fstatat64 */
+	case 327: {
+		struct linux_sys_fstatat64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, sp); /* struct linux_stat64 * */
+		iarg[3] = SCARG(p, flag); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_unlinkat */
+	case 328: {
+		struct linux_sys_unlinkat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, flag); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_renameat */
+	case 329: {
+		struct sys_renameat_args *p = params;
+		iarg[0] = SCARG(p, fromfd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, from); /* const char * */
+		iarg[2] = SCARG(p, tofd); /* int */
+		uarg[3] = (intptr_t) SCARG(p, to); /* const char * */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_linkat */
+	case 330: {
+		struct linux_sys_linkat_args *p = params;
+		iarg[0] = SCARG(p, fd1); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name1); /* const char * */
+		iarg[2] = SCARG(p, fd2); /* int */
+		uarg[3] = (intptr_t) SCARG(p, name2); /* const char * */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* sys_symlinkat */
+	case 331: {
+		struct sys_symlinkat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path1); /* const char * */
+		iarg[1] = SCARG(p, fd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, path2); /* const char * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_readlinkat */
+	case 332: {
+		struct sys_readlinkat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, buf); /* char * */
+		uarg[3] = SCARG(p, bufsize); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_fchmodat */
+	case 333: {
+		struct linux_sys_fchmodat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_faccessat */
+	case 334: {
+		struct linux_sys_faccessat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, amode); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_ppoll */
+	case 336: {
+		struct linux_sys_ppoll_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fds); /* struct pollfd * */
+		iarg[1] = SCARG(p, nfds); /* int */
+		uarg[2] = (intptr_t) SCARG(p, timeout); /* struct linux_timespec * */
+		uarg[3] = (intptr_t) SCARG(p, sigset); /* linux_sigset_t * */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_set_robust_list */
+	case 338: {
+		struct linux_sys_set_robust_list_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, head); /* struct linux_robust_list_head * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_get_robust_list */
+	case 339: {
+		struct linux_sys_get_robust_list_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, head); /* struct linux_robust_list_head ** */
+		uarg[2] = (intptr_t) SCARG(p, len); /* size_t * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_utimensat */
+	case 348: {
+		struct linux_sys_utimensat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, times); /* struct linux_timespec * */
+		iarg[3] = SCARG(p, flag); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_dup3 */
+	case 358: {
+		struct linux_sys_dup3_args *p = params;
+		iarg[0] = SCARG(p, from); /* int */
+		iarg[1] = SCARG(p, to); /* int */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_pipe2 */
+	case 359: {
+		struct linux_sys_pipe2_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, pfds); /* int * */
+		iarg[1] = SCARG(p, flags); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_breakpoint */
+	case 385: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_cacheflush */
+	case 386: {
+		struct linux_sys_cacheflush_args *p = params;
+		uarg[0] = SCARG(p, from); /* uintptr_t */
+		iarg[1] = SCARG(p, to); /* intptr_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_set_tls */
+	case 389: {
+		struct linux_sys_set_tls_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tls); /* void * */
+		*n_args = 1;
+		break;
+	}
+	default:
+		*n_args = 0;
+		break;
+	};
+}
+static void
+systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
+{
+	const char *p = NULL;
+	switch (sysnum) {
+	/* linux_sys_nosys */
+	case 0:
+		break;
+	/* linux_sys_exit */
+	case 1:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fork */
+	case 2:
+		break;
+	/* sys_read */
+	case 3:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_write */
+	case 4:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_open */
+	case 5:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_close */
+	case 6:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_waitpid */
+	case 7:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_creat */
+	case 8:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_link */
+	case 9:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_unlink */
+	case 10:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_execve */
+	case 11:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "char **";
+			break;
+		case 2:
+			p = "char **";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_chdir */
+	case 12:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_time */
+	case 13:
+		switch(ndx) {
+		case 0:
+			p = "linux_time_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_mknod */
+	case 14:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		case 2:
+			p = "unsigned";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_chmod */
+	case 15:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_lchown16 */
+	case 16:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "linux_uid16_t";
+			break;
+		case 2:
+			p = "linux_gid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_sys_lseek */
+	case 19:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "long";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpid */
+	case 20:
+		break;
+	/* sys_setuid */
+	case 23:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getuid */
+	case 24:
+		break;
+	/* linux_sys_stime */
+	case 25:
+		switch(ndx) {
+		case 0:
+			p = "linux_time_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_ptrace */
+	case 26:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_alarm */
+	case 27:
+		switch(ndx) {
+		case 0:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_pause */
+	case 29:
+		break;
+	/* linux_sys_utime */
+	case 30:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct linux_utimbuf *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_access */
+	case 33:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_nice */
+	case 34:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sync */
+	case 36:
+		break;
+	/* linux_sys_kill */
+	case 37:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___posix_rename */
+	case 38:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mkdir */
+	case 39:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_rmdir */
+	case 40:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_dup */
+	case 41:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_pipe */
+	case 42:
+		switch(ndx) {
+		case 0:
+			p = "int *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_times */
+	case 43:
+		switch(ndx) {
+		case 0:
+			p = "struct times *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_brk */
+	case 45:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setgid */
+	case 46:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getgid */
+	case 47:
+		break;
+	/* linux_sys_signal */
+	case 48:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux_handler_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_geteuid */
+	case 49:
+		break;
+	/* sys_getegid */
+	case 50:
+		break;
+	/* sys_acct */
+	case 51:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_ioctl */
+	case 54:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "u_long";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fcntl */
+	case 55:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setpgid */
+	case 57:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_oldolduname */
+	case 59:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_oldold_utsname *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_umask */
+	case 60:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_chroot */
+	case 61:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_dup2 */
+	case 63:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getppid */
+	case 64:
+		break;
+	/* sys_getpgrp */
+	case 65:
+		break;
+	/* sys_setsid */
+	case 66:
+		break;
+	/* linux_sys_sigaction */
+	case 67:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct linux_old_sigaction *";
+			break;
+		case 2:
+			p = "struct linux_old_sigaction *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_siggetmask */
+	case 68:
+		break;
+	/* linux_sys_sigsetmask */
+	case 69:
+		switch(ndx) {
+		case 0:
+			p = "linux_old_sigset_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setreuid16 */
+	case 70:
+		switch(ndx) {
+		case 0:
+			p = "linux_uid16_t";
+			break;
+		case 1:
+			p = "linux_uid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setregid16 */
+	case 71:
+		switch(ndx) {
+		case 0:
+			p = "linux_gid16_t";
+			break;
+		case 1:
+			p = "linux_gid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sigsuspend */
+	case 72:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sigpending */
+	case 73:
+		switch(ndx) {
+		case 0:
+			p = "linux_old_sigset_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_sys_sethostname */
+	case 74:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setrlimit */
+	case 75:
+		switch(ndx) {
+		case 0:
+			p = "u_int";
+			break;
+		case 1:
+			p = "struct orlimit *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getrlimit */
+	case 76:
+		switch(ndx) {
+		case 0:
+			p = "u_int";
+			break;
+		case 1:
+			p = "struct orlimit *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_50_sys_getrusage */
+	case 77:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct rusage50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_gettimeofday */
+	case 78:
+		switch(ndx) {
+		case 0:
+			p = "struct timeval50 *";
+			break;
+		case 1:
+			p = "struct timezone *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_settimeofday */
+	case 79:
+		switch(ndx) {
+		case 0:
+			p = "struct timeval50 *";
+			break;
+		case 1:
+			p = "struct timezone *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getgroups16 */
+	case 80:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux_gid16_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setgroups16 */
+	case 81:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux_gid16_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_oldselect */
+	case 82:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_oldselect *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_symlink */
+	case 83:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_sys_lstat */
+	case 84:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct stat43 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_readlink */
+	case 85:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+#ifdef EXEC_AOUT
+	/* linux_sys_uselib */
+	case 86:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* linux_sys_swapon */
+	case 87:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_reboot */
+	case 88:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_readdir */
+	case 89:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_old_mmap */
+	case 90:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_oldmmap *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_munmap */
+	case 91:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_sys_truncate */
+	case 92:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_sys_ftruncate */
+	case 93:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fchmod */
+	case 94:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fchown16 */
+	case 95:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux_uid16_t";
+			break;
+		case 2:
+			p = "linux_gid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getpriority */
+	case 96:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setpriority */
+	case 97:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_profil */
+	case 98:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		case 2:
+			p = "u_int";
+			break;
+		case 3:
+			p = "u_int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_statfs */
+	case 99:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct linux_statfs *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fstatfs */
+	case 100:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_statfs *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_socketcall */
+	case 102:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_50_sys_setitimer */
+	case 104:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct itimerval50 *";
+			break;
+		case 2:
+			p = "struct itimerval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_50_sys_getitimer */
+	case 105:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct itimerval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_stat */
+	case 106:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct linux_stat *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_lstat */
+	case 107:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct linux_stat *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fstat */
+	case 108:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_stat *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_olduname */
+	case 109:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_oldutsname *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_wait4 */
+	case 114:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "struct rusage50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_swapoff */
+	case 115:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sysinfo */
+	case 116:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_sysinfo *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_ipc */
+	case 117:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fsync */
+	case 118:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sigreturn */
+	case 119:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_sigcontext *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_clone */
+	case 120:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		case 4:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setdomainname */
+	case 121:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_uname */
+	case 122:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_utsname *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_mprotect */
+	case 125:
+		switch(ndx) {
+		case 0:
+			p = "const void *";
+			break;
+		case 1:
+			p = "unsigned long";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sigprocmask */
+	case 126:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const linux_old_sigset_t *";
+			break;
+		case 2:
+			p = "linux_old_sigset_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpgid */
+	case 132:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fchdir */
+	case 133:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_personality */
+	case 136:
+		switch(ndx) {
+		case 0:
+			p = "unsigned long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setfsuid */
+	case 138:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setfsgid */
+	case 139:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_llseek */
+	case 140:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "u_int32_t";
+			break;
+		case 2:
+			p = "u_int32_t";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getdents */
+	case 141:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_dirent *";
+			break;
+		case 2:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_select */
+	case 142:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "fd_set *";
+			break;
+		case 2:
+			p = "fd_set *";
+			break;
+		case 3:
+			p = "fd_set *";
+			break;
+		case 4:
+			p = "struct timeval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_flock */
+	case 143:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___msync13 */
+	case 144:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_readv */
+	case 145:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct iovec *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_writev */
+	case 146:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct iovec *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getsid */
+	case 147:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fdatasync */
+	case 148:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys___sysctl */
+	case 149:
+		switch(ndx) {
+		case 0:
+			p = "struct linux___sysctl *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mlock */
+	case 150:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_munlock */
+	case 151:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mlockall */
+	case 152:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_munlockall */
+	case 153:
+		break;
+	/* linux_sys_sched_setparam */
+	case 154:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "const struct linux_sched_param *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_getparam */
+	case 155:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "struct linux_sched_param *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_setscheduler */
+	case 156:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const struct linux_sched_param *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_getscheduler */
+	case 157:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_yield */
+	case 158:
+		break;
+	/* linux_sys_sched_get_priority_max */
+	case 159:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_get_priority_min */
+	case 160:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_nanosleep */
+	case 162:
+		switch(ndx) {
+		case 0:
+			p = "const struct linux_timespec *";
+			break;
+		case 1:
+			p = "struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_mremap */
+	case 163:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "u_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setresuid16 */
+	case 164:
+		switch(ndx) {
+		case 0:
+			p = "linux_uid16_t";
+			break;
+		case 1:
+			p = "linux_uid16_t";
+			break;
+		case 2:
+			p = "linux_uid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getresuid16 */
+	case 165:
+		switch(ndx) {
+		case 0:
+			p = "linux_uid16_t *";
+			break;
+		case 1:
+			p = "linux_uid16_t *";
+			break;
+		case 2:
+			p = "linux_uid16_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_poll */
+	case 168:
+		switch(ndx) {
+		case 0:
+			p = "struct pollfd *";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setresgid16 */
+	case 170:
+		switch(ndx) {
+		case 0:
+			p = "linux_gid16_t";
+			break;
+		case 1:
+			p = "linux_gid16_t";
+			break;
+		case 2:
+			p = "linux_gid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getresgid16 */
+	case 171:
+		switch(ndx) {
+		case 0:
+			p = "linux_gid16_t *";
+			break;
+		case 1:
+			p = "linux_gid16_t *";
+			break;
+		case 2:
+			p = "linux_gid16_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigaction */
+	case 174:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct linux_sigaction *";
+			break;
+		case 2:
+			p = "struct linux_sigaction *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigprocmask */
+	case 175:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const linux_sigset_t *";
+			break;
+		case 2:
+			p = "linux_sigset_t *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigpending */
+	case 176:
+		switch(ndx) {
+		case 0:
+			p = "linux_sigset_t *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigtimedwait */
+	case 177:
+		switch(ndx) {
+		case 0:
+			p = "const linux_sigset_t *";
+			break;
+		case 1:
+			p = "linux_siginfo_t *";
+			break;
+		case 2:
+			p = "const struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_queueinfo */
+	case 178:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "linux_siginfo_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigsuspend */
+	case 179:
+		switch(ndx) {
+		case 0:
+			p = "linux_sigset_t *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_pread */
+	case 180:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_pwrite */
+	case 181:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_chown16 */
+	case 182:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "linux_uid16_t";
+			break;
+		case 2:
+			p = "linux_gid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___getcwd */
+	case 183:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sigaltstack */
+	case 186:
+		switch(ndx) {
+		case 0:
+			p = "const struct linux_sigaltstack *";
+			break;
+		case 1:
+			p = "struct linux_sigaltstack *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___vfork14 */
+	case 190:
+		break;
+	/* linux_sys_ugetrlimit */
+	case 191:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct rlimit *";
+			break;
+		default:
+			break;
+		};
+		break;
+#define linux_sys_mmap2_args linux_sys_mmap_args
+	/* linux_sys_mmap2 */
+	case 192:
+		switch(ndx) {
+		case 0:
+			p = "unsigned long";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "int";
+			break;
+		case 5:
+			p = "linux_off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_truncate64 */
+	case 193:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_ftruncate64 */
+	case 194:
+		switch(ndx) {
+		case 0:
+			p = "unsigned int";
+			break;
+		case 1:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_stat64 */
+	case 195:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct linux_stat64 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_lstat64 */
+	case 196:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct linux_stat64 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fstat64 */
+	case 197:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_stat64 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___posix_lchown */
+	case 198:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getuid */
+	case 199:
+		break;
+	/* sys_getgid */
+	case 200:
+		break;
+	/* sys_geteuid */
+	case 201:
+		break;
+	/* sys_getegid */
+	case 202:
+		break;
+	/* sys_setreuid */
+	case 203:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setregid */
+	case 204:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		case 1:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getgroups */
+	case 205:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "gid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setgroups */
+	case 206:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "gid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___posix_fchown */
+	case 207:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setresuid */
+	case 208:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getresuid */
+	case 209:
+		switch(ndx) {
+		case 0:
+			p = "uid_t *";
+			break;
+		case 1:
+			p = "uid_t *";
+			break;
+		case 2:
+			p = "uid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setresgid */
+	case 210:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		case 1:
+			p = "gid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getresgid */
+	case 211:
+		switch(ndx) {
+		case 0:
+			p = "gid_t *";
+			break;
+		case 1:
+			p = "gid_t *";
+			break;
+		case 2:
+			p = "gid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___posix_chown */
+	case 212:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setuid */
+	case 213:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setgid */
+	case 214:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setfsuid */
+	case 215:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setfsgid */
+	case 216:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getdents64 */
+	case 217:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_dirent64 *";
+			break;
+		case 2:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mincore */
+	case 219:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_madvise */
+	case 220:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fcntl64 */
+	case 221:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_gettid */
+	case 224:
+		break;
+	/* linux_sys_setxattr */
+	case 226:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_lsetxattr */
+	case 227:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fsetxattr */
+	case 228:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getxattr */
+	case 229:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_lgetxattr */
+	case 230:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fgetxattr */
+	case 231:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_listxattr */
+	case 232:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_llistxattr */
+	case 233:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_flistxattr */
+	case 234:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_removexattr */
+	case 235:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_lremovexattr */
+	case 236:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fremovexattr */
+	case 237:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_tkill */
+	case 238:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_futex */
+	case 240:
+		switch(ndx) {
+		case 0:
+			p = "int *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "const struct linux_timespec *";
+			break;
+		case 4:
+			p = "int *";
+			break;
+		case 5:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_setaffinity */
+	case 241:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "unsigned int";
+			break;
+		case 2:
+			p = "unsigned long *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_getaffinity */
+	case 242:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "unsigned int";
+			break;
+		case 2:
+			p = "unsigned long *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_exit_group */
+	case 248:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_set_tid_address */
+	case 256:
+		switch(ndx) {
+		case 0:
+			p = "int *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_clock_settime */
+	case 262:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_clock_gettime */
+	case 263:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_clock_getres */
+	case 264:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_clock_nanosleep */
+	case 265:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "struct linux_timespec *";
+			break;
+		case 3:
+			p = "struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_statfs64 */
+	case 266:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "struct linux_statfs64 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fstatfs64 */
+	case 267:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "struct linux_statfs64 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_tgkill */
+	case 268:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_50_sys_utimes */
+	case 269:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const struct timeval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fadvise64_64 */
+	case 270:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "off_t";
+			break;
+		case 2:
+			p = "off_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_openat */
+	case 322:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mkdirat */
+	case 323:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_mknodat */
+	case 324:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "linux_umode_t";
+			break;
+		case 3:
+			p = "unsigned";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fchownat */
+	case 325:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "uid_t";
+			break;
+		case 3:
+			p = "gid_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fstatat64 */
+	case 327:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "struct linux_stat64 *";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_unlinkat */
+	case 328:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_renameat */
+	case 329:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_linkat */
+	case 330:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "const char *";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_symlinkat */
+	case 331:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_readlinkat */
+	case 332:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "char *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fchmodat */
+	case 333:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_faccessat */
+	case 334:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_ppoll */
+	case 336:
+		switch(ndx) {
+		case 0:
+			p = "struct pollfd *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "struct linux_timespec *";
+			break;
+		case 3:
+			p = "linux_sigset_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_set_robust_list */
+	case 338:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_robust_list_head *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_get_robust_list */
+	case 339:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_robust_list_head **";
+			break;
+		case 2:
+			p = "size_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_utimensat */
+	case 348:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "struct linux_timespec *";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_dup3 */
+	case 358:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_pipe2 */
+	case 359:
+		switch(ndx) {
+		case 0:
+			p = "int *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_breakpoint */
+	case 385:
+		break;
+	/* linux_sys_cacheflush */
+	case 386:
+		switch(ndx) {
+		case 0:
+			p = "uintptr_t";
+			break;
+		case 1:
+			p = "intptr_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_set_tls */
+	case 389:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	default:
+		break;
+	};
+	if (p != NULL)
+		strlcpy(desc, p, descsz);
+}
+static void
+systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
+{
+	const char *p = NULL;
+	switch (sysnum) {
+	/* linux_sys_nosys */
+	case 0:
+	/* linux_sys_exit */
+	case 1:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fork */
+	case 2:
+	/* sys_read */
+	case 3:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_write */
+	case 4:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_open */
+	case 5:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_close */
+	case 6:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_waitpid */
+	case 7:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_creat */
+	case 8:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_link */
+	case 9:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_unlink */
+	case 10:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_execve */
+	case 11:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_chdir */
+	case 12:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_time */
+	case 13:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_mknod */
+	case 14:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_chmod */
+	case 15:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_lchown16 */
+	case 16:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_sys_lseek */
+	case 19:
+		if (ndx == 0 || ndx == 1)
+			p = "long";
+		break;
+	/* sys_getpid */
+	case 20:
+	/* sys_setuid */
+	case 23:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getuid */
+	case 24:
+	/* linux_sys_stime */
+	case 25:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_ptrace */
+	case 26:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_alarm */
+	case 27:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_pause */
+	case 29:
+	/* linux_sys_utime */
+	case 30:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_access */
+	case 33:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_nice */
+	case 34:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sync */
+	case 36:
+	/* linux_sys_kill */
+	case 37:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___posix_rename */
+	case 38:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mkdir */
+	case 39:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_rmdir */
+	case 40:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_dup */
+	case 41:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_pipe */
+	case 42:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_times */
+	case 43:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_brk */
+	case 45:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setgid */
+	case 46:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getgid */
+	case 47:
+	/* linux_sys_signal */
+	case 48:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_geteuid */
+	case 49:
+	/* sys_getegid */
+	case 50:
+	/* sys_acct */
+	case 51:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_ioctl */
+	case 54:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fcntl */
+	case 55:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setpgid */
+	case 57:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_oldolduname */
+	case 59:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_umask */
+	case 60:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_chroot */
+	case 61:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_dup2 */
+	case 63:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getppid */
+	case 64:
+	/* sys_getpgrp */
+	case 65:
+	/* sys_setsid */
+	case 66:
+	/* linux_sys_sigaction */
+	case 67:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_siggetmask */
+	case 68:
+	/* linux_sys_sigsetmask */
+	case 69:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setreuid16 */
+	case 70:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setregid16 */
+	case 71:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sigsuspend */
+	case 72:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sigpending */
+	case 73:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_sys_sethostname */
+	case 74:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setrlimit */
+	case 75:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getrlimit */
+	case 76:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_50_sys_getrusage */
+	case 77:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_gettimeofday */
+	case 78:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_settimeofday */
+	case 79:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getgroups16 */
+	case 80:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setgroups16 */
+	case 81:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_oldselect */
+	case 82:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_symlink */
+	case 83:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_sys_lstat */
+	case 84:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_readlink */
+	case 85:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#ifdef EXEC_AOUT
+	/* linux_sys_uselib */
+	case 86:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* linux_sys_swapon */
+	case 87:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_reboot */
+	case 88:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_readdir */
+	case 89:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_old_mmap */
+	case 90:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_munmap */
+	case 91:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_sys_truncate */
+	case 92:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_sys_ftruncate */
+	case 93:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fchmod */
+	case 94:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fchown16 */
+	case 95:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getpriority */
+	case 96:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setpriority */
+	case 97:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_profil */
+	case 98:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_statfs */
+	case 99:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fstatfs */
+	case 100:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_socketcall */
+	case 102:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_50_sys_setitimer */
+	case 104:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_50_sys_getitimer */
+	case 105:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_stat */
+	case 106:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_lstat */
+	case 107:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fstat */
+	case 108:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_olduname */
+	case 109:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_wait4 */
+	case 114:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_swapoff */
+	case 115:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sysinfo */
+	case 116:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_ipc */
+	case 117:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fsync */
+	case 118:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sigreturn */
+	case 119:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_clone */
+	case 120:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setdomainname */
+	case 121:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_uname */
+	case 122:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_mprotect */
+	case 125:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sigprocmask */
+	case 126:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getpgid */
+	case 132:
+		if (ndx == 0 || ndx == 1)
+			p = "pid_t";
+		break;
+	/* sys_fchdir */
+	case 133:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_personality */
+	case 136:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setfsuid */
+	case 138:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setfsgid */
+	case 139:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_llseek */
+	case 140:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getdents */
+	case 141:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_select */
+	case 142:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_flock */
+	case 143:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___msync13 */
+	case 144:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_readv */
+	case 145:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_writev */
+	case 146:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_getsid */
+	case 147:
+		if (ndx == 0 || ndx == 1)
+			p = "pid_t";
+		break;
+	/* linux_sys_fdatasync */
+	case 148:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys___sysctl */
+	case 149:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mlock */
+	case 150:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_munlock */
+	case 151:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mlockall */
+	case 152:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_munlockall */
+	case 153:
+	/* linux_sys_sched_setparam */
+	case 154:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_getparam */
+	case 155:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_setscheduler */
+	case 156:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_getscheduler */
+	case 157:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_yield */
+	case 158:
+	/* linux_sys_sched_get_priority_max */
+	case 159:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_get_priority_min */
+	case 160:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_nanosleep */
+	case 162:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_mremap */
+	case 163:
+		if (ndx == 0 || ndx == 1)
+			p = "void *";
+		break;
+	/* linux_sys_setresuid16 */
+	case 164:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getresuid16 */
+	case 165:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_poll */
+	case 168:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setresgid16 */
+	case 170:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getresgid16 */
+	case 171:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_sigaction */
+	case 174:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_sigprocmask */
+	case 175:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_sigpending */
+	case 176:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_sigtimedwait */
+	case 177:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_queueinfo */
+	case 178:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_sigsuspend */
+	case 179:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_pread */
+	case 180:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_pwrite */
+	case 181:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_chown16 */
+	case 182:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___getcwd */
+	case 183:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sigaltstack */
+	case 186:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___vfork14 */
+	case 190:
+	/* linux_sys_ugetrlimit */
+	case 191:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#define linux_sys_mmap2_args linux_sys_mmap_args
+	/* linux_sys_mmap2 */
+	case 192:
+		if (ndx == 0 || ndx == 1)
+			p = "linux_off_t";
+		break;
+	/* linux_sys_truncate64 */
+	case 193:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_ftruncate64 */
+	case 194:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_stat64 */
+	case 195:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_lstat64 */
+	case 196:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fstat64 */
+	case 197:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___posix_lchown */
+	case 198:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getuid */
+	case 199:
+	/* sys_getgid */
+	case 200:
+	/* sys_geteuid */
+	case 201:
+	/* sys_getegid */
+	case 202:
+	/* sys_setreuid */
+	case 203:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setregid */
+	case 204:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getgroups */
+	case 205:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setgroups */
+	case 206:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___posix_fchown */
+	case 207:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setresuid */
+	case 208:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getresuid */
+	case 209:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setresgid */
+	case 210:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getresgid */
+	case 211:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___posix_chown */
+	case 212:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setuid */
+	case 213:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setgid */
+	case 214:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setfsuid */
+	case 215:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setfsgid */
+	case 216:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getdents64 */
+	case 217:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mincore */
+	case 219:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_madvise */
+	case 220:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fcntl64 */
+	case 221:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_gettid */
+	case 224:
+	/* linux_sys_setxattr */
+	case 226:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_lsetxattr */
+	case 227:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fsetxattr */
+	case 228:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getxattr */
+	case 229:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_lgetxattr */
+	case 230:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_fgetxattr */
+	case 231:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_listxattr */
+	case 232:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_llistxattr */
+	case 233:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_flistxattr */
+	case 234:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_removexattr */
+	case 235:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_lremovexattr */
+	case 236:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fremovexattr */
+	case 237:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_tkill */
+	case 238:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_futex */
+	case 240:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_setaffinity */
+	case 241:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_getaffinity */
+	case 242:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_exit_group */
+	case 248:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_set_tid_address */
+	case 256:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_clock_settime */
+	case 262:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_clock_gettime */
+	case 263:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_clock_getres */
+	case 264:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_clock_nanosleep */
+	case 265:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_statfs64 */
+	case 266:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fstatfs64 */
+	case 267:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_tgkill */
+	case 268:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_50_sys_utimes */
+	case 269:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fadvise64_64 */
+	case 270:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_openat */
+	case 322:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mkdirat */
+	case 323:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_mknodat */
+	case 324:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fchownat */
+	case 325:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fstatat64 */
+	case 327:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_unlinkat */
+	case 328:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_renameat */
+	case 329:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_linkat */
+	case 330:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_symlinkat */
+	case 331:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_readlinkat */
+	case 332:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fchmodat */
+	case 333:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_faccessat */
+	case 334:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_ppoll */
+	case 336:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_set_robust_list */
+	case 338:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_get_robust_list */
+	case 339:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_utimensat */
+	case 348:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_dup3 */
+	case 358:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_pipe2 */
+	case 359:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_breakpoint */
+	case 385:
+	/* linux_sys_cacheflush */
+	case 386:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_set_tls */
+	case 389:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	default:
+		break;
+	};
+	if (p != NULL)
+		strlcpy(desc, p, descsz);
+}
diff --git a/sys/compat/linux/arch/arm/syscalls.conf b/sys/compat/linux/arch/arm/syscalls.conf
index f8c223e..626213a 100644
--- a/sys/compat/linux/arch/arm/syscalls.conf
+++ b/sys/compat/linux/arch/arm/syscalls.conf
@@ -1,9 +1,10 @@
-#	$NetBSD: syscalls.conf,v 1.2 2002/01/23 16:14:20 bjh21 Exp $
+#	$NetBSD: syscalls.conf,v 1.3 2015/03/23 07:52:36 ozaki-r Exp $
 
 sysnames="linux_syscalls.c"
 sysnumhdr="linux_syscall.h"
 syssw="linux_sysent.c"
 sysarghdr="linux_syscallargs.h"
+systrace="linux_systrace_args.c"
 compatopts=""
 libcompatopts=""
 
diff --git a/sys/compat/linux/arch/arm/syscalls.master b/sys/compat/linux/arch/arm/syscalls.master
index 5297864..7c6f898 100644
--- a/sys/compat/linux/arch/arm/syscalls.master
+++ b/sys/compat/linux/arch/arm/syscalls.master
@@ -1,4 +1,4 @@
-	$NetBSD: syscalls.master,v 1.61 2014/05/31 08:51:19 njoly Exp $
+	$NetBSD: syscalls.master,v 1.63 2015/03/23 07:50:03 ozaki-r Exp $
 
 ; Derived from sys/compat/linux/arch/*/syscalls.master
 ; and from Linux 2.4.12 arch/arm/kernel/calls.S
@@ -161,10 +161,10 @@
 81	STD		{ int|linux_sys||setgroups16(int gidsetsize, \
 			    linux_gid16_t *gidset); }
 82	STD		{ int|linux_sys||oldselect(struct linux_oldselect *lsp); }
-83	NOARGS		{ int|sys||symlink(const char *path, const char *to); }
+83	NOARGS		{ int|sys||symlink(const char *path, const char *link); }
 84	NOARGS		{ int|compat_43_sys||lstat(const char *path, \
-			    struct stat43 *up); } oolstat
-85	NOARGS		{ int|sys||readlink(const char *name, char *buf, \
+			    struct stat43 *ub); } oolstat
+85	NOARGS		{ int|sys||readlink(const char *path, char *buf, \
 			    int count); }
 #ifdef EXEC_AOUT
 86	STD		{ int|linux_sys||uselib(const char *path); }
diff --git a/sys/compat/linux/arch/i386/linux_syscall.h b/sys/compat/linux/arch/i386/linux_syscall.h
index 8a3c93d..1f1a9af 100644
--- a/sys/compat/linux/arch/i386/linux_syscall.h
+++ b/sys/compat/linux/arch/i386/linux_syscall.h
@@ -1,10 +1,10 @@
-/* $NetBSD: linux_syscall.h,v 1.103 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.118 2014/05/31 08:51:19 njoly Exp
+ * created from	NetBSD: syscalls.master,v 1.120 2015/03/23 07:30:15 ozaki-r Exp
  */
 
 #ifndef _LINUX_SYS_SYSCALL_H_
diff --git a/sys/compat/linux/arch/i386/linux_syscallargs.h b/sys/compat/linux/arch/i386/linux_syscallargs.h
index 53e4281..f1acf5e 100644
--- a/sys/compat/linux/arch/i386/linux_syscallargs.h
+++ b/sys/compat/linux/arch/i386/linux_syscallargs.h
@@ -1,10 +1,10 @@
-/* $NetBSD: linux_syscallargs.h,v 1.103 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.118 2014/05/31 08:51:19 njoly Exp
+ * created from	NetBSD: syscalls.master,v 1.120 2015/03/23 07:30:15 ozaki-r Exp
  */
 
 #ifndef _LINUX_SYS_SYSCALLARGS_H_
diff --git a/sys/compat/linux/arch/i386/linux_syscalls.c b/sys/compat/linux/arch/i386/linux_syscalls.c
index 57faa37..d7df4fa 100644
--- a/sys/compat/linux/arch/i386/linux_syscalls.c
+++ b/sys/compat/linux/arch/i386/linux_syscalls.c
@@ -1,14 +1,14 @@
-/* $NetBSD: linux_syscalls.c,v 1.104 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.118 2014/05/31 08:51:19 njoly Exp
+ * created from	NetBSD: syscalls.master,v 1.120 2015/03/23 07:30:15 ozaki-r Exp
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.104 2014/05/31 08:52:54 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include <sys/param.h>
@@ -24,6 +24,8 @@ __KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.104 2014/05/31 08:52:54 njoly E
 #include <compat/linux/common/linux_siginfo.h>
 #include <compat/linux/common/linux_machdep.h>
 #include <compat/linux/linux_syscallargs.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const linux_syscallnames[] = {
@@ -545,3 +547,525 @@ const char *const linux_syscallnames[] = {
 	/* 510 */	"# filler",
 	/* 511 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altlinux_syscallnames[] = {
+	/*   0 */	"nosys",
+	/*   1 */	NULL, /* exit */
+	/*   2 */	NULL, /* fork */
+	/*   3 */	NULL, /* read */
+	/*   4 */	NULL, /* write */
+	/*   5 */	NULL, /* open */
+	/*   6 */	NULL, /* close */
+	/*   7 */	NULL, /* waitpid */
+	/*   8 */	NULL, /* creat */
+	/*   9 */	NULL, /* link */
+	/*  10 */	NULL, /* unlink */
+	/*  11 */	NULL, /* execve */
+	/*  12 */	NULL, /* chdir */
+	/*  13 */	NULL, /* time */
+	/*  14 */	NULL, /* mknod */
+	/*  15 */	NULL, /* chmod */
+	/*  16 */	NULL, /* lchown16 */
+	/*  17 */	NULL, /* break */
+	/*  18 */	NULL, /* obsolete ostat */
+	/*  19 */	NULL, /* lseek */
+	/*  20 */	NULL, /* getpid */
+	/*  21 */	NULL, /* unimplemented mount */
+	/*  22 */	NULL, /* unimplemented umount */
+	/*  23 */	"setuid",
+	/*  24 */	"getuid",
+	/*  25 */	NULL, /* stime */
+	/*  26 */	NULL, /* ptrace */
+	/*  27 */	NULL, /* alarm */
+	/*  28 */	NULL, /* obsolete ofstat */
+	/*  29 */	NULL, /* pause */
+	/*  30 */	NULL, /* utime */
+	/*  31 */	NULL, /* obsolete stty */
+	/*  32 */	NULL, /* obsolete gtty */
+	/*  33 */	NULL, /* access */
+	/*  34 */	NULL, /* nice */
+	/*  35 */	NULL, /* obsolete ftime */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	NULL, /* kill */
+	/*  38 */	NULL, /* __posix_rename */
+	/*  39 */	NULL, /* mkdir */
+	/*  40 */	NULL, /* rmdir */
+	/*  41 */	NULL, /* dup */
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* times */
+	/*  44 */	NULL, /* obsolete prof */
+	/*  45 */	NULL, /* brk */
+	/*  46 */	"setgid",
+	/*  47 */	"getgid",
+	/*  48 */	NULL, /* signal */
+	/*  49 */	"geteuid",
+	/*  50 */	"getegid",
+	/*  51 */	NULL, /* acct */
+	/*  52 */	NULL, /* obsolete phys */
+	/*  53 */	NULL, /* obsolete lock */
+	/*  54 */	NULL, /* ioctl */
+	/*  55 */	NULL, /* fcntl */
+	/*  56 */	NULL, /* obsolete mpx */
+	/*  57 */	NULL, /* setpgid */
+	/*  58 */	NULL, /* obsolete ulimit */
+	/*  59 */	NULL, /* oldolduname */
+	/*  60 */	NULL, /* umask */
+	/*  61 */	NULL, /* chroot */
+	/*  62 */	NULL, /* unimplemented ustat */
+	/*  63 */	NULL, /* dup2 */
+	/*  64 */	NULL, /* getppid */
+	/*  65 */	NULL, /* getpgrp */
+	/*  66 */	NULL, /* setsid */
+	/*  67 */	NULL, /* sigaction */
+	/*  68 */	NULL, /* siggetmask */
+	/*  69 */	NULL, /* sigsetmask */
+	/*  70 */	NULL, /* setreuid16 */
+	/*  71 */	NULL, /* setregid16 */
+	/*  72 */	NULL, /* sigsuspend */
+	/*  73 */	NULL, /* sigpending */
+	/*  74 */	NULL, /* sethostname */
+	/*  75 */	NULL, /* setrlimit */
+	/*  76 */	NULL, /* getrlimit */
+	/*  77 */	NULL, /* getrusage */
+	/*  78 */	NULL, /* gettimeofday */
+	/*  79 */	NULL, /* settimeofday */
+	/*  80 */	NULL, /* getgroups16 */
+	/*  81 */	NULL, /* setgroups16 */
+	/*  82 */	NULL, /* oldselect */
+	/*  83 */	NULL, /* symlink */
+	/*  84 */	"lstat",
+	/*  85 */	NULL, /* readlink */
+#ifdef EXEC_AOUT
+	/*  86 */	NULL, /* uselib */
+#else
+	/*  86 */	NULL, /* unimplemented sys_uselib */
+#endif
+	/*  87 */	NULL, /* swapon */
+	/*  88 */	NULL, /* reboot */
+	/*  89 */	NULL, /* readdir */
+	/*  90 */	NULL, /* old_mmap */
+	/*  91 */	NULL, /* munmap */
+	/*  92 */	NULL, /* truncate */
+	/*  93 */	NULL, /* ftruncate */
+	/*  94 */	NULL, /* fchmod */
+	/*  95 */	NULL, /* fchown16 */
+	/*  96 */	NULL, /* getpriority */
+	/*  97 */	NULL, /* setpriority */
+	/*  98 */	NULL, /* profil */
+	/*  99 */	NULL, /* statfs */
+	/* 100 */	NULL, /* fstatfs */
+	/* 101 */	NULL, /* ioperm */
+	/* 102 */	NULL, /* socketcall */
+	/* 103 */	NULL, /* unimplemented syslog */
+	/* 104 */	NULL, /* setitimer */
+	/* 105 */	NULL, /* getitimer */
+	/* 106 */	NULL, /* stat */
+	/* 107 */	NULL, /* lstat */
+	/* 108 */	NULL, /* fstat */
+	/* 109 */	NULL, /* olduname */
+	/* 110 */	NULL, /* iopl */
+	/* 111 */	NULL, /* unimplemented vhangup */
+	/* 112 */	NULL, /* unimplemented idle */
+	/* 113 */	NULL, /* unimplemented vm86old */
+	/* 114 */	NULL, /* wait4 */
+	/* 115 */	NULL, /* swapoff */
+	/* 116 */	NULL, /* sysinfo */
+	/* 117 */	NULL, /* ipc */
+	/* 118 */	NULL, /* fsync */
+	/* 119 */	NULL, /* sigreturn */
+	/* 120 */	NULL, /* clone */
+	/* 121 */	NULL, /* setdomainname */
+	/* 122 */	NULL, /* uname */
+	/* 123 */	NULL, /* modify_ldt */
+	/* 124 */	NULL, /* unimplemented adjtimex */
+	/* 125 */	NULL, /* mprotect */
+	/* 126 */	NULL, /* sigprocmask */
+	/* 127 */	NULL, /* unimplemented create_module */
+	/* 128 */	NULL, /* unimplemented init_module */
+	/* 129 */	NULL, /* unimplemented delete_module */
+	/* 130 */	NULL, /* unimplemented get_kernel_syms */
+	/* 131 */	NULL, /* unimplemented quotactl */
+	/* 132 */	NULL, /* getpgid */
+	/* 133 */	NULL, /* fchdir */
+	/* 134 */	NULL, /* unimplemented bdflush */
+	/* 135 */	NULL, /* unimplemented sysfs */
+	/* 136 */	NULL, /* personality */
+	/* 137 */	NULL, /* unimplemented afs_syscall */
+	/* 138 */	"setfsuid",
+	/* 139 */	"setfsgid",
+	/* 140 */	NULL, /* llseek */
+	/* 141 */	NULL, /* getdents */
+	/* 142 */	NULL, /* select */
+	/* 143 */	NULL, /* flock */
+	/* 144 */	"msync",
+	/* 145 */	NULL, /* readv */
+	/* 146 */	NULL, /* writev */
+	/* 147 */	NULL, /* getsid */
+	/* 148 */	NULL, /* fdatasync */
+	/* 149 */	NULL, /* __sysctl */
+	/* 150 */	NULL, /* mlock */
+	/* 151 */	NULL, /* munlock */
+	/* 152 */	NULL, /* mlockall */
+	/* 153 */	NULL, /* munlockall */
+	/* 154 */	NULL, /* sched_setparam */
+	/* 155 */	NULL, /* sched_getparam */
+	/* 156 */	NULL, /* sched_setscheduler */
+	/* 157 */	NULL, /* sched_getscheduler */
+	/* 158 */	NULL, /* sched_yield */
+	/* 159 */	NULL, /* sched_get_priority_max */
+	/* 160 */	NULL, /* sched_get_priority_min */
+	/* 161 */	NULL, /* unimplemented sys_sched_rr_get_interval */
+	/* 162 */	NULL, /* nanosleep */
+	/* 163 */	NULL, /* mremap */
+	/* 164 */	NULL, /* setresuid16 */
+	/* 165 */	NULL, /* getresuid16 */
+	/* 166 */	NULL, /* unimplemented vm86 */
+	/* 167 */	NULL, /* unimplemented query_module */
+	/* 168 */	NULL, /* poll */
+	/* 169 */	NULL, /* unimplemented nfsservctl */
+	/* 170 */	NULL, /* setresgid16 */
+	/* 171 */	NULL, /* getresgid16 */
+	/* 172 */	NULL, /* unimplemented prctl */
+	/* 173 */	NULL, /* rt_sigreturn */
+	/* 174 */	NULL, /* rt_sigaction */
+	/* 175 */	NULL, /* rt_sigprocmask */
+	/* 176 */	NULL, /* rt_sigpending */
+	/* 177 */	NULL, /* rt_sigtimedwait */
+	/* 178 */	NULL, /* rt_queueinfo */
+	/* 179 */	NULL, /* rt_sigsuspend */
+	/* 180 */	NULL, /* pread */
+	/* 181 */	NULL, /* pwrite */
+	/* 182 */	NULL, /* chown16 */
+	/* 183 */	NULL, /* __getcwd */
+	/* 184 */	NULL, /* unimplemented capget */
+	/* 185 */	NULL, /* unimplemented capset */
+	/* 186 */	NULL, /* sigaltstack */
+	/* 187 */	NULL, /* unimplemented sendfile */
+	/* 188 */	NULL, /* unimplemented getpmsg */
+	/* 189 */	NULL, /* unimplemented putpmsg */
+	/* 190 */	"vfork",
+	/* 191 */	NULL, /* ugetrlimit */
+#define linux_sys_mmap2_args linux_sys_mmap_args
+	/* 192 */	NULL, /* mmap2 */
+	/* 193 */	NULL, /* truncate64 */
+	/* 194 */	NULL, /* ftruncate64 */
+	/* 195 */	NULL, /* stat64 */
+	/* 196 */	NULL, /* lstat64 */
+	/* 197 */	NULL, /* fstat64 */
+	/* 198 */	NULL, /* __posix_lchown */
+	/* 199 */	NULL, /* getuid */
+	/* 200 */	NULL, /* getgid */
+	/* 201 */	NULL, /* geteuid */
+	/* 202 */	NULL, /* getegid */
+	/* 203 */	NULL, /* setreuid */
+	/* 204 */	NULL, /* setregid */
+	/* 205 */	NULL, /* getgroups */
+	/* 206 */	NULL, /* setgroups */
+	/* 207 */	NULL, /* __posix_fchown */
+	/* 208 */	NULL, /* setresuid */
+	/* 209 */	NULL, /* getresuid */
+	/* 210 */	NULL, /* setresgid */
+	/* 211 */	NULL, /* getresgid */
+	/* 212 */	NULL, /* __posix_chown */
+	/* 213 */	NULL, /* setuid */
+	/* 214 */	NULL, /* setgid */
+	/* 215 */	NULL, /* setfsuid */
+	/* 216 */	NULL, /* setfsgid */
+	/* 217 */	NULL, /* unimplemented pivot_root */
+	/* 218 */	NULL, /* mincore */
+	/* 219 */	NULL, /* madvise */
+	/* 220 */	NULL, /* getdents64 */
+	/* 221 */	NULL, /* fcntl64 */
+	/* 222 */	NULL, /* unimplemented / * unused * / */
+	/* 223 */	NULL, /* unimplemented / * unused * / */
+	/* 224 */	NULL, /* gettid */
+	/* 225 */	NULL, /* unimplemented readahead */
+	/* 226 */	NULL, /* setxattr */
+	/* 227 */	NULL, /* lsetxattr */
+	/* 228 */	NULL, /* fsetxattr */
+	/* 229 */	NULL, /* getxattr */
+	/* 230 */	NULL, /* lgetxattr */
+	/* 231 */	NULL, /* fgetxattr */
+	/* 232 */	NULL, /* listxattr */
+	/* 233 */	NULL, /* llistxattr */
+	/* 234 */	NULL, /* flistxattr */
+	/* 235 */	NULL, /* removexattr */
+	/* 236 */	NULL, /* lremovexattr */
+	/* 237 */	NULL, /* fremovexattr */
+	/* 238 */	NULL, /* tkill */
+	/* 239 */	NULL, /* unimplemented sendfile64 */
+	/* 240 */	NULL, /* futex */
+	/* 241 */	NULL, /* sched_setaffinity */
+	/* 242 */	NULL, /* sched_getaffinity */
+	/* 243 */	NULL, /* set_thread_area */
+	/* 244 */	NULL, /* get_thread_area */
+	/* 245 */	NULL, /* unimplemented io_setup */
+	/* 246 */	NULL, /* unimplemented io_destroy */
+	/* 247 */	NULL, /* unimplemented io_getevents */
+	/* 248 */	NULL, /* unimplemented io_submit */
+	/* 249 */	NULL, /* unimplemented io_cancel */
+	/* 250 */	NULL, /* fadvise64 */
+	/* 251 */	NULL, /* unimplemented / * unused * / */
+	/* 252 */	NULL, /* exit_group */
+	/* 253 */	NULL, /* unimplemented lookup_dcookie */
+	/* 254 */	NULL, /* unimplemented epoll_create */
+	/* 255 */	NULL, /* unimplemented epoll_ctl */
+	/* 256 */	NULL, /* unimplemented epoll_wait */
+	/* 257 */	NULL, /* unimplemented remap_file_pages */
+	/* 258 */	NULL, /* set_tid_address */
+	/* 259 */	NULL, /* unimplemented timer_create */
+	/* 260 */	NULL, /* unimplemented timer_settime */
+	/* 261 */	NULL, /* unimplemented timer_gettime */
+	/* 262 */	NULL, /* unimplemented timer_getoverrun */
+	/* 263 */	NULL, /* unimplemented timer_delete */
+	/* 264 */	NULL, /* clock_settime */
+	/* 265 */	NULL, /* clock_gettime */
+	/* 266 */	NULL, /* clock_getres */
+	/* 267 */	NULL, /* clock_nanosleep */
+	/* 268 */	NULL, /* statfs64 */
+	/* 269 */	NULL, /* fstatfs64 */
+	/* 270 */	NULL, /* tgkill */
+	/* 271 */	NULL, /* utimes */
+	/* 272 */	NULL, /* fadvise64_64 */
+	/* 273 */	NULL, /* unimplemented vserver */
+	/* 274 */	NULL, /* unimplemented mbind */
+	/* 275 */	NULL, /* unimplemented get_mempolicy */
+	/* 276 */	NULL, /* unimplemented set_mempolicy */
+	/* 277 */	NULL, /* unimplemented mq_open */
+	/* 278 */	NULL, /* unimplemented mq_unlink */
+	/* 279 */	NULL, /* unimplemented mq_timedsend */
+	/* 280 */	NULL, /* unimplemented mq_timedreceive */
+	/* 281 */	NULL, /* unimplemented mq_notify */
+	/* 282 */	NULL, /* unimplemented mq_getsetattr */
+	/* 283 */	NULL, /* unimplemented sys_kexec_load */
+	/* 284 */	NULL, /* unimplemented waitid */
+	/* 285 */	NULL, /* unimplemented / * unused * / */
+	/* 286 */	NULL, /* unimplemented add_key */
+	/* 287 */	NULL, /* unimplemented request_key */
+	/* 288 */	NULL, /* unimplemented keyctl */
+	/* 289 */	NULL, /* unimplemented ioprio_set */
+	/* 290 */	NULL, /* unimplemented ioprio_get */
+	/* 291 */	NULL, /* unimplemented inotify_init */
+	/* 292 */	NULL, /* unimplemented inotify_add_watch */
+	/* 293 */	NULL, /* unimplemented inotify_rm_watch */
+	/* 294 */	NULL, /* unimplemented migrate_pages */
+	/* 295 */	NULL, /* openat */
+	/* 296 */	NULL, /* mkdirat */
+	/* 297 */	NULL, /* mknodat */
+	/* 298 */	NULL, /* fchownat */
+	/* 299 */	NULL, /* unimplemented futimesat */
+	/* 300 */	NULL, /* fstatat64 */
+	/* 301 */	NULL, /* unlinkat */
+	/* 302 */	NULL, /* renameat */
+	/* 303 */	NULL, /* linkat */
+	/* 304 */	NULL, /* symlinkat */
+	/* 305 */	NULL, /* readlinkat */
+	/* 306 */	NULL, /* fchmodat */
+	/* 307 */	NULL, /* faccessat */
+	/* 308 */	NULL, /* unimplemented pselect6 */
+	/* 309 */	NULL, /* ppoll */
+	/* 310 */	NULL, /* unimplemented unshare */
+	/* 311 */	NULL, /* set_robust_list */
+	/* 312 */	NULL, /* get_robust_list */
+	/* 313 */	NULL, /* unimplemented splice */
+	/* 314 */	NULL, /* unimplemented sync_file_range */
+	/* 315 */	NULL, /* unimplemented tee */
+	/* 316 */	NULL, /* unimplemented vmsplice */
+	/* 317 */	NULL, /* unimplemented move_pages */
+	/* 318 */	NULL, /* unimplemented getcpu */
+	/* 319 */	NULL, /* unimplemented epoll_wait */
+	/* 320 */	NULL, /* utimensat */
+	/* 321 */	NULL, /* unimplemented signalfd */
+	/* 322 */	NULL, /* unimplemented timerfd_create */
+	/* 323 */	NULL, /* unimplemented eventfd */
+	/* 324 */	NULL, /* unimplemented fallocate */
+	/* 325 */	NULL, /* unimplemented timerfd_settime */
+	/* 326 */	NULL, /* unimplemented timerfd_gettime */
+	/* 327 */	NULL, /* unimplemented signalfd4 */
+	/* 328 */	NULL, /* unimplemented eventfd2 */
+	/* 329 */	NULL, /* unimplemented epoll_create1 */
+	/* 330 */	NULL, /* dup3 */
+	/* 331 */	NULL, /* pipe2 */
+	/* 332 */	NULL, /* unimplemented inotify_init1 */
+	/* 333 */	NULL, /* unimplemented preadv */
+	/* 334 */	NULL, /* unimplemented pwritev */
+	/* 335 */	NULL, /* unimplemented rt_tgsigqueueinfo */
+	/* 336 */	NULL, /* unimplemented perf_counter_open */
+	/* 337 */	NULL, /* unimplemented recvmmsg */
+	/* 338 */	NULL, /* unimplemented fanotify_init */
+	/* 339 */	NULL, /* unimplemented fanotify_mark */
+	/* 340 */	NULL, /* unimplemented prlimit64 */
+	/* 341 */	NULL, /* unimplemented name_to_handle_at */
+	/* 342 */	NULL, /* unimplemented open_by_handle_at */
+	/* 343 */	NULL, /* unimplemented clock_adjtime */
+	/* 344 */	NULL, /* unimplemented syncfs */
+	/* 345 */	NULL, /* unimplemented sendmmsg */
+	/* 346 */	NULL, /* unimplemented setns */
+	/* 347 */	NULL, /* unimplemented process_vm_readv */
+	/* 348 */	NULL, /* unimplemented process_vm_writev */
+	/* 349 */	NULL, /* unimplemented kcmp */
+	/* 350 */	NULL, /* unimplemented finit_module */
+	/* 351 */	NULL, /* filler */
+	/* 352 */	NULL, /* filler */
+	/* 353 */	NULL, /* filler */
+	/* 354 */	NULL, /* filler */
+	/* 355 */	NULL, /* filler */
+	/* 356 */	NULL, /* filler */
+	/* 357 */	NULL, /* filler */
+	/* 358 */	NULL, /* filler */
+	/* 359 */	NULL, /* filler */
+	/* 360 */	NULL, /* filler */
+	/* 361 */	NULL, /* filler */
+	/* 362 */	NULL, /* filler */
+	/* 363 */	NULL, /* filler */
+	/* 364 */	NULL, /* filler */
+	/* 365 */	NULL, /* filler */
+	/* 366 */	NULL, /* filler */
+	/* 367 */	NULL, /* filler */
+	/* 368 */	NULL, /* filler */
+	/* 369 */	NULL, /* filler */
+	/* 370 */	NULL, /* filler */
+	/* 371 */	NULL, /* filler */
+	/* 372 */	NULL, /* filler */
+	/* 373 */	NULL, /* filler */
+	/* 374 */	NULL, /* filler */
+	/* 375 */	NULL, /* filler */
+	/* 376 */	NULL, /* filler */
+	/* 377 */	NULL, /* filler */
+	/* 378 */	NULL, /* filler */
+	/* 379 */	NULL, /* filler */
+	/* 380 */	NULL, /* filler */
+	/* 381 */	NULL, /* filler */
+	/* 382 */	NULL, /* filler */
+	/* 383 */	NULL, /* filler */
+	/* 384 */	NULL, /* filler */
+	/* 385 */	NULL, /* filler */
+	/* 386 */	NULL, /* filler */
+	/* 387 */	NULL, /* filler */
+	/* 388 */	NULL, /* filler */
+	/* 389 */	NULL, /* filler */
+	/* 390 */	NULL, /* filler */
+	/* 391 */	NULL, /* filler */
+	/* 392 */	NULL, /* filler */
+	/* 393 */	NULL, /* filler */
+	/* 394 */	NULL, /* filler */
+	/* 395 */	NULL, /* filler */
+	/* 396 */	NULL, /* filler */
+	/* 397 */	NULL, /* filler */
+	/* 398 */	NULL, /* filler */
+	/* 399 */	NULL, /* filler */
+	/* 400 */	NULL, /* filler */
+	/* 401 */	NULL, /* filler */
+	/* 402 */	NULL, /* filler */
+	/* 403 */	NULL, /* filler */
+	/* 404 */	NULL, /* filler */
+	/* 405 */	NULL, /* filler */
+	/* 406 */	NULL, /* filler */
+	/* 407 */	NULL, /* filler */
+	/* 408 */	NULL, /* filler */
+	/* 409 */	NULL, /* filler */
+	/* 410 */	NULL, /* filler */
+	/* 411 */	NULL, /* filler */
+	/* 412 */	NULL, /* filler */
+	/* 413 */	NULL, /* filler */
+	/* 414 */	NULL, /* filler */
+	/* 415 */	NULL, /* filler */
+	/* 416 */	NULL, /* filler */
+	/* 417 */	NULL, /* filler */
+	/* 418 */	NULL, /* filler */
+	/* 419 */	NULL, /* filler */
+	/* 420 */	NULL, /* filler */
+	/* 421 */	NULL, /* filler */
+	/* 422 */	NULL, /* filler */
+	/* 423 */	NULL, /* filler */
+	/* 424 */	NULL, /* filler */
+	/* 425 */	NULL, /* filler */
+	/* 426 */	NULL, /* filler */
+	/* 427 */	NULL, /* filler */
+	/* 428 */	NULL, /* filler */
+	/* 429 */	NULL, /* filler */
+	/* 430 */	NULL, /* filler */
+	/* 431 */	NULL, /* filler */
+	/* 432 */	NULL, /* filler */
+	/* 433 */	NULL, /* filler */
+	/* 434 */	NULL, /* filler */
+	/* 435 */	NULL, /* filler */
+	/* 436 */	NULL, /* filler */
+	/* 437 */	NULL, /* filler */
+	/* 438 */	NULL, /* filler */
+	/* 439 */	NULL, /* filler */
+	/* 440 */	NULL, /* filler */
+	/* 441 */	NULL, /* filler */
+	/* 442 */	NULL, /* filler */
+	/* 443 */	NULL, /* filler */
+	/* 444 */	NULL, /* filler */
+	/* 445 */	NULL, /* filler */
+	/* 446 */	NULL, /* filler */
+	/* 447 */	NULL, /* filler */
+	/* 448 */	NULL, /* filler */
+	/* 449 */	NULL, /* filler */
+	/* 450 */	NULL, /* filler */
+	/* 451 */	NULL, /* filler */
+	/* 452 */	NULL, /* filler */
+	/* 453 */	NULL, /* filler */
+	/* 454 */	NULL, /* filler */
+	/* 455 */	NULL, /* filler */
+	/* 456 */	NULL, /* filler */
+	/* 457 */	NULL, /* filler */
+	/* 458 */	NULL, /* filler */
+	/* 459 */	NULL, /* filler */
+	/* 460 */	NULL, /* filler */
+	/* 461 */	NULL, /* filler */
+	/* 462 */	NULL, /* filler */
+	/* 463 */	NULL, /* filler */
+	/* 464 */	NULL, /* filler */
+	/* 465 */	NULL, /* filler */
+	/* 466 */	NULL, /* filler */
+	/* 467 */	NULL, /* filler */
+	/* 468 */	NULL, /* filler */
+	/* 469 */	NULL, /* filler */
+	/* 470 */	NULL, /* filler */
+	/* 471 */	NULL, /* filler */
+	/* 472 */	NULL, /* filler */
+	/* 473 */	NULL, /* filler */
+	/* 474 */	NULL, /* filler */
+	/* 475 */	NULL, /* filler */
+	/* 476 */	NULL, /* filler */
+	/* 477 */	NULL, /* filler */
+	/* 478 */	NULL, /* filler */
+	/* 479 */	NULL, /* filler */
+	/* 480 */	NULL, /* filler */
+	/* 481 */	NULL, /* filler */
+	/* 482 */	NULL, /* filler */
+	/* 483 */	NULL, /* filler */
+	/* 484 */	NULL, /* filler */
+	/* 485 */	NULL, /* filler */
+	/* 486 */	NULL, /* filler */
+	/* 487 */	NULL, /* filler */
+	/* 488 */	NULL, /* filler */
+	/* 489 */	NULL, /* filler */
+	/* 490 */	NULL, /* filler */
+	/* 491 */	NULL, /* filler */
+	/* 492 */	NULL, /* filler */
+	/* 493 */	NULL, /* filler */
+	/* 494 */	NULL, /* filler */
+	/* 495 */	NULL, /* filler */
+	/* 496 */	NULL, /* filler */
+	/* 497 */	NULL, /* filler */
+	/* 498 */	NULL, /* filler */
+	/* 499 */	NULL, /* filler */
+	/* 500 */	NULL, /* filler */
+	/* 501 */	NULL, /* filler */
+	/* 502 */	NULL, /* filler */
+	/* 503 */	NULL, /* filler */
+	/* 504 */	NULL, /* filler */
+	/* 505 */	NULL, /* filler */
+	/* 506 */	NULL, /* filler */
+	/* 507 */	NULL, /* filler */
+	/* 508 */	NULL, /* filler */
+	/* 509 */	NULL, /* filler */
+	/* 510 */	NULL, /* filler */
+	/* 511 */	NULL, /* filler */
+};
diff --git a/sys/compat/linux/arch/i386/linux_sysent.c b/sys/compat/linux/arch/i386/linux_sysent.c
index 97226b6..048b1c7 100644
--- a/sys/compat/linux/arch/i386/linux_sysent.c
+++ b/sys/compat/linux/arch/i386/linux_sysent.c
@@ -1,14 +1,14 @@
-/* $NetBSD: linux_sysent.c,v 1.103 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.118 2014/05/31 08:51:19 njoly Exp
+ * created from	NetBSD: syscalls.master,v 1.120 2015/03/23 07:30:15 ozaki-r Exp
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.103 2014/05/31 08:52:54 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #include <sys/param.h>
 #include <sys/poll.h>
@@ -30,1033 +30,1033 @@ __KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.103 2014/05/31 08:52:54 njoly Exp
 
 struct sysent linux_sysent[] = {
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_nosys },	/* 0 = syscall */
+	    (sy_call_t *)linux_sys_nosys, 0, 0 },	/* 0 = syscall */
 	{ ns(struct linux_sys_exit_args), 0,
-	    (sy_call_t *)linux_sys_exit },	/* 1 = exit */
+	    (sy_call_t *)linux_sys_exit, 0, 0 },	/* 1 = exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct sys_read_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_read },		/* 3 = read */
+	    (sy_call_t *)sys_read, 0, 0 },		/* 3 = read */
 	{ ns(struct sys_write_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_write },		/* 4 = write */
+	    (sy_call_t *)sys_write, 0, 0 },		/* 4 = write */
 	{ ns(struct linux_sys_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_open },	/* 5 = open */
+	    (sy_call_t *)linux_sys_open, 0, 0 },	/* 5 = open */
 	{ ns(struct sys_close_args), 0,
-	    (sy_call_t *)sys_close },		/* 6 = close */
+	    (sy_call_t *)sys_close, 0, 0 },		/* 6 = close */
 	{ ns(struct linux_sys_waitpid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_waitpid },	/* 7 = waitpid */
+	    (sy_call_t *)linux_sys_waitpid, 0, 0 },	/* 7 = waitpid */
 	{ ns(struct linux_sys_creat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_creat },	/* 8 = creat */
+	    (sy_call_t *)linux_sys_creat, 0, 0 },	/* 8 = creat */
 	{ ns(struct sys_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_link },		/* 9 = link */
+	    (sy_call_t *)sys_link, 0, 0 },		/* 9 = link */
 	{ ns(struct linux_sys_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_unlink },	/* 10 = unlink */
+	    (sy_call_t *)linux_sys_unlink, 0, 0 },	/* 10 = unlink */
 	{ ns(struct sys_execve_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_execve },		/* 11 = execve */
+	    (sy_call_t *)sys_execve, 0, 0 },		/* 11 = execve */
 	{ ns(struct sys_chdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chdir },		/* 12 = chdir */
+	    (sy_call_t *)sys_chdir, 0, 0 },		/* 12 = chdir */
 	{ ns(struct linux_sys_time_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_time },	/* 13 = time */
+	    (sy_call_t *)linux_sys_time, 0, 0 },	/* 13 = time */
 	{ ns(struct linux_sys_mknod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mknod },	/* 14 = mknod */
+	    (sy_call_t *)linux_sys_mknod, 0, 0 },	/* 14 = mknod */
 	{ ns(struct sys_chmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chmod },		/* 15 = chmod */
+	    (sy_call_t *)sys_chmod, 0, 0 },		/* 15 = chmod */
 	{ ns(struct linux_sys_lchown16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lchown16 },	/* 16 = lchown16 */
+	    (sy_call_t *)linux_sys_lchown16, 0, 0 },	/* 16 = lchown16 */
 	{ ns(struct linux_sys_break_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_break },	/* 17 = break */
+	    (sy_call_t *)linux_sys_break, 0, 0 },	/* 17 = break */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 18 = obsolete ostat */
+	    linux_sys_nosys, 0, 0 },			/* 18 = obsolete ostat */
 	{ ns(struct compat_43_sys_lseek_args), 0,
-	    (sy_call_t *)compat_43_sys_lseek },	/* 19 = lseek */
+	    (sy_call_t *)compat_43_sys_lseek, 0, 0 },	/* 19 = lseek */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid },		/* 20 = getpid */
+	    (sy_call_t *)sys_getpid, 0, 0 },		/* 20 = getpid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 21 = unimplemented mount */
+	    linux_sys_nosys, 0, 0 },			/* 21 = unimplemented mount */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 22 = unimplemented umount */
+	    linux_sys_nosys, 0, 0 },			/* 22 = unimplemented umount */
 	{ ns(struct sys_setuid_args), 0,
-	    (sy_call_t *)sys_setuid },		/* 23 = linux_setuid16 */
+	    (sy_call_t *)sys_setuid, 0, 0 },		/* 23 = linux_setuid16 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid },		/* 24 = linux_getuid16 */
+	    (sy_call_t *)sys_getuid, 0, 0 },		/* 24 = linux_getuid16 */
 	{ ns(struct linux_sys_stime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stime },	/* 25 = stime */
+	    (sy_call_t *)linux_sys_stime, 0, 0 },	/* 25 = stime */
 	{ ns(struct linux_sys_ptrace_args), 0,
-	    (sy_call_t *)linux_sys_ptrace },	/* 26 = ptrace */
+	    (sy_call_t *)linux_sys_ptrace, 0, 0 },	/* 26 = ptrace */
 	{ ns(struct linux_sys_alarm_args), 0,
-	    (sy_call_t *)linux_sys_alarm },	/* 27 = alarm */
+	    (sy_call_t *)linux_sys_alarm, 0, 0 },	/* 27 = alarm */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 28 = obsolete ofstat */
+	    linux_sys_nosys, 0, 0 },			/* 28 = obsolete ofstat */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_pause },	/* 29 = pause */
+	    (sy_call_t *)linux_sys_pause, 0, 0 },	/* 29 = pause */
 	{ ns(struct linux_sys_utime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_utime },	/* 30 = utime */
+	    (sy_call_t *)linux_sys_utime, 0, 0 },	/* 30 = utime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 31 = obsolete stty */
+	    linux_sys_nosys, 0, 0 },			/* 31 = obsolete stty */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 32 = obsolete gtty */
+	    linux_sys_nosys, 0, 0 },			/* 32 = obsolete gtty */
 	{ ns(struct sys_access_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_access },		/* 33 = access */
+	    (sy_call_t *)sys_access, 0, 0 },		/* 33 = access */
 	{ ns(struct linux_sys_nice_args), 0,
-	    (sy_call_t *)linux_sys_nice },	/* 34 = nice */
+	    (sy_call_t *)linux_sys_nice, 0, 0 },	/* 34 = nice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 35 = obsolete ftime */
+	    linux_sys_nosys, 0, 0 },			/* 35 = obsolete ftime */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct linux_sys_kill_args), 0,
-	    (sy_call_t *)linux_sys_kill },	/* 37 = kill */
+	    (sy_call_t *)linux_sys_kill, 0, 0 },	/* 37 = kill */
 	{ ns(struct sys___posix_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_rename },	/* 38 = __posix_rename */
+	    (sy_call_t *)sys___posix_rename, 0, 0 },	/* 38 = __posix_rename */
 	{ ns(struct sys_mkdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdir },		/* 39 = mkdir */
+	    (sy_call_t *)sys_mkdir, 0, 0 },		/* 39 = mkdir */
 	{ ns(struct sys_rmdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rmdir },		/* 40 = rmdir */
+	    (sy_call_t *)sys_rmdir, 0, 0 },		/* 40 = rmdir */
 	{ ns(struct sys_dup_args), 0,
-	    (sy_call_t *)sys_dup },		/* 41 = dup */
+	    (sy_call_t *)sys_dup, 0, 0 },		/* 41 = dup */
 	{ ns(struct linux_sys_pipe_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pipe },	/* 42 = pipe */
+	    (sy_call_t *)linux_sys_pipe, 0, 0 },	/* 42 = pipe */
 	{ ns(struct linux_sys_times_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_times },	/* 43 = times */
+	    (sy_call_t *)linux_sys_times, 0, 0 },	/* 43 = times */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 44 = obsolete prof */
+	    linux_sys_nosys, 0, 0 },			/* 44 = obsolete prof */
 	{ ns(struct linux_sys_brk_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_brk },	/* 45 = brk */
+	    (sy_call_t *)linux_sys_brk, 0, 0 },	/* 45 = brk */
 	{ ns(struct sys_setgid_args), 0,
-	    (sy_call_t *)sys_setgid },		/* 46 = linux_setgid16 */
+	    (sy_call_t *)sys_setgid, 0, 0 },		/* 46 = linux_setgid16 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid },		/* 47 = linux_getgid16 */
+	    (sy_call_t *)sys_getgid, 0, 0 },		/* 47 = linux_getgid16 */
 	{ ns(struct linux_sys_signal_args), 0,
-	    (sy_call_t *)linux_sys_signal },	/* 48 = signal */
+	    (sy_call_t *)linux_sys_signal, 0, 0 },	/* 48 = signal */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_geteuid },		/* 49 = linux_geteuid16 */
+	    (sy_call_t *)sys_geteuid, 0, 0 },		/* 49 = linux_geteuid16 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getegid },		/* 50 = linux_getegid16 */
+	    (sy_call_t *)sys_getegid, 0, 0 },		/* 50 = linux_getegid16 */
 	{ ns(struct sys_acct_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_acct },		/* 51 = acct */
+	    (sy_call_t *)sys_acct, 0, 0 },		/* 51 = acct */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 52 = obsolete phys */
+	    linux_sys_nosys, 0, 0 },			/* 52 = obsolete phys */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 53 = obsolete lock */
+	    linux_sys_nosys, 0, 0 },			/* 53 = obsolete lock */
 	{ ns(struct linux_sys_ioctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ioctl },	/* 54 = ioctl */
+	    (sy_call_t *)linux_sys_ioctl, 0, 0 },	/* 54 = ioctl */
 	{ ns(struct linux_sys_fcntl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fcntl },	/* 55 = fcntl */
+	    (sy_call_t *)linux_sys_fcntl, 0, 0 },	/* 55 = fcntl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 56 = obsolete mpx */
+	    linux_sys_nosys, 0, 0 },			/* 56 = obsolete mpx */
 	{ ns(struct sys_setpgid_args), 0,
-	    (sy_call_t *)sys_setpgid },		/* 57 = setpgid */
+	    (sy_call_t *)sys_setpgid, 0, 0 },		/* 57 = setpgid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 58 = obsolete ulimit */
+	    linux_sys_nosys, 0, 0 },			/* 58 = obsolete ulimit */
 	{ ns(struct linux_sys_oldolduname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_oldolduname },/* 59 = oldolduname */
+	    (sy_call_t *)linux_sys_oldolduname, 0, 0 },/* 59 = oldolduname */
 	{ ns(struct sys_umask_args), 0,
-	    (sy_call_t *)sys_umask },		/* 60 = umask */
+	    (sy_call_t *)sys_umask, 0, 0 },		/* 60 = umask */
 	{ ns(struct sys_chroot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chroot },		/* 61 = chroot */
+	    (sy_call_t *)sys_chroot, 0, 0 },		/* 61 = chroot */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 62 = unimplemented ustat */
+	    linux_sys_nosys, 0, 0 },			/* 62 = unimplemented ustat */
 	{ ns(struct sys_dup2_args), 0,
-	    (sy_call_t *)sys_dup2 },		/* 63 = dup2 */
+	    (sy_call_t *)sys_dup2, 0, 0 },		/* 63 = dup2 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getppid },		/* 64 = getppid */
+	    (sy_call_t *)sys_getppid, 0, 0 },		/* 64 = getppid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpgrp },		/* 65 = getpgrp */
+	    (sy_call_t *)sys_getpgrp, 0, 0 },		/* 65 = getpgrp */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_setsid },		/* 66 = setsid */
+	    (sy_call_t *)sys_setsid, 0, 0 },		/* 66 = setsid */
 	{ ns(struct linux_sys_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigaction },	/* 67 = sigaction */
+	    (sy_call_t *)linux_sys_sigaction, 0, 0 },	/* 67 = sigaction */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_siggetmask },/* 68 = siggetmask */
+	    (sy_call_t *)linux_sys_siggetmask, 0, 0 },/* 68 = siggetmask */
 	{ ns(struct linux_sys_sigsetmask_args), 0,
-	    (sy_call_t *)linux_sys_sigsetmask },/* 69 = sigsetmask */
+	    (sy_call_t *)linux_sys_sigsetmask, 0, 0 },/* 69 = sigsetmask */
 	{ ns(struct linux_sys_setreuid16_args), 0,
-	    (sy_call_t *)linux_sys_setreuid16 },/* 70 = setreuid16 */
+	    (sy_call_t *)linux_sys_setreuid16, 0, 0 },/* 70 = setreuid16 */
 	{ ns(struct linux_sys_setregid16_args), 0,
-	    (sy_call_t *)linux_sys_setregid16 },/* 71 = setregid16 */
+	    (sy_call_t *)linux_sys_setregid16, 0, 0 },/* 71 = setregid16 */
 	{ ns(struct linux_sys_sigsuspend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigsuspend },/* 72 = sigsuspend */
+	    (sy_call_t *)linux_sys_sigsuspend, 0, 0 },/* 72 = sigsuspend */
 	{ ns(struct linux_sys_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigpending },/* 73 = sigpending */
+	    (sy_call_t *)linux_sys_sigpending, 0, 0 },/* 73 = sigpending */
 	{ ns(struct compat_43_sys_sethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sethostname },/* 74 = sethostname */
+	    (sy_call_t *)compat_43_sys_sethostname, 0, 0 },/* 74 = sethostname */
 	{ ns(struct linux_sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setrlimit },	/* 75 = setrlimit */
+	    (sy_call_t *)linux_sys_setrlimit, 0, 0 },	/* 75 = setrlimit */
 	{ ns(struct linux_sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getrlimit },	/* 76 = getrlimit */
+	    (sy_call_t *)linux_sys_getrlimit, 0, 0 },	/* 76 = getrlimit */
 	{ ns(struct compat_50_sys_getrusage_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getrusage },/* 77 = getrusage */
+	    (sy_call_t *)compat_50_sys_getrusage, 0, 0 },/* 77 = getrusage */
 	{ ns(struct linux_sys_gettimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_gettimeofday },/* 78 = gettimeofday */
+	    (sy_call_t *)linux_sys_gettimeofday, 0, 0 },/* 78 = gettimeofday */
 	{ ns(struct linux_sys_settimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_settimeofday },/* 79 = settimeofday */
+	    (sy_call_t *)linux_sys_settimeofday, 0, 0 },/* 79 = settimeofday */
 	{ ns(struct linux_sys_getgroups16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getgroups16 },/* 80 = getgroups16 */
+	    (sy_call_t *)linux_sys_getgroups16, 0, 0 },/* 80 = getgroups16 */
 	{ ns(struct linux_sys_setgroups16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setgroups16 },/* 81 = setgroups16 */
+	    (sy_call_t *)linux_sys_setgroups16, 0, 0 },/* 81 = setgroups16 */
 	{ ns(struct linux_sys_oldselect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_oldselect },	/* 82 = oldselect */
+	    (sy_call_t *)linux_sys_oldselect, 0, 0 },	/* 82 = oldselect */
 	{ ns(struct sys_symlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlink },		/* 83 = symlink */
+	    (sy_call_t *)sys_symlink, 0, 0 },		/* 83 = symlink */
 	{ ns(struct compat_43_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_lstat },	/* 84 = oolstat */
+	    (sy_call_t *)compat_43_sys_lstat, 0, 0 },	/* 84 = oolstat */
 	{ ns(struct sys_readlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlink },	/* 85 = readlink */
+	    (sy_call_t *)sys_readlink, 0, 0 },	/* 85 = readlink */
 #ifdef EXEC_AOUT
 	{ ns(struct linux_sys_uselib_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_uselib },	/* 86 = uselib */
+	    (sy_call_t *)linux_sys_uselib, 0, 0 },	/* 86 = uselib */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 86 = unimplemented sys_uselib */
+	    linux_sys_nosys, 0, 0 },			/* 86 = unimplemented sys_uselib */
 #endif
 	{ ns(struct linux_sys_swapon_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_swapon },	/* 87 = swapon */
+	    (sy_call_t *)linux_sys_swapon, 0, 0 },	/* 87 = swapon */
 	{ ns(struct linux_sys_reboot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_reboot },	/* 88 = reboot */
+	    (sy_call_t *)linux_sys_reboot, 0, 0 },	/* 88 = reboot */
 	{ ns(struct linux_sys_readdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_readdir },	/* 89 = readdir */
+	    (sy_call_t *)linux_sys_readdir, 0, 0 },	/* 89 = readdir */
 	{ ns(struct linux_sys_old_mmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_old_mmap },	/* 90 = old_mmap */
+	    (sy_call_t *)linux_sys_old_mmap, 0, 0 },	/* 90 = old_mmap */
 	{ ns(struct sys_munmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munmap },		/* 91 = munmap */
+	    (sy_call_t *)sys_munmap, 0, 0 },		/* 91 = munmap */
 	{ ns(struct compat_43_sys_truncate_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_truncate },/* 92 = truncate */
+	    (sy_call_t *)compat_43_sys_truncate, 0, 0 },/* 92 = truncate */
 	{ ns(struct compat_43_sys_ftruncate_args), 0,
-	    (sy_call_t *)compat_43_sys_ftruncate },/* 93 = ftruncate */
+	    (sy_call_t *)compat_43_sys_ftruncate, 0, 0 },/* 93 = ftruncate */
 	{ ns(struct sys_fchmod_args), 0,
-	    (sy_call_t *)sys_fchmod },		/* 94 = fchmod */
+	    (sy_call_t *)sys_fchmod, 0, 0 },		/* 94 = fchmod */
 	{ ns(struct linux_sys_fchown16_args), 0,
-	    (sy_call_t *)linux_sys_fchown16 },	/* 95 = fchown16 */
+	    (sy_call_t *)linux_sys_fchown16, 0, 0 },	/* 95 = fchown16 */
 	{ ns(struct linux_sys_getpriority_args), 0,
-	    (sy_call_t *)linux_sys_getpriority },/* 96 = getpriority */
+	    (sy_call_t *)linux_sys_getpriority, 0, 0 },/* 96 = getpriority */
 	{ ns(struct sys_setpriority_args), 0,
-	    (sy_call_t *)sys_setpriority },	/* 97 = setpriority */
+	    (sy_call_t *)sys_setpriority, 0, 0 },	/* 97 = setpriority */
 	{ ns(struct sys_profil_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_profil },		/* 98 = profil */
+	    (sy_call_t *)sys_profil, 0, 0 },		/* 98 = profil */
 	{ ns(struct linux_sys_statfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_statfs },	/* 99 = statfs */
+	    (sy_call_t *)linux_sys_statfs, 0, 0 },	/* 99 = statfs */
 	{ ns(struct linux_sys_fstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatfs },	/* 100 = fstatfs */
+	    (sy_call_t *)linux_sys_fstatfs, 0, 0 },	/* 100 = fstatfs */
 	{ ns(struct linux_sys_ioperm_args), 0,
-	    (sy_call_t *)linux_sys_ioperm },	/* 101 = ioperm */
+	    (sy_call_t *)linux_sys_ioperm, 0, 0 },	/* 101 = ioperm */
 	{ ns(struct linux_sys_socketcall_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_socketcall },/* 102 = socketcall */
+	    (sy_call_t *)linux_sys_socketcall, 0, 0 },/* 102 = socketcall */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 103 = unimplemented syslog */
+	    linux_sys_nosys, 0, 0 },			/* 103 = unimplemented syslog */
 	{ ns(struct compat_50_sys_setitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_setitimer },/* 104 = setitimer */
+	    (sy_call_t *)compat_50_sys_setitimer, 0, 0 },/* 104 = setitimer */
 	{ ns(struct compat_50_sys_getitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getitimer },/* 105 = getitimer */
+	    (sy_call_t *)compat_50_sys_getitimer, 0, 0 },/* 105 = getitimer */
 	{ ns(struct linux_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stat },	/* 106 = stat */
+	    (sy_call_t *)linux_sys_stat, 0, 0 },	/* 106 = stat */
 	{ ns(struct linux_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lstat },	/* 107 = lstat */
+	    (sy_call_t *)linux_sys_lstat, 0, 0 },	/* 107 = lstat */
 	{ ns(struct linux_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstat },	/* 108 = fstat */
+	    (sy_call_t *)linux_sys_fstat, 0, 0 },	/* 108 = fstat */
 	{ ns(struct linux_sys_olduname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_olduname },	/* 109 = olduname */
+	    (sy_call_t *)linux_sys_olduname, 0, 0 },	/* 109 = olduname */
 	{ ns(struct linux_sys_iopl_args), 0,
-	    (sy_call_t *)linux_sys_iopl },	/* 110 = iopl */
+	    (sy_call_t *)linux_sys_iopl, 0, 0 },	/* 110 = iopl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 111 = unimplemented vhangup */
+	    linux_sys_nosys, 0, 0 },			/* 111 = unimplemented vhangup */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 112 = unimplemented idle */
+	    linux_sys_nosys, 0, 0 },			/* 112 = unimplemented idle */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 113 = unimplemented vm86old */
+	    linux_sys_nosys, 0, 0 },			/* 113 = unimplemented vm86old */
 	{ ns(struct linux_sys_wait4_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_wait4 },	/* 114 = wait4 */
+	    (sy_call_t *)linux_sys_wait4, 0, 0 },	/* 114 = wait4 */
 	{ ns(struct linux_sys_swapoff_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_swapoff },	/* 115 = swapoff */
+	    (sy_call_t *)linux_sys_swapoff, 0, 0 },	/* 115 = swapoff */
 	{ ns(struct linux_sys_sysinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sysinfo },	/* 116 = sysinfo */
+	    (sy_call_t *)linux_sys_sysinfo, 0, 0 },	/* 116 = sysinfo */
 	{ ns(struct linux_sys_ipc_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ipc },	/* 117 = ipc */
+	    (sy_call_t *)linux_sys_ipc, 0, 0 },	/* 117 = ipc */
 	{ ns(struct sys_fsync_args), 0,
-	    (sy_call_t *)sys_fsync },		/* 118 = fsync */
+	    (sy_call_t *)sys_fsync, 0, 0 },		/* 118 = fsync */
 	{ ns(struct linux_sys_sigreturn_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigreturn },	/* 119 = sigreturn */
+	    (sy_call_t *)linux_sys_sigreturn, 0, 0 },	/* 119 = sigreturn */
 	{ ns(struct linux_sys_clone_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clone },	/* 120 = clone */
+	    (sy_call_t *)linux_sys_clone, 0, 0 },	/* 120 = clone */
 	{ ns(struct linux_sys_setdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setdomainname },/* 121 = setdomainname */
+	    (sy_call_t *)linux_sys_setdomainname, 0, 0 },/* 121 = setdomainname */
 	{ ns(struct linux_sys_uname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_uname },	/* 122 = uname */
+	    (sy_call_t *)linux_sys_uname, 0, 0 },	/* 122 = uname */
 	{ ns(struct linux_sys_modify_ldt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_modify_ldt },/* 123 = modify_ldt */
+	    (sy_call_t *)linux_sys_modify_ldt, 0, 0 },/* 123 = modify_ldt */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 124 = unimplemented adjtimex */
+	    linux_sys_nosys, 0, 0 },			/* 124 = unimplemented adjtimex */
 	{ ns(struct linux_sys_mprotect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mprotect },	/* 125 = mprotect */
+	    (sy_call_t *)linux_sys_mprotect, 0, 0 },	/* 125 = mprotect */
 	{ ns(struct linux_sys_sigprocmask_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigprocmask },/* 126 = sigprocmask */
+	    (sy_call_t *)linux_sys_sigprocmask, 0, 0 },/* 126 = sigprocmask */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 127 = unimplemented create_module */
+	    linux_sys_nosys, 0, 0 },			/* 127 = unimplemented create_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 128 = unimplemented init_module */
+	    linux_sys_nosys, 0, 0 },			/* 128 = unimplemented init_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 129 = unimplemented delete_module */
+	    linux_sys_nosys, 0, 0 },			/* 129 = unimplemented delete_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 130 = unimplemented get_kernel_syms */
+	    linux_sys_nosys, 0, 0 },			/* 130 = unimplemented get_kernel_syms */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 131 = unimplemented quotactl */
+	    linux_sys_nosys, 0, 0 },			/* 131 = unimplemented quotactl */
 	{ ns(struct sys_getpgid_args), 0,
-	    (sy_call_t *)sys_getpgid },		/* 132 = getpgid */
+	    (sy_call_t *)sys_getpgid, 0, 0 },		/* 132 = getpgid */
 	{ ns(struct sys_fchdir_args), 0,
-	    (sy_call_t *)sys_fchdir },		/* 133 = fchdir */
+	    (sy_call_t *)sys_fchdir, 0, 0 },		/* 133 = fchdir */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 134 = unimplemented bdflush */
+	    linux_sys_nosys, 0, 0 },			/* 134 = unimplemented bdflush */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 135 = unimplemented sysfs */
+	    linux_sys_nosys, 0, 0 },			/* 135 = unimplemented sysfs */
 	{ ns(struct linux_sys_personality_args), 0,
-	    (sy_call_t *)linux_sys_personality },/* 136 = personality */
+	    (sy_call_t *)linux_sys_personality, 0, 0 },/* 136 = personality */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 137 = unimplemented afs_syscall */
+	    linux_sys_nosys, 0, 0 },			/* 137 = unimplemented afs_syscall */
 	{ ns(struct linux_sys_setfsuid_args), 0,
-	    (sy_call_t *)linux_sys_setfsuid },	/* 138 = linux_setfsuid16 */
+	    (sy_call_t *)linux_sys_setfsuid, 0, 0 },	/* 138 = linux_setfsuid16 */
 	{ ns(struct linux_sys_setfsgid_args), 0,
-	    (sy_call_t *)linux_sys_setfsgid },	/* 139 = linux_setfsgid16 */
+	    (sy_call_t *)linux_sys_setfsgid, 0, 0 },	/* 139 = linux_setfsgid16 */
 	{ ns(struct linux_sys_llseek_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_llseek },	/* 140 = llseek */
+	    (sy_call_t *)linux_sys_llseek, 0, 0 },	/* 140 = llseek */
 	{ ns(struct linux_sys_getdents_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getdents },	/* 141 = getdents */
+	    (sy_call_t *)linux_sys_getdents, 0, 0 },	/* 141 = getdents */
 	{ ns(struct linux_sys_select_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_select },	/* 142 = select */
+	    (sy_call_t *)linux_sys_select, 0, 0 },	/* 142 = select */
 	{ ns(struct sys_flock_args), 0,
-	    (sy_call_t *)sys_flock },		/* 143 = flock */
+	    (sy_call_t *)sys_flock, 0, 0 },		/* 143 = flock */
 	{ ns(struct sys___msync13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___msync13 },	/* 144 = __msync13 */
+	    (sy_call_t *)sys___msync13, 0, 0 },	/* 144 = __msync13 */
 	{ ns(struct sys_readv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readv },		/* 145 = readv */
+	    (sy_call_t *)sys_readv, 0, 0 },		/* 145 = readv */
 	{ ns(struct sys_writev_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_writev },		/* 146 = writev */
+	    (sy_call_t *)sys_writev, 0, 0 },		/* 146 = writev */
 	{ ns(struct sys_getsid_args), 0,
-	    (sy_call_t *)sys_getsid },		/* 147 = getsid */
+	    (sy_call_t *)sys_getsid, 0, 0 },		/* 147 = getsid */
 	{ ns(struct linux_sys_fdatasync_args), 0,
-	    (sy_call_t *)linux_sys_fdatasync },	/* 148 = fdatasync */
+	    (sy_call_t *)linux_sys_fdatasync, 0, 0 },	/* 148 = fdatasync */
 	{ ns(struct linux_sys___sysctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys___sysctl },	/* 149 = __sysctl */
+	    (sy_call_t *)linux_sys___sysctl, 0, 0 },	/* 149 = __sysctl */
 	{ ns(struct sys_mlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mlock },		/* 150 = mlock */
+	    (sy_call_t *)sys_mlock, 0, 0 },		/* 150 = mlock */
 	{ ns(struct sys_munlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munlock },		/* 151 = munlock */
+	    (sy_call_t *)sys_munlock, 0, 0 },		/* 151 = munlock */
 	{ ns(struct sys_mlockall_args), 0,
-	    (sy_call_t *)sys_mlockall },	/* 152 = mlockall */
+	    (sy_call_t *)sys_mlockall, 0, 0 },	/* 152 = mlockall */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_munlockall },	/* 153 = munlockall */
+	    (sy_call_t *)sys_munlockall, 0, 0 },	/* 153 = munlockall */
 	{ ns(struct linux_sys_sched_setparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setparam },/* 154 = sched_setparam */
+	    (sy_call_t *)linux_sys_sched_setparam, 0, 0 },/* 154 = sched_setparam */
 	{ ns(struct linux_sys_sched_getparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_getparam },/* 155 = sched_getparam */
+	    (sy_call_t *)linux_sys_sched_getparam, 0, 0 },/* 155 = sched_getparam */
 	{ ns(struct linux_sys_sched_setscheduler_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setscheduler },/* 156 = sched_setscheduler */
+	    (sy_call_t *)linux_sys_sched_setscheduler, 0, 0 },/* 156 = sched_setscheduler */
 	{ ns(struct linux_sys_sched_getscheduler_args), 0,
-	    (sy_call_t *)linux_sys_sched_getscheduler },/* 157 = sched_getscheduler */
+	    (sy_call_t *)linux_sys_sched_getscheduler, 0, 0 },/* 157 = sched_getscheduler */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_sched_yield },/* 158 = sched_yield */
+	    (sy_call_t *)linux_sys_sched_yield, 0, 0 },/* 158 = sched_yield */
 	{ ns(struct linux_sys_sched_get_priority_max_args), 0,
-	    (sy_call_t *)linux_sys_sched_get_priority_max },/* 159 = sched_get_priority_max */
+	    (sy_call_t *)linux_sys_sched_get_priority_max, 0, 0 },/* 159 = sched_get_priority_max */
 	{ ns(struct linux_sys_sched_get_priority_min_args), 0,
-	    (sy_call_t *)linux_sys_sched_get_priority_min },/* 160 = sched_get_priority_min */
+	    (sy_call_t *)linux_sys_sched_get_priority_min, 0, 0 },/* 160 = sched_get_priority_min */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 161 = unimplemented sys_sched_rr_get_interval */
+	    linux_sys_nosys, 0, 0 },			/* 161 = unimplemented sys_sched_rr_get_interval */
 	{ ns(struct linux_sys_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_nanosleep },	/* 162 = nanosleep */
+	    (sy_call_t *)linux_sys_nanosleep, 0, 0 },	/* 162 = nanosleep */
 	{ ns(struct linux_sys_mremap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mremap },	/* 163 = mremap */
+	    (sy_call_t *)linux_sys_mremap, 0, 0 },	/* 163 = mremap */
 	{ ns(struct linux_sys_setresuid16_args), 0,
-	    (sy_call_t *)linux_sys_setresuid16 },/* 164 = setresuid16 */
+	    (sy_call_t *)linux_sys_setresuid16, 0, 0 },/* 164 = setresuid16 */
 	{ ns(struct linux_sys_getresuid16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresuid16 },/* 165 = getresuid16 */
+	    (sy_call_t *)linux_sys_getresuid16, 0, 0 },/* 165 = getresuid16 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 166 = unimplemented vm86 */
+	    linux_sys_nosys, 0, 0 },			/* 166 = unimplemented vm86 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 167 = unimplemented query_module */
+	    linux_sys_nosys, 0, 0 },			/* 167 = unimplemented query_module */
 	{ ns(struct sys_poll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_poll },		/* 168 = poll */
+	    (sy_call_t *)sys_poll, 0, 0 },		/* 168 = poll */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 169 = unimplemented nfsservctl */
+	    linux_sys_nosys, 0, 0 },			/* 169 = unimplemented nfsservctl */
 	{ ns(struct linux_sys_setresgid16_args), 0,
-	    (sy_call_t *)linux_sys_setresgid16 },/* 170 = setresgid16 */
+	    (sy_call_t *)linux_sys_setresgid16, 0, 0 },/* 170 = setresgid16 */
 	{ ns(struct linux_sys_getresgid16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresgid16 },/* 171 = getresgid16 */
+	    (sy_call_t *)linux_sys_getresgid16, 0, 0 },/* 171 = getresgid16 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 172 = unimplemented prctl */
+	    linux_sys_nosys, 0, 0 },			/* 172 = unimplemented prctl */
 	{ ns(struct linux_sys_rt_sigreturn_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigreturn },/* 173 = rt_sigreturn */
+	    (sy_call_t *)linux_sys_rt_sigreturn, 0, 0 },/* 173 = rt_sigreturn */
 	{ ns(struct linux_sys_rt_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigaction },/* 174 = rt_sigaction */
+	    (sy_call_t *)linux_sys_rt_sigaction, 0, 0 },/* 174 = rt_sigaction */
 	{ ns(struct linux_sys_rt_sigprocmask_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigprocmask },/* 175 = rt_sigprocmask */
+	    (sy_call_t *)linux_sys_rt_sigprocmask, 0, 0 },/* 175 = rt_sigprocmask */
 	{ ns(struct linux_sys_rt_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigpending },/* 176 = rt_sigpending */
+	    (sy_call_t *)linux_sys_rt_sigpending, 0, 0 },/* 176 = rt_sigpending */
 	{ ns(struct linux_sys_rt_sigtimedwait_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigtimedwait },/* 177 = rt_sigtimedwait */
+	    (sy_call_t *)linux_sys_rt_sigtimedwait, 0, 0 },/* 177 = rt_sigtimedwait */
 	{ ns(struct linux_sys_rt_queueinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_queueinfo },/* 178 = rt_queueinfo */
+	    (sy_call_t *)linux_sys_rt_queueinfo, 0, 0 },/* 178 = rt_queueinfo */
 	{ ns(struct linux_sys_rt_sigsuspend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigsuspend },/* 179 = rt_sigsuspend */
+	    (sy_call_t *)linux_sys_rt_sigsuspend, 0, 0 },/* 179 = rt_sigsuspend */
 	{ ns(struct linux_sys_pread_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG3_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pread },	/* 180 = pread */
+	    (sy_call_t *)linux_sys_pread, 0, 0 },	/* 180 = pread */
 	{ ns(struct linux_sys_pwrite_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG3_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pwrite },	/* 181 = pwrite */
+	    (sy_call_t *)linux_sys_pwrite, 0, 0 },	/* 181 = pwrite */
 	{ ns(struct linux_sys_chown16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_chown16 },	/* 182 = chown16 */
+	    (sy_call_t *)linux_sys_chown16, 0, 0 },	/* 182 = chown16 */
 	{ ns(struct sys___getcwd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getcwd },	/* 183 = __getcwd */
+	    (sy_call_t *)sys___getcwd, 0, 0 },	/* 183 = __getcwd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 184 = unimplemented capget */
+	    linux_sys_nosys, 0, 0 },			/* 184 = unimplemented capget */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 185 = unimplemented capset */
+	    linux_sys_nosys, 0, 0 },			/* 185 = unimplemented capset */
 	{ ns(struct linux_sys_sigaltstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigaltstack },/* 186 = sigaltstack */
+	    (sy_call_t *)linux_sys_sigaltstack, 0, 0 },/* 186 = sigaltstack */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 187 = unimplemented sendfile */
+	    linux_sys_nosys, 0, 0 },			/* 187 = unimplemented sendfile */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 188 = unimplemented getpmsg */
+	    linux_sys_nosys, 0, 0 },			/* 188 = unimplemented getpmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 189 = unimplemented putpmsg */
+	    linux_sys_nosys, 0, 0 },			/* 189 = unimplemented putpmsg */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys___vfork14 },	/* 190 = __vfork14 */
+	    (sy_call_t *)sys___vfork14, 0, 0 },	/* 190 = __vfork14 */
 	{ ns(struct linux_sys_ugetrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ugetrlimit },/* 191 = ugetrlimit */
+	    (sy_call_t *)linux_sys_ugetrlimit, 0, 0 },/* 191 = ugetrlimit */
 #define linux_sys_mmap2_args linux_sys_mmap_args
 	{ ns(struct linux_sys_mmap2_args), 0,
-	    (sy_call_t *)linux_sys_mmap2 },	/* 192 = mmap2 */
+	    (sy_call_t *)linux_sys_mmap2, 0, 0 },	/* 192 = mmap2 */
 	{ ns(struct linux_sys_truncate64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_truncate64 },/* 193 = truncate64 */
+	    (sy_call_t *)linux_sys_truncate64, 0, 0 },/* 193 = truncate64 */
 	{ ns(struct linux_sys_ftruncate64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64,
-	    (sy_call_t *)linux_sys_ftruncate64 },/* 194 = ftruncate64 */
+	    (sy_call_t *)linux_sys_ftruncate64, 0, 0 },/* 194 = ftruncate64 */
 	{ ns(struct linux_sys_stat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stat64 },	/* 195 = stat64 */
+	    (sy_call_t *)linux_sys_stat64, 0, 0 },	/* 195 = stat64 */
 	{ ns(struct linux_sys_lstat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lstat64 },	/* 196 = lstat64 */
+	    (sy_call_t *)linux_sys_lstat64, 0, 0 },	/* 196 = lstat64 */
 	{ ns(struct linux_sys_fstat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstat64 },	/* 197 = fstat64 */
+	    (sy_call_t *)linux_sys_fstat64, 0, 0 },	/* 197 = fstat64 */
 	{ ns(struct sys___posix_lchown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_lchown },	/* 198 = __posix_lchown */
+	    (sy_call_t *)sys___posix_lchown, 0, 0 },	/* 198 = __posix_lchown */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid },		/* 199 = getuid */
+	    (sy_call_t *)sys_getuid, 0, 0 },		/* 199 = getuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid },		/* 200 = getgid */
+	    (sy_call_t *)sys_getgid, 0, 0 },		/* 200 = getgid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_geteuid },		/* 201 = geteuid */
+	    (sy_call_t *)sys_geteuid, 0, 0 },		/* 201 = geteuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getegid },		/* 202 = getegid */
+	    (sy_call_t *)sys_getegid, 0, 0 },		/* 202 = getegid */
 	{ ns(struct sys_setreuid_args), 0,
-	    (sy_call_t *)sys_setreuid },	/* 203 = setreuid */
+	    (sy_call_t *)sys_setreuid, 0, 0 },	/* 203 = setreuid */
 	{ ns(struct sys_setregid_args), 0,
-	    (sy_call_t *)sys_setregid },	/* 204 = setregid */
+	    (sy_call_t *)sys_setregid, 0, 0 },	/* 204 = setregid */
 	{ ns(struct sys_getgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getgroups },	/* 205 = getgroups */
+	    (sy_call_t *)sys_getgroups, 0, 0 },	/* 205 = getgroups */
 	{ ns(struct sys_setgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setgroups },	/* 206 = setgroups */
+	    (sy_call_t *)sys_setgroups, 0, 0 },	/* 206 = setgroups */
 	{ ns(struct sys___posix_fchown_args), 0,
-	    (sy_call_t *)sys___posix_fchown },	/* 207 = __posix_fchown */
+	    (sy_call_t *)sys___posix_fchown, 0, 0 },	/* 207 = __posix_fchown */
 	{ ns(struct linux_sys_setresuid_args), 0,
-	    (sy_call_t *)linux_sys_setresuid },	/* 208 = setresuid */
+	    (sy_call_t *)linux_sys_setresuid, 0, 0 },	/* 208 = setresuid */
 	{ ns(struct linux_sys_getresuid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresuid },	/* 209 = getresuid */
+	    (sy_call_t *)linux_sys_getresuid, 0, 0 },	/* 209 = getresuid */
 	{ ns(struct linux_sys_setresgid_args), 0,
-	    (sy_call_t *)linux_sys_setresgid },	/* 210 = setresgid */
+	    (sy_call_t *)linux_sys_setresgid, 0, 0 },	/* 210 = setresgid */
 	{ ns(struct linux_sys_getresgid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresgid },	/* 211 = getresgid */
+	    (sy_call_t *)linux_sys_getresgid, 0, 0 },	/* 211 = getresgid */
 	{ ns(struct sys___posix_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_chown },	/* 212 = __posix_chown */
+	    (sy_call_t *)sys___posix_chown, 0, 0 },	/* 212 = __posix_chown */
 	{ ns(struct sys_setuid_args), 0,
-	    (sy_call_t *)sys_setuid },		/* 213 = setuid */
+	    (sy_call_t *)sys_setuid, 0, 0 },		/* 213 = setuid */
 	{ ns(struct sys_setgid_args), 0,
-	    (sy_call_t *)sys_setgid },		/* 214 = setgid */
+	    (sy_call_t *)sys_setgid, 0, 0 },		/* 214 = setgid */
 	{ ns(struct linux_sys_setfsuid_args), 0,
-	    (sy_call_t *)linux_sys_setfsuid },	/* 215 = setfsuid */
+	    (sy_call_t *)linux_sys_setfsuid, 0, 0 },	/* 215 = setfsuid */
 	{ ns(struct linux_sys_setfsgid_args), 0,
-	    (sy_call_t *)linux_sys_setfsgid },	/* 216 = setfsgid */
+	    (sy_call_t *)linux_sys_setfsgid, 0, 0 },	/* 216 = setfsgid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 217 = unimplemented pivot_root */
+	    linux_sys_nosys, 0, 0 },			/* 217 = unimplemented pivot_root */
 	{ ns(struct sys_mincore_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mincore },		/* 218 = mincore */
+	    (sy_call_t *)sys_mincore, 0, 0 },		/* 218 = mincore */
 	{ ns(struct sys_madvise_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_madvise },		/* 219 = madvise */
+	    (sy_call_t *)sys_madvise, 0, 0 },		/* 219 = madvise */
 	{ ns(struct linux_sys_getdents64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getdents64 },/* 220 = getdents64 */
+	    (sy_call_t *)linux_sys_getdents64, 0, 0 },/* 220 = getdents64 */
 	{ ns(struct linux_sys_fcntl64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fcntl64 },	/* 221 = fcntl64 */
+	    (sy_call_t *)linux_sys_fcntl64, 0, 0 },	/* 221 = fcntl64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 222 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 222 = unimplemented / * unused * / */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 223 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 223 = unimplemented / * unused * / */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_gettid },	/* 224 = gettid */
+	    (sy_call_t *)linux_sys_gettid, 0, 0 },	/* 224 = gettid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 225 = unimplemented readahead */
+	    linux_sys_nosys, 0, 0 },			/* 225 = unimplemented readahead */
 	{ ns(struct linux_sys_setxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setxattr },	/* 226 = setxattr */
+	    (sy_call_t *)linux_sys_setxattr, 0, 0 },	/* 226 = setxattr */
 	{ ns(struct linux_sys_lsetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lsetxattr },	/* 227 = lsetxattr */
+	    (sy_call_t *)linux_sys_lsetxattr, 0, 0 },	/* 227 = lsetxattr */
 	{ ns(struct linux_sys_fsetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fsetxattr },	/* 228 = fsetxattr */
+	    (sy_call_t *)linux_sys_fsetxattr, 0, 0 },	/* 228 = fsetxattr */
 	{ ns(struct linux_sys_getxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getxattr },	/* 229 = getxattr */
+	    (sy_call_t *)linux_sys_getxattr, 0, 0 },	/* 229 = getxattr */
 	{ ns(struct linux_sys_lgetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lgetxattr },	/* 230 = lgetxattr */
+	    (sy_call_t *)linux_sys_lgetxattr, 0, 0 },	/* 230 = lgetxattr */
 	{ ns(struct linux_sys_fgetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fgetxattr },	/* 231 = fgetxattr */
+	    (sy_call_t *)linux_sys_fgetxattr, 0, 0 },	/* 231 = fgetxattr */
 	{ ns(struct linux_sys_listxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_listxattr },	/* 232 = listxattr */
+	    (sy_call_t *)linux_sys_listxattr, 0, 0 },	/* 232 = listxattr */
 	{ ns(struct linux_sys_llistxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_llistxattr },/* 233 = llistxattr */
+	    (sy_call_t *)linux_sys_llistxattr, 0, 0 },/* 233 = llistxattr */
 	{ ns(struct linux_sys_flistxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_flistxattr },/* 234 = flistxattr */
+	    (sy_call_t *)linux_sys_flistxattr, 0, 0 },/* 234 = flistxattr */
 	{ ns(struct linux_sys_removexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_removexattr },/* 235 = removexattr */
+	    (sy_call_t *)linux_sys_removexattr, 0, 0 },/* 235 = removexattr */
 	{ ns(struct linux_sys_lremovexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lremovexattr },/* 236 = lremovexattr */
+	    (sy_call_t *)linux_sys_lremovexattr, 0, 0 },/* 236 = lremovexattr */
 	{ ns(struct linux_sys_fremovexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fremovexattr },/* 237 = fremovexattr */
+	    (sy_call_t *)linux_sys_fremovexattr, 0, 0 },/* 237 = fremovexattr */
 	{ ns(struct linux_sys_tkill_args), 0,
-	    (sy_call_t *)linux_sys_tkill },	/* 238 = tkill */
+	    (sy_call_t *)linux_sys_tkill, 0, 0 },	/* 238 = tkill */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 239 = unimplemented sendfile64 */
+	    linux_sys_nosys, 0, 0 },			/* 239 = unimplemented sendfile64 */
 	{ ns(struct linux_sys_futex_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_futex },	/* 240 = futex */
+	    (sy_call_t *)linux_sys_futex, 0, 0 },	/* 240 = futex */
 	{ ns(struct linux_sys_sched_setaffinity_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setaffinity },/* 241 = sched_setaffinity */
+	    (sy_call_t *)linux_sys_sched_setaffinity, 0, 0 },/* 241 = sched_setaffinity */
 	{ ns(struct linux_sys_sched_getaffinity_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_getaffinity },/* 242 = sched_getaffinity */
+	    (sy_call_t *)linux_sys_sched_getaffinity, 0, 0 },/* 242 = sched_getaffinity */
 	{ ns(struct linux_sys_set_thread_area_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_thread_area },/* 243 = set_thread_area */
+	    (sy_call_t *)linux_sys_set_thread_area, 0, 0 },/* 243 = set_thread_area */
 	{ ns(struct linux_sys_get_thread_area_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_get_thread_area },/* 244 = get_thread_area */
+	    (sy_call_t *)linux_sys_get_thread_area, 0, 0 },/* 244 = get_thread_area */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 245 = unimplemented io_setup */
+	    linux_sys_nosys, 0, 0 },			/* 245 = unimplemented io_setup */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 246 = unimplemented io_destroy */
+	    linux_sys_nosys, 0, 0 },			/* 246 = unimplemented io_destroy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 247 = unimplemented io_getevents */
+	    linux_sys_nosys, 0, 0 },			/* 247 = unimplemented io_getevents */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 248 = unimplemented io_submit */
+	    linux_sys_nosys, 0, 0 },			/* 248 = unimplemented io_submit */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 249 = unimplemented io_cancel */
+	    linux_sys_nosys, 0, 0 },			/* 249 = unimplemented io_cancel */
 	{ ns(struct linux_sys_fadvise64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64,
-	    (sy_call_t *)linux_sys_fadvise64 },	/* 250 = fadvise64 */
+	    (sy_call_t *)linux_sys_fadvise64, 0, 0 },	/* 250 = fadvise64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 251 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 251 = unimplemented / * unused * / */
 	{ ns(struct linux_sys_exit_group_args), 0,
-	    (sy_call_t *)linux_sys_exit_group },/* 252 = exit_group */
+	    (sy_call_t *)linux_sys_exit_group, 0, 0 },/* 252 = exit_group */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 253 = unimplemented lookup_dcookie */
+	    linux_sys_nosys, 0, 0 },			/* 253 = unimplemented lookup_dcookie */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 254 = unimplemented epoll_create */
+	    linux_sys_nosys, 0, 0 },			/* 254 = unimplemented epoll_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 255 = unimplemented epoll_ctl */
+	    linux_sys_nosys, 0, 0 },			/* 255 = unimplemented epoll_ctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 256 = unimplemented epoll_wait */
+	    linux_sys_nosys, 0, 0 },			/* 256 = unimplemented epoll_wait */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 257 = unimplemented remap_file_pages */
+	    linux_sys_nosys, 0, 0 },			/* 257 = unimplemented remap_file_pages */
 	{ ns(struct linux_sys_set_tid_address_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_tid_address },/* 258 = set_tid_address */
+	    (sy_call_t *)linux_sys_set_tid_address, 0, 0 },/* 258 = set_tid_address */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 259 = unimplemented timer_create */
+	    linux_sys_nosys, 0, 0 },			/* 259 = unimplemented timer_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 260 = unimplemented timer_settime */
+	    linux_sys_nosys, 0, 0 },			/* 260 = unimplemented timer_settime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 261 = unimplemented timer_gettime */
+	    linux_sys_nosys, 0, 0 },			/* 261 = unimplemented timer_gettime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 262 = unimplemented timer_getoverrun */
+	    linux_sys_nosys, 0, 0 },			/* 262 = unimplemented timer_getoverrun */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 263 = unimplemented timer_delete */
+	    linux_sys_nosys, 0, 0 },			/* 263 = unimplemented timer_delete */
 	{ ns(struct linux_sys_clock_settime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_settime },/* 264 = clock_settime */
+	    (sy_call_t *)linux_sys_clock_settime, 0, 0 },/* 264 = clock_settime */
 	{ ns(struct linux_sys_clock_gettime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_gettime },/* 265 = clock_gettime */
+	    (sy_call_t *)linux_sys_clock_gettime, 0, 0 },/* 265 = clock_gettime */
 	{ ns(struct linux_sys_clock_getres_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_getres },/* 266 = clock_getres */
+	    (sy_call_t *)linux_sys_clock_getres, 0, 0 },/* 266 = clock_getres */
 	{ ns(struct linux_sys_clock_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_nanosleep },/* 267 = clock_nanosleep */
+	    (sy_call_t *)linux_sys_clock_nanosleep, 0, 0 },/* 267 = clock_nanosleep */
 	{ ns(struct linux_sys_statfs64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_statfs64 },	/* 268 = statfs64 */
+	    (sy_call_t *)linux_sys_statfs64, 0, 0 },	/* 268 = statfs64 */
 	{ ns(struct linux_sys_fstatfs64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatfs64 },	/* 269 = fstatfs64 */
+	    (sy_call_t *)linux_sys_fstatfs64, 0, 0 },	/* 269 = fstatfs64 */
 	{ ns(struct linux_sys_tgkill_args), 0,
-	    (sy_call_t *)linux_sys_tgkill },	/* 270 = tgkill */
+	    (sy_call_t *)linux_sys_tgkill, 0, 0 },	/* 270 = tgkill */
 	{ ns(struct compat_50_sys_utimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_utimes },/* 271 = utimes */
+	    (sy_call_t *)compat_50_sys_utimes, 0, 0 },/* 271 = utimes */
 	{ ns(struct linux_sys_fadvise64_64_args), SYCALL_NARGS64_VAL(2) | SYCALL_ARG2_64 | SYCALL_ARG1_64,
-	    (sy_call_t *)linux_sys_fadvise64_64 },/* 272 = fadvise64_64 */
+	    (sy_call_t *)linux_sys_fadvise64_64, 0, 0 },/* 272 = fadvise64_64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 273 = unimplemented vserver */
+	    linux_sys_nosys, 0, 0 },			/* 273 = unimplemented vserver */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 274 = unimplemented mbind */
+	    linux_sys_nosys, 0, 0 },			/* 274 = unimplemented mbind */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 275 = unimplemented get_mempolicy */
+	    linux_sys_nosys, 0, 0 },			/* 275 = unimplemented get_mempolicy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 276 = unimplemented set_mempolicy */
+	    linux_sys_nosys, 0, 0 },			/* 276 = unimplemented set_mempolicy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 277 = unimplemented mq_open */
+	    linux_sys_nosys, 0, 0 },			/* 277 = unimplemented mq_open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 278 = unimplemented mq_unlink */
+	    linux_sys_nosys, 0, 0 },			/* 278 = unimplemented mq_unlink */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 279 = unimplemented mq_timedsend */
+	    linux_sys_nosys, 0, 0 },			/* 279 = unimplemented mq_timedsend */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 280 = unimplemented mq_timedreceive */
+	    linux_sys_nosys, 0, 0 },			/* 280 = unimplemented mq_timedreceive */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 281 = unimplemented mq_notify */
+	    linux_sys_nosys, 0, 0 },			/* 281 = unimplemented mq_notify */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 282 = unimplemented mq_getsetattr */
+	    linux_sys_nosys, 0, 0 },			/* 282 = unimplemented mq_getsetattr */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 283 = unimplemented sys_kexec_load */
+	    linux_sys_nosys, 0, 0 },			/* 283 = unimplemented sys_kexec_load */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 284 = unimplemented waitid */
+	    linux_sys_nosys, 0, 0 },			/* 284 = unimplemented waitid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 285 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 285 = unimplemented / * unused * / */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 286 = unimplemented add_key */
+	    linux_sys_nosys, 0, 0 },			/* 286 = unimplemented add_key */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 287 = unimplemented request_key */
+	    linux_sys_nosys, 0, 0 },			/* 287 = unimplemented request_key */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 288 = unimplemented keyctl */
+	    linux_sys_nosys, 0, 0 },			/* 288 = unimplemented keyctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 289 = unimplemented ioprio_set */
+	    linux_sys_nosys, 0, 0 },			/* 289 = unimplemented ioprio_set */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 290 = unimplemented ioprio_get */
+	    linux_sys_nosys, 0, 0 },			/* 290 = unimplemented ioprio_get */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 291 = unimplemented inotify_init */
+	    linux_sys_nosys, 0, 0 },			/* 291 = unimplemented inotify_init */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 292 = unimplemented inotify_add_watch */
+	    linux_sys_nosys, 0, 0 },			/* 292 = unimplemented inotify_add_watch */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 293 = unimplemented inotify_rm_watch */
+	    linux_sys_nosys, 0, 0 },			/* 293 = unimplemented inotify_rm_watch */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 294 = unimplemented migrate_pages */
+	    linux_sys_nosys, 0, 0 },			/* 294 = unimplemented migrate_pages */
 	{ ns(struct linux_sys_openat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_openat },	/* 295 = openat */
+	    (sy_call_t *)linux_sys_openat, 0, 0 },	/* 295 = openat */
 	{ ns(struct sys_mkdirat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdirat },		/* 296 = mkdirat */
+	    (sy_call_t *)sys_mkdirat, 0, 0 },		/* 296 = mkdirat */
 	{ ns(struct linux_sys_mknodat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mknodat },	/* 297 = mknodat */
+	    (sy_call_t *)linux_sys_mknodat, 0, 0 },	/* 297 = mknodat */
 	{ ns(struct linux_sys_fchownat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fchownat },	/* 298 = fchownat */
+	    (sy_call_t *)linux_sys_fchownat, 0, 0 },	/* 298 = fchownat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 299 = unimplemented futimesat */
+	    linux_sys_nosys, 0, 0 },			/* 299 = unimplemented futimesat */
 	{ ns(struct linux_sys_fstatat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatat64 },	/* 300 = fstatat64 */
+	    (sy_call_t *)linux_sys_fstatat64, 0, 0 },	/* 300 = fstatat64 */
 	{ ns(struct linux_sys_unlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_unlinkat },	/* 301 = unlinkat */
+	    (sy_call_t *)linux_sys_unlinkat, 0, 0 },	/* 301 = unlinkat */
 	{ ns(struct sys_renameat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_renameat },	/* 302 = renameat */
+	    (sy_call_t *)sys_renameat, 0, 0 },	/* 302 = renameat */
 	{ ns(struct linux_sys_linkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_linkat },	/* 303 = linkat */
+	    (sy_call_t *)linux_sys_linkat, 0, 0 },	/* 303 = linkat */
 	{ ns(struct sys_symlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlinkat },	/* 304 = symlinkat */
+	    (sy_call_t *)sys_symlinkat, 0, 0 },	/* 304 = symlinkat */
 	{ ns(struct sys_readlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlinkat },	/* 305 = readlinkat */
+	    (sy_call_t *)sys_readlinkat, 0, 0 },	/* 305 = readlinkat */
 	{ ns(struct linux_sys_fchmodat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fchmodat },	/* 306 = fchmodat */
+	    (sy_call_t *)linux_sys_fchmodat, 0, 0 },	/* 306 = fchmodat */
 	{ ns(struct linux_sys_faccessat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_faccessat },	/* 307 = faccessat */
+	    (sy_call_t *)linux_sys_faccessat, 0, 0 },	/* 307 = faccessat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 308 = unimplemented pselect6 */
+	    linux_sys_nosys, 0, 0 },			/* 308 = unimplemented pselect6 */
 	{ ns(struct linux_sys_ppoll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ppoll },	/* 309 = ppoll */
+	    (sy_call_t *)linux_sys_ppoll, 0, 0 },	/* 309 = ppoll */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 310 = unimplemented unshare */
+	    linux_sys_nosys, 0, 0 },			/* 310 = unimplemented unshare */
 	{ ns(struct linux_sys_set_robust_list_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_robust_list },/* 311 = set_robust_list */
+	    (sy_call_t *)linux_sys_set_robust_list, 0, 0 },/* 311 = set_robust_list */
 	{ ns(struct linux_sys_get_robust_list_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_get_robust_list },/* 312 = get_robust_list */
+	    (sy_call_t *)linux_sys_get_robust_list, 0, 0 },/* 312 = get_robust_list */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 313 = unimplemented splice */
+	    linux_sys_nosys, 0, 0 },			/* 313 = unimplemented splice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 314 = unimplemented sync_file_range */
+	    linux_sys_nosys, 0, 0 },			/* 314 = unimplemented sync_file_range */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 315 = unimplemented tee */
+	    linux_sys_nosys, 0, 0 },			/* 315 = unimplemented tee */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 316 = unimplemented vmsplice */
+	    linux_sys_nosys, 0, 0 },			/* 316 = unimplemented vmsplice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 317 = unimplemented move_pages */
+	    linux_sys_nosys, 0, 0 },			/* 317 = unimplemented move_pages */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 318 = unimplemented getcpu */
+	    linux_sys_nosys, 0, 0 },			/* 318 = unimplemented getcpu */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 319 = unimplemented epoll_wait */
+	    linux_sys_nosys, 0, 0 },			/* 319 = unimplemented epoll_wait */
 	{ ns(struct linux_sys_utimensat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_utimensat },	/* 320 = utimensat */
+	    (sy_call_t *)linux_sys_utimensat, 0, 0 },	/* 320 = utimensat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 321 = unimplemented signalfd */
+	    linux_sys_nosys, 0, 0 },			/* 321 = unimplemented signalfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 322 = unimplemented timerfd_create */
+	    linux_sys_nosys, 0, 0 },			/* 322 = unimplemented timerfd_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 323 = unimplemented eventfd */
+	    linux_sys_nosys, 0, 0 },			/* 323 = unimplemented eventfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 324 = unimplemented fallocate */
+	    linux_sys_nosys, 0, 0 },			/* 324 = unimplemented fallocate */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 325 = unimplemented timerfd_settime */
+	    linux_sys_nosys, 0, 0 },			/* 325 = unimplemented timerfd_settime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 326 = unimplemented timerfd_gettime */
+	    linux_sys_nosys, 0, 0 },			/* 326 = unimplemented timerfd_gettime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 327 = unimplemented signalfd4 */
+	    linux_sys_nosys, 0, 0 },			/* 327 = unimplemented signalfd4 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 328 = unimplemented eventfd2 */
+	    linux_sys_nosys, 0, 0 },			/* 328 = unimplemented eventfd2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 329 = unimplemented epoll_create1 */
+	    linux_sys_nosys, 0, 0 },			/* 329 = unimplemented epoll_create1 */
 	{ ns(struct linux_sys_dup3_args), 0,
-	    (sy_call_t *)linux_sys_dup3 },	/* 330 = dup3 */
+	    (sy_call_t *)linux_sys_dup3, 0, 0 },	/* 330 = dup3 */
 	{ ns(struct linux_sys_pipe2_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pipe2 },	/* 331 = pipe2 */
+	    (sy_call_t *)linux_sys_pipe2, 0, 0 },	/* 331 = pipe2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 332 = unimplemented inotify_init1 */
+	    linux_sys_nosys, 0, 0 },			/* 332 = unimplemented inotify_init1 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 333 = unimplemented preadv */
+	    linux_sys_nosys, 0, 0 },			/* 333 = unimplemented preadv */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 334 = unimplemented pwritev */
+	    linux_sys_nosys, 0, 0 },			/* 334 = unimplemented pwritev */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 335 = unimplemented rt_tgsigqueueinfo */
+	    linux_sys_nosys, 0, 0 },			/* 335 = unimplemented rt_tgsigqueueinfo */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 336 = unimplemented perf_counter_open */
+	    linux_sys_nosys, 0, 0 },			/* 336 = unimplemented perf_counter_open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 337 = unimplemented recvmmsg */
+	    linux_sys_nosys, 0, 0 },			/* 337 = unimplemented recvmmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 338 = unimplemented fanotify_init */
+	    linux_sys_nosys, 0, 0 },			/* 338 = unimplemented fanotify_init */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 339 = unimplemented fanotify_mark */
+	    linux_sys_nosys, 0, 0 },			/* 339 = unimplemented fanotify_mark */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 340 = unimplemented prlimit64 */
+	    linux_sys_nosys, 0, 0 },			/* 340 = unimplemented prlimit64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 341 = unimplemented name_to_handle_at */
+	    linux_sys_nosys, 0, 0 },			/* 341 = unimplemented name_to_handle_at */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 342 = unimplemented open_by_handle_at */
+	    linux_sys_nosys, 0, 0 },			/* 342 = unimplemented open_by_handle_at */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 343 = unimplemented clock_adjtime */
+	    linux_sys_nosys, 0, 0 },			/* 343 = unimplemented clock_adjtime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 344 = unimplemented syncfs */
+	    linux_sys_nosys, 0, 0 },			/* 344 = unimplemented syncfs */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 345 = unimplemented sendmmsg */
+	    linux_sys_nosys, 0, 0 },			/* 345 = unimplemented sendmmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 346 = unimplemented setns */
+	    linux_sys_nosys, 0, 0 },			/* 346 = unimplemented setns */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 347 = unimplemented process_vm_readv */
+	    linux_sys_nosys, 0, 0 },			/* 347 = unimplemented process_vm_readv */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 348 = unimplemented process_vm_writev */
+	    linux_sys_nosys, 0, 0 },			/* 348 = unimplemented process_vm_writev */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 349 = unimplemented kcmp */
+	    linux_sys_nosys, 0, 0 },			/* 349 = unimplemented kcmp */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 350 = unimplemented finit_module */
+	    linux_sys_nosys, 0, 0 },			/* 350 = unimplemented finit_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 351 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 351 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 352 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 352 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 353 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 353 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 354 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 354 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 355 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 355 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 356 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 356 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 357 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 357 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 358 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 358 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 359 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 359 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 360 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 360 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 361 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 361 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 362 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 362 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 363 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 363 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 364 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 364 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 365 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 365 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 366 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 366 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 367 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 367 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 368 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 368 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 369 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 369 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 370 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 370 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 371 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 371 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 372 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 372 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 373 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 373 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 374 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 374 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 375 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 375 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 376 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 376 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 377 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 377 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 378 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 378 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 379 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 379 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 380 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 380 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 381 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 381 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 382 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 382 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 383 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 383 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 384 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 384 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 385 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 385 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 386 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 386 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 387 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 387 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 388 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 388 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 389 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 389 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 390 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 390 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 391 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 391 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 392 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 392 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 393 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 393 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 394 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 394 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 395 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 395 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 396 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 396 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 397 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 397 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 398 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 398 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 399 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 399 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 400 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 400 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 401 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 401 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 402 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 402 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 403 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 403 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 404 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 404 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 405 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 405 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 406 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 406 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 407 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 407 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 408 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 408 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 409 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 409 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 410 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 410 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 411 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 411 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 412 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 412 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 413 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 413 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 414 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 414 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 415 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 415 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 416 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 416 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 417 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 417 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 418 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 418 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 419 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 419 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 420 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 420 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 421 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 421 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 422 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 422 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 423 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 423 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 424 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 424 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 425 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 425 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 426 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 426 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 427 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 427 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 428 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 428 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 429 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 429 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 430 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 430 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 431 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 431 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 432 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 432 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 433 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 433 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 434 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 434 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 435 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 435 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 436 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 436 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 437 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 437 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 438 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 438 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 439 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 439 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 440 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 440 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 441 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 441 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 442 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 442 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 443 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 443 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 444 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 444 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 445 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 445 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 446 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 446 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 447 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 447 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 448 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 448 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 449 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 449 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 450 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 450 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 451 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 451 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 452 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 452 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 453 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 453 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 454 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 454 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 455 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 455 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 456 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 456 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 457 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 457 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 458 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 458 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 459 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 459 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 460 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 460 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 461 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 461 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 462 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 462 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 463 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 463 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 464 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 464 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 465 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 465 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 466 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 466 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 467 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 467 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 468 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 468 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 469 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 469 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 470 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 470 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 471 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 471 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 472 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 472 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 473 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 473 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 474 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 474 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 475 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 475 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 476 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 476 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 477 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 477 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 478 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 478 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 479 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 479 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 480 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 480 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 481 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 481 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 482 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 482 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 483 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 483 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 484 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 484 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 485 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 485 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 486 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 486 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 487 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 487 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 488 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 488 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 489 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 489 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 490 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 490 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 491 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 491 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 492 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 492 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 493 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 493 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 494 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 494 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 495 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 495 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 496 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 496 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 497 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 497 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 498 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 498 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 499 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 499 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 500 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 500 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 501 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 501 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 502 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 502 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 503 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 503 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 504 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 504 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 505 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 505 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 506 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 506 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 507 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 507 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 508 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 508 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 509 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 509 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 510 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 510 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 511 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 511 = filler */
 };
diff --git a/sys/compat/linux/arch/i386/linux_systrace_args.c b/sys/compat/linux/arch/i386/linux_systrace_args.c
new file mode 100644
index 0000000..e4fb339
--- /dev/null
+++ b/sys/compat/linux/arch/i386/linux_systrace_args.c
@@ -0,0 +1,6141 @@
+/* $NetBSD$ */
+
+/*
+ * System call argument to DTrace register array converstion.
+ *
+ * DO NOT EDIT-- this file is automatically generated.
+ * This file is part of the DTrace syscall provider.
+ */
+
+static void
+systrace_args(register_t sysnum, const void *params, uintptr_t *uarg, size_t *n_args)
+{
+	intptr_t *iarg  = (intptr_t *)uarg;
+	switch (sysnum) {
+	/* linux_sys_nosys */
+	case 0: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_exit */
+	case 1: {
+		struct linux_sys_exit_args *p = params;
+		iarg[0] = SCARG(p, rval); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_fork */
+	case 2: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_read */
+	case 3: {
+		struct sys_read_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* void * */
+		uarg[2] = SCARG(p, nbyte); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_write */
+	case 4: {
+		struct sys_write_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* const void * */
+		uarg[2] = SCARG(p, nbyte); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_open */
+	case 5: {
+		struct linux_sys_open_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, flags); /* int */
+		iarg[2] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_close */
+	case 6: {
+		struct sys_close_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_waitpid */
+	case 7: {
+		struct linux_sys_waitpid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, status); /* int * */
+		iarg[2] = SCARG(p, options); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_creat */
+	case 8: {
+		struct linux_sys_creat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_link */
+	case 9: {
+		struct sys_link_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, link); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_unlink */
+	case 10: {
+		struct linux_sys_unlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_execve */
+	case 11: {
+		struct sys_execve_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, argp); /* char ** */
+		uarg[2] = (intptr_t) SCARG(p, envp); /* char ** */
+		*n_args = 3;
+		break;
+	}
+	/* sys_chdir */
+	case 12: {
+		struct sys_chdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_time */
+	case 13: {
+		struct linux_sys_time_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, t); /* linux_time_t * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_mknod */
+	case 14: {
+		struct linux_sys_mknod_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		uarg[2] = SCARG(p, dev); /* unsigned */
+		*n_args = 3;
+		break;
+	}
+	/* sys_chmod */
+	case 15: {
+		struct sys_chmod_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_lchown16 */
+	case 16: {
+		struct linux_sys_lchown16_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, uid); /* linux_uid16_t */
+		iarg[2] = SCARG(p, gid); /* linux_gid16_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_break */
+	case 17: {
+		struct linux_sys_break_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, nsize); /* char * */
+		*n_args = 1;
+		break;
+	}
+	/* compat_43_sys_lseek */
+	case 19: {
+		struct compat_43_sys_lseek_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, offset); /* long */
+		iarg[2] = SCARG(p, whence); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getpid */
+	case 20: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_setuid */
+	case 23: {
+		struct sys_setuid_args *p = params;
+		uarg[0] = SCARG(p, uid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_getuid */
+	case 24: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_stime */
+	case 25: {
+		struct linux_sys_stime_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, t); /* linux_time_t * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_ptrace */
+	case 26: {
+		struct linux_sys_ptrace_args *p = params;
+		iarg[0] = SCARG(p, request); /* int */
+		iarg[1] = SCARG(p, pid); /* int */
+		iarg[2] = SCARG(p, addr); /* int */
+		iarg[3] = SCARG(p, data); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_alarm */
+	case 27: {
+		struct linux_sys_alarm_args *p = params;
+		uarg[0] = SCARG(p, secs); /* unsigned int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_pause */
+	case 29: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_utime */
+	case 30: {
+		struct linux_sys_utime_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, times); /* struct linux_utimbuf * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_access */
+	case 33: {
+		struct sys_access_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, flags); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_nice */
+	case 34: {
+		struct linux_sys_nice_args *p = params;
+		iarg[0] = SCARG(p, incr); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_sync */
+	case 36: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_kill */
+	case 37: {
+		struct linux_sys_kill_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		iarg[1] = SCARG(p, signum); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys___posix_rename */
+	case 38: {
+		struct sys___posix_rename_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, from); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, to); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_mkdir */
+	case 39: {
+		struct sys_mkdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_rmdir */
+	case 40: {
+		struct sys_rmdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_dup */
+	case 41: {
+		struct sys_dup_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_pipe */
+	case 42: {
+		struct linux_sys_pipe_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, pfds); /* int * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_times */
+	case 43: {
+		struct linux_sys_times_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tms); /* struct times * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_brk */
+	case 45: {
+		struct linux_sys_brk_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, nsize); /* char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_setgid */
+	case 46: {
+		struct sys_setgid_args *p = params;
+		iarg[0] = SCARG(p, gid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_getgid */
+	case 47: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_signal */
+	case 48: {
+		struct linux_sys_signal_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		iarg[1] = SCARG(p, handler); /* linux_handler_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_geteuid */
+	case 49: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getegid */
+	case 50: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_acct */
+	case 51: {
+		struct sys_acct_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_ioctl */
+	case 54: {
+		struct linux_sys_ioctl_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, com); /* u_long */
+		uarg[2] = (intptr_t) SCARG(p, data); /* void * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_fcntl */
+	case 55: {
+		struct linux_sys_fcntl_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, arg); /* void * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_setpgid */
+	case 57: {
+		struct sys_setpgid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		iarg[1] = SCARG(p, pgid); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_oldolduname */
+	case 59: {
+		struct linux_sys_oldolduname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, up); /* struct linux_oldold_utsname * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_umask */
+	case 60: {
+		struct sys_umask_args *p = params;
+		iarg[0] = SCARG(p, newmask); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_chroot */
+	case 61: {
+		struct sys_chroot_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_dup2 */
+	case 63: {
+		struct sys_dup2_args *p = params;
+		iarg[0] = SCARG(p, from); /* int */
+		iarg[1] = SCARG(p, to); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getppid */
+	case 64: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getpgrp */
+	case 65: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_setsid */
+	case 66: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_sigaction */
+	case 67: {
+		struct linux_sys_sigaction_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		uarg[1] = (intptr_t) SCARG(p, nsa); /* const struct linux_old_sigaction * */
+		uarg[2] = (intptr_t) SCARG(p, osa); /* struct linux_old_sigaction * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_siggetmask */
+	case 68: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_sigsetmask */
+	case 69: {
+		struct linux_sys_sigsetmask_args *p = params;
+		iarg[0] = SCARG(p, mask); /* linux_old_sigset_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_setreuid16 */
+	case 70: {
+		struct linux_sys_setreuid16_args *p = params;
+		iarg[0] = SCARG(p, ruid); /* linux_uid16_t */
+		iarg[1] = SCARG(p, euid); /* linux_uid16_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_setregid16 */
+	case 71: {
+		struct linux_sys_setregid16_args *p = params;
+		iarg[0] = SCARG(p, rgid); /* linux_gid16_t */
+		iarg[1] = SCARG(p, egid); /* linux_gid16_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_sigsuspend */
+	case 72: {
+		struct linux_sys_sigsuspend_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, restart); /* void * */
+		iarg[1] = SCARG(p, oldmask); /* int */
+		iarg[2] = SCARG(p, mask); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_sigpending */
+	case 73: {
+		struct linux_sys_sigpending_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set); /* linux_old_sigset_t * */
+		*n_args = 1;
+		break;
+	}
+	/* compat_43_sys_sethostname */
+	case 74: {
+		struct compat_43_sys_sethostname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, hostname); /* char * */
+		uarg[1] = SCARG(p, len); /* u_int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_setrlimit */
+	case 75: {
+		struct linux_sys_setrlimit_args *p = params;
+		uarg[0] = SCARG(p, which); /* u_int */
+		uarg[1] = (intptr_t) SCARG(p, rlp); /* struct orlimit * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_getrlimit */
+	case 76: {
+		struct linux_sys_getrlimit_args *p = params;
+		uarg[0] = SCARG(p, which); /* u_int */
+		uarg[1] = (intptr_t) SCARG(p, rlp); /* struct orlimit * */
+		*n_args = 2;
+		break;
+	}
+	/* compat_50_sys_getrusage */
+	case 77: {
+		struct compat_50_sys_getrusage_args *p = params;
+		iarg[0] = SCARG(p, who); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rusage); /* struct rusage50 * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_gettimeofday */
+	case 78: {
+		struct linux_sys_gettimeofday_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tp); /* struct timeval50 * */
+		uarg[1] = (intptr_t) SCARG(p, tzp); /* struct timezone * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_settimeofday */
+	case 79: {
+		struct linux_sys_settimeofday_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tp); /* struct timeval50 * */
+		uarg[1] = (intptr_t) SCARG(p, tzp); /* struct timezone * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_getgroups16 */
+	case 80: {
+		struct linux_sys_getgroups16_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset); /* linux_gid16_t * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_setgroups16 */
+	case 81: {
+		struct linux_sys_setgroups16_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset); /* linux_gid16_t * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_oldselect */
+	case 82: {
+		struct linux_sys_oldselect_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, lsp); /* struct linux_oldselect * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_symlink */
+	case 83: {
+		struct sys_symlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, link); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* compat_43_sys_lstat */
+	case 84: {
+		struct compat_43_sys_lstat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, ub); /* struct stat43 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_readlink */
+	case 85: {
+		struct sys_readlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* char * */
+		iarg[2] = SCARG(p, count); /* int */
+		*n_args = 3;
+		break;
+	}
+#ifdef EXEC_AOUT
+	/* linux_sys_uselib */
+	case 86: {
+		struct linux_sys_uselib_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+#else
+#endif
+	/* linux_sys_swapon */
+	case 87: {
+		struct linux_sys_swapon_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, name); /* char * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_reboot */
+	case 88: {
+		struct linux_sys_reboot_args *p = params;
+		iarg[0] = SCARG(p, magic1); /* int */
+		iarg[1] = SCARG(p, magic2); /* int */
+		iarg[2] = SCARG(p, cmd); /* int */
+		uarg[3] = (intptr_t) SCARG(p, arg); /* void * */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_readdir */
+	case 89: {
+		struct linux_sys_readdir_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, dent); /* void * */
+		uarg[2] = SCARG(p, count); /* unsigned int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_old_mmap */
+	case 90: {
+		struct linux_sys_old_mmap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, lmp); /* struct linux_oldmmap * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_munmap */
+	case 91: {
+		struct sys_munmap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* compat_43_sys_truncate */
+	case 92: {
+		struct compat_43_sys_truncate_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, length); /* long */
+		*n_args = 2;
+		break;
+	}
+	/* compat_43_sys_ftruncate */
+	case 93: {
+		struct compat_43_sys_ftruncate_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, length); /* long */
+		*n_args = 2;
+		break;
+	}
+	/* sys_fchmod */
+	case 94: {
+		struct sys_fchmod_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_fchown16 */
+	case 95: {
+		struct linux_sys_fchown16_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, uid); /* linux_uid16_t */
+		iarg[2] = SCARG(p, gid); /* linux_gid16_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_getpriority */
+	case 96: {
+		struct linux_sys_getpriority_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, who); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setpriority */
+	case 97: {
+		struct sys_setpriority_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, who); /* int */
+		iarg[2] = SCARG(p, prio); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_profil */
+	case 98: {
+		struct sys_profil_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, samples); /* void * */
+		uarg[1] = SCARG(p, size); /* u_int */
+		uarg[2] = SCARG(p, offset); /* u_int */
+		uarg[3] = SCARG(p, scale); /* u_int */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_statfs */
+	case 99: {
+		struct linux_sys_statfs_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_statfs * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_fstatfs */
+	case 100: {
+		struct linux_sys_fstatfs_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_statfs * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_ioperm */
+	case 101: {
+		struct linux_sys_ioperm_args *p = params;
+		uarg[0] = SCARG(p, lo); /* unsigned int */
+		uarg[1] = SCARG(p, hi); /* unsigned int */
+		iarg[2] = SCARG(p, val); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_socketcall */
+	case 102: {
+		struct linux_sys_socketcall_args *p = params;
+		iarg[0] = SCARG(p, what); /* int */
+		uarg[1] = (intptr_t) SCARG(p, args); /* void * */
+		*n_args = 2;
+		break;
+	}
+	/* compat_50_sys_setitimer */
+	case 104: {
+		struct compat_50_sys_setitimer_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, itv); /* struct itimerval50 * */
+		uarg[2] = (intptr_t) SCARG(p, oitv); /* struct itimerval50 * */
+		*n_args = 3;
+		break;
+	}
+	/* compat_50_sys_getitimer */
+	case 105: {
+		struct compat_50_sys_getitimer_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, itv); /* struct itimerval50 * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_stat */
+	case 106: {
+		struct linux_sys_stat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_stat * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_lstat */
+	case 107: {
+		struct linux_sys_lstat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_stat * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_fstat */
+	case 108: {
+		struct linux_sys_fstat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_stat * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_olduname */
+	case 109: {
+		struct linux_sys_olduname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, up); /* struct linux_old_utsname * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_iopl */
+	case 110: {
+		struct linux_sys_iopl_args *p = params;
+		iarg[0] = SCARG(p, level); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_wait4 */
+	case 114: {
+		struct linux_sys_wait4_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, status); /* int * */
+		iarg[2] = SCARG(p, options); /* int */
+		uarg[3] = (intptr_t) SCARG(p, rusage); /* struct rusage50 * */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_swapoff */
+	case 115: {
+		struct linux_sys_swapoff_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_sysinfo */
+	case 116: {
+		struct linux_sys_sysinfo_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, arg); /* struct linux_sysinfo * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_ipc */
+	case 117: {
+		struct linux_sys_ipc_args *p = params;
+		iarg[0] = SCARG(p, what); /* int */
+		iarg[1] = SCARG(p, a1); /* int */
+		iarg[2] = SCARG(p, a2); /* int */
+		iarg[3] = SCARG(p, a3); /* int */
+		uarg[4] = (intptr_t) SCARG(p, ptr); /* void * */
+		*n_args = 5;
+		break;
+	}
+	/* sys_fsync */
+	case 118: {
+		struct sys_fsync_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_sigreturn */
+	case 119: {
+		struct linux_sys_sigreturn_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, scp); /* struct linux_sigcontext * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_clone */
+	case 120: {
+		struct linux_sys_clone_args *p = params;
+		iarg[0] = SCARG(p, flags); /* int */
+		uarg[1] = (intptr_t) SCARG(p, stack); /* void * */
+		uarg[2] = (intptr_t) SCARG(p, parent_tidptr); /* void * */
+		uarg[3] = (intptr_t) SCARG(p, tls); /* void * */
+		uarg[4] = (intptr_t) SCARG(p, child_tidptr); /* void * */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_setdomainname */
+	case 121: {
+		struct linux_sys_setdomainname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, domainname); /* char * */
+		iarg[1] = SCARG(p, len); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_uname */
+	case 122: {
+		struct linux_sys_uname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, up); /* struct linux_utsname * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_modify_ldt */
+	case 123: {
+		struct linux_sys_modify_ldt_args *p = params;
+		iarg[0] = SCARG(p, func); /* int */
+		uarg[1] = (intptr_t) SCARG(p, ptr); /* void * */
+		uarg[2] = SCARG(p, bytecount); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_mprotect */
+	case 125: {
+		struct linux_sys_mprotect_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, start); /* const void * */
+		uarg[1] = SCARG(p, len); /* unsigned long */
+		iarg[2] = SCARG(p, prot); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_sigprocmask */
+	case 126: {
+		struct linux_sys_sigprocmask_args *p = params;
+		iarg[0] = SCARG(p, how); /* int */
+		uarg[1] = (intptr_t) SCARG(p, set); /* const linux_old_sigset_t * */
+		uarg[2] = (intptr_t) SCARG(p, oset); /* linux_old_sigset_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getpgid */
+	case 132: {
+		struct sys_getpgid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_fchdir */
+	case 133: {
+		struct sys_fchdir_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_personality */
+	case 136: {
+		struct linux_sys_personality_args *p = params;
+		uarg[0] = SCARG(p, per); /* unsigned long */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_setfsuid */
+	case 138: {
+		struct linux_sys_setfsuid_args *p = params;
+		uarg[0] = SCARG(p, uid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_setfsgid */
+	case 139: {
+		struct linux_sys_setfsgid_args *p = params;
+		iarg[0] = SCARG(p, gid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_llseek */
+	case 140: {
+		struct linux_sys_llseek_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, ohigh); /* u_int32_t */
+		uarg[2] = SCARG(p, olow); /* u_int32_t */
+		uarg[3] = (intptr_t) SCARG(p, res); /* void * */
+		iarg[4] = SCARG(p, whence); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_getdents */
+	case 141: {
+		struct linux_sys_getdents_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, dent); /* struct linux_dirent * */
+		uarg[2] = SCARG(p, count); /* unsigned int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_select */
+	case 142: {
+		struct linux_sys_select_args *p = params;
+		iarg[0] = SCARG(p, nfds); /* int */
+		uarg[1] = (intptr_t) SCARG(p, readfds); /* fd_set * */
+		uarg[2] = (intptr_t) SCARG(p, writefds); /* fd_set * */
+		uarg[3] = (intptr_t) SCARG(p, exceptfds); /* fd_set * */
+		uarg[4] = (intptr_t) SCARG(p, timeout); /* struct timeval50 * */
+		*n_args = 5;
+		break;
+	}
+	/* sys_flock */
+	case 143: {
+		struct sys_flock_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, how); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys___msync13 */
+	case 144: {
+		struct sys___msync13_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_readv */
+	case 145: {
+		struct sys_readv_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, iovp); /* const struct iovec * */
+		iarg[2] = SCARG(p, iovcnt); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_writev */
+	case 146: {
+		struct sys_writev_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, iovp); /* const struct iovec * */
+		iarg[2] = SCARG(p, iovcnt); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getsid */
+	case 147: {
+		struct sys_getsid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_fdatasync */
+	case 148: {
+		struct linux_sys_fdatasync_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys___sysctl */
+	case 149: {
+		struct linux_sys___sysctl_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, lsp); /* struct linux___sysctl * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_mlock */
+	case 150: {
+		struct sys_mlock_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_munlock */
+	case 151: {
+		struct sys_munlock_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_mlockall */
+	case 152: {
+		struct sys_mlockall_args *p = params;
+		iarg[0] = SCARG(p, flags); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_munlockall */
+	case 153: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_sched_setparam */
+	case 154: {
+		struct linux_sys_sched_setparam_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* const struct linux_sched_param * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_sched_getparam */
+	case 155: {
+		struct linux_sys_sched_getparam_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_sched_param * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_sched_setscheduler */
+	case 156: {
+		struct linux_sys_sched_setscheduler_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		iarg[1] = SCARG(p, policy); /* int */
+		uarg[2] = (intptr_t) SCARG(p, sp); /* const struct linux_sched_param * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_sched_getscheduler */
+	case 157: {
+		struct linux_sys_sched_getscheduler_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_sched_yield */
+	case 158: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_sched_get_priority_max */
+	case 159: {
+		struct linux_sys_sched_get_priority_max_args *p = params;
+		iarg[0] = SCARG(p, policy); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_sched_get_priority_min */
+	case 160: {
+		struct linux_sys_sched_get_priority_min_args *p = params;
+		iarg[0] = SCARG(p, policy); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_nanosleep */
+	case 162: {
+		struct linux_sys_nanosleep_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, rqtp); /* const struct linux_timespec * */
+		uarg[1] = (intptr_t) SCARG(p, rmtp); /* struct linux_timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_mremap */
+	case 163: {
+		struct linux_sys_mremap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, old_address); /* void * */
+		uarg[1] = SCARG(p, old_size); /* size_t */
+		uarg[2] = SCARG(p, new_size); /* size_t */
+		uarg[3] = SCARG(p, flags); /* u_long */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_setresuid16 */
+	case 164: {
+		struct linux_sys_setresuid16_args *p = params;
+		iarg[0] = SCARG(p, ruid); /* linux_uid16_t */
+		iarg[1] = SCARG(p, euid); /* linux_uid16_t */
+		iarg[2] = SCARG(p, suid); /* linux_uid16_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_getresuid16 */
+	case 165: {
+		struct linux_sys_getresuid16_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ruid); /* linux_uid16_t * */
+		uarg[1] = (intptr_t) SCARG(p, euid); /* linux_uid16_t * */
+		uarg[2] = (intptr_t) SCARG(p, suid); /* linux_uid16_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_poll */
+	case 168: {
+		struct sys_poll_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fds); /* struct pollfd * */
+		uarg[1] = SCARG(p, nfds); /* u_int */
+		iarg[2] = SCARG(p, timeout); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_setresgid16 */
+	case 170: {
+		struct linux_sys_setresgid16_args *p = params;
+		iarg[0] = SCARG(p, rgid); /* linux_gid16_t */
+		iarg[1] = SCARG(p, egid); /* linux_gid16_t */
+		iarg[2] = SCARG(p, sgid); /* linux_gid16_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_getresgid16 */
+	case 171: {
+		struct linux_sys_getresgid16_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, rgid); /* linux_gid16_t * */
+		uarg[1] = (intptr_t) SCARG(p, egid); /* linux_gid16_t * */
+		uarg[2] = (intptr_t) SCARG(p, sgid); /* linux_gid16_t * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_rt_sigreturn */
+	case 173: {
+		struct linux_sys_rt_sigreturn_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ucp); /* struct linux_ucontext * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_rt_sigaction */
+	case 174: {
+		struct linux_sys_rt_sigaction_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		uarg[1] = (intptr_t) SCARG(p, nsa); /* const struct linux_sigaction * */
+		uarg[2] = (intptr_t) SCARG(p, osa); /* struct linux_sigaction * */
+		uarg[3] = SCARG(p, sigsetsize); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_rt_sigprocmask */
+	case 175: {
+		struct linux_sys_rt_sigprocmask_args *p = params;
+		iarg[0] = SCARG(p, how); /* int */
+		uarg[1] = (intptr_t) SCARG(p, set); /* const linux_sigset_t * */
+		uarg[2] = (intptr_t) SCARG(p, oset); /* linux_sigset_t * */
+		uarg[3] = SCARG(p, sigsetsize); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_rt_sigpending */
+	case 176: {
+		struct linux_sys_rt_sigpending_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set); /* linux_sigset_t * */
+		uarg[1] = SCARG(p, sigsetsize); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_rt_sigtimedwait */
+	case 177: {
+		struct linux_sys_rt_sigtimedwait_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set); /* const linux_sigset_t * */
+		uarg[1] = (intptr_t) SCARG(p, info); /* linux_siginfo_t * */
+		uarg[2] = (intptr_t) SCARG(p, timeout); /* const struct linux_timespec * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_rt_queueinfo */
+	case 178: {
+		struct linux_sys_rt_queueinfo_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		iarg[1] = SCARG(p, signum); /* int */
+		uarg[2] = (intptr_t) SCARG(p, uinfo); /* linux_siginfo_t * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_rt_sigsuspend */
+	case 179: {
+		struct linux_sys_rt_sigsuspend_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, unewset); /* linux_sigset_t * */
+		uarg[1] = SCARG(p, sigsetsize); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_pread */
+	case 180: {
+		struct linux_sys_pread_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* char * */
+		uarg[2] = SCARG(p, nbyte); /* size_t */
+		iarg[3] = SCARG(p, offset); /* off_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_pwrite */
+	case 181: {
+		struct linux_sys_pwrite_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* char * */
+		uarg[2] = SCARG(p, nbyte); /* size_t */
+		iarg[3] = SCARG(p, offset); /* off_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_chown16 */
+	case 182: {
+		struct linux_sys_chown16_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, uid); /* linux_uid16_t */
+		iarg[2] = SCARG(p, gid); /* linux_gid16_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys___getcwd */
+	case 183: {
+		struct sys___getcwd_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, bufp); /* char * */
+		uarg[1] = SCARG(p, length); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_sigaltstack */
+	case 186: {
+		struct linux_sys_sigaltstack_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ss); /* const struct linux_sigaltstack * */
+		uarg[1] = (intptr_t) SCARG(p, oss); /* struct linux_sigaltstack * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___vfork14 */
+	case 190: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_ugetrlimit */
+	case 191: {
+		struct linux_sys_ugetrlimit_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rlp); /* struct orlimit * */
+		*n_args = 2;
+		break;
+	}
+#define linux_sys_mmap2_args linux_sys_mmap_args
+	/* linux_sys_mmap2 */
+	case 192: {
+		struct linux_sys_mmap2_args *p = params;
+		uarg[0] = SCARG(p, addr); /* unsigned long */
+		uarg[1] = SCARG(p, len); /* size_t */
+		iarg[2] = SCARG(p, prot); /* int */
+		iarg[3] = SCARG(p, flags); /* int */
+		iarg[4] = SCARG(p, fd); /* int */
+		iarg[5] = SCARG(p, offset); /* linux_off_t */
+		*n_args = 6;
+		break;
+	}
+	/* linux_sys_truncate64 */
+	case 193: {
+		struct linux_sys_truncate64_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, length); /* off_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_ftruncate64 */
+	case 194: {
+		struct linux_sys_ftruncate64_args *p = params;
+		uarg[0] = SCARG(p, fd); /* unsigned int */
+		iarg[1] = SCARG(p, length); /* off_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_stat64 */
+	case 195: {
+		struct linux_sys_stat64_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_stat64 * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_lstat64 */
+	case 196: {
+		struct linux_sys_lstat64_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_stat64 * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_fstat64 */
+	case 197: {
+		struct linux_sys_fstat64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sp); /* struct linux_stat64 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___posix_lchown */
+	case 198: {
+		struct sys___posix_lchown_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getuid */
+	case 199: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getgid */
+	case 200: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_geteuid */
+	case 201: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getegid */
+	case 202: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_setreuid */
+	case 203: {
+		struct sys_setreuid_args *p = params;
+		uarg[0] = SCARG(p, ruid); /* uid_t */
+		uarg[1] = SCARG(p, euid); /* uid_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setregid */
+	case 204: {
+		struct sys_setregid_args *p = params;
+		iarg[0] = SCARG(p, rgid); /* gid_t */
+		iarg[1] = SCARG(p, egid); /* gid_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getgroups */
+	case 205: {
+		struct sys_getgroups_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset); /* gid_t * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setgroups */
+	case 206: {
+		struct sys_setgroups_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset); /* gid_t * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___posix_fchown */
+	case 207: {
+		struct sys___posix_fchown_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_setresuid */
+	case 208: {
+		struct linux_sys_setresuid_args *p = params;
+		uarg[0] = SCARG(p, ruid); /* uid_t */
+		uarg[1] = SCARG(p, euid); /* uid_t */
+		uarg[2] = SCARG(p, suid); /* uid_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_getresuid */
+	case 209: {
+		struct linux_sys_getresuid_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ruid); /* uid_t * */
+		uarg[1] = (intptr_t) SCARG(p, euid); /* uid_t * */
+		uarg[2] = (intptr_t) SCARG(p, suid); /* uid_t * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_setresgid */
+	case 210: {
+		struct linux_sys_setresgid_args *p = params;
+		iarg[0] = SCARG(p, rgid); /* gid_t */
+		iarg[1] = SCARG(p, egid); /* gid_t */
+		iarg[2] = SCARG(p, sgid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_getresgid */
+	case 211: {
+		struct linux_sys_getresgid_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, rgid); /* gid_t * */
+		uarg[1] = (intptr_t) SCARG(p, egid); /* gid_t * */
+		uarg[2] = (intptr_t) SCARG(p, sgid); /* gid_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys___posix_chown */
+	case 212: {
+		struct sys___posix_chown_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_setuid */
+	case 213: {
+		struct sys_setuid_args *p = params;
+		uarg[0] = SCARG(p, uid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_setgid */
+	case 214: {
+		struct sys_setgid_args *p = params;
+		iarg[0] = SCARG(p, gid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_setfsuid */
+	case 215: {
+		struct linux_sys_setfsuid_args *p = params;
+		uarg[0] = SCARG(p, uid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_setfsgid */
+	case 216: {
+		struct linux_sys_setfsgid_args *p = params;
+		iarg[0] = SCARG(p, gid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_mincore */
+	case 218: {
+		struct sys_mincore_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		uarg[2] = (intptr_t) SCARG(p, vec); /* char * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_madvise */
+	case 219: {
+		struct sys_madvise_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		iarg[2] = SCARG(p, behav); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_getdents64 */
+	case 220: {
+		struct linux_sys_getdents64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, dent); /* struct linux_dirent64 * */
+		uarg[2] = SCARG(p, count); /* unsigned int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_fcntl64 */
+	case 221: {
+		struct linux_sys_fcntl64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, arg); /* void * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_gettid */
+	case 224: {
+		*n_args = 0;
+		break;
+	}
+	/* linux_sys_setxattr */
+	case 226: {
+		struct linux_sys_setxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_lsetxattr */
+	case 227: {
+		struct linux_sys_lsetxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_fsetxattr */
+	case 228: {
+		struct linux_sys_fsetxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_getxattr */
+	case 229: {
+		struct linux_sys_getxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_lgetxattr */
+	case 230: {
+		struct linux_sys_lgetxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_fgetxattr */
+	case 231: {
+		struct linux_sys_fgetxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_listxattr */
+	case 232: {
+		struct linux_sys_listxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, list); /* char * */
+		uarg[2] = SCARG(p, size); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_llistxattr */
+	case 233: {
+		struct linux_sys_llistxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, list); /* char * */
+		uarg[2] = SCARG(p, size); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_flistxattr */
+	case 234: {
+		struct linux_sys_flistxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, list); /* char * */
+		uarg[2] = SCARG(p, size); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_removexattr */
+	case 235: {
+		struct linux_sys_removexattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_lremovexattr */
+	case 236: {
+		struct linux_sys_lremovexattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_fremovexattr */
+	case 237: {
+		struct linux_sys_fremovexattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_tkill */
+	case 238: {
+		struct linux_sys_tkill_args *p = params;
+		iarg[0] = SCARG(p, tid); /* int */
+		iarg[1] = SCARG(p, sig); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_futex */
+	case 240: {
+		struct linux_sys_futex_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, uaddr); /* int * */
+		iarg[1] = SCARG(p, op); /* int */
+		iarg[2] = SCARG(p, val); /* int */
+		uarg[3] = (intptr_t) SCARG(p, timeout); /* const struct linux_timespec * */
+		uarg[4] = (intptr_t) SCARG(p, uaddr2); /* int * */
+		iarg[5] = SCARG(p, val3); /* int */
+		*n_args = 6;
+		break;
+	}
+	/* linux_sys_sched_setaffinity */
+	case 241: {
+		struct linux_sys_sched_setaffinity_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = SCARG(p, len); /* unsigned int */
+		uarg[2] = (intptr_t) SCARG(p, mask); /* unsigned long * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_sched_getaffinity */
+	case 242: {
+		struct linux_sys_sched_getaffinity_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = SCARG(p, len); /* unsigned int */
+		uarg[2] = (intptr_t) SCARG(p, mask); /* unsigned long * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_set_thread_area */
+	case 243: {
+		struct linux_sys_set_thread_area_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, desc); /* struct linux_user_desc * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_get_thread_area */
+	case 244: {
+		struct linux_sys_get_thread_area_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, desc); /* struct linux_user_desc * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_fadvise64 */
+	case 250: {
+		struct linux_sys_fadvise64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, offset); /* off_t */
+		uarg[2] = SCARG(p, len); /* size_t */
+		iarg[3] = SCARG(p, advice); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_exit_group */
+	case 252: {
+		struct linux_sys_exit_group_args *p = params;
+		iarg[0] = SCARG(p, error_code); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_set_tid_address */
+	case 258: {
+		struct linux_sys_set_tid_address_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tid); /* int * */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_clock_settime */
+	case 264: {
+		struct linux_sys_clock_settime_args *p = params;
+		iarg[0] = SCARG(p, which); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp); /* struct linux_timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_clock_gettime */
+	case 265: {
+		struct linux_sys_clock_gettime_args *p = params;
+		iarg[0] = SCARG(p, which); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp); /* struct linux_timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_clock_getres */
+	case 266: {
+		struct linux_sys_clock_getres_args *p = params;
+		iarg[0] = SCARG(p, which); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp); /* struct linux_timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_clock_nanosleep */
+	case 267: {
+		struct linux_sys_clock_nanosleep_args *p = params;
+		iarg[0] = SCARG(p, which); /* clockid_t */
+		iarg[1] = SCARG(p, flags); /* int */
+		uarg[2] = (intptr_t) SCARG(p, rqtp); /* struct linux_timespec * */
+		uarg[3] = (intptr_t) SCARG(p, rmtp); /* struct linux_timespec * */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_statfs64 */
+	case 268: {
+		struct linux_sys_statfs64_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = SCARG(p, sz); /* size_t */
+		uarg[2] = (intptr_t) SCARG(p, sp); /* struct linux_statfs64 * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_fstatfs64 */
+	case 269: {
+		struct linux_sys_fstatfs64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, sz); /* size_t */
+		uarg[2] = (intptr_t) SCARG(p, sp); /* struct linux_statfs64 * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_tgkill */
+	case 270: {
+		struct linux_sys_tgkill_args *p = params;
+		iarg[0] = SCARG(p, tgid); /* int */
+		iarg[1] = SCARG(p, tid); /* int */
+		iarg[2] = SCARG(p, sig); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* compat_50_sys_utimes */
+	case 271: {
+		struct compat_50_sys_utimes_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, tptr); /* const struct timeval50 * */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_fadvise64_64 */
+	case 272: {
+		struct linux_sys_fadvise64_64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, offset); /* off_t */
+		iarg[2] = SCARG(p, len); /* off_t */
+		iarg[3] = SCARG(p, advice); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_openat */
+	case 295: {
+		struct linux_sys_openat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, flags); /* int */
+		iarg[3] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_mkdirat */
+	case 296: {
+		struct sys_mkdirat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_mknodat */
+	case 297: {
+		struct linux_sys_mknodat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, mode); /* linux_umode_t */
+		uarg[3] = SCARG(p, dev); /* unsigned */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_fchownat */
+	case 298: {
+		struct linux_sys_fchownat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = SCARG(p, owner); /* uid_t */
+		iarg[3] = SCARG(p, group); /* gid_t */
+		iarg[4] = SCARG(p, flag); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux_sys_fstatat64 */
+	case 300: {
+		struct linux_sys_fstatat64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, sp); /* struct linux_stat64 * */
+		iarg[3] = SCARG(p, flag); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_unlinkat */
+	case 301: {
+		struct linux_sys_unlinkat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, flag); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_renameat */
+	case 302: {
+		struct sys_renameat_args *p = params;
+		iarg[0] = SCARG(p, fromfd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, from); /* const char * */
+		iarg[2] = SCARG(p, tofd); /* int */
+		uarg[3] = (intptr_t) SCARG(p, to); /* const char * */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_linkat */
+	case 303: {
+		struct linux_sys_linkat_args *p = params;
+		iarg[0] = SCARG(p, fd1); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name1); /* const char * */
+		iarg[2] = SCARG(p, fd2); /* int */
+		uarg[3] = (intptr_t) SCARG(p, name2); /* const char * */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* sys_symlinkat */
+	case 304: {
+		struct sys_symlinkat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path1); /* const char * */
+		iarg[1] = SCARG(p, fd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, path2); /* const char * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_readlinkat */
+	case 305: {
+		struct sys_readlinkat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, buf); /* char * */
+		uarg[3] = SCARG(p, bufsize); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_fchmodat */
+	case 306: {
+		struct linux_sys_fchmodat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_faccessat */
+	case 307: {
+		struct linux_sys_faccessat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, amode); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_ppoll */
+	case 309: {
+		struct linux_sys_ppoll_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fds); /* struct pollfd * */
+		iarg[1] = SCARG(p, nfds); /* int */
+		uarg[2] = (intptr_t) SCARG(p, timeout); /* struct linux_timespec * */
+		uarg[3] = (intptr_t) SCARG(p, sigset); /* linux_sigset_t * */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_set_robust_list */
+	case 311: {
+		struct linux_sys_set_robust_list_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, head); /* struct linux_robust_list_head * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_get_robust_list */
+	case 312: {
+		struct linux_sys_get_robust_list_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, head); /* struct linux_robust_list_head ** */
+		uarg[2] = (intptr_t) SCARG(p, len); /* size_t * */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_utimensat */
+	case 320: {
+		struct linux_sys_utimensat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, times); /* struct linux_timespec * */
+		iarg[3] = SCARG(p, flag); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* linux_sys_dup3 */
+	case 330: {
+		struct linux_sys_dup3_args *p = params;
+		iarg[0] = SCARG(p, from); /* int */
+		iarg[1] = SCARG(p, to); /* int */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_pipe2 */
+	case 331: {
+		struct linux_sys_pipe2_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, pfds); /* int * */
+		iarg[1] = SCARG(p, flags); /* int */
+		*n_args = 2;
+		break;
+	}
+	default:
+		*n_args = 0;
+		break;
+	};
+}
+static void
+systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
+{
+	const char *p = NULL;
+	switch (sysnum) {
+	/* linux_sys_nosys */
+	case 0:
+		break;
+	/* linux_sys_exit */
+	case 1:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fork */
+	case 2:
+		break;
+	/* sys_read */
+	case 3:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_write */
+	case 4:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_open */
+	case 5:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_close */
+	case 6:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_waitpid */
+	case 7:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_creat */
+	case 8:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_link */
+	case 9:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_unlink */
+	case 10:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_execve */
+	case 11:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "char **";
+			break;
+		case 2:
+			p = "char **";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_chdir */
+	case 12:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_time */
+	case 13:
+		switch(ndx) {
+		case 0:
+			p = "linux_time_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_mknod */
+	case 14:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		case 2:
+			p = "unsigned";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_chmod */
+	case 15:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_lchown16 */
+	case 16:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "linux_uid16_t";
+			break;
+		case 2:
+			p = "linux_gid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_break */
+	case 17:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_sys_lseek */
+	case 19:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "long";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpid */
+	case 20:
+		break;
+	/* sys_setuid */
+	case 23:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getuid */
+	case 24:
+		break;
+	/* linux_sys_stime */
+	case 25:
+		switch(ndx) {
+		case 0:
+			p = "linux_time_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_ptrace */
+	case 26:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_alarm */
+	case 27:
+		switch(ndx) {
+		case 0:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_pause */
+	case 29:
+		break;
+	/* linux_sys_utime */
+	case 30:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct linux_utimbuf *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_access */
+	case 33:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_nice */
+	case 34:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sync */
+	case 36:
+		break;
+	/* linux_sys_kill */
+	case 37:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___posix_rename */
+	case 38:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mkdir */
+	case 39:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_rmdir */
+	case 40:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_dup */
+	case 41:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_pipe */
+	case 42:
+		switch(ndx) {
+		case 0:
+			p = "int *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_times */
+	case 43:
+		switch(ndx) {
+		case 0:
+			p = "struct times *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_brk */
+	case 45:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setgid */
+	case 46:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getgid */
+	case 47:
+		break;
+	/* linux_sys_signal */
+	case 48:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux_handler_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_geteuid */
+	case 49:
+		break;
+	/* sys_getegid */
+	case 50:
+		break;
+	/* sys_acct */
+	case 51:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_ioctl */
+	case 54:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "u_long";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fcntl */
+	case 55:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setpgid */
+	case 57:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_oldolduname */
+	case 59:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_oldold_utsname *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_umask */
+	case 60:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_chroot */
+	case 61:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_dup2 */
+	case 63:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getppid */
+	case 64:
+		break;
+	/* sys_getpgrp */
+	case 65:
+		break;
+	/* sys_setsid */
+	case 66:
+		break;
+	/* linux_sys_sigaction */
+	case 67:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct linux_old_sigaction *";
+			break;
+		case 2:
+			p = "struct linux_old_sigaction *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_siggetmask */
+	case 68:
+		break;
+	/* linux_sys_sigsetmask */
+	case 69:
+		switch(ndx) {
+		case 0:
+			p = "linux_old_sigset_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setreuid16 */
+	case 70:
+		switch(ndx) {
+		case 0:
+			p = "linux_uid16_t";
+			break;
+		case 1:
+			p = "linux_uid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setregid16 */
+	case 71:
+		switch(ndx) {
+		case 0:
+			p = "linux_gid16_t";
+			break;
+		case 1:
+			p = "linux_gid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sigsuspend */
+	case 72:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sigpending */
+	case 73:
+		switch(ndx) {
+		case 0:
+			p = "linux_old_sigset_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_sys_sethostname */
+	case 74:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setrlimit */
+	case 75:
+		switch(ndx) {
+		case 0:
+			p = "u_int";
+			break;
+		case 1:
+			p = "struct orlimit *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getrlimit */
+	case 76:
+		switch(ndx) {
+		case 0:
+			p = "u_int";
+			break;
+		case 1:
+			p = "struct orlimit *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_50_sys_getrusage */
+	case 77:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct rusage50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_gettimeofday */
+	case 78:
+		switch(ndx) {
+		case 0:
+			p = "struct timeval50 *";
+			break;
+		case 1:
+			p = "struct timezone *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_settimeofday */
+	case 79:
+		switch(ndx) {
+		case 0:
+			p = "struct timeval50 *";
+			break;
+		case 1:
+			p = "struct timezone *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getgroups16 */
+	case 80:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux_gid16_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setgroups16 */
+	case 81:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux_gid16_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_oldselect */
+	case 82:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_oldselect *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_symlink */
+	case 83:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_sys_lstat */
+	case 84:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct stat43 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_readlink */
+	case 85:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+#ifdef EXEC_AOUT
+	/* linux_sys_uselib */
+	case 86:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* linux_sys_swapon */
+	case 87:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_reboot */
+	case 88:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_readdir */
+	case 89:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_old_mmap */
+	case 90:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_oldmmap *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_munmap */
+	case 91:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_sys_truncate */
+	case 92:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_sys_ftruncate */
+	case 93:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fchmod */
+	case 94:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fchown16 */
+	case 95:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux_uid16_t";
+			break;
+		case 2:
+			p = "linux_gid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getpriority */
+	case 96:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setpriority */
+	case 97:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_profil */
+	case 98:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		case 2:
+			p = "u_int";
+			break;
+		case 3:
+			p = "u_int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_statfs */
+	case 99:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct linux_statfs *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fstatfs */
+	case 100:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_statfs *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_ioperm */
+	case 101:
+		switch(ndx) {
+		case 0:
+			p = "unsigned int";
+			break;
+		case 1:
+			p = "unsigned int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_socketcall */
+	case 102:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_50_sys_setitimer */
+	case 104:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct itimerval50 *";
+			break;
+		case 2:
+			p = "struct itimerval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_50_sys_getitimer */
+	case 105:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct itimerval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_stat */
+	case 106:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct linux_stat *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_lstat */
+	case 107:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct linux_stat *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fstat */
+	case 108:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_stat *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_olduname */
+	case 109:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_old_utsname *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_iopl */
+	case 110:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_wait4 */
+	case 114:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "struct rusage50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_swapoff */
+	case 115:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sysinfo */
+	case 116:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_sysinfo *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_ipc */
+	case 117:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fsync */
+	case 118:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sigreturn */
+	case 119:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_sigcontext *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_clone */
+	case 120:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		case 4:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setdomainname */
+	case 121:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_uname */
+	case 122:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_utsname *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_modify_ldt */
+	case 123:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_mprotect */
+	case 125:
+		switch(ndx) {
+		case 0:
+			p = "const void *";
+			break;
+		case 1:
+			p = "unsigned long";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sigprocmask */
+	case 126:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const linux_old_sigset_t *";
+			break;
+		case 2:
+			p = "linux_old_sigset_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpgid */
+	case 132:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fchdir */
+	case 133:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_personality */
+	case 136:
+		switch(ndx) {
+		case 0:
+			p = "unsigned long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setfsuid */
+	case 138:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setfsgid */
+	case 139:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_llseek */
+	case 140:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "u_int32_t";
+			break;
+		case 2:
+			p = "u_int32_t";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getdents */
+	case 141:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_dirent *";
+			break;
+		case 2:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_select */
+	case 142:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "fd_set *";
+			break;
+		case 2:
+			p = "fd_set *";
+			break;
+		case 3:
+			p = "fd_set *";
+			break;
+		case 4:
+			p = "struct timeval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_flock */
+	case 143:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___msync13 */
+	case 144:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_readv */
+	case 145:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct iovec *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_writev */
+	case 146:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct iovec *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getsid */
+	case 147:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fdatasync */
+	case 148:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys___sysctl */
+	case 149:
+		switch(ndx) {
+		case 0:
+			p = "struct linux___sysctl *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mlock */
+	case 150:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_munlock */
+	case 151:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mlockall */
+	case 152:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_munlockall */
+	case 153:
+		break;
+	/* linux_sys_sched_setparam */
+	case 154:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "const struct linux_sched_param *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_getparam */
+	case 155:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "struct linux_sched_param *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_setscheduler */
+	case 156:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const struct linux_sched_param *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_getscheduler */
+	case 157:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_yield */
+	case 158:
+		break;
+	/* linux_sys_sched_get_priority_max */
+	case 159:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_get_priority_min */
+	case 160:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_nanosleep */
+	case 162:
+		switch(ndx) {
+		case 0:
+			p = "const struct linux_timespec *";
+			break;
+		case 1:
+			p = "struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_mremap */
+	case 163:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "u_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setresuid16 */
+	case 164:
+		switch(ndx) {
+		case 0:
+			p = "linux_uid16_t";
+			break;
+		case 1:
+			p = "linux_uid16_t";
+			break;
+		case 2:
+			p = "linux_uid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getresuid16 */
+	case 165:
+		switch(ndx) {
+		case 0:
+			p = "linux_uid16_t *";
+			break;
+		case 1:
+			p = "linux_uid16_t *";
+			break;
+		case 2:
+			p = "linux_uid16_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_poll */
+	case 168:
+		switch(ndx) {
+		case 0:
+			p = "struct pollfd *";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setresgid16 */
+	case 170:
+		switch(ndx) {
+		case 0:
+			p = "linux_gid16_t";
+			break;
+		case 1:
+			p = "linux_gid16_t";
+			break;
+		case 2:
+			p = "linux_gid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getresgid16 */
+	case 171:
+		switch(ndx) {
+		case 0:
+			p = "linux_gid16_t *";
+			break;
+		case 1:
+			p = "linux_gid16_t *";
+			break;
+		case 2:
+			p = "linux_gid16_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigreturn */
+	case 173:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_ucontext *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigaction */
+	case 174:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct linux_sigaction *";
+			break;
+		case 2:
+			p = "struct linux_sigaction *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigprocmask */
+	case 175:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const linux_sigset_t *";
+			break;
+		case 2:
+			p = "linux_sigset_t *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigpending */
+	case 176:
+		switch(ndx) {
+		case 0:
+			p = "linux_sigset_t *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigtimedwait */
+	case 177:
+		switch(ndx) {
+		case 0:
+			p = "const linux_sigset_t *";
+			break;
+		case 1:
+			p = "linux_siginfo_t *";
+			break;
+		case 2:
+			p = "const struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_queueinfo */
+	case 178:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "linux_siginfo_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_rt_sigsuspend */
+	case 179:
+		switch(ndx) {
+		case 0:
+			p = "linux_sigset_t *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_pread */
+	case 180:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_pwrite */
+	case 181:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_chown16 */
+	case 182:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "linux_uid16_t";
+			break;
+		case 2:
+			p = "linux_gid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___getcwd */
+	case 183:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sigaltstack */
+	case 186:
+		switch(ndx) {
+		case 0:
+			p = "const struct linux_sigaltstack *";
+			break;
+		case 1:
+			p = "struct linux_sigaltstack *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___vfork14 */
+	case 190:
+		break;
+	/* linux_sys_ugetrlimit */
+	case 191:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct orlimit *";
+			break;
+		default:
+			break;
+		};
+		break;
+#define linux_sys_mmap2_args linux_sys_mmap_args
+	/* linux_sys_mmap2 */
+	case 192:
+		switch(ndx) {
+		case 0:
+			p = "unsigned long";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "int";
+			break;
+		case 5:
+			p = "linux_off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_truncate64 */
+	case 193:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_ftruncate64 */
+	case 194:
+		switch(ndx) {
+		case 0:
+			p = "unsigned int";
+			break;
+		case 1:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_stat64 */
+	case 195:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct linux_stat64 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_lstat64 */
+	case 196:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct linux_stat64 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fstat64 */
+	case 197:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_stat64 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___posix_lchown */
+	case 198:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getuid */
+	case 199:
+		break;
+	/* sys_getgid */
+	case 200:
+		break;
+	/* sys_geteuid */
+	case 201:
+		break;
+	/* sys_getegid */
+	case 202:
+		break;
+	/* sys_setreuid */
+	case 203:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setregid */
+	case 204:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		case 1:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getgroups */
+	case 205:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "gid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setgroups */
+	case 206:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "gid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___posix_fchown */
+	case 207:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setresuid */
+	case 208:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getresuid */
+	case 209:
+		switch(ndx) {
+		case 0:
+			p = "uid_t *";
+			break;
+		case 1:
+			p = "uid_t *";
+			break;
+		case 2:
+			p = "uid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setresgid */
+	case 210:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		case 1:
+			p = "gid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getresgid */
+	case 211:
+		switch(ndx) {
+		case 0:
+			p = "gid_t *";
+			break;
+		case 1:
+			p = "gid_t *";
+			break;
+		case 2:
+			p = "gid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___posix_chown */
+	case 212:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setuid */
+	case 213:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setgid */
+	case 214:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setfsuid */
+	case 215:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_setfsgid */
+	case 216:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mincore */
+	case 218:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_madvise */
+	case 219:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getdents64 */
+	case 220:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_dirent64 *";
+			break;
+		case 2:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fcntl64 */
+	case 221:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_gettid */
+	case 224:
+		break;
+	/* linux_sys_setxattr */
+	case 226:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_lsetxattr */
+	case 227:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fsetxattr */
+	case 228:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_getxattr */
+	case 229:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_lgetxattr */
+	case 230:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fgetxattr */
+	case 231:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_listxattr */
+	case 232:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_llistxattr */
+	case 233:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_flistxattr */
+	case 234:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_removexattr */
+	case 235:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_lremovexattr */
+	case 236:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fremovexattr */
+	case 237:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_tkill */
+	case 238:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_futex */
+	case 240:
+		switch(ndx) {
+		case 0:
+			p = "int *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "const struct linux_timespec *";
+			break;
+		case 4:
+			p = "int *";
+			break;
+		case 5:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_setaffinity */
+	case 241:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "unsigned int";
+			break;
+		case 2:
+			p = "unsigned long *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_getaffinity */
+	case 242:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "unsigned int";
+			break;
+		case 2:
+			p = "unsigned long *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_set_thread_area */
+	case 243:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_user_desc *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_get_thread_area */
+	case 244:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_user_desc *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fadvise64 */
+	case 250:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "off_t";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_exit_group */
+	case 252:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_set_tid_address */
+	case 258:
+		switch(ndx) {
+		case 0:
+			p = "int *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_clock_settime */
+	case 264:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_clock_gettime */
+	case 265:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_clock_getres */
+	case 266:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_clock_nanosleep */
+	case 267:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "struct linux_timespec *";
+			break;
+		case 3:
+			p = "struct linux_timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_statfs64 */
+	case 268:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "struct linux_statfs64 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fstatfs64 */
+	case 269:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "struct linux_statfs64 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_tgkill */
+	case 270:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_50_sys_utimes */
+	case 271:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const struct timeval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fadvise64_64 */
+	case 272:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "off_t";
+			break;
+		case 2:
+			p = "off_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_openat */
+	case 295:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mkdirat */
+	case 296:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_mknodat */
+	case 297:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "linux_umode_t";
+			break;
+		case 3:
+			p = "unsigned";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fchownat */
+	case 298:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "uid_t";
+			break;
+		case 3:
+			p = "gid_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fstatat64 */
+	case 300:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "struct linux_stat64 *";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_unlinkat */
+	case 301:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_renameat */
+	case 302:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_linkat */
+	case 303:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "const char *";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_symlinkat */
+	case 304:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_readlinkat */
+	case 305:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "char *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_fchmodat */
+	case 306:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_faccessat */
+	case 307:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_ppoll */
+	case 309:
+		switch(ndx) {
+		case 0:
+			p = "struct pollfd *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "struct linux_timespec *";
+			break;
+		case 3:
+			p = "linux_sigset_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_set_robust_list */
+	case 311:
+		switch(ndx) {
+		case 0:
+			p = "struct linux_robust_list_head *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_get_robust_list */
+	case 312:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct linux_robust_list_head **";
+			break;
+		case 2:
+			p = "size_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_utimensat */
+	case 320:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "struct linux_timespec *";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_dup3 */
+	case 330:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_pipe2 */
+	case 331:
+		switch(ndx) {
+		case 0:
+			p = "int *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	default:
+		break;
+	};
+	if (p != NULL)
+		strlcpy(desc, p, descsz);
+}
+static void
+systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
+{
+	const char *p = NULL;
+	switch (sysnum) {
+	/* linux_sys_nosys */
+	case 0:
+	/* linux_sys_exit */
+	case 1:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fork */
+	case 2:
+	/* sys_read */
+	case 3:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_write */
+	case 4:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_open */
+	case 5:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_close */
+	case 6:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_waitpid */
+	case 7:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_creat */
+	case 8:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_link */
+	case 9:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_unlink */
+	case 10:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_execve */
+	case 11:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_chdir */
+	case 12:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_time */
+	case 13:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_mknod */
+	case 14:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_chmod */
+	case 15:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_lchown16 */
+	case 16:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_break */
+	case 17:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_sys_lseek */
+	case 19:
+		if (ndx == 0 || ndx == 1)
+			p = "long";
+		break;
+	/* sys_getpid */
+	case 20:
+	/* sys_setuid */
+	case 23:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getuid */
+	case 24:
+	/* linux_sys_stime */
+	case 25:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_ptrace */
+	case 26:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_alarm */
+	case 27:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_pause */
+	case 29:
+	/* linux_sys_utime */
+	case 30:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_access */
+	case 33:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_nice */
+	case 34:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sync */
+	case 36:
+	/* linux_sys_kill */
+	case 37:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___posix_rename */
+	case 38:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mkdir */
+	case 39:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_rmdir */
+	case 40:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_dup */
+	case 41:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_pipe */
+	case 42:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_times */
+	case 43:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_brk */
+	case 45:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setgid */
+	case 46:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getgid */
+	case 47:
+	/* linux_sys_signal */
+	case 48:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_geteuid */
+	case 49:
+	/* sys_getegid */
+	case 50:
+	/* sys_acct */
+	case 51:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_ioctl */
+	case 54:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fcntl */
+	case 55:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setpgid */
+	case 57:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_oldolduname */
+	case 59:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_umask */
+	case 60:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_chroot */
+	case 61:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_dup2 */
+	case 63:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getppid */
+	case 64:
+	/* sys_getpgrp */
+	case 65:
+	/* sys_setsid */
+	case 66:
+	/* linux_sys_sigaction */
+	case 67:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_siggetmask */
+	case 68:
+	/* linux_sys_sigsetmask */
+	case 69:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setreuid16 */
+	case 70:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setregid16 */
+	case 71:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sigsuspend */
+	case 72:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sigpending */
+	case 73:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_sys_sethostname */
+	case 74:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setrlimit */
+	case 75:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getrlimit */
+	case 76:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_50_sys_getrusage */
+	case 77:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_gettimeofday */
+	case 78:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_settimeofday */
+	case 79:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getgroups16 */
+	case 80:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setgroups16 */
+	case 81:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_oldselect */
+	case 82:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_symlink */
+	case 83:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_sys_lstat */
+	case 84:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_readlink */
+	case 85:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#ifdef EXEC_AOUT
+	/* linux_sys_uselib */
+	case 86:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* linux_sys_swapon */
+	case 87:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_reboot */
+	case 88:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_readdir */
+	case 89:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_old_mmap */
+	case 90:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_munmap */
+	case 91:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_sys_truncate */
+	case 92:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_sys_ftruncate */
+	case 93:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fchmod */
+	case 94:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fchown16 */
+	case 95:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getpriority */
+	case 96:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setpriority */
+	case 97:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_profil */
+	case 98:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_statfs */
+	case 99:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fstatfs */
+	case 100:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_ioperm */
+	case 101:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_socketcall */
+	case 102:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_50_sys_setitimer */
+	case 104:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_50_sys_getitimer */
+	case 105:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_stat */
+	case 106:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_lstat */
+	case 107:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fstat */
+	case 108:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_olduname */
+	case 109:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_iopl */
+	case 110:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_wait4 */
+	case 114:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_swapoff */
+	case 115:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sysinfo */
+	case 116:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_ipc */
+	case 117:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fsync */
+	case 118:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sigreturn */
+	case 119:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_clone */
+	case 120:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setdomainname */
+	case 121:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_uname */
+	case 122:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_modify_ldt */
+	case 123:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_mprotect */
+	case 125:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sigprocmask */
+	case 126:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getpgid */
+	case 132:
+		if (ndx == 0 || ndx == 1)
+			p = "pid_t";
+		break;
+	/* sys_fchdir */
+	case 133:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_personality */
+	case 136:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setfsuid */
+	case 138:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setfsgid */
+	case 139:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_llseek */
+	case 140:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getdents */
+	case 141:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_select */
+	case 142:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_flock */
+	case 143:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___msync13 */
+	case 144:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_readv */
+	case 145:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_writev */
+	case 146:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_getsid */
+	case 147:
+		if (ndx == 0 || ndx == 1)
+			p = "pid_t";
+		break;
+	/* linux_sys_fdatasync */
+	case 148:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys___sysctl */
+	case 149:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mlock */
+	case 150:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_munlock */
+	case 151:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mlockall */
+	case 152:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_munlockall */
+	case 153:
+	/* linux_sys_sched_setparam */
+	case 154:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_getparam */
+	case 155:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_setscheduler */
+	case 156:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_getscheduler */
+	case 157:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_yield */
+	case 158:
+	/* linux_sys_sched_get_priority_max */
+	case 159:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_get_priority_min */
+	case 160:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_nanosleep */
+	case 162:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_mremap */
+	case 163:
+		if (ndx == 0 || ndx == 1)
+			p = "void *";
+		break;
+	/* linux_sys_setresuid16 */
+	case 164:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getresuid16 */
+	case 165:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_poll */
+	case 168:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setresgid16 */
+	case 170:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getresgid16 */
+	case 171:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_sigreturn */
+	case 173:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_sigaction */
+	case 174:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_sigprocmask */
+	case 175:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_sigpending */
+	case 176:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_sigtimedwait */
+	case 177:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_queueinfo */
+	case 178:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_rt_sigsuspend */
+	case 179:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_pread */
+	case 180:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_pwrite */
+	case 181:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_chown16 */
+	case 182:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___getcwd */
+	case 183:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sigaltstack */
+	case 186:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___vfork14 */
+	case 190:
+	/* linux_sys_ugetrlimit */
+	case 191:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#define linux_sys_mmap2_args linux_sys_mmap_args
+	/* linux_sys_mmap2 */
+	case 192:
+		if (ndx == 0 || ndx == 1)
+			p = "linux_off_t";
+		break;
+	/* linux_sys_truncate64 */
+	case 193:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_ftruncate64 */
+	case 194:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_stat64 */
+	case 195:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_lstat64 */
+	case 196:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fstat64 */
+	case 197:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___posix_lchown */
+	case 198:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getuid */
+	case 199:
+	/* sys_getgid */
+	case 200:
+	/* sys_geteuid */
+	case 201:
+	/* sys_getegid */
+	case 202:
+	/* sys_setreuid */
+	case 203:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setregid */
+	case 204:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getgroups */
+	case 205:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setgroups */
+	case 206:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___posix_fchown */
+	case 207:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setresuid */
+	case 208:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getresuid */
+	case 209:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setresgid */
+	case 210:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getresgid */
+	case 211:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___posix_chown */
+	case 212:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setuid */
+	case 213:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setgid */
+	case 214:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setfsuid */
+	case 215:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_setfsgid */
+	case 216:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mincore */
+	case 218:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_madvise */
+	case 219:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getdents64 */
+	case 220:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fcntl64 */
+	case 221:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_gettid */
+	case 224:
+	/* linux_sys_setxattr */
+	case 226:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_lsetxattr */
+	case 227:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fsetxattr */
+	case 228:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_getxattr */
+	case 229:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_lgetxattr */
+	case 230:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_fgetxattr */
+	case 231:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_listxattr */
+	case 232:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_llistxattr */
+	case 233:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_flistxattr */
+	case 234:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* linux_sys_removexattr */
+	case 235:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_lremovexattr */
+	case 236:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fremovexattr */
+	case 237:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_tkill */
+	case 238:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_futex */
+	case 240:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_setaffinity */
+	case 241:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_getaffinity */
+	case 242:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_set_thread_area */
+	case 243:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_get_thread_area */
+	case 244:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fadvise64 */
+	case 250:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_exit_group */
+	case 252:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_set_tid_address */
+	case 258:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_clock_settime */
+	case 264:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_clock_gettime */
+	case 265:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_clock_getres */
+	case 266:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_clock_nanosleep */
+	case 267:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_statfs64 */
+	case 268:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fstatfs64 */
+	case 269:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_tgkill */
+	case 270:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_50_sys_utimes */
+	case 271:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fadvise64_64 */
+	case 272:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_openat */
+	case 295:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mkdirat */
+	case 296:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_mknodat */
+	case 297:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fchownat */
+	case 298:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fstatat64 */
+	case 300:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_unlinkat */
+	case 301:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_renameat */
+	case 302:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_linkat */
+	case 303:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_symlinkat */
+	case 304:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_readlinkat */
+	case 305:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_fchmodat */
+	case 306:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_faccessat */
+	case 307:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_ppoll */
+	case 309:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_set_robust_list */
+	case 311:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_get_robust_list */
+	case 312:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_utimensat */
+	case 320:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_dup3 */
+	case 330:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_pipe2 */
+	case 331:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	default:
+		break;
+	};
+	if (p != NULL)
+		strlcpy(desc, p, descsz);
+}
diff --git a/sys/compat/linux/arch/i386/syscalls.conf b/sys/compat/linux/arch/i386/syscalls.conf
index 4c1a7b7..d3b6724 100644
--- a/sys/compat/linux/arch/i386/syscalls.conf
+++ b/sys/compat/linux/arch/i386/syscalls.conf
@@ -1,9 +1,10 @@
-#	$NetBSD: syscalls.conf,v 1.6 2005/12/11 12:20:14 christos Exp $
+#	$NetBSD: syscalls.conf,v 1.7 2015/03/07 15:22:38 christos Exp $
 
 sysnames="linux_syscalls.c"
 sysnumhdr="linux_syscall.h"
 syssw="linux_sysent.c"
 sysarghdr="linux_syscallargs.h"
+systrace="linux_systrace_args.c"
 compatopts=""
 libcompatopts=""
 
diff --git a/sys/compat/linux/arch/i386/syscalls.master b/sys/compat/linux/arch/i386/syscalls.master
index 56f95b1..b76277b 100644
--- a/sys/compat/linux/arch/i386/syscalls.master
+++ b/sys/compat/linux/arch/i386/syscalls.master
@@ -1,4 +1,4 @@
-	$NetBSD: syscalls.master,v 1.118 2014/05/31 08:51:19 njoly Exp $
+	$NetBSD: syscalls.master,v 1.120 2015/03/23 07:30:15 ozaki-r Exp $
 
 ;	@(#)syscalls.master	8.1 (Berkeley) 7/19/93
 
@@ -162,10 +162,10 @@
 81	STD		{ int|linux_sys||setgroups16(int gidsetsize, \
 			    linux_gid16_t *gidset); }
 82	STD		{ int|linux_sys||oldselect(struct linux_oldselect *lsp); }
-83	NOARGS		{ int|sys||symlink(const char *path, const char *to); }
+83	NOARGS		{ int|sys||symlink(const char *path, const char *link); }
 84	NOARGS		{ int|compat_43_sys||lstat(const char *path, \
-			    struct stat43 *up); } oolstat
-85	NOARGS		{ int|sys||readlink(const char *name, char *buf, \
+			    struct stat43 *ub); } oolstat
+85	NOARGS		{ int|sys||readlink(const char *path, char *buf, \
 			    int count); }
 #ifdef EXEC_AOUT
 86	STD		{ int|linux_sys||uselib(const char *path); }
diff --git a/sys/compat/linux/arch/m68k/linux_syscall.h b/sys/compat/linux/arch/m68k/linux_syscall.h
index 0d1b4a9..ee026f0 100644
--- a/sys/compat/linux/arch/m68k/linux_syscall.h
+++ b/sys/compat/linux/arch/m68k/linux_syscall.h
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_syscall.h,v 1.94 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
diff --git a/sys/compat/linux/arch/m68k/linux_syscallargs.h b/sys/compat/linux/arch/m68k/linux_syscallargs.h
index 7186352..6efaccc 100644
--- a/sys/compat/linux/arch/m68k/linux_syscallargs.h
+++ b/sys/compat/linux/arch/m68k/linux_syscallargs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_syscallargs.h,v 1.93 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
diff --git a/sys/compat/linux/arch/m68k/linux_syscalls.c b/sys/compat/linux/arch/m68k/linux_syscalls.c
index 6f51664..92dd1e0 100644
--- a/sys/compat/linux/arch/m68k/linux_syscalls.c
+++ b/sys/compat/linux/arch/m68k/linux_syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_syscalls.c,v 1.94 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.94 2014/05/31 08:52:54 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #if defined(_KERNEL_OPT)
@@ -28,6 +28,8 @@ __KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.94 2014/05/31 08:52:54 njoly Ex
 #include <compat/linux/common/linux_machdep.h>
 #include <compat/linux/common/linux_mmap.h>
 #include <compat/linux/linux_syscallargs.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const linux_syscallnames[] = {
@@ -565,3 +567,541 @@ const char *const linux_syscallnames[] = {
 	/* 510 */	"# filler",
 	/* 511 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altlinux_syscallnames[] = {
+	/*   0 */	"nosys",
+	/*   1 */	NULL, /* exit */
+	/*   2 */	NULL, /* fork */
+	/*   3 */	NULL, /* read */
+	/*   4 */	NULL, /* write */
+	/*   5 */	NULL, /* open */
+	/*   6 */	NULL, /* close */
+	/*   7 */	NULL, /* waitpid */
+	/*   8 */	NULL, /* creat */
+	/*   9 */	NULL, /* link */
+	/*  10 */	NULL, /* unlink */
+	/*  11 */	NULL, /* execve */
+	/*  12 */	NULL, /* chdir */
+	/*  13 */	NULL, /* time */
+	/*  14 */	NULL, /* mknod */
+	/*  15 */	NULL, /* chmod */
+	/*  16 */	NULL, /* chown16 */
+	/*  17 */	NULL, /* obsolete break */
+	/*  18 */	NULL, /* obsolete ostat */
+#if !defined(_KERNEL) || defined(COMPAT_43)
+	/*  19 */	NULL, /* lseek */
+#else
+	/*  19 */	NULL, /* unimplemented compat_43_sys_lseek */
+#endif
+	/*  20 */	NULL, /* getpid */
+	/*  21 */	NULL, /* unimplemented mount */
+	/*  22 */	NULL, /* obsolete umount */
+	/*  23 */	"setuid",
+	/*  24 */	"getuid",
+	/*  25 */	NULL, /* stime */
+	/*  26 */	NULL, /* ptrace */
+	/*  27 */	NULL, /* alarm */
+	/*  28 */	NULL, /* obsolete ofstat */
+	/*  29 */	NULL, /* pause */
+	/*  30 */	NULL, /* utime */
+	/*  31 */	NULL, /* obsolete stty */
+	/*  32 */	NULL, /* obsolete gtty */
+	/*  33 */	NULL, /* access */
+	/*  34 */	NULL, /* nice */
+	/*  35 */	NULL, /* obsolete ftime */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	NULL, /* kill */
+	/*  38 */	NULL, /* __posix_rename */
+	/*  39 */	NULL, /* mkdir */
+	/*  40 */	NULL, /* rmdir */
+	/*  41 */	NULL, /* dup */
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* times */
+	/*  44 */	NULL, /* obsolete prof */
+	/*  45 */	NULL, /* brk */
+	/*  46 */	"setgid",
+	/*  47 */	"getgid",
+	/*  48 */	NULL, /* signal */
+	/*  49 */	"geteuid",
+	/*  50 */	"getegid",
+	/*  51 */	NULL, /* acct */
+	/*  52 */	NULL, /* unimplemented umount */
+	/*  53 */	NULL, /* obsolete lock */
+	/*  54 */	NULL, /* ioctl */
+	/*  55 */	NULL, /* fcntl */
+	/*  56 */	NULL, /* obsolete mpx */
+	/*  57 */	NULL, /* setpgid */
+	/*  58 */	NULL, /* obsolete ulimit */
+	/*  59 */	NULL, /* unimplemented oldolduname */
+	/*  60 */	NULL, /* umask */
+	/*  61 */	NULL, /* chroot */
+	/*  62 */	NULL, /* unimplemented ustat */
+	/*  63 */	NULL, /* dup2 */
+	/*  64 */	NULL, /* getppid */
+	/*  65 */	NULL, /* getpgrp */
+	/*  66 */	NULL, /* setsid */
+	/*  67 */	NULL, /* sigaction */
+	/*  68 */	NULL, /* siggetmask */
+	/*  69 */	NULL, /* sigsetmask */
+	/*  70 */	NULL, /* setreuid16 */
+	/*  71 */	NULL, /* setregid16 */
+	/*  72 */	NULL, /* sigsuspend */
+	/*  73 */	NULL, /* sigpending */
+#if !defined(_KERNEL) || defined(COMPAT_43)
+	/*  74 */	NULL, /* sethostname */
+#else
+	/*  74 */	NULL, /* unimplemented compat_43_sys_sethostname */
+#endif
+	/*  75 */	NULL, /* setrlimit */
+	/*  76 */	NULL, /* getrlimit */
+	/*  77 */	NULL, /* getrusage */
+	/*  78 */	NULL, /* gettimeofday */
+	/*  79 */	NULL, /* settimeofday */
+	/*  80 */	NULL, /* getgroups16 */
+	/*  81 */	NULL, /* setgroups16 */
+	/*  82 */	NULL, /* oldselect */
+	/*  83 */	NULL, /* symlink */
+#if !defined(_KERNEL) || defined(COMPAT_43)
+	/*  84 */	"lstat",
+#else
+	/*  84 */	NULL, /* unimplemented compat_43_sys_lstat */
+#endif
+	/*  85 */	NULL, /* readlink */
+#ifdef EXEC_AOUT
+	/*  86 */	NULL, /* uselib */
+#else
+	/*  86 */	NULL, /* unimplemented sys_uselib */
+#endif
+	/*  87 */	NULL, /* swapon */
+	/*  88 */	NULL, /* reboot */
+	/*  89 */	NULL, /* readdir */
+	/*  90 */	NULL, /* old_mmap */
+	/*  91 */	NULL, /* munmap */
+	/*  92 */	NULL, /* truncate */
+#if !defined(_KERNEL) || defined(COMPAT_43)
+	/*  93 */	NULL, /* ftruncate */
+#else
+	/*  93 */	NULL, /* unimplemented compat_43_sys_ftruncate */
+#endif
+	/*  94 */	NULL, /* fchmod */
+	/*  95 */	NULL, /* fchown16 */
+	/*  96 */	NULL, /* getpriority */
+	/*  97 */	NULL, /* setpriority */
+	/*  98 */	NULL, /* profil */
+	/*  99 */	NULL, /* statfs */
+	/* 100 */	NULL, /* fstatfs */
+	/* 101 */	NULL, /* unimplemented ioperm */
+	/* 102 */	NULL, /* socketcall */
+	/* 103 */	NULL, /* unimplemented syslog */
+	/* 104 */	NULL, /* setitimer */
+	/* 105 */	NULL, /* getitimer */
+	/* 106 */	NULL, /* stat */
+	/* 107 */	NULL, /* lstat */
+	/* 108 */	NULL, /* fstat */
+	/* 109 */	NULL, /* unimplemented olduname */
+	/* 110 */	NULL, /* unimplemented iopl */
+	/* 111 */	NULL, /* unimplemented vhangup */
+	/* 112 */	NULL, /* unimplemented idle */
+	/* 113 */	NULL, /* unimplemented vm86old */
+	/* 114 */	NULL, /* wait4 */
+	/* 115 */	NULL, /* swapoff */
+	/* 116 */	NULL, /* sysinfo */
+	/* 117 */	NULL, /* ipc */
+	/* 118 */	NULL, /* fsync */
+	/* 119 */	NULL, /* sigreturn */
+	/* 120 */	NULL, /* clone */
+	/* 121 */	NULL, /* setdomainname */
+	/* 122 */	NULL, /* uname */
+	/* 123 */	NULL, /* cacheflush */
+	/* 124 */	NULL, /* unimplemented adjtimex */
+	/* 125 */	NULL, /* mprotect */
+	/* 126 */	NULL, /* sigprocmask */
+	/* 127 */	NULL, /* unimplemented create_module */
+	/* 128 */	NULL, /* unimplemented init_module */
+	/* 129 */	NULL, /* unimplemented delete_module */
+	/* 130 */	NULL, /* unimplemented get_kernel_syms */
+	/* 131 */	NULL, /* unimplemented quotactl */
+	/* 132 */	NULL, /* getpgid */
+	/* 133 */	NULL, /* fchdir */
+	/* 134 */	NULL, /* unimplemented bdflush */
+	/* 135 */	NULL, /* unimplemented sysfs */
+	/* 136 */	NULL, /* personality */
+	/* 137 */	NULL, /* unimplemented afs_syscall */
+	/* 138 */	"setfsuid",
+	/* 139 */	"setfsgid",
+	/* 140 */	NULL, /* llseek */
+	/* 141 */	NULL, /* getdents */
+	/* 142 */	NULL, /* select */
+	/* 143 */	NULL, /* flock */
+	/* 144 */	"msync",
+	/* 145 */	NULL, /* readv */
+	/* 146 */	NULL, /* writev */
+	/* 147 */	NULL, /* getsid */
+	/* 148 */	NULL, /* fdatasync */
+	/* 149 */	NULL, /* __sysctl */
+	/* 150 */	NULL, /* mlock */
+	/* 151 */	NULL, /* munlock */
+	/* 152 */	NULL, /* mlockall */
+	/* 153 */	NULL, /* munlockall */
+	/* 154 */	NULL, /* sched_setparam */
+	/* 155 */	NULL, /* sched_getparam */
+	/* 156 */	NULL, /* sched_setscheduler */
+	/* 157 */	NULL, /* sched_getscheduler */
+	/* 158 */	NULL, /* sched_yield */
+	/* 159 */	NULL, /* sched_get_priority_max */
+	/* 160 */	NULL, /* sched_get_priority_min */
+	/* 161 */	NULL, /* unimplemented sched_rr_get_interval */
+	/* 162 */	NULL, /* nanosleep */
+	/* 163 */	NULL, /* mremap */
+	/* 164 */	NULL, /* setresuid16 */
+	/* 165 */	NULL, /* getresuid16 */
+	/* 166 */	NULL, /* unimplemented vm86 */
+	/* 167 */	NULL, /* unimplemented query_module */
+	/* 168 */	NULL, /* poll */
+	/* 169 */	NULL, /* unimplemented nfsservctl */
+	/* 170 */	NULL, /* setresgid16 */
+	/* 171 */	NULL, /* getresgid16 */
+	/* 172 */	NULL, /* unimplemented prctl */
+	/* 173 */	NULL, /* rt_sigreturn */
+	/* 174 */	NULL, /* rt_sigaction */
+	/* 175 */	NULL, /* rt_sigprocmask */
+	/* 176 */	NULL, /* rt_sigpending */
+	/* 177 */	NULL, /* rt_sigtimedwait */
+	/* 178 */	NULL, /* rt_queueinfo */
+	/* 179 */	NULL, /* rt_sigsuspend */
+	/* 180 */	NULL, /* pread */
+	/* 181 */	NULL, /* pwrite */
+	/* 182 */	NULL, /* lchown16 */
+	/* 183 */	NULL, /* __getcwd */
+	/* 184 */	NULL, /* unimplemented capget */
+	/* 185 */	NULL, /* unimplemented capset */
+	/* 186 */	NULL, /* sigaltstack */
+	/* 187 */	NULL, /* unimplemented sendfile */
+	/* 188 */	NULL, /* unimplemented getpmsg */
+	/* 189 */	NULL, /* unimplemented putpmsg */
+	/* 190 */	"vfork",
+	/* 191 */	NULL, /* ugetrlimit */
+#define linux_sys_mmap2_args linux_sys_mmap_args
+	/* 192 */	NULL, /* mmap2 */
+	/* 193 */	NULL, /* truncate64 */
+	/* 194 */	NULL, /* ftruncate64 */
+	/* 195 */	NULL, /* stat64 */
+	/* 196 */	NULL, /* lstat64 */
+	/* 197 */	NULL, /* fstat64 */
+	/* 198 */	NULL, /* __posix_chown */
+	/* 199 */	NULL, /* getuid */
+	/* 200 */	NULL, /* getgid */
+	/* 201 */	NULL, /* geteuid */
+	/* 202 */	NULL, /* getegid */
+	/* 203 */	NULL, /* setreuid */
+	/* 204 */	NULL, /* setregid */
+	/* 205 */	NULL, /* getgroups */
+	/* 206 */	NULL, /* setgroups */
+	/* 207 */	NULL, /* __posix_fchown */
+	/* 208 */	NULL, /* setresuid */
+	/* 209 */	NULL, /* getresuid */
+	/* 210 */	NULL, /* setresgid */
+	/* 211 */	NULL, /* getresgid */
+	/* 212 */	NULL, /* __posix_lchown */
+	/* 213 */	NULL, /* setuid */
+	/* 214 */	NULL, /* setgid */
+	/* 215 */	NULL, /* setfsuid */
+	/* 216 */	NULL, /* setfsgid */
+	/* 217 */	NULL, /* unimplemented / * unused * / */
+	/* 218 */	NULL, /* unimplemented / * unused * / */
+	/* 219 */	NULL, /* unimplemented / * unused * / */
+	/* 220 */	NULL, /* getdents64 */
+	/* 221 */	NULL, /* gettid */
+	/* 222 */	NULL, /* tkill */
+	/* 223 */	NULL, /* setxattr */
+	/* 224 */	NULL, /* lsetxattr */
+	/* 225 */	NULL, /* fsetxattr */
+	/* 226 */	NULL, /* getxattr */
+	/* 227 */	NULL, /* lgetxattr */
+	/* 228 */	NULL, /* fgetxattr */
+	/* 229 */	NULL, /* listxattr */
+	/* 230 */	NULL, /* llistxattr */
+	/* 231 */	NULL, /* flistxattr */
+	/* 232 */	NULL, /* removexattr */
+	/* 233 */	NULL, /* lremovexattr */
+	/* 234 */	NULL, /* fremovexattr */
+	/* 235 */	NULL, /* futex */
+	/* 236 */	NULL, /* unimplemented sendfile64 */
+	/* 237 */	NULL, /* mincore */
+	/* 238 */	NULL, /* madvise */
+	/* 239 */	NULL, /* fcntl64 */
+	/* 240 */	NULL, /* unimplemented readahead */
+	/* 241 */	NULL, /* unimplemented io_setup */
+	/* 242 */	NULL, /* unimplemented io_destroy */
+	/* 243 */	NULL, /* unimplemented io_getevents */
+	/* 244 */	NULL, /* unimplemented io_submit */
+	/* 245 */	NULL, /* unimplemented io_cancel */
+	/* 246 */	NULL, /* fadvise64 */
+	/* 247 */	NULL, /* unimplemented exit_group */
+	/* 248 */	NULL, /* unimplemented lookup_dcookie */
+	/* 249 */	NULL, /* unimplemented epoll_create */
+	/* 250 */	NULL, /* unimplemented epoll_ctl */
+	/* 251 */	NULL, /* unimplemented epoll_wait */
+	/* 252 */	NULL, /* unimplemented remap_file_pages */
+	/* 253 */	NULL, /* set_tid_address */
+	/* 254 */	NULL, /* unimplemented timer_create */
+	/* 255 */	NULL, /* unimplemented timer_settime */
+	/* 256 */	NULL, /* unimplemented timer_gettime */
+	/* 257 */	NULL, /* unimplemented timer_getoverrun */
+	/* 258 */	NULL, /* unimplemented timer_ delete */
+	/* 259 */	NULL, /* clock_settime */
+	/* 260 */	NULL, /* clock_gettime */
+	/* 261 */	NULL, /* clock_getres */
+	/* 262 */	NULL, /* clock_nanosleep */
+	/* 263 */	NULL, /* statfs64 */
+	/* 264 */	NULL, /* fstatfs64 */
+	/* 265 */	NULL, /* tgkill */
+	/* 266 */	NULL, /* utimes */
+	/* 267 */	NULL, /* fadvise64_64 */
+	/* 268 */	NULL, /* unimplemented mbind */
+	/* 269 */	NULL, /* unimplemented get_mempolicy */
+	/* 270 */	NULL, /* unimplemented set_mempolicy */
+	/* 271 */	NULL, /* unimplemented mq_open */
+	/* 272 */	NULL, /* unimplemented mq_unlink */
+	/* 273 */	NULL, /* unimplemented mq_timedsend */
+	/* 274 */	NULL, /* unimplemented mq_timedreceive */
+	/* 275 */	NULL, /* unimplemented mq_notify */
+	/* 276 */	NULL, /* unimplemented mq_getsetattr */
+	/* 277 */	NULL, /* unimplemented waitid */
+	/* 278 */	NULL, /* unimplemented vserver */
+	/* 279 */	NULL, /* unimplemented add_key */
+	/* 280 */	NULL, /* unimplemented request_key */
+	/* 281 */	NULL, /* unimplemented keyctl */
+	/* 282 */	NULL, /* unimplemented ioprio_set */
+	/* 283 */	NULL, /* unimplemented ioprio_get */
+	/* 284 */	NULL, /* unimplemented inotify_init */
+	/* 285 */	NULL, /* unimplemented inotify_add_watch */
+	/* 286 */	NULL, /* unimplemented inotify_rm_watch */
+	/* 287 */	NULL, /* unimplemented migrate_pages */
+	/* 288 */	NULL, /* openat */
+	/* 289 */	NULL, /* mkdirat */
+	/* 290 */	NULL, /* mknodat */
+	/* 291 */	NULL, /* fchownat */
+	/* 292 */	NULL, /* unimplemented futimesat */
+	/* 293 */	NULL, /* fstatat64 */
+	/* 294 */	NULL, /* unlinkat */
+	/* 295 */	NULL, /* renameat */
+	/* 296 */	NULL, /* linkat */
+	/* 297 */	NULL, /* symlinkat */
+	/* 298 */	NULL, /* readlinkat */
+	/* 299 */	NULL, /* fchmodat */
+	/* 300 */	NULL, /* faccessat */
+	/* 301 */	NULL, /* unimplemented pselect6 */
+	/* 302 */	NULL, /* ppoll */
+	/* 303 */	NULL, /* unimplemented unshare */
+	/* 304 */	NULL, /* set_robust_list */
+	/* 305 */	NULL, /* get_robust_list */
+	/* 306 */	NULL, /* unimplemented splice */
+	/* 307 */	NULL, /* unimplemented sync_file_range */
+	/* 308 */	NULL, /* unimplemented tee */
+	/* 309 */	NULL, /* unimplemented vmsplice */
+	/* 310 */	NULL, /* unimplemented move_pages */
+	/* 311 */	NULL, /* sched_setaffinity */
+	/* 312 */	NULL, /* sched_getaffinity */
+	/* 313 */	NULL, /* unimplemented kexec_load */
+	/* 314 */	NULL, /* unimplemented getcpu */
+	/* 315 */	NULL, /* unimplemented epoll_wait */
+	/* 316 */	NULL, /* utimensat */
+	/* 317 */	NULL, /* unimplemented signalfd */
+	/* 318 */	NULL, /* unimplemented timerfd_create */
+	/* 319 */	NULL, /* unimplemented eventfd */
+	/* 320 */	NULL, /* unimplemented fallocate */
+	/* 321 */	NULL, /* unimplemented timerfd_settime */
+	/* 322 */	NULL, /* unimplemented timerfd_gettime */
+	/* 323 */	NULL, /* unimplemented signalfd4 */
+	/* 324 */	NULL, /* unimplemented eventfd2 */
+	/* 325 */	NULL, /* unimplemented epoll_create1 */
+	/* 326 */	NULL, /* dup3 */
+	/* 327 */	NULL, /* pipe2 */
+	/* 328 */	NULL, /* unimplemented inotify_init1 */
+	/* 329 */	NULL, /* unimplemented preadv */
+	/* 330 */	NULL, /* unimplemented pwritev */
+	/* 331 */	NULL, /* unimplemented rt_tgsigqueueinfo */
+	/* 332 */	NULL, /* unimplemented perf_counter_open */
+	/* 333 */	NULL, /* unimplemented set_thread_area */
+	/* 334 */	NULL, /* unimplemented get_thread_area */
+	/* 335 */	NULL, /* unimplemented atomic_cmpxchg_32 */
+	/* 336 */	NULL, /* unimplemented atomic_barrier */
+	/* 337 */	NULL, /* filler */
+	/* 338 */	NULL, /* filler */
+	/* 339 */	NULL, /* filler */
+	/* 340 */	NULL, /* filler */
+	/* 341 */	NULL, /* filler */
+	/* 342 */	NULL, /* filler */
+	/* 343 */	NULL, /* filler */
+	/* 344 */	NULL, /* filler */
+	/* 345 */	NULL, /* filler */
+	/* 346 */	NULL, /* filler */
+	/* 347 */	NULL, /* filler */
+	/* 348 */	NULL, /* filler */
+	/* 349 */	NULL, /* filler */
+	/* 350 */	NULL, /* filler */
+	/* 351 */	NULL, /* filler */
+	/* 352 */	NULL, /* filler */
+	/* 353 */	NULL, /* filler */
+	/* 354 */	NULL, /* filler */
+	/* 355 */	NULL, /* filler */
+	/* 356 */	NULL, /* filler */
+	/* 357 */	NULL, /* filler */
+	/* 358 */	NULL, /* filler */
+	/* 359 */	NULL, /* filler */
+	/* 360 */	NULL, /* filler */
+	/* 361 */	NULL, /* filler */
+	/* 362 */	NULL, /* filler */
+	/* 363 */	NULL, /* filler */
+	/* 364 */	NULL, /* filler */
+	/* 365 */	NULL, /* filler */
+	/* 366 */	NULL, /* filler */
+	/* 367 */	NULL, /* filler */
+	/* 368 */	NULL, /* filler */
+	/* 369 */	NULL, /* filler */
+	/* 370 */	NULL, /* filler */
+	/* 371 */	NULL, /* filler */
+	/* 372 */	NULL, /* filler */
+	/* 373 */	NULL, /* filler */
+	/* 374 */	NULL, /* filler */
+	/* 375 */	NULL, /* filler */
+	/* 376 */	NULL, /* filler */
+	/* 377 */	NULL, /* filler */
+	/* 378 */	NULL, /* filler */
+	/* 379 */	NULL, /* filler */
+	/* 380 */	NULL, /* filler */
+	/* 381 */	NULL, /* filler */
+	/* 382 */	NULL, /* filler */
+	/* 383 */	NULL, /* filler */
+	/* 384 */	NULL, /* filler */
+	/* 385 */	NULL, /* filler */
+	/* 386 */	NULL, /* filler */
+	/* 387 */	NULL, /* filler */
+	/* 388 */	NULL, /* filler */
+	/* 389 */	NULL, /* filler */
+	/* 390 */	NULL, /* filler */
+	/* 391 */	NULL, /* filler */
+	/* 392 */	NULL, /* filler */
+	/* 393 */	NULL, /* filler */
+	/* 394 */	NULL, /* filler */
+	/* 395 */	NULL, /* filler */
+	/* 396 */	NULL, /* filler */
+	/* 397 */	NULL, /* filler */
+	/* 398 */	NULL, /* filler */
+	/* 399 */	NULL, /* filler */
+	/* 400 */	NULL, /* filler */
+	/* 401 */	NULL, /* filler */
+	/* 402 */	NULL, /* filler */
+	/* 403 */	NULL, /* filler */
+	/* 404 */	NULL, /* filler */
+	/* 405 */	NULL, /* filler */
+	/* 406 */	NULL, /* filler */
+	/* 407 */	NULL, /* filler */
+	/* 408 */	NULL, /* filler */
+	/* 409 */	NULL, /* filler */
+	/* 410 */	NULL, /* filler */
+	/* 411 */	NULL, /* filler */
+	/* 412 */	NULL, /* filler */
+	/* 413 */	NULL, /* filler */
+	/* 414 */	NULL, /* filler */
+	/* 415 */	NULL, /* filler */
+	/* 416 */	NULL, /* filler */
+	/* 417 */	NULL, /* filler */
+	/* 418 */	NULL, /* filler */
+	/* 419 */	NULL, /* filler */
+	/* 420 */	NULL, /* filler */
+	/* 421 */	NULL, /* filler */
+	/* 422 */	NULL, /* filler */
+	/* 423 */	NULL, /* filler */
+	/* 424 */	NULL, /* filler */
+	/* 425 */	NULL, /* filler */
+	/* 426 */	NULL, /* filler */
+	/* 427 */	NULL, /* filler */
+	/* 428 */	NULL, /* filler */
+	/* 429 */	NULL, /* filler */
+	/* 430 */	NULL, /* filler */
+	/* 431 */	NULL, /* filler */
+	/* 432 */	NULL, /* filler */
+	/* 433 */	NULL, /* filler */
+	/* 434 */	NULL, /* filler */
+	/* 435 */	NULL, /* filler */
+	/* 436 */	NULL, /* filler */
+	/* 437 */	NULL, /* filler */
+	/* 438 */	NULL, /* filler */
+	/* 439 */	NULL, /* filler */
+	/* 440 */	NULL, /* filler */
+	/* 441 */	NULL, /* filler */
+	/* 442 */	NULL, /* filler */
+	/* 443 */	NULL, /* filler */
+	/* 444 */	NULL, /* filler */
+	/* 445 */	NULL, /* filler */
+	/* 446 */	NULL, /* filler */
+	/* 447 */	NULL, /* filler */
+	/* 448 */	NULL, /* filler */
+	/* 449 */	NULL, /* filler */
+	/* 450 */	NULL, /* filler */
+	/* 451 */	NULL, /* filler */
+	/* 452 */	NULL, /* filler */
+	/* 453 */	NULL, /* filler */
+	/* 454 */	NULL, /* filler */
+	/* 455 */	NULL, /* filler */
+	/* 456 */	NULL, /* filler */
+	/* 457 */	NULL, /* filler */
+	/* 458 */	NULL, /* filler */
+	/* 459 */	NULL, /* filler */
+	/* 460 */	NULL, /* filler */
+	/* 461 */	NULL, /* filler */
+	/* 462 */	NULL, /* filler */
+	/* 463 */	NULL, /* filler */
+	/* 464 */	NULL, /* filler */
+	/* 465 */	NULL, /* filler */
+	/* 466 */	NULL, /* filler */
+	/* 467 */	NULL, /* filler */
+	/* 468 */	NULL, /* filler */
+	/* 469 */	NULL, /* filler */
+	/* 470 */	NULL, /* filler */
+	/* 471 */	NULL, /* filler */
+	/* 472 */	NULL, /* filler */
+	/* 473 */	NULL, /* filler */
+	/* 474 */	NULL, /* filler */
+	/* 475 */	NULL, /* filler */
+	/* 476 */	NULL, /* filler */
+	/* 477 */	NULL, /* filler */
+	/* 478 */	NULL, /* filler */
+	/* 479 */	NULL, /* filler */
+	/* 480 */	NULL, /* filler */
+	/* 481 */	NULL, /* filler */
+	/* 482 */	NULL, /* filler */
+	/* 483 */	NULL, /* filler */
+	/* 484 */	NULL, /* filler */
+	/* 485 */	NULL, /* filler */
+	/* 486 */	NULL, /* filler */
+	/* 487 */	NULL, /* filler */
+	/* 488 */	NULL, /* filler */
+	/* 489 */	NULL, /* filler */
+	/* 490 */	NULL, /* filler */
+	/* 491 */	NULL, /* filler */
+	/* 492 */	NULL, /* filler */
+	/* 493 */	NULL, /* filler */
+	/* 494 */	NULL, /* filler */
+	/* 495 */	NULL, /* filler */
+	/* 496 */	NULL, /* filler */
+	/* 497 */	NULL, /* filler */
+	/* 498 */	NULL, /* filler */
+	/* 499 */	NULL, /* filler */
+	/* 500 */	NULL, /* filler */
+	/* 501 */	NULL, /* filler */
+	/* 502 */	NULL, /* filler */
+	/* 503 */	NULL, /* filler */
+	/* 504 */	NULL, /* filler */
+	/* 505 */	NULL, /* filler */
+	/* 506 */	NULL, /* filler */
+	/* 507 */	NULL, /* filler */
+	/* 508 */	NULL, /* filler */
+	/* 509 */	NULL, /* filler */
+	/* 510 */	NULL, /* filler */
+	/* 511 */	NULL, /* filler */
+};
diff --git a/sys/compat/linux/arch/m68k/linux_sysent.c b/sys/compat/linux/arch/m68k/linux_sysent.c
index 6bd708c..e09a5e8 100644
--- a/sys/compat/linux/arch/m68k/linux_sysent.c
+++ b/sys/compat/linux/arch/m68k/linux_sysent.c
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_sysent.c,v 1.94 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.94 2014/05/31 08:52:54 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -34,1053 +34,1053 @@ __KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.94 2014/05/31 08:52:54 njoly Exp
 
 struct sysent linux_sysent[] = {
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_nosys },	/* 0 = syscall */
+	    (sy_call_t *)linux_sys_nosys, 0, 0 },	/* 0 = syscall */
 	{ ns(struct linux_sys_exit_args), 0,
-	    (sy_call_t *)linux_sys_exit },	/* 1 = exit */
+	    (sy_call_t *)linux_sys_exit, 0, 0 },	/* 1 = exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct sys_read_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_read },		/* 3 = read */
+	    (sy_call_t *)sys_read, 0, 0 },		/* 3 = read */
 	{ ns(struct sys_write_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_write },		/* 4 = write */
+	    (sy_call_t *)sys_write, 0, 0 },		/* 4 = write */
 	{ ns(struct linux_sys_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_open },	/* 5 = open */
+	    (sy_call_t *)linux_sys_open, 0, 0 },	/* 5 = open */
 	{ ns(struct sys_close_args), 0,
-	    (sy_call_t *)sys_close },		/* 6 = close */
+	    (sy_call_t *)sys_close, 0, 0 },		/* 6 = close */
 	{ ns(struct linux_sys_waitpid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_waitpid },	/* 7 = waitpid */
+	    (sy_call_t *)linux_sys_waitpid, 0, 0 },	/* 7 = waitpid */
 	{ ns(struct linux_sys_creat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_creat },	/* 8 = creat */
+	    (sy_call_t *)linux_sys_creat, 0, 0 },	/* 8 = creat */
 	{ ns(struct sys_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_link },		/* 9 = link */
+	    (sy_call_t *)sys_link, 0, 0 },		/* 9 = link */
 	{ ns(struct linux_sys_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_unlink },	/* 10 = unlink */
+	    (sy_call_t *)linux_sys_unlink, 0, 0 },	/* 10 = unlink */
 	{ ns(struct sys_execve_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_execve },		/* 11 = execve */
+	    (sy_call_t *)sys_execve, 0, 0 },		/* 11 = execve */
 	{ ns(struct sys_chdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chdir },		/* 12 = chdir */
+	    (sy_call_t *)sys_chdir, 0, 0 },		/* 12 = chdir */
 	{ ns(struct linux_sys_time_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_time },	/* 13 = time */
+	    (sy_call_t *)linux_sys_time, 0, 0 },	/* 13 = time */
 	{ ns(struct linux_sys_mknod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mknod },	/* 14 = mknod */
+	    (sy_call_t *)linux_sys_mknod, 0, 0 },	/* 14 = mknod */
 	{ ns(struct sys_chmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chmod },		/* 15 = chmod */
+	    (sy_call_t *)sys_chmod, 0, 0 },		/* 15 = chmod */
 	{ ns(struct linux_sys_chown16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_chown16 },	/* 16 = chown16 */
+	    (sy_call_t *)linux_sys_chown16, 0, 0 },	/* 16 = chown16 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 17 = obsolete break */
+	    linux_sys_nosys, 0, 0 },			/* 17 = obsolete break */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 18 = obsolete ostat */
+	    linux_sys_nosys, 0, 0 },			/* 18 = obsolete ostat */
 #if !defined(_KERNEL) || defined(COMPAT_43)
 	{ ns(struct compat_43_sys_lseek_args), 0,
-	    (sy_call_t *)compat_43_sys_lseek },	/* 19 = lseek */
+	    (sy_call_t *)compat_43_sys_lseek, 0, 0 },	/* 19 = lseek */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 19 = unimplemented compat_43_sys_lseek */
+	    linux_sys_nosys, 0, 0 },			/* 19 = unimplemented compat_43_sys_lseek */
 #endif
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid },		/* 20 = getpid */
+	    (sy_call_t *)sys_getpid, 0, 0 },		/* 20 = getpid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 21 = unimplemented mount */
+	    linux_sys_nosys, 0, 0 },			/* 21 = unimplemented mount */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 22 = obsolete umount */
+	    linux_sys_nosys, 0, 0 },			/* 22 = obsolete umount */
 	{ ns(struct sys_setuid_args), 0,
-	    (sy_call_t *)sys_setuid },		/* 23 = linux_setuid16 */
+	    (sy_call_t *)sys_setuid, 0, 0 },		/* 23 = linux_setuid16 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid },		/* 24 = linux_getuid16 */
+	    (sy_call_t *)sys_getuid, 0, 0 },		/* 24 = linux_getuid16 */
 	{ ns(struct linux_sys_stime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stime },	/* 25 = stime */
+	    (sy_call_t *)linux_sys_stime, 0, 0 },	/* 25 = stime */
 	{ ns(struct linux_sys_ptrace_args), 0,
-	    (sy_call_t *)linux_sys_ptrace },	/* 26 = ptrace */
+	    (sy_call_t *)linux_sys_ptrace, 0, 0 },	/* 26 = ptrace */
 	{ ns(struct linux_sys_alarm_args), 0,
-	    (sy_call_t *)linux_sys_alarm },	/* 27 = alarm */
+	    (sy_call_t *)linux_sys_alarm, 0, 0 },	/* 27 = alarm */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 28 = obsolete ofstat */
+	    linux_sys_nosys, 0, 0 },			/* 28 = obsolete ofstat */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_pause },	/* 29 = pause */
+	    (sy_call_t *)linux_sys_pause, 0, 0 },	/* 29 = pause */
 	{ ns(struct linux_sys_utime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_utime },	/* 30 = utime */
+	    (sy_call_t *)linux_sys_utime, 0, 0 },	/* 30 = utime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 31 = obsolete stty */
+	    linux_sys_nosys, 0, 0 },			/* 31 = obsolete stty */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 32 = obsolete gtty */
+	    linux_sys_nosys, 0, 0 },			/* 32 = obsolete gtty */
 	{ ns(struct sys_access_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_access },		/* 33 = access */
+	    (sy_call_t *)sys_access, 0, 0 },		/* 33 = access */
 	{ ns(struct linux_sys_nice_args), 0,
-	    (sy_call_t *)linux_sys_nice },	/* 34 = nice */
+	    (sy_call_t *)linux_sys_nice, 0, 0 },	/* 34 = nice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 35 = obsolete ftime */
+	    linux_sys_nosys, 0, 0 },			/* 35 = obsolete ftime */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct linux_sys_kill_args), 0,
-	    (sy_call_t *)linux_sys_kill },	/* 37 = kill */
+	    (sy_call_t *)linux_sys_kill, 0, 0 },	/* 37 = kill */
 	{ ns(struct sys___posix_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_rename },	/* 38 = __posix_rename */
+	    (sy_call_t *)sys___posix_rename, 0, 0 },	/* 38 = __posix_rename */
 	{ ns(struct sys_mkdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdir },		/* 39 = mkdir */
+	    (sy_call_t *)sys_mkdir, 0, 0 },		/* 39 = mkdir */
 	{ ns(struct sys_rmdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rmdir },		/* 40 = rmdir */
+	    (sy_call_t *)sys_rmdir, 0, 0 },		/* 40 = rmdir */
 	{ ns(struct sys_dup_args), 0,
-	    (sy_call_t *)sys_dup },		/* 41 = dup */
+	    (sy_call_t *)sys_dup, 0, 0 },		/* 41 = dup */
 	{ ns(struct linux_sys_pipe_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pipe },	/* 42 = pipe */
+	    (sy_call_t *)linux_sys_pipe, 0, 0 },	/* 42 = pipe */
 	{ ns(struct linux_sys_times_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_times },	/* 43 = times */
+	    (sy_call_t *)linux_sys_times, 0, 0 },	/* 43 = times */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 44 = obsolete prof */
+	    linux_sys_nosys, 0, 0 },			/* 44 = obsolete prof */
 	{ ns(struct linux_sys_brk_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_brk },	/* 45 = brk */
+	    (sy_call_t *)linux_sys_brk, 0, 0 },	/* 45 = brk */
 	{ ns(struct sys_setgid_args), 0,
-	    (sy_call_t *)sys_setgid },		/* 46 = linux_setgid16 */
+	    (sy_call_t *)sys_setgid, 0, 0 },		/* 46 = linux_setgid16 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid },		/* 47 = linux_getgid16 */
+	    (sy_call_t *)sys_getgid, 0, 0 },		/* 47 = linux_getgid16 */
 	{ ns(struct linux_sys_signal_args), 0,
-	    (sy_call_t *)linux_sys_signal },	/* 48 = signal */
+	    (sy_call_t *)linux_sys_signal, 0, 0 },	/* 48 = signal */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_geteuid },		/* 49 = linux_geteuid16 */
+	    (sy_call_t *)sys_geteuid, 0, 0 },		/* 49 = linux_geteuid16 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getegid },		/* 50 = linux_getegid16 */
+	    (sy_call_t *)sys_getegid, 0, 0 },		/* 50 = linux_getegid16 */
 	{ ns(struct sys_acct_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_acct },		/* 51 = acct */
+	    (sy_call_t *)sys_acct, 0, 0 },		/* 51 = acct */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 52 = unimplemented umount */
+	    linux_sys_nosys, 0, 0 },			/* 52 = unimplemented umount */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 53 = obsolete lock */
+	    linux_sys_nosys, 0, 0 },			/* 53 = obsolete lock */
 	{ ns(struct linux_sys_ioctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ioctl },	/* 54 = ioctl */
+	    (sy_call_t *)linux_sys_ioctl, 0, 0 },	/* 54 = ioctl */
 	{ ns(struct linux_sys_fcntl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fcntl },	/* 55 = fcntl */
+	    (sy_call_t *)linux_sys_fcntl, 0, 0 },	/* 55 = fcntl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 56 = obsolete mpx */
+	    linux_sys_nosys, 0, 0 },			/* 56 = obsolete mpx */
 	{ ns(struct sys_setpgid_args), 0,
-	    (sy_call_t *)sys_setpgid },		/* 57 = setpgid */
+	    (sy_call_t *)sys_setpgid, 0, 0 },		/* 57 = setpgid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 58 = obsolete ulimit */
+	    linux_sys_nosys, 0, 0 },			/* 58 = obsolete ulimit */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 59 = unimplemented oldolduname */
+	    linux_sys_nosys, 0, 0 },			/* 59 = unimplemented oldolduname */
 	{ ns(struct sys_umask_args), 0,
-	    (sy_call_t *)sys_umask },		/* 60 = umask */
+	    (sy_call_t *)sys_umask, 0, 0 },		/* 60 = umask */
 	{ ns(struct sys_chroot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chroot },		/* 61 = chroot */
+	    (sy_call_t *)sys_chroot, 0, 0 },		/* 61 = chroot */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 62 = unimplemented ustat */
+	    linux_sys_nosys, 0, 0 },			/* 62 = unimplemented ustat */
 	{ ns(struct sys_dup2_args), 0,
-	    (sy_call_t *)sys_dup2 },		/* 63 = dup2 */
+	    (sy_call_t *)sys_dup2, 0, 0 },		/* 63 = dup2 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getppid },		/* 64 = getppid */
+	    (sy_call_t *)sys_getppid, 0, 0 },		/* 64 = getppid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpgrp },		/* 65 = getpgrp */
+	    (sy_call_t *)sys_getpgrp, 0, 0 },		/* 65 = getpgrp */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_setsid },		/* 66 = setsid */
+	    (sy_call_t *)sys_setsid, 0, 0 },		/* 66 = setsid */
 	{ ns(struct linux_sys_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigaction },	/* 67 = sigaction */
+	    (sy_call_t *)linux_sys_sigaction, 0, 0 },	/* 67 = sigaction */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_siggetmask },/* 68 = siggetmask */
+	    (sy_call_t *)linux_sys_siggetmask, 0, 0 },/* 68 = siggetmask */
 	{ ns(struct linux_sys_sigsetmask_args), 0,
-	    (sy_call_t *)linux_sys_sigsetmask },/* 69 = sigsetmask */
+	    (sy_call_t *)linux_sys_sigsetmask, 0, 0 },/* 69 = sigsetmask */
 	{ ns(struct linux_sys_setreuid16_args), 0,
-	    (sy_call_t *)linux_sys_setreuid16 },/* 70 = setreuid16 */
+	    (sy_call_t *)linux_sys_setreuid16, 0, 0 },/* 70 = setreuid16 */
 	{ ns(struct linux_sys_setregid16_args), 0,
-	    (sy_call_t *)linux_sys_setregid16 },/* 71 = setregid16 */
+	    (sy_call_t *)linux_sys_setregid16, 0, 0 },/* 71 = setregid16 */
 	{ ns(struct linux_sys_sigsuspend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigsuspend },/* 72 = sigsuspend */
+	    (sy_call_t *)linux_sys_sigsuspend, 0, 0 },/* 72 = sigsuspend */
 	{ ns(struct linux_sys_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigpending },/* 73 = sigpending */
+	    (sy_call_t *)linux_sys_sigpending, 0, 0 },/* 73 = sigpending */
 #if !defined(_KERNEL) || defined(COMPAT_43)
 	{ ns(struct compat_43_sys_sethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sethostname },/* 74 = sethostname */
+	    (sy_call_t *)compat_43_sys_sethostname, 0, 0 },/* 74 = sethostname */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 74 = unimplemented compat_43_sys_sethostname */
+	    linux_sys_nosys, 0, 0 },			/* 74 = unimplemented compat_43_sys_sethostname */
 #endif
 	{ ns(struct linux_sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setrlimit },	/* 75 = setrlimit */
+	    (sy_call_t *)linux_sys_setrlimit, 0, 0 },	/* 75 = setrlimit */
 	{ ns(struct linux_sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getrlimit },	/* 76 = getrlimit */
+	    (sy_call_t *)linux_sys_getrlimit, 0, 0 },	/* 76 = getrlimit */
 	{ ns(struct compat_50_sys_getrusage_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getrusage },/* 77 = getrusage */
+	    (sy_call_t *)compat_50_sys_getrusage, 0, 0 },/* 77 = getrusage */
 	{ ns(struct linux_sys_gettimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_gettimeofday },/* 78 = gettimeofday */
+	    (sy_call_t *)linux_sys_gettimeofday, 0, 0 },/* 78 = gettimeofday */
 	{ ns(struct linux_sys_settimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_settimeofday },/* 79 = settimeofday */
+	    (sy_call_t *)linux_sys_settimeofday, 0, 0 },/* 79 = settimeofday */
 	{ ns(struct linux_sys_getgroups16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getgroups16 },/* 80 = getgroups16 */
+	    (sy_call_t *)linux_sys_getgroups16, 0, 0 },/* 80 = getgroups16 */
 	{ ns(struct linux_sys_setgroups16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setgroups16 },/* 81 = setgroups16 */
+	    (sy_call_t *)linux_sys_setgroups16, 0, 0 },/* 81 = setgroups16 */
 	{ ns(struct linux_sys_oldselect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_oldselect },	/* 82 = oldselect */
+	    (sy_call_t *)linux_sys_oldselect, 0, 0 },	/* 82 = oldselect */
 	{ ns(struct sys_symlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlink },		/* 83 = symlink */
+	    (sy_call_t *)sys_symlink, 0, 0 },		/* 83 = symlink */
 #if !defined(_KERNEL) || defined(COMPAT_43)
 	{ ns(struct compat_43_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_lstat },	/* 84 = oolstat */
+	    (sy_call_t *)compat_43_sys_lstat, 0, 0 },	/* 84 = oolstat */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 84 = unimplemented compat_43_sys_lstat */
+	    linux_sys_nosys, 0, 0 },			/* 84 = unimplemented compat_43_sys_lstat */
 #endif
 	{ ns(struct sys_readlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlink },	/* 85 = readlink */
+	    (sy_call_t *)sys_readlink, 0, 0 },	/* 85 = readlink */
 #ifdef EXEC_AOUT
 	{ ns(struct linux_sys_uselib_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_uselib },	/* 86 = uselib */
+	    (sy_call_t *)linux_sys_uselib, 0, 0 },	/* 86 = uselib */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 86 = unimplemented sys_uselib */
+	    linux_sys_nosys, 0, 0 },			/* 86 = unimplemented sys_uselib */
 #endif
 	{ ns(struct linux_sys_swapon_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_swapon },	/* 87 = swapon */
+	    (sy_call_t *)linux_sys_swapon, 0, 0 },	/* 87 = swapon */
 	{ ns(struct linux_sys_reboot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_reboot },	/* 88 = reboot */
+	    (sy_call_t *)linux_sys_reboot, 0, 0 },	/* 88 = reboot */
 	{ ns(struct linux_sys_readdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_readdir },	/* 89 = readdir */
+	    (sy_call_t *)linux_sys_readdir, 0, 0 },	/* 89 = readdir */
 	{ ns(struct linux_sys_old_mmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_old_mmap },	/* 90 = old_mmap */
+	    (sy_call_t *)linux_sys_old_mmap, 0, 0 },	/* 90 = old_mmap */
 	{ ns(struct sys_munmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munmap },		/* 91 = munmap */
+	    (sy_call_t *)sys_munmap, 0, 0 },		/* 91 = munmap */
 	{ ns(struct compat_43_sys_truncate_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_truncate },/* 92 = truncate */
+	    (sy_call_t *)compat_43_sys_truncate, 0, 0 },/* 92 = truncate */
 #if !defined(_KERNEL) || defined(COMPAT_43)
 	{ ns(struct compat_43_sys_ftruncate_args), 0,
-	    (sy_call_t *)compat_43_sys_ftruncate },/* 93 = ftruncate */
+	    (sy_call_t *)compat_43_sys_ftruncate, 0, 0 },/* 93 = ftruncate */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 93 = unimplemented compat_43_sys_ftruncate */
+	    linux_sys_nosys, 0, 0 },			/* 93 = unimplemented compat_43_sys_ftruncate */
 #endif
 	{ ns(struct sys_fchmod_args), 0,
-	    (sy_call_t *)sys_fchmod },		/* 94 = fchmod */
+	    (sy_call_t *)sys_fchmod, 0, 0 },		/* 94 = fchmod */
 	{ ns(struct linux_sys_fchown16_args), 0,
-	    (sy_call_t *)linux_sys_fchown16 },	/* 95 = fchown16 */
+	    (sy_call_t *)linux_sys_fchown16, 0, 0 },	/* 95 = fchown16 */
 	{ ns(struct linux_sys_getpriority_args), 0,
-	    (sy_call_t *)linux_sys_getpriority },/* 96 = getpriority */
+	    (sy_call_t *)linux_sys_getpriority, 0, 0 },/* 96 = getpriority */
 	{ ns(struct sys_setpriority_args), 0,
-	    (sy_call_t *)sys_setpriority },	/* 97 = setpriority */
+	    (sy_call_t *)sys_setpriority, 0, 0 },	/* 97 = setpriority */
 	{ ns(struct sys_profil_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_profil },		/* 98 = profil */
+	    (sy_call_t *)sys_profil, 0, 0 },		/* 98 = profil */
 	{ ns(struct linux_sys_statfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_statfs },	/* 99 = statfs */
+	    (sy_call_t *)linux_sys_statfs, 0, 0 },	/* 99 = statfs */
 	{ ns(struct linux_sys_fstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatfs },	/* 100 = fstatfs */
+	    (sy_call_t *)linux_sys_fstatfs, 0, 0 },	/* 100 = fstatfs */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 101 = unimplemented ioperm */
+	    linux_sys_nosys, 0, 0 },			/* 101 = unimplemented ioperm */
 	{ ns(struct linux_sys_socketcall_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_socketcall },/* 102 = socketcall */
+	    (sy_call_t *)linux_sys_socketcall, 0, 0 },/* 102 = socketcall */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 103 = unimplemented syslog */
+	    linux_sys_nosys, 0, 0 },			/* 103 = unimplemented syslog */
 	{ ns(struct compat_50_sys_setitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_setitimer },/* 104 = setitimer */
+	    (sy_call_t *)compat_50_sys_setitimer, 0, 0 },/* 104 = setitimer */
 	{ ns(struct compat_50_sys_getitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getitimer },/* 105 = getitimer */
+	    (sy_call_t *)compat_50_sys_getitimer, 0, 0 },/* 105 = getitimer */
 	{ ns(struct linux_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stat },	/* 106 = stat */
+	    (sy_call_t *)linux_sys_stat, 0, 0 },	/* 106 = stat */
 	{ ns(struct linux_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lstat },	/* 107 = lstat */
+	    (sy_call_t *)linux_sys_lstat, 0, 0 },	/* 107 = lstat */
 	{ ns(struct linux_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstat },	/* 108 = fstat */
+	    (sy_call_t *)linux_sys_fstat, 0, 0 },	/* 108 = fstat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 109 = unimplemented olduname */
+	    linux_sys_nosys, 0, 0 },			/* 109 = unimplemented olduname */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 110 = unimplemented iopl */
+	    linux_sys_nosys, 0, 0 },			/* 110 = unimplemented iopl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 111 = unimplemented vhangup */
+	    linux_sys_nosys, 0, 0 },			/* 111 = unimplemented vhangup */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 112 = unimplemented idle */
+	    linux_sys_nosys, 0, 0 },			/* 112 = unimplemented idle */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 113 = unimplemented vm86old */
+	    linux_sys_nosys, 0, 0 },			/* 113 = unimplemented vm86old */
 	{ ns(struct linux_sys_wait4_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_wait4 },	/* 114 = wait4 */
+	    (sy_call_t *)linux_sys_wait4, 0, 0 },	/* 114 = wait4 */
 	{ ns(struct linux_sys_swapoff_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_swapoff },	/* 115 = swapoff */
+	    (sy_call_t *)linux_sys_swapoff, 0, 0 },	/* 115 = swapoff */
 	{ ns(struct linux_sys_sysinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sysinfo },	/* 116 = sysinfo */
+	    (sy_call_t *)linux_sys_sysinfo, 0, 0 },	/* 116 = sysinfo */
 	{ ns(struct linux_sys_ipc_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ipc },	/* 117 = ipc */
+	    (sy_call_t *)linux_sys_ipc, 0, 0 },	/* 117 = ipc */
 	{ ns(struct sys_fsync_args), 0,
-	    (sy_call_t *)sys_fsync },		/* 118 = fsync */
+	    (sy_call_t *)sys_fsync, 0, 0 },		/* 118 = fsync */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_sigreturn },	/* 119 = sigreturn */
+	    (sy_call_t *)linux_sys_sigreturn, 0, 0 },	/* 119 = sigreturn */
 	{ ns(struct linux_sys_clone_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clone },	/* 120 = clone */
+	    (sy_call_t *)linux_sys_clone, 0, 0 },	/* 120 = clone */
 	{ ns(struct linux_sys_setdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setdomainname },/* 121 = setdomainname */
+	    (sy_call_t *)linux_sys_setdomainname, 0, 0 },/* 121 = setdomainname */
 	{ ns(struct linux_sys_uname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_uname },	/* 122 = uname */
+	    (sy_call_t *)linux_sys_uname, 0, 0 },	/* 122 = uname */
 	{ ns(struct linux_sys_cacheflush_args), 0,
-	    (sy_call_t *)linux_sys_cacheflush },/* 123 = cacheflush */
+	    (sy_call_t *)linux_sys_cacheflush, 0, 0 },/* 123 = cacheflush */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 124 = unimplemented adjtimex */
+	    linux_sys_nosys, 0, 0 },			/* 124 = unimplemented adjtimex */
 	{ ns(struct linux_sys_mprotect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mprotect },	/* 125 = mprotect */
+	    (sy_call_t *)linux_sys_mprotect, 0, 0 },	/* 125 = mprotect */
 	{ ns(struct linux_sys_sigprocmask_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigprocmask },/* 126 = sigprocmask */
+	    (sy_call_t *)linux_sys_sigprocmask, 0, 0 },/* 126 = sigprocmask */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 127 = unimplemented create_module */
+	    linux_sys_nosys, 0, 0 },			/* 127 = unimplemented create_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 128 = unimplemented init_module */
+	    linux_sys_nosys, 0, 0 },			/* 128 = unimplemented init_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 129 = unimplemented delete_module */
+	    linux_sys_nosys, 0, 0 },			/* 129 = unimplemented delete_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 130 = unimplemented get_kernel_syms */
+	    linux_sys_nosys, 0, 0 },			/* 130 = unimplemented get_kernel_syms */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 131 = unimplemented quotactl */
+	    linux_sys_nosys, 0, 0 },			/* 131 = unimplemented quotactl */
 	{ ns(struct sys_getpgid_args), 0,
-	    (sy_call_t *)sys_getpgid },		/* 132 = getpgid */
+	    (sy_call_t *)sys_getpgid, 0, 0 },		/* 132 = getpgid */
 	{ ns(struct sys_fchdir_args), 0,
-	    (sy_call_t *)sys_fchdir },		/* 133 = fchdir */
+	    (sy_call_t *)sys_fchdir, 0, 0 },		/* 133 = fchdir */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 134 = unimplemented bdflush */
+	    linux_sys_nosys, 0, 0 },			/* 134 = unimplemented bdflush */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 135 = unimplemented sysfs */
+	    linux_sys_nosys, 0, 0 },			/* 135 = unimplemented sysfs */
 	{ ns(struct linux_sys_personality_args), 0,
-	    (sy_call_t *)linux_sys_personality },/* 136 = personality */
+	    (sy_call_t *)linux_sys_personality, 0, 0 },/* 136 = personality */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 137 = unimplemented afs_syscall */
+	    linux_sys_nosys, 0, 0 },			/* 137 = unimplemented afs_syscall */
 	{ ns(struct linux_sys_setfsuid_args), 0,
-	    (sy_call_t *)linux_sys_setfsuid },	/* 138 = linux_setfsuid16 */
+	    (sy_call_t *)linux_sys_setfsuid, 0, 0 },	/* 138 = linux_setfsuid16 */
 	{ ns(struct linux_sys_setfsgid_args), 0,
-	    (sy_call_t *)linux_sys_setfsgid },	/* 139 = linux_setfsgid16 */
+	    (sy_call_t *)linux_sys_setfsgid, 0, 0 },	/* 139 = linux_setfsgid16 */
 	{ ns(struct linux_sys_llseek_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_llseek },	/* 140 = llseek */
+	    (sy_call_t *)linux_sys_llseek, 0, 0 },	/* 140 = llseek */
 	{ ns(struct linux_sys_getdents_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getdents },	/* 141 = getdents */
+	    (sy_call_t *)linux_sys_getdents, 0, 0 },	/* 141 = getdents */
 	{ ns(struct linux_sys_select_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_select },	/* 142 = select */
+	    (sy_call_t *)linux_sys_select, 0, 0 },	/* 142 = select */
 	{ ns(struct sys_flock_args), 0,
-	    (sy_call_t *)sys_flock },		/* 143 = flock */
+	    (sy_call_t *)sys_flock, 0, 0 },		/* 143 = flock */
 	{ ns(struct sys___msync13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___msync13 },	/* 144 = __msync13 */
+	    (sy_call_t *)sys___msync13, 0, 0 },	/* 144 = __msync13 */
 	{ ns(struct sys_readv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readv },		/* 145 = readv */
+	    (sy_call_t *)sys_readv, 0, 0 },		/* 145 = readv */
 	{ ns(struct sys_writev_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_writev },		/* 146 = writev */
+	    (sy_call_t *)sys_writev, 0, 0 },		/* 146 = writev */
 	{ ns(struct sys_getsid_args), 0,
-	    (sy_call_t *)sys_getsid },		/* 147 = getsid */
+	    (sy_call_t *)sys_getsid, 0, 0 },		/* 147 = getsid */
 	{ ns(struct linux_sys_fdatasync_args), 0,
-	    (sy_call_t *)linux_sys_fdatasync },	/* 148 = fdatasync */
+	    (sy_call_t *)linux_sys_fdatasync, 0, 0 },	/* 148 = fdatasync */
 	{ ns(struct linux_sys___sysctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys___sysctl },	/* 149 = __sysctl */
+	    (sy_call_t *)linux_sys___sysctl, 0, 0 },	/* 149 = __sysctl */
 	{ ns(struct sys_mlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mlock },		/* 150 = mlock */
+	    (sy_call_t *)sys_mlock, 0, 0 },		/* 150 = mlock */
 	{ ns(struct sys_munlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munlock },		/* 151 = munlock */
+	    (sy_call_t *)sys_munlock, 0, 0 },		/* 151 = munlock */
 	{ ns(struct sys_mlockall_args), 0,
-	    (sy_call_t *)sys_mlockall },	/* 152 = mlockall */
+	    (sy_call_t *)sys_mlockall, 0, 0 },	/* 152 = mlockall */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_munlockall },	/* 153 = munlockall */
+	    (sy_call_t *)sys_munlockall, 0, 0 },	/* 153 = munlockall */
 	{ ns(struct linux_sys_sched_setparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setparam },/* 154 = sched_setparam */
+	    (sy_call_t *)linux_sys_sched_setparam, 0, 0 },/* 154 = sched_setparam */
 	{ ns(struct linux_sys_sched_getparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_getparam },/* 155 = sched_getparam */
+	    (sy_call_t *)linux_sys_sched_getparam, 0, 0 },/* 155 = sched_getparam */
 	{ ns(struct linux_sys_sched_setscheduler_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setscheduler },/* 156 = sched_setscheduler */
+	    (sy_call_t *)linux_sys_sched_setscheduler, 0, 0 },/* 156 = sched_setscheduler */
 	{ ns(struct linux_sys_sched_getscheduler_args), 0,
-	    (sy_call_t *)linux_sys_sched_getscheduler },/* 157 = sched_getscheduler */
+	    (sy_call_t *)linux_sys_sched_getscheduler, 0, 0 },/* 157 = sched_getscheduler */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_sched_yield },/* 158 = sched_yield */
+	    (sy_call_t *)linux_sys_sched_yield, 0, 0 },/* 158 = sched_yield */
 	{ ns(struct linux_sys_sched_get_priority_max_args), 0,
-	    (sy_call_t *)linux_sys_sched_get_priority_max },/* 159 = sched_get_priority_max */
+	    (sy_call_t *)linux_sys_sched_get_priority_max, 0, 0 },/* 159 = sched_get_priority_max */
 	{ ns(struct linux_sys_sched_get_priority_min_args), 0,
-	    (sy_call_t *)linux_sys_sched_get_priority_min },/* 160 = sched_get_priority_min */
+	    (sy_call_t *)linux_sys_sched_get_priority_min, 0, 0 },/* 160 = sched_get_priority_min */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 161 = unimplemented sched_rr_get_interval */
+	    linux_sys_nosys, 0, 0 },			/* 161 = unimplemented sched_rr_get_interval */
 	{ ns(struct linux_sys_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_nanosleep },	/* 162 = nanosleep */
+	    (sy_call_t *)linux_sys_nanosleep, 0, 0 },	/* 162 = nanosleep */
 	{ ns(struct linux_sys_mremap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mremap },	/* 163 = mremap */
+	    (sy_call_t *)linux_sys_mremap, 0, 0 },	/* 163 = mremap */
 	{ ns(struct linux_sys_setresuid16_args), 0,
-	    (sy_call_t *)linux_sys_setresuid16 },/* 164 = setresuid16 */
+	    (sy_call_t *)linux_sys_setresuid16, 0, 0 },/* 164 = setresuid16 */
 	{ ns(struct linux_sys_getresuid16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresuid16 },/* 165 = getresuid16 */
+	    (sy_call_t *)linux_sys_getresuid16, 0, 0 },/* 165 = getresuid16 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 166 = unimplemented vm86 */
+	    linux_sys_nosys, 0, 0 },			/* 166 = unimplemented vm86 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 167 = unimplemented query_module */
+	    linux_sys_nosys, 0, 0 },			/* 167 = unimplemented query_module */
 	{ ns(struct sys_poll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_poll },		/* 168 = poll */
+	    (sy_call_t *)sys_poll, 0, 0 },		/* 168 = poll */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 169 = unimplemented nfsservctl */
+	    linux_sys_nosys, 0, 0 },			/* 169 = unimplemented nfsservctl */
 	{ ns(struct linux_sys_setresgid16_args), 0,
-	    (sy_call_t *)linux_sys_setresgid16 },/* 170 = setresgid16 */
+	    (sy_call_t *)linux_sys_setresgid16, 0, 0 },/* 170 = setresgid16 */
 	{ ns(struct linux_sys_getresgid16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresgid16 },/* 171 = getresgid16 */
+	    (sy_call_t *)linux_sys_getresgid16, 0, 0 },/* 171 = getresgid16 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 172 = unimplemented prctl */
+	    linux_sys_nosys, 0, 0 },			/* 172 = unimplemented prctl */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_rt_sigreturn },/* 173 = rt_sigreturn */
+	    (sy_call_t *)linux_sys_rt_sigreturn, 0, 0 },/* 173 = rt_sigreturn */
 	{ ns(struct linux_sys_rt_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigaction },/* 174 = rt_sigaction */
+	    (sy_call_t *)linux_sys_rt_sigaction, 0, 0 },/* 174 = rt_sigaction */
 	{ ns(struct linux_sys_rt_sigprocmask_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigprocmask },/* 175 = rt_sigprocmask */
+	    (sy_call_t *)linux_sys_rt_sigprocmask, 0, 0 },/* 175 = rt_sigprocmask */
 	{ ns(struct linux_sys_rt_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigpending },/* 176 = rt_sigpending */
+	    (sy_call_t *)linux_sys_rt_sigpending, 0, 0 },/* 176 = rt_sigpending */
 	{ ns(struct linux_sys_rt_sigtimedwait_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigtimedwait },/* 177 = rt_sigtimedwait */
+	    (sy_call_t *)linux_sys_rt_sigtimedwait, 0, 0 },/* 177 = rt_sigtimedwait */
 	{ ns(struct linux_sys_rt_queueinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_queueinfo },/* 178 = rt_queueinfo */
+	    (sy_call_t *)linux_sys_rt_queueinfo, 0, 0 },/* 178 = rt_queueinfo */
 	{ ns(struct linux_sys_rt_sigsuspend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigsuspend },/* 179 = rt_sigsuspend */
+	    (sy_call_t *)linux_sys_rt_sigsuspend, 0, 0 },/* 179 = rt_sigsuspend */
 	{ ns(struct linux_sys_pread_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG3_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pread },	/* 180 = pread */
+	    (sy_call_t *)linux_sys_pread, 0, 0 },	/* 180 = pread */
 	{ ns(struct linux_sys_pwrite_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG3_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pwrite },	/* 181 = pwrite */
+	    (sy_call_t *)linux_sys_pwrite, 0, 0 },	/* 181 = pwrite */
 	{ ns(struct linux_sys_lchown16_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lchown16 },	/* 182 = lchown16 */
+	    (sy_call_t *)linux_sys_lchown16, 0, 0 },	/* 182 = lchown16 */
 	{ ns(struct sys___getcwd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getcwd },	/* 183 = __getcwd */
+	    (sy_call_t *)sys___getcwd, 0, 0 },	/* 183 = __getcwd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 184 = unimplemented capget */
+	    linux_sys_nosys, 0, 0 },			/* 184 = unimplemented capget */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 185 = unimplemented capset */
+	    linux_sys_nosys, 0, 0 },			/* 185 = unimplemented capset */
 	{ ns(struct linux_sys_sigaltstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigaltstack },/* 186 = sigaltstack */
+	    (sy_call_t *)linux_sys_sigaltstack, 0, 0 },/* 186 = sigaltstack */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 187 = unimplemented sendfile */
+	    linux_sys_nosys, 0, 0 },			/* 187 = unimplemented sendfile */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 188 = unimplemented getpmsg */
+	    linux_sys_nosys, 0, 0 },			/* 188 = unimplemented getpmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 189 = unimplemented putpmsg */
+	    linux_sys_nosys, 0, 0 },			/* 189 = unimplemented putpmsg */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys___vfork14 },	/* 190 = __vfork14 */
+	    (sy_call_t *)sys___vfork14, 0, 0 },	/* 190 = __vfork14 */
 	{ ns(struct linux_sys_ugetrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ugetrlimit },/* 191 = ugetrlimit */
+	    (sy_call_t *)linux_sys_ugetrlimit, 0, 0 },/* 191 = ugetrlimit */
 #define linux_sys_mmap2_args linux_sys_mmap_args
 	{ ns(struct linux_sys_mmap2_args), 0,
-	    (sy_call_t *)linux_sys_mmap2 },	/* 192 = mmap2 */
+	    (sy_call_t *)linux_sys_mmap2, 0, 0 },	/* 192 = mmap2 */
 	{ ns(struct linux_sys_truncate64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_truncate64 },/* 193 = truncate64 */
+	    (sy_call_t *)linux_sys_truncate64, 0, 0 },/* 193 = truncate64 */
 	{ ns(struct linux_sys_ftruncate64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64,
-	    (sy_call_t *)linux_sys_ftruncate64 },/* 194 = ftruncate64 */
+	    (sy_call_t *)linux_sys_ftruncate64, 0, 0 },/* 194 = ftruncate64 */
 	{ ns(struct linux_sys_stat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stat64 },	/* 195 = stat64 */
+	    (sy_call_t *)linux_sys_stat64, 0, 0 },	/* 195 = stat64 */
 	{ ns(struct linux_sys_lstat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lstat64 },	/* 196 = lstat64 */
+	    (sy_call_t *)linux_sys_lstat64, 0, 0 },	/* 196 = lstat64 */
 	{ ns(struct linux_sys_fstat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstat64 },	/* 197 = fstat64 */
+	    (sy_call_t *)linux_sys_fstat64, 0, 0 },	/* 197 = fstat64 */
 	{ ns(struct sys___posix_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_chown },	/* 198 = __posix_chown */
+	    (sy_call_t *)sys___posix_chown, 0, 0 },	/* 198 = __posix_chown */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid },		/* 199 = getuid */
+	    (sy_call_t *)sys_getuid, 0, 0 },		/* 199 = getuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid },		/* 200 = getgid */
+	    (sy_call_t *)sys_getgid, 0, 0 },		/* 200 = getgid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_geteuid },		/* 201 = geteuid */
+	    (sy_call_t *)sys_geteuid, 0, 0 },		/* 201 = geteuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getegid },		/* 202 = getegid */
+	    (sy_call_t *)sys_getegid, 0, 0 },		/* 202 = getegid */
 	{ ns(struct sys_setreuid_args), 0,
-	    (sy_call_t *)sys_setreuid },	/* 203 = setreuid */
+	    (sy_call_t *)sys_setreuid, 0, 0 },	/* 203 = setreuid */
 	{ ns(struct sys_setregid_args), 0,
-	    (sy_call_t *)sys_setregid },	/* 204 = setregid */
+	    (sy_call_t *)sys_setregid, 0, 0 },	/* 204 = setregid */
 	{ ns(struct sys_getgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getgroups },	/* 205 = getgroups */
+	    (sy_call_t *)sys_getgroups, 0, 0 },	/* 205 = getgroups */
 	{ ns(struct sys_setgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setgroups },	/* 206 = setgroups */
+	    (sy_call_t *)sys_setgroups, 0, 0 },	/* 206 = setgroups */
 	{ ns(struct sys___posix_fchown_args), 0,
-	    (sy_call_t *)sys___posix_fchown },	/* 207 = __posix_fchown */
+	    (sy_call_t *)sys___posix_fchown, 0, 0 },	/* 207 = __posix_fchown */
 	{ ns(struct linux_sys_setresuid_args), 0,
-	    (sy_call_t *)linux_sys_setresuid },	/* 208 = setresuid */
+	    (sy_call_t *)linux_sys_setresuid, 0, 0 },	/* 208 = setresuid */
 	{ ns(struct linux_sys_getresuid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresuid },	/* 209 = getresuid */
+	    (sy_call_t *)linux_sys_getresuid, 0, 0 },	/* 209 = getresuid */
 	{ ns(struct linux_sys_setresgid_args), 0,
-	    (sy_call_t *)linux_sys_setresgid },	/* 210 = setresgid */
+	    (sy_call_t *)linux_sys_setresgid, 0, 0 },	/* 210 = setresgid */
 	{ ns(struct linux_sys_getresgid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresgid },	/* 211 = getresgid */
+	    (sy_call_t *)linux_sys_getresgid, 0, 0 },	/* 211 = getresgid */
 	{ ns(struct sys___posix_lchown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_lchown },	/* 212 = __posix_lchown */
+	    (sy_call_t *)sys___posix_lchown, 0, 0 },	/* 212 = __posix_lchown */
 	{ ns(struct sys_setuid_args), 0,
-	    (sy_call_t *)sys_setuid },		/* 213 = setuid */
+	    (sy_call_t *)sys_setuid, 0, 0 },		/* 213 = setuid */
 	{ ns(struct sys_setgid_args), 0,
-	    (sy_call_t *)sys_setgid },		/* 214 = setgid */
+	    (sy_call_t *)sys_setgid, 0, 0 },		/* 214 = setgid */
 	{ ns(struct linux_sys_setfsuid_args), 0,
-	    (sy_call_t *)linux_sys_setfsuid },	/* 215 = setfsuid */
+	    (sy_call_t *)linux_sys_setfsuid, 0, 0 },	/* 215 = setfsuid */
 	{ ns(struct linux_sys_setfsgid_args), 0,
-	    (sy_call_t *)linux_sys_setfsgid },	/* 216 = setfsgid */
+	    (sy_call_t *)linux_sys_setfsgid, 0, 0 },	/* 216 = setfsgid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 217 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 217 = unimplemented / * unused * / */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 218 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 218 = unimplemented / * unused * / */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 219 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 219 = unimplemented / * unused * / */
 	{ ns(struct linux_sys_getdents64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getdents64 },/* 220 = getdents64 */
+	    (sy_call_t *)linux_sys_getdents64, 0, 0 },/* 220 = getdents64 */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_gettid },	/* 221 = gettid */
+	    (sy_call_t *)linux_sys_gettid, 0, 0 },	/* 221 = gettid */
 	{ ns(struct linux_sys_tkill_args), 0,
-	    (sy_call_t *)linux_sys_tkill },	/* 222 = tkill */
+	    (sy_call_t *)linux_sys_tkill, 0, 0 },	/* 222 = tkill */
 	{ ns(struct linux_sys_setxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setxattr },	/* 223 = setxattr */
+	    (sy_call_t *)linux_sys_setxattr, 0, 0 },	/* 223 = setxattr */
 	{ ns(struct linux_sys_lsetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lsetxattr },	/* 224 = lsetxattr */
+	    (sy_call_t *)linux_sys_lsetxattr, 0, 0 },	/* 224 = lsetxattr */
 	{ ns(struct linux_sys_fsetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fsetxattr },	/* 225 = fsetxattr */
+	    (sy_call_t *)linux_sys_fsetxattr, 0, 0 },	/* 225 = fsetxattr */
 	{ ns(struct linux_sys_getxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getxattr },	/* 226 = getxattr */
+	    (sy_call_t *)linux_sys_getxattr, 0, 0 },	/* 226 = getxattr */
 	{ ns(struct linux_sys_lgetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lgetxattr },	/* 227 = lgetxattr */
+	    (sy_call_t *)linux_sys_lgetxattr, 0, 0 },	/* 227 = lgetxattr */
 	{ ns(struct linux_sys_fgetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fgetxattr },	/* 228 = fgetxattr */
+	    (sy_call_t *)linux_sys_fgetxattr, 0, 0 },	/* 228 = fgetxattr */
 	{ ns(struct linux_sys_listxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_listxattr },	/* 229 = listxattr */
+	    (sy_call_t *)linux_sys_listxattr, 0, 0 },	/* 229 = listxattr */
 	{ ns(struct linux_sys_llistxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_llistxattr },/* 230 = llistxattr */
+	    (sy_call_t *)linux_sys_llistxattr, 0, 0 },/* 230 = llistxattr */
 	{ ns(struct linux_sys_flistxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_flistxattr },/* 231 = flistxattr */
+	    (sy_call_t *)linux_sys_flistxattr, 0, 0 },/* 231 = flistxattr */
 	{ ns(struct linux_sys_removexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_removexattr },/* 232 = removexattr */
+	    (sy_call_t *)linux_sys_removexattr, 0, 0 },/* 232 = removexattr */
 	{ ns(struct linux_sys_lremovexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lremovexattr },/* 233 = lremovexattr */
+	    (sy_call_t *)linux_sys_lremovexattr, 0, 0 },/* 233 = lremovexattr */
 	{ ns(struct linux_sys_fremovexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fremovexattr },/* 234 = fremovexattr */
+	    (sy_call_t *)linux_sys_fremovexattr, 0, 0 },/* 234 = fremovexattr */
 	{ ns(struct linux_sys_futex_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_futex },	/* 235 = futex */
+	    (sy_call_t *)linux_sys_futex, 0, 0 },	/* 235 = futex */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 236 = unimplemented sendfile64 */
+	    linux_sys_nosys, 0, 0 },			/* 236 = unimplemented sendfile64 */
 	{ ns(struct sys_mincore_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mincore },		/* 237 = mincore */
+	    (sy_call_t *)sys_mincore, 0, 0 },		/* 237 = mincore */
 	{ ns(struct sys_madvise_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_madvise },		/* 238 = madvise */
+	    (sy_call_t *)sys_madvise, 0, 0 },		/* 238 = madvise */
 	{ ns(struct linux_sys_fcntl64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fcntl64 },	/* 239 = fcntl64 */
+	    (sy_call_t *)linux_sys_fcntl64, 0, 0 },	/* 239 = fcntl64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 240 = unimplemented readahead */
+	    linux_sys_nosys, 0, 0 },			/* 240 = unimplemented readahead */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 241 = unimplemented io_setup */
+	    linux_sys_nosys, 0, 0 },			/* 241 = unimplemented io_setup */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 242 = unimplemented io_destroy */
+	    linux_sys_nosys, 0, 0 },			/* 242 = unimplemented io_destroy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 243 = unimplemented io_getevents */
+	    linux_sys_nosys, 0, 0 },			/* 243 = unimplemented io_getevents */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 244 = unimplemented io_submit */
+	    linux_sys_nosys, 0, 0 },			/* 244 = unimplemented io_submit */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 245 = unimplemented io_cancel */
+	    linux_sys_nosys, 0, 0 },			/* 245 = unimplemented io_cancel */
 	{ ns(struct linux_sys_fadvise64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64,
-	    (sy_call_t *)linux_sys_fadvise64 },	/* 246 = fadvise64 */
+	    (sy_call_t *)linux_sys_fadvise64, 0, 0 },	/* 246 = fadvise64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 247 = unimplemented exit_group */
+	    linux_sys_nosys, 0, 0 },			/* 247 = unimplemented exit_group */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 248 = unimplemented lookup_dcookie */
+	    linux_sys_nosys, 0, 0 },			/* 248 = unimplemented lookup_dcookie */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 249 = unimplemented epoll_create */
+	    linux_sys_nosys, 0, 0 },			/* 249 = unimplemented epoll_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 250 = unimplemented epoll_ctl */
+	    linux_sys_nosys, 0, 0 },			/* 250 = unimplemented epoll_ctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 251 = unimplemented epoll_wait */
+	    linux_sys_nosys, 0, 0 },			/* 251 = unimplemented epoll_wait */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 252 = unimplemented remap_file_pages */
+	    linux_sys_nosys, 0, 0 },			/* 252 = unimplemented remap_file_pages */
 	{ ns(struct linux_sys_set_tid_address_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_tid_address },/* 253 = set_tid_address */
+	    (sy_call_t *)linux_sys_set_tid_address, 0, 0 },/* 253 = set_tid_address */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 254 = unimplemented timer_create */
+	    linux_sys_nosys, 0, 0 },			/* 254 = unimplemented timer_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 255 = unimplemented timer_settime */
+	    linux_sys_nosys, 0, 0 },			/* 255 = unimplemented timer_settime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 256 = unimplemented timer_gettime */
+	    linux_sys_nosys, 0, 0 },			/* 256 = unimplemented timer_gettime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 257 = unimplemented timer_getoverrun */
+	    linux_sys_nosys, 0, 0 },			/* 257 = unimplemented timer_getoverrun */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 258 = unimplemented timer_ delete */
+	    linux_sys_nosys, 0, 0 },			/* 258 = unimplemented timer_ delete */
 	{ ns(struct linux_sys_clock_settime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_settime },/* 259 = clock_settime */
+	    (sy_call_t *)linux_sys_clock_settime, 0, 0 },/* 259 = clock_settime */
 	{ ns(struct linux_sys_clock_gettime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_gettime },/* 260 = clock_gettime */
+	    (sy_call_t *)linux_sys_clock_gettime, 0, 0 },/* 260 = clock_gettime */
 	{ ns(struct linux_sys_clock_getres_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_getres },/* 261 = clock_getres */
+	    (sy_call_t *)linux_sys_clock_getres, 0, 0 },/* 261 = clock_getres */
 	{ ns(struct linux_sys_clock_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_nanosleep },/* 262 = clock_nanosleep */
+	    (sy_call_t *)linux_sys_clock_nanosleep, 0, 0 },/* 262 = clock_nanosleep */
 	{ ns(struct linux_sys_statfs64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_statfs64 },	/* 263 = statfs64 */
+	    (sy_call_t *)linux_sys_statfs64, 0, 0 },	/* 263 = statfs64 */
 	{ ns(struct linux_sys_fstatfs64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatfs64 },	/* 264 = fstatfs64 */
+	    (sy_call_t *)linux_sys_fstatfs64, 0, 0 },	/* 264 = fstatfs64 */
 	{ ns(struct linux_sys_tgkill_args), 0,
-	    (sy_call_t *)linux_sys_tgkill },	/* 265 = tgkill */
+	    (sy_call_t *)linux_sys_tgkill, 0, 0 },	/* 265 = tgkill */
 	{ ns(struct compat_50_sys_utimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_utimes },/* 266 = utimes */
+	    (sy_call_t *)compat_50_sys_utimes, 0, 0 },/* 266 = utimes */
 	{ ns(struct linux_sys_fadvise64_64_args), SYCALL_NARGS64_VAL(2) | SYCALL_ARG2_64 | SYCALL_ARG1_64,
-	    (sy_call_t *)linux_sys_fadvise64_64 },/* 267 = fadvise64_64 */
+	    (sy_call_t *)linux_sys_fadvise64_64, 0, 0 },/* 267 = fadvise64_64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 268 = unimplemented mbind */
+	    linux_sys_nosys, 0, 0 },			/* 268 = unimplemented mbind */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 269 = unimplemented get_mempolicy */
+	    linux_sys_nosys, 0, 0 },			/* 269 = unimplemented get_mempolicy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 270 = unimplemented set_mempolicy */
+	    linux_sys_nosys, 0, 0 },			/* 270 = unimplemented set_mempolicy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 271 = unimplemented mq_open */
+	    linux_sys_nosys, 0, 0 },			/* 271 = unimplemented mq_open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 272 = unimplemented mq_unlink */
+	    linux_sys_nosys, 0, 0 },			/* 272 = unimplemented mq_unlink */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 273 = unimplemented mq_timedsend */
+	    linux_sys_nosys, 0, 0 },			/* 273 = unimplemented mq_timedsend */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 274 = unimplemented mq_timedreceive */
+	    linux_sys_nosys, 0, 0 },			/* 274 = unimplemented mq_timedreceive */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 275 = unimplemented mq_notify */
+	    linux_sys_nosys, 0, 0 },			/* 275 = unimplemented mq_notify */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 276 = unimplemented mq_getsetattr */
+	    linux_sys_nosys, 0, 0 },			/* 276 = unimplemented mq_getsetattr */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 277 = unimplemented waitid */
+	    linux_sys_nosys, 0, 0 },			/* 277 = unimplemented waitid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 278 = unimplemented vserver */
+	    linux_sys_nosys, 0, 0 },			/* 278 = unimplemented vserver */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 279 = unimplemented add_key */
+	    linux_sys_nosys, 0, 0 },			/* 279 = unimplemented add_key */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 280 = unimplemented request_key */
+	    linux_sys_nosys, 0, 0 },			/* 280 = unimplemented request_key */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 281 = unimplemented keyctl */
+	    linux_sys_nosys, 0, 0 },			/* 281 = unimplemented keyctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 282 = unimplemented ioprio_set */
+	    linux_sys_nosys, 0, 0 },			/* 282 = unimplemented ioprio_set */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 283 = unimplemented ioprio_get */
+	    linux_sys_nosys, 0, 0 },			/* 283 = unimplemented ioprio_get */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 284 = unimplemented inotify_init */
+	    linux_sys_nosys, 0, 0 },			/* 284 = unimplemented inotify_init */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 285 = unimplemented inotify_add_watch */
+	    linux_sys_nosys, 0, 0 },			/* 285 = unimplemented inotify_add_watch */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 286 = unimplemented inotify_rm_watch */
+	    linux_sys_nosys, 0, 0 },			/* 286 = unimplemented inotify_rm_watch */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 287 = unimplemented migrate_pages */
+	    linux_sys_nosys, 0, 0 },			/* 287 = unimplemented migrate_pages */
 	{ ns(struct linux_sys_openat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_openat },	/* 288 = openat */
+	    (sy_call_t *)linux_sys_openat, 0, 0 },	/* 288 = openat */
 	{ ns(struct sys_mkdirat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdirat },		/* 289 = mkdirat */
+	    (sy_call_t *)sys_mkdirat, 0, 0 },		/* 289 = mkdirat */
 	{ ns(struct linux_sys_mknodat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mknodat },	/* 290 = mknodat */
+	    (sy_call_t *)linux_sys_mknodat, 0, 0 },	/* 290 = mknodat */
 	{ ns(struct linux_sys_fchownat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fchownat },	/* 291 = fchownat */
+	    (sy_call_t *)linux_sys_fchownat, 0, 0 },	/* 291 = fchownat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 292 = unimplemented futimesat */
+	    linux_sys_nosys, 0, 0 },			/* 292 = unimplemented futimesat */
 	{ ns(struct linux_sys_fstatat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatat64 },	/* 293 = fstatat64 */
+	    (sy_call_t *)linux_sys_fstatat64, 0, 0 },	/* 293 = fstatat64 */
 	{ ns(struct linux_sys_unlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_unlinkat },	/* 294 = unlinkat */
+	    (sy_call_t *)linux_sys_unlinkat, 0, 0 },	/* 294 = unlinkat */
 	{ ns(struct sys_renameat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_renameat },	/* 295 = renameat */
+	    (sy_call_t *)sys_renameat, 0, 0 },	/* 295 = renameat */
 	{ ns(struct linux_sys_linkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_linkat },	/* 296 = linkat */
+	    (sy_call_t *)linux_sys_linkat, 0, 0 },	/* 296 = linkat */
 	{ ns(struct sys_symlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlinkat },	/* 297 = symlinkat */
+	    (sy_call_t *)sys_symlinkat, 0, 0 },	/* 297 = symlinkat */
 	{ ns(struct sys_readlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlinkat },	/* 298 = readlinkat */
+	    (sy_call_t *)sys_readlinkat, 0, 0 },	/* 298 = readlinkat */
 	{ ns(struct linux_sys_fchmodat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fchmodat },	/* 299 = fchmodat */
+	    (sy_call_t *)linux_sys_fchmodat, 0, 0 },	/* 299 = fchmodat */
 	{ ns(struct linux_sys_faccessat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_faccessat },	/* 300 = faccessat */
+	    (sy_call_t *)linux_sys_faccessat, 0, 0 },	/* 300 = faccessat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 301 = unimplemented pselect6 */
+	    linux_sys_nosys, 0, 0 },			/* 301 = unimplemented pselect6 */
 	{ ns(struct linux_sys_ppoll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ppoll },	/* 302 = ppoll */
+	    (sy_call_t *)linux_sys_ppoll, 0, 0 },	/* 302 = ppoll */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 303 = unimplemented unshare */
+	    linux_sys_nosys, 0, 0 },			/* 303 = unimplemented unshare */
 	{ ns(struct linux_sys_set_robust_list_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_robust_list },/* 304 = set_robust_list */
+	    (sy_call_t *)linux_sys_set_robust_list, 0, 0 },/* 304 = set_robust_list */
 	{ ns(struct linux_sys_get_robust_list_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_get_robust_list },/* 305 = get_robust_list */
+	    (sy_call_t *)linux_sys_get_robust_list, 0, 0 },/* 305 = get_robust_list */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 306 = unimplemented splice */
+	    linux_sys_nosys, 0, 0 },			/* 306 = unimplemented splice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 307 = unimplemented sync_file_range */
+	    linux_sys_nosys, 0, 0 },			/* 307 = unimplemented sync_file_range */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 308 = unimplemented tee */
+	    linux_sys_nosys, 0, 0 },			/* 308 = unimplemented tee */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 309 = unimplemented vmsplice */
+	    linux_sys_nosys, 0, 0 },			/* 309 = unimplemented vmsplice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 310 = unimplemented move_pages */
+	    linux_sys_nosys, 0, 0 },			/* 310 = unimplemented move_pages */
 	{ ns(struct linux_sys_sched_setaffinity_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setaffinity },/* 311 = sched_setaffinity */
+	    (sy_call_t *)linux_sys_sched_setaffinity, 0, 0 },/* 311 = sched_setaffinity */
 	{ ns(struct linux_sys_sched_getaffinity_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_getaffinity },/* 312 = sched_getaffinity */
+	    (sy_call_t *)linux_sys_sched_getaffinity, 0, 0 },/* 312 = sched_getaffinity */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 313 = unimplemented kexec_load */
+	    linux_sys_nosys, 0, 0 },			/* 313 = unimplemented kexec_load */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 314 = unimplemented getcpu */
+	    linux_sys_nosys, 0, 0 },			/* 314 = unimplemented getcpu */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 315 = unimplemented epoll_wait */
+	    linux_sys_nosys, 0, 0 },			/* 315 = unimplemented epoll_wait */
 	{ ns(struct linux_sys_utimensat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_utimensat },	/* 316 = utimensat */
+	    (sy_call_t *)linux_sys_utimensat, 0, 0 },	/* 316 = utimensat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 317 = unimplemented signalfd */
+	    linux_sys_nosys, 0, 0 },			/* 317 = unimplemented signalfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 318 = unimplemented timerfd_create */
+	    linux_sys_nosys, 0, 0 },			/* 318 = unimplemented timerfd_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 319 = unimplemented eventfd */
+	    linux_sys_nosys, 0, 0 },			/* 319 = unimplemented eventfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 320 = unimplemented fallocate */
+	    linux_sys_nosys, 0, 0 },			/* 320 = unimplemented fallocate */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 321 = unimplemented timerfd_settime */
+	    linux_sys_nosys, 0, 0 },			/* 321 = unimplemented timerfd_settime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 322 = unimplemented timerfd_gettime */
+	    linux_sys_nosys, 0, 0 },			/* 322 = unimplemented timerfd_gettime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 323 = unimplemented signalfd4 */
+	    linux_sys_nosys, 0, 0 },			/* 323 = unimplemented signalfd4 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 324 = unimplemented eventfd2 */
+	    linux_sys_nosys, 0, 0 },			/* 324 = unimplemented eventfd2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 325 = unimplemented epoll_create1 */
+	    linux_sys_nosys, 0, 0 },			/* 325 = unimplemented epoll_create1 */
 	{ ns(struct linux_sys_dup3_args), 0,
-	    (sy_call_t *)linux_sys_dup3 },	/* 326 = dup3 */
+	    (sy_call_t *)linux_sys_dup3, 0, 0 },	/* 326 = dup3 */
 	{ ns(struct linux_sys_pipe2_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pipe2 },	/* 327 = pipe2 */
+	    (sy_call_t *)linux_sys_pipe2, 0, 0 },	/* 327 = pipe2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 328 = unimplemented inotify_init1 */
+	    linux_sys_nosys, 0, 0 },			/* 328 = unimplemented inotify_init1 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 329 = unimplemented preadv */
+	    linux_sys_nosys, 0, 0 },			/* 329 = unimplemented preadv */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 330 = unimplemented pwritev */
+	    linux_sys_nosys, 0, 0 },			/* 330 = unimplemented pwritev */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 331 = unimplemented rt_tgsigqueueinfo */
+	    linux_sys_nosys, 0, 0 },			/* 331 = unimplemented rt_tgsigqueueinfo */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 332 = unimplemented perf_counter_open */
+	    linux_sys_nosys, 0, 0 },			/* 332 = unimplemented perf_counter_open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 333 = unimplemented set_thread_area */
+	    linux_sys_nosys, 0, 0 },			/* 333 = unimplemented set_thread_area */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 334 = unimplemented get_thread_area */
+	    linux_sys_nosys, 0, 0 },			/* 334 = unimplemented get_thread_area */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 335 = unimplemented atomic_cmpxchg_32 */
+	    linux_sys_nosys, 0, 0 },			/* 335 = unimplemented atomic_cmpxchg_32 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 336 = unimplemented atomic_barrier */
+	    linux_sys_nosys, 0, 0 },			/* 336 = unimplemented atomic_barrier */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 337 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 337 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 338 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 338 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 339 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 339 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 340 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 340 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 341 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 341 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 342 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 342 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 343 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 343 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 344 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 344 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 345 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 345 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 346 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 346 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 347 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 347 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 348 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 348 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 349 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 349 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 350 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 350 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 351 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 351 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 352 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 352 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 353 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 353 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 354 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 354 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 355 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 355 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 356 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 356 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 357 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 357 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 358 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 358 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 359 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 359 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 360 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 360 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 361 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 361 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 362 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 362 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 363 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 363 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 364 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 364 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 365 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 365 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 366 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 366 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 367 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 367 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 368 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 368 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 369 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 369 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 370 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 370 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 371 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 371 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 372 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 372 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 373 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 373 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 374 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 374 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 375 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 375 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 376 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 376 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 377 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 377 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 378 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 378 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 379 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 379 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 380 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 380 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 381 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 381 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 382 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 382 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 383 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 383 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 384 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 384 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 385 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 385 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 386 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 386 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 387 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 387 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 388 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 388 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 389 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 389 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 390 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 390 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 391 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 391 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 392 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 392 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 393 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 393 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 394 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 394 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 395 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 395 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 396 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 396 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 397 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 397 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 398 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 398 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 399 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 399 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 400 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 400 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 401 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 401 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 402 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 402 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 403 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 403 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 404 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 404 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 405 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 405 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 406 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 406 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 407 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 407 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 408 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 408 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 409 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 409 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 410 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 410 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 411 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 411 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 412 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 412 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 413 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 413 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 414 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 414 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 415 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 415 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 416 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 416 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 417 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 417 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 418 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 418 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 419 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 419 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 420 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 420 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 421 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 421 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 422 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 422 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 423 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 423 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 424 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 424 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 425 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 425 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 426 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 426 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 427 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 427 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 428 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 428 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 429 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 429 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 430 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 430 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 431 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 431 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 432 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 432 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 433 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 433 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 434 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 434 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 435 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 435 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 436 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 436 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 437 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 437 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 438 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 438 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 439 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 439 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 440 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 440 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 441 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 441 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 442 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 442 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 443 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 443 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 444 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 444 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 445 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 445 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 446 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 446 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 447 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 447 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 448 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 448 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 449 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 449 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 450 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 450 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 451 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 451 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 452 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 452 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 453 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 453 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 454 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 454 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 455 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 455 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 456 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 456 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 457 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 457 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 458 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 458 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 459 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 459 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 460 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 460 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 461 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 461 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 462 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 462 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 463 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 463 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 464 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 464 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 465 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 465 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 466 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 466 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 467 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 467 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 468 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 468 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 469 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 469 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 470 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 470 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 471 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 471 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 472 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 472 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 473 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 473 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 474 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 474 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 475 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 475 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 476 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 476 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 477 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 477 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 478 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 478 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 479 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 479 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 480 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 480 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 481 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 481 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 482 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 482 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 483 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 483 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 484 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 484 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 485 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 485 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 486 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 486 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 487 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 487 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 488 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 488 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 489 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 489 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 490 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 490 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 491 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 491 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 492 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 492 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 493 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 493 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 494 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 494 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 495 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 495 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 496 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 496 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 497 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 497 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 498 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 498 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 499 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 499 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 500 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 500 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 501 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 501 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 502 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 502 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 503 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 503 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 504 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 504 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 505 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 505 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 506 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 506 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 507 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 507 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 508 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 508 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 509 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 509 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 510 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 510 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 511 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 511 = filler */
 };
diff --git a/sys/compat/linux/arch/mips/linux_syscall.h b/sys/compat/linux/arch/mips/linux_syscall.h
index 31993cb..2e6b8a4 100644
--- a/sys/compat/linux/arch/mips/linux_syscall.h
+++ b/sys/compat/linux/arch/mips/linux_syscall.h
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_syscall.h,v 1.61 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
diff --git a/sys/compat/linux/arch/mips/linux_syscallargs.h b/sys/compat/linux/arch/mips/linux_syscallargs.h
index 1717ca2..00b0659 100644
--- a/sys/compat/linux/arch/mips/linux_syscallargs.h
+++ b/sys/compat/linux/arch/mips/linux_syscallargs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_syscallargs.h,v 1.60 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
diff --git a/sys/compat/linux/arch/mips/linux_syscalls.c b/sys/compat/linux/arch/mips/linux_syscalls.c
index 61c47b8..36639e8 100644
--- a/sys/compat/linux/arch/mips/linux_syscalls.c
+++ b/sys/compat/linux/arch/mips/linux_syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_syscalls.c,v 1.60 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.60 2014/05/31 08:52:54 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include <sys/param.h>
@@ -25,6 +25,8 @@ __KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.60 2014/05/31 08:52:54 njoly Ex
 #include <compat/linux/common/linux_socketcall.h>
 #include <compat/linux/linux_syscallargs.h>
 #define linux_sys_mmap2_args linux_sys_mmap_args
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const linux_syscallnames[] = {
@@ -541,3 +543,520 @@ const char *const linux_syscallnames[] = {
 	/* 510 */	"# filler",
 	/* 511 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altlinux_syscallnames[] = {
+	/*   0 */	"nosys",
+	/*   1 */	NULL, /* exit */
+	/*   2 */	NULL, /* fork */
+	/*   3 */	NULL, /* read */
+	/*   4 */	NULL, /* write */
+	/*   5 */	NULL, /* open */
+	/*   6 */	NULL, /* close */
+	/*   7 */	NULL, /* waitpid */
+	/*   8 */	NULL, /* creat */
+	/*   9 */	NULL, /* link */
+	/*  10 */	NULL, /* unlink */
+	/*  11 */	NULL, /* execve */
+	/*  12 */	NULL, /* chdir */
+	/*  13 */	NULL, /* time */
+	/*  14 */	NULL, /* mknod */
+	/*  15 */	NULL, /* chmod */
+	/*  16 */	NULL, /* __posix_lchown */
+	/*  17 */	NULL, /* unimplemented */
+	/*  18 */	NULL, /* obsolete ostat */
+	/*  19 */	NULL, /* lseek */
+	/*  20 */	NULL, /* getpid */
+	/*  21 */	NULL, /* unimplemented mount */
+	/*  22 */	NULL, /* obsolete umount */
+	/*  23 */	NULL, /* setuid */
+	/*  24 */	NULL, /* getuid */
+	/*  25 */	NULL, /* stime */
+	/*  26 */	NULL, /* ptrace */
+	/*  27 */	NULL, /* alarm */
+	/*  28 */	NULL, /* obsolete ofstat */
+	/*  29 */	NULL, /* pause */
+	/*  30 */	NULL, /* utime */
+	/*  31 */	NULL, /* unimplemented */
+	/*  32 */	NULL, /* unimplemented */
+	/*  33 */	NULL, /* access */
+	/*  34 */	NULL, /* nice */
+	/*  35 */	NULL, /* unimplemented */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	NULL, /* kill */
+	/*  38 */	NULL, /* __posix_rename */
+	/*  39 */	NULL, /* mkdir */
+	/*  40 */	NULL, /* rmdir */
+	/*  41 */	NULL, /* dup */
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* times */
+	/*  44 */	NULL, /* unimplemented */
+	/*  45 */	NULL, /* brk */
+	/*  46 */	NULL, /* setgid */
+	/*  47 */	NULL, /* getgid */
+	/*  48 */	NULL, /* signal */
+	/*  49 */	NULL, /* geteuid */
+	/*  50 */	NULL, /* getegid */
+	/*  51 */	NULL, /* acct */
+	/*  52 */	NULL, /* unimplemented umount */
+	/*  53 */	NULL, /* unimplemented */
+	/*  54 */	NULL, /* ioctl */
+	/*  55 */	NULL, /* fcntl */
+	/*  56 */	NULL, /* obsolete mpx */
+	/*  57 */	NULL, /* setpgid */
+	/*  58 */	NULL, /* unimplemented */
+	/*  59 */	NULL, /* olduname */
+	/*  60 */	NULL, /* umask */
+	/*  61 */	NULL, /* chroot */
+	/*  62 */	NULL, /* unimplemented ustat */
+	/*  63 */	NULL, /* dup2 */
+	/*  64 */	NULL, /* getppid */
+	/*  65 */	NULL, /* getpgrp */
+	/*  66 */	NULL, /* setsid */
+	/*  67 */	NULL, /* sigaction */
+	/*  68 */	NULL, /* siggetmask */
+	/*  69 */	NULL, /* sigsetmask */
+	/*  70 */	NULL, /* setreuid */
+	/*  71 */	NULL, /* setregid */
+	/*  72 */	NULL, /* sigsuspend */
+	/*  73 */	NULL, /* sigpending */
+	/*  74 */	NULL, /* sethostname */
+	/*  75 */	NULL, /* setrlimit */
+	/*  76 */	NULL, /* getrlimit */
+	/*  77 */	NULL, /* getrusage */
+	/*  78 */	NULL, /* gettimeofday */
+	/*  79 */	NULL, /* settimeofday */
+	/*  80 */	NULL, /* getgroups */
+	/*  81 */	NULL, /* setgroups */
+	/*  82 */	NULL, /* unimplemented old_select */
+	/*  83 */	NULL, /* symlink */
+	/*  84 */	"lstat",
+	/*  85 */	NULL, /* readlink */
+	/*  86 */	NULL, /* unimplemented uselib */
+	/*  87 */	NULL, /* swapon */
+	/*  88 */	NULL, /* reboot */
+	/*  89 */	NULL, /* readdir */
+	/*  90 */	NULL, /* mmap */
+	/*  91 */	NULL, /* munmap */
+	/*  92 */	NULL, /* truncate */
+	/*  93 */	NULL, /* ftruncate */
+	/*  94 */	NULL, /* fchmod */
+	/*  95 */	NULL, /* __posix_fchown */
+	/*  96 */	NULL, /* getpriority */
+	/*  97 */	NULL, /* setpriority */
+	/*  98 */	NULL, /* unimplemented */
+	/*  99 */	NULL, /* statfs */
+	/* 100 */	NULL, /* fstatfs */
+	/* 101 */	NULL, /* ioperm */
+	/* 102 */	NULL, /* socketcall */
+	/* 103 */	NULL, /* unimplemented syslog */
+	/* 104 */	NULL, /* setitimer */
+	/* 105 */	NULL, /* getitimer */
+	/* 106 */	NULL, /* stat */
+	/* 107 */	NULL, /* lstat */
+	/* 108 */	NULL, /* fstat */
+	/* 109 */	NULL, /* uname */
+	/* 110 */	NULL, /* unimplemented iopl */
+	/* 111 */	NULL, /* unimplemented vhangup */
+	/* 112 */	NULL, /* unimplemented idle */
+	/* 113 */	NULL, /* unimplemented vm86old */
+	/* 114 */	NULL, /* wait4 */
+	/* 115 */	NULL, /* swapoff */
+	/* 116 */	NULL, /* sysinfo */
+	/* 117 */	NULL, /* ipc */
+	/* 118 */	NULL, /* fsync */
+	/* 119 */	NULL, /* sigreturn */
+	/* 120 */	NULL, /* clone */
+	/* 121 */	NULL, /* setdomainname */
+	/* 122 */	NULL, /* new_uname */
+	/* 123 */	NULL, /* unimplemented modify_ldt */
+	/* 124 */	NULL, /* unimplemented adjtimex */
+	/* 125 */	NULL, /* mprotect */
+	/* 126 */	NULL, /* sigprocmask */
+	/* 127 */	NULL, /* unimplemented create_module */
+	/* 128 */	NULL, /* unimplemented init_module */
+	/* 129 */	NULL, /* unimplemented delete_module */
+	/* 130 */	NULL, /* unimplemented get_kernel_syms */
+	/* 131 */	NULL, /* unimplemented quotactl */
+	/* 132 */	NULL, /* getpgid */
+	/* 133 */	NULL, /* fchdir */
+	/* 134 */	NULL, /* unimplemented bdflush */
+	/* 135 */	NULL, /* unimplemented sysfs */
+	/* 136 */	NULL, /* personality */
+	/* 137 */	NULL, /* unimplemented afs_syscall */
+	/* 138 */	NULL, /* setfsuid */
+	/* 139 */	NULL, /* setfsgid */
+	/* 140 */	NULL, /* llseek */
+	/* 141 */	NULL, /* getdents */
+	/* 142 */	NULL, /* select */
+	/* 143 */	NULL, /* flock */
+	/* 144 */	"msync",
+	/* 145 */	NULL, /* readv */
+	/* 146 */	NULL, /* writev */
+	/* 147 */	NULL, /* cacheflush */
+	/* 148 */	NULL, /* unimplemented cachectl */
+	/* 149 */	NULL, /* sysmips */
+	/* 150 */	NULL, /* unimplemented */
+	/* 151 */	NULL, /* getsid */
+	/* 152 */	NULL, /* fdatasync */
+	/* 153 */	NULL, /* __sysctl */
+	/* 154 */	NULL, /* mlock */
+	/* 155 */	NULL, /* munlock */
+	/* 156 */	NULL, /* mlockall */
+	/* 157 */	NULL, /* munlockall */
+	/* 158 */	NULL, /* sched_setparam */
+	/* 159 */	NULL, /* sched_getparam */
+	/* 160 */	NULL, /* sched_setscheduler */
+	/* 161 */	NULL, /* sched_getscheduler */
+	/* 162 */	NULL, /* sched_yield */
+	/* 163 */	NULL, /* sched_get_priority_max */
+	/* 164 */	NULL, /* sched_get_priority_min */
+	/* 165 */	NULL, /* unimplemented sched_rr_get_interval */
+	/* 166 */	NULL, /* nanosleep */
+	/* 167 */	NULL, /* mremap */
+	/* 168 */	NULL, /* accept */
+	/* 169 */	NULL, /* bind */
+	/* 170 */	NULL, /* connect */
+	/* 171 */	NULL, /* getpeername */
+	/* 172 */	NULL, /* getsockname */
+	/* 173 */	NULL, /* getsockopt */
+	/* 174 */	NULL, /* listen */
+	/* 175 */	NULL, /* recv */
+	/* 176 */	NULL, /* recvfrom */
+	/* 177 */	NULL, /* recvmsg */
+	/* 178 */	NULL, /* send */
+	/* 179 */	NULL, /* sendmsg */
+	/* 180 */	NULL, /* sendto */
+	/* 181 */	NULL, /* setsockopt */
+	/* 182 */	NULL, /* unimplemented shutdown */
+	/* 183 */	NULL, /* socket */
+	/* 184 */	NULL, /* socketpair */
+	/* 185 */	NULL, /* setresuid */
+	/* 186 */	NULL, /* getresuid */
+	/* 187 */	NULL, /* unimplemented query_module */
+	/* 188 */	NULL, /* poll */
+	/* 189 */	NULL, /* unimplemented nfsservctl */
+	/* 190 */	NULL, /* setresgid */
+	/* 191 */	NULL, /* getresgid */
+	/* 192 */	NULL, /* unimplemented prctl */
+	/* 193 */	NULL, /* rt_sigreturn */
+	/* 194 */	NULL, /* rt_sigaction */
+	/* 195 */	NULL, /* rt_sigprocmask */
+	/* 196 */	NULL, /* rt_sigpending */
+	/* 197 */	NULL, /* rt_sigtimedwait */
+	/* 198 */	NULL, /* rt_queueinfo */
+	/* 199 */	NULL, /* rt_sigsuspend */
+	/* 200 */	NULL, /* pread */
+	/* 201 */	NULL, /* pwrite */
+	/* 202 */	NULL, /* __posix_chown */
+	/* 203 */	NULL, /* __getcwd */
+	/* 204 */	NULL, /* unimplemented capget */
+	/* 205 */	NULL, /* unimplemented capset */
+	/* 206 */	NULL, /* sigaltstack */
+	/* 207 */	NULL, /* unimplemented sendfile */
+	/* 208 */	NULL, /* unimplemented */
+	/* 209 */	NULL, /* unimplemented */
+	/* 210 */	NULL, /* mmap2 */
+	/* 211 */	NULL, /* truncate64 */
+	/* 212 */	NULL, /* ftruncate64 */
+	/* 213 */	NULL, /* stat64 */
+	/* 214 */	NULL, /* lstat64 */
+	/* 215 */	NULL, /* fstat64 */
+	/* 216 */	NULL, /* unimplemented pivot_root */
+	/* 217 */	NULL, /* mincore */
+	/* 218 */	NULL, /* madvise */
+	/* 219 */	NULL, /* getdents64 */
+	/* 220 */	NULL, /* fcntl64 */
+	/* 221 */	NULL, /* unimplemented / * reserved * / */
+	/* 222 */	NULL, /* gettid */
+	/* 223 */	NULL, /* unimplemented readahead */
+	/* 224 */	NULL, /* setxattr */
+	/* 225 */	NULL, /* lsetxattr */
+	/* 226 */	NULL, /* fsetxattr */
+	/* 227 */	NULL, /* getxattr */
+	/* 228 */	NULL, /* lgetxattr */
+	/* 229 */	NULL, /* fgetxattr */
+	/* 230 */	NULL, /* listxattr */
+	/* 231 */	NULL, /* llistxattr */
+	/* 232 */	NULL, /* flistxattr */
+	/* 233 */	NULL, /* removexattr */
+	/* 234 */	NULL, /* lremovexattr */
+	/* 235 */	NULL, /* fremovexattr */
+	/* 236 */	NULL, /* tkill */
+	/* 237 */	NULL, /* unimplemented sendfile64 */
+	/* 238 */	NULL, /* futex */
+	/* 239 */	NULL, /* sched_setaffinity */
+	/* 240 */	NULL, /* sched_getaffinity */
+	/* 241 */	NULL, /* unimplemented io_setup */
+	/* 242 */	NULL, /* unimplemented io_destroy */
+	/* 243 */	NULL, /* unimplemented io_getevents */
+	/* 244 */	NULL, /* unimplemented io_submit */
+	/* 245 */	NULL, /* unimplemented io_cancel */
+	/* 246 */	NULL, /* exit_group */
+	/* 247 */	NULL, /* unimplemented lookup_dcookie */
+	/* 248 */	NULL, /* unimplemented epoll_create */
+	/* 249 */	NULL, /* unimplemented epoll_ctl */
+	/* 250 */	NULL, /* unimplemented epoll_wait */
+	/* 251 */	NULL, /* unimplemented remap_file_pages */
+	/* 252 */	NULL, /* set_tid_address */
+	/* 253 */	NULL, /* unimplemented restart_syscall */
+	/* 254 */	NULL, /* fadvise64 */
+	/* 255 */	NULL, /* statfs64 */
+	/* 256 */	NULL, /* fstatfs64 */
+	/* 257 */	NULL, /* unimplemented timer_create */
+	/* 258 */	NULL, /* unimplemented timer_settime */
+	/* 259 */	NULL, /* unimplemented timer_gettime */
+	/* 260 */	NULL, /* unimplemented timer_getoverrun */
+	/* 261 */	NULL, /* unimplemented timer_delete */
+	/* 262 */	NULL, /* clock_settime */
+	/* 263 */	NULL, /* clock_gettime */
+	/* 264 */	NULL, /* clock_getres */
+	/* 265 */	NULL, /* clock_nanosleep */
+	/* 266 */	NULL, /* tgkill */
+	/* 267 */	NULL, /* utimes */
+	/* 268 */	NULL, /* unimplemented mbind */
+	/* 269 */	NULL, /* unimplemented get_mempolicy */
+	/* 270 */	NULL, /* unimplemented set_mempolicy */
+	/* 271 */	NULL, /* unimplemented mq_open */
+	/* 272 */	NULL, /* unimplemented mq_unlink */
+	/* 273 */	NULL, /* unimplemented mq_timedsend */
+	/* 274 */	NULL, /* unimplemented mq_timedreceive */
+	/* 275 */	NULL, /* unimplemented mq_notify */
+	/* 276 */	NULL, /* unimplemented mq_getsetattr */
+	/* 277 */	NULL, /* unimplemented vserve */
+	/* 278 */	NULL, /* unimplemented waitid */
+	/* 279 */	NULL, /* unimplemented setaltroot */
+	/* 280 */	NULL, /* unimplemented add_key */
+	/* 281 */	NULL, /* unimplemented request_key */
+	/* 282 */	NULL, /* unimplemented keyctl */
+	/* 283 */	NULL, /* set_thread_area */
+	/* 284 */	NULL, /* unimplemented inotify_init */
+	/* 285 */	NULL, /* unimplemented inotify_add_watch */
+	/* 286 */	NULL, /* unimplemented inotify_rm_watch */
+	/* 287 */	NULL, /* unimplemented migrate_pages */
+	/* 288 */	NULL, /* openat */
+	/* 289 */	NULL, /* mkdirat */
+	/* 290 */	NULL, /* mknodat */
+	/* 291 */	NULL, /* fchownat */
+	/* 292 */	NULL, /* unimplemented futimesat */
+	/* 293 */	NULL, /* fstatat64 */
+	/* 294 */	NULL, /* unlinkat */
+	/* 295 */	NULL, /* renameat */
+	/* 296 */	NULL, /* linkat */
+	/* 297 */	NULL, /* symlinkat */
+	/* 298 */	NULL, /* readlinkat */
+	/* 299 */	NULL, /* fchmodat */
+	/* 300 */	NULL, /* faccessat */
+	/* 301 */	NULL, /* unimplemented pselect6 */
+	/* 302 */	NULL, /* ppoll */
+	/* 303 */	NULL, /* unimplemented unshare */
+	/* 304 */	NULL, /* unimplemented splice */
+	/* 305 */	NULL, /* unimplemented sync_file_range */
+	/* 306 */	NULL, /* unimplemented tee */
+	/* 307 */	NULL, /* unimplemented vmsplice */
+	/* 308 */	NULL, /* unimplemented move_pages */
+	/* 309 */	NULL, /* set_robust_list */
+	/* 310 */	NULL, /* get_robust_list */
+	/* 311 */	NULL, /* unimplemented kexec_load */
+	/* 312 */	NULL, /* unimplemented getcpu */
+	/* 313 */	NULL, /* unimplemented epoll_pwait */
+	/* 314 */	NULL, /* unimplemented ioprio_set */
+	/* 315 */	NULL, /* unimplemented ioprio_get */
+	/* 316 */	NULL, /* utimensat */
+	/* 317 */	NULL, /* unimplemented signalfd */
+	/* 318 */	NULL, /* unimplemented timerfd */
+	/* 319 */	NULL, /* unimplemented eventfd */
+	/* 320 */	NULL, /* unimplemented fallocate */
+	/* 321 */	NULL, /* unimplemented timerfd_create */
+	/* 322 */	NULL, /* unimplemented timerfd_gettime */
+	/* 323 */	NULL, /* unimplemented timerfd_settime */
+	/* 324 */	NULL, /* unimplemented signalfd4 */
+	/* 325 */	NULL, /* unimplemented eventfd2 */
+	/* 326 */	NULL, /* unimplemented epoll_create1 */
+	/* 327 */	NULL, /* dup3 */
+	/* 328 */	NULL, /* pipe2 */
+	/* 329 */	NULL, /* unimplemented inotify_init1 */
+	/* 330 */	NULL, /* unimplemented preadv */
+	/* 331 */	NULL, /* unimplemented pwritev */
+	/* 332 */	NULL, /* unimplemented rt_tgsigqueueinfo */
+	/* 333 */	NULL, /* unimplemented perf_event_open */
+	/* 334 */	NULL, /* unimplemented accept4 */
+	/* 335 */	NULL, /* unimplemented recvmmsg */
+	/* 336 */	NULL, /* filler */
+	/* 337 */	NULL, /* filler */
+	/* 338 */	NULL, /* filler */
+	/* 339 */	NULL, /* filler */
+	/* 340 */	NULL, /* filler */
+	/* 341 */	NULL, /* filler */
+	/* 342 */	NULL, /* filler */
+	/* 343 */	NULL, /* filler */
+	/* 344 */	NULL, /* filler */
+	/* 345 */	NULL, /* filler */
+	/* 346 */	NULL, /* filler */
+	/* 347 */	NULL, /* filler */
+	/* 348 */	NULL, /* filler */
+	/* 349 */	NULL, /* filler */
+	/* 350 */	NULL, /* filler */
+	/* 351 */	NULL, /* filler */
+	/* 352 */	NULL, /* filler */
+	/* 353 */	NULL, /* filler */
+	/* 354 */	NULL, /* filler */
+	/* 355 */	NULL, /* filler */
+	/* 356 */	NULL, /* filler */
+	/* 357 */	NULL, /* filler */
+	/* 358 */	NULL, /* filler */
+	/* 359 */	NULL, /* filler */
+	/* 360 */	NULL, /* filler */
+	/* 361 */	NULL, /* filler */
+	/* 362 */	NULL, /* filler */
+	/* 363 */	NULL, /* filler */
+	/* 364 */	NULL, /* filler */
+	/* 365 */	NULL, /* filler */
+	/* 366 */	NULL, /* filler */
+	/* 367 */	NULL, /* filler */
+	/* 368 */	NULL, /* filler */
+	/* 369 */	NULL, /* filler */
+	/* 370 */	NULL, /* filler */
+	/* 371 */	NULL, /* filler */
+	/* 372 */	NULL, /* filler */
+	/* 373 */	NULL, /* filler */
+	/* 374 */	NULL, /* filler */
+	/* 375 */	NULL, /* filler */
+	/* 376 */	NULL, /* filler */
+	/* 377 */	NULL, /* filler */
+	/* 378 */	NULL, /* filler */
+	/* 379 */	NULL, /* filler */
+	/* 380 */	NULL, /* filler */
+	/* 381 */	NULL, /* filler */
+	/* 382 */	NULL, /* filler */
+	/* 383 */	NULL, /* filler */
+	/* 384 */	NULL, /* filler */
+	/* 385 */	NULL, /* filler */
+	/* 386 */	NULL, /* filler */
+	/* 387 */	NULL, /* filler */
+	/* 388 */	NULL, /* filler */
+	/* 389 */	NULL, /* filler */
+	/* 390 */	NULL, /* filler */
+	/* 391 */	NULL, /* filler */
+	/* 392 */	NULL, /* filler */
+	/* 393 */	NULL, /* filler */
+	/* 394 */	NULL, /* filler */
+	/* 395 */	NULL, /* filler */
+	/* 396 */	NULL, /* filler */
+	/* 397 */	NULL, /* filler */
+	/* 398 */	NULL, /* filler */
+	/* 399 */	NULL, /* filler */
+	/* 400 */	NULL, /* filler */
+	/* 401 */	NULL, /* filler */
+	/* 402 */	NULL, /* filler */
+	/* 403 */	NULL, /* filler */
+	/* 404 */	NULL, /* filler */
+	/* 405 */	NULL, /* filler */
+	/* 406 */	NULL, /* filler */
+	/* 407 */	NULL, /* filler */
+	/* 408 */	NULL, /* filler */
+	/* 409 */	NULL, /* filler */
+	/* 410 */	NULL, /* filler */
+	/* 411 */	NULL, /* filler */
+	/* 412 */	NULL, /* filler */
+	/* 413 */	NULL, /* filler */
+	/* 414 */	NULL, /* filler */
+	/* 415 */	NULL, /* filler */
+	/* 416 */	NULL, /* filler */
+	/* 417 */	NULL, /* filler */
+	/* 418 */	NULL, /* filler */
+	/* 419 */	NULL, /* filler */
+	/* 420 */	NULL, /* filler */
+	/* 421 */	NULL, /* filler */
+	/* 422 */	NULL, /* filler */
+	/* 423 */	NULL, /* filler */
+	/* 424 */	NULL, /* filler */
+	/* 425 */	NULL, /* filler */
+	/* 426 */	NULL, /* filler */
+	/* 427 */	NULL, /* filler */
+	/* 428 */	NULL, /* filler */
+	/* 429 */	NULL, /* filler */
+	/* 430 */	NULL, /* filler */
+	/* 431 */	NULL, /* filler */
+	/* 432 */	NULL, /* filler */
+	/* 433 */	NULL, /* filler */
+	/* 434 */	NULL, /* filler */
+	/* 435 */	NULL, /* filler */
+	/* 436 */	NULL, /* filler */
+	/* 437 */	NULL, /* filler */
+	/* 438 */	NULL, /* filler */
+	/* 439 */	NULL, /* filler */
+	/* 440 */	NULL, /* filler */
+	/* 441 */	NULL, /* filler */
+	/* 442 */	NULL, /* filler */
+	/* 443 */	NULL, /* filler */
+	/* 444 */	NULL, /* filler */
+	/* 445 */	NULL, /* filler */
+	/* 446 */	NULL, /* filler */
+	/* 447 */	NULL, /* filler */
+	/* 448 */	NULL, /* filler */
+	/* 449 */	NULL, /* filler */
+	/* 450 */	NULL, /* filler */
+	/* 451 */	NULL, /* filler */
+	/* 452 */	NULL, /* filler */
+	/* 453 */	NULL, /* filler */
+	/* 454 */	NULL, /* filler */
+	/* 455 */	NULL, /* filler */
+	/* 456 */	NULL, /* filler */
+	/* 457 */	NULL, /* filler */
+	/* 458 */	NULL, /* filler */
+	/* 459 */	NULL, /* filler */
+	/* 460 */	NULL, /* filler */
+	/* 461 */	NULL, /* filler */
+	/* 462 */	NULL, /* filler */
+	/* 463 */	NULL, /* filler */
+	/* 464 */	NULL, /* filler */
+	/* 465 */	NULL, /* filler */
+	/* 466 */	NULL, /* filler */
+	/* 467 */	NULL, /* filler */
+	/* 468 */	NULL, /* filler */
+	/* 469 */	NULL, /* filler */
+	/* 470 */	NULL, /* filler */
+	/* 471 */	NULL, /* filler */
+	/* 472 */	NULL, /* filler */
+	/* 473 */	NULL, /* filler */
+	/* 474 */	NULL, /* filler */
+	/* 475 */	NULL, /* filler */
+	/* 476 */	NULL, /* filler */
+	/* 477 */	NULL, /* filler */
+	/* 478 */	NULL, /* filler */
+	/* 479 */	NULL, /* filler */
+	/* 480 */	NULL, /* filler */
+	/* 481 */	NULL, /* filler */
+	/* 482 */	NULL, /* filler */
+	/* 483 */	NULL, /* filler */
+	/* 484 */	NULL, /* filler */
+	/* 485 */	NULL, /* filler */
+	/* 486 */	NULL, /* filler */
+	/* 487 */	NULL, /* filler */
+	/* 488 */	NULL, /* filler */
+	/* 489 */	NULL, /* filler */
+	/* 490 */	NULL, /* filler */
+	/* 491 */	NULL, /* filler */
+	/* 492 */	NULL, /* filler */
+	/* 493 */	NULL, /* filler */
+	/* 494 */	NULL, /* filler */
+	/* 495 */	NULL, /* filler */
+	/* 496 */	NULL, /* filler */
+	/* 497 */	NULL, /* filler */
+	/* 498 */	NULL, /* filler */
+	/* 499 */	NULL, /* filler */
+	/* 500 */	NULL, /* filler */
+	/* 501 */	NULL, /* filler */
+	/* 502 */	NULL, /* filler */
+	/* 503 */	NULL, /* filler */
+	/* 504 */	NULL, /* filler */
+	/* 505 */	NULL, /* filler */
+	/* 506 */	NULL, /* filler */
+	/* 507 */	NULL, /* filler */
+	/* 508 */	NULL, /* filler */
+	/* 509 */	NULL, /* filler */
+	/* 510 */	NULL, /* filler */
+	/* 511 */	NULL, /* filler */
+};
diff --git a/sys/compat/linux/arch/mips/linux_sysent.c b/sys/compat/linux/arch/mips/linux_sysent.c
index daf346c..8055a9a 100644
--- a/sys/compat/linux/arch/mips/linux_sysent.c
+++ b/sys/compat/linux/arch/mips/linux_sysent.c
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_sysent.c,v 1.60 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.60 2014/05/31 08:52:54 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #include <sys/param.h>
 #include <sys/poll.h>
@@ -31,1027 +31,1027 @@ __KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.60 2014/05/31 08:52:54 njoly Exp
 
 struct sysent linux_sysent[] = {
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_nosys },	/* 0 = syscall */
+	    (sy_call_t *)linux_sys_nosys, 0, 0 },	/* 0 = syscall */
 	{ ns(struct linux_sys_exit_args), 0,
-	    (sy_call_t *)linux_sys_exit },	/* 1 = exit */
+	    (sy_call_t *)linux_sys_exit, 0, 0 },	/* 1 = exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct sys_read_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_read },		/* 3 = read */
+	    (sy_call_t *)sys_read, 0, 0 },		/* 3 = read */
 	{ ns(struct sys_write_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_write },		/* 4 = write */
+	    (sy_call_t *)sys_write, 0, 0 },		/* 4 = write */
 	{ ns(struct linux_sys_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_open },	/* 5 = open */
+	    (sy_call_t *)linux_sys_open, 0, 0 },	/* 5 = open */
 	{ ns(struct sys_close_args), 0,
-	    (sy_call_t *)sys_close },		/* 6 = close */
+	    (sy_call_t *)sys_close, 0, 0 },		/* 6 = close */
 	{ ns(struct linux_sys_waitpid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_waitpid },	/* 7 = waitpid */
+	    (sy_call_t *)linux_sys_waitpid, 0, 0 },	/* 7 = waitpid */
 	{ ns(struct linux_sys_creat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_creat },	/* 8 = creat */
+	    (sy_call_t *)linux_sys_creat, 0, 0 },	/* 8 = creat */
 	{ ns(struct sys_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_link },		/* 9 = link */
+	    (sy_call_t *)sys_link, 0, 0 },		/* 9 = link */
 	{ ns(struct linux_sys_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_unlink },	/* 10 = unlink */
+	    (sy_call_t *)linux_sys_unlink, 0, 0 },	/* 10 = unlink */
 	{ ns(struct sys_execve_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_execve },		/* 11 = execve */
+	    (sy_call_t *)sys_execve, 0, 0 },		/* 11 = execve */
 	{ ns(struct sys_chdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chdir },		/* 12 = chdir */
+	    (sy_call_t *)sys_chdir, 0, 0 },		/* 12 = chdir */
 	{ ns(struct linux_sys_time_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_time },	/* 13 = time */
+	    (sy_call_t *)linux_sys_time, 0, 0 },	/* 13 = time */
 	{ ns(struct linux_sys_mknod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mknod },	/* 14 = mknod */
+	    (sy_call_t *)linux_sys_mknod, 0, 0 },	/* 14 = mknod */
 	{ ns(struct sys_chmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chmod },		/* 15 = chmod */
+	    (sy_call_t *)sys_chmod, 0, 0 },		/* 15 = chmod */
 	{ ns(struct sys___posix_lchown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_lchown },	/* 16 = __posix_lchown */
+	    (sy_call_t *)sys___posix_lchown, 0, 0 },	/* 16 = __posix_lchown */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 17 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 17 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 18 = obsolete ostat */
+	    linux_sys_nosys, 0, 0 },			/* 18 = obsolete ostat */
 	{ ns(struct compat_43_sys_lseek_args), 0,
-	    (sy_call_t *)compat_43_sys_lseek },	/* 19 = lseek */
+	    (sy_call_t *)compat_43_sys_lseek, 0, 0 },	/* 19 = lseek */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid },		/* 20 = getpid */
+	    (sy_call_t *)sys_getpid, 0, 0 },		/* 20 = getpid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 21 = unimplemented mount */
+	    linux_sys_nosys, 0, 0 },			/* 21 = unimplemented mount */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 22 = obsolete umount */
+	    linux_sys_nosys, 0, 0 },			/* 22 = obsolete umount */
 	{ ns(struct sys_setuid_args), 0,
-	    (sy_call_t *)sys_setuid },		/* 23 = setuid */
+	    (sy_call_t *)sys_setuid, 0, 0 },		/* 23 = setuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid },		/* 24 = getuid */
+	    (sy_call_t *)sys_getuid, 0, 0 },		/* 24 = getuid */
 	{ ns(struct linux_sys_stime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stime },	/* 25 = stime */
+	    (sy_call_t *)linux_sys_stime, 0, 0 },	/* 25 = stime */
 	{ ns(struct linux_sys_ptrace_args), 0,
-	    (sy_call_t *)linux_sys_ptrace },	/* 26 = ptrace */
+	    (sy_call_t *)linux_sys_ptrace, 0, 0 },	/* 26 = ptrace */
 	{ ns(struct linux_sys_alarm_args), 0,
-	    (sy_call_t *)linux_sys_alarm },	/* 27 = alarm */
+	    (sy_call_t *)linux_sys_alarm, 0, 0 },	/* 27 = alarm */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 28 = obsolete ofstat */
+	    linux_sys_nosys, 0, 0 },			/* 28 = obsolete ofstat */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_pause },	/* 29 = pause */
+	    (sy_call_t *)linux_sys_pause, 0, 0 },	/* 29 = pause */
 	{ ns(struct linux_sys_utime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_utime },	/* 30 = utime */
+	    (sy_call_t *)linux_sys_utime, 0, 0 },	/* 30 = utime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 31 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 31 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 32 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 32 = unimplemented */
 	{ ns(struct sys_access_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_access },		/* 33 = access */
+	    (sy_call_t *)sys_access, 0, 0 },		/* 33 = access */
 	{ ns(struct linux_sys_nice_args), 0,
-	    (sy_call_t *)linux_sys_nice },	/* 34 = nice */
+	    (sy_call_t *)linux_sys_nice, 0, 0 },	/* 34 = nice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 35 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 35 = unimplemented */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct linux_sys_kill_args), 0,
-	    (sy_call_t *)linux_sys_kill },	/* 37 = kill */
+	    (sy_call_t *)linux_sys_kill, 0, 0 },	/* 37 = kill */
 	{ ns(struct sys___posix_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_rename },	/* 38 = __posix_rename */
+	    (sy_call_t *)sys___posix_rename, 0, 0 },	/* 38 = __posix_rename */
 	{ ns(struct sys_mkdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdir },		/* 39 = mkdir */
+	    (sy_call_t *)sys_mkdir, 0, 0 },		/* 39 = mkdir */
 	{ ns(struct sys_rmdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rmdir },		/* 40 = rmdir */
+	    (sy_call_t *)sys_rmdir, 0, 0 },		/* 40 = rmdir */
 	{ ns(struct sys_dup_args), 0,
-	    (sy_call_t *)sys_dup },		/* 41 = dup */
+	    (sy_call_t *)sys_dup, 0, 0 },		/* 41 = dup */
 	{ ns(struct linux_sys_pipe_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pipe },	/* 42 = pipe */
+	    (sy_call_t *)linux_sys_pipe, 0, 0 },	/* 42 = pipe */
 	{ ns(struct linux_sys_times_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_times },	/* 43 = times */
+	    (sy_call_t *)linux_sys_times, 0, 0 },	/* 43 = times */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 44 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 44 = unimplemented */
 	{ ns(struct linux_sys_brk_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_brk },	/* 45 = brk */
+	    (sy_call_t *)linux_sys_brk, 0, 0 },	/* 45 = brk */
 	{ ns(struct sys_setgid_args), 0,
-	    (sy_call_t *)sys_setgid },		/* 46 = setgid */
+	    (sy_call_t *)sys_setgid, 0, 0 },		/* 46 = setgid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid },		/* 47 = getgid */
+	    (sy_call_t *)sys_getgid, 0, 0 },		/* 47 = getgid */
 	{ ns(struct linux_sys_signal_args), 0,
-	    (sy_call_t *)linux_sys_signal },	/* 48 = signal */
+	    (sy_call_t *)linux_sys_signal, 0, 0 },	/* 48 = signal */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_geteuid },		/* 49 = geteuid */
+	    (sy_call_t *)sys_geteuid, 0, 0 },		/* 49 = geteuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getegid },		/* 50 = getegid */
+	    (sy_call_t *)sys_getegid, 0, 0 },		/* 50 = getegid */
 	{ ns(struct sys_acct_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_acct },		/* 51 = acct */
+	    (sy_call_t *)sys_acct, 0, 0 },		/* 51 = acct */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 52 = unimplemented umount */
+	    linux_sys_nosys, 0, 0 },			/* 52 = unimplemented umount */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 53 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 53 = unimplemented */
 	{ ns(struct linux_sys_ioctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ioctl },	/* 54 = ioctl */
+	    (sy_call_t *)linux_sys_ioctl, 0, 0 },	/* 54 = ioctl */
 	{ ns(struct linux_sys_fcntl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fcntl },	/* 55 = fcntl */
+	    (sy_call_t *)linux_sys_fcntl, 0, 0 },	/* 55 = fcntl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 56 = obsolete mpx */
+	    linux_sys_nosys, 0, 0 },			/* 56 = obsolete mpx */
 	{ ns(struct sys_setpgid_args), 0,
-	    (sy_call_t *)sys_setpgid },		/* 57 = setpgid */
+	    (sy_call_t *)sys_setpgid, 0, 0 },		/* 57 = setpgid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 58 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 58 = unimplemented */
 	{ ns(struct linux_sys_olduname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_olduname },	/* 59 = olduname */
+	    (sy_call_t *)linux_sys_olduname, 0, 0 },	/* 59 = olduname */
 	{ ns(struct sys_umask_args), 0,
-	    (sy_call_t *)sys_umask },		/* 60 = umask */
+	    (sy_call_t *)sys_umask, 0, 0 },		/* 60 = umask */
 	{ ns(struct sys_chroot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chroot },		/* 61 = chroot */
+	    (sy_call_t *)sys_chroot, 0, 0 },		/* 61 = chroot */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 62 = unimplemented ustat */
+	    linux_sys_nosys, 0, 0 },			/* 62 = unimplemented ustat */
 	{ ns(struct sys_dup2_args), 0,
-	    (sy_call_t *)sys_dup2 },		/* 63 = dup2 */
+	    (sy_call_t *)sys_dup2, 0, 0 },		/* 63 = dup2 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getppid },		/* 64 = getppid */
+	    (sy_call_t *)sys_getppid, 0, 0 },		/* 64 = getppid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpgrp },		/* 65 = getpgrp */
+	    (sy_call_t *)sys_getpgrp, 0, 0 },		/* 65 = getpgrp */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_setsid },		/* 66 = setsid */
+	    (sy_call_t *)sys_setsid, 0, 0 },		/* 66 = setsid */
 	{ ns(struct linux_sys_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigaction },	/* 67 = sigaction */
+	    (sy_call_t *)linux_sys_sigaction, 0, 0 },	/* 67 = sigaction */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_siggetmask },/* 68 = siggetmask */
+	    (sy_call_t *)linux_sys_siggetmask, 0, 0 },/* 68 = siggetmask */
 	{ ns(struct linux_sys_sigsetmask_args), 0,
-	    (sy_call_t *)linux_sys_sigsetmask },/* 69 = sigsetmask */
+	    (sy_call_t *)linux_sys_sigsetmask, 0, 0 },/* 69 = sigsetmask */
 	{ ns(struct sys_setreuid_args), 0,
-	    (sy_call_t *)sys_setreuid },	/* 70 = setreuid */
+	    (sy_call_t *)sys_setreuid, 0, 0 },	/* 70 = setreuid */
 	{ ns(struct sys_setregid_args), 0,
-	    (sy_call_t *)sys_setregid },	/* 71 = setregid */
+	    (sy_call_t *)sys_setregid, 0, 0 },	/* 71 = setregid */
 	{ ns(struct linux_sys_sigsuspend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigsuspend },/* 72 = sigsuspend */
+	    (sy_call_t *)linux_sys_sigsuspend, 0, 0 },/* 72 = sigsuspend */
 	{ ns(struct linux_sys_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigpending },/* 73 = sigpending */
+	    (sy_call_t *)linux_sys_sigpending, 0, 0 },/* 73 = sigpending */
 	{ ns(struct compat_43_sys_sethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sethostname },/* 74 = sethostname */
+	    (sy_call_t *)compat_43_sys_sethostname, 0, 0 },/* 74 = sethostname */
 	{ ns(struct linux_sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setrlimit },	/* 75 = setrlimit */
+	    (sy_call_t *)linux_sys_setrlimit, 0, 0 },	/* 75 = setrlimit */
 	{ ns(struct linux_sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getrlimit },	/* 76 = getrlimit */
+	    (sy_call_t *)linux_sys_getrlimit, 0, 0 },	/* 76 = getrlimit */
 	{ ns(struct compat_50_sys_getrusage_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getrusage },/* 77 = getrusage */
+	    (sy_call_t *)compat_50_sys_getrusage, 0, 0 },/* 77 = getrusage */
 	{ ns(struct linux_sys_gettimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_gettimeofday },/* 78 = gettimeofday */
+	    (sy_call_t *)linux_sys_gettimeofday, 0, 0 },/* 78 = gettimeofday */
 	{ ns(struct linux_sys_settimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_settimeofday },/* 79 = settimeofday */
+	    (sy_call_t *)linux_sys_settimeofday, 0, 0 },/* 79 = settimeofday */
 	{ ns(struct sys_getgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getgroups },	/* 80 = getgroups */
+	    (sy_call_t *)sys_getgroups, 0, 0 },	/* 80 = getgroups */
 	{ ns(struct sys_setgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setgroups },	/* 81 = setgroups */
+	    (sy_call_t *)sys_setgroups, 0, 0 },	/* 81 = setgroups */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 82 = unimplemented old_select */
+	    linux_sys_nosys, 0, 0 },			/* 82 = unimplemented old_select */
 	{ ns(struct sys_symlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlink },		/* 83 = symlink */
+	    (sy_call_t *)sys_symlink, 0, 0 },		/* 83 = symlink */
 	{ ns(struct compat_43_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_lstat },	/* 84 = oolstat */
+	    (sy_call_t *)compat_43_sys_lstat, 0, 0 },	/* 84 = oolstat */
 	{ ns(struct sys_readlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlink },	/* 85 = readlink */
+	    (sy_call_t *)sys_readlink, 0, 0 },	/* 85 = readlink */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 86 = unimplemented uselib */
+	    linux_sys_nosys, 0, 0 },			/* 86 = unimplemented uselib */
 	{ ns(struct linux_sys_swapon_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_swapon },	/* 87 = swapon */
+	    (sy_call_t *)linux_sys_swapon, 0, 0 },	/* 87 = swapon */
 	{ ns(struct linux_sys_reboot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_reboot },	/* 88 = reboot */
+	    (sy_call_t *)linux_sys_reboot, 0, 0 },	/* 88 = reboot */
 	{ ns(struct linux_sys_readdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_readdir },	/* 89 = readdir */
+	    (sy_call_t *)linux_sys_readdir, 0, 0 },	/* 89 = readdir */
 	{ ns(struct linux_sys_mmap_args), 0,
-	    (sy_call_t *)linux_sys_mmap },	/* 90 = mmap */
+	    (sy_call_t *)linux_sys_mmap, 0, 0 },	/* 90 = mmap */
 	{ ns(struct sys_munmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munmap },		/* 91 = munmap */
+	    (sy_call_t *)sys_munmap, 0, 0 },		/* 91 = munmap */
 	{ ns(struct compat_43_sys_truncate_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_truncate },/* 92 = truncate */
+	    (sy_call_t *)compat_43_sys_truncate, 0, 0 },/* 92 = truncate */
 	{ ns(struct compat_43_sys_ftruncate_args), 0,
-	    (sy_call_t *)compat_43_sys_ftruncate },/* 93 = ftruncate */
+	    (sy_call_t *)compat_43_sys_ftruncate, 0, 0 },/* 93 = ftruncate */
 	{ ns(struct sys_fchmod_args), 0,
-	    (sy_call_t *)sys_fchmod },		/* 94 = fchmod */
+	    (sy_call_t *)sys_fchmod, 0, 0 },		/* 94 = fchmod */
 	{ ns(struct sys___posix_fchown_args), 0,
-	    (sy_call_t *)sys___posix_fchown },	/* 95 = __posix_fchown */
+	    (sy_call_t *)sys___posix_fchown, 0, 0 },	/* 95 = __posix_fchown */
 	{ ns(struct linux_sys_getpriority_args), 0,
-	    (sy_call_t *)linux_sys_getpriority },/* 96 = getpriority */
+	    (sy_call_t *)linux_sys_getpriority, 0, 0 },/* 96 = getpriority */
 	{ ns(struct sys_setpriority_args), 0,
-	    (sy_call_t *)sys_setpriority },	/* 97 = setpriority */
+	    (sy_call_t *)sys_setpriority, 0, 0 },	/* 97 = setpriority */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 98 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 98 = unimplemented */
 	{ ns(struct linux_sys_statfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_statfs },	/* 99 = statfs */
+	    (sy_call_t *)linux_sys_statfs, 0, 0 },	/* 99 = statfs */
 	{ ns(struct linux_sys_fstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatfs },	/* 100 = fstatfs */
+	    (sy_call_t *)linux_sys_fstatfs, 0, 0 },	/* 100 = fstatfs */
 	{ ns(struct linux_sys_ioperm_args), 0,
-	    (sy_call_t *)linux_sys_ioperm },	/* 101 = ioperm */
+	    (sy_call_t *)linux_sys_ioperm, 0, 0 },	/* 101 = ioperm */
 	{ ns(struct linux_sys_socketcall_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_socketcall },/* 102 = socketcall */
+	    (sy_call_t *)linux_sys_socketcall, 0, 0 },/* 102 = socketcall */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 103 = unimplemented syslog */
+	    linux_sys_nosys, 0, 0 },			/* 103 = unimplemented syslog */
 	{ ns(struct compat_50_sys_setitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_setitimer },/* 104 = setitimer */
+	    (sy_call_t *)compat_50_sys_setitimer, 0, 0 },/* 104 = setitimer */
 	{ ns(struct compat_50_sys_getitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getitimer },/* 105 = getitimer */
+	    (sy_call_t *)compat_50_sys_getitimer, 0, 0 },/* 105 = getitimer */
 	{ ns(struct linux_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stat },	/* 106 = stat */
+	    (sy_call_t *)linux_sys_stat, 0, 0 },	/* 106 = stat */
 	{ ns(struct linux_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lstat },	/* 107 = lstat */
+	    (sy_call_t *)linux_sys_lstat, 0, 0 },	/* 107 = lstat */
 	{ ns(struct linux_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstat },	/* 108 = fstat */
+	    (sy_call_t *)linux_sys_fstat, 0, 0 },	/* 108 = fstat */
 	{ ns(struct linux_sys_uname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_uname },	/* 109 = uname */
+	    (sy_call_t *)linux_sys_uname, 0, 0 },	/* 109 = uname */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 110 = unimplemented iopl */
+	    linux_sys_nosys, 0, 0 },			/* 110 = unimplemented iopl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 111 = unimplemented vhangup */
+	    linux_sys_nosys, 0, 0 },			/* 111 = unimplemented vhangup */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 112 = unimplemented idle */
+	    linux_sys_nosys, 0, 0 },			/* 112 = unimplemented idle */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 113 = unimplemented vm86old */
+	    linux_sys_nosys, 0, 0 },			/* 113 = unimplemented vm86old */
 	{ ns(struct linux_sys_wait4_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_wait4 },	/* 114 = wait4 */
+	    (sy_call_t *)linux_sys_wait4, 0, 0 },	/* 114 = wait4 */
 	{ ns(struct linux_sys_swapoff_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_swapoff },	/* 115 = swapoff */
+	    (sy_call_t *)linux_sys_swapoff, 0, 0 },	/* 115 = swapoff */
 	{ ns(struct linux_sys_sysinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sysinfo },	/* 116 = sysinfo */
+	    (sy_call_t *)linux_sys_sysinfo, 0, 0 },	/* 116 = sysinfo */
 	{ ns(struct linux_sys_ipc_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ipc },	/* 117 = ipc */
+	    (sy_call_t *)linux_sys_ipc, 0, 0 },	/* 117 = ipc */
 	{ ns(struct sys_fsync_args), 0,
-	    (sy_call_t *)sys_fsync },		/* 118 = fsync */
+	    (sy_call_t *)sys_fsync, 0, 0 },		/* 118 = fsync */
 	{ ns(struct linux_sys_sigreturn_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigreturn },	/* 119 = sigreturn */
+	    (sy_call_t *)linux_sys_sigreturn, 0, 0 },	/* 119 = sigreturn */
 	{ ns(struct linux_sys_clone_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clone },	/* 120 = clone */
+	    (sy_call_t *)linux_sys_clone, 0, 0 },	/* 120 = clone */
 	{ ns(struct linux_sys_setdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setdomainname },/* 121 = setdomainname */
+	    (sy_call_t *)linux_sys_setdomainname, 0, 0 },/* 121 = setdomainname */
 	{ ns(struct linux_sys_new_uname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_new_uname },	/* 122 = new_uname */
+	    (sy_call_t *)linux_sys_new_uname, 0, 0 },	/* 122 = new_uname */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 123 = unimplemented modify_ldt */
+	    linux_sys_nosys, 0, 0 },			/* 123 = unimplemented modify_ldt */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 124 = unimplemented adjtimex */
+	    linux_sys_nosys, 0, 0 },			/* 124 = unimplemented adjtimex */
 	{ ns(struct linux_sys_mprotect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mprotect },	/* 125 = mprotect */
+	    (sy_call_t *)linux_sys_mprotect, 0, 0 },	/* 125 = mprotect */
 	{ ns(struct linux_sys_sigprocmask_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigprocmask },/* 126 = sigprocmask */
+	    (sy_call_t *)linux_sys_sigprocmask, 0, 0 },/* 126 = sigprocmask */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 127 = unimplemented create_module */
+	    linux_sys_nosys, 0, 0 },			/* 127 = unimplemented create_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 128 = unimplemented init_module */
+	    linux_sys_nosys, 0, 0 },			/* 128 = unimplemented init_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 129 = unimplemented delete_module */
+	    linux_sys_nosys, 0, 0 },			/* 129 = unimplemented delete_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 130 = unimplemented get_kernel_syms */
+	    linux_sys_nosys, 0, 0 },			/* 130 = unimplemented get_kernel_syms */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 131 = unimplemented quotactl */
+	    linux_sys_nosys, 0, 0 },			/* 131 = unimplemented quotactl */
 	{ ns(struct sys_getpgid_args), 0,
-	    (sy_call_t *)sys_getpgid },		/* 132 = getpgid */
+	    (sy_call_t *)sys_getpgid, 0, 0 },		/* 132 = getpgid */
 	{ ns(struct sys_fchdir_args), 0,
-	    (sy_call_t *)sys_fchdir },		/* 133 = fchdir */
+	    (sy_call_t *)sys_fchdir, 0, 0 },		/* 133 = fchdir */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 134 = unimplemented bdflush */
+	    linux_sys_nosys, 0, 0 },			/* 134 = unimplemented bdflush */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 135 = unimplemented sysfs */
+	    linux_sys_nosys, 0, 0 },			/* 135 = unimplemented sysfs */
 	{ ns(struct linux_sys_personality_args), 0,
-	    (sy_call_t *)linux_sys_personality },/* 136 = personality */
+	    (sy_call_t *)linux_sys_personality, 0, 0 },/* 136 = personality */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 137 = unimplemented afs_syscall */
+	    linux_sys_nosys, 0, 0 },			/* 137 = unimplemented afs_syscall */
 	{ ns(struct linux_sys_setfsuid_args), 0,
-	    (sy_call_t *)linux_sys_setfsuid },	/* 138 = setfsuid */
+	    (sy_call_t *)linux_sys_setfsuid, 0, 0 },	/* 138 = setfsuid */
 	{ ns(struct linux_sys_setfsgid_args), 0,
-	    (sy_call_t *)linux_sys_setfsgid },	/* 139 = setfsgid */
+	    (sy_call_t *)linux_sys_setfsgid, 0, 0 },	/* 139 = setfsgid */
 	{ ns(struct linux_sys_llseek_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_llseek },	/* 140 = llseek */
+	    (sy_call_t *)linux_sys_llseek, 0, 0 },	/* 140 = llseek */
 	{ ns(struct linux_sys_getdents_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getdents },	/* 141 = getdents */
+	    (sy_call_t *)linux_sys_getdents, 0, 0 },	/* 141 = getdents */
 	{ ns(struct linux_sys_select_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_select },	/* 142 = select */
+	    (sy_call_t *)linux_sys_select, 0, 0 },	/* 142 = select */
 	{ ns(struct sys_flock_args), 0,
-	    (sy_call_t *)sys_flock },		/* 143 = flock */
+	    (sy_call_t *)sys_flock, 0, 0 },		/* 143 = flock */
 	{ ns(struct sys___msync13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___msync13 },	/* 144 = __msync13 */
+	    (sy_call_t *)sys___msync13, 0, 0 },	/* 144 = __msync13 */
 	{ ns(struct sys_readv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readv },		/* 145 = readv */
+	    (sy_call_t *)sys_readv, 0, 0 },		/* 145 = readv */
 	{ ns(struct sys_writev_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_writev },		/* 146 = writev */
+	    (sy_call_t *)sys_writev, 0, 0 },		/* 146 = writev */
 	{ ns(struct linux_sys_cacheflush_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_cacheflush },/* 147 = cacheflush */
+	    (sy_call_t *)linux_sys_cacheflush, 0, 0 },/* 147 = cacheflush */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 148 = unimplemented cachectl */
+	    linux_sys_nosys, 0, 0 },			/* 148 = unimplemented cachectl */
 	{ ns(struct linux_sys_sysmips_args), 0,
-	    (sy_call_t *)linux_sys_sysmips },	/* 149 = sysmips */
+	    (sy_call_t *)linux_sys_sysmips, 0, 0 },	/* 149 = sysmips */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 150 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 150 = unimplemented */
 	{ ns(struct sys_getsid_args), 0,
-	    (sy_call_t *)sys_getsid },		/* 151 = getsid */
+	    (sy_call_t *)sys_getsid, 0, 0 },		/* 151 = getsid */
 	{ ns(struct linux_sys_fdatasync_args), 0,
-	    (sy_call_t *)linux_sys_fdatasync },	/* 152 = fdatasync */
+	    (sy_call_t *)linux_sys_fdatasync, 0, 0 },	/* 152 = fdatasync */
 	{ ns(struct linux_sys___sysctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys___sysctl },	/* 153 = __sysctl */
+	    (sy_call_t *)linux_sys___sysctl, 0, 0 },	/* 153 = __sysctl */
 	{ ns(struct sys_mlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mlock },		/* 154 = mlock */
+	    (sy_call_t *)sys_mlock, 0, 0 },		/* 154 = mlock */
 	{ ns(struct sys_munlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munlock },		/* 155 = munlock */
+	    (sy_call_t *)sys_munlock, 0, 0 },		/* 155 = munlock */
 	{ ns(struct sys_mlockall_args), 0,
-	    (sy_call_t *)sys_mlockall },	/* 156 = mlockall */
+	    (sy_call_t *)sys_mlockall, 0, 0 },	/* 156 = mlockall */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_munlockall },	/* 157 = munlockall */
+	    (sy_call_t *)sys_munlockall, 0, 0 },	/* 157 = munlockall */
 	{ ns(struct linux_sys_sched_setparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setparam },/* 158 = sched_setparam */
+	    (sy_call_t *)linux_sys_sched_setparam, 0, 0 },/* 158 = sched_setparam */
 	{ ns(struct linux_sys_sched_getparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_getparam },/* 159 = sched_getparam */
+	    (sy_call_t *)linux_sys_sched_getparam, 0, 0 },/* 159 = sched_getparam */
 	{ ns(struct linux_sys_sched_setscheduler_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setscheduler },/* 160 = sched_setscheduler */
+	    (sy_call_t *)linux_sys_sched_setscheduler, 0, 0 },/* 160 = sched_setscheduler */
 	{ ns(struct linux_sys_sched_getscheduler_args), 0,
-	    (sy_call_t *)linux_sys_sched_getscheduler },/* 161 = sched_getscheduler */
+	    (sy_call_t *)linux_sys_sched_getscheduler, 0, 0 },/* 161 = sched_getscheduler */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_sched_yield },/* 162 = sched_yield */
+	    (sy_call_t *)linux_sys_sched_yield, 0, 0 },/* 162 = sched_yield */
 	{ ns(struct linux_sys_sched_get_priority_max_args), 0,
-	    (sy_call_t *)linux_sys_sched_get_priority_max },/* 163 = sched_get_priority_max */
+	    (sy_call_t *)linux_sys_sched_get_priority_max, 0, 0 },/* 163 = sched_get_priority_max */
 	{ ns(struct linux_sys_sched_get_priority_min_args), 0,
-	    (sy_call_t *)linux_sys_sched_get_priority_min },/* 164 = sched_get_priority_min */
+	    (sy_call_t *)linux_sys_sched_get_priority_min, 0, 0 },/* 164 = sched_get_priority_min */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 165 = unimplemented sched_rr_get_interval */
+	    linux_sys_nosys, 0, 0 },			/* 165 = unimplemented sched_rr_get_interval */
 	{ ns(struct linux_sys_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_nanosleep },	/* 166 = nanosleep */
+	    (sy_call_t *)linux_sys_nanosleep, 0, 0 },	/* 166 = nanosleep */
 	{ ns(struct linux_sys_mremap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mremap },	/* 167 = mremap */
+	    (sy_call_t *)linux_sys_mremap, 0, 0 },	/* 167 = mremap */
 	{ ns(struct linux_sys_accept_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_accept },	/* 168 = accept */
+	    (sy_call_t *)linux_sys_accept, 0, 0 },	/* 168 = accept */
 	{ ns(struct linux_sys_bind_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_bind },	/* 169 = bind */
+	    (sy_call_t *)linux_sys_bind, 0, 0 },	/* 169 = bind */
 	{ ns(struct linux_sys_connect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_connect },	/* 170 = connect */
+	    (sy_call_t *)linux_sys_connect, 0, 0 },	/* 170 = connect */
 	{ ns(struct linux_sys_getpeername_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getpeername },/* 171 = getpeername */
+	    (sy_call_t *)linux_sys_getpeername, 0, 0 },/* 171 = getpeername */
 	{ ns(struct linux_sys_getsockname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getsockname },/* 172 = getsockname */
+	    (sy_call_t *)linux_sys_getsockname, 0, 0 },/* 172 = getsockname */
 	{ ns(struct linux_sys_getsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getsockopt },/* 173 = getsockopt */
+	    (sy_call_t *)linux_sys_getsockopt, 0, 0 },/* 173 = getsockopt */
 	{ ns(struct sys_listen_args), 0,
-	    (sy_call_t *)sys_listen },		/* 174 = listen */
+	    (sy_call_t *)sys_listen, 0, 0 },		/* 174 = listen */
 	{ ns(struct linux_sys_recv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_recv },	/* 175 = recv */
+	    (sy_call_t *)linux_sys_recv, 0, 0 },	/* 175 = recv */
 	{ ns(struct linux_sys_recvfrom_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_recvfrom },	/* 176 = recvfrom */
+	    (sy_call_t *)linux_sys_recvfrom, 0, 0 },	/* 176 = recvfrom */
 	{ ns(struct linux_sys_recvmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_recvmsg },	/* 177 = recvmsg */
+	    (sy_call_t *)linux_sys_recvmsg, 0, 0 },	/* 177 = recvmsg */
 	{ ns(struct linux_sys_send_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_send },	/* 178 = send */
+	    (sy_call_t *)linux_sys_send, 0, 0 },	/* 178 = send */
 	{ ns(struct linux_sys_sendmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sendmsg },	/* 179 = sendmsg */
+	    (sy_call_t *)linux_sys_sendmsg, 0, 0 },	/* 179 = sendmsg */
 	{ ns(struct linux_sys_sendto_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sendto },	/* 180 = sendto */
+	    (sy_call_t *)linux_sys_sendto, 0, 0 },	/* 180 = sendto */
 	{ ns(struct linux_sys_setsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setsockopt },/* 181 = setsockopt */
+	    (sy_call_t *)linux_sys_setsockopt, 0, 0 },/* 181 = setsockopt */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 182 = unimplemented shutdown */
+	    linux_sys_nosys, 0, 0 },			/* 182 = unimplemented shutdown */
 	{ ns(struct linux_sys_socket_args), 0,
-	    (sy_call_t *)linux_sys_socket },	/* 183 = socket */
+	    (sy_call_t *)linux_sys_socket, 0, 0 },	/* 183 = socket */
 	{ ns(struct linux_sys_socketpair_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_socketpair },/* 184 = socketpair */
+	    (sy_call_t *)linux_sys_socketpair, 0, 0 },/* 184 = socketpair */
 	{ ns(struct linux_sys_setresuid_args), 0,
-	    (sy_call_t *)linux_sys_setresuid },	/* 185 = setresuid */
+	    (sy_call_t *)linux_sys_setresuid, 0, 0 },	/* 185 = setresuid */
 	{ ns(struct linux_sys_getresuid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresuid },	/* 186 = getresuid */
+	    (sy_call_t *)linux_sys_getresuid, 0, 0 },	/* 186 = getresuid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 187 = unimplemented query_module */
+	    linux_sys_nosys, 0, 0 },			/* 187 = unimplemented query_module */
 	{ ns(struct sys_poll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_poll },		/* 188 = poll */
+	    (sy_call_t *)sys_poll, 0, 0 },		/* 188 = poll */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 189 = unimplemented nfsservctl */
+	    linux_sys_nosys, 0, 0 },			/* 189 = unimplemented nfsservctl */
 	{ ns(struct linux_sys_setresgid_args), 0,
-	    (sy_call_t *)linux_sys_setresgid },	/* 190 = setresgid */
+	    (sy_call_t *)linux_sys_setresgid, 0, 0 },	/* 190 = setresgid */
 	{ ns(struct linux_sys_getresgid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresgid },	/* 191 = getresgid */
+	    (sy_call_t *)linux_sys_getresgid, 0, 0 },	/* 191 = getresgid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 192 = unimplemented prctl */
+	    linux_sys_nosys, 0, 0 },			/* 192 = unimplemented prctl */
 	{ ns(struct linux_sys_rt_sigreturn_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigreturn },/* 193 = rt_sigreturn */
+	    (sy_call_t *)linux_sys_rt_sigreturn, 0, 0 },/* 193 = rt_sigreturn */
 	{ ns(struct linux_sys_rt_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigaction },/* 194 = rt_sigaction */
+	    (sy_call_t *)linux_sys_rt_sigaction, 0, 0 },/* 194 = rt_sigaction */
 	{ ns(struct linux_sys_rt_sigprocmask_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigprocmask },/* 195 = rt_sigprocmask */
+	    (sy_call_t *)linux_sys_rt_sigprocmask, 0, 0 },/* 195 = rt_sigprocmask */
 	{ ns(struct linux_sys_rt_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigpending },/* 196 = rt_sigpending */
+	    (sy_call_t *)linux_sys_rt_sigpending, 0, 0 },/* 196 = rt_sigpending */
 	{ ns(struct linux_sys_rt_sigtimedwait_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigtimedwait },/* 197 = rt_sigtimedwait */
+	    (sy_call_t *)linux_sys_rt_sigtimedwait, 0, 0 },/* 197 = rt_sigtimedwait */
 	{ ns(struct linux_sys_rt_queueinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_queueinfo },/* 198 = rt_queueinfo */
+	    (sy_call_t *)linux_sys_rt_queueinfo, 0, 0 },/* 198 = rt_queueinfo */
 	{ ns(struct linux_sys_rt_sigsuspend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigsuspend },/* 199 = rt_sigsuspend */
+	    (sy_call_t *)linux_sys_rt_sigsuspend, 0, 0 },/* 199 = rt_sigsuspend */
 	{ ns(struct linux_sys_pread_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG3_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pread },	/* 200 = pread */
+	    (sy_call_t *)linux_sys_pread, 0, 0 },	/* 200 = pread */
 	{ ns(struct linux_sys_pwrite_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG3_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pwrite },	/* 201 = pwrite */
+	    (sy_call_t *)linux_sys_pwrite, 0, 0 },	/* 201 = pwrite */
 	{ ns(struct sys___posix_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_chown },	/* 202 = __posix_chown */
+	    (sy_call_t *)sys___posix_chown, 0, 0 },	/* 202 = __posix_chown */
 	{ ns(struct sys___getcwd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getcwd },	/* 203 = __getcwd */
+	    (sy_call_t *)sys___getcwd, 0, 0 },	/* 203 = __getcwd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 204 = unimplemented capget */
+	    linux_sys_nosys, 0, 0 },			/* 204 = unimplemented capget */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 205 = unimplemented capset */
+	    linux_sys_nosys, 0, 0 },			/* 205 = unimplemented capset */
 	{ ns(struct linux_sys_sigaltstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigaltstack },/* 206 = sigaltstack */
+	    (sy_call_t *)linux_sys_sigaltstack, 0, 0 },/* 206 = sigaltstack */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 207 = unimplemented sendfile */
+	    linux_sys_nosys, 0, 0 },			/* 207 = unimplemented sendfile */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 208 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 208 = unimplemented */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 209 = unimplemented */
+	    linux_sys_nosys, 0, 0 },			/* 209 = unimplemented */
 	{ ns(struct linux_sys_mmap2_args), 0,
-	    (sy_call_t *)linux_sys_mmap2 },	/* 210 = mmap2 */
+	    (sy_call_t *)linux_sys_mmap2, 0, 0 },	/* 210 = mmap2 */
 	{ ns(struct linux_sys_truncate64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_truncate64 },/* 211 = truncate64 */
+	    (sy_call_t *)linux_sys_truncate64, 0, 0 },/* 211 = truncate64 */
 	{ ns(struct linux_sys_ftruncate64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64,
-	    (sy_call_t *)linux_sys_ftruncate64 },/* 212 = ftruncate64 */
+	    (sy_call_t *)linux_sys_ftruncate64, 0, 0 },/* 212 = ftruncate64 */
 	{ ns(struct linux_sys_stat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stat64 },	/* 213 = stat64 */
+	    (sy_call_t *)linux_sys_stat64, 0, 0 },	/* 213 = stat64 */
 	{ ns(struct linux_sys_lstat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lstat64 },	/* 214 = lstat64 */
+	    (sy_call_t *)linux_sys_lstat64, 0, 0 },	/* 214 = lstat64 */
 	{ ns(struct linux_sys_fstat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstat64 },	/* 215 = fstat64 */
+	    (sy_call_t *)linux_sys_fstat64, 0, 0 },	/* 215 = fstat64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 216 = unimplemented pivot_root */
+	    linux_sys_nosys, 0, 0 },			/* 216 = unimplemented pivot_root */
 	{ ns(struct sys_mincore_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mincore },		/* 217 = mincore */
+	    (sy_call_t *)sys_mincore, 0, 0 },		/* 217 = mincore */
 	{ ns(struct sys_madvise_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_madvise },		/* 218 = madvise */
+	    (sy_call_t *)sys_madvise, 0, 0 },		/* 218 = madvise */
 	{ ns(struct linux_sys_getdents64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getdents64 },/* 219 = getdents64 */
+	    (sy_call_t *)linux_sys_getdents64, 0, 0 },/* 219 = getdents64 */
 	{ ns(struct linux_sys_fcntl64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fcntl64 },	/* 220 = fcntl64 */
+	    (sy_call_t *)linux_sys_fcntl64, 0, 0 },	/* 220 = fcntl64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 221 = unimplemented / * reserved * / */
+	    linux_sys_nosys, 0, 0 },			/* 221 = unimplemented / * reserved * / */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_gettid },	/* 222 = gettid */
+	    (sy_call_t *)linux_sys_gettid, 0, 0 },	/* 222 = gettid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 223 = unimplemented readahead */
+	    linux_sys_nosys, 0, 0 },			/* 223 = unimplemented readahead */
 	{ ns(struct linux_sys_setxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setxattr },	/* 224 = setxattr */
+	    (sy_call_t *)linux_sys_setxattr, 0, 0 },	/* 224 = setxattr */
 	{ ns(struct linux_sys_lsetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lsetxattr },	/* 225 = lsetxattr */
+	    (sy_call_t *)linux_sys_lsetxattr, 0, 0 },	/* 225 = lsetxattr */
 	{ ns(struct linux_sys_fsetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fsetxattr },	/* 226 = fsetxattr */
+	    (sy_call_t *)linux_sys_fsetxattr, 0, 0 },	/* 226 = fsetxattr */
 	{ ns(struct linux_sys_getxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getxattr },	/* 227 = getxattr */
+	    (sy_call_t *)linux_sys_getxattr, 0, 0 },	/* 227 = getxattr */
 	{ ns(struct linux_sys_lgetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lgetxattr },	/* 228 = lgetxattr */
+	    (sy_call_t *)linux_sys_lgetxattr, 0, 0 },	/* 228 = lgetxattr */
 	{ ns(struct linux_sys_fgetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fgetxattr },	/* 229 = fgetxattr */
+	    (sy_call_t *)linux_sys_fgetxattr, 0, 0 },	/* 229 = fgetxattr */
 	{ ns(struct linux_sys_listxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_listxattr },	/* 230 = listxattr */
+	    (sy_call_t *)linux_sys_listxattr, 0, 0 },	/* 230 = listxattr */
 	{ ns(struct linux_sys_llistxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_llistxattr },/* 231 = llistxattr */
+	    (sy_call_t *)linux_sys_llistxattr, 0, 0 },/* 231 = llistxattr */
 	{ ns(struct linux_sys_flistxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_flistxattr },/* 232 = flistxattr */
+	    (sy_call_t *)linux_sys_flistxattr, 0, 0 },/* 232 = flistxattr */
 	{ ns(struct linux_sys_removexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_removexattr },/* 233 = removexattr */
+	    (sy_call_t *)linux_sys_removexattr, 0, 0 },/* 233 = removexattr */
 	{ ns(struct linux_sys_lremovexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lremovexattr },/* 234 = lremovexattr */
+	    (sy_call_t *)linux_sys_lremovexattr, 0, 0 },/* 234 = lremovexattr */
 	{ ns(struct linux_sys_fremovexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fremovexattr },/* 235 = fremovexattr */
+	    (sy_call_t *)linux_sys_fremovexattr, 0, 0 },/* 235 = fremovexattr */
 	{ ns(struct linux_sys_tkill_args), 0,
-	    (sy_call_t *)linux_sys_tkill },	/* 236 = tkill */
+	    (sy_call_t *)linux_sys_tkill, 0, 0 },	/* 236 = tkill */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 237 = unimplemented sendfile64 */
+	    linux_sys_nosys, 0, 0 },			/* 237 = unimplemented sendfile64 */
 	{ ns(struct linux_sys_futex_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_futex },	/* 238 = futex */
+	    (sy_call_t *)linux_sys_futex, 0, 0 },	/* 238 = futex */
 	{ ns(struct linux_sys_sched_setaffinity_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setaffinity },/* 239 = sched_setaffinity */
+	    (sy_call_t *)linux_sys_sched_setaffinity, 0, 0 },/* 239 = sched_setaffinity */
 	{ ns(struct linux_sys_sched_getaffinity_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_getaffinity },/* 240 = sched_getaffinity */
+	    (sy_call_t *)linux_sys_sched_getaffinity, 0, 0 },/* 240 = sched_getaffinity */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 241 = unimplemented io_setup */
+	    linux_sys_nosys, 0, 0 },			/* 241 = unimplemented io_setup */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 242 = unimplemented io_destroy */
+	    linux_sys_nosys, 0, 0 },			/* 242 = unimplemented io_destroy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 243 = unimplemented io_getevents */
+	    linux_sys_nosys, 0, 0 },			/* 243 = unimplemented io_getevents */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 244 = unimplemented io_submit */
+	    linux_sys_nosys, 0, 0 },			/* 244 = unimplemented io_submit */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 245 = unimplemented io_cancel */
+	    linux_sys_nosys, 0, 0 },			/* 245 = unimplemented io_cancel */
 	{ ns(struct linux_sys_exit_group_args), 0,
-	    (sy_call_t *)linux_sys_exit_group },/* 246 = exit_group */
+	    (sy_call_t *)linux_sys_exit_group, 0, 0 },/* 246 = exit_group */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 247 = unimplemented lookup_dcookie */
+	    linux_sys_nosys, 0, 0 },			/* 247 = unimplemented lookup_dcookie */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 248 = unimplemented epoll_create */
+	    linux_sys_nosys, 0, 0 },			/* 248 = unimplemented epoll_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 249 = unimplemented epoll_ctl */
+	    linux_sys_nosys, 0, 0 },			/* 249 = unimplemented epoll_ctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 250 = unimplemented epoll_wait */
+	    linux_sys_nosys, 0, 0 },			/* 250 = unimplemented epoll_wait */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 251 = unimplemented remap_file_pages */
+	    linux_sys_nosys, 0, 0 },			/* 251 = unimplemented remap_file_pages */
 	{ ns(struct linux_sys_set_tid_address_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_tid_address },/* 252 = set_tid_address */
+	    (sy_call_t *)linux_sys_set_tid_address, 0, 0 },/* 252 = set_tid_address */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 253 = unimplemented restart_syscall */
+	    linux_sys_nosys, 0, 0 },			/* 253 = unimplemented restart_syscall */
 	{ ns(struct linux_sys_fadvise64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64,
-	    (sy_call_t *)linux_sys_fadvise64 },	/* 254 = fadvise64 */
+	    (sy_call_t *)linux_sys_fadvise64, 0, 0 },	/* 254 = fadvise64 */
 	{ ns(struct linux_sys_statfs64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_statfs64 },	/* 255 = statfs64 */
+	    (sy_call_t *)linux_sys_statfs64, 0, 0 },	/* 255 = statfs64 */
 	{ ns(struct linux_sys_fstatfs64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatfs64 },	/* 256 = fstatfs64 */
+	    (sy_call_t *)linux_sys_fstatfs64, 0, 0 },	/* 256 = fstatfs64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 257 = unimplemented timer_create */
+	    linux_sys_nosys, 0, 0 },			/* 257 = unimplemented timer_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 258 = unimplemented timer_settime */
+	    linux_sys_nosys, 0, 0 },			/* 258 = unimplemented timer_settime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 259 = unimplemented timer_gettime */
+	    linux_sys_nosys, 0, 0 },			/* 259 = unimplemented timer_gettime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 260 = unimplemented timer_getoverrun */
+	    linux_sys_nosys, 0, 0 },			/* 260 = unimplemented timer_getoverrun */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 261 = unimplemented timer_delete */
+	    linux_sys_nosys, 0, 0 },			/* 261 = unimplemented timer_delete */
 	{ ns(struct linux_sys_clock_settime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_settime },/* 262 = clock_settime */
+	    (sy_call_t *)linux_sys_clock_settime, 0, 0 },/* 262 = clock_settime */
 	{ ns(struct linux_sys_clock_gettime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_gettime },/* 263 = clock_gettime */
+	    (sy_call_t *)linux_sys_clock_gettime, 0, 0 },/* 263 = clock_gettime */
 	{ ns(struct linux_sys_clock_getres_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_getres },/* 264 = clock_getres */
+	    (sy_call_t *)linux_sys_clock_getres, 0, 0 },/* 264 = clock_getres */
 	{ ns(struct linux_sys_clock_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_nanosleep },/* 265 = clock_nanosleep */
+	    (sy_call_t *)linux_sys_clock_nanosleep, 0, 0 },/* 265 = clock_nanosleep */
 	{ ns(struct linux_sys_tgkill_args), 0,
-	    (sy_call_t *)linux_sys_tgkill },	/* 266 = tgkill */
+	    (sy_call_t *)linux_sys_tgkill, 0, 0 },	/* 266 = tgkill */
 	{ ns(struct compat_50_sys_utimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_utimes },/* 267 = utimes */
+	    (sy_call_t *)compat_50_sys_utimes, 0, 0 },/* 267 = utimes */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 268 = unimplemented mbind */
+	    linux_sys_nosys, 0, 0 },			/* 268 = unimplemented mbind */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 269 = unimplemented get_mempolicy */
+	    linux_sys_nosys, 0, 0 },			/* 269 = unimplemented get_mempolicy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 270 = unimplemented set_mempolicy */
+	    linux_sys_nosys, 0, 0 },			/* 270 = unimplemented set_mempolicy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 271 = unimplemented mq_open */
+	    linux_sys_nosys, 0, 0 },			/* 271 = unimplemented mq_open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 272 = unimplemented mq_unlink */
+	    linux_sys_nosys, 0, 0 },			/* 272 = unimplemented mq_unlink */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 273 = unimplemented mq_timedsend */
+	    linux_sys_nosys, 0, 0 },			/* 273 = unimplemented mq_timedsend */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 274 = unimplemented mq_timedreceive */
+	    linux_sys_nosys, 0, 0 },			/* 274 = unimplemented mq_timedreceive */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 275 = unimplemented mq_notify */
+	    linux_sys_nosys, 0, 0 },			/* 275 = unimplemented mq_notify */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 276 = unimplemented mq_getsetattr */
+	    linux_sys_nosys, 0, 0 },			/* 276 = unimplemented mq_getsetattr */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 277 = unimplemented vserve */
+	    linux_sys_nosys, 0, 0 },			/* 277 = unimplemented vserve */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 278 = unimplemented waitid */
+	    linux_sys_nosys, 0, 0 },			/* 278 = unimplemented waitid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 279 = unimplemented setaltroot */
+	    linux_sys_nosys, 0, 0 },			/* 279 = unimplemented setaltroot */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 280 = unimplemented add_key */
+	    linux_sys_nosys, 0, 0 },			/* 280 = unimplemented add_key */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 281 = unimplemented request_key */
+	    linux_sys_nosys, 0, 0 },			/* 281 = unimplemented request_key */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 282 = unimplemented keyctl */
+	    linux_sys_nosys, 0, 0 },			/* 282 = unimplemented keyctl */
 	{ ns(struct linux_sys_set_thread_area_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_thread_area },/* 283 = set_thread_area */
+	    (sy_call_t *)linux_sys_set_thread_area, 0, 0 },/* 283 = set_thread_area */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 284 = unimplemented inotify_init */
+	    linux_sys_nosys, 0, 0 },			/* 284 = unimplemented inotify_init */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 285 = unimplemented inotify_add_watch */
+	    linux_sys_nosys, 0, 0 },			/* 285 = unimplemented inotify_add_watch */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 286 = unimplemented inotify_rm_watch */
+	    linux_sys_nosys, 0, 0 },			/* 286 = unimplemented inotify_rm_watch */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 287 = unimplemented migrate_pages */
+	    linux_sys_nosys, 0, 0 },			/* 287 = unimplemented migrate_pages */
 	{ ns(struct linux_sys_openat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_openat },	/* 288 = openat */
+	    (sy_call_t *)linux_sys_openat, 0, 0 },	/* 288 = openat */
 	{ ns(struct sys_mkdirat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdirat },		/* 289 = mkdirat */
+	    (sy_call_t *)sys_mkdirat, 0, 0 },		/* 289 = mkdirat */
 	{ ns(struct linux_sys_mknodat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mknodat },	/* 290 = mknodat */
+	    (sy_call_t *)linux_sys_mknodat, 0, 0 },	/* 290 = mknodat */
 	{ ns(struct linux_sys_fchownat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fchownat },	/* 291 = fchownat */
+	    (sy_call_t *)linux_sys_fchownat, 0, 0 },	/* 291 = fchownat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 292 = unimplemented futimesat */
+	    linux_sys_nosys, 0, 0 },			/* 292 = unimplemented futimesat */
 	{ ns(struct linux_sys_fstatat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatat64 },	/* 293 = fstatat64 */
+	    (sy_call_t *)linux_sys_fstatat64, 0, 0 },	/* 293 = fstatat64 */
 	{ ns(struct linux_sys_unlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_unlinkat },	/* 294 = unlinkat */
+	    (sy_call_t *)linux_sys_unlinkat, 0, 0 },	/* 294 = unlinkat */
 	{ ns(struct sys_renameat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_renameat },	/* 295 = renameat */
+	    (sy_call_t *)sys_renameat, 0, 0 },	/* 295 = renameat */
 	{ ns(struct linux_sys_linkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_linkat },	/* 296 = linkat */
+	    (sy_call_t *)linux_sys_linkat, 0, 0 },	/* 296 = linkat */
 	{ ns(struct sys_symlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlinkat },	/* 297 = symlinkat */
+	    (sy_call_t *)sys_symlinkat, 0, 0 },	/* 297 = symlinkat */
 	{ ns(struct sys_readlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlinkat },	/* 298 = readlinkat */
+	    (sy_call_t *)sys_readlinkat, 0, 0 },	/* 298 = readlinkat */
 	{ ns(struct linux_sys_fchmodat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fchmodat },	/* 299 = fchmodat */
+	    (sy_call_t *)linux_sys_fchmodat, 0, 0 },	/* 299 = fchmodat */
 	{ ns(struct linux_sys_faccessat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_faccessat },	/* 300 = faccessat */
+	    (sy_call_t *)linux_sys_faccessat, 0, 0 },	/* 300 = faccessat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 301 = unimplemented pselect6 */
+	    linux_sys_nosys, 0, 0 },			/* 301 = unimplemented pselect6 */
 	{ ns(struct linux_sys_ppoll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ppoll },	/* 302 = ppoll */
+	    (sy_call_t *)linux_sys_ppoll, 0, 0 },	/* 302 = ppoll */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 303 = unimplemented unshare */
+	    linux_sys_nosys, 0, 0 },			/* 303 = unimplemented unshare */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 304 = unimplemented splice */
+	    linux_sys_nosys, 0, 0 },			/* 304 = unimplemented splice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 305 = unimplemented sync_file_range */
+	    linux_sys_nosys, 0, 0 },			/* 305 = unimplemented sync_file_range */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 306 = unimplemented tee */
+	    linux_sys_nosys, 0, 0 },			/* 306 = unimplemented tee */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 307 = unimplemented vmsplice */
+	    linux_sys_nosys, 0, 0 },			/* 307 = unimplemented vmsplice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 308 = unimplemented move_pages */
+	    linux_sys_nosys, 0, 0 },			/* 308 = unimplemented move_pages */
 	{ ns(struct linux_sys_set_robust_list_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_robust_list },/* 309 = set_robust_list */
+	    (sy_call_t *)linux_sys_set_robust_list, 0, 0 },/* 309 = set_robust_list */
 	{ ns(struct linux_sys_get_robust_list_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_get_robust_list },/* 310 = get_robust_list */
+	    (sy_call_t *)linux_sys_get_robust_list, 0, 0 },/* 310 = get_robust_list */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 311 = unimplemented kexec_load */
+	    linux_sys_nosys, 0, 0 },			/* 311 = unimplemented kexec_load */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 312 = unimplemented getcpu */
+	    linux_sys_nosys, 0, 0 },			/* 312 = unimplemented getcpu */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 313 = unimplemented epoll_pwait */
+	    linux_sys_nosys, 0, 0 },			/* 313 = unimplemented epoll_pwait */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 314 = unimplemented ioprio_set */
+	    linux_sys_nosys, 0, 0 },			/* 314 = unimplemented ioprio_set */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 315 = unimplemented ioprio_get */
+	    linux_sys_nosys, 0, 0 },			/* 315 = unimplemented ioprio_get */
 	{ ns(struct linux_sys_utimensat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_utimensat },	/* 316 = utimensat */
+	    (sy_call_t *)linux_sys_utimensat, 0, 0 },	/* 316 = utimensat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 317 = unimplemented signalfd */
+	    linux_sys_nosys, 0, 0 },			/* 317 = unimplemented signalfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 318 = unimplemented timerfd */
+	    linux_sys_nosys, 0, 0 },			/* 318 = unimplemented timerfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 319 = unimplemented eventfd */
+	    linux_sys_nosys, 0, 0 },			/* 319 = unimplemented eventfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 320 = unimplemented fallocate */
+	    linux_sys_nosys, 0, 0 },			/* 320 = unimplemented fallocate */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 321 = unimplemented timerfd_create */
+	    linux_sys_nosys, 0, 0 },			/* 321 = unimplemented timerfd_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 322 = unimplemented timerfd_gettime */
+	    linux_sys_nosys, 0, 0 },			/* 322 = unimplemented timerfd_gettime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 323 = unimplemented timerfd_settime */
+	    linux_sys_nosys, 0, 0 },			/* 323 = unimplemented timerfd_settime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 324 = unimplemented signalfd4 */
+	    linux_sys_nosys, 0, 0 },			/* 324 = unimplemented signalfd4 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 325 = unimplemented eventfd2 */
+	    linux_sys_nosys, 0, 0 },			/* 325 = unimplemented eventfd2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 326 = unimplemented epoll_create1 */
+	    linux_sys_nosys, 0, 0 },			/* 326 = unimplemented epoll_create1 */
 	{ ns(struct linux_sys_dup3_args), 0,
-	    (sy_call_t *)linux_sys_dup3 },	/* 327 = dup3 */
+	    (sy_call_t *)linux_sys_dup3, 0, 0 },	/* 327 = dup3 */
 	{ ns(struct linux_sys_pipe2_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pipe2 },	/* 328 = pipe2 */
+	    (sy_call_t *)linux_sys_pipe2, 0, 0 },	/* 328 = pipe2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 329 = unimplemented inotify_init1 */
+	    linux_sys_nosys, 0, 0 },			/* 329 = unimplemented inotify_init1 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 330 = unimplemented preadv */
+	    linux_sys_nosys, 0, 0 },			/* 330 = unimplemented preadv */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 331 = unimplemented pwritev */
+	    linux_sys_nosys, 0, 0 },			/* 331 = unimplemented pwritev */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 332 = unimplemented rt_tgsigqueueinfo */
+	    linux_sys_nosys, 0, 0 },			/* 332 = unimplemented rt_tgsigqueueinfo */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 333 = unimplemented perf_event_open */
+	    linux_sys_nosys, 0, 0 },			/* 333 = unimplemented perf_event_open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 334 = unimplemented accept4 */
+	    linux_sys_nosys, 0, 0 },			/* 334 = unimplemented accept4 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 335 = unimplemented recvmmsg */
+	    linux_sys_nosys, 0, 0 },			/* 335 = unimplemented recvmmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 336 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 336 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 337 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 337 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 338 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 338 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 339 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 339 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 340 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 340 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 341 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 341 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 342 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 342 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 343 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 343 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 344 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 344 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 345 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 345 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 346 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 346 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 347 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 347 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 348 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 348 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 349 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 349 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 350 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 350 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 351 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 351 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 352 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 352 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 353 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 353 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 354 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 354 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 355 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 355 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 356 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 356 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 357 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 357 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 358 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 358 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 359 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 359 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 360 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 360 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 361 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 361 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 362 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 362 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 363 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 363 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 364 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 364 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 365 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 365 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 366 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 366 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 367 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 367 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 368 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 368 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 369 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 369 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 370 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 370 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 371 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 371 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 372 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 372 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 373 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 373 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 374 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 374 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 375 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 375 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 376 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 376 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 377 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 377 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 378 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 378 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 379 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 379 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 380 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 380 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 381 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 381 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 382 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 382 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 383 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 383 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 384 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 384 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 385 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 385 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 386 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 386 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 387 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 387 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 388 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 388 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 389 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 389 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 390 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 390 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 391 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 391 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 392 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 392 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 393 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 393 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 394 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 394 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 395 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 395 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 396 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 396 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 397 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 397 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 398 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 398 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 399 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 399 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 400 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 400 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 401 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 401 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 402 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 402 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 403 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 403 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 404 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 404 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 405 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 405 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 406 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 406 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 407 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 407 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 408 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 408 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 409 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 409 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 410 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 410 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 411 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 411 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 412 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 412 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 413 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 413 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 414 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 414 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 415 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 415 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 416 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 416 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 417 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 417 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 418 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 418 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 419 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 419 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 420 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 420 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 421 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 421 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 422 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 422 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 423 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 423 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 424 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 424 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 425 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 425 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 426 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 426 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 427 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 427 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 428 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 428 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 429 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 429 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 430 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 430 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 431 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 431 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 432 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 432 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 433 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 433 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 434 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 434 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 435 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 435 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 436 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 436 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 437 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 437 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 438 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 438 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 439 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 439 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 440 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 440 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 441 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 441 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 442 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 442 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 443 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 443 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 444 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 444 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 445 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 445 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 446 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 446 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 447 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 447 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 448 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 448 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 449 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 449 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 450 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 450 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 451 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 451 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 452 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 452 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 453 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 453 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 454 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 454 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 455 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 455 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 456 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 456 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 457 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 457 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 458 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 458 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 459 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 459 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 460 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 460 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 461 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 461 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 462 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 462 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 463 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 463 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 464 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 464 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 465 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 465 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 466 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 466 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 467 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 467 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 468 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 468 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 469 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 469 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 470 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 470 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 471 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 471 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 472 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 472 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 473 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 473 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 474 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 474 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 475 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 475 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 476 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 476 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 477 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 477 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 478 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 478 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 479 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 479 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 480 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 480 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 481 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 481 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 482 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 482 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 483 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 483 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 484 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 484 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 485 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 485 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 486 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 486 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 487 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 487 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 488 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 488 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 489 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 489 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 490 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 490 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 491 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 491 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 492 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 492 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 493 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 493 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 494 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 494 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 495 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 495 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 496 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 496 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 497 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 497 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 498 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 498 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 499 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 499 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 500 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 500 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 501 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 501 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 502 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 502 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 503 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 503 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 504 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 504 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 505 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 505 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 506 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 506 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 507 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 507 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 508 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 508 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 509 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 509 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 510 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 510 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 511 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 511 = filler */
 };
diff --git a/sys/compat/linux/arch/powerpc/linux_syscall.h b/sys/compat/linux/arch/powerpc/linux_syscall.h
index 5fec0e4..07b7e97 100644
--- a/sys/compat/linux/arch/powerpc/linux_syscall.h
+++ b/sys/compat/linux/arch/powerpc/linux_syscall.h
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_syscall.h,v 1.70 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
diff --git a/sys/compat/linux/arch/powerpc/linux_syscallargs.h b/sys/compat/linux/arch/powerpc/linux_syscallargs.h
index e9e6b4a..ffca710 100644
--- a/sys/compat/linux/arch/powerpc/linux_syscallargs.h
+++ b/sys/compat/linux/arch/powerpc/linux_syscallargs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_syscallargs.h,v 1.69 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
diff --git a/sys/compat/linux/arch/powerpc/linux_syscalls.c b/sys/compat/linux/arch/powerpc/linux_syscalls.c
index 9be9401..16f5874 100644
--- a/sys/compat/linux/arch/powerpc/linux_syscalls.c
+++ b/sys/compat/linux/arch/powerpc/linux_syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_syscalls.c,v 1.69 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.69 2014/05/31 08:52:54 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include <sys/param.h>
@@ -23,6 +23,8 @@ __KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.69 2014/05/31 08:52:54 njoly Ex
 #include <compat/linux/common/linux_machdep.h>
 #include <compat/linux/common/linux_mmap.h>
 #include <compat/linux/linux_syscallargs.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const linux_syscallnames[] = {
@@ -544,3 +546,525 @@ const char *const linux_syscallnames[] = {
 	/* 510 */	"# filler",
 	/* 511 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altlinux_syscallnames[] = {
+	/*   0 */	"nosys",
+	/*   1 */	NULL, /* exit */
+	/*   2 */	NULL, /* fork */
+	/*   3 */	NULL, /* read */
+	/*   4 */	NULL, /* write */
+	/*   5 */	NULL, /* open */
+	/*   6 */	NULL, /* close */
+	/*   7 */	NULL, /* waitpid */
+	/*   8 */	NULL, /* creat */
+	/*   9 */	NULL, /* link */
+	/*  10 */	NULL, /* unlink */
+	/*  11 */	NULL, /* execve */
+	/*  12 */	NULL, /* chdir */
+	/*  13 */	NULL, /* time */
+	/*  14 */	NULL, /* mknod */
+	/*  15 */	NULL, /* chmod */
+	/*  16 */	NULL, /* __posix_lchown */
+	/*  17 */	NULL, /* obsolete break */
+	/*  18 */	NULL, /* obsolete ostat */
+	/*  19 */	NULL, /* lseek */
+	/*  20 */	NULL, /* getpid */
+	/*  21 */	NULL, /* unimplemented mount */
+	/*  22 */	NULL, /* obsolete umount */
+	/*  23 */	NULL, /* setuid */
+	/*  24 */	NULL, /* getuid */
+	/*  25 */	NULL, /* stime */
+	/*  26 */	NULL, /* ptrace */
+	/*  27 */	NULL, /* alarm */
+	/*  28 */	NULL, /* obsolete ofstat */
+	/*  29 */	NULL, /* pause */
+	/*  30 */	NULL, /* utime */
+	/*  31 */	NULL, /* obsolete stty */
+	/*  32 */	NULL, /* obsolete gtty */
+	/*  33 */	NULL, /* access */
+	/*  34 */	NULL, /* nice */
+	/*  35 */	NULL, /* obsolete ftime */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	NULL, /* kill */
+	/*  38 */	NULL, /* __posix_rename */
+	/*  39 */	NULL, /* mkdir */
+	/*  40 */	NULL, /* rmdir */
+	/*  41 */	NULL, /* dup */
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* times */
+	/*  44 */	NULL, /* obsolete prof */
+	/*  45 */	NULL, /* brk */
+	/*  46 */	NULL, /* setgid */
+	/*  47 */	NULL, /* getgid */
+	/*  48 */	NULL, /* signal */
+	/*  49 */	NULL, /* geteuid */
+	/*  50 */	NULL, /* getegid */
+	/*  51 */	NULL, /* acct */
+	/*  52 */	NULL, /* unimplemented umount */
+	/*  53 */	NULL, /* obsolete lock */
+	/*  54 */	NULL, /* ioctl */
+	/*  55 */	NULL, /* fcntl */
+	/*  56 */	NULL, /* obsolete mpx */
+	/*  57 */	NULL, /* setpgid */
+	/*  58 */	NULL, /* obsolete ulimit */
+	/*  59 */	NULL, /* olduname */
+	/*  60 */	NULL, /* umask */
+	/*  61 */	NULL, /* chroot */
+	/*  62 */	NULL, /* unimplemented ustat */
+	/*  63 */	NULL, /* dup2 */
+	/*  64 */	NULL, /* getppid */
+	/*  65 */	NULL, /* getpgrp */
+	/*  66 */	NULL, /* setsid */
+	/*  67 */	NULL, /* sigaction */
+	/*  68 */	NULL, /* siggetmask */
+	/*  69 */	NULL, /* sigsetmask */
+	/*  70 */	NULL, /* setreuid */
+	/*  71 */	NULL, /* setregid */
+	/*  72 */	NULL, /* sigsuspend */
+	/*  73 */	NULL, /* sigpending */
+	/*  74 */	NULL, /* sethostname */
+	/*  75 */	NULL, /* setrlimit */
+	/*  76 */	NULL, /* getrlimit */
+	/*  77 */	NULL, /* getrusage */
+	/*  78 */	NULL, /* gettimeofday */
+	/*  79 */	NULL, /* settimeofday */
+	/*  80 */	NULL, /* getgroups */
+	/*  81 */	NULL, /* setgroups */
+	/*  82 */	NULL, /* select */
+	/*  83 */	NULL, /* symlink */
+	/*  84 */	"lstat",
+	/*  85 */	NULL, /* readlink */
+#ifdef EXEC_AOUT
+	/*  86 */	NULL, /* uselib */
+#else
+	/*  86 */	NULL, /* unimplemented sys_uselib */
+#endif
+	/*  87 */	NULL, /* swapon */
+	/*  88 */	NULL, /* reboot */
+	/*  89 */	NULL, /* readdir */
+	/*  90 */	NULL, /* mmap */
+	/*  91 */	NULL, /* munmap */
+	/*  92 */	NULL, /* truncate */
+	/*  93 */	NULL, /* ftruncate */
+	/*  94 */	NULL, /* fchmod */
+	/*  95 */	NULL, /* __posix_fchown */
+	/*  96 */	NULL, /* getpriority */
+	/*  97 */	NULL, /* setpriority */
+	/*  98 */	NULL, /* profil */
+	/*  99 */	NULL, /* statfs */
+	/* 100 */	NULL, /* fstatfs */
+	/* 101 */	NULL, /* unimplemented ioperm */
+	/* 102 */	NULL, /* socketcall */
+	/* 103 */	NULL, /* unimplemented syslog */
+	/* 104 */	NULL, /* setitimer */
+	/* 105 */	NULL, /* getitimer */
+	/* 106 */	NULL, /* stat */
+	/* 107 */	NULL, /* lstat */
+	/* 108 */	NULL, /* fstat */
+	/* 109 */	NULL, /* uname */
+	/* 110 */	NULL, /* unimplemented iopl */
+	/* 111 */	NULL, /* unimplemented vhangup */
+	/* 112 */	NULL, /* unimplemented idle */
+	/* 113 */	NULL, /* unimplemented vm86old */
+	/* 114 */	NULL, /* wait4 */
+	/* 115 */	NULL, /* swapoff */
+	/* 116 */	NULL, /* sysinfo */
+	/* 117 */	NULL, /* ipc */
+	/* 118 */	NULL, /* fsync */
+	/* 119 */	NULL, /* sigreturn */
+	/* 120 */	NULL, /* clone */
+	/* 121 */	NULL, /* setdomainname */
+	/* 122 */	NULL, /* new_uname */
+	/* 123 */	NULL, /* unimplemented modify_ldt */
+	/* 124 */	NULL, /* unimplemented adjtimex */
+	/* 125 */	NULL, /* mprotect */
+	/* 126 */	NULL, /* sigprocmask */
+	/* 127 */	NULL, /* unimplemented create_module */
+	/* 128 */	NULL, /* unimplemented init_module */
+	/* 129 */	NULL, /* unimplemented delete_module */
+	/* 130 */	NULL, /* unimplemented get_kernel_syms */
+	/* 131 */	NULL, /* unimplemented quotactl */
+	/* 132 */	NULL, /* getpgid */
+	/* 133 */	NULL, /* fchdir */
+	/* 134 */	NULL, /* unimplemented bdflush */
+	/* 135 */	NULL, /* unimplemented sysfs */
+	/* 136 */	NULL, /* personality */
+	/* 137 */	NULL, /* unimplemented afs_syscall */
+	/* 138 */	NULL, /* setfsuid */
+	/* 139 */	NULL, /* setfsgid */
+	/* 140 */	NULL, /* llseek */
+	/* 141 */	NULL, /* getdents */
+	/* 142 */	NULL, /* new_select */
+	/* 143 */	NULL, /* flock */
+	/* 144 */	"msync",
+	/* 145 */	NULL, /* readv */
+	/* 146 */	NULL, /* writev */
+	/* 147 */	NULL, /* getsid */
+	/* 148 */	NULL, /* fdatasync */
+	/* 149 */	NULL, /* __sysctl */
+	/* 150 */	NULL, /* mlock */
+	/* 151 */	NULL, /* munlock */
+	/* 152 */	NULL, /* mlockall */
+	/* 153 */	NULL, /* munlockall */
+	/* 154 */	NULL, /* sched_setparam */
+	/* 155 */	NULL, /* sched_getparam */
+	/* 156 */	NULL, /* sched_setscheduler */
+	/* 157 */	NULL, /* sched_getscheduler */
+	/* 158 */	NULL, /* sched_yield */
+	/* 159 */	NULL, /* sched_get_priority_max */
+	/* 160 */	NULL, /* sched_get_priority_min */
+	/* 161 */	NULL, /* unimplemented sched_rr_get_interval */
+	/* 162 */	NULL, /* nanosleep */
+	/* 163 */	NULL, /* mremap */
+	/* 164 */	NULL, /* setresuid */
+	/* 165 */	NULL, /* getresuid */
+	/* 166 */	NULL, /* unimplemented query_module */
+	/* 167 */	NULL, /* poll */
+	/* 168 */	NULL, /* unimplemented nfsservctl */
+	/* 169 */	NULL, /* setresgid */
+	/* 170 */	NULL, /* getresgid */
+	/* 171 */	NULL, /* unimplemented prctl */
+	/* 172 */	NULL, /* rt_sigreturn */
+	/* 173 */	NULL, /* rt_sigaction */
+	/* 174 */	NULL, /* rt_sigprocmask */
+	/* 175 */	NULL, /* rt_sigpending */
+	/* 176 */	NULL, /* rt_sigtimedwait */
+	/* 177 */	NULL, /* rt_queueinfo */
+	/* 178 */	NULL, /* rt_sigsuspend */
+	/* 179 */	NULL, /* pread */
+	/* 180 */	NULL, /* pwrite */
+	/* 181 */	NULL, /* __posix_chown */
+	/* 182 */	NULL, /* __getcwd */
+	/* 183 */	NULL, /* unimplemented capget */
+	/* 184 */	NULL, /* unimplemented capset */
+	/* 185 */	NULL, /* sigaltstack */
+	/* 186 */	NULL, /* unimplemented sendfile */
+	/* 187 */	NULL, /* unimplemented getpmsg */
+	/* 188 */	NULL, /* unimplemented putpmsg */
+	/* 189 */	"vfork",
+	/* 190 */	NULL, /* ugetrlimit */
+	/* 191 */	NULL, /* unimplemented / * unused * / */
+#define linux_sys_mmap2_args linux_sys_mmap_args
+	/* 192 */	NULL, /* mmap2 */
+	/* 193 */	NULL, /* truncate64 */
+	/* 194 */	NULL, /* ftruncate64 */
+	/* 195 */	NULL, /* stat64 */
+	/* 196 */	NULL, /* lstat64 */
+	/* 197 */	NULL, /* fstat64 */
+	/* 198 */	NULL, /* unimplemented sys_pciconfig_read */
+	/* 199 */	NULL, /* unimplemented sys_pciconfig_write */
+	/* 200 */	NULL, /* unimplemented sys_pciconfig_iobase */
+	/* 201 */	NULL, /* unimplemented / * Unused ( MacOnLinux project ) * / */
+	/* 202 */	NULL, /* getdents64 */
+	/* 203 */	NULL, /* unimplemented pivot_root */
+	/* 204 */	NULL, /* fcntl64 */
+	/* 205 */	NULL, /* mincore */
+	/* 206 */	NULL, /* madvise */
+	/* 207 */	NULL, /* gettid */
+	/* 208 */	NULL, /* tkill */
+	/* 209 */	NULL, /* setxattr */
+	/* 210 */	NULL, /* lsetxattr */
+	/* 211 */	NULL, /* fsetxattr */
+	/* 212 */	NULL, /* getxattr */
+	/* 213 */	NULL, /* lgetxattr */
+	/* 214 */	NULL, /* fgetxattr */
+	/* 215 */	NULL, /* listxattr */
+	/* 216 */	NULL, /* llistxattr */
+	/* 217 */	NULL, /* flistxattr */
+	/* 218 */	NULL, /* removexattr */
+	/* 219 */	NULL, /* lremovexattr */
+	/* 220 */	NULL, /* fremovexattr */
+	/* 221 */	NULL, /* futex */
+	/* 222 */	NULL, /* sched_setaffinity */
+	/* 223 */	NULL, /* sched_getaffinity */
+	/* 224 */	NULL, /* unimplemented / * unused * / */
+	/* 225 */	NULL, /* unimplemented tuxcall */
+	/* 226 */	NULL, /* unimplemented sendfile64 */
+	/* 227 */	NULL, /* unimplemented io_setup */
+	/* 228 */	NULL, /* unimplemented io_destroy */
+	/* 229 */	NULL, /* unimplemented io_getevents */
+	/* 230 */	NULL, /* unimplemented io_submit */
+	/* 231 */	NULL, /* unimplemented io_cancel */
+	/* 232 */	NULL, /* set_tid_address */
+	/* 233 */	NULL, /* fadvise64 */
+	/* 234 */	NULL, /* exit_group */
+	/* 235 */	NULL, /* unimplemented lookup_dcookie */
+	/* 236 */	NULL, /* unimplemented epoll_create */
+	/* 237 */	NULL, /* unimplemented epoll_ctl */
+	/* 238 */	NULL, /* unimplemented epoll_wait */
+	/* 239 */	NULL, /* unimplemented remap_file_pages */
+	/* 240 */	NULL, /* unimplemented timer_create */
+	/* 241 */	NULL, /* unimplemented timer_settime */
+	/* 242 */	NULL, /* unimplemented timer_gettime */
+	/* 243 */	NULL, /* unimplemented timer_getoverrun */
+	/* 244 */	NULL, /* unimplemented timer_delete */
+	/* 245 */	NULL, /* clock_settime */
+	/* 246 */	NULL, /* clock_gettime */
+	/* 247 */	NULL, /* clock_getres */
+	/* 248 */	NULL, /* clock_nanosleep */
+	/* 249 */	NULL, /* unimplemented swapcontext */
+	/* 250 */	NULL, /* tgkill */
+	/* 251 */	NULL, /* utimes */
+	/* 252 */	NULL, /* statfs64 */
+	/* 253 */	NULL, /* fstatfs64 */
+	/* 254 */	NULL, /* fadvise64_64 */
+	/* 255 */	NULL, /* unimplemented rtas */
+	/* 256 */	NULL, /* unimplemented / * reserved for sys_debug_setcontext * / */
+	/* 257 */	NULL, /* unimplemented / * reserved for vserver * / */
+	/* 258 */	NULL, /* unimplemented / * reserved for new sys_remap_file_pages * / */
+	/* 259 */	NULL, /* unimplemented / * reserved for new sys_mbind * / */
+	/* 260 */	NULL, /* unimplemented / * reserved for new sys_get_mempolicy * / */
+	/* 261 */	NULL, /* unimplemented / * reserved for new sys_set_mempolicy * / */
+	/* 262 */	NULL, /* unimplemented mq_open */
+	/* 263 */	NULL, /* unimplemented mq_unlink */
+	/* 264 */	NULL, /* unimplemented mq_timedsend */
+	/* 265 */	NULL, /* unimplemented mq_timedreceive */
+	/* 266 */	NULL, /* unimplemented mq_notify */
+	/* 267 */	NULL, /* unimplemented mq_getsetattr */
+	/* 268 */	NULL, /* unimplemented kexec_load */
+	/* 269 */	NULL, /* unimplemented add_key */
+	/* 270 */	NULL, /* unimplemented request_key */
+	/* 271 */	NULL, /* unimplemented keyctl */
+	/* 272 */	NULL, /* unimplemented waitid */
+	/* 273 */	NULL, /* unimplemented ioprio_set */
+	/* 274 */	NULL, /* unimplemented ioprio_get */
+	/* 275 */	NULL, /* unimplemented inotify_init */
+	/* 276 */	NULL, /* unimplemented inotify_add_watch */
+	/* 277 */	NULL, /* unimplemented inotify_rm_watch */
+	/* 278 */	NULL, /* unimplemented spu_run */
+	/* 279 */	NULL, /* unimplemented spu_create */
+	/* 280 */	NULL, /* unimplemented pselect6 */
+	/* 281 */	NULL, /* ppoll */
+	/* 282 */	NULL, /* unimplemented unshare */
+	/* 283 */	NULL, /* unimplemented splice */
+	/* 284 */	NULL, /* unimplemented tee */
+	/* 285 */	NULL, /* unimplemented vmsplice */
+	/* 286 */	NULL, /* openat */
+	/* 287 */	NULL, /* mkdirat */
+	/* 288 */	NULL, /* mknodat */
+	/* 289 */	NULL, /* fchownat */
+	/* 290 */	NULL, /* unimplemented futimesat */
+	/* 291 */	NULL, /* fstatat64 */
+	/* 292 */	NULL, /* unlinkat */
+	/* 293 */	NULL, /* renameat */
+	/* 294 */	NULL, /* linkat */
+	/* 295 */	NULL, /* symlinkat */
+	/* 296 */	NULL, /* readlinkat */
+	/* 297 */	NULL, /* fchmodat */
+	/* 298 */	NULL, /* faccessat */
+	/* 299 */	NULL, /* set_robust_list */
+	/* 300 */	NULL, /* get_robust_list */
+	/* 301 */	NULL, /* unimplemented move_pages */
+	/* 302 */	NULL, /* unimplemented getcpu */
+	/* 303 */	NULL, /* unimplemented epoll_wait */
+	/* 304 */	NULL, /* utimensat */
+	/* 305 */	NULL, /* unimplemented signalfd */
+	/* 306 */	NULL, /* unimplemented timerfd_create */
+	/* 307 */	NULL, /* unimplemented eventfd */
+	/* 308 */	NULL, /* unimplemented sync_file_range2 */
+	/* 309 */	NULL, /* unimplemented fallocate */
+	/* 310 */	NULL, /* unimplemented subpage_prot */
+	/* 311 */	NULL, /* unimplemented timerfd_settime */
+	/* 312 */	NULL, /* unimplemented timerfd_gettime */
+	/* 313 */	NULL, /* unimplemented signalfd4 */
+	/* 314 */	NULL, /* unimplemented eventfd2 */
+	/* 315 */	NULL, /* unimplemented epoll_create1 */
+	/* 316 */	NULL, /* dup3 */
+	/* 317 */	NULL, /* pipe2 */
+	/* 318 */	NULL, /* unimplemented inotify_init1 */
+	/* 319 */	NULL, /* unimplemented perf_event_open */
+	/* 320 */	NULL, /* unimplemented preadv */
+	/* 321 */	NULL, /* unimplemented pwritev */
+	/* 322 */	NULL, /* unimplemented rt_tgsigqueueinfo */
+	/* 323 */	NULL, /* filler */
+	/* 324 */	NULL, /* filler */
+	/* 325 */	NULL, /* filler */
+	/* 326 */	NULL, /* filler */
+	/* 327 */	NULL, /* filler */
+	/* 328 */	NULL, /* filler */
+	/* 329 */	NULL, /* filler */
+	/* 330 */	NULL, /* filler */
+	/* 331 */	NULL, /* filler */
+	/* 332 */	NULL, /* filler */
+	/* 333 */	NULL, /* filler */
+	/* 334 */	NULL, /* filler */
+	/* 335 */	NULL, /* filler */
+	/* 336 */	NULL, /* filler */
+	/* 337 */	NULL, /* filler */
+	/* 338 */	NULL, /* filler */
+	/* 339 */	NULL, /* filler */
+	/* 340 */	NULL, /* filler */
+	/* 341 */	NULL, /* filler */
+	/* 342 */	NULL, /* filler */
+	/* 343 */	NULL, /* filler */
+	/* 344 */	NULL, /* filler */
+	/* 345 */	NULL, /* filler */
+	/* 346 */	NULL, /* filler */
+	/* 347 */	NULL, /* filler */
+	/* 348 */	NULL, /* filler */
+	/* 349 */	NULL, /* filler */
+	/* 350 */	NULL, /* filler */
+	/* 351 */	NULL, /* filler */
+	/* 352 */	NULL, /* filler */
+	/* 353 */	NULL, /* filler */
+	/* 354 */	NULL, /* filler */
+	/* 355 */	NULL, /* filler */
+	/* 356 */	NULL, /* filler */
+	/* 357 */	NULL, /* filler */
+	/* 358 */	NULL, /* filler */
+	/* 359 */	NULL, /* filler */
+	/* 360 */	NULL, /* filler */
+	/* 361 */	NULL, /* filler */
+	/* 362 */	NULL, /* filler */
+	/* 363 */	NULL, /* filler */
+	/* 364 */	NULL, /* filler */
+	/* 365 */	NULL, /* filler */
+	/* 366 */	NULL, /* filler */
+	/* 367 */	NULL, /* filler */
+	/* 368 */	NULL, /* filler */
+	/* 369 */	NULL, /* filler */
+	/* 370 */	NULL, /* filler */
+	/* 371 */	NULL, /* filler */
+	/* 372 */	NULL, /* filler */
+	/* 373 */	NULL, /* filler */
+	/* 374 */	NULL, /* filler */
+	/* 375 */	NULL, /* filler */
+	/* 376 */	NULL, /* filler */
+	/* 377 */	NULL, /* filler */
+	/* 378 */	NULL, /* filler */
+	/* 379 */	NULL, /* filler */
+	/* 380 */	NULL, /* filler */
+	/* 381 */	NULL, /* filler */
+	/* 382 */	NULL, /* filler */
+	/* 383 */	NULL, /* filler */
+	/* 384 */	NULL, /* filler */
+	/* 385 */	NULL, /* filler */
+	/* 386 */	NULL, /* filler */
+	/* 387 */	NULL, /* filler */
+	/* 388 */	NULL, /* filler */
+	/* 389 */	NULL, /* filler */
+	/* 390 */	NULL, /* filler */
+	/* 391 */	NULL, /* filler */
+	/* 392 */	NULL, /* filler */
+	/* 393 */	NULL, /* filler */
+	/* 394 */	NULL, /* filler */
+	/* 395 */	NULL, /* filler */
+	/* 396 */	NULL, /* filler */
+	/* 397 */	NULL, /* filler */
+	/* 398 */	NULL, /* filler */
+	/* 399 */	NULL, /* filler */
+	/* 400 */	NULL, /* filler */
+	/* 401 */	NULL, /* filler */
+	/* 402 */	NULL, /* filler */
+	/* 403 */	NULL, /* filler */
+	/* 404 */	NULL, /* filler */
+	/* 405 */	NULL, /* filler */
+	/* 406 */	NULL, /* filler */
+	/* 407 */	NULL, /* filler */
+	/* 408 */	NULL, /* filler */
+	/* 409 */	NULL, /* filler */
+	/* 410 */	NULL, /* filler */
+	/* 411 */	NULL, /* filler */
+	/* 412 */	NULL, /* filler */
+	/* 413 */	NULL, /* filler */
+	/* 414 */	NULL, /* filler */
+	/* 415 */	NULL, /* filler */
+	/* 416 */	NULL, /* filler */
+	/* 417 */	NULL, /* filler */
+	/* 418 */	NULL, /* filler */
+	/* 419 */	NULL, /* filler */
+	/* 420 */	NULL, /* filler */
+	/* 421 */	NULL, /* filler */
+	/* 422 */	NULL, /* filler */
+	/* 423 */	NULL, /* filler */
+	/* 424 */	NULL, /* filler */
+	/* 425 */	NULL, /* filler */
+	/* 426 */	NULL, /* filler */
+	/* 427 */	NULL, /* filler */
+	/* 428 */	NULL, /* filler */
+	/* 429 */	NULL, /* filler */
+	/* 430 */	NULL, /* filler */
+	/* 431 */	NULL, /* filler */
+	/* 432 */	NULL, /* filler */
+	/* 433 */	NULL, /* filler */
+	/* 434 */	NULL, /* filler */
+	/* 435 */	NULL, /* filler */
+	/* 436 */	NULL, /* filler */
+	/* 437 */	NULL, /* filler */
+	/* 438 */	NULL, /* filler */
+	/* 439 */	NULL, /* filler */
+	/* 440 */	NULL, /* filler */
+	/* 441 */	NULL, /* filler */
+	/* 442 */	NULL, /* filler */
+	/* 443 */	NULL, /* filler */
+	/* 444 */	NULL, /* filler */
+	/* 445 */	NULL, /* filler */
+	/* 446 */	NULL, /* filler */
+	/* 447 */	NULL, /* filler */
+	/* 448 */	NULL, /* filler */
+	/* 449 */	NULL, /* filler */
+	/* 450 */	NULL, /* filler */
+	/* 451 */	NULL, /* filler */
+	/* 452 */	NULL, /* filler */
+	/* 453 */	NULL, /* filler */
+	/* 454 */	NULL, /* filler */
+	/* 455 */	NULL, /* filler */
+	/* 456 */	NULL, /* filler */
+	/* 457 */	NULL, /* filler */
+	/* 458 */	NULL, /* filler */
+	/* 459 */	NULL, /* filler */
+	/* 460 */	NULL, /* filler */
+	/* 461 */	NULL, /* filler */
+	/* 462 */	NULL, /* filler */
+	/* 463 */	NULL, /* filler */
+	/* 464 */	NULL, /* filler */
+	/* 465 */	NULL, /* filler */
+	/* 466 */	NULL, /* filler */
+	/* 467 */	NULL, /* filler */
+	/* 468 */	NULL, /* filler */
+	/* 469 */	NULL, /* filler */
+	/* 470 */	NULL, /* filler */
+	/* 471 */	NULL, /* filler */
+	/* 472 */	NULL, /* filler */
+	/* 473 */	NULL, /* filler */
+	/* 474 */	NULL, /* filler */
+	/* 475 */	NULL, /* filler */
+	/* 476 */	NULL, /* filler */
+	/* 477 */	NULL, /* filler */
+	/* 478 */	NULL, /* filler */
+	/* 479 */	NULL, /* filler */
+	/* 480 */	NULL, /* filler */
+	/* 481 */	NULL, /* filler */
+	/* 482 */	NULL, /* filler */
+	/* 483 */	NULL, /* filler */
+	/* 484 */	NULL, /* filler */
+	/* 485 */	NULL, /* filler */
+	/* 486 */	NULL, /* filler */
+	/* 487 */	NULL, /* filler */
+	/* 488 */	NULL, /* filler */
+	/* 489 */	NULL, /* filler */
+	/* 490 */	NULL, /* filler */
+	/* 491 */	NULL, /* filler */
+	/* 492 */	NULL, /* filler */
+	/* 493 */	NULL, /* filler */
+	/* 494 */	NULL, /* filler */
+	/* 495 */	NULL, /* filler */
+	/* 496 */	NULL, /* filler */
+	/* 497 */	NULL, /* filler */
+	/* 498 */	NULL, /* filler */
+	/* 499 */	NULL, /* filler */
+	/* 500 */	NULL, /* filler */
+	/* 501 */	NULL, /* filler */
+	/* 502 */	NULL, /* filler */
+	/* 503 */	NULL, /* filler */
+	/* 504 */	NULL, /* filler */
+	/* 505 */	NULL, /* filler */
+	/* 506 */	NULL, /* filler */
+	/* 507 */	NULL, /* filler */
+	/* 508 */	NULL, /* filler */
+	/* 509 */	NULL, /* filler */
+	/* 510 */	NULL, /* filler */
+	/* 511 */	NULL, /* filler */
+};
diff --git a/sys/compat/linux/arch/powerpc/linux_sysent.c b/sys/compat/linux/arch/powerpc/linux_sysent.c
index c9efd37..16b5133 100644
--- a/sys/compat/linux/arch/powerpc/linux_sysent.c
+++ b/sys/compat/linux/arch/powerpc/linux_sysent.c
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_sysent.c,v 1.70 2014/05/31 08:52:54 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.70 2014/05/31 08:52:54 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #include <sys/param.h>
 #include <sys/poll.h>
@@ -29,1033 +29,1033 @@ __KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.70 2014/05/31 08:52:54 njoly Exp
 
 struct sysent linux_sysent[] = {
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_nosys },	/* 0 = syscall */
+	    (sy_call_t *)linux_sys_nosys, 0, 0 },	/* 0 = syscall */
 	{ ns(struct linux_sys_exit_args), 0,
-	    (sy_call_t *)linux_sys_exit },	/* 1 = exit */
+	    (sy_call_t *)linux_sys_exit, 0, 0 },	/* 1 = exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct sys_read_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_read },		/* 3 = read */
+	    (sy_call_t *)sys_read, 0, 0 },		/* 3 = read */
 	{ ns(struct sys_write_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_write },		/* 4 = write */
+	    (sy_call_t *)sys_write, 0, 0 },		/* 4 = write */
 	{ ns(struct linux_sys_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_open },	/* 5 = open */
+	    (sy_call_t *)linux_sys_open, 0, 0 },	/* 5 = open */
 	{ ns(struct sys_close_args), 0,
-	    (sy_call_t *)sys_close },		/* 6 = close */
+	    (sy_call_t *)sys_close, 0, 0 },		/* 6 = close */
 	{ ns(struct linux_sys_waitpid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_waitpid },	/* 7 = waitpid */
+	    (sy_call_t *)linux_sys_waitpid, 0, 0 },	/* 7 = waitpid */
 	{ ns(struct linux_sys_creat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_creat },	/* 8 = creat */
+	    (sy_call_t *)linux_sys_creat, 0, 0 },	/* 8 = creat */
 	{ ns(struct sys_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_link },		/* 9 = link */
+	    (sy_call_t *)sys_link, 0, 0 },		/* 9 = link */
 	{ ns(struct linux_sys_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_unlink },	/* 10 = unlink */
+	    (sy_call_t *)linux_sys_unlink, 0, 0 },	/* 10 = unlink */
 	{ ns(struct sys_execve_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_execve },		/* 11 = execve */
+	    (sy_call_t *)sys_execve, 0, 0 },		/* 11 = execve */
 	{ ns(struct sys_chdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chdir },		/* 12 = chdir */
+	    (sy_call_t *)sys_chdir, 0, 0 },		/* 12 = chdir */
 	{ ns(struct linux_sys_time_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_time },	/* 13 = time */
+	    (sy_call_t *)linux_sys_time, 0, 0 },	/* 13 = time */
 	{ ns(struct linux_sys_mknod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mknod },	/* 14 = mknod */
+	    (sy_call_t *)linux_sys_mknod, 0, 0 },	/* 14 = mknod */
 	{ ns(struct sys_chmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chmod },		/* 15 = chmod */
+	    (sy_call_t *)sys_chmod, 0, 0 },		/* 15 = chmod */
 	{ ns(struct sys___posix_lchown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_lchown },	/* 16 = __posix_lchown */
+	    (sy_call_t *)sys___posix_lchown, 0, 0 },	/* 16 = __posix_lchown */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 17 = obsolete break */
+	    linux_sys_nosys, 0, 0 },			/* 17 = obsolete break */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 18 = obsolete ostat */
+	    linux_sys_nosys, 0, 0 },			/* 18 = obsolete ostat */
 	{ ns(struct compat_43_sys_lseek_args), 0,
-	    (sy_call_t *)compat_43_sys_lseek },	/* 19 = lseek */
+	    (sy_call_t *)compat_43_sys_lseek, 0, 0 },	/* 19 = lseek */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid },		/* 20 = getpid */
+	    (sy_call_t *)sys_getpid, 0, 0 },		/* 20 = getpid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 21 = unimplemented mount */
+	    linux_sys_nosys, 0, 0 },			/* 21 = unimplemented mount */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 22 = obsolete umount */
+	    linux_sys_nosys, 0, 0 },			/* 22 = obsolete umount */
 	{ ns(struct sys_setuid_args), 0,
-	    (sy_call_t *)sys_setuid },		/* 23 = setuid */
+	    (sy_call_t *)sys_setuid, 0, 0 },		/* 23 = setuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid },		/* 24 = getuid */
+	    (sy_call_t *)sys_getuid, 0, 0 },		/* 24 = getuid */
 	{ ns(struct linux_sys_stime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stime },	/* 25 = stime */
+	    (sy_call_t *)linux_sys_stime, 0, 0 },	/* 25 = stime */
 	{ ns(struct linux_sys_ptrace_args), 0,
-	    (sy_call_t *)linux_sys_ptrace },	/* 26 = ptrace */
+	    (sy_call_t *)linux_sys_ptrace, 0, 0 },	/* 26 = ptrace */
 	{ ns(struct linux_sys_alarm_args), 0,
-	    (sy_call_t *)linux_sys_alarm },	/* 27 = alarm */
+	    (sy_call_t *)linux_sys_alarm, 0, 0 },	/* 27 = alarm */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 28 = obsolete ofstat */
+	    linux_sys_nosys, 0, 0 },			/* 28 = obsolete ofstat */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_pause },	/* 29 = pause */
+	    (sy_call_t *)linux_sys_pause, 0, 0 },	/* 29 = pause */
 	{ ns(struct linux_sys_utime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_utime },	/* 30 = utime */
+	    (sy_call_t *)linux_sys_utime, 0, 0 },	/* 30 = utime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 31 = obsolete stty */
+	    linux_sys_nosys, 0, 0 },			/* 31 = obsolete stty */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 32 = obsolete gtty */
+	    linux_sys_nosys, 0, 0 },			/* 32 = obsolete gtty */
 	{ ns(struct sys_access_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_access },		/* 33 = access */
+	    (sy_call_t *)sys_access, 0, 0 },		/* 33 = access */
 	{ ns(struct linux_sys_nice_args), 0,
-	    (sy_call_t *)linux_sys_nice },	/* 34 = nice */
+	    (sy_call_t *)linux_sys_nice, 0, 0 },	/* 34 = nice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 35 = obsolete ftime */
+	    linux_sys_nosys, 0, 0 },			/* 35 = obsolete ftime */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct linux_sys_kill_args), 0,
-	    (sy_call_t *)linux_sys_kill },	/* 37 = kill */
+	    (sy_call_t *)linux_sys_kill, 0, 0 },	/* 37 = kill */
 	{ ns(struct sys___posix_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_rename },	/* 38 = __posix_rename */
+	    (sy_call_t *)sys___posix_rename, 0, 0 },	/* 38 = __posix_rename */
 	{ ns(struct sys_mkdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdir },		/* 39 = mkdir */
+	    (sy_call_t *)sys_mkdir, 0, 0 },		/* 39 = mkdir */
 	{ ns(struct sys_rmdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rmdir },		/* 40 = rmdir */
+	    (sy_call_t *)sys_rmdir, 0, 0 },		/* 40 = rmdir */
 	{ ns(struct sys_dup_args), 0,
-	    (sy_call_t *)sys_dup },		/* 41 = dup */
+	    (sy_call_t *)sys_dup, 0, 0 },		/* 41 = dup */
 	{ ns(struct linux_sys_pipe_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pipe },	/* 42 = pipe */
+	    (sy_call_t *)linux_sys_pipe, 0, 0 },	/* 42 = pipe */
 	{ ns(struct linux_sys_times_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_times },	/* 43 = times */
+	    (sy_call_t *)linux_sys_times, 0, 0 },	/* 43 = times */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 44 = obsolete prof */
+	    linux_sys_nosys, 0, 0 },			/* 44 = obsolete prof */
 	{ ns(struct linux_sys_brk_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_brk },	/* 45 = brk */
+	    (sy_call_t *)linux_sys_brk, 0, 0 },	/* 45 = brk */
 	{ ns(struct sys_setgid_args), 0,
-	    (sy_call_t *)sys_setgid },		/* 46 = setgid */
+	    (sy_call_t *)sys_setgid, 0, 0 },		/* 46 = setgid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid },		/* 47 = getgid */
+	    (sy_call_t *)sys_getgid, 0, 0 },		/* 47 = getgid */
 	{ ns(struct linux_sys_signal_args), 0,
-	    (sy_call_t *)linux_sys_signal },	/* 48 = signal */
+	    (sy_call_t *)linux_sys_signal, 0, 0 },	/* 48 = signal */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_geteuid },		/* 49 = geteuid */
+	    (sy_call_t *)sys_geteuid, 0, 0 },		/* 49 = geteuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getegid },		/* 50 = getegid */
+	    (sy_call_t *)sys_getegid, 0, 0 },		/* 50 = getegid */
 	{ ns(struct sys_acct_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_acct },		/* 51 = acct */
+	    (sy_call_t *)sys_acct, 0, 0 },		/* 51 = acct */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 52 = unimplemented umount */
+	    linux_sys_nosys, 0, 0 },			/* 52 = unimplemented umount */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 53 = obsolete lock */
+	    linux_sys_nosys, 0, 0 },			/* 53 = obsolete lock */
 	{ ns(struct linux_sys_ioctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ioctl },	/* 54 = ioctl */
+	    (sy_call_t *)linux_sys_ioctl, 0, 0 },	/* 54 = ioctl */
 	{ ns(struct linux_sys_fcntl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fcntl },	/* 55 = fcntl */
+	    (sy_call_t *)linux_sys_fcntl, 0, 0 },	/* 55 = fcntl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 56 = obsolete mpx */
+	    linux_sys_nosys, 0, 0 },			/* 56 = obsolete mpx */
 	{ ns(struct sys_setpgid_args), 0,
-	    (sy_call_t *)sys_setpgid },		/* 57 = setpgid */
+	    (sy_call_t *)sys_setpgid, 0, 0 },		/* 57 = setpgid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 58 = obsolete ulimit */
+	    linux_sys_nosys, 0, 0 },			/* 58 = obsolete ulimit */
 	{ ns(struct linux_sys_olduname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_olduname },	/* 59 = olduname */
+	    (sy_call_t *)linux_sys_olduname, 0, 0 },	/* 59 = olduname */
 	{ ns(struct sys_umask_args), 0,
-	    (sy_call_t *)sys_umask },		/* 60 = umask */
+	    (sy_call_t *)sys_umask, 0, 0 },		/* 60 = umask */
 	{ ns(struct sys_chroot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chroot },		/* 61 = chroot */
+	    (sy_call_t *)sys_chroot, 0, 0 },		/* 61 = chroot */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 62 = unimplemented ustat */
+	    linux_sys_nosys, 0, 0 },			/* 62 = unimplemented ustat */
 	{ ns(struct sys_dup2_args), 0,
-	    (sy_call_t *)sys_dup2 },		/* 63 = dup2 */
+	    (sy_call_t *)sys_dup2, 0, 0 },		/* 63 = dup2 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getppid },		/* 64 = getppid */
+	    (sy_call_t *)sys_getppid, 0, 0 },		/* 64 = getppid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpgrp },		/* 65 = getpgrp */
+	    (sy_call_t *)sys_getpgrp, 0, 0 },		/* 65 = getpgrp */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_setsid },		/* 66 = setsid */
+	    (sy_call_t *)sys_setsid, 0, 0 },		/* 66 = setsid */
 	{ ns(struct linux_sys_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigaction },	/* 67 = sigaction */
+	    (sy_call_t *)linux_sys_sigaction, 0, 0 },	/* 67 = sigaction */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_siggetmask },/* 68 = siggetmask */
+	    (sy_call_t *)linux_sys_siggetmask, 0, 0 },/* 68 = siggetmask */
 	{ ns(struct linux_sys_sigsetmask_args), 0,
-	    (sy_call_t *)linux_sys_sigsetmask },/* 69 = sigsetmask */
+	    (sy_call_t *)linux_sys_sigsetmask, 0, 0 },/* 69 = sigsetmask */
 	{ ns(struct sys_setreuid_args), 0,
-	    (sy_call_t *)sys_setreuid },	/* 70 = setreuid */
+	    (sy_call_t *)sys_setreuid, 0, 0 },	/* 70 = setreuid */
 	{ ns(struct sys_setregid_args), 0,
-	    (sy_call_t *)sys_setregid },	/* 71 = setregid */
+	    (sy_call_t *)sys_setregid, 0, 0 },	/* 71 = setregid */
 	{ ns(struct linux_sys_sigsuspend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigsuspend },/* 72 = sigsuspend */
+	    (sy_call_t *)linux_sys_sigsuspend, 0, 0 },/* 72 = sigsuspend */
 	{ ns(struct linux_sys_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigpending },/* 73 = sigpending */
+	    (sy_call_t *)linux_sys_sigpending, 0, 0 },/* 73 = sigpending */
 	{ ns(struct compat_43_sys_sethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sethostname },/* 74 = sethostname */
+	    (sy_call_t *)compat_43_sys_sethostname, 0, 0 },/* 74 = sethostname */
 	{ ns(struct linux_sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setrlimit },	/* 75 = setrlimit */
+	    (sy_call_t *)linux_sys_setrlimit, 0, 0 },	/* 75 = setrlimit */
 	{ ns(struct linux_sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getrlimit },	/* 76 = getrlimit */
+	    (sy_call_t *)linux_sys_getrlimit, 0, 0 },	/* 76 = getrlimit */
 	{ ns(struct compat_50_sys_getrusage_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getrusage },/* 77 = getrusage */
+	    (sy_call_t *)compat_50_sys_getrusage, 0, 0 },/* 77 = getrusage */
 	{ ns(struct linux_sys_gettimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_gettimeofday },/* 78 = gettimeofday */
+	    (sy_call_t *)linux_sys_gettimeofday, 0, 0 },/* 78 = gettimeofday */
 	{ ns(struct linux_sys_settimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_settimeofday },/* 79 = settimeofday */
+	    (sy_call_t *)linux_sys_settimeofday, 0, 0 },/* 79 = settimeofday */
 	{ ns(struct sys_getgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getgroups },	/* 80 = getgroups */
+	    (sy_call_t *)sys_getgroups, 0, 0 },	/* 80 = getgroups */
 	{ ns(struct sys_setgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setgroups },	/* 81 = setgroups */
+	    (sy_call_t *)sys_setgroups, 0, 0 },	/* 81 = setgroups */
 	{ ns(struct linux_sys_select_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_select },	/* 82 = select */
+	    (sy_call_t *)linux_sys_select, 0, 0 },	/* 82 = select */
 	{ ns(struct sys_symlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlink },		/* 83 = symlink */
+	    (sy_call_t *)sys_symlink, 0, 0 },		/* 83 = symlink */
 	{ ns(struct compat_43_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_lstat },	/* 84 = oolstat */
+	    (sy_call_t *)compat_43_sys_lstat, 0, 0 },	/* 84 = oolstat */
 	{ ns(struct sys_readlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlink },	/* 85 = readlink */
+	    (sy_call_t *)sys_readlink, 0, 0 },	/* 85 = readlink */
 #ifdef EXEC_AOUT
 	{ ns(struct linux_sys_uselib_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_uselib },	/* 86 = uselib */
+	    (sy_call_t *)linux_sys_uselib, 0, 0 },	/* 86 = uselib */
 #else
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 86 = unimplemented sys_uselib */
+	    linux_sys_nosys, 0, 0 },			/* 86 = unimplemented sys_uselib */
 #endif
 	{ ns(struct linux_sys_swapon_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_swapon },	/* 87 = swapon */
+	    (sy_call_t *)linux_sys_swapon, 0, 0 },	/* 87 = swapon */
 	{ ns(struct linux_sys_reboot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_reboot },	/* 88 = reboot */
+	    (sy_call_t *)linux_sys_reboot, 0, 0 },	/* 88 = reboot */
 	{ ns(struct linux_sys_readdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_readdir },	/* 89 = readdir */
+	    (sy_call_t *)linux_sys_readdir, 0, 0 },	/* 89 = readdir */
 	{ ns(struct linux_sys_mmap_args), 0,
-	    (sy_call_t *)linux_sys_mmap },	/* 90 = mmap */
+	    (sy_call_t *)linux_sys_mmap, 0, 0 },	/* 90 = mmap */
 	{ ns(struct sys_munmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munmap },		/* 91 = munmap */
+	    (sy_call_t *)sys_munmap, 0, 0 },		/* 91 = munmap */
 	{ ns(struct compat_43_sys_truncate_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_truncate },/* 92 = truncate */
+	    (sy_call_t *)compat_43_sys_truncate, 0, 0 },/* 92 = truncate */
 	{ ns(struct compat_43_sys_ftruncate_args), 0,
-	    (sy_call_t *)compat_43_sys_ftruncate },/* 93 = ftruncate */
+	    (sy_call_t *)compat_43_sys_ftruncate, 0, 0 },/* 93 = ftruncate */
 	{ ns(struct sys_fchmod_args), 0,
-	    (sy_call_t *)sys_fchmod },		/* 94 = fchmod */
+	    (sy_call_t *)sys_fchmod, 0, 0 },		/* 94 = fchmod */
 	{ ns(struct sys___posix_fchown_args), 0,
-	    (sy_call_t *)sys___posix_fchown },	/* 95 = __posix_fchown */
+	    (sy_call_t *)sys___posix_fchown, 0, 0 },	/* 95 = __posix_fchown */
 	{ ns(struct linux_sys_getpriority_args), 0,
-	    (sy_call_t *)linux_sys_getpriority },/* 96 = getpriority */
+	    (sy_call_t *)linux_sys_getpriority, 0, 0 },/* 96 = getpriority */
 	{ ns(struct sys_setpriority_args), 0,
-	    (sy_call_t *)sys_setpriority },	/* 97 = setpriority */
+	    (sy_call_t *)sys_setpriority, 0, 0 },	/* 97 = setpriority */
 	{ ns(struct sys_profil_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_profil },		/* 98 = profil */
+	    (sy_call_t *)sys_profil, 0, 0 },		/* 98 = profil */
 	{ ns(struct linux_sys_statfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_statfs },	/* 99 = statfs */
+	    (sy_call_t *)linux_sys_statfs, 0, 0 },	/* 99 = statfs */
 	{ ns(struct linux_sys_fstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatfs },	/* 100 = fstatfs */
+	    (sy_call_t *)linux_sys_fstatfs, 0, 0 },	/* 100 = fstatfs */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 101 = unimplemented ioperm */
+	    linux_sys_nosys, 0, 0 },			/* 101 = unimplemented ioperm */
 	{ ns(struct linux_sys_socketcall_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_socketcall },/* 102 = socketcall */
+	    (sy_call_t *)linux_sys_socketcall, 0, 0 },/* 102 = socketcall */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 103 = unimplemented syslog */
+	    linux_sys_nosys, 0, 0 },			/* 103 = unimplemented syslog */
 	{ ns(struct compat_50_sys_setitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_setitimer },/* 104 = setitimer */
+	    (sy_call_t *)compat_50_sys_setitimer, 0, 0 },/* 104 = setitimer */
 	{ ns(struct compat_50_sys_getitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getitimer },/* 105 = getitimer */
+	    (sy_call_t *)compat_50_sys_getitimer, 0, 0 },/* 105 = getitimer */
 	{ ns(struct linux_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stat },	/* 106 = stat */
+	    (sy_call_t *)linux_sys_stat, 0, 0 },	/* 106 = stat */
 	{ ns(struct linux_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lstat },	/* 107 = lstat */
+	    (sy_call_t *)linux_sys_lstat, 0, 0 },	/* 107 = lstat */
 	{ ns(struct linux_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstat },	/* 108 = fstat */
+	    (sy_call_t *)linux_sys_fstat, 0, 0 },	/* 108 = fstat */
 	{ ns(struct linux_sys_uname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_uname },	/* 109 = uname */
+	    (sy_call_t *)linux_sys_uname, 0, 0 },	/* 109 = uname */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 110 = unimplemented iopl */
+	    linux_sys_nosys, 0, 0 },			/* 110 = unimplemented iopl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 111 = unimplemented vhangup */
+	    linux_sys_nosys, 0, 0 },			/* 111 = unimplemented vhangup */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 112 = unimplemented idle */
+	    linux_sys_nosys, 0, 0 },			/* 112 = unimplemented idle */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 113 = unimplemented vm86old */
+	    linux_sys_nosys, 0, 0 },			/* 113 = unimplemented vm86old */
 	{ ns(struct linux_sys_wait4_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_wait4 },	/* 114 = wait4 */
+	    (sy_call_t *)linux_sys_wait4, 0, 0 },	/* 114 = wait4 */
 	{ ns(struct linux_sys_swapoff_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_swapoff },	/* 115 = swapoff */
+	    (sy_call_t *)linux_sys_swapoff, 0, 0 },	/* 115 = swapoff */
 	{ ns(struct linux_sys_sysinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sysinfo },	/* 116 = sysinfo */
+	    (sy_call_t *)linux_sys_sysinfo, 0, 0 },	/* 116 = sysinfo */
 	{ ns(struct linux_sys_ipc_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ipc },	/* 117 = ipc */
+	    (sy_call_t *)linux_sys_ipc, 0, 0 },	/* 117 = ipc */
 	{ ns(struct sys_fsync_args), 0,
-	    (sy_call_t *)sys_fsync },		/* 118 = fsync */
+	    (sy_call_t *)sys_fsync, 0, 0 },		/* 118 = fsync */
 	{ ns(struct linux_sys_sigreturn_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigreturn },	/* 119 = sigreturn */
+	    (sy_call_t *)linux_sys_sigreturn, 0, 0 },	/* 119 = sigreturn */
 	{ ns(struct linux_sys_clone_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clone },	/* 120 = clone */
+	    (sy_call_t *)linux_sys_clone, 0, 0 },	/* 120 = clone */
 	{ ns(struct linux_sys_setdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setdomainname },/* 121 = setdomainname */
+	    (sy_call_t *)linux_sys_setdomainname, 0, 0 },/* 121 = setdomainname */
 	{ ns(struct linux_sys_new_uname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_new_uname },	/* 122 = new_uname */
+	    (sy_call_t *)linux_sys_new_uname, 0, 0 },	/* 122 = new_uname */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 123 = unimplemented modify_ldt */
+	    linux_sys_nosys, 0, 0 },			/* 123 = unimplemented modify_ldt */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 124 = unimplemented adjtimex */
+	    linux_sys_nosys, 0, 0 },			/* 124 = unimplemented adjtimex */
 	{ ns(struct linux_sys_mprotect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mprotect },	/* 125 = mprotect */
+	    (sy_call_t *)linux_sys_mprotect, 0, 0 },	/* 125 = mprotect */
 	{ ns(struct linux_sys_sigprocmask_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigprocmask },/* 126 = sigprocmask */
+	    (sy_call_t *)linux_sys_sigprocmask, 0, 0 },/* 126 = sigprocmask */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 127 = unimplemented create_module */
+	    linux_sys_nosys, 0, 0 },			/* 127 = unimplemented create_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 128 = unimplemented init_module */
+	    linux_sys_nosys, 0, 0 },			/* 128 = unimplemented init_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 129 = unimplemented delete_module */
+	    linux_sys_nosys, 0, 0 },			/* 129 = unimplemented delete_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 130 = unimplemented get_kernel_syms */
+	    linux_sys_nosys, 0, 0 },			/* 130 = unimplemented get_kernel_syms */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 131 = unimplemented quotactl */
+	    linux_sys_nosys, 0, 0 },			/* 131 = unimplemented quotactl */
 	{ ns(struct sys_getpgid_args), 0,
-	    (sy_call_t *)sys_getpgid },		/* 132 = getpgid */
+	    (sy_call_t *)sys_getpgid, 0, 0 },		/* 132 = getpgid */
 	{ ns(struct sys_fchdir_args), 0,
-	    (sy_call_t *)sys_fchdir },		/* 133 = fchdir */
+	    (sy_call_t *)sys_fchdir, 0, 0 },		/* 133 = fchdir */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 134 = unimplemented bdflush */
+	    linux_sys_nosys, 0, 0 },			/* 134 = unimplemented bdflush */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 135 = unimplemented sysfs */
+	    linux_sys_nosys, 0, 0 },			/* 135 = unimplemented sysfs */
 	{ ns(struct linux_sys_personality_args), 0,
-	    (sy_call_t *)linux_sys_personality },/* 136 = personality */
+	    (sy_call_t *)linux_sys_personality, 0, 0 },/* 136 = personality */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 137 = unimplemented afs_syscall */
+	    linux_sys_nosys, 0, 0 },			/* 137 = unimplemented afs_syscall */
 	{ ns(struct linux_sys_setfsuid_args), 0,
-	    (sy_call_t *)linux_sys_setfsuid },	/* 138 = setfsuid */
+	    (sy_call_t *)linux_sys_setfsuid, 0, 0 },	/* 138 = setfsuid */
 	{ ns(struct linux_sys_setfsgid_args), 0,
-	    (sy_call_t *)linux_sys_setfsgid },	/* 139 = setfsgid */
+	    (sy_call_t *)linux_sys_setfsgid, 0, 0 },	/* 139 = setfsgid */
 	{ ns(struct linux_sys_llseek_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_llseek },	/* 140 = llseek */
+	    (sy_call_t *)linux_sys_llseek, 0, 0 },	/* 140 = llseek */
 	{ ns(struct linux_sys_getdents_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getdents },	/* 141 = getdents */
+	    (sy_call_t *)linux_sys_getdents, 0, 0 },	/* 141 = getdents */
 	{ ns(struct linux_sys_new_select_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_new_select },/* 142 = new_select */
+	    (sy_call_t *)linux_sys_new_select, 0, 0 },/* 142 = new_select */
 	{ ns(struct sys_flock_args), 0,
-	    (sy_call_t *)sys_flock },		/* 143 = flock */
+	    (sy_call_t *)sys_flock, 0, 0 },		/* 143 = flock */
 	{ ns(struct sys___msync13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___msync13 },	/* 144 = __msync13 */
+	    (sy_call_t *)sys___msync13, 0, 0 },	/* 144 = __msync13 */
 	{ ns(struct sys_readv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readv },		/* 145 = readv */
+	    (sy_call_t *)sys_readv, 0, 0 },		/* 145 = readv */
 	{ ns(struct sys_writev_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_writev },		/* 146 = writev */
+	    (sy_call_t *)sys_writev, 0, 0 },		/* 146 = writev */
 	{ ns(struct sys_getsid_args), 0,
-	    (sy_call_t *)sys_getsid },		/* 147 = getsid */
+	    (sy_call_t *)sys_getsid, 0, 0 },		/* 147 = getsid */
 	{ ns(struct linux_sys_fdatasync_args), 0,
-	    (sy_call_t *)linux_sys_fdatasync },	/* 148 = fdatasync */
+	    (sy_call_t *)linux_sys_fdatasync, 0, 0 },	/* 148 = fdatasync */
 	{ ns(struct linux_sys___sysctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys___sysctl },	/* 149 = __sysctl */
+	    (sy_call_t *)linux_sys___sysctl, 0, 0 },	/* 149 = __sysctl */
 	{ ns(struct sys_mlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mlock },		/* 150 = mlock */
+	    (sy_call_t *)sys_mlock, 0, 0 },		/* 150 = mlock */
 	{ ns(struct sys_munlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munlock },		/* 151 = munlock */
+	    (sy_call_t *)sys_munlock, 0, 0 },		/* 151 = munlock */
 	{ ns(struct sys_mlockall_args), 0,
-	    (sy_call_t *)sys_mlockall },	/* 152 = mlockall */
+	    (sy_call_t *)sys_mlockall, 0, 0 },	/* 152 = mlockall */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_munlockall },	/* 153 = munlockall */
+	    (sy_call_t *)sys_munlockall, 0, 0 },	/* 153 = munlockall */
 	{ ns(struct linux_sys_sched_setparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setparam },/* 154 = sched_setparam */
+	    (sy_call_t *)linux_sys_sched_setparam, 0, 0 },/* 154 = sched_setparam */
 	{ ns(struct linux_sys_sched_getparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_getparam },/* 155 = sched_getparam */
+	    (sy_call_t *)linux_sys_sched_getparam, 0, 0 },/* 155 = sched_getparam */
 	{ ns(struct linux_sys_sched_setscheduler_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setscheduler },/* 156 = sched_setscheduler */
+	    (sy_call_t *)linux_sys_sched_setscheduler, 0, 0 },/* 156 = sched_setscheduler */
 	{ ns(struct linux_sys_sched_getscheduler_args), 0,
-	    (sy_call_t *)linux_sys_sched_getscheduler },/* 157 = sched_getscheduler */
+	    (sy_call_t *)linux_sys_sched_getscheduler, 0, 0 },/* 157 = sched_getscheduler */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_sched_yield },/* 158 = sched_yield */
+	    (sy_call_t *)linux_sys_sched_yield, 0, 0 },/* 158 = sched_yield */
 	{ ns(struct linux_sys_sched_get_priority_max_args), 0,
-	    (sy_call_t *)linux_sys_sched_get_priority_max },/* 159 = sched_get_priority_max */
+	    (sy_call_t *)linux_sys_sched_get_priority_max, 0, 0 },/* 159 = sched_get_priority_max */
 	{ ns(struct linux_sys_sched_get_priority_min_args), 0,
-	    (sy_call_t *)linux_sys_sched_get_priority_min },/* 160 = sched_get_priority_min */
+	    (sy_call_t *)linux_sys_sched_get_priority_min, 0, 0 },/* 160 = sched_get_priority_min */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 161 = unimplemented sched_rr_get_interval */
+	    linux_sys_nosys, 0, 0 },			/* 161 = unimplemented sched_rr_get_interval */
 	{ ns(struct linux_sys_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_nanosleep },	/* 162 = nanosleep */
+	    (sy_call_t *)linux_sys_nanosleep, 0, 0 },	/* 162 = nanosleep */
 	{ ns(struct linux_sys_mremap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mremap },	/* 163 = mremap */
+	    (sy_call_t *)linux_sys_mremap, 0, 0 },	/* 163 = mremap */
 	{ ns(struct linux_sys_setresuid_args), 0,
-	    (sy_call_t *)linux_sys_setresuid },	/* 164 = setresuid */
+	    (sy_call_t *)linux_sys_setresuid, 0, 0 },	/* 164 = setresuid */
 	{ ns(struct linux_sys_getresuid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresuid },	/* 165 = getresuid */
+	    (sy_call_t *)linux_sys_getresuid, 0, 0 },	/* 165 = getresuid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 166 = unimplemented query_module */
+	    linux_sys_nosys, 0, 0 },			/* 166 = unimplemented query_module */
 	{ ns(struct sys_poll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_poll },		/* 167 = poll */
+	    (sy_call_t *)sys_poll, 0, 0 },		/* 167 = poll */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 168 = unimplemented nfsservctl */
+	    linux_sys_nosys, 0, 0 },			/* 168 = unimplemented nfsservctl */
 	{ ns(struct linux_sys_setresgid_args), 0,
-	    (sy_call_t *)linux_sys_setresgid },	/* 169 = setresgid */
+	    (sy_call_t *)linux_sys_setresgid, 0, 0 },	/* 169 = setresgid */
 	{ ns(struct linux_sys_getresgid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getresgid },	/* 170 = getresgid */
+	    (sy_call_t *)linux_sys_getresgid, 0, 0 },	/* 170 = getresgid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 171 = unimplemented prctl */
+	    linux_sys_nosys, 0, 0 },			/* 171 = unimplemented prctl */
 	{ ns(struct linux_sys_rt_sigreturn_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigreturn },/* 172 = rt_sigreturn */
+	    (sy_call_t *)linux_sys_rt_sigreturn, 0, 0 },/* 172 = rt_sigreturn */
 	{ ns(struct linux_sys_rt_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigaction },/* 173 = rt_sigaction */
+	    (sy_call_t *)linux_sys_rt_sigaction, 0, 0 },/* 173 = rt_sigaction */
 	{ ns(struct linux_sys_rt_sigprocmask_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigprocmask },/* 174 = rt_sigprocmask */
+	    (sy_call_t *)linux_sys_rt_sigprocmask, 0, 0 },/* 174 = rt_sigprocmask */
 	{ ns(struct linux_sys_rt_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigpending },/* 175 = rt_sigpending */
+	    (sy_call_t *)linux_sys_rt_sigpending, 0, 0 },/* 175 = rt_sigpending */
 	{ ns(struct linux_sys_rt_sigtimedwait_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigtimedwait },/* 176 = rt_sigtimedwait */
+	    (sy_call_t *)linux_sys_rt_sigtimedwait, 0, 0 },/* 176 = rt_sigtimedwait */
 	{ ns(struct linux_sys_rt_queueinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_queueinfo },/* 177 = rt_queueinfo */
+	    (sy_call_t *)linux_sys_rt_queueinfo, 0, 0 },/* 177 = rt_queueinfo */
 	{ ns(struct linux_sys_rt_sigsuspend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_rt_sigsuspend },/* 178 = rt_sigsuspend */
+	    (sy_call_t *)linux_sys_rt_sigsuspend, 0, 0 },/* 178 = rt_sigsuspend */
 	{ ns(struct linux_sys_pread_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG3_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pread },	/* 179 = pread */
+	    (sy_call_t *)linux_sys_pread, 0, 0 },	/* 179 = pread */
 	{ ns(struct linux_sys_pwrite_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG3_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pwrite },	/* 180 = pwrite */
+	    (sy_call_t *)linux_sys_pwrite, 0, 0 },	/* 180 = pwrite */
 	{ ns(struct sys___posix_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_chown },	/* 181 = __posix_chown */
+	    (sy_call_t *)sys___posix_chown, 0, 0 },	/* 181 = __posix_chown */
 	{ ns(struct sys___getcwd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getcwd },	/* 182 = __getcwd */
+	    (sy_call_t *)sys___getcwd, 0, 0 },	/* 182 = __getcwd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 183 = unimplemented capget */
+	    linux_sys_nosys, 0, 0 },			/* 183 = unimplemented capget */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 184 = unimplemented capset */
+	    linux_sys_nosys, 0, 0 },			/* 184 = unimplemented capset */
 	{ ns(struct linux_sys_sigaltstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sigaltstack },/* 185 = sigaltstack */
+	    (sy_call_t *)linux_sys_sigaltstack, 0, 0 },/* 185 = sigaltstack */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 186 = unimplemented sendfile */
+	    linux_sys_nosys, 0, 0 },			/* 186 = unimplemented sendfile */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 187 = unimplemented getpmsg */
+	    linux_sys_nosys, 0, 0 },			/* 187 = unimplemented getpmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 188 = unimplemented putpmsg */
+	    linux_sys_nosys, 0, 0 },			/* 188 = unimplemented putpmsg */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys___vfork14 },	/* 189 = __vfork14 */
+	    (sy_call_t *)sys___vfork14, 0, 0 },	/* 189 = __vfork14 */
 	{ ns(struct linux_sys_ugetrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ugetrlimit },/* 190 = ugetrlimit */
+	    (sy_call_t *)linux_sys_ugetrlimit, 0, 0 },/* 190 = ugetrlimit */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 191 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 191 = unimplemented / * unused * / */
 #define linux_sys_mmap2_args linux_sys_mmap_args
 	{ ns(struct linux_sys_mmap2_args), 0,
-	    (sy_call_t *)linux_sys_mmap2 },	/* 192 = mmap2 */
+	    (sy_call_t *)linux_sys_mmap2, 0, 0 },	/* 192 = mmap2 */
 	{ ns(struct linux_sys_truncate64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_truncate64 },/* 193 = truncate64 */
+	    (sy_call_t *)linux_sys_truncate64, 0, 0 },/* 193 = truncate64 */
 	{ ns(struct linux_sys_ftruncate64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64,
-	    (sy_call_t *)linux_sys_ftruncate64 },/* 194 = ftruncate64 */
+	    (sy_call_t *)linux_sys_ftruncate64, 0, 0 },/* 194 = ftruncate64 */
 	{ ns(struct linux_sys_stat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_stat64 },	/* 195 = stat64 */
+	    (sy_call_t *)linux_sys_stat64, 0, 0 },	/* 195 = stat64 */
 	{ ns(struct linux_sys_lstat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lstat64 },	/* 196 = lstat64 */
+	    (sy_call_t *)linux_sys_lstat64, 0, 0 },	/* 196 = lstat64 */
 	{ ns(struct linux_sys_fstat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstat64 },	/* 197 = fstat64 */
+	    (sy_call_t *)linux_sys_fstat64, 0, 0 },	/* 197 = fstat64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 198 = unimplemented sys_pciconfig_read */
+	    linux_sys_nosys, 0, 0 },			/* 198 = unimplemented sys_pciconfig_read */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 199 = unimplemented sys_pciconfig_write */
+	    linux_sys_nosys, 0, 0 },			/* 199 = unimplemented sys_pciconfig_write */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 200 = unimplemented sys_pciconfig_iobase */
+	    linux_sys_nosys, 0, 0 },			/* 200 = unimplemented sys_pciconfig_iobase */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 201 = unimplemented / * Unused ( MacOnLinux project ) * / */
+	    linux_sys_nosys, 0, 0 },			/* 201 = unimplemented / * Unused ( MacOnLinux project ) * / */
 	{ ns(struct linux_sys_getdents64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getdents64 },/* 202 = getdents64 */
+	    (sy_call_t *)linux_sys_getdents64, 0, 0 },/* 202 = getdents64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 203 = unimplemented pivot_root */
+	    linux_sys_nosys, 0, 0 },			/* 203 = unimplemented pivot_root */
 	{ ns(struct linux_sys_fcntl64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fcntl64 },	/* 204 = fcntl64 */
+	    (sy_call_t *)linux_sys_fcntl64, 0, 0 },	/* 204 = fcntl64 */
 	{ ns(struct sys_mincore_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mincore },		/* 205 = mincore */
+	    (sy_call_t *)sys_mincore, 0, 0 },		/* 205 = mincore */
 	{ ns(struct sys_madvise_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_madvise },		/* 206 = madvise */
+	    (sy_call_t *)sys_madvise, 0, 0 },		/* 206 = madvise */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_gettid },	/* 207 = gettid */
+	    (sy_call_t *)linux_sys_gettid, 0, 0 },	/* 207 = gettid */
 	{ ns(struct linux_sys_tkill_args), 0,
-	    (sy_call_t *)linux_sys_tkill },	/* 208 = tkill */
+	    (sy_call_t *)linux_sys_tkill, 0, 0 },	/* 208 = tkill */
 	{ ns(struct linux_sys_setxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_setxattr },	/* 209 = setxattr */
+	    (sy_call_t *)linux_sys_setxattr, 0, 0 },	/* 209 = setxattr */
 	{ ns(struct linux_sys_lsetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lsetxattr },	/* 210 = lsetxattr */
+	    (sy_call_t *)linux_sys_lsetxattr, 0, 0 },	/* 210 = lsetxattr */
 	{ ns(struct linux_sys_fsetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fsetxattr },	/* 211 = fsetxattr */
+	    (sy_call_t *)linux_sys_fsetxattr, 0, 0 },	/* 211 = fsetxattr */
 	{ ns(struct linux_sys_getxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_getxattr },	/* 212 = getxattr */
+	    (sy_call_t *)linux_sys_getxattr, 0, 0 },	/* 212 = getxattr */
 	{ ns(struct linux_sys_lgetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lgetxattr },	/* 213 = lgetxattr */
+	    (sy_call_t *)linux_sys_lgetxattr, 0, 0 },	/* 213 = lgetxattr */
 	{ ns(struct linux_sys_fgetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fgetxattr },	/* 214 = fgetxattr */
+	    (sy_call_t *)linux_sys_fgetxattr, 0, 0 },	/* 214 = fgetxattr */
 	{ ns(struct linux_sys_listxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_listxattr },	/* 215 = listxattr */
+	    (sy_call_t *)linux_sys_listxattr, 0, 0 },	/* 215 = listxattr */
 	{ ns(struct linux_sys_llistxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_llistxattr },/* 216 = llistxattr */
+	    (sy_call_t *)linux_sys_llistxattr, 0, 0 },/* 216 = llistxattr */
 	{ ns(struct linux_sys_flistxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_flistxattr },/* 217 = flistxattr */
+	    (sy_call_t *)linux_sys_flistxattr, 0, 0 },/* 217 = flistxattr */
 	{ ns(struct linux_sys_removexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_removexattr },/* 218 = removexattr */
+	    (sy_call_t *)linux_sys_removexattr, 0, 0 },/* 218 = removexattr */
 	{ ns(struct linux_sys_lremovexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_lremovexattr },/* 219 = lremovexattr */
+	    (sy_call_t *)linux_sys_lremovexattr, 0, 0 },/* 219 = lremovexattr */
 	{ ns(struct linux_sys_fremovexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fremovexattr },/* 220 = fremovexattr */
+	    (sy_call_t *)linux_sys_fremovexattr, 0, 0 },/* 220 = fremovexattr */
 	{ ns(struct linux_sys_futex_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_futex },	/* 221 = futex */
+	    (sy_call_t *)linux_sys_futex, 0, 0 },	/* 221 = futex */
 	{ ns(struct linux_sys_sched_setaffinity_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_setaffinity },/* 222 = sched_setaffinity */
+	    (sy_call_t *)linux_sys_sched_setaffinity, 0, 0 },/* 222 = sched_setaffinity */
 	{ ns(struct linux_sys_sched_getaffinity_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_sched_getaffinity },/* 223 = sched_getaffinity */
+	    (sy_call_t *)linux_sys_sched_getaffinity, 0, 0 },/* 223 = sched_getaffinity */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 224 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 224 = unimplemented / * unused * / */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 225 = unimplemented tuxcall */
+	    linux_sys_nosys, 0, 0 },			/* 225 = unimplemented tuxcall */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 226 = unimplemented sendfile64 */
+	    linux_sys_nosys, 0, 0 },			/* 226 = unimplemented sendfile64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 227 = unimplemented io_setup */
+	    linux_sys_nosys, 0, 0 },			/* 227 = unimplemented io_setup */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 228 = unimplemented io_destroy */
+	    linux_sys_nosys, 0, 0 },			/* 228 = unimplemented io_destroy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 229 = unimplemented io_getevents */
+	    linux_sys_nosys, 0, 0 },			/* 229 = unimplemented io_getevents */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 230 = unimplemented io_submit */
+	    linux_sys_nosys, 0, 0 },			/* 230 = unimplemented io_submit */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 231 = unimplemented io_cancel */
+	    linux_sys_nosys, 0, 0 },			/* 231 = unimplemented io_cancel */
 	{ ns(struct linux_sys_set_tid_address_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_tid_address },/* 232 = set_tid_address */
+	    (sy_call_t *)linux_sys_set_tid_address, 0, 0 },/* 232 = set_tid_address */
 	{ ns(struct linux_sys_fadvise64_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64,
-	    (sy_call_t *)linux_sys_fadvise64 },	/* 233 = fadvise64 */
+	    (sy_call_t *)linux_sys_fadvise64, 0, 0 },	/* 233 = fadvise64 */
 	{ ns(struct linux_sys_exit_group_args), 0,
-	    (sy_call_t *)linux_sys_exit_group },/* 234 = exit_group */
+	    (sy_call_t *)linux_sys_exit_group, 0, 0 },/* 234 = exit_group */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 235 = unimplemented lookup_dcookie */
+	    linux_sys_nosys, 0, 0 },			/* 235 = unimplemented lookup_dcookie */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 236 = unimplemented epoll_create */
+	    linux_sys_nosys, 0, 0 },			/* 236 = unimplemented epoll_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 237 = unimplemented epoll_ctl */
+	    linux_sys_nosys, 0, 0 },			/* 237 = unimplemented epoll_ctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 238 = unimplemented epoll_wait */
+	    linux_sys_nosys, 0, 0 },			/* 238 = unimplemented epoll_wait */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 239 = unimplemented remap_file_pages */
+	    linux_sys_nosys, 0, 0 },			/* 239 = unimplemented remap_file_pages */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 240 = unimplemented timer_create */
+	    linux_sys_nosys, 0, 0 },			/* 240 = unimplemented timer_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 241 = unimplemented timer_settime */
+	    linux_sys_nosys, 0, 0 },			/* 241 = unimplemented timer_settime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 242 = unimplemented timer_gettime */
+	    linux_sys_nosys, 0, 0 },			/* 242 = unimplemented timer_gettime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 243 = unimplemented timer_getoverrun */
+	    linux_sys_nosys, 0, 0 },			/* 243 = unimplemented timer_getoverrun */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 244 = unimplemented timer_delete */
+	    linux_sys_nosys, 0, 0 },			/* 244 = unimplemented timer_delete */
 	{ ns(struct linux_sys_clock_settime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_settime },/* 245 = clock_settime */
+	    (sy_call_t *)linux_sys_clock_settime, 0, 0 },/* 245 = clock_settime */
 	{ ns(struct linux_sys_clock_gettime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_gettime },/* 246 = clock_gettime */
+	    (sy_call_t *)linux_sys_clock_gettime, 0, 0 },/* 246 = clock_gettime */
 	{ ns(struct linux_sys_clock_getres_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_getres },/* 247 = clock_getres */
+	    (sy_call_t *)linux_sys_clock_getres, 0, 0 },/* 247 = clock_getres */
 	{ ns(struct linux_sys_clock_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_clock_nanosleep },/* 248 = clock_nanosleep */
+	    (sy_call_t *)linux_sys_clock_nanosleep, 0, 0 },/* 248 = clock_nanosleep */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 249 = unimplemented swapcontext */
+	    linux_sys_nosys, 0, 0 },			/* 249 = unimplemented swapcontext */
 	{ ns(struct linux_sys_tgkill_args), 0,
-	    (sy_call_t *)linux_sys_tgkill },	/* 250 = tgkill */
+	    (sy_call_t *)linux_sys_tgkill, 0, 0 },	/* 250 = tgkill */
 	{ ns(struct compat_50_sys_utimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_utimes },/* 251 = utimes */
+	    (sy_call_t *)compat_50_sys_utimes, 0, 0 },/* 251 = utimes */
 	{ ns(struct linux_sys_statfs64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_statfs64 },	/* 252 = statfs64 */
+	    (sy_call_t *)linux_sys_statfs64, 0, 0 },	/* 252 = statfs64 */
 	{ ns(struct linux_sys_fstatfs64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatfs64 },	/* 253 = fstatfs64 */
+	    (sy_call_t *)linux_sys_fstatfs64, 0, 0 },	/* 253 = fstatfs64 */
 	{ ns(struct linux_sys_fadvise64_64_args), SYCALL_NARGS64_VAL(2) | SYCALL_ARG2_64 | SYCALL_ARG1_64,
-	    (sy_call_t *)linux_sys_fadvise64_64 },/* 254 = fadvise64_64 */
+	    (sy_call_t *)linux_sys_fadvise64_64, 0, 0 },/* 254 = fadvise64_64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 255 = unimplemented rtas */
+	    linux_sys_nosys, 0, 0 },			/* 255 = unimplemented rtas */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 256 = unimplemented / * reserved for sys_debug_setcontext * / */
+	    linux_sys_nosys, 0, 0 },			/* 256 = unimplemented / * reserved for sys_debug_setcontext * / */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 257 = unimplemented / * reserved for vserver * / */
+	    linux_sys_nosys, 0, 0 },			/* 257 = unimplemented / * reserved for vserver * / */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 258 = unimplemented / * reserved for new sys_remap_file_pages * / */
+	    linux_sys_nosys, 0, 0 },			/* 258 = unimplemented / * reserved for new sys_remap_file_pages * / */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 259 = unimplemented / * reserved for new sys_mbind * / */
+	    linux_sys_nosys, 0, 0 },			/* 259 = unimplemented / * reserved for new sys_mbind * / */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 260 = unimplemented / * reserved for new sys_get_mempolicy * / */
+	    linux_sys_nosys, 0, 0 },			/* 260 = unimplemented / * reserved for new sys_get_mempolicy * / */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 261 = unimplemented / * reserved for new sys_set_mempolicy * / */
+	    linux_sys_nosys, 0, 0 },			/* 261 = unimplemented / * reserved for new sys_set_mempolicy * / */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 262 = unimplemented mq_open */
+	    linux_sys_nosys, 0, 0 },			/* 262 = unimplemented mq_open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 263 = unimplemented mq_unlink */
+	    linux_sys_nosys, 0, 0 },			/* 263 = unimplemented mq_unlink */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 264 = unimplemented mq_timedsend */
+	    linux_sys_nosys, 0, 0 },			/* 264 = unimplemented mq_timedsend */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 265 = unimplemented mq_timedreceive */
+	    linux_sys_nosys, 0, 0 },			/* 265 = unimplemented mq_timedreceive */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 266 = unimplemented mq_notify */
+	    linux_sys_nosys, 0, 0 },			/* 266 = unimplemented mq_notify */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 267 = unimplemented mq_getsetattr */
+	    linux_sys_nosys, 0, 0 },			/* 267 = unimplemented mq_getsetattr */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 268 = unimplemented kexec_load */
+	    linux_sys_nosys, 0, 0 },			/* 268 = unimplemented kexec_load */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 269 = unimplemented add_key */
+	    linux_sys_nosys, 0, 0 },			/* 269 = unimplemented add_key */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 270 = unimplemented request_key */
+	    linux_sys_nosys, 0, 0 },			/* 270 = unimplemented request_key */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 271 = unimplemented keyctl */
+	    linux_sys_nosys, 0, 0 },			/* 271 = unimplemented keyctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 272 = unimplemented waitid */
+	    linux_sys_nosys, 0, 0 },			/* 272 = unimplemented waitid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 273 = unimplemented ioprio_set */
+	    linux_sys_nosys, 0, 0 },			/* 273 = unimplemented ioprio_set */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 274 = unimplemented ioprio_get */
+	    linux_sys_nosys, 0, 0 },			/* 274 = unimplemented ioprio_get */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 275 = unimplemented inotify_init */
+	    linux_sys_nosys, 0, 0 },			/* 275 = unimplemented inotify_init */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 276 = unimplemented inotify_add_watch */
+	    linux_sys_nosys, 0, 0 },			/* 276 = unimplemented inotify_add_watch */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 277 = unimplemented inotify_rm_watch */
+	    linux_sys_nosys, 0, 0 },			/* 277 = unimplemented inotify_rm_watch */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 278 = unimplemented spu_run */
+	    linux_sys_nosys, 0, 0 },			/* 278 = unimplemented spu_run */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 279 = unimplemented spu_create */
+	    linux_sys_nosys, 0, 0 },			/* 279 = unimplemented spu_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 280 = unimplemented pselect6 */
+	    linux_sys_nosys, 0, 0 },			/* 280 = unimplemented pselect6 */
 	{ ns(struct linux_sys_ppoll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_ppoll },	/* 281 = ppoll */
+	    (sy_call_t *)linux_sys_ppoll, 0, 0 },	/* 281 = ppoll */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 282 = unimplemented unshare */
+	    linux_sys_nosys, 0, 0 },			/* 282 = unimplemented unshare */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 283 = unimplemented splice */
+	    linux_sys_nosys, 0, 0 },			/* 283 = unimplemented splice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 284 = unimplemented tee */
+	    linux_sys_nosys, 0, 0 },			/* 284 = unimplemented tee */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 285 = unimplemented vmsplice */
+	    linux_sys_nosys, 0, 0 },			/* 285 = unimplemented vmsplice */
 	{ ns(struct linux_sys_openat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_openat },	/* 286 = openat */
+	    (sy_call_t *)linux_sys_openat, 0, 0 },	/* 286 = openat */
 	{ ns(struct sys_mkdirat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdirat },		/* 287 = mkdirat */
+	    (sy_call_t *)sys_mkdirat, 0, 0 },		/* 287 = mkdirat */
 	{ ns(struct linux_sys_mknodat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_mknodat },	/* 288 = mknodat */
+	    (sy_call_t *)linux_sys_mknodat, 0, 0 },	/* 288 = mknodat */
 	{ ns(struct linux_sys_fchownat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fchownat },	/* 289 = fchownat */
+	    (sy_call_t *)linux_sys_fchownat, 0, 0 },	/* 289 = fchownat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 290 = unimplemented futimesat */
+	    linux_sys_nosys, 0, 0 },			/* 290 = unimplemented futimesat */
 	{ ns(struct linux_sys_fstatat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fstatat64 },	/* 291 = fstatat64 */
+	    (sy_call_t *)linux_sys_fstatat64, 0, 0 },	/* 291 = fstatat64 */
 	{ ns(struct linux_sys_unlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_unlinkat },	/* 292 = unlinkat */
+	    (sy_call_t *)linux_sys_unlinkat, 0, 0 },	/* 292 = unlinkat */
 	{ ns(struct sys_renameat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_renameat },	/* 293 = renameat */
+	    (sy_call_t *)sys_renameat, 0, 0 },	/* 293 = renameat */
 	{ ns(struct linux_sys_linkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_linkat },	/* 294 = linkat */
+	    (sy_call_t *)linux_sys_linkat, 0, 0 },	/* 294 = linkat */
 	{ ns(struct sys_symlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlinkat },	/* 295 = symlinkat */
+	    (sy_call_t *)sys_symlinkat, 0, 0 },	/* 295 = symlinkat */
 	{ ns(struct sys_readlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlinkat },	/* 296 = readlinkat */
+	    (sy_call_t *)sys_readlinkat, 0, 0 },	/* 296 = readlinkat */
 	{ ns(struct linux_sys_fchmodat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_fchmodat },	/* 297 = fchmodat */
+	    (sy_call_t *)linux_sys_fchmodat, 0, 0 },	/* 297 = fchmodat */
 	{ ns(struct linux_sys_faccessat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_faccessat },	/* 298 = faccessat */
+	    (sy_call_t *)linux_sys_faccessat, 0, 0 },	/* 298 = faccessat */
 	{ ns(struct linux_sys_set_robust_list_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_set_robust_list },/* 299 = set_robust_list */
+	    (sy_call_t *)linux_sys_set_robust_list, 0, 0 },/* 299 = set_robust_list */
 	{ ns(struct linux_sys_get_robust_list_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_get_robust_list },/* 300 = get_robust_list */
+	    (sy_call_t *)linux_sys_get_robust_list, 0, 0 },/* 300 = get_robust_list */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 301 = unimplemented move_pages */
+	    linux_sys_nosys, 0, 0 },			/* 301 = unimplemented move_pages */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 302 = unimplemented getcpu */
+	    linux_sys_nosys, 0, 0 },			/* 302 = unimplemented getcpu */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 303 = unimplemented epoll_wait */
+	    linux_sys_nosys, 0, 0 },			/* 303 = unimplemented epoll_wait */
 	{ ns(struct linux_sys_utimensat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_utimensat },	/* 304 = utimensat */
+	    (sy_call_t *)linux_sys_utimensat, 0, 0 },	/* 304 = utimensat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 305 = unimplemented signalfd */
+	    linux_sys_nosys, 0, 0 },			/* 305 = unimplemented signalfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 306 = unimplemented timerfd_create */
+	    linux_sys_nosys, 0, 0 },			/* 306 = unimplemented timerfd_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 307 = unimplemented eventfd */
+	    linux_sys_nosys, 0, 0 },			/* 307 = unimplemented eventfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 308 = unimplemented sync_file_range2 */
+	    linux_sys_nosys, 0, 0 },			/* 308 = unimplemented sync_file_range2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 309 = unimplemented fallocate */
+	    linux_sys_nosys, 0, 0 },			/* 309 = unimplemented fallocate */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 310 = unimplemented subpage_prot */
+	    linux_sys_nosys, 0, 0 },			/* 310 = unimplemented subpage_prot */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 311 = unimplemented timerfd_settime */
+	    linux_sys_nosys, 0, 0 },			/* 311 = unimplemented timerfd_settime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 312 = unimplemented timerfd_gettime */
+	    linux_sys_nosys, 0, 0 },			/* 312 = unimplemented timerfd_gettime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 313 = unimplemented signalfd4 */
+	    linux_sys_nosys, 0, 0 },			/* 313 = unimplemented signalfd4 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 314 = unimplemented eventfd2 */
+	    linux_sys_nosys, 0, 0 },			/* 314 = unimplemented eventfd2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 315 = unimplemented epoll_create1 */
+	    linux_sys_nosys, 0, 0 },			/* 315 = unimplemented epoll_create1 */
 	{ ns(struct linux_sys_dup3_args), 0,
-	    (sy_call_t *)linux_sys_dup3 },	/* 316 = dup3 */
+	    (sy_call_t *)linux_sys_dup3, 0, 0 },	/* 316 = dup3 */
 	{ ns(struct linux_sys_pipe2_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)linux_sys_pipe2 },	/* 317 = pipe2 */
+	    (sy_call_t *)linux_sys_pipe2, 0, 0 },	/* 317 = pipe2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 318 = unimplemented inotify_init1 */
+	    linux_sys_nosys, 0, 0 },			/* 318 = unimplemented inotify_init1 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 319 = unimplemented perf_event_open */
+	    linux_sys_nosys, 0, 0 },			/* 319 = unimplemented perf_event_open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 320 = unimplemented preadv */
+	    linux_sys_nosys, 0, 0 },			/* 320 = unimplemented preadv */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 321 = unimplemented pwritev */
+	    linux_sys_nosys, 0, 0 },			/* 321 = unimplemented pwritev */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 322 = unimplemented rt_tgsigqueueinfo */
+	    linux_sys_nosys, 0, 0 },			/* 322 = unimplemented rt_tgsigqueueinfo */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 323 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 323 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 324 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 324 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 325 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 325 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 326 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 326 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 327 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 327 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 328 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 328 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 329 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 329 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 330 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 330 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 331 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 331 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 332 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 332 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 333 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 333 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 334 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 334 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 335 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 335 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 336 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 336 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 337 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 337 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 338 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 338 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 339 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 339 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 340 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 340 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 341 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 341 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 342 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 342 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 343 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 343 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 344 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 344 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 345 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 345 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 346 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 346 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 347 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 347 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 348 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 348 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 349 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 349 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 350 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 350 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 351 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 351 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 352 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 352 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 353 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 353 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 354 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 354 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 355 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 355 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 356 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 356 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 357 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 357 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 358 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 358 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 359 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 359 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 360 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 360 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 361 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 361 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 362 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 362 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 363 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 363 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 364 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 364 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 365 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 365 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 366 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 366 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 367 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 367 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 368 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 368 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 369 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 369 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 370 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 370 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 371 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 371 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 372 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 372 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 373 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 373 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 374 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 374 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 375 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 375 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 376 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 376 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 377 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 377 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 378 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 378 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 379 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 379 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 380 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 380 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 381 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 381 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 382 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 382 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 383 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 383 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 384 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 384 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 385 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 385 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 386 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 386 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 387 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 387 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 388 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 388 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 389 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 389 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 390 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 390 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 391 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 391 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 392 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 392 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 393 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 393 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 394 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 394 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 395 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 395 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 396 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 396 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 397 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 397 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 398 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 398 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 399 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 399 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 400 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 400 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 401 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 401 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 402 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 402 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 403 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 403 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 404 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 404 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 405 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 405 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 406 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 406 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 407 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 407 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 408 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 408 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 409 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 409 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 410 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 410 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 411 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 411 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 412 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 412 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 413 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 413 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 414 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 414 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 415 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 415 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 416 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 416 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 417 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 417 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 418 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 418 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 419 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 419 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 420 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 420 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 421 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 421 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 422 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 422 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 423 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 423 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 424 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 424 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 425 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 425 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 426 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 426 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 427 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 427 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 428 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 428 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 429 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 429 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 430 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 430 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 431 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 431 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 432 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 432 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 433 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 433 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 434 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 434 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 435 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 435 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 436 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 436 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 437 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 437 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 438 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 438 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 439 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 439 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 440 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 440 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 441 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 441 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 442 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 442 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 443 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 443 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 444 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 444 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 445 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 445 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 446 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 446 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 447 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 447 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 448 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 448 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 449 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 449 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 450 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 450 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 451 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 451 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 452 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 452 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 453 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 453 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 454 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 454 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 455 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 455 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 456 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 456 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 457 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 457 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 458 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 458 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 459 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 459 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 460 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 460 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 461 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 461 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 462 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 462 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 463 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 463 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 464 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 464 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 465 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 465 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 466 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 466 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 467 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 467 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 468 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 468 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 469 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 469 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 470 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 470 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 471 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 471 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 472 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 472 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 473 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 473 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 474 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 474 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 475 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 475 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 476 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 476 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 477 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 477 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 478 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 478 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 479 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 479 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 480 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 480 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 481 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 481 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 482 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 482 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 483 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 483 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 484 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 484 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 485 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 485 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 486 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 486 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 487 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 487 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 488 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 488 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 489 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 489 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 490 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 490 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 491 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 491 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 492 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 492 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 493 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 493 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 494 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 494 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 495 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 495 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 496 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 496 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 497 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 497 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 498 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 498 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 499 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 499 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 500 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 500 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 501 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 501 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 502 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 502 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 503 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 503 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 504 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 504 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 505 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 505 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 506 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 506 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 507 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 507 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 508 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 508 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 509 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 509 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 510 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 510 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 511 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 511 = filler */
 };
diff --git a/sys/compat/linux/linux_systrace_args.c b/sys/compat/linux/linux_systrace_args.c
new file mode 100644
index 0000000..ee9d997
--- /dev/null
+++ b/sys/compat/linux/linux_systrace_args.c
@@ -0,0 +1,53 @@
+/*	$NetBSD: linux_systrace_args.c,v 1.1 2015/03/07 15:16:12 christos Exp $	*/
+
+/*-
+ * Copyright (c) 1998 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Eric Haszlakiewicz.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* XXX XXX This exists to keep kdump and friends happy. */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(1, "$NetBSD: linux_systrace_args.c,v 1.1 2015/03/07 15:16:12 christos Exp $");
+
+#if defined(__i386__)
+#include "../../sys/compat/linux/arch/i386/linux_systrace_args.c"
+#elif defined(__m68k__)
+#include "../../sys/compat/linux/arch/m68k/linux_systrace_args.c"
+#elif defined(__alpha__)
+#include "../../sys/compat/linux/arch/alpha/linux_systrace_args.c"
+#elif defined(__powerpc__)
+#include "../../sys/compat/linux/arch/powerpc/linux_systrace_args.c"
+#elif defined(__mips__)
+#include "../../sys/compat/linux/arch/mips/linux_systrace_args.c"
+#elif defined(__arm__)
+#include "../../sys/compat/linux/arch/arm/linux_systrace_args.c"
+#elif defined(__amd64__)
+#include "../../sys/compat/linux/arch/amd64/linux_systrace_args.c"
+#else
+#error "fix me"
+#endif
diff --git a/sys/compat/linux32/arch/amd64/linux32_signal.h b/sys/compat/linux32/arch/amd64/linux32_signal.h
index 28c0a6d..cac5da3 100644
--- a/sys/compat/linux32/arch/amd64/linux32_signal.h
+++ b/sys/compat/linux32/arch/amd64/linux32_signal.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_signal.h,v 1.3 2011/11/18 04:08:56 christos Exp $ */
+/*	$NetBSD: linux32_signal.h,v 1.4 2015/03/08 17:10:44 christos Exp $ */
 
 /*-
  * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved.
@@ -36,7 +36,7 @@
 #define native_to_linux32_signo native_to_linux_signo
 #define linux32_to_native_signo linux_to_native_signo
 
-typedef	netbsd32_pointer_t	linux32_handler_t;
+typedef	netbsd32_pointer_t	linux32_handlerp_t;
 typedef	netbsd32_pointer_t	linux32_restorer_t;
 typedef netbsd32_pointer_t 	linux32_siginfop_t;
 typedef netbsd32_pointer_t 	linux32_ucontextp_t;
@@ -85,7 +85,7 @@ typedef struct {
 } linux32_sigset_t;
 
 struct linux32_sigaction {
-	linux32_handler_t	linux_sa_handler;
+	linux32_handlerp_t	linux_sa_handler;
 	u_int32_t		linux_sa_flags;
 	linux32_restorer_t	linux_sa_restorer;
 	linux32_sigset_t	linux_sa_mask;
@@ -156,13 +156,13 @@ struct linux32_rt_sigframe {
         linux32_ucontextp_t sf_ucp;
         struct  linux32_siginfo  sf_si;
         struct  linux32_ucontext sf_uc; 
-        linux32_handler_t   sf_handler;
+        linux32_handlerp_t   sf_handler;
 }; 
 
 struct linux32_sigframe {
         int     sf_sig;
         struct  linux32_sigcontext sf_sc; 
-        linux32_handler_t   sf_handler;
+        linux32_handlerp_t   sf_handler;
 };
 
 #endif /* _AMD64_LINUX32_SIGNAL_H_ */
diff --git a/sys/compat/linux32/arch/amd64/linux32_syscall.h b/sys/compat/linux32/arch/amd64/linux32_syscall.h
index 7f795e8..21dcbb9 100644
--- a/sys/compat/linux32/arch/amd64/linux32_syscall.h
+++ b/sys/compat/linux32/arch/amd64/linux32_syscall.h
@@ -1,10 +1,10 @@
-/* $NetBSD: linux32_syscall.h,v 1.72 2014/05/29 10:47:23 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.67 2014/05/29 10:47:00 njoly Exp
+ * created from	NetBSD: syscalls.master,v 1.69 2015/03/08 17:10:44 christos Exp
  */
 
 #ifndef _LINUX32_SYS_SYSCALL_H_
@@ -138,7 +138,7 @@
 /* syscall: "linux_getgid16" ret: "gid_t" args: */
 #define	LINUX32_SYS_linux_getgid16	47
 
-/* syscall: "signal" ret: "int" args: "int" "linux32_handler_t" */
+/* syscall: "signal" ret: "int" args: "int" "linux32_handlerp_t" */
 #define	LINUX32_SYS_signal	48
 
 /* syscall: "linux_geteuid16" ret: "uid_t" args: */
diff --git a/sys/compat/linux32/arch/amd64/linux32_syscallargs.h b/sys/compat/linux32/arch/amd64/linux32_syscallargs.h
index 44eed66..7dbf1ff 100644
--- a/sys/compat/linux32/arch/amd64/linux32_syscallargs.h
+++ b/sys/compat/linux32/arch/amd64/linux32_syscallargs.h
@@ -1,10 +1,10 @@
-/* $NetBSD: linux32_syscallargs.h,v 1.72 2014/05/29 10:47:23 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.67 2014/05/29 10:47:00 njoly Exp
+ * created from	NetBSD: syscalls.master,v 1.69 2015/03/08 17:10:44 christos Exp
  */
 
 #ifndef _LINUX32_SYS_SYSCALLARGS_H_
@@ -167,7 +167,7 @@ struct netbsd32_setgid_args;
 
 struct linux32_sys_signal_args {
 	syscallarg(int) signum;
-	syscallarg(linux32_handler_t) handler;
+	syscallarg(linux32_handlerp_t) handler;
 };
 check_syscall_args(linux32_sys_signal)
 
diff --git a/sys/compat/linux32/arch/amd64/linux32_syscalls.c b/sys/compat/linux32/arch/amd64/linux32_syscalls.c
index 9605b1c..15d362c 100644
--- a/sys/compat/linux32/arch/amd64/linux32_syscalls.c
+++ b/sys/compat/linux32/arch/amd64/linux32_syscalls.c
@@ -1,14 +1,14 @@
-/* $NetBSD: linux32_syscalls.c,v 1.72 2014/05/29 10:47:23 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.67 2014/05/29 10:47:00 njoly Exp
+ * created from	NetBSD: syscalls.master,v 1.69 2015/03/08 17:10:44 christos Exp
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux32_syscalls.c,v 1.72 2014/05/29 10:47:23 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include <sys/param.h>
@@ -32,6 +32,8 @@ __KERNEL_RCSID(0, "$NetBSD: linux32_syscalls.c,v 1.72 2014/05/29 10:47:23 njoly
 #include <compat/linux/common/linux_ipc.h>
 #include <compat/linux/common/linux_sem.h>
 #include <compat/linux/linux_syscallargs.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const linux32_syscallnames[] = {
@@ -550,3 +552,522 @@ const char *const linux32_syscallnames[] = {
 	/* 510 */	"# filler",
 	/* 511 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altlinux32_syscallnames[] = {
+	/*   0 */	"nosys",
+	/*   1 */	NULL, /* exit */
+	/*   2 */	NULL, /* fork */
+	/*   3 */	"read",
+	/*   4 */	"write",
+	/*   5 */	NULL, /* open */
+	/*   6 */	"close",
+	/*   7 */	NULL, /* waitpid */
+	/*   8 */	NULL, /* creat */
+	/*   9 */	"link",
+	/*  10 */	NULL, /* unlink */
+	/*  11 */	"execve",
+	/*  12 */	"chdir",
+	/*  13 */	NULL, /* time */
+	/*  14 */	NULL, /* mknod */
+	/*  15 */	"chmod",
+	/*  16 */	NULL, /* lchown16 */
+	/*  17 */	NULL, /* break */
+	/*  18 */	NULL, /* obsolete ostat */
+	/*  19 */	"olseek",
+	/*  20 */	NULL, /* getpid */
+	/*  21 */	NULL, /* unimplemented mount */
+	/*  22 */	NULL, /* unimplemented umount */
+	/*  23 */	"setuid",
+	/*  24 */	"getuid",
+	/*  25 */	NULL, /* stime */
+	/*  26 */	NULL, /* ptrace */
+	/*  27 */	NULL, /* alarm */
+	/*  28 */	NULL, /* obsolete ofstat */
+	/*  29 */	NULL, /* pause */
+	/*  30 */	NULL, /* utime */
+	/*  31 */	NULL, /* obsolete stty */
+	/*  32 */	NULL, /* obsolete gtty */
+	/*  33 */	"access",
+	/*  34 */	NULL, /* nice */
+	/*  35 */	NULL, /* obsolete ftime */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	NULL, /* kill */
+	/*  38 */	"__posix_rename",
+	/*  39 */	"mkdir",
+	/*  40 */	"rmdir",
+	/*  41 */	"dup",
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* times */
+	/*  44 */	NULL, /* obsolete prof */
+	/*  45 */	NULL, /* brk */
+	/*  46 */	"setgid",
+	/*  47 */	"getgid",
+	/*  48 */	NULL, /* signal */
+	/*  49 */	"geteuid",
+	/*  50 */	"getegid",
+	/*  51 */	"acct",
+	/*  52 */	NULL, /* obsolete phys */
+	/*  53 */	NULL, /* obsolete lock */
+	/*  54 */	NULL, /* ioctl */
+	/*  55 */	NULL, /* fcntl */
+	/*  56 */	NULL, /* obsolete mpx */
+	/*  57 */	"setpgid",
+	/*  58 */	NULL, /* obsolete ulimit */
+	/*  59 */	NULL, /* oldolduname */
+	/*  60 */	"umask",
+	/*  61 */	"chroot",
+	/*  62 */	NULL, /* unimplemented ustat */
+	/*  63 */	"dup2",
+	/*  64 */	NULL, /* getppid */
+	/*  65 */	NULL, /* getpgrp */
+	/*  66 */	NULL, /* setsid */
+	/*  67 */	NULL, /* unimplemented sigaction */
+	/*  68 */	NULL, /* siggetmask */
+	/*  69 */	NULL, /* sigsetmask */
+	/*  70 */	NULL, /* setreuid16 */
+	/*  71 */	NULL, /* setregid16 */
+	/*  72 */	NULL, /* unimplemented sigsuspend */
+	/*  73 */	NULL, /* unimplemented sigpending */
+	/*  74 */	"osethostname",
+	/*  75 */	NULL, /* setrlimit */
+	/*  76 */	NULL, /* getrlimit */
+	/*  77 */	"getrusage",
+	/*  78 */	NULL, /* gettimeofday */
+	/*  79 */	NULL, /* settimeofday */
+	/*  80 */	NULL, /* getgroups16 */
+	/*  81 */	NULL, /* setgroups16 */
+	/*  82 */	NULL, /* oldselect */
+	/*  83 */	"symlink",
+	/*  84 */	"lstat43",
+	/*  85 */	"readlink",
+	/*  86 */	NULL, /* unimplemented uselib */
+	/*  87 */	NULL, /* swapon */
+	/*  88 */	NULL, /* reboot */
+	/*  89 */	NULL, /* readdir */
+	/*  90 */	NULL, /* old_mmap */
+	/*  91 */	"munmap",
+	/*  92 */	"otruncate",
+	/*  93 */	"oftruncate",
+	/*  94 */	"fchmod",
+	/*  95 */	NULL, /* fchown16 */
+	/*  96 */	NULL, /* getpriority */
+	/*  97 */	"setpriority",
+	/*  98 */	"profil",
+	/*  99 */	NULL, /* statfs */
+	/* 100 */	NULL, /* fstatfs */
+	/* 101 */	NULL, /* ioperm */
+	/* 102 */	NULL, /* socketcall */
+	/* 103 */	NULL, /* unimplemented syslog */
+	/* 104 */	"setitimer",
+	/* 105 */	"getitimer",
+	/* 106 */	NULL, /* stat */
+	/* 107 */	NULL, /* lstat */
+	/* 108 */	NULL, /* fstat */
+	/* 109 */	NULL, /* olduname */
+	/* 110 */	NULL, /* iopl */
+	/* 111 */	NULL, /* unimplemented vhangup */
+	/* 112 */	NULL, /* unimplemented idle */
+	/* 113 */	NULL, /* unimplemented vm86old */
+	/* 114 */	NULL, /* wait4 */
+	/* 115 */	NULL, /* swapoff */
+	/* 116 */	NULL, /* sysinfo */
+	/* 117 */	NULL, /* ipc */
+	/* 118 */	"fsync",
+	/* 119 */	NULL, /* sigreturn */
+	/* 120 */	NULL, /* clone */
+	/* 121 */	NULL, /* setdomainname */
+	/* 122 */	NULL, /* uname */
+	/* 123 */	NULL, /* modify_ldt */
+	/* 124 */	NULL, /* unimplemented adjtimex */
+	/* 125 */	NULL, /* mprotect */
+	/* 126 */	NULL, /* unimplemented sigprocmask */
+	/* 127 */	NULL, /* unimplemented create_module */
+	/* 128 */	NULL, /* unimplemented init_module */
+	/* 129 */	NULL, /* unimplemented delete_module */
+	/* 130 */	NULL, /* unimplemented get_kernel_syms */
+	/* 131 */	NULL, /* unimplemented quotactl */
+	/* 132 */	"getpgid",
+	/* 133 */	"fchdir",
+	/* 134 */	NULL, /* unimplemented bdflush */
+	/* 135 */	NULL, /* unimplemented sysfs */
+	/* 136 */	NULL, /* personality */
+	/* 137 */	NULL, /* unimplemented afs_syscall */
+	/* 138 */	"setfsuid",
+	/* 139 */	"setfsgid",
+	/* 140 */	NULL, /* llseek */
+	/* 141 */	NULL, /* getdents */
+	/* 142 */	NULL, /* select */
+	/* 143 */	"flock",
+	/* 144 */	"msync",
+	/* 145 */	"readv",
+	/* 146 */	"writev",
+	/* 147 */	"getsid",
+	/* 148 */	NULL, /* fdatasync */
+	/* 149 */	NULL, /* __sysctl */
+	/* 150 */	"mlock",
+	/* 151 */	"munlock",
+	/* 152 */	"mlockall",
+	/* 153 */	NULL, /* munlockall */
+	/* 154 */	NULL, /* sched_setparam */
+	/* 155 */	NULL, /* sched_getparam */
+	/* 156 */	NULL, /* sched_setscheduler */
+	/* 157 */	NULL, /* sched_getscheduler */
+	/* 158 */	NULL, /* sched_yield */
+	/* 159 */	NULL, /* sched_get_priority_max */
+	/* 160 */	NULL, /* sched_get_priority_min */
+	/* 161 */	NULL, /* unimplemented sched_rr_get_interval */
+	/* 162 */	NULL, /* nanosleep */
+	/* 163 */	NULL, /* mremap */
+	/* 164 */	NULL, /* setresuid16 */
+	/* 165 */	NULL, /* getresuid16 */
+	/* 166 */	NULL, /* unimplemented vm86 */
+	/* 167 */	NULL, /* unimplemented query_module */
+	/* 168 */	"poll",
+	/* 169 */	NULL, /* unimplemented nfsservctl */
+	/* 170 */	NULL, /* setresgid16 */
+	/* 171 */	NULL, /* getresgid16 */
+	/* 172 */	NULL, /* unimplemented prctl */
+	/* 173 */	NULL, /* rt_sigreturn */
+	/* 174 */	NULL, /* rt_sigaction */
+	/* 175 */	NULL, /* rt_sigprocmask */
+	/* 176 */	NULL, /* rt_sigpending */
+	/* 177 */	NULL, /* rt_sigtimedwait */
+	/* 178 */	NULL, /* rt_queueinfo */
+	/* 179 */	NULL, /* rt_sigsuspend */
+	/* 180 */	NULL, /* pread */
+	/* 181 */	NULL, /* pwrite */
+	/* 182 */	NULL, /* chown16 */
+	/* 183 */	"__getcwd",
+	/* 184 */	NULL, /* unimplemented capget */
+	/* 185 */	NULL, /* unimplemented capset */
+	/* 186 */	NULL, /* unimplemented sigaltstack */
+	/* 187 */	NULL, /* unimplemented sendfile */
+	/* 188 */	NULL, /* unimplemented getpmsg */
+	/* 189 */	NULL, /* unimplemented putpmsg */
+	/* 190 */	"vfork",
+	/* 191 */	NULL, /* ugetrlimit */
+	/* 192 */	NULL, /* mmap2 */
+	/* 193 */	NULL, /* truncate64 */
+	/* 194 */	NULL, /* ftruncate64 */
+	/* 195 */	NULL, /* stat64 */
+	/* 196 */	NULL, /* lstat64 */
+	/* 197 */	NULL, /* fstat64 */
+	/* 198 */	"__posix_lchown",
+	/* 199 */	NULL, /* getuid */
+	/* 200 */	NULL, /* getgid */
+	/* 201 */	NULL, /* geteuid */
+	/* 202 */	NULL, /* getegid */
+	/* 203 */	"setreuid",
+	/* 204 */	"setregid",
+	/* 205 */	"getgroups",
+	/* 206 */	"setgroups",
+	/* 207 */	"__posix_fchown",
+	/* 208 */	NULL, /* setresuid */
+	/* 209 */	NULL, /* getresuid */
+	/* 210 */	NULL, /* setresgid */
+	/* 211 */	NULL, /* getresgid */
+	/* 212 */	"__posix_chown",
+	/* 213 */	"setuid",
+	/* 214 */	"setgid",
+	/* 215 */	NULL, /* setfsuid */
+	/* 216 */	NULL, /* setfsgid */
+	/* 217 */	NULL, /* unimplemented pivot_root */
+	/* 218 */	"mincore",
+	/* 219 */	"madvise",
+	/* 220 */	NULL, /* getdents64 */
+#define linux32_sys_fcntl64 linux32_sys_fcntl
+#define linux32_sys_fcntl64_args linux32_sys_fcntl_args
+	/* 221 */	NULL, /* fcntl64 */
+	/* 222 */	NULL, /* unimplemented / * unused * / */
+	/* 223 */	NULL, /* unimplemented / * unused * / */
+	/* 224 */	NULL, /* gettid */
+	/* 225 */	NULL, /* unimplemented readahead */
+	/* 226 */	"setxattr",
+	/* 227 */	"lsetxattr",
+	/* 228 */	"fsetxattr",
+	/* 229 */	"getxattr",
+	/* 230 */	"lgetxattr",
+	/* 231 */	"fgetxattr",
+	/* 232 */	"listxattr",
+	/* 233 */	"llistxattr",
+	/* 234 */	"flistxattr",
+	/* 235 */	"removexattr",
+	/* 236 */	"lremovexattr",
+	/* 237 */	"fremovexattr",
+	/* 238 */	NULL, /* tkill */
+	/* 239 */	NULL, /* unimplemented sendfile64 */
+	/* 240 */	NULL, /* futex */
+	/* 241 */	NULL, /* sched_setaffinity */
+	/* 242 */	NULL, /* sched_getaffinity */
+	/* 243 */	NULL, /* set_thread_area */
+	/* 244 */	NULL, /* get_thread_area */
+	/* 245 */	NULL, /* unimplemented io_setup */
+	/* 246 */	NULL, /* unimplemented io_destroy */
+	/* 247 */	NULL, /* unimplemented io_getevents */
+	/* 248 */	NULL, /* unimplemented io_submit */
+	/* 249 */	NULL, /* unimplemented io_cancel */
+	/* 250 */	NULL, /* fadvise64 */
+	/* 251 */	NULL, /* unimplemented / * unused * / */
+	/* 252 */	NULL, /* exit_group */
+	/* 253 */	NULL, /* unimplemented lookup_dcookie */
+	/* 254 */	NULL, /* unimplemented epoll_create */
+	/* 255 */	NULL, /* unimplemented epoll_ctl */
+	/* 256 */	NULL, /* unimplemented epoll_wait */
+	/* 257 */	NULL, /* unimplemented remap_file_pages */
+	/* 258 */	NULL, /* set_tid_address */
+	/* 259 */	NULL, /* unimplemented timer_create */
+	/* 260 */	NULL, /* unimplemented timer_settime */
+	/* 261 */	NULL, /* unimplemented timer_gettime */
+	/* 262 */	NULL, /* unimplemented timer_getoverrun */
+	/* 263 */	NULL, /* unimplemented timer_delete */
+	/* 264 */	NULL, /* clock_settime */
+	/* 265 */	NULL, /* clock_gettime */
+	/* 266 */	NULL, /* clock_getres */
+	/* 267 */	NULL, /* clock_nanosleep */
+	/* 268 */	NULL, /* statfs64 */
+	/* 269 */	NULL, /* fstatfs64 */
+	/* 270 */	NULL, /* tgkill */
+	/* 271 */	"utimes",
+	/* 272 */	NULL, /* fadvise64_64 */
+	/* 273 */	NULL, /* unimplemented vserver */
+	/* 274 */	NULL, /* unimplemented mbind */
+	/* 275 */	NULL, /* unimplemented get_mempolicy */
+	/* 276 */	NULL, /* unimplemented set_mempolicy */
+	/* 277 */	NULL, /* unimplemented mq_open */
+	/* 278 */	NULL, /* unimplemented mq_unlink */
+	/* 279 */	NULL, /* unimplemented mq_timedsend */
+	/* 280 */	NULL, /* unimplemented mq_timedreceive */
+	/* 281 */	NULL, /* unimplemented mq_notify */
+	/* 282 */	NULL, /* unimplemented mq_getsetattr */
+	/* 283 */	NULL, /* unimplemented kexec_load */
+	/* 284 */	NULL, /* unimplemented waitid */
+	/* 285 */	NULL, /* unimplemented / * unused * / */
+	/* 286 */	NULL, /* unimplemented add_key */
+	/* 287 */	NULL, /* unimplemented request_key */
+	/* 288 */	NULL, /* unimplemented keyctl */
+	/* 289 */	NULL, /* unimplemented ioprio_set */
+	/* 290 */	NULL, /* unimplemented ioprio_get */
+	/* 291 */	NULL, /* unimplemented inotify_init */
+	/* 292 */	NULL, /* unimplemented inotify_add_watch */
+	/* 293 */	NULL, /* unimplemented inotify_rm_watch */
+	/* 294 */	NULL, /* unimplemented migrate_pages */
+	/* 295 */	NULL, /* openat */
+	/* 296 */	"mkdirat",
+	/* 297 */	NULL, /* mknodat */
+	/* 298 */	NULL, /* fchownat */
+	/* 299 */	NULL, /* unimplemented futimesat */
+	/* 300 */	NULL, /* fstatat64 */
+	/* 301 */	NULL, /* unlinkat */
+	/* 302 */	"renameat",
+	/* 303 */	NULL, /* linkat */
+	/* 304 */	"symlinkat",
+	/* 305 */	"readlinkat",
+	/* 306 */	NULL, /* fchmodat */
+	/* 307 */	NULL, /* faccessat */
+	/* 308 */	NULL, /* unimplemented pselect6 */
+	/* 309 */	NULL, /* unimplemented ppoll */
+	/* 310 */	NULL, /* unimplemented unshare */
+	/* 311 */	NULL, /* set_robust_list */
+	/* 312 */	NULL, /* get_robust_list */
+	/* 313 */	NULL, /* unimplemented splice */
+	/* 314 */	NULL, /* unimplemented sync_file_range */
+	/* 315 */	NULL, /* unimplemented tee */
+	/* 316 */	NULL, /* unimplemented vmsplice */
+	/* 317 */	NULL, /* unimplemented move_pages */
+	/* 318 */	NULL, /* unimplemented getcpu */
+	/* 319 */	NULL, /* unimplemented epoll_wait */
+	/* 320 */	NULL, /* utimensat */
+	/* 321 */	NULL, /* unimplemented signalfd */
+	/* 322 */	NULL, /* unimplemented timerfd_create */
+	/* 323 */	NULL, /* unimplemented eventfd */
+	/* 324 */	NULL, /* unimplemented fallocate */
+	/* 325 */	NULL, /* unimplemented timerfd_settime */
+	/* 326 */	NULL, /* unimplemented timerfd_gettime */
+	/* 327 */	NULL, /* unimplemented signalfd4 */
+	/* 328 */	NULL, /* unimplemented eventfd2 */
+	/* 329 */	NULL, /* unimplemented epoll_create1 */
+	/* 330 */	NULL, /* dup3 */
+	/* 331 */	NULL, /* pipe2 */
+	/* 332 */	NULL, /* unimplemented inotify_init1 */
+	/* 333 */	NULL, /* unimplemented preadv */
+	/* 334 */	NULL, /* unimplemented pwritev */
+	/* 335 */	NULL, /* unimplemented rt_tgsigqueueinfo */
+	/* 336 */	NULL, /* unimplemented perf_counter_open */
+	/* 337 */	NULL, /* unimplemented recvmmsg */
+	/* 338 */	NULL, /* unimplemented fanotify_init */
+	/* 339 */	NULL, /* unimplemented fanotify_mark */
+	/* 340 */	NULL, /* unimplemented prlimit64 */
+	/* 341 */	NULL, /* unimplemented name_to_handle_at */
+	/* 342 */	NULL, /* unimplemented open_by_handle_at */
+	/* 343 */	NULL, /* unimplemented clock_adjtime */
+	/* 344 */	NULL, /* unimplemented syncfs */
+	/* 345 */	NULL, /* unimplemented sendmmsg */
+	/* 346 */	NULL, /* unimplemented setns */
+	/* 347 */	NULL, /* unimplemented process_vm_readv */
+	/* 348 */	NULL, /* unimplemented process_vm_writev */
+	/* 349 */	NULL, /* unimplemented kcmp */
+	/* 350 */	NULL, /* unimplemented finit_module */
+	/* 351 */	NULL, /* filler */
+	/* 352 */	NULL, /* filler */
+	/* 353 */	NULL, /* filler */
+	/* 354 */	NULL, /* filler */
+	/* 355 */	NULL, /* filler */
+	/* 356 */	NULL, /* filler */
+	/* 357 */	NULL, /* filler */
+	/* 358 */	NULL, /* filler */
+	/* 359 */	NULL, /* filler */
+	/* 360 */	NULL, /* filler */
+	/* 361 */	NULL, /* filler */
+	/* 362 */	NULL, /* filler */
+	/* 363 */	NULL, /* filler */
+	/* 364 */	NULL, /* filler */
+	/* 365 */	NULL, /* filler */
+	/* 366 */	NULL, /* filler */
+	/* 367 */	NULL, /* filler */
+	/* 368 */	NULL, /* filler */
+	/* 369 */	NULL, /* filler */
+	/* 370 */	NULL, /* filler */
+	/* 371 */	NULL, /* filler */
+	/* 372 */	NULL, /* filler */
+	/* 373 */	NULL, /* filler */
+	/* 374 */	NULL, /* filler */
+	/* 375 */	NULL, /* filler */
+	/* 376 */	NULL, /* filler */
+	/* 377 */	NULL, /* filler */
+	/* 378 */	NULL, /* filler */
+	/* 379 */	NULL, /* filler */
+	/* 380 */	NULL, /* filler */
+	/* 381 */	NULL, /* filler */
+	/* 382 */	NULL, /* filler */
+	/* 383 */	NULL, /* filler */
+	/* 384 */	NULL, /* filler */
+	/* 385 */	NULL, /* filler */
+	/* 386 */	NULL, /* filler */
+	/* 387 */	NULL, /* filler */
+	/* 388 */	NULL, /* filler */
+	/* 389 */	NULL, /* filler */
+	/* 390 */	NULL, /* filler */
+	/* 391 */	NULL, /* filler */
+	/* 392 */	NULL, /* filler */
+	/* 393 */	NULL, /* filler */
+	/* 394 */	NULL, /* filler */
+	/* 395 */	NULL, /* filler */
+	/* 396 */	NULL, /* filler */
+	/* 397 */	NULL, /* filler */
+	/* 398 */	NULL, /* filler */
+	/* 399 */	NULL, /* filler */
+	/* 400 */	NULL, /* filler */
+	/* 401 */	NULL, /* filler */
+	/* 402 */	NULL, /* filler */
+	/* 403 */	NULL, /* filler */
+	/* 404 */	NULL, /* filler */
+	/* 405 */	NULL, /* filler */
+	/* 406 */	NULL, /* filler */
+	/* 407 */	NULL, /* filler */
+	/* 408 */	NULL, /* filler */
+	/* 409 */	NULL, /* filler */
+	/* 410 */	NULL, /* filler */
+	/* 411 */	NULL, /* filler */
+	/* 412 */	NULL, /* filler */
+	/* 413 */	NULL, /* filler */
+	/* 414 */	NULL, /* filler */
+	/* 415 */	NULL, /* filler */
+	/* 416 */	NULL, /* filler */
+	/* 417 */	NULL, /* filler */
+	/* 418 */	NULL, /* filler */
+	/* 419 */	NULL, /* filler */
+	/* 420 */	NULL, /* filler */
+	/* 421 */	NULL, /* filler */
+	/* 422 */	NULL, /* filler */
+	/* 423 */	NULL, /* filler */
+	/* 424 */	NULL, /* filler */
+	/* 425 */	NULL, /* filler */
+	/* 426 */	NULL, /* filler */
+	/* 427 */	NULL, /* filler */
+	/* 428 */	NULL, /* filler */
+	/* 429 */	NULL, /* filler */
+	/* 430 */	NULL, /* filler */
+	/* 431 */	NULL, /* filler */
+	/* 432 */	NULL, /* filler */
+	/* 433 */	NULL, /* filler */
+	/* 434 */	NULL, /* filler */
+	/* 435 */	NULL, /* filler */
+	/* 436 */	NULL, /* filler */
+	/* 437 */	NULL, /* filler */
+	/* 438 */	NULL, /* filler */
+	/* 439 */	NULL, /* filler */
+	/* 440 */	NULL, /* filler */
+	/* 441 */	NULL, /* filler */
+	/* 442 */	NULL, /* filler */
+	/* 443 */	NULL, /* filler */
+	/* 444 */	NULL, /* filler */
+	/* 445 */	NULL, /* filler */
+	/* 446 */	NULL, /* filler */
+	/* 447 */	NULL, /* filler */
+	/* 448 */	NULL, /* filler */
+	/* 449 */	NULL, /* filler */
+	/* 450 */	NULL, /* filler */
+	/* 451 */	NULL, /* filler */
+	/* 452 */	NULL, /* filler */
+	/* 453 */	NULL, /* filler */
+	/* 454 */	NULL, /* filler */
+	/* 455 */	NULL, /* filler */
+	/* 456 */	NULL, /* filler */
+	/* 457 */	NULL, /* filler */
+	/* 458 */	NULL, /* filler */
+	/* 459 */	NULL, /* filler */
+	/* 460 */	NULL, /* filler */
+	/* 461 */	NULL, /* filler */
+	/* 462 */	NULL, /* filler */
+	/* 463 */	NULL, /* filler */
+	/* 464 */	NULL, /* filler */
+	/* 465 */	NULL, /* filler */
+	/* 466 */	NULL, /* filler */
+	/* 467 */	NULL, /* filler */
+	/* 468 */	NULL, /* filler */
+	/* 469 */	NULL, /* filler */
+	/* 470 */	NULL, /* filler */
+	/* 471 */	NULL, /* filler */
+	/* 472 */	NULL, /* filler */
+	/* 473 */	NULL, /* filler */
+	/* 474 */	NULL, /* filler */
+	/* 475 */	NULL, /* filler */
+	/* 476 */	NULL, /* filler */
+	/* 477 */	NULL, /* filler */
+	/* 478 */	NULL, /* filler */
+	/* 479 */	NULL, /* filler */
+	/* 480 */	NULL, /* filler */
+	/* 481 */	NULL, /* filler */
+	/* 482 */	NULL, /* filler */
+	/* 483 */	NULL, /* filler */
+	/* 484 */	NULL, /* filler */
+	/* 485 */	NULL, /* filler */
+	/* 486 */	NULL, /* filler */
+	/* 487 */	NULL, /* filler */
+	/* 488 */	NULL, /* filler */
+	/* 489 */	NULL, /* filler */
+	/* 490 */	NULL, /* filler */
+	/* 491 */	NULL, /* filler */
+	/* 492 */	NULL, /* filler */
+	/* 493 */	NULL, /* filler */
+	/* 494 */	NULL, /* filler */
+	/* 495 */	NULL, /* filler */
+	/* 496 */	NULL, /* filler */
+	/* 497 */	NULL, /* filler */
+	/* 498 */	NULL, /* filler */
+	/* 499 */	NULL, /* filler */
+	/* 500 */	NULL, /* filler */
+	/* 501 */	NULL, /* filler */
+	/* 502 */	NULL, /* filler */
+	/* 503 */	NULL, /* filler */
+	/* 504 */	NULL, /* filler */
+	/* 505 */	NULL, /* filler */
+	/* 506 */	NULL, /* filler */
+	/* 507 */	NULL, /* filler */
+	/* 508 */	NULL, /* filler */
+	/* 509 */	NULL, /* filler */
+	/* 510 */	NULL, /* filler */
+	/* 511 */	NULL, /* filler */
+};
diff --git a/sys/compat/linux32/arch/amd64/linux32_sysent.c b/sys/compat/linux32/arch/amd64/linux32_sysent.c
index 458a94f..d9a126e 100644
--- a/sys/compat/linux32/arch/amd64/linux32_sysent.c
+++ b/sys/compat/linux32/arch/amd64/linux32_sysent.c
@@ -1,14 +1,14 @@
-/* $NetBSD: linux32_sysent.c,v 1.72 2014/05/29 10:47:23 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.67 2014/05/29 10:47:00 njoly Exp
+ * created from	NetBSD: syscalls.master,v 1.69 2015/03/08 17:10:44 christos Exp
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux32_sysent.c,v 1.72 2014/05/29 10:47:23 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #include <sys/param.h>
 #include <sys/poll.h>
@@ -38,1029 +38,1029 @@ __KERNEL_RCSID(0, "$NetBSD: linux32_sysent.c,v 1.72 2014/05/29 10:47:23 njoly Ex
 
 struct sysent linux32_sysent[] = {
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_nosys },	/* 0 = syscall */
+	    (sy_call_t *)linux_sys_nosys, 0, 0 },	/* 0 = syscall */
 	{ ns(struct linux32_sys_exit_args), 0,
-	    (sy_call_t *)linux32_sys_exit },	/* 1 = exit */
+	    (sy_call_t *)linux32_sys_exit, 0, 0 },	/* 1 = exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct netbsd32_read_args), 0,
-	    (sy_call_t *)netbsd32_read },	/* 3 = netbsd32_read */
+	    (sy_call_t *)netbsd32_read, 0, 0 },	/* 3 = netbsd32_read */
 	{ ns(struct netbsd32_write_args), 0,
-	    (sy_call_t *)netbsd32_write },	/* 4 = netbsd32_write */
+	    (sy_call_t *)netbsd32_write, 0, 0 },	/* 4 = netbsd32_write */
 	{ ns(struct linux32_sys_open_args), 0,
-	    (sy_call_t *)linux32_sys_open },	/* 5 = open */
+	    (sy_call_t *)linux32_sys_open, 0, 0 },	/* 5 = open */
 	{ ns(struct netbsd32_close_args), 0,
-	    (sy_call_t *)netbsd32_close },	/* 6 = netbsd32_close */
+	    (sy_call_t *)netbsd32_close, 0, 0 },	/* 6 = netbsd32_close */
 	{ ns(struct linux32_sys_waitpid_args), 0,
-	    (sy_call_t *)linux32_sys_waitpid },	/* 7 = waitpid */
+	    (sy_call_t *)linux32_sys_waitpid, 0, 0 },	/* 7 = waitpid */
 	{ ns(struct linux32_sys_creat_args), 0,
-	    (sy_call_t *)linux32_sys_creat },	/* 8 = creat */
+	    (sy_call_t *)linux32_sys_creat, 0, 0 },	/* 8 = creat */
 	{ ns(struct netbsd32_link_args), 0,
-	    (sy_call_t *)netbsd32_link },	/* 9 = netbsd32_link */
+	    (sy_call_t *)netbsd32_link, 0, 0 },	/* 9 = netbsd32_link */
 	{ ns(struct linux32_sys_unlink_args), 0,
-	    (sy_call_t *)linux32_sys_unlink },	/* 10 = unlink */
+	    (sy_call_t *)linux32_sys_unlink, 0, 0 },	/* 10 = unlink */
 	{ ns(struct netbsd32_execve_args), 0,
-	    (sy_call_t *)netbsd32_execve },	/* 11 = netbsd32_execve */
+	    (sy_call_t *)netbsd32_execve, 0, 0 },	/* 11 = netbsd32_execve */
 	{ ns(struct netbsd32_chdir_args), 0,
-	    (sy_call_t *)netbsd32_chdir },	/* 12 = netbsd32_chdir */
+	    (sy_call_t *)netbsd32_chdir, 0, 0 },	/* 12 = netbsd32_chdir */
 	{ ns(struct linux32_sys_time_args), 0,
-	    (sy_call_t *)linux32_sys_time },	/* 13 = time */
+	    (sy_call_t *)linux32_sys_time, 0, 0 },	/* 13 = time */
 	{ ns(struct linux32_sys_mknod_args), 0,
-	    (sy_call_t *)linux32_sys_mknod },	/* 14 = mknod */
+	    (sy_call_t *)linux32_sys_mknod, 0, 0 },	/* 14 = mknod */
 	{ ns(struct netbsd32_chmod_args), 0,
-	    (sy_call_t *)netbsd32_chmod },	/* 15 = netbsd32_chmod */
+	    (sy_call_t *)netbsd32_chmod, 0, 0 },	/* 15 = netbsd32_chmod */
 	{ ns(struct linux32_sys_lchown16_args), 0,
-	    (sy_call_t *)linux32_sys_lchown16 },/* 16 = lchown16 */
+	    (sy_call_t *)linux32_sys_lchown16, 0, 0 },/* 16 = lchown16 */
 	{ ns(struct linux32_sys_break_args), 0,
-	    (sy_call_t *)linux32_sys_break },	/* 17 = break */
+	    (sy_call_t *)linux32_sys_break, 0, 0 },	/* 17 = break */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 18 = obsolete ostat */
+	    linux_sys_nosys, 0, 0 },			/* 18 = obsolete ostat */
 	{ ns(struct compat_43_netbsd32_olseek_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_olseek },/* 19 = compat_43_netbsd32_olseek */
+	    (sy_call_t *)compat_43_netbsd32_olseek, 0, 0 },/* 19 = compat_43_netbsd32_olseek */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid },		/* 20 = getpid */
+	    (sy_call_t *)sys_getpid, 0, 0 },		/* 20 = getpid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 21 = unimplemented mount */
+	    linux_sys_nosys, 0, 0 },			/* 21 = unimplemented mount */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 22 = unimplemented umount */
+	    linux_sys_nosys, 0, 0 },			/* 22 = unimplemented umount */
 	{ ns(struct netbsd32_setuid_args), 0,
-	    (sy_call_t *)netbsd32_setuid },	/* 23 = linux_setuid16 */
+	    (sy_call_t *)netbsd32_setuid, 0, 0 },	/* 23 = linux_setuid16 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid },		/* 24 = linux_getuid16 */
+	    (sy_call_t *)sys_getuid, 0, 0 },		/* 24 = linux_getuid16 */
 	{ ns(struct linux32_sys_stime_args), 0,
-	    (sy_call_t *)linux32_sys_stime },	/* 25 = stime */
+	    (sy_call_t *)linux32_sys_stime, 0, 0 },	/* 25 = stime */
 	{ ns(struct linux32_sys_ptrace_args), 0,
-	    (sy_call_t *)linux32_sys_ptrace },	/* 26 = ptrace */
+	    (sy_call_t *)linux32_sys_ptrace, 0, 0 },	/* 26 = ptrace */
 	{ ns(struct linux32_sys_alarm_args), 0,
-	    (sy_call_t *)linux32_sys_alarm },	/* 27 = alarm */
+	    (sy_call_t *)linux32_sys_alarm, 0, 0 },	/* 27 = alarm */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 28 = obsolete ofstat */
+	    linux_sys_nosys, 0, 0 },			/* 28 = obsolete ofstat */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_pause },	/* 29 = pause */
+	    (sy_call_t *)linux_sys_pause, 0, 0 },	/* 29 = pause */
 	{ ns(struct linux32_sys_utime_args), 0,
-	    (sy_call_t *)linux32_sys_utime },	/* 30 = utime */
+	    (sy_call_t *)linux32_sys_utime, 0, 0 },	/* 30 = utime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 31 = obsolete stty */
+	    linux_sys_nosys, 0, 0 },			/* 31 = obsolete stty */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 32 = obsolete gtty */
+	    linux_sys_nosys, 0, 0 },			/* 32 = obsolete gtty */
 	{ ns(struct netbsd32_access_args), 0,
-	    (sy_call_t *)netbsd32_access },	/* 33 = netbsd32_access */
+	    (sy_call_t *)netbsd32_access, 0, 0 },	/* 33 = netbsd32_access */
 	{ ns(struct linux32_sys_nice_args), 0,
-	    (sy_call_t *)linux32_sys_nice },	/* 34 = nice */
+	    (sy_call_t *)linux32_sys_nice, 0, 0 },	/* 34 = nice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 35 = obsolete ftime */
+	    linux_sys_nosys, 0, 0 },			/* 35 = obsolete ftime */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct linux32_sys_kill_args), 0,
-	    (sy_call_t *)linux32_sys_kill },	/* 37 = kill */
+	    (sy_call_t *)linux32_sys_kill, 0, 0 },	/* 37 = kill */
 	{ ns(struct netbsd32___posix_rename_args), 0,
-	    (sy_call_t *)netbsd32___posix_rename },/* 38 = netbsd32___posix_rename */
+	    (sy_call_t *)netbsd32___posix_rename, 0, 0 },/* 38 = netbsd32___posix_rename */
 	{ ns(struct netbsd32_mkdir_args), 0,
-	    (sy_call_t *)netbsd32_mkdir },	/* 39 = netbsd32_mkdir */
+	    (sy_call_t *)netbsd32_mkdir, 0, 0 },	/* 39 = netbsd32_mkdir */
 	{ ns(struct netbsd32_rmdir_args), 0,
-	    (sy_call_t *)netbsd32_rmdir },	/* 40 = netbsd32_rmdir */
+	    (sy_call_t *)netbsd32_rmdir, 0, 0 },	/* 40 = netbsd32_rmdir */
 	{ ns(struct netbsd32_dup_args), 0,
-	    (sy_call_t *)netbsd32_dup },	/* 41 = netbsd32_dup */
+	    (sy_call_t *)netbsd32_dup, 0, 0 },	/* 41 = netbsd32_dup */
 	{ ns(struct linux32_sys_pipe_args), 0,
-	    (sy_call_t *)linux32_sys_pipe },	/* 42 = pipe */
+	    (sy_call_t *)linux32_sys_pipe, 0, 0 },	/* 42 = pipe */
 	{ ns(struct linux32_sys_times_args), 0,
-	    (sy_call_t *)linux32_sys_times },	/* 43 = times */
+	    (sy_call_t *)linux32_sys_times, 0, 0 },	/* 43 = times */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 44 = obsolete prof */
+	    linux_sys_nosys, 0, 0 },			/* 44 = obsolete prof */
 	{ ns(struct linux32_sys_brk_args), 0,
-	    (sy_call_t *)linux32_sys_brk },	/* 45 = brk */
+	    (sy_call_t *)linux32_sys_brk, 0, 0 },	/* 45 = brk */
 	{ ns(struct netbsd32_setgid_args), 0,
-	    (sy_call_t *)netbsd32_setgid },	/* 46 = linux_setgid16 */
+	    (sy_call_t *)netbsd32_setgid, 0, 0 },	/* 46 = linux_setgid16 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid },		/* 47 = linux_getgid16 */
+	    (sy_call_t *)sys_getgid, 0, 0 },		/* 47 = linux_getgid16 */
 	{ ns(struct linux32_sys_signal_args), 0,
-	    (sy_call_t *)linux32_sys_signal },	/* 48 = signal */
+	    (sy_call_t *)linux32_sys_signal, 0, 0 },	/* 48 = signal */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_geteuid },		/* 49 = linux_geteuid16 */
+	    (sy_call_t *)sys_geteuid, 0, 0 },		/* 49 = linux_geteuid16 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getegid },		/* 50 = linux_getegid16 */
+	    (sy_call_t *)sys_getegid, 0, 0 },		/* 50 = linux_getegid16 */
 	{ ns(struct netbsd32_acct_args), 0,
-	    (sy_call_t *)netbsd32_acct },	/* 51 = netbsd32_acct */
+	    (sy_call_t *)netbsd32_acct, 0, 0 },	/* 51 = netbsd32_acct */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 52 = obsolete phys */
+	    linux_sys_nosys, 0, 0 },			/* 52 = obsolete phys */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 53 = obsolete lock */
+	    linux_sys_nosys, 0, 0 },			/* 53 = obsolete lock */
 	{ ns(struct linux32_sys_ioctl_args), 0,
-	    (sy_call_t *)linux32_sys_ioctl },	/* 54 = ioctl */
+	    (sy_call_t *)linux32_sys_ioctl, 0, 0 },	/* 54 = ioctl */
 	{ ns(struct linux32_sys_fcntl_args), 0,
-	    (sy_call_t *)linux32_sys_fcntl },	/* 55 = fcntl */
+	    (sy_call_t *)linux32_sys_fcntl, 0, 0 },	/* 55 = fcntl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 56 = obsolete mpx */
+	    linux_sys_nosys, 0, 0 },			/* 56 = obsolete mpx */
 	{ ns(struct netbsd32_setpgid_args), 0,
-	    (sy_call_t *)netbsd32_setpgid },	/* 57 = netbsd32_setpgid */
+	    (sy_call_t *)netbsd32_setpgid, 0, 0 },	/* 57 = netbsd32_setpgid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 58 = obsolete ulimit */
+	    linux_sys_nosys, 0, 0 },			/* 58 = obsolete ulimit */
 	{ ns(struct linux32_sys_oldolduname_args), 0,
-	    (sy_call_t *)linux32_sys_oldolduname },/* 59 = oldolduname */
+	    (sy_call_t *)linux32_sys_oldolduname, 0, 0 },/* 59 = oldolduname */
 	{ ns(struct netbsd32_umask_args), 0,
-	    (sy_call_t *)netbsd32_umask },	/* 60 = netbsd32_umask */
+	    (sy_call_t *)netbsd32_umask, 0, 0 },	/* 60 = netbsd32_umask */
 	{ ns(struct netbsd32_chroot_args), 0,
-	    (sy_call_t *)netbsd32_chroot },	/* 61 = netbsd32_chroot */
+	    (sy_call_t *)netbsd32_chroot, 0, 0 },	/* 61 = netbsd32_chroot */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 62 = unimplemented ustat */
+	    linux_sys_nosys, 0, 0 },			/* 62 = unimplemented ustat */
 	{ ns(struct netbsd32_dup2_args), 0,
-	    (sy_call_t *)netbsd32_dup2 },	/* 63 = netbsd32_dup2 */
+	    (sy_call_t *)netbsd32_dup2, 0, 0 },	/* 63 = netbsd32_dup2 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getppid },		/* 64 = getppid */
+	    (sy_call_t *)sys_getppid, 0, 0 },		/* 64 = getppid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpgrp },		/* 65 = getpgrp */
+	    (sy_call_t *)sys_getpgrp, 0, 0 },		/* 65 = getpgrp */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_setsid },		/* 66 = setsid */
+	    (sy_call_t *)sys_setsid, 0, 0 },		/* 66 = setsid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 67 = unimplemented sigaction */
+	    linux_sys_nosys, 0, 0 },			/* 67 = unimplemented sigaction */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux32_sys_siggetmask },/* 68 = siggetmask */
+	    (sy_call_t *)linux32_sys_siggetmask, 0, 0 },/* 68 = siggetmask */
 	{ ns(struct linux32_sys_sigsetmask_args), 0,
-	    (sy_call_t *)linux32_sys_sigsetmask },/* 69 = sigsetmask */
+	    (sy_call_t *)linux32_sys_sigsetmask, 0, 0 },/* 69 = sigsetmask */
 	{ ns(struct linux32_sys_setreuid16_args), 0,
-	    (sy_call_t *)linux32_sys_setreuid16 },/* 70 = setreuid16 */
+	    (sy_call_t *)linux32_sys_setreuid16, 0, 0 },/* 70 = setreuid16 */
 	{ ns(struct linux32_sys_setregid16_args), 0,
-	    (sy_call_t *)linux32_sys_setregid16 },/* 71 = setregid16 */
+	    (sy_call_t *)linux32_sys_setregid16, 0, 0 },/* 71 = setregid16 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 72 = unimplemented sigsuspend */
+	    linux_sys_nosys, 0, 0 },			/* 72 = unimplemented sigsuspend */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 73 = unimplemented sigpending */
+	    linux_sys_nosys, 0, 0 },			/* 73 = unimplemented sigpending */
 	{ ns(struct compat_43_netbsd32_osethostname_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_osethostname },/* 74 = compat_43_netbsd32_osethostname */
+	    (sy_call_t *)compat_43_netbsd32_osethostname, 0, 0 },/* 74 = compat_43_netbsd32_osethostname */
 	{ ns(struct linux32_sys_setrlimit_args), 0,
-	    (sy_call_t *)linux32_sys_setrlimit },/* 75 = setrlimit */
+	    (sy_call_t *)linux32_sys_setrlimit, 0, 0 },/* 75 = setrlimit */
 	{ ns(struct linux32_sys_getrlimit_args), 0,
-	    (sy_call_t *)linux32_sys_getrlimit },/* 76 = getrlimit */
+	    (sy_call_t *)linux32_sys_getrlimit, 0, 0 },/* 76 = getrlimit */
 	{ ns(struct compat_50_netbsd32_getrusage_args), 0,
-	    (sy_call_t *)compat_50_netbsd32_getrusage },/* 77 = compat_50_netbsd32_getrusage */
+	    (sy_call_t *)compat_50_netbsd32_getrusage, 0, 0 },/* 77 = compat_50_netbsd32_getrusage */
 	{ ns(struct linux32_sys_gettimeofday_args), 0,
-	    (sy_call_t *)linux32_sys_gettimeofday },/* 78 = gettimeofday */
+	    (sy_call_t *)linux32_sys_gettimeofday, 0, 0 },/* 78 = gettimeofday */
 	{ ns(struct linux32_sys_settimeofday_args), 0,
-	    (sy_call_t *)linux32_sys_settimeofday },/* 79 = settimeofday */
+	    (sy_call_t *)linux32_sys_settimeofday, 0, 0 },/* 79 = settimeofday */
 	{ ns(struct linux32_sys_getgroups16_args), 0,
-	    (sy_call_t *)linux32_sys_getgroups16 },/* 80 = getgroups16 */
+	    (sy_call_t *)linux32_sys_getgroups16, 0, 0 },/* 80 = getgroups16 */
 	{ ns(struct linux32_sys_setgroups16_args), 0,
-	    (sy_call_t *)linux32_sys_setgroups16 },/* 81 = setgroups16 */
+	    (sy_call_t *)linux32_sys_setgroups16, 0, 0 },/* 81 = setgroups16 */
 	{ ns(struct linux32_sys_oldselect_args), 0,
-	    (sy_call_t *)linux32_sys_oldselect },/* 82 = oldselect */
+	    (sy_call_t *)linux32_sys_oldselect, 0, 0 },/* 82 = oldselect */
 	{ ns(struct netbsd32_symlink_args), 0,
-	    (sy_call_t *)netbsd32_symlink },	/* 83 = netbsd32_symlink */
+	    (sy_call_t *)netbsd32_symlink, 0, 0 },	/* 83 = netbsd32_symlink */
 	{ ns(struct compat_43_netbsd32_lstat43_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_lstat43 },/* 84 = compat_43_netbsd32_lstat43 */
+	    (sy_call_t *)compat_43_netbsd32_lstat43, 0, 0 },/* 84 = compat_43_netbsd32_lstat43 */
 	{ ns(struct netbsd32_readlink_args), 0,
-	    (sy_call_t *)netbsd32_readlink },	/* 85 = netbsd32_readlink */
+	    (sy_call_t *)netbsd32_readlink, 0, 0 },	/* 85 = netbsd32_readlink */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 86 = unimplemented uselib */
+	    linux_sys_nosys, 0, 0 },			/* 86 = unimplemented uselib */
 	{ ns(struct linux32_sys_swapon_args), 0,
-	    (sy_call_t *)linux32_sys_swapon },	/* 87 = swapon */
+	    (sy_call_t *)linux32_sys_swapon, 0, 0 },	/* 87 = swapon */
 	{ ns(struct linux32_sys_reboot_args), 0,
-	    (sy_call_t *)linux32_sys_reboot },	/* 88 = reboot */
+	    (sy_call_t *)linux32_sys_reboot, 0, 0 },	/* 88 = reboot */
 	{ ns(struct linux32_sys_readdir_args), 0,
-	    (sy_call_t *)linux32_sys_readdir },	/* 89 = readdir */
+	    (sy_call_t *)linux32_sys_readdir, 0, 0 },	/* 89 = readdir */
 	{ ns(struct linux32_sys_old_mmap_args), 0,
-	    (sy_call_t *)linux32_sys_old_mmap },/* 90 = old_mmap */
+	    (sy_call_t *)linux32_sys_old_mmap, 0, 0 },/* 90 = old_mmap */
 	{ ns(struct netbsd32_munmap_args), 0,
-	    (sy_call_t *)netbsd32_munmap },	/* 91 = netbsd32_munmap */
+	    (sy_call_t *)netbsd32_munmap, 0, 0 },	/* 91 = netbsd32_munmap */
 	{ ns(struct compat_43_netbsd32_otruncate_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_otruncate },/* 92 = compat_43_netbsd32_otruncate */
+	    (sy_call_t *)compat_43_netbsd32_otruncate, 0, 0 },/* 92 = compat_43_netbsd32_otruncate */
 	{ ns(struct compat_43_netbsd32_oftruncate_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_oftruncate },/* 93 = compat_43_netbsd32_oftruncate */
+	    (sy_call_t *)compat_43_netbsd32_oftruncate, 0, 0 },/* 93 = compat_43_netbsd32_oftruncate */
 	{ ns(struct netbsd32_fchmod_args), 0,
-	    (sy_call_t *)netbsd32_fchmod },	/* 94 = netbsd32_fchmod */
+	    (sy_call_t *)netbsd32_fchmod, 0, 0 },	/* 94 = netbsd32_fchmod */
 	{ ns(struct linux32_sys_fchown16_args), 0,
-	    (sy_call_t *)linux32_sys_fchown16 },/* 95 = fchown16 */
+	    (sy_call_t *)linux32_sys_fchown16, 0, 0 },/* 95 = fchown16 */
 	{ ns(struct linux32_sys_getpriority_args), 0,
-	    (sy_call_t *)linux32_sys_getpriority },/* 96 = getpriority */
+	    (sy_call_t *)linux32_sys_getpriority, 0, 0 },/* 96 = getpriority */
 	{ ns(struct netbsd32_setpriority_args), 0,
-	    (sy_call_t *)netbsd32_setpriority },/* 97 = netbsd32_setpriority */
+	    (sy_call_t *)netbsd32_setpriority, 0, 0 },/* 97 = netbsd32_setpriority */
 	{ ns(struct netbsd32_profil_args), 0,
-	    (sy_call_t *)netbsd32_profil },	/* 98 = netbsd32_profil */
+	    (sy_call_t *)netbsd32_profil, 0, 0 },	/* 98 = netbsd32_profil */
 	{ ns(struct linux32_sys_statfs_args), 0,
-	    (sy_call_t *)linux32_sys_statfs },	/* 99 = statfs */
+	    (sy_call_t *)linux32_sys_statfs, 0, 0 },	/* 99 = statfs */
 	{ ns(struct linux32_sys_fstatfs_args), 0,
-	    (sy_call_t *)linux32_sys_fstatfs },	/* 100 = fstatfs */
+	    (sy_call_t *)linux32_sys_fstatfs, 0, 0 },	/* 100 = fstatfs */
 	{ ns(struct linux_sys_ioperm_args), 0,
-	    (sy_call_t *)linux_sys_ioperm },	/* 101 = ioperm */
+	    (sy_call_t *)linux_sys_ioperm, 0, 0 },	/* 101 = ioperm */
 	{ ns(struct linux32_sys_socketcall_args), 0,
-	    (sy_call_t *)linux32_sys_socketcall },/* 102 = socketcall */
+	    (sy_call_t *)linux32_sys_socketcall, 0, 0 },/* 102 = socketcall */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 103 = unimplemented syslog */
+	    linux_sys_nosys, 0, 0 },			/* 103 = unimplemented syslog */
 	{ ns(struct compat_50_netbsd32_setitimer_args), 0,
-	    (sy_call_t *)compat_50_netbsd32_setitimer },/* 104 = compat_50_netbsd32_setitimer */
+	    (sy_call_t *)compat_50_netbsd32_setitimer, 0, 0 },/* 104 = compat_50_netbsd32_setitimer */
 	{ ns(struct compat_50_netbsd32_getitimer_args), 0,
-	    (sy_call_t *)compat_50_netbsd32_getitimer },/* 105 = compat_50_netbsd32_getitimer */
+	    (sy_call_t *)compat_50_netbsd32_getitimer, 0, 0 },/* 105 = compat_50_netbsd32_getitimer */
 	{ ns(struct linux32_sys_stat_args), 0,
-	    (sy_call_t *)linux32_sys_stat },	/* 106 = stat */
+	    (sy_call_t *)linux32_sys_stat, 0, 0 },	/* 106 = stat */
 	{ ns(struct linux32_sys_lstat_args), 0,
-	    (sy_call_t *)linux32_sys_lstat },	/* 107 = lstat */
+	    (sy_call_t *)linux32_sys_lstat, 0, 0 },	/* 107 = lstat */
 	{ ns(struct linux32_sys_fstat_args), 0,
-	    (sy_call_t *)linux32_sys_fstat },	/* 108 = fstat */
+	    (sy_call_t *)linux32_sys_fstat, 0, 0 },	/* 108 = fstat */
 	{ ns(struct linux32_sys_olduname_args), 0,
-	    (sy_call_t *)linux32_sys_olduname },/* 109 = olduname */
+	    (sy_call_t *)linux32_sys_olduname, 0, 0 },/* 109 = olduname */
 	{ ns(struct linux_sys_iopl_args), 0,
-	    (sy_call_t *)linux_sys_iopl },	/* 110 = iopl */
+	    (sy_call_t *)linux_sys_iopl, 0, 0 },	/* 110 = iopl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 111 = unimplemented vhangup */
+	    linux_sys_nosys, 0, 0 },			/* 111 = unimplemented vhangup */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 112 = unimplemented idle */
+	    linux_sys_nosys, 0, 0 },			/* 112 = unimplemented idle */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 113 = unimplemented vm86old */
+	    linux_sys_nosys, 0, 0 },			/* 113 = unimplemented vm86old */
 	{ ns(struct linux32_sys_wait4_args), 0,
-	    (sy_call_t *)linux32_sys_wait4 },	/* 114 = wait4 */
+	    (sy_call_t *)linux32_sys_wait4, 0, 0 },	/* 114 = wait4 */
 	{ ns(struct linux32_sys_swapoff_args), 0,
-	    (sy_call_t *)linux32_sys_swapoff },	/* 115 = swapoff */
+	    (sy_call_t *)linux32_sys_swapoff, 0, 0 },	/* 115 = swapoff */
 	{ ns(struct linux32_sys_sysinfo_args), 0,
-	    (sy_call_t *)linux32_sys_sysinfo },	/* 116 = sysinfo */
+	    (sy_call_t *)linux32_sys_sysinfo, 0, 0 },	/* 116 = sysinfo */
 	{ ns(struct linux32_sys_ipc_args), 0,
-	    (sy_call_t *)linux32_sys_ipc },	/* 117 = ipc */
+	    (sy_call_t *)linux32_sys_ipc, 0, 0 },	/* 117 = ipc */
 	{ ns(struct netbsd32_fsync_args), 0,
-	    (sy_call_t *)netbsd32_fsync },	/* 118 = netbsd32_fsync */
+	    (sy_call_t *)netbsd32_fsync, 0, 0 },	/* 118 = netbsd32_fsync */
 	{ ns(struct linux32_sys_sigreturn_args), 0,
-	    (sy_call_t *)linux32_sys_sigreturn },/* 119 = sigreturn */
+	    (sy_call_t *)linux32_sys_sigreturn, 0, 0 },/* 119 = sigreturn */
 	{ ns(struct linux32_sys_clone_args), 0,
-	    (sy_call_t *)linux32_sys_clone },	/* 120 = clone */
+	    (sy_call_t *)linux32_sys_clone, 0, 0 },	/* 120 = clone */
 	{ ns(struct linux32_sys_setdomainname_args), 0,
-	    (sy_call_t *)linux32_sys_setdomainname },/* 121 = setdomainname */
+	    (sy_call_t *)linux32_sys_setdomainname, 0, 0 },/* 121 = setdomainname */
 	{ ns(struct linux32_sys_uname_args), 0,
-	    (sy_call_t *)linux32_sys_uname },	/* 122 = uname */
+	    (sy_call_t *)linux32_sys_uname, 0, 0 },	/* 122 = uname */
 	{ ns(struct linux32_sys_modify_ldt_args), 0,
-	    (sy_call_t *)linux32_sys_modify_ldt },/* 123 = modify_ldt */
+	    (sy_call_t *)linux32_sys_modify_ldt, 0, 0 },/* 123 = modify_ldt */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 124 = unimplemented adjtimex */
+	    linux_sys_nosys, 0, 0 },			/* 124 = unimplemented adjtimex */
 	{ ns(struct linux32_sys_mprotect_args), 0,
-	    (sy_call_t *)linux32_sys_mprotect },/* 125 = mprotect */
+	    (sy_call_t *)linux32_sys_mprotect, 0, 0 },/* 125 = mprotect */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 126 = unimplemented sigprocmask */
+	    linux_sys_nosys, 0, 0 },			/* 126 = unimplemented sigprocmask */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 127 = unimplemented create_module */
+	    linux_sys_nosys, 0, 0 },			/* 127 = unimplemented create_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 128 = unimplemented init_module */
+	    linux_sys_nosys, 0, 0 },			/* 128 = unimplemented init_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 129 = unimplemented delete_module */
+	    linux_sys_nosys, 0, 0 },			/* 129 = unimplemented delete_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 130 = unimplemented get_kernel_syms */
+	    linux_sys_nosys, 0, 0 },			/* 130 = unimplemented get_kernel_syms */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 131 = unimplemented quotactl */
+	    linux_sys_nosys, 0, 0 },			/* 131 = unimplemented quotactl */
 	{ ns(struct netbsd32_getpgid_args), 0,
-	    (sy_call_t *)netbsd32_getpgid },	/* 132 = netbsd32_getpgid */
+	    (sy_call_t *)netbsd32_getpgid, 0, 0 },	/* 132 = netbsd32_getpgid */
 	{ ns(struct netbsd32_fchdir_args), 0,
-	    (sy_call_t *)netbsd32_fchdir },	/* 133 = netbsd32_fchdir */
+	    (sy_call_t *)netbsd32_fchdir, 0, 0 },	/* 133 = netbsd32_fchdir */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 134 = unimplemented bdflush */
+	    linux_sys_nosys, 0, 0 },			/* 134 = unimplemented bdflush */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 135 = unimplemented sysfs */
+	    linux_sys_nosys, 0, 0 },			/* 135 = unimplemented sysfs */
 	{ ns(struct linux32_sys_personality_args), 0,
-	    (sy_call_t *)linux32_sys_personality },/* 136 = personality */
+	    (sy_call_t *)linux32_sys_personality, 0, 0 },/* 136 = personality */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 137 = unimplemented afs_syscall */
+	    linux_sys_nosys, 0, 0 },			/* 137 = unimplemented afs_syscall */
 	{ ns(struct linux32_sys_setfsuid_args), 0,
-	    (sy_call_t *)linux32_sys_setfsuid },/* 138 = setfsuid16 */
+	    (sy_call_t *)linux32_sys_setfsuid, 0, 0 },/* 138 = setfsuid16 */
 	{ ns(struct linux32_sys_setfsgid_args), 0,
-	    (sy_call_t *)linux32_sys_setfsgid },/* 139 = setfsgid16 */
+	    (sy_call_t *)linux32_sys_setfsgid, 0, 0 },/* 139 = setfsgid16 */
 	{ ns(struct linux32_sys_llseek_args), 0,
-	    (sy_call_t *)linux32_sys_llseek },	/* 140 = llseek */
+	    (sy_call_t *)linux32_sys_llseek, 0, 0 },	/* 140 = llseek */
 	{ ns(struct linux32_sys_getdents_args), 0,
-	    (sy_call_t *)linux32_sys_getdents },/* 141 = getdents */
+	    (sy_call_t *)linux32_sys_getdents, 0, 0 },/* 141 = getdents */
 	{ ns(struct linux32_sys_select_args), 0,
-	    (sy_call_t *)linux32_sys_select },	/* 142 = select */
+	    (sy_call_t *)linux32_sys_select, 0, 0 },	/* 142 = select */
 	{ ns(struct netbsd32_flock_args), 0,
-	    (sy_call_t *)netbsd32_flock },	/* 143 = netbsd32_flock */
+	    (sy_call_t *)netbsd32_flock, 0, 0 },	/* 143 = netbsd32_flock */
 	{ ns(struct netbsd32___msync13_args), 0,
-	    (sy_call_t *)netbsd32___msync13 },	/* 144 = netbsd32___msync13 */
+	    (sy_call_t *)netbsd32___msync13, 0, 0 },	/* 144 = netbsd32___msync13 */
 	{ ns(struct netbsd32_readv_args), 0,
-	    (sy_call_t *)netbsd32_readv },	/* 145 = netbsd32_readv */
+	    (sy_call_t *)netbsd32_readv, 0, 0 },	/* 145 = netbsd32_readv */
 	{ ns(struct netbsd32_writev_args), 0,
-	    (sy_call_t *)netbsd32_writev },	/* 146 = netbsd32_writev */
+	    (sy_call_t *)netbsd32_writev, 0, 0 },	/* 146 = netbsd32_writev */
 	{ ns(struct netbsd32_getsid_args), 0,
-	    (sy_call_t *)netbsd32_getsid },	/* 147 = netbsd32_getsid */
+	    (sy_call_t *)netbsd32_getsid, 0, 0 },	/* 147 = netbsd32_getsid */
 	{ ns(struct linux32_sys_fdatasync_args), 0,
-	    (sy_call_t *)linux32_sys_fdatasync },/* 148 = fdatasync */
+	    (sy_call_t *)linux32_sys_fdatasync, 0, 0 },/* 148 = fdatasync */
 	{ ns(struct linux32_sys___sysctl_args), 0,
-	    (sy_call_t *)linux32_sys___sysctl },/* 149 = __sysctl */
+	    (sy_call_t *)linux32_sys___sysctl, 0, 0 },/* 149 = __sysctl */
 	{ ns(struct netbsd32_mlock_args), 0,
-	    (sy_call_t *)netbsd32_mlock },	/* 150 = netbsd32_mlock */
+	    (sy_call_t *)netbsd32_mlock, 0, 0 },	/* 150 = netbsd32_mlock */
 	{ ns(struct netbsd32_munlock_args), 0,
-	    (sy_call_t *)netbsd32_munlock },	/* 151 = netbsd32_munlock */
+	    (sy_call_t *)netbsd32_munlock, 0, 0 },	/* 151 = netbsd32_munlock */
 	{ ns(struct netbsd32_mlockall_args), 0,
-	    (sy_call_t *)netbsd32_mlockall },	/* 152 = netbsd32_mlockall */
+	    (sy_call_t *)netbsd32_mlockall, 0, 0 },	/* 152 = netbsd32_mlockall */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_munlockall },	/* 153 = munlockall */
+	    (sy_call_t *)sys_munlockall, 0, 0 },	/* 153 = munlockall */
 	{ ns(struct linux32_sys_sched_setparam_args), 0,
-	    (sy_call_t *)linux32_sys_sched_setparam },/* 154 = sched_setparam */
+	    (sy_call_t *)linux32_sys_sched_setparam, 0, 0 },/* 154 = sched_setparam */
 	{ ns(struct linux32_sys_sched_getparam_args), 0,
-	    (sy_call_t *)linux32_sys_sched_getparam },/* 155 = sched_getparam */
+	    (sy_call_t *)linux32_sys_sched_getparam, 0, 0 },/* 155 = sched_getparam */
 	{ ns(struct linux32_sys_sched_setscheduler_args), 0,
-	    (sy_call_t *)linux32_sys_sched_setscheduler },/* 156 = sched_setscheduler */
+	    (sy_call_t *)linux32_sys_sched_setscheduler, 0, 0 },/* 156 = sched_setscheduler */
 	{ ns(struct linux32_sys_sched_getscheduler_args), 0,
-	    (sy_call_t *)linux32_sys_sched_getscheduler },/* 157 = sched_getscheduler */
+	    (sy_call_t *)linux32_sys_sched_getscheduler, 0, 0 },/* 157 = sched_getscheduler */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_sched_yield },/* 158 = sched_yield */
+	    (sy_call_t *)linux_sys_sched_yield, 0, 0 },/* 158 = sched_yield */
 	{ ns(struct linux32_sys_sched_get_priority_max_args), 0,
-	    (sy_call_t *)linux32_sys_sched_get_priority_max },/* 159 = sched_get_priority_max */
+	    (sy_call_t *)linux32_sys_sched_get_priority_max, 0, 0 },/* 159 = sched_get_priority_max */
 	{ ns(struct linux32_sys_sched_get_priority_min_args), 0,
-	    (sy_call_t *)linux32_sys_sched_get_priority_min },/* 160 = sched_get_priority_min */
+	    (sy_call_t *)linux32_sys_sched_get_priority_min, 0, 0 },/* 160 = sched_get_priority_min */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 161 = unimplemented sched_rr_get_interval */
+	    linux_sys_nosys, 0, 0 },			/* 161 = unimplemented sched_rr_get_interval */
 	{ ns(struct linux32_sys_nanosleep_args), 0,
-	    (sy_call_t *)linux32_sys_nanosleep },/* 162 = nanosleep */
+	    (sy_call_t *)linux32_sys_nanosleep, 0, 0 },/* 162 = nanosleep */
 	{ ns(struct linux32_sys_mremap_args), 0,
-	    (sy_call_t *)linux32_sys_mremap },	/* 163 = mremap */
+	    (sy_call_t *)linux32_sys_mremap, 0, 0 },	/* 163 = mremap */
 	{ ns(struct linux32_sys_setresuid16_args), 0,
-	    (sy_call_t *)linux32_sys_setresuid16 },/* 164 = setresuid16 */
+	    (sy_call_t *)linux32_sys_setresuid16, 0, 0 },/* 164 = setresuid16 */
 	{ ns(struct linux32_sys_getresuid16_args), 0,
-	    (sy_call_t *)linux32_sys_getresuid16 },/* 165 = getresuid16 */
+	    (sy_call_t *)linux32_sys_getresuid16, 0, 0 },/* 165 = getresuid16 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 166 = unimplemented vm86 */
+	    linux_sys_nosys, 0, 0 },			/* 166 = unimplemented vm86 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 167 = unimplemented query_module */
+	    linux_sys_nosys, 0, 0 },			/* 167 = unimplemented query_module */
 	{ ns(struct netbsd32_poll_args), 0,
-	    (sy_call_t *)netbsd32_poll },	/* 168 = netbsd32_poll */
+	    (sy_call_t *)netbsd32_poll, 0, 0 },	/* 168 = netbsd32_poll */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 169 = unimplemented nfsservctl */
+	    linux_sys_nosys, 0, 0 },			/* 169 = unimplemented nfsservctl */
 	{ ns(struct linux32_sys_setresgid16_args), 0,
-	    (sy_call_t *)linux32_sys_setresgid16 },/* 170 = setresgid16 */
+	    (sy_call_t *)linux32_sys_setresgid16, 0, 0 },/* 170 = setresgid16 */
 	{ ns(struct linux32_sys_getresgid16_args), 0,
-	    (sy_call_t *)linux32_sys_getresgid16 },/* 171 = getresgid16 */
+	    (sy_call_t *)linux32_sys_getresgid16, 0, 0 },/* 171 = getresgid16 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 172 = unimplemented prctl */
+	    linux_sys_nosys, 0, 0 },			/* 172 = unimplemented prctl */
 	{ ns(struct linux32_sys_rt_sigreturn_args), 0,
-	    (sy_call_t *)linux32_sys_rt_sigreturn },/* 173 = rt_sigreturn */
+	    (sy_call_t *)linux32_sys_rt_sigreturn, 0, 0 },/* 173 = rt_sigreturn */
 	{ ns(struct linux32_sys_rt_sigaction_args), 0,
-	    (sy_call_t *)linux32_sys_rt_sigaction },/* 174 = rt_sigaction */
+	    (sy_call_t *)linux32_sys_rt_sigaction, 0, 0 },/* 174 = rt_sigaction */
 	{ ns(struct linux32_sys_rt_sigprocmask_args), 0,
-	    (sy_call_t *)linux32_sys_rt_sigprocmask },/* 175 = rt_sigprocmask */
+	    (sy_call_t *)linux32_sys_rt_sigprocmask, 0, 0 },/* 175 = rt_sigprocmask */
 	{ ns(struct linux32_sys_rt_sigpending_args), 0,
-	    (sy_call_t *)linux32_sys_rt_sigpending },/* 176 = rt_sigpending */
+	    (sy_call_t *)linux32_sys_rt_sigpending, 0, 0 },/* 176 = rt_sigpending */
 	{ ns(struct linux32_sys_rt_sigtimedwait_args), 0,
-	    (sy_call_t *)linux32_sys_rt_sigtimedwait },/* 177 = rt_sigtimedwait */
+	    (sy_call_t *)linux32_sys_rt_sigtimedwait, 0, 0 },/* 177 = rt_sigtimedwait */
 	{ ns(struct linux32_sys_rt_queueinfo_args), 0,
-	    (sy_call_t *)linux32_sys_rt_queueinfo },/* 178 = rt_queueinfo */
+	    (sy_call_t *)linux32_sys_rt_queueinfo, 0, 0 },/* 178 = rt_queueinfo */
 	{ ns(struct linux32_sys_rt_sigsuspend_args), 0,
-	    (sy_call_t *)linux32_sys_rt_sigsuspend },/* 179 = rt_sigsuspend */
+	    (sy_call_t *)linux32_sys_rt_sigsuspend, 0, 0 },/* 179 = rt_sigsuspend */
 	{ ns(struct linux32_sys_pread_args), 0,
-	    (sy_call_t *)linux32_sys_pread },	/* 180 = pread */
+	    (sy_call_t *)linux32_sys_pread, 0, 0 },	/* 180 = pread */
 	{ ns(struct linux32_sys_pwrite_args), 0,
-	    (sy_call_t *)linux32_sys_pwrite },	/* 181 = pwrite */
+	    (sy_call_t *)linux32_sys_pwrite, 0, 0 },	/* 181 = pwrite */
 	{ ns(struct linux32_sys_chown16_args), 0,
-	    (sy_call_t *)linux32_sys_chown16 },	/* 182 = chown16 */
+	    (sy_call_t *)linux32_sys_chown16, 0, 0 },	/* 182 = chown16 */
 	{ ns(struct netbsd32___getcwd_args), 0,
-	    (sy_call_t *)netbsd32___getcwd },	/* 183 = netbsd32___getcwd */
+	    (sy_call_t *)netbsd32___getcwd, 0, 0 },	/* 183 = netbsd32___getcwd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 184 = unimplemented capget */
+	    linux_sys_nosys, 0, 0 },			/* 184 = unimplemented capget */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 185 = unimplemented capset */
+	    linux_sys_nosys, 0, 0 },			/* 185 = unimplemented capset */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 186 = unimplemented sigaltstack */
+	    linux_sys_nosys, 0, 0 },			/* 186 = unimplemented sigaltstack */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 187 = unimplemented sendfile */
+	    linux_sys_nosys, 0, 0 },			/* 187 = unimplemented sendfile */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 188 = unimplemented getpmsg */
+	    linux_sys_nosys, 0, 0 },			/* 188 = unimplemented getpmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 189 = unimplemented putpmsg */
+	    linux_sys_nosys, 0, 0 },			/* 189 = unimplemented putpmsg */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys___vfork14 },	/* 190 = __vfork14 */
+	    (sy_call_t *)sys___vfork14, 0, 0 },	/* 190 = __vfork14 */
 	{ ns(struct linux32_sys_ugetrlimit_args), 0,
-	    (sy_call_t *)linux32_sys_ugetrlimit },/* 191 = ugetrlimit */
+	    (sy_call_t *)linux32_sys_ugetrlimit, 0, 0 },/* 191 = ugetrlimit */
 	{ ns(struct linux32_sys_mmap2_args), 0,
-	    (sy_call_t *)linux32_sys_mmap2 },	/* 192 = mmap2 */
+	    (sy_call_t *)linux32_sys_mmap2, 0, 0 },	/* 192 = mmap2 */
 	{ ns(struct linux32_sys_truncate64_args), 0,
-	    (sy_call_t *)linux32_sys_truncate64 },/* 193 = truncate64 */
+	    (sy_call_t *)linux32_sys_truncate64, 0, 0 },/* 193 = truncate64 */
 	{ ns(struct linux32_sys_ftruncate64_args), 0,
-	    (sy_call_t *)linux32_sys_ftruncate64 },/* 194 = ftruncate64 */
+	    (sy_call_t *)linux32_sys_ftruncate64, 0, 0 },/* 194 = ftruncate64 */
 	{ ns(struct linux32_sys_stat64_args), 0,
-	    (sy_call_t *)linux32_sys_stat64 },	/* 195 = stat64 */
+	    (sy_call_t *)linux32_sys_stat64, 0, 0 },	/* 195 = stat64 */
 	{ ns(struct linux32_sys_lstat64_args), 0,
-	    (sy_call_t *)linux32_sys_lstat64 },	/* 196 = lstat64 */
+	    (sy_call_t *)linux32_sys_lstat64, 0, 0 },	/* 196 = lstat64 */
 	{ ns(struct linux32_sys_fstat64_args), 0,
-	    (sy_call_t *)linux32_sys_fstat64 },	/* 197 = fstat64 */
+	    (sy_call_t *)linux32_sys_fstat64, 0, 0 },	/* 197 = fstat64 */
 	{ ns(struct netbsd32___posix_lchown_args), 0,
-	    (sy_call_t *)netbsd32___posix_lchown },/* 198 = netbsd32___posix_lchown */
+	    (sy_call_t *)netbsd32___posix_lchown, 0, 0 },/* 198 = netbsd32___posix_lchown */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid },		/* 199 = getuid */
+	    (sy_call_t *)sys_getuid, 0, 0 },		/* 199 = getuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid },		/* 200 = getgid */
+	    (sy_call_t *)sys_getgid, 0, 0 },		/* 200 = getgid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_geteuid },		/* 201 = geteuid */
+	    (sy_call_t *)sys_geteuid, 0, 0 },		/* 201 = geteuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getegid },		/* 202 = getegid */
+	    (sy_call_t *)sys_getegid, 0, 0 },		/* 202 = getegid */
 	{ ns(struct netbsd32_setreuid_args), 0,
-	    (sy_call_t *)netbsd32_setreuid },	/* 203 = netbsd32_setreuid */
+	    (sy_call_t *)netbsd32_setreuid, 0, 0 },	/* 203 = netbsd32_setreuid */
 	{ ns(struct netbsd32_setregid_args), 0,
-	    (sy_call_t *)netbsd32_setregid },	/* 204 = netbsd32_setregid */
+	    (sy_call_t *)netbsd32_setregid, 0, 0 },	/* 204 = netbsd32_setregid */
 	{ ns(struct netbsd32_getgroups_args), 0,
-	    (sy_call_t *)netbsd32_getgroups },	/* 205 = netbsd32_getgroups */
+	    (sy_call_t *)netbsd32_getgroups, 0, 0 },	/* 205 = netbsd32_getgroups */
 	{ ns(struct netbsd32_setgroups_args), 0,
-	    (sy_call_t *)netbsd32_setgroups },	/* 206 = netbsd32_setgroups */
+	    (sy_call_t *)netbsd32_setgroups, 0, 0 },	/* 206 = netbsd32_setgroups */
 	{ ns(struct netbsd32___posix_fchown_args), 0,
-	    (sy_call_t *)netbsd32___posix_fchown },/* 207 = netbsd32___posix_fchown */
+	    (sy_call_t *)netbsd32___posix_fchown, 0, 0 },/* 207 = netbsd32___posix_fchown */
 	{ ns(struct linux32_sys_setresuid_args), 0,
-	    (sy_call_t *)linux32_sys_setresuid },/* 208 = setresuid */
+	    (sy_call_t *)linux32_sys_setresuid, 0, 0 },/* 208 = setresuid */
 	{ ns(struct linux32_sys_getresuid_args), 0,
-	    (sy_call_t *)linux32_sys_getresuid },/* 209 = getresuid */
+	    (sy_call_t *)linux32_sys_getresuid, 0, 0 },/* 209 = getresuid */
 	{ ns(struct linux32_sys_setresgid_args), 0,
-	    (sy_call_t *)linux32_sys_setresgid },/* 210 = setresgid */
+	    (sy_call_t *)linux32_sys_setresgid, 0, 0 },/* 210 = setresgid */
 	{ ns(struct linux32_sys_getresgid_args), 0,
-	    (sy_call_t *)linux32_sys_getresgid },/* 211 = getresgid */
+	    (sy_call_t *)linux32_sys_getresgid, 0, 0 },/* 211 = getresgid */
 	{ ns(struct netbsd32___posix_chown_args), 0,
-	    (sy_call_t *)netbsd32___posix_chown },/* 212 = netbsd32___posix_chown */
+	    (sy_call_t *)netbsd32___posix_chown, 0, 0 },/* 212 = netbsd32___posix_chown */
 	{ ns(struct netbsd32_setuid_args), 0,
-	    (sy_call_t *)netbsd32_setuid },	/* 213 = netbsd32_setuid */
+	    (sy_call_t *)netbsd32_setuid, 0, 0 },	/* 213 = netbsd32_setuid */
 	{ ns(struct netbsd32_setgid_args), 0,
-	    (sy_call_t *)netbsd32_setgid },	/* 214 = netbsd32_setgid */
+	    (sy_call_t *)netbsd32_setgid, 0, 0 },	/* 214 = netbsd32_setgid */
 	{ ns(struct linux32_sys_setfsuid_args), 0,
-	    (sy_call_t *)linux32_sys_setfsuid },/* 215 = setfsuid */
+	    (sy_call_t *)linux32_sys_setfsuid, 0, 0 },/* 215 = setfsuid */
 	{ ns(struct linux32_sys_setfsgid_args), 0,
-	    (sy_call_t *)linux32_sys_setfsgid },/* 216 = setfsgid */
+	    (sy_call_t *)linux32_sys_setfsgid, 0, 0 },/* 216 = setfsgid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 217 = unimplemented pivot_root */
+	    linux_sys_nosys, 0, 0 },			/* 217 = unimplemented pivot_root */
 	{ ns(struct netbsd32_mincore_args), 0,
-	    (sy_call_t *)netbsd32_mincore },	/* 218 = netbsd32_mincore */
+	    (sy_call_t *)netbsd32_mincore, 0, 0 },	/* 218 = netbsd32_mincore */
 	{ ns(struct netbsd32_madvise_args), 0,
-	    (sy_call_t *)netbsd32_madvise },	/* 219 = netbsd32_madvise */
+	    (sy_call_t *)netbsd32_madvise, 0, 0 },	/* 219 = netbsd32_madvise */
 	{ ns(struct linux32_sys_getdents64_args), 0,
-	    (sy_call_t *)linux32_sys_getdents64 },/* 220 = getdents64 */
+	    (sy_call_t *)linux32_sys_getdents64, 0, 0 },/* 220 = getdents64 */
 #define linux32_sys_fcntl64 linux32_sys_fcntl
 #define linux32_sys_fcntl64_args linux32_sys_fcntl_args
 	{ ns(struct linux32_sys_fcntl64_args), 0,
-	    (sy_call_t *)linux32_sys_fcntl64 },	/* 221 = fcntl64 */
+	    (sy_call_t *)linux32_sys_fcntl64, 0, 0 },	/* 221 = fcntl64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 222 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 222 = unimplemented / * unused * / */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 223 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 223 = unimplemented / * unused * / */
 	{ 0, 0, 0,
-	    (sy_call_t *)linux_sys_gettid },	/* 224 = gettid */
+	    (sy_call_t *)linux_sys_gettid, 0, 0 },	/* 224 = gettid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 225 = unimplemented readahead */
+	    linux_sys_nosys, 0, 0 },			/* 225 = unimplemented readahead */
 	{ ns(struct netbsd32_setxattr_args), 0,
-	    (sy_call_t *)netbsd32_setxattr },	/* 226 = netbsd32_setxattr */
+	    (sy_call_t *)netbsd32_setxattr, 0, 0 },	/* 226 = netbsd32_setxattr */
 	{ ns(struct netbsd32_lsetxattr_args), 0,
-	    (sy_call_t *)netbsd32_lsetxattr },	/* 227 = netbsd32_lsetxattr */
+	    (sy_call_t *)netbsd32_lsetxattr, 0, 0 },	/* 227 = netbsd32_lsetxattr */
 	{ ns(struct netbsd32_fsetxattr_args), 0,
-	    (sy_call_t *)netbsd32_fsetxattr },	/* 228 = netbsd32_fsetxattr */
+	    (sy_call_t *)netbsd32_fsetxattr, 0, 0 },	/* 228 = netbsd32_fsetxattr */
 	{ ns(struct netbsd32_getxattr_args), 0,
-	    (sy_call_t *)netbsd32_getxattr },	/* 229 = netbsd32_getxattr */
+	    (sy_call_t *)netbsd32_getxattr, 0, 0 },	/* 229 = netbsd32_getxattr */
 	{ ns(struct netbsd32_lgetxattr_args), 0,
-	    (sy_call_t *)netbsd32_lgetxattr },	/* 230 = netbsd32_lgetxattr */
+	    (sy_call_t *)netbsd32_lgetxattr, 0, 0 },	/* 230 = netbsd32_lgetxattr */
 	{ ns(struct netbsd32_fgetxattr_args), 0,
-	    (sy_call_t *)netbsd32_fgetxattr },	/* 231 = netbsd32_fgetxattr */
+	    (sy_call_t *)netbsd32_fgetxattr, 0, 0 },	/* 231 = netbsd32_fgetxattr */
 	{ ns(struct netbsd32_listxattr_args), 0,
-	    (sy_call_t *)netbsd32_listxattr },	/* 232 = netbsd32_listxattr */
+	    (sy_call_t *)netbsd32_listxattr, 0, 0 },	/* 232 = netbsd32_listxattr */
 	{ ns(struct netbsd32_llistxattr_args), 0,
-	    (sy_call_t *)netbsd32_llistxattr },	/* 233 = netbsd32_llistxattr */
+	    (sy_call_t *)netbsd32_llistxattr, 0, 0 },	/* 233 = netbsd32_llistxattr */
 	{ ns(struct netbsd32_flistxattr_args), 0,
-	    (sy_call_t *)netbsd32_flistxattr },	/* 234 = netbsd32_flistxattr */
+	    (sy_call_t *)netbsd32_flistxattr, 0, 0 },	/* 234 = netbsd32_flistxattr */
 	{ ns(struct netbsd32_removexattr_args), 0,
-	    (sy_call_t *)netbsd32_removexattr },/* 235 = netbsd32_removexattr */
+	    (sy_call_t *)netbsd32_removexattr, 0, 0 },/* 235 = netbsd32_removexattr */
 	{ ns(struct netbsd32_lremovexattr_args), 0,
-	    (sy_call_t *)netbsd32_lremovexattr },/* 236 = netbsd32_lremovexattr */
+	    (sy_call_t *)netbsd32_lremovexattr, 0, 0 },/* 236 = netbsd32_lremovexattr */
 	{ ns(struct netbsd32_fremovexattr_args), 0,
-	    (sy_call_t *)netbsd32_fremovexattr },/* 237 = netbsd32_fremovexattr */
+	    (sy_call_t *)netbsd32_fremovexattr, 0, 0 },/* 237 = netbsd32_fremovexattr */
 	{ ns(struct linux32_sys_tkill_args), 0,
-	    (sy_call_t *)linux32_sys_tkill },	/* 238 = tkill */
+	    (sy_call_t *)linux32_sys_tkill, 0, 0 },	/* 238 = tkill */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 239 = unimplemented sendfile64 */
+	    linux_sys_nosys, 0, 0 },			/* 239 = unimplemented sendfile64 */
 	{ ns(struct linux32_sys_futex_args), 0,
-	    (sy_call_t *)linux32_sys_futex },	/* 240 = futex */
+	    (sy_call_t *)linux32_sys_futex, 0, 0 },	/* 240 = futex */
 	{ ns(struct linux32_sys_sched_setaffinity_args), 0,
-	    (sy_call_t *)linux32_sys_sched_setaffinity },/* 241 = sched_setaffinity */
+	    (sy_call_t *)linux32_sys_sched_setaffinity, 0, 0 },/* 241 = sched_setaffinity */
 	{ ns(struct linux32_sys_sched_getaffinity_args), 0,
-	    (sy_call_t *)linux32_sys_sched_getaffinity },/* 242 = sched_getaffinity */
+	    (sy_call_t *)linux32_sys_sched_getaffinity, 0, 0 },/* 242 = sched_getaffinity */
 	{ ns(struct linux32_sys_set_thread_area_args), 0,
-	    (sy_call_t *)linux32_sys_set_thread_area },/* 243 = set_thread_area */
+	    (sy_call_t *)linux32_sys_set_thread_area, 0, 0 },/* 243 = set_thread_area */
 	{ ns(struct linux32_sys_get_thread_area_args), 0,
-	    (sy_call_t *)linux32_sys_get_thread_area },/* 244 = get_thread_area */
+	    (sy_call_t *)linux32_sys_get_thread_area, 0, 0 },/* 244 = get_thread_area */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 245 = unimplemented io_setup */
+	    linux_sys_nosys, 0, 0 },			/* 245 = unimplemented io_setup */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 246 = unimplemented io_destroy */
+	    linux_sys_nosys, 0, 0 },			/* 246 = unimplemented io_destroy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 247 = unimplemented io_getevents */
+	    linux_sys_nosys, 0, 0 },			/* 247 = unimplemented io_getevents */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 248 = unimplemented io_submit */
+	    linux_sys_nosys, 0, 0 },			/* 248 = unimplemented io_submit */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 249 = unimplemented io_cancel */
+	    linux_sys_nosys, 0, 0 },			/* 249 = unimplemented io_cancel */
 	{ ns(struct linux32_sys_fadvise64_args), 0,
-	    (sy_call_t *)linux32_sys_fadvise64 },/* 250 = fadvise64 */
+	    (sy_call_t *)linux32_sys_fadvise64, 0, 0 },/* 250 = fadvise64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 251 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 251 = unimplemented / * unused * / */
 	{ ns(struct linux32_sys_exit_group_args), 0,
-	    (sy_call_t *)linux32_sys_exit_group },/* 252 = exit_group */
+	    (sy_call_t *)linux32_sys_exit_group, 0, 0 },/* 252 = exit_group */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 253 = unimplemented lookup_dcookie */
+	    linux_sys_nosys, 0, 0 },			/* 253 = unimplemented lookup_dcookie */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 254 = unimplemented epoll_create */
+	    linux_sys_nosys, 0, 0 },			/* 254 = unimplemented epoll_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 255 = unimplemented epoll_ctl */
+	    linux_sys_nosys, 0, 0 },			/* 255 = unimplemented epoll_ctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 256 = unimplemented epoll_wait */
+	    linux_sys_nosys, 0, 0 },			/* 256 = unimplemented epoll_wait */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 257 = unimplemented remap_file_pages */
+	    linux_sys_nosys, 0, 0 },			/* 257 = unimplemented remap_file_pages */
 	{ ns(struct linux32_sys_set_tid_address_args), 0,
-	    (sy_call_t *)linux32_sys_set_tid_address },/* 258 = set_tid_address */
+	    (sy_call_t *)linux32_sys_set_tid_address, 0, 0 },/* 258 = set_tid_address */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 259 = unimplemented timer_create */
+	    linux_sys_nosys, 0, 0 },			/* 259 = unimplemented timer_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 260 = unimplemented timer_settime */
+	    linux_sys_nosys, 0, 0 },			/* 260 = unimplemented timer_settime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 261 = unimplemented timer_gettime */
+	    linux_sys_nosys, 0, 0 },			/* 261 = unimplemented timer_gettime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 262 = unimplemented timer_getoverrun */
+	    linux_sys_nosys, 0, 0 },			/* 262 = unimplemented timer_getoverrun */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 263 = unimplemented timer_delete */
+	    linux_sys_nosys, 0, 0 },			/* 263 = unimplemented timer_delete */
 	{ ns(struct linux32_sys_clock_settime_args), 0,
-	    (sy_call_t *)linux32_sys_clock_settime },/* 264 = clock_settime */
+	    (sy_call_t *)linux32_sys_clock_settime, 0, 0 },/* 264 = clock_settime */
 	{ ns(struct linux32_sys_clock_gettime_args), 0,
-	    (sy_call_t *)linux32_sys_clock_gettime },/* 265 = clock_gettime */
+	    (sy_call_t *)linux32_sys_clock_gettime, 0, 0 },/* 265 = clock_gettime */
 	{ ns(struct linux32_sys_clock_getres_args), 0,
-	    (sy_call_t *)linux32_sys_clock_getres },/* 266 = clock_getres */
+	    (sy_call_t *)linux32_sys_clock_getres, 0, 0 },/* 266 = clock_getres */
 	{ ns(struct linux32_sys_clock_nanosleep_args), 0,
-	    (sy_call_t *)linux32_sys_clock_nanosleep },/* 267 = clock_nanosleep */
+	    (sy_call_t *)linux32_sys_clock_nanosleep, 0, 0 },/* 267 = clock_nanosleep */
 	{ ns(struct linux32_sys_statfs64_args), 0,
-	    (sy_call_t *)linux32_sys_statfs64 },/* 268 = statfs64 */
+	    (sy_call_t *)linux32_sys_statfs64, 0, 0 },/* 268 = statfs64 */
 	{ ns(struct linux32_sys_fstatfs64_args), 0,
-	    (sy_call_t *)linux32_sys_fstatfs64 },/* 269 = fstatfs64 */
+	    (sy_call_t *)linux32_sys_fstatfs64, 0, 0 },/* 269 = fstatfs64 */
 	{ ns(struct linux32_sys_tgkill_args), 0,
-	    (sy_call_t *)linux32_sys_tgkill },	/* 270 = tgkill */
+	    (sy_call_t *)linux32_sys_tgkill, 0, 0 },	/* 270 = tgkill */
 	{ ns(struct compat_50_netbsd32_utimes_args), 0,
-	    (sy_call_t *)compat_50_netbsd32_utimes },/* 271 = compat_50_netbsd32_utimes */
+	    (sy_call_t *)compat_50_netbsd32_utimes, 0, 0 },/* 271 = compat_50_netbsd32_utimes */
 	{ ns(struct linux32_sys_fadvise64_64_args), 0,
-	    (sy_call_t *)linux32_sys_fadvise64_64 },/* 272 = fadvise64_64 */
+	    (sy_call_t *)linux32_sys_fadvise64_64, 0, 0 },/* 272 = fadvise64_64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 273 = unimplemented vserver */
+	    linux_sys_nosys, 0, 0 },			/* 273 = unimplemented vserver */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 274 = unimplemented mbind */
+	    linux_sys_nosys, 0, 0 },			/* 274 = unimplemented mbind */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 275 = unimplemented get_mempolicy */
+	    linux_sys_nosys, 0, 0 },			/* 275 = unimplemented get_mempolicy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 276 = unimplemented set_mempolicy */
+	    linux_sys_nosys, 0, 0 },			/* 276 = unimplemented set_mempolicy */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 277 = unimplemented mq_open */
+	    linux_sys_nosys, 0, 0 },			/* 277 = unimplemented mq_open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 278 = unimplemented mq_unlink */
+	    linux_sys_nosys, 0, 0 },			/* 278 = unimplemented mq_unlink */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 279 = unimplemented mq_timedsend */
+	    linux_sys_nosys, 0, 0 },			/* 279 = unimplemented mq_timedsend */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 280 = unimplemented mq_timedreceive */
+	    linux_sys_nosys, 0, 0 },			/* 280 = unimplemented mq_timedreceive */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 281 = unimplemented mq_notify */
+	    linux_sys_nosys, 0, 0 },			/* 281 = unimplemented mq_notify */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 282 = unimplemented mq_getsetattr */
+	    linux_sys_nosys, 0, 0 },			/* 282 = unimplemented mq_getsetattr */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 283 = unimplemented kexec_load */
+	    linux_sys_nosys, 0, 0 },			/* 283 = unimplemented kexec_load */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 284 = unimplemented waitid */
+	    linux_sys_nosys, 0, 0 },			/* 284 = unimplemented waitid */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 285 = unimplemented / * unused * / */
+	    linux_sys_nosys, 0, 0 },			/* 285 = unimplemented / * unused * / */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 286 = unimplemented add_key */
+	    linux_sys_nosys, 0, 0 },			/* 286 = unimplemented add_key */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 287 = unimplemented request_key */
+	    linux_sys_nosys, 0, 0 },			/* 287 = unimplemented request_key */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 288 = unimplemented keyctl */
+	    linux_sys_nosys, 0, 0 },			/* 288 = unimplemented keyctl */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 289 = unimplemented ioprio_set */
+	    linux_sys_nosys, 0, 0 },			/* 289 = unimplemented ioprio_set */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 290 = unimplemented ioprio_get */
+	    linux_sys_nosys, 0, 0 },			/* 290 = unimplemented ioprio_get */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 291 = unimplemented inotify_init */
+	    linux_sys_nosys, 0, 0 },			/* 291 = unimplemented inotify_init */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 292 = unimplemented inotify_add_watch */
+	    linux_sys_nosys, 0, 0 },			/* 292 = unimplemented inotify_add_watch */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 293 = unimplemented inotify_rm_watch */
+	    linux_sys_nosys, 0, 0 },			/* 293 = unimplemented inotify_rm_watch */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 294 = unimplemented migrate_pages */
+	    linux_sys_nosys, 0, 0 },			/* 294 = unimplemented migrate_pages */
 	{ ns(struct linux32_sys_openat_args), 0,
-	    (sy_call_t *)linux32_sys_openat },	/* 295 = openat */
+	    (sy_call_t *)linux32_sys_openat, 0, 0 },	/* 295 = openat */
 	{ ns(struct netbsd32_mkdirat_args), 0,
-	    (sy_call_t *)netbsd32_mkdirat },	/* 296 = netbsd32_mkdirat */
+	    (sy_call_t *)netbsd32_mkdirat, 0, 0 },	/* 296 = netbsd32_mkdirat */
 	{ ns(struct linux32_sys_mknodat_args), 0,
-	    (sy_call_t *)linux32_sys_mknodat },	/* 297 = mknodat */
+	    (sy_call_t *)linux32_sys_mknodat, 0, 0 },	/* 297 = mknodat */
 	{ ns(struct linux32_sys_fchownat_args), 0,
-	    (sy_call_t *)linux32_sys_fchownat },/* 298 = fchownat */
+	    (sy_call_t *)linux32_sys_fchownat, 0, 0 },/* 298 = fchownat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 299 = unimplemented futimesat */
+	    linux_sys_nosys, 0, 0 },			/* 299 = unimplemented futimesat */
 	{ ns(struct linux32_sys_fstatat64_args), 0,
-	    (sy_call_t *)linux32_sys_fstatat64 },/* 300 = fstatat64 */
+	    (sy_call_t *)linux32_sys_fstatat64, 0, 0 },/* 300 = fstatat64 */
 	{ ns(struct linux32_sys_unlinkat_args), 0,
-	    (sy_call_t *)linux32_sys_unlinkat },/* 301 = unlinkat */
+	    (sy_call_t *)linux32_sys_unlinkat, 0, 0 },/* 301 = unlinkat */
 	{ ns(struct netbsd32_renameat_args), 0,
-	    (sy_call_t *)netbsd32_renameat },	/* 302 = netbsd32_renameat */
+	    (sy_call_t *)netbsd32_renameat, 0, 0 },	/* 302 = netbsd32_renameat */
 	{ ns(struct linux32_sys_linkat_args), 0,
-	    (sy_call_t *)linux32_sys_linkat },	/* 303 = linkat */
+	    (sy_call_t *)linux32_sys_linkat, 0, 0 },	/* 303 = linkat */
 	{ ns(struct netbsd32_symlinkat_args), 0,
-	    (sy_call_t *)netbsd32_symlinkat },	/* 304 = netbsd32_symlinkat */
+	    (sy_call_t *)netbsd32_symlinkat, 0, 0 },	/* 304 = netbsd32_symlinkat */
 	{ ns(struct netbsd32_readlinkat_args), 0,
-	    (sy_call_t *)netbsd32_readlinkat },	/* 305 = netbsd32_readlinkat */
+	    (sy_call_t *)netbsd32_readlinkat, 0, 0 },	/* 305 = netbsd32_readlinkat */
 	{ ns(struct linux32_sys_fchmodat_args), 0,
-	    (sy_call_t *)linux32_sys_fchmodat },/* 306 = fchmodat */
+	    (sy_call_t *)linux32_sys_fchmodat, 0, 0 },/* 306 = fchmodat */
 	{ ns(struct linux32_sys_faccessat_args), 0,
-	    (sy_call_t *)linux32_sys_faccessat },/* 307 = faccessat */
+	    (sy_call_t *)linux32_sys_faccessat, 0, 0 },/* 307 = faccessat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 308 = unimplemented pselect6 */
+	    linux_sys_nosys, 0, 0 },			/* 308 = unimplemented pselect6 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 309 = unimplemented ppoll */
+	    linux_sys_nosys, 0, 0 },			/* 309 = unimplemented ppoll */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 310 = unimplemented unshare */
+	    linux_sys_nosys, 0, 0 },			/* 310 = unimplemented unshare */
 	{ ns(struct linux32_sys_set_robust_list_args), 0,
-	    (sy_call_t *)linux32_sys_set_robust_list },/* 311 = set_robust_list */
+	    (sy_call_t *)linux32_sys_set_robust_list, 0, 0 },/* 311 = set_robust_list */
 	{ ns(struct linux32_sys_get_robust_list_args), 0,
-	    (sy_call_t *)linux32_sys_get_robust_list },/* 312 = get_robust_list */
+	    (sy_call_t *)linux32_sys_get_robust_list, 0, 0 },/* 312 = get_robust_list */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 313 = unimplemented splice */
+	    linux_sys_nosys, 0, 0 },			/* 313 = unimplemented splice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 314 = unimplemented sync_file_range */
+	    linux_sys_nosys, 0, 0 },			/* 314 = unimplemented sync_file_range */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 315 = unimplemented tee */
+	    linux_sys_nosys, 0, 0 },			/* 315 = unimplemented tee */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 316 = unimplemented vmsplice */
+	    linux_sys_nosys, 0, 0 },			/* 316 = unimplemented vmsplice */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 317 = unimplemented move_pages */
+	    linux_sys_nosys, 0, 0 },			/* 317 = unimplemented move_pages */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 318 = unimplemented getcpu */
+	    linux_sys_nosys, 0, 0 },			/* 318 = unimplemented getcpu */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 319 = unimplemented epoll_wait */
+	    linux_sys_nosys, 0, 0 },			/* 319 = unimplemented epoll_wait */
 	{ ns(struct linux32_sys_utimensat_args), 0,
-	    (sy_call_t *)linux32_sys_utimensat },/* 320 = utimensat */
+	    (sy_call_t *)linux32_sys_utimensat, 0, 0 },/* 320 = utimensat */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 321 = unimplemented signalfd */
+	    linux_sys_nosys, 0, 0 },			/* 321 = unimplemented signalfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 322 = unimplemented timerfd_create */
+	    linux_sys_nosys, 0, 0 },			/* 322 = unimplemented timerfd_create */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 323 = unimplemented eventfd */
+	    linux_sys_nosys, 0, 0 },			/* 323 = unimplemented eventfd */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 324 = unimplemented fallocate */
+	    linux_sys_nosys, 0, 0 },			/* 324 = unimplemented fallocate */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 325 = unimplemented timerfd_settime */
+	    linux_sys_nosys, 0, 0 },			/* 325 = unimplemented timerfd_settime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 326 = unimplemented timerfd_gettime */
+	    linux_sys_nosys, 0, 0 },			/* 326 = unimplemented timerfd_gettime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 327 = unimplemented signalfd4 */
+	    linux_sys_nosys, 0, 0 },			/* 327 = unimplemented signalfd4 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 328 = unimplemented eventfd2 */
+	    linux_sys_nosys, 0, 0 },			/* 328 = unimplemented eventfd2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 329 = unimplemented epoll_create1 */
+	    linux_sys_nosys, 0, 0 },			/* 329 = unimplemented epoll_create1 */
 	{ ns(struct linux32_sys_dup3_args), 0,
-	    (sy_call_t *)linux32_sys_dup3 },	/* 330 = dup3 */
+	    (sy_call_t *)linux32_sys_dup3, 0, 0 },	/* 330 = dup3 */
 	{ ns(struct linux32_sys_pipe2_args), 0,
-	    (sy_call_t *)linux32_sys_pipe2 },	/* 331 = pipe2 */
+	    (sy_call_t *)linux32_sys_pipe2, 0, 0 },	/* 331 = pipe2 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 332 = unimplemented inotify_init1 */
+	    linux_sys_nosys, 0, 0 },			/* 332 = unimplemented inotify_init1 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 333 = unimplemented preadv */
+	    linux_sys_nosys, 0, 0 },			/* 333 = unimplemented preadv */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 334 = unimplemented pwritev */
+	    linux_sys_nosys, 0, 0 },			/* 334 = unimplemented pwritev */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 335 = unimplemented rt_tgsigqueueinfo */
+	    linux_sys_nosys, 0, 0 },			/* 335 = unimplemented rt_tgsigqueueinfo */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 336 = unimplemented perf_counter_open */
+	    linux_sys_nosys, 0, 0 },			/* 336 = unimplemented perf_counter_open */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 337 = unimplemented recvmmsg */
+	    linux_sys_nosys, 0, 0 },			/* 337 = unimplemented recvmmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 338 = unimplemented fanotify_init */
+	    linux_sys_nosys, 0, 0 },			/* 338 = unimplemented fanotify_init */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 339 = unimplemented fanotify_mark */
+	    linux_sys_nosys, 0, 0 },			/* 339 = unimplemented fanotify_mark */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 340 = unimplemented prlimit64 */
+	    linux_sys_nosys, 0, 0 },			/* 340 = unimplemented prlimit64 */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 341 = unimplemented name_to_handle_at */
+	    linux_sys_nosys, 0, 0 },			/* 341 = unimplemented name_to_handle_at */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 342 = unimplemented open_by_handle_at */
+	    linux_sys_nosys, 0, 0 },			/* 342 = unimplemented open_by_handle_at */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 343 = unimplemented clock_adjtime */
+	    linux_sys_nosys, 0, 0 },			/* 343 = unimplemented clock_adjtime */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 344 = unimplemented syncfs */
+	    linux_sys_nosys, 0, 0 },			/* 344 = unimplemented syncfs */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 345 = unimplemented sendmmsg */
+	    linux_sys_nosys, 0, 0 },			/* 345 = unimplemented sendmmsg */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 346 = unimplemented setns */
+	    linux_sys_nosys, 0, 0 },			/* 346 = unimplemented setns */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 347 = unimplemented process_vm_readv */
+	    linux_sys_nosys, 0, 0 },			/* 347 = unimplemented process_vm_readv */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 348 = unimplemented process_vm_writev */
+	    linux_sys_nosys, 0, 0 },			/* 348 = unimplemented process_vm_writev */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 349 = unimplemented kcmp */
+	    linux_sys_nosys, 0, 0 },			/* 349 = unimplemented kcmp */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 350 = unimplemented finit_module */
+	    linux_sys_nosys, 0, 0 },			/* 350 = unimplemented finit_module */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 351 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 351 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 352 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 352 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 353 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 353 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 354 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 354 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 355 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 355 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 356 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 356 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 357 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 357 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 358 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 358 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 359 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 359 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 360 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 360 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 361 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 361 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 362 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 362 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 363 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 363 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 364 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 364 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 365 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 365 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 366 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 366 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 367 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 367 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 368 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 368 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 369 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 369 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 370 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 370 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 371 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 371 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 372 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 372 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 373 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 373 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 374 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 374 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 375 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 375 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 376 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 376 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 377 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 377 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 378 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 378 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 379 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 379 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 380 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 380 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 381 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 381 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 382 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 382 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 383 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 383 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 384 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 384 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 385 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 385 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 386 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 386 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 387 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 387 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 388 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 388 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 389 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 389 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 390 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 390 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 391 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 391 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 392 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 392 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 393 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 393 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 394 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 394 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 395 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 395 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 396 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 396 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 397 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 397 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 398 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 398 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 399 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 399 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 400 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 400 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 401 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 401 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 402 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 402 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 403 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 403 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 404 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 404 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 405 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 405 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 406 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 406 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 407 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 407 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 408 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 408 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 409 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 409 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 410 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 410 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 411 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 411 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 412 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 412 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 413 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 413 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 414 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 414 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 415 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 415 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 416 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 416 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 417 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 417 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 418 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 418 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 419 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 419 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 420 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 420 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 421 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 421 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 422 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 422 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 423 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 423 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 424 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 424 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 425 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 425 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 426 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 426 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 427 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 427 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 428 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 428 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 429 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 429 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 430 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 430 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 431 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 431 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 432 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 432 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 433 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 433 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 434 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 434 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 435 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 435 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 436 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 436 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 437 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 437 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 438 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 438 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 439 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 439 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 440 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 440 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 441 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 441 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 442 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 442 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 443 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 443 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 444 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 444 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 445 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 445 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 446 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 446 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 447 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 447 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 448 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 448 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 449 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 449 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 450 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 450 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 451 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 451 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 452 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 452 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 453 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 453 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 454 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 454 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 455 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 455 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 456 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 456 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 457 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 457 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 458 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 458 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 459 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 459 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 460 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 460 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 461 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 461 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 462 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 462 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 463 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 463 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 464 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 464 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 465 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 465 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 466 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 466 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 467 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 467 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 468 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 468 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 469 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 469 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 470 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 470 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 471 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 471 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 472 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 472 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 473 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 473 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 474 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 474 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 475 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 475 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 476 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 476 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 477 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 477 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 478 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 478 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 479 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 479 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 480 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 480 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 481 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 481 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 482 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 482 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 483 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 483 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 484 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 484 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 485 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 485 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 486 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 486 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 487 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 487 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 488 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 488 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 489 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 489 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 490 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 490 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 491 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 491 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 492 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 492 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 493 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 493 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 494 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 494 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 495 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 495 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 496 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 496 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 497 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 497 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 498 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 498 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 499 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 499 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 500 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 500 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 501 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 501 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 502 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 502 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 503 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 503 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 504 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 504 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 505 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 505 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 506 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 506 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 507 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 507 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 508 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 508 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 509 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 509 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 510 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 510 = filler */
 	{ 0, 0, 0,
-	    linux_sys_nosys },			/* 511 = filler */
+	    linux_sys_nosys, 0, 0 },			/* 511 = filler */
 };
diff --git a/sys/compat/linux32/arch/amd64/linux32_systrace_args.c b/sys/compat/linux32/arch/amd64/linux32_systrace_args.c
new file mode 100644
index 0000000..6b806f3
--- /dev/null
+++ b/sys/compat/linux32/arch/amd64/linux32_systrace_args.c
@@ -0,0 +1,5961 @@
+/* $NetBSD$ */
+
+/*
+ * System call argument to DTrace register array converstion.
+ *
+ * DO NOT EDIT-- this file is automatically generated.
+ * This file is part of the DTrace syscall provider.
+ */
+
+static void
+systrace_args(register_t sysnum, const void *params, uintptr_t *uarg, size_t *n_args)
+{
+	intptr_t *iarg  = (intptr_t *)uarg;
+	switch (sysnum) {
+	/* linux_sys_nosys */
+	case 0: {
+		*n_args = 0;
+		break;
+	}
+	/* linux32_sys_exit */
+	case 1: {
+		struct linux32_sys_exit_args *p = params;
+		iarg[0] = SCARG(p, rval); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_fork */
+	case 2: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_read */
+	case 3: {
+		struct netbsd32_read_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, nbyte); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_write */
+	case 4: {
+		struct netbsd32_write_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, nbyte); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_open */
+	case 5: {
+		struct linux32_sys_open_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, flags); /* int */
+		iarg[2] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_close */
+	case 6: {
+		struct netbsd32_close_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_waitpid */
+	case 7: {
+		struct linux32_sys_waitpid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, status).i32; /* netbsd32_intp */
+		iarg[2] = SCARG(p, options); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_creat */
+	case 8: {
+		struct linux32_sys_creat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_link */
+	case 9: {
+		struct netbsd32_link_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, link).i32; /* netbsd32_charp */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_unlink */
+	case 10: {
+		struct linux32_sys_unlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_execve */
+	case 11: {
+		struct netbsd32_execve_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, argp).i32; /* netbsd32_charpp */
+		uarg[2] = (intptr_t) SCARG(p, envp).i32; /* netbsd32_charpp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_chdir */
+	case 12: {
+		struct netbsd32_chdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_time */
+	case 13: {
+		struct linux32_sys_time_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, t).i32; /* linux32_timep_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_mknod */
+	case 14: {
+		struct linux32_sys_mknod_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		uarg[2] = SCARG(p, dev); /* unsigned */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_chmod */
+	case 15: {
+		struct netbsd32_chmod_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_lchown16 */
+	case 16: {
+		struct linux32_sys_lchown16_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, uid); /* linux32_uid16_t */
+		iarg[2] = SCARG(p, gid); /* linux32_gid16_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_break */
+	case 17: {
+		struct linux32_sys_break_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, nsize).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* compat_43_netbsd32_olseek */
+	case 19: {
+		struct compat_43_netbsd32_olseek_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, offset); /* netbsd32_long */
+		iarg[2] = SCARG(p, whence); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getpid */
+	case 20: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_setuid */
+	case 23: {
+		struct netbsd32_setuid_args *p = params;
+		uarg[0] = SCARG(p, uid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_getuid */
+	case 24: {
+		*n_args = 0;
+		break;
+	}
+	/* linux32_sys_stime */
+	case 25: {
+		struct linux32_sys_stime_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, t).i32; /* linux32_timep_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_ptrace */
+	case 26: {
+		struct linux32_sys_ptrace_args *p = params;
+		iarg[0] = SCARG(p, request); /* int */
+		iarg[1] = SCARG(p, pid); /* int */
+		iarg[2] = SCARG(p, addr); /* int */
+		iarg[3] = SCARG(p, data); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* linux32_sys_alarm */
+	case 27: {
+		struct linux32_sys_alarm_args *p = params;
+		uarg[0] = SCARG(p, secs); /* unsigned int */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_pause */
+	case 29: {
+		*n_args = 0;
+		break;
+	}
+	/* linux32_sys_utime */
+	case 30: {
+		struct linux32_sys_utime_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, times).i32; /* linux32_utimbufp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_access */
+	case 33: {
+		struct netbsd32_access_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, flags); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_nice */
+	case 34: {
+		struct linux32_sys_nice_args *p = params;
+		iarg[0] = SCARG(p, incr); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_sync */
+	case 36: {
+		*n_args = 0;
+		break;
+	}
+	/* linux32_sys_kill */
+	case 37: {
+		struct linux32_sys_kill_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		iarg[1] = SCARG(p, signum); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___posix_rename */
+	case 38: {
+		struct netbsd32___posix_rename_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, from).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, to).i32; /* netbsd32_charp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_mkdir */
+	case 39: {
+		struct netbsd32_mkdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_rmdir */
+	case 40: {
+		struct netbsd32_rmdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_dup */
+	case 41: {
+		struct netbsd32_dup_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_pipe */
+	case 42: {
+		struct linux32_sys_pipe_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fd).i32; /* netbsd32_intp */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_times */
+	case 43: {
+		struct linux32_sys_times_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tms).i32; /* linux32_tmsp_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_brk */
+	case 45: {
+		struct linux32_sys_brk_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, nsize).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_setgid */
+	case 46: {
+		struct netbsd32_setgid_args *p = params;
+		iarg[0] = SCARG(p, gid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_getgid */
+	case 47: {
+		*n_args = 0;
+		break;
+	}
+	/* linux32_sys_signal */
+	case 48: {
+		struct linux32_sys_signal_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		uarg[1] = (intptr_t) SCARG(p, handler).i32; /* linux32_handlerp_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_geteuid */
+	case 49: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getegid */
+	case 50: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_acct */
+	case 51: {
+		struct netbsd32_acct_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_ioctl */
+	case 54: {
+		struct linux32_sys_ioctl_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, com); /* netbsd32_u_long */
+		uarg[2] = (intptr_t) SCARG(p, data).i32; /* netbsd32_charp */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_fcntl */
+	case 55: {
+		struct linux32_sys_fcntl_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, arg).i32; /* netbsd32_voidp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_setpgid */
+	case 57: {
+		struct netbsd32_setpgid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		iarg[1] = SCARG(p, pgid); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_oldolduname */
+	case 59: {
+		struct linux32_sys_oldolduname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, up).i32; /* linux32_oldold_utsnamep_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_umask */
+	case 60: {
+		struct netbsd32_umask_args *p = params;
+		iarg[0] = SCARG(p, newmask); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_chroot */
+	case 61: {
+		struct netbsd32_chroot_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_dup2 */
+	case 63: {
+		struct netbsd32_dup2_args *p = params;
+		iarg[0] = SCARG(p, from); /* int */
+		iarg[1] = SCARG(p, to); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getppid */
+	case 64: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getpgrp */
+	case 65: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_setsid */
+	case 66: {
+		*n_args = 0;
+		break;
+	}
+	/* linux32_sys_siggetmask */
+	case 68: {
+		*n_args = 0;
+		break;
+	}
+	/* linux32_sys_sigsetmask */
+	case 69: {
+		struct linux32_sys_sigsetmask_args *p = params;
+		iarg[0] = SCARG(p, mask); /* linux32_old_sigset_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_setreuid16 */
+	case 70: {
+		struct linux32_sys_setreuid16_args *p = params;
+		iarg[0] = SCARG(p, ruid); /* linux32_uid16_t */
+		iarg[1] = SCARG(p, euid); /* linux32_uid16_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_setregid16 */
+	case 71: {
+		struct linux32_sys_setregid16_args *p = params;
+		iarg[0] = SCARG(p, rgid); /* linux32_gid16_t */
+		iarg[1] = SCARG(p, egid); /* linux32_gid16_t */
+		*n_args = 2;
+		break;
+	}
+	/* compat_43_netbsd32_osethostname */
+	case 74: {
+		struct compat_43_netbsd32_osethostname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, hostname).i32; /* netbsd32_charp */
+		uarg[1] = SCARG(p, len); /* u_int */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_setrlimit */
+	case 75: {
+		struct linux32_sys_setrlimit_args *p = params;
+		uarg[0] = SCARG(p, which); /* u_int */
+		uarg[1] = (intptr_t) SCARG(p, rlp).i32; /* netbsd32_orlimitp_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_getrlimit */
+	case 76: {
+		struct linux32_sys_getrlimit_args *p = params;
+		uarg[0] = SCARG(p, which); /* u_int */
+		uarg[1] = (intptr_t) SCARG(p, rlp).i32; /* netbsd32_orlimitp_t */
+		*n_args = 2;
+		break;
+	}
+	/* compat_50_netbsd32_getrusage */
+	case 77: {
+		struct compat_50_netbsd32_getrusage_args *p = params;
+		iarg[0] = SCARG(p, who); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rusage).i32; /* netbsd32_rusage50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_gettimeofday */
+	case 78: {
+		struct linux32_sys_gettimeofday_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tp).i32; /* netbsd32_timeval50p_t */
+		uarg[1] = (intptr_t) SCARG(p, tzp).i32; /* netbsd32_timezonep_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_settimeofday */
+	case 79: {
+		struct linux32_sys_settimeofday_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tp).i32; /* netbsd32_timeval50p_t */
+		uarg[1] = (intptr_t) SCARG(p, tzp).i32; /* netbsd32_timezonep_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_getgroups16 */
+	case 80: {
+		struct linux32_sys_getgroups16_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset).i32; /* linux32_gid16p_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_setgroups16 */
+	case 81: {
+		struct linux32_sys_setgroups16_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset).i32; /* linux32_gid16p_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_oldselect */
+	case 82: {
+		struct linux32_sys_oldselect_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, lsp).i32; /* linux32_oldselectp_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_symlink */
+	case 83: {
+		struct netbsd32_symlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, link).i32; /* netbsd32_charp */
+		*n_args = 2;
+		break;
+	}
+	/* compat_43_netbsd32_lstat43 */
+	case 84: {
+		struct compat_43_netbsd32_lstat43_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, ub).i32; /* netbsd32_stat43p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_readlink */
+	case 85: {
+		struct netbsd32_readlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, count); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_swapon */
+	case 87: {
+		struct linux32_sys_swapon_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_reboot */
+	case 88: {
+		struct linux32_sys_reboot_args *p = params;
+		iarg[0] = SCARG(p, magic1); /* int */
+		iarg[1] = SCARG(p, magic2); /* int */
+		iarg[2] = SCARG(p, cmd); /* int */
+		uarg[3] = (intptr_t) SCARG(p, arg).i32; /* netbsd32_voidp */
+		*n_args = 4;
+		break;
+	}
+	/* linux32_sys_readdir */
+	case 89: {
+		struct linux32_sys_readdir_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, dent).i32; /* netbsd32_voidp */
+		uarg[2] = SCARG(p, count); /* unsigned int */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_old_mmap */
+	case 90: {
+		struct linux32_sys_old_mmap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, lmp).i32; /* linux32_oldmmapp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_munmap */
+	case 91: {
+		struct netbsd32_munmap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		*n_args = 2;
+		break;
+	}
+	/* compat_43_netbsd32_otruncate */
+	case 92: {
+		struct compat_43_netbsd32_otruncate_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, length); /* netbsd32_long */
+		*n_args = 2;
+		break;
+	}
+	/* compat_43_netbsd32_oftruncate */
+	case 93: {
+		struct compat_43_netbsd32_oftruncate_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, length); /* netbsd32_long */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_fchmod */
+	case 94: {
+		struct netbsd32_fchmod_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_fchown16 */
+	case 95: {
+		struct linux32_sys_fchown16_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, uid); /* linux32_uid16_t */
+		iarg[2] = SCARG(p, gid); /* linux32_gid16_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_getpriority */
+	case 96: {
+		struct linux32_sys_getpriority_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, who); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_setpriority */
+	case 97: {
+		struct netbsd32_setpriority_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, who); /* int */
+		iarg[2] = SCARG(p, prio); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_profil */
+	case 98: {
+		struct netbsd32_profil_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, samples).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, size); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, offset); /* netbsd32_u_long */
+		uarg[3] = SCARG(p, scale); /* u_int */
+		*n_args = 4;
+		break;
+	}
+	/* linux32_sys_statfs */
+	case 99: {
+		struct linux32_sys_statfs_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, sp).i32; /* linux32_statfsp */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_fstatfs */
+	case 100: {
+		struct linux32_sys_fstatfs_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sp).i32; /* linux32_statfsp */
+		*n_args = 2;
+		break;
+	}
+	/* linux_sys_ioperm */
+	case 101: {
+		struct linux_sys_ioperm_args *p = params;
+		uarg[0] = SCARG(p, lo); /* unsigned int */
+		uarg[1] = SCARG(p, hi); /* unsigned int */
+		iarg[2] = SCARG(p, val); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_socketcall */
+	case 102: {
+		struct linux32_sys_socketcall_args *p = params;
+		iarg[0] = SCARG(p, what); /* int */
+		uarg[1] = (intptr_t) SCARG(p, args).i32; /* netbsd32_voidp */
+		*n_args = 2;
+		break;
+	}
+	/* compat_50_netbsd32_setitimer */
+	case 104: {
+		struct compat_50_netbsd32_setitimer_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, itv).i32; /* netbsd32_itimerval50p_t */
+		uarg[2] = (intptr_t) SCARG(p, oitv).i32; /* netbsd32_itimerval50p_t */
+		*n_args = 3;
+		break;
+	}
+	/* compat_50_netbsd32_getitimer */
+	case 105: {
+		struct compat_50_netbsd32_getitimer_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, itv).i32; /* netbsd32_itimerval50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_stat */
+	case 106: {
+		struct linux32_sys_stat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, sp).i32; /* linux32_statp */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_lstat */
+	case 107: {
+		struct linux32_sys_lstat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, sp).i32; /* linux32_statp */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_fstat */
+	case 108: {
+		struct linux32_sys_fstat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sp).i32; /* linux32_statp */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_olduname */
+	case 109: {
+		struct linux32_sys_olduname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, up).i32; /* linux32_oldutsnamep_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_iopl */
+	case 110: {
+		struct linux_sys_iopl_args *p = params;
+		iarg[0] = SCARG(p, level); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_wait4 */
+	case 114: {
+		struct linux32_sys_wait4_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, status).i32; /* netbsd32_intp */
+		iarg[2] = SCARG(p, options); /* int */
+		uarg[3] = (intptr_t) SCARG(p, rusage).i32; /* netbsd32_rusage50p_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux32_sys_swapoff */
+	case 115: {
+		struct linux32_sys_swapoff_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_sysinfo */
+	case 116: {
+		struct linux32_sys_sysinfo_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, arg).i32; /* linux32_sysinfop_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_ipc */
+	case 117: {
+		struct linux32_sys_ipc_args *p = params;
+		iarg[0] = SCARG(p, what); /* int */
+		iarg[1] = SCARG(p, a1); /* int */
+		iarg[2] = SCARG(p, a2); /* int */
+		iarg[3] = SCARG(p, a3); /* int */
+		uarg[4] = (intptr_t) SCARG(p, ptr).i32; /* netbsd32_voidp */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_fsync */
+	case 118: {
+		struct netbsd32_fsync_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_sigreturn */
+	case 119: {
+		struct linux32_sys_sigreturn_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, scp).i32; /* linux32_sigcontextp_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_clone */
+	case 120: {
+		struct linux32_sys_clone_args *p = params;
+		iarg[0] = SCARG(p, flags); /* int */
+		uarg[1] = (intptr_t) SCARG(p, stack).i32; /* netbsd32_voidp */
+		uarg[2] = (intptr_t) SCARG(p, parent_tidptr).i32; /* netbsd32_voidp */
+		uarg[3] = (intptr_t) SCARG(p, tls).i32; /* netbsd32_voidp */
+		uarg[4] = (intptr_t) SCARG(p, child_tidptr).i32; /* netbsd32_voidp */
+		*n_args = 5;
+		break;
+	}
+	/* linux32_sys_setdomainname */
+	case 121: {
+		struct linux32_sys_setdomainname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, domainname).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, len); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_uname */
+	case 122: {
+		struct linux32_sys_uname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, up).i32; /* linux32_utsnamep */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_modify_ldt */
+	case 123: {
+		struct linux32_sys_modify_ldt_args *p = params;
+		iarg[0] = SCARG(p, func); /* int */
+		uarg[1] = (intptr_t) SCARG(p, ptr).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, bytecount); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_mprotect */
+	case 125: {
+		struct linux32_sys_mprotect_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, start).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, prot); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_getpgid */
+	case 132: {
+		struct netbsd32_getpgid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_fchdir */
+	case 133: {
+		struct netbsd32_fchdir_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_personality */
+	case 136: {
+		struct linux32_sys_personality_args *p = params;
+		iarg[0] = SCARG(p, per); /* netbsd32_u_long */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_setfsuid */
+	case 138: {
+		struct linux32_sys_setfsuid_args *p = params;
+		uarg[0] = SCARG(p, uid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_setfsgid */
+	case 139: {
+		struct linux32_sys_setfsgid_args *p = params;
+		iarg[0] = SCARG(p, gid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_llseek */
+	case 140: {
+		struct linux32_sys_llseek_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, ohigh); /* u_int32_t */
+		uarg[2] = SCARG(p, olow); /* u_int32_t */
+		uarg[3] = (intptr_t) SCARG(p, res).i32; /* netbsd32_voidp */
+		iarg[4] = SCARG(p, whence); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux32_sys_getdents */
+	case 141: {
+		struct linux32_sys_getdents_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, dent).i32; /* linux32_direntp_t */
+		uarg[2] = SCARG(p, count); /* unsigned int */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_select */
+	case 142: {
+		struct linux32_sys_select_args *p = params;
+		iarg[0] = SCARG(p, nfds); /* int */
+		uarg[1] = (intptr_t) SCARG(p, readfds).i32; /* netbsd32_fd_setp_t */
+		uarg[2] = (intptr_t) SCARG(p, writefds).i32; /* netbsd32_fd_setp_t */
+		uarg[3] = (intptr_t) SCARG(p, exceptfds).i32; /* netbsd32_fd_setp_t */
+		uarg[4] = (intptr_t) SCARG(p, timeout).i32; /* netbsd32_timeval50p_t */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_flock */
+	case 143: {
+		struct netbsd32_flock_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, how); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___msync13 */
+	case 144: {
+		struct netbsd32___msync13_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_readv */
+	case 145: {
+		struct netbsd32_readv_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, iovp).i32; /* netbsd32_iovecp_t */
+		iarg[2] = SCARG(p, iovcnt); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_writev */
+	case 146: {
+		struct netbsd32_writev_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, iovp).i32; /* netbsd32_iovecp_t */
+		iarg[2] = SCARG(p, iovcnt); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_getsid */
+	case 147: {
+		struct netbsd32_getsid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_fdatasync */
+	case 148: {
+		struct linux32_sys_fdatasync_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys___sysctl */
+	case 149: {
+		struct linux32_sys___sysctl_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, lsp).i32; /* linux32___sysctlp_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_mlock */
+	case 150: {
+		struct netbsd32_mlock_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_munlock */
+	case 151: {
+		struct netbsd32_munlock_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_mlockall */
+	case 152: {
+		struct netbsd32_mlockall_args *p = params;
+		iarg[0] = SCARG(p, flags); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_munlockall */
+	case 153: {
+		*n_args = 0;
+		break;
+	}
+	/* linux32_sys_sched_setparam */
+	case 154: {
+		struct linux32_sys_sched_setparam_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = (intptr_t) SCARG(p, sp).i32; /* const linux32_sched_paramp_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_sched_getparam */
+	case 155: {
+		struct linux32_sys_sched_getparam_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = (intptr_t) SCARG(p, sp).i32; /* linux32_sched_paramp_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_sched_setscheduler */
+	case 156: {
+		struct linux32_sys_sched_setscheduler_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		iarg[1] = SCARG(p, policy); /* int */
+		uarg[2] = (intptr_t) SCARG(p, sp).i32; /* linux32_sched_paramp_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_sched_getscheduler */
+	case 157: {
+		struct linux32_sys_sched_getscheduler_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux_sys_sched_yield */
+	case 158: {
+		*n_args = 0;
+		break;
+	}
+	/* linux32_sys_sched_get_priority_max */
+	case 159: {
+		struct linux32_sys_sched_get_priority_max_args *p = params;
+		iarg[0] = SCARG(p, policy); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_sched_get_priority_min */
+	case 160: {
+		struct linux32_sys_sched_get_priority_min_args *p = params;
+		iarg[0] = SCARG(p, policy); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_nanosleep */
+	case 162: {
+		struct linux32_sys_nanosleep_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, rqtp).i32; /* linux32_timespecp_t */
+		uarg[1] = (intptr_t) SCARG(p, rmtp).i32; /* linux32_timespecp_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_mremap */
+	case 163: {
+		struct linux32_sys_mremap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, old_address).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, old_size); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, new_size); /* netbsd32_size_t */
+		iarg[3] = SCARG(p, flags); /* netbsd32_u_long */
+		*n_args = 4;
+		break;
+	}
+	/* linux32_sys_setresuid16 */
+	case 164: {
+		struct linux32_sys_setresuid16_args *p = params;
+		iarg[0] = SCARG(p, ruid); /* linux32_uid16_t */
+		iarg[1] = SCARG(p, euid); /* linux32_uid16_t */
+		iarg[2] = SCARG(p, suid); /* linux32_uid16_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_getresuid16 */
+	case 165: {
+		struct linux32_sys_getresuid16_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ruid).i32; /* linux32_uid16p_t */
+		uarg[1] = (intptr_t) SCARG(p, euid).i32; /* linux32_uid16p_t */
+		uarg[2] = (intptr_t) SCARG(p, suid).i32; /* linux32_uid16p_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_poll */
+	case 168: {
+		struct netbsd32_poll_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fds).i32; /* netbsd32_pollfdp_t */
+		uarg[1] = SCARG(p, nfds); /* u_int */
+		iarg[2] = SCARG(p, timeout); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_setresgid16 */
+	case 170: {
+		struct linux32_sys_setresgid16_args *p = params;
+		iarg[0] = SCARG(p, rgid); /* linux32_gid16_t */
+		iarg[1] = SCARG(p, egid); /* linux32_gid16_t */
+		iarg[2] = SCARG(p, sgid); /* linux32_gid16_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_getresgid16 */
+	case 171: {
+		struct linux32_sys_getresgid16_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, rgid).i32; /* linux32_gid16p_t */
+		uarg[1] = (intptr_t) SCARG(p, egid).i32; /* linux32_gid16p_t */
+		uarg[2] = (intptr_t) SCARG(p, sgid).i32; /* linux32_gid16p_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_rt_sigreturn */
+	case 173: {
+		struct linux32_sys_rt_sigreturn_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ucp).i32; /* linux32_ucontextp_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_rt_sigaction */
+	case 174: {
+		struct linux32_sys_rt_sigaction_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		uarg[1] = (intptr_t) SCARG(p, nsa).i32; /* linux32_sigactionp_t */
+		uarg[2] = (intptr_t) SCARG(p, osa).i32; /* linux32_sigactionp_t */
+		iarg[3] = SCARG(p, sigsetsize); /* netbsd32_size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux32_sys_rt_sigprocmask */
+	case 175: {
+		struct linux32_sys_rt_sigprocmask_args *p = params;
+		iarg[0] = SCARG(p, how); /* int */
+		uarg[1] = (intptr_t) SCARG(p, set).i32; /* linux32_sigsetp_t */
+		uarg[2] = (intptr_t) SCARG(p, oset).i32; /* linux32_sigsetp_t */
+		iarg[3] = SCARG(p, sigsetsize); /* netbsd32_size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux32_sys_rt_sigpending */
+	case 176: {
+		struct linux32_sys_rt_sigpending_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set).i32; /* linux32_sigsetp_t */
+		iarg[1] = SCARG(p, sigsetsize); /* netbsd32_size_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_rt_sigtimedwait */
+	case 177: {
+		struct linux32_sys_rt_sigtimedwait_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set).i32; /* const linux32_sigsetp_t */
+		uarg[1] = (intptr_t) SCARG(p, info).i32; /* linux32_siginfop_t */
+		uarg[2] = (intptr_t) SCARG(p, timeout).i32; /* const linux32_timespecp_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_rt_queueinfo */
+	case 178: {
+		struct linux32_sys_rt_queueinfo_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		iarg[1] = SCARG(p, sig); /* int */
+		uarg[2] = (intptr_t) SCARG(p, uinfo).i32; /* linux32_siginfop_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_rt_sigsuspend */
+	case 179: {
+		struct linux32_sys_rt_sigsuspend_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, unewset).i32; /* linux32_sigsetp_t */
+		iarg[1] = SCARG(p, sigsetsize); /* netbsd32_size_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_pread */
+	case 180: {
+		struct linux32_sys_pread_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, nbyte); /* netbsd32_size_t */
+		iarg[3] = SCARG(p, offset); /* netbsd32_off_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux32_sys_pwrite */
+	case 181: {
+		struct linux32_sys_pwrite_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, nbyte); /* netbsd32_size_t */
+		iarg[3] = SCARG(p, offset); /* netbsd32_off_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux32_sys_chown16 */
+	case 182: {
+		struct linux32_sys_chown16_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, uid); /* linux32_uid16_t */
+		iarg[2] = SCARG(p, gid); /* linux32_gid16_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32___getcwd */
+	case 183: {
+		struct netbsd32___getcwd_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, bufp).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, length); /* netbsd32_size_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys___vfork14 */
+	case 190: {
+		*n_args = 0;
+		break;
+	}
+	/* linux32_sys_ugetrlimit */
+	case 191: {
+		struct linux32_sys_ugetrlimit_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rlp).i32; /* netbsd32_orlimitp_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_mmap2 */
+	case 192: {
+		struct linux32_sys_mmap2_args *p = params;
+		iarg[0] = SCARG(p, addr); /* netbsd32_u_long */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, prot); /* int */
+		iarg[3] = SCARG(p, flags); /* int */
+		iarg[4] = SCARG(p, fd); /* int */
+		iarg[5] = SCARG(p, offset); /* linux32_off_t */
+		*n_args = 6;
+		break;
+	}
+	/* linux32_sys_truncate64 */
+	case 193: {
+		struct linux32_sys_truncate64_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = SCARG(p, lenlo); /* uint32_t */
+		uarg[2] = SCARG(p, lenhi); /* uint32_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_ftruncate64 */
+	case 194: {
+		struct linux32_sys_ftruncate64_args *p = params;
+		uarg[0] = SCARG(p, fd); /* unsigned int */
+		uarg[1] = SCARG(p, lenlo); /* uint32_t */
+		uarg[2] = SCARG(p, lenhi); /* uint32_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_stat64 */
+	case 195: {
+		struct linux32_sys_stat64_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, sp).i32; /* linux32_stat64p */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_lstat64 */
+	case 196: {
+		struct linux32_sys_lstat64_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, sp).i32; /* linux32_stat64p */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_fstat64 */
+	case 197: {
+		struct linux32_sys_fstat64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sp).i32; /* linux32_stat64p */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___posix_lchown */
+	case 198: {
+		struct netbsd32___posix_lchown_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getuid */
+	case 199: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getgid */
+	case 200: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_geteuid */
+	case 201: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getegid */
+	case 202: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_setreuid */
+	case 203: {
+		struct netbsd32_setreuid_args *p = params;
+		uarg[0] = SCARG(p, ruid); /* uid_t */
+		uarg[1] = SCARG(p, euid); /* uid_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_setregid */
+	case 204: {
+		struct netbsd32_setregid_args *p = params;
+		iarg[0] = SCARG(p, rgid); /* gid_t */
+		iarg[1] = SCARG(p, egid); /* gid_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_getgroups */
+	case 205: {
+		struct netbsd32_getgroups_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset).i32; /* netbsd32_gid_tp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_setgroups */
+	case 206: {
+		struct netbsd32_setgroups_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset).i32; /* netbsd32_gid_tp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___posix_fchown */
+	case 207: {
+		struct netbsd32___posix_fchown_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_setresuid */
+	case 208: {
+		struct linux32_sys_setresuid_args *p = params;
+		uarg[0] = SCARG(p, ruid); /* uid_t */
+		uarg[1] = SCARG(p, euid); /* uid_t */
+		uarg[2] = SCARG(p, suid); /* uid_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_getresuid */
+	case 209: {
+		struct linux32_sys_getresuid_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ruid).i32; /* linux32_uidp_t */
+		uarg[1] = (intptr_t) SCARG(p, euid).i32; /* linux32_uidp_t */
+		uarg[2] = (intptr_t) SCARG(p, suid).i32; /* linux32_uidp_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_setresgid */
+	case 210: {
+		struct linux32_sys_setresgid_args *p = params;
+		iarg[0] = SCARG(p, rgid); /* gid_t */
+		iarg[1] = SCARG(p, egid); /* gid_t */
+		iarg[2] = SCARG(p, sgid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_getresgid */
+	case 211: {
+		struct linux32_sys_getresgid_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, rgid).i32; /* linux32_gidp_t */
+		uarg[1] = (intptr_t) SCARG(p, egid).i32; /* linux32_gidp_t */
+		uarg[2] = (intptr_t) SCARG(p, sgid).i32; /* linux32_gidp_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32___posix_chown */
+	case 212: {
+		struct netbsd32___posix_chown_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_setuid */
+	case 213: {
+		struct netbsd32_setuid_args *p = params;
+		uarg[0] = SCARG(p, uid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_setgid */
+	case 214: {
+		struct netbsd32_setgid_args *p = params;
+		iarg[0] = SCARG(p, gid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_setfsuid */
+	case 215: {
+		struct linux32_sys_setfsuid_args *p = params;
+		uarg[0] = SCARG(p, uid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_setfsgid */
+	case 216: {
+		struct linux32_sys_setfsgid_args *p = params;
+		iarg[0] = SCARG(p, gid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_mincore */
+	case 218: {
+		struct netbsd32_mincore_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		uarg[2] = (intptr_t) SCARG(p, vec).i32; /* netbsd32_charp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_madvise */
+	case 219: {
+		struct netbsd32_madvise_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, behav); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_getdents64 */
+	case 220: {
+		struct linux32_sys_getdents64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, dent).i32; /* linux32_dirent64p_t */
+		uarg[2] = SCARG(p, count); /* unsigned int */
+		*n_args = 3;
+		break;
+	}
+#define linux32_sys_fcntl64 linux32_sys_fcntl
+#define linux32_sys_fcntl64_args linux32_sys_fcntl_args
+	/* linux32_sys_fcntl64 */
+	case 221: {
+		struct linux32_sys_fcntl64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, arg).i32; /* netbsd32_voidp */
+		*n_args = 3;
+		break;
+	}
+	/* linux_sys_gettid */
+	case 224: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_setxattr */
+	case 226: {
+		struct netbsd32_setxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, value).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, size); /* netbsd32_size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_lsetxattr */
+	case 227: {
+		struct netbsd32_lsetxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, value).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, size); /* netbsd32_size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_fsetxattr */
+	case 228: {
+		struct netbsd32_fsetxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, value).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, size); /* netbsd32_size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_getxattr */
+	case 229: {
+		struct netbsd32_getxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, value).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, size); /* netbsd32_size_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_lgetxattr */
+	case 230: {
+		struct netbsd32_lgetxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, value).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, size); /* netbsd32_size_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_fgetxattr */
+	case 231: {
+		struct netbsd32_fgetxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, value).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, size); /* netbsd32_size_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_listxattr */
+	case 232: {
+		struct netbsd32_listxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, list).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, size); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_llistxattr */
+	case 233: {
+		struct netbsd32_llistxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, list).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, size); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_flistxattr */
+	case 234: {
+		struct netbsd32_flistxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, list).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, size); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_removexattr */
+	case 235: {
+		struct netbsd32_removexattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_lremovexattr */
+	case 236: {
+		struct netbsd32_lremovexattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_fremovexattr */
+	case 237: {
+		struct netbsd32_fremovexattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_tkill */
+	case 238: {
+		struct linux32_sys_tkill_args *p = params;
+		iarg[0] = SCARG(p, tid); /* int */
+		iarg[1] = SCARG(p, sig); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_futex */
+	case 240: {
+		struct linux32_sys_futex_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, uaddr).i32; /* linux32_intp_t */
+		iarg[1] = SCARG(p, op); /* int */
+		iarg[2] = SCARG(p, val); /* int */
+		uarg[3] = (intptr_t) SCARG(p, timeout).i32; /* linux32_timespecp_t */
+		uarg[4] = (intptr_t) SCARG(p, uaddr2).i32; /* linux32_intp_t */
+		iarg[5] = SCARG(p, val3); /* int */
+		*n_args = 6;
+		break;
+	}
+	/* linux32_sys_sched_setaffinity */
+	case 241: {
+		struct linux32_sys_sched_setaffinity_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = SCARG(p, len); /* unsigned int */
+		uarg[2] = (intptr_t) SCARG(p, mask).i32; /* linux32_ulongp_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_sched_getaffinity */
+	case 242: {
+		struct linux32_sys_sched_getaffinity_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = SCARG(p, len); /* unsigned int */
+		uarg[2] = (intptr_t) SCARG(p, mask).i32; /* linux32_ulongp_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_set_thread_area */
+	case 243: {
+		struct linux32_sys_set_thread_area_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, desc).i32; /* linux32_user_descp_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_get_thread_area */
+	case 244: {
+		struct linux32_sys_get_thread_area_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, desc).i32; /* linux32_user_descp_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_fadvise64 */
+	case 250: {
+		struct linux32_sys_fadvise64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, offlo); /* uint32_t */
+		uarg[2] = SCARG(p, offhi); /* uint32_t */
+		iarg[3] = SCARG(p, len); /* linux32_size_t */
+		iarg[4] = SCARG(p, advice); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux32_sys_exit_group */
+	case 252: {
+		struct linux32_sys_exit_group_args *p = params;
+		iarg[0] = SCARG(p, error_code); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_set_tid_address */
+	case 258: {
+		struct linux32_sys_set_tid_address_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tid).i32; /* linux32_intp_t */
+		*n_args = 1;
+		break;
+	}
+	/* linux32_sys_clock_settime */
+	case 264: {
+		struct linux32_sys_clock_settime_args *p = params;
+		iarg[0] = SCARG(p, which); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp).i32; /* linux32_timespecp_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_clock_gettime */
+	case 265: {
+		struct linux32_sys_clock_gettime_args *p = params;
+		iarg[0] = SCARG(p, which); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp).i32; /* linux32_timespecp_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_clock_getres */
+	case 266: {
+		struct linux32_sys_clock_getres_args *p = params;
+		iarg[0] = SCARG(p, which); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp).i32; /* linux32_timespecp_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_clock_nanosleep */
+	case 267: {
+		struct linux32_sys_clock_nanosleep_args *p = params;
+		iarg[0] = SCARG(p, which); /* clockid_t */
+		iarg[1] = SCARG(p, flags); /* int */
+		uarg[2] = (intptr_t) SCARG(p, rqtp).i32; /* linux32_timespecp_t */
+		uarg[3] = (intptr_t) SCARG(p, rmtp).i32; /* linux32_timespecp_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux32_sys_statfs64 */
+	case 268: {
+		struct linux32_sys_statfs64_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, sz); /* netbsd32_size_t */
+		uarg[2] = (intptr_t) SCARG(p, sp).i32; /* linux32_statfs64p */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_fstatfs64 */
+	case 269: {
+		struct linux32_sys_fstatfs64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, sz); /* netbsd32_size_t */
+		uarg[2] = (intptr_t) SCARG(p, sp).i32; /* linux32_statfs64p */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_tgkill */
+	case 270: {
+		struct linux32_sys_tgkill_args *p = params;
+		iarg[0] = SCARG(p, tgid); /* int */
+		iarg[1] = SCARG(p, tid); /* int */
+		iarg[2] = SCARG(p, sig); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* compat_50_netbsd32_utimes */
+	case 271: {
+		struct compat_50_netbsd32_utimes_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, tptr).i32; /* netbsd32_timeval50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_fadvise64_64 */
+	case 272: {
+		struct linux32_sys_fadvise64_64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, offlo); /* uint32_t */
+		uarg[2] = SCARG(p, offhi); /* uint32_t */
+		uarg[3] = SCARG(p, lenlo); /* uint32_t */
+		uarg[4] = SCARG(p, lenhi); /* uint32_t */
+		iarg[5] = SCARG(p, advice); /* int */
+		*n_args = 6;
+		break;
+	}
+	/* linux32_sys_openat */
+	case 295: {
+		struct linux32_sys_openat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, flags); /* int */
+		iarg[3] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_mkdirat */
+	case 296: {
+		struct netbsd32_mkdirat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_mknodat */
+	case 297: {
+		struct linux32_sys_mknodat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, mode); /* linux_umode_t */
+		uarg[3] = SCARG(p, dev); /* unsigned */
+		*n_args = 4;
+		break;
+	}
+	/* linux32_sys_fchownat */
+	case 298: {
+		struct linux32_sys_fchownat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[2] = SCARG(p, owner); /* uid_t */
+		iarg[3] = SCARG(p, group); /* gid_t */
+		iarg[4] = SCARG(p, flag); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* linux32_sys_fstatat64 */
+	case 300: {
+		struct linux32_sys_fstatat64_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, sp).i32; /* linux32_stat64p */
+		iarg[3] = SCARG(p, flag); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* linux32_sys_unlinkat */
+	case 301: {
+		struct linux32_sys_unlinkat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, flag); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_renameat */
+	case 302: {
+		struct netbsd32_renameat_args *p = params;
+		iarg[0] = SCARG(p, fromfd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, from).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, tofd); /* int */
+		uarg[3] = (intptr_t) SCARG(p, to).i32; /* netbsd32_charp */
+		*n_args = 4;
+		break;
+	}
+	/* linux32_sys_linkat */
+	case 303: {
+		struct linux32_sys_linkat_args *p = params;
+		iarg[0] = SCARG(p, fd1); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name1).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, fd2); /* int */
+		uarg[3] = (intptr_t) SCARG(p, name2).i32; /* netbsd32_charp */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_symlinkat */
+	case 304: {
+		struct netbsd32_symlinkat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path1).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, fd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, path2).i32; /* netbsd32_charp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_readlinkat */
+	case 305: {
+		struct netbsd32_readlinkat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_charp */
+		iarg[3] = SCARG(p, bufsize); /* linux32_size_t */
+		*n_args = 4;
+		break;
+	}
+	/* linux32_sys_fchmodat */
+	case 306: {
+		struct linux32_sys_fchmodat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, mode); /* linux_umode_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_faccessat */
+	case 307: {
+		struct linux32_sys_faccessat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, amode); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_set_robust_list */
+	case 311: {
+		struct linux32_sys_set_robust_list_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, head).i32; /* linux32_robust_list_headp_t */
+		iarg[1] = SCARG(p, len); /* linux32_size_t */
+		*n_args = 2;
+		break;
+	}
+	/* linux32_sys_get_robust_list */
+	case 312: {
+		struct linux32_sys_get_robust_list_args *p = params;
+		iarg[0] = SCARG(p, pid); /* linux32_pid_t */
+		uarg[1] = (intptr_t) SCARG(p, head).i32; /* linux32_robust_list_headpp_t */
+		uarg[2] = (intptr_t) SCARG(p, len).i32; /* linux32_sizep_t */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_utimensat */
+	case 320: {
+		struct linux32_sys_utimensat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, times).i32; /* linux32_timespecp_t */
+		iarg[3] = SCARG(p, flag); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* linux32_sys_dup3 */
+	case 330: {
+		struct linux32_sys_dup3_args *p = params;
+		iarg[0] = SCARG(p, from); /* int */
+		iarg[1] = SCARG(p, to); /* int */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* linux32_sys_pipe2 */
+	case 331: {
+		struct linux32_sys_pipe2_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fd).i32; /* netbsd32_intp */
+		iarg[1] = SCARG(p, flags); /* int */
+		*n_args = 2;
+		break;
+	}
+	default:
+		*n_args = 0;
+		break;
+	};
+}
+static void
+systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
+{
+	const char *p = NULL;
+	switch (sysnum) {
+	/* linux_sys_nosys */
+	case 0:
+		break;
+	/* linux32_sys_exit */
+	case 1:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fork */
+	case 2:
+		break;
+	/* netbsd32_read */
+	case 3:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_write */
+	case 4:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_open */
+	case 5:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_close */
+	case 6:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_waitpid */
+	case 7:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_intp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_creat */
+	case 8:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_link */
+	case 9:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_unlink */
+	case 10:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_execve */
+	case 11:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charpp";
+			break;
+		case 2:
+			p = "netbsd32_charpp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_chdir */
+	case 12:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_time */
+	case 13:
+		switch(ndx) {
+		case 0:
+			p = "linux32_timep_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_mknod */
+	case 14:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		case 2:
+			p = "unsigned";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_chmod */
+	case 15:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_lchown16 */
+	case 16:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "linux32_uid16_t";
+			break;
+		case 2:
+			p = "linux32_gid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_break */
+	case 17:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_netbsd32_olseek */
+	case 19:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_long";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpid */
+	case 20:
+		break;
+	/* netbsd32_setuid */
+	case 23:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getuid */
+	case 24:
+		break;
+	/* linux32_sys_stime */
+	case 25:
+		switch(ndx) {
+		case 0:
+			p = "linux32_timep_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_ptrace */
+	case 26:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_alarm */
+	case 27:
+		switch(ndx) {
+		case 0:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_pause */
+	case 29:
+		break;
+	/* linux32_sys_utime */
+	case 30:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "linux32_utimbufp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_access */
+	case 33:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_nice */
+	case 34:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sync */
+	case 36:
+		break;
+	/* linux32_sys_kill */
+	case 37:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___posix_rename */
+	case 38:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mkdir */
+	case 39:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_rmdir */
+	case 40:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_dup */
+	case 41:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_pipe */
+	case 42:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_intp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_times */
+	case 43:
+		switch(ndx) {
+		case 0:
+			p = "linux32_tmsp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_brk */
+	case 45:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setgid */
+	case 46:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getgid */
+	case 47:
+		break;
+	/* linux32_sys_signal */
+	case 48:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux32_handlerp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_geteuid */
+	case 49:
+		break;
+	/* sys_getegid */
+	case 50:
+		break;
+	/* netbsd32_acct */
+	case 51:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_ioctl */
+	case 54:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_u_long";
+			break;
+		case 2:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_fcntl */
+	case 55:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setpgid */
+	case 57:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_oldolduname */
+	case 59:
+		switch(ndx) {
+		case 0:
+			p = "linux32_oldold_utsnamep_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_umask */
+	case 60:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_chroot */
+	case 61:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_dup2 */
+	case 63:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getppid */
+	case 64:
+		break;
+	/* sys_getpgrp */
+	case 65:
+		break;
+	/* sys_setsid */
+	case 66:
+		break;
+	/* linux32_sys_siggetmask */
+	case 68:
+		break;
+	/* linux32_sys_sigsetmask */
+	case 69:
+		switch(ndx) {
+		case 0:
+			p = "linux32_old_sigset_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_setreuid16 */
+	case 70:
+		switch(ndx) {
+		case 0:
+			p = "linux32_uid16_t";
+			break;
+		case 1:
+			p = "linux32_uid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_setregid16 */
+	case 71:
+		switch(ndx) {
+		case 0:
+			p = "linux32_gid16_t";
+			break;
+		case 1:
+			p = "linux32_gid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_netbsd32_osethostname */
+	case 74:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_setrlimit */
+	case 75:
+		switch(ndx) {
+		case 0:
+			p = "u_int";
+			break;
+		case 1:
+			p = "netbsd32_orlimitp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_getrlimit */
+	case 76:
+		switch(ndx) {
+		case 0:
+			p = "u_int";
+			break;
+		case 1:
+			p = "netbsd32_orlimitp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_50_netbsd32_getrusage */
+	case 77:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_rusage50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_gettimeofday */
+	case 78:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_timeval50p_t";
+			break;
+		case 1:
+			p = "netbsd32_timezonep_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_settimeofday */
+	case 79:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_timeval50p_t";
+			break;
+		case 1:
+			p = "netbsd32_timezonep_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_getgroups16 */
+	case 80:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux32_gid16p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_setgroups16 */
+	case 81:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux32_gid16p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_oldselect */
+	case 82:
+		switch(ndx) {
+		case 0:
+			p = "linux32_oldselectp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_symlink */
+	case 83:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_netbsd32_lstat43 */
+	case 84:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_stat43p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_readlink */
+	case 85:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_swapon */
+	case 87:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_reboot */
+	case 88:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_readdir */
+	case 89:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_old_mmap */
+	case 90:
+		switch(ndx) {
+		case 0:
+			p = "linux32_oldmmapp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_munmap */
+	case 91:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_netbsd32_otruncate */
+	case 92:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_43_netbsd32_oftruncate */
+	case 93:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fchmod */
+	case 94:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_fchown16 */
+	case 95:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux32_uid16_t";
+			break;
+		case 2:
+			p = "linux32_gid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_getpriority */
+	case 96:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setpriority */
+	case 97:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_profil */
+	case 98:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "netbsd32_u_long";
+			break;
+		case 3:
+			p = "u_int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_statfs */
+	case 99:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "linux32_statfsp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_fstatfs */
+	case 100:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux32_statfsp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_ioperm */
+	case 101:
+		switch(ndx) {
+		case 0:
+			p = "unsigned int";
+			break;
+		case 1:
+			p = "unsigned int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_socketcall */
+	case 102:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_50_netbsd32_setitimer */
+	case 104:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_itimerval50p_t";
+			break;
+		case 2:
+			p = "netbsd32_itimerval50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_50_netbsd32_getitimer */
+	case 105:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_itimerval50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_stat */
+	case 106:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "linux32_statp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_lstat */
+	case 107:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "linux32_statp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_fstat */
+	case 108:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux32_statp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_olduname */
+	case 109:
+		switch(ndx) {
+		case 0:
+			p = "linux32_oldutsnamep_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_iopl */
+	case 110:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_wait4 */
+	case 114:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_intp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "netbsd32_rusage50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_swapoff */
+	case 115:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_sysinfo */
+	case 116:
+		switch(ndx) {
+		case 0:
+			p = "linux32_sysinfop_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_ipc */
+	case 117:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fsync */
+	case 118:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_sigreturn */
+	case 119:
+		switch(ndx) {
+		case 0:
+			p = "linux32_sigcontextp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_clone */
+	case 120:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_voidp";
+			break;
+		case 4:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_setdomainname */
+	case 121:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_uname */
+	case 122:
+		switch(ndx) {
+		case 0:
+			p = "linux32_utsnamep";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_modify_ldt */
+	case 123:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_mprotect */
+	case 125:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getpgid */
+	case 132:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fchdir */
+	case 133:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_personality */
+	case 136:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_u_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_setfsuid */
+	case 138:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_setfsgid */
+	case 139:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_llseek */
+	case 140:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "u_int32_t";
+			break;
+		case 2:
+			p = "u_int32_t";
+			break;
+		case 3:
+			p = "netbsd32_voidp";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_getdents */
+	case 141:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux32_direntp_t";
+			break;
+		case 2:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_select */
+	case 142:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_fd_setp_t";
+			break;
+		case 2:
+			p = "netbsd32_fd_setp_t";
+			break;
+		case 3:
+			p = "netbsd32_fd_setp_t";
+			break;
+		case 4:
+			p = "netbsd32_timeval50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_flock */
+	case 143:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___msync13 */
+	case 144:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_readv */
+	case 145:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_iovecp_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_writev */
+	case 146:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_iovecp_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getsid */
+	case 147:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_fdatasync */
+	case 148:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys___sysctl */
+	case 149:
+		switch(ndx) {
+		case 0:
+			p = "linux32___sysctlp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mlock */
+	case 150:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_munlock */
+	case 151:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mlockall */
+	case 152:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_munlockall */
+	case 153:
+		break;
+	/* linux32_sys_sched_setparam */
+	case 154:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "const linux32_sched_paramp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_sched_getparam */
+	case 155:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "linux32_sched_paramp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_sched_setscheduler */
+	case 156:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "linux32_sched_paramp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_sched_getscheduler */
+	case 157:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_sched_yield */
+	case 158:
+		break;
+	/* linux32_sys_sched_get_priority_max */
+	case 159:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_sched_get_priority_min */
+	case 160:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_nanosleep */
+	case 162:
+		switch(ndx) {
+		case 0:
+			p = "linux32_timespecp_t";
+			break;
+		case 1:
+			p = "linux32_timespecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_mremap */
+	case 163:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		case 3:
+			p = "netbsd32_u_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_setresuid16 */
+	case 164:
+		switch(ndx) {
+		case 0:
+			p = "linux32_uid16_t";
+			break;
+		case 1:
+			p = "linux32_uid16_t";
+			break;
+		case 2:
+			p = "linux32_uid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_getresuid16 */
+	case 165:
+		switch(ndx) {
+		case 0:
+			p = "linux32_uid16p_t";
+			break;
+		case 1:
+			p = "linux32_uid16p_t";
+			break;
+		case 2:
+			p = "linux32_uid16p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_poll */
+	case 168:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_pollfdp_t";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_setresgid16 */
+	case 170:
+		switch(ndx) {
+		case 0:
+			p = "linux32_gid16_t";
+			break;
+		case 1:
+			p = "linux32_gid16_t";
+			break;
+		case 2:
+			p = "linux32_gid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_getresgid16 */
+	case 171:
+		switch(ndx) {
+		case 0:
+			p = "linux32_gid16p_t";
+			break;
+		case 1:
+			p = "linux32_gid16p_t";
+			break;
+		case 2:
+			p = "linux32_gid16p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_rt_sigreturn */
+	case 173:
+		switch(ndx) {
+		case 0:
+			p = "linux32_ucontextp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_rt_sigaction */
+	case 174:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux32_sigactionp_t";
+			break;
+		case 2:
+			p = "linux32_sigactionp_t";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_rt_sigprocmask */
+	case 175:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux32_sigsetp_t";
+			break;
+		case 2:
+			p = "linux32_sigsetp_t";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_rt_sigpending */
+	case 176:
+		switch(ndx) {
+		case 0:
+			p = "linux32_sigsetp_t";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_rt_sigtimedwait */
+	case 177:
+		switch(ndx) {
+		case 0:
+			p = "const linux32_sigsetp_t";
+			break;
+		case 1:
+			p = "linux32_siginfop_t";
+			break;
+		case 2:
+			p = "const linux32_timespecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_rt_queueinfo */
+	case 178:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "linux32_siginfop_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_rt_sigsuspend */
+	case 179:
+		switch(ndx) {
+		case 0:
+			p = "linux32_sigsetp_t";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_pread */
+	case 180:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		case 3:
+			p = "netbsd32_off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_pwrite */
+	case 181:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		case 3:
+			p = "netbsd32_off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_chown16 */
+	case 182:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "linux32_uid16_t";
+			break;
+		case 2:
+			p = "linux32_gid16_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___getcwd */
+	case 183:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___vfork14 */
+	case 190:
+		break;
+	/* linux32_sys_ugetrlimit */
+	case 191:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_orlimitp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_mmap2 */
+	case 192:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_u_long";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "int";
+			break;
+		case 5:
+			p = "linux32_off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_truncate64 */
+	case 193:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "uint32_t";
+			break;
+		case 2:
+			p = "uint32_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_ftruncate64 */
+	case 194:
+		switch(ndx) {
+		case 0:
+			p = "unsigned int";
+			break;
+		case 1:
+			p = "uint32_t";
+			break;
+		case 2:
+			p = "uint32_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_stat64 */
+	case 195:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "linux32_stat64p";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_lstat64 */
+	case 196:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "linux32_stat64p";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_fstat64 */
+	case 197:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux32_stat64p";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___posix_lchown */
+	case 198:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getuid */
+	case 199:
+		break;
+	/* sys_getgid */
+	case 200:
+		break;
+	/* sys_geteuid */
+	case 201:
+		break;
+	/* sys_getegid */
+	case 202:
+		break;
+	/* netbsd32_setreuid */
+	case 203:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setregid */
+	case 204:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		case 1:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getgroups */
+	case 205:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_gid_tp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setgroups */
+	case 206:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_gid_tp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___posix_fchown */
+	case 207:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_setresuid */
+	case 208:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_getresuid */
+	case 209:
+		switch(ndx) {
+		case 0:
+			p = "linux32_uidp_t";
+			break;
+		case 1:
+			p = "linux32_uidp_t";
+			break;
+		case 2:
+			p = "linux32_uidp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_setresgid */
+	case 210:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		case 1:
+			p = "gid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_getresgid */
+	case 211:
+		switch(ndx) {
+		case 0:
+			p = "linux32_gidp_t";
+			break;
+		case 1:
+			p = "linux32_gidp_t";
+			break;
+		case 2:
+			p = "linux32_gidp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___posix_chown */
+	case 212:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setuid */
+	case 213:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setgid */
+	case 214:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_setfsuid */
+	case 215:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_setfsgid */
+	case 216:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mincore */
+	case 218:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_madvise */
+	case 219:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_getdents64 */
+	case 220:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "linux32_dirent64p_t";
+			break;
+		case 2:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+#define linux32_sys_fcntl64 linux32_sys_fcntl
+#define linux32_sys_fcntl64_args linux32_sys_fcntl_args
+	/* linux32_sys_fcntl64 */
+	case 221:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux_sys_gettid */
+	case 224:
+		break;
+	/* netbsd32_setxattr */
+	case 226:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_lsetxattr */
+	case 227:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fsetxattr */
+	case 228:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getxattr */
+	case 229:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_lgetxattr */
+	case 230:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fgetxattr */
+	case 231:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_listxattr */
+	case 232:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_llistxattr */
+	case 233:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_flistxattr */
+	case 234:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_removexattr */
+	case 235:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_lremovexattr */
+	case 236:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fremovexattr */
+	case 237:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_tkill */
+	case 238:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_futex */
+	case 240:
+		switch(ndx) {
+		case 0:
+			p = "linux32_intp_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "linux32_timespecp_t";
+			break;
+		case 4:
+			p = "linux32_intp_t";
+			break;
+		case 5:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_sched_setaffinity */
+	case 241:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "unsigned int";
+			break;
+		case 2:
+			p = "linux32_ulongp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_sched_getaffinity */
+	case 242:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "unsigned int";
+			break;
+		case 2:
+			p = "linux32_ulongp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_set_thread_area */
+	case 243:
+		switch(ndx) {
+		case 0:
+			p = "linux32_user_descp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_get_thread_area */
+	case 244:
+		switch(ndx) {
+		case 0:
+			p = "linux32_user_descp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_fadvise64 */
+	case 250:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "uint32_t";
+			break;
+		case 2:
+			p = "uint32_t";
+			break;
+		case 3:
+			p = "linux32_size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_exit_group */
+	case 252:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_set_tid_address */
+	case 258:
+		switch(ndx) {
+		case 0:
+			p = "linux32_intp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_clock_settime */
+	case 264:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "linux32_timespecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_clock_gettime */
+	case 265:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "linux32_timespecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_clock_getres */
+	case 266:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "linux32_timespecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_clock_nanosleep */
+	case 267:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "linux32_timespecp_t";
+			break;
+		case 3:
+			p = "linux32_timespecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_statfs64 */
+	case 268:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "linux32_statfs64p";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_fstatfs64 */
+	case 269:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "linux32_statfs64p";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_tgkill */
+	case 270:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* compat_50_netbsd32_utimes */
+	case 271:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_timeval50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_fadvise64_64 */
+	case 272:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "uint32_t";
+			break;
+		case 2:
+			p = "uint32_t";
+			break;
+		case 3:
+			p = "uint32_t";
+			break;
+		case 4:
+			p = "uint32_t";
+			break;
+		case 5:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_openat */
+	case 295:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mkdirat */
+	case 296:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_mknodat */
+	case 297:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "linux_umode_t";
+			break;
+		case 3:
+			p = "unsigned";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_fchownat */
+	case 298:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "uid_t";
+			break;
+		case 3:
+			p = "gid_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_fstatat64 */
+	case 300:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "linux32_stat64p";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_unlinkat */
+	case 301:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_renameat */
+	case 302:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_linkat */
+	case 303:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "netbsd32_charp";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_symlinkat */
+	case 304:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_readlinkat */
+	case 305:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_charp";
+			break;
+		case 3:
+			p = "linux32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_fchmodat */
+	case 306:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "linux_umode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_faccessat */
+	case 307:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_set_robust_list */
+	case 311:
+		switch(ndx) {
+		case 0:
+			p = "linux32_robust_list_headp_t";
+			break;
+		case 1:
+			p = "linux32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_get_robust_list */
+	case 312:
+		switch(ndx) {
+		case 0:
+			p = "linux32_pid_t";
+			break;
+		case 1:
+			p = "linux32_robust_list_headpp_t";
+			break;
+		case 2:
+			p = "linux32_sizep_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_utimensat */
+	case 320:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "linux32_timespecp_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_dup3 */
+	case 330:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* linux32_sys_pipe2 */
+	case 331:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_intp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	default:
+		break;
+	};
+	if (p != NULL)
+		strlcpy(desc, p, descsz);
+}
+static void
+systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
+{
+	const char *p = NULL;
+	switch (sysnum) {
+	/* linux_sys_nosys */
+	case 0:
+	/* linux32_sys_exit */
+	case 1:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fork */
+	case 2:
+	/* netbsd32_read */
+	case 3:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* netbsd32_write */
+	case 4:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* linux32_sys_open */
+	case 5:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_close */
+	case 6:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_waitpid */
+	case 7:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_creat */
+	case 8:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_link */
+	case 9:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_unlink */
+	case 10:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_execve */
+	case 11:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_chdir */
+	case 12:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_time */
+	case 13:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_mknod */
+	case 14:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_chmod */
+	case 15:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_lchown16 */
+	case 16:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_break */
+	case 17:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_netbsd32_olseek */
+	case 19:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_long";
+		break;
+	/* sys_getpid */
+	case 20:
+	/* netbsd32_setuid */
+	case 23:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getuid */
+	case 24:
+	/* linux32_sys_stime */
+	case 25:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_ptrace */
+	case 26:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_alarm */
+	case 27:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_pause */
+	case 29:
+	/* linux32_sys_utime */
+	case 30:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_access */
+	case 33:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_nice */
+	case 34:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sync */
+	case 36:
+	/* linux32_sys_kill */
+	case 37:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___posix_rename */
+	case 38:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mkdir */
+	case 39:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_rmdir */
+	case 40:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_dup */
+	case 41:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_pipe */
+	case 42:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_times */
+	case 43:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_brk */
+	case 45:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setgid */
+	case 46:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getgid */
+	case 47:
+	/* linux32_sys_signal */
+	case 48:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_geteuid */
+	case 49:
+	/* sys_getegid */
+	case 50:
+	/* netbsd32_acct */
+	case 51:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_ioctl */
+	case 54:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_fcntl */
+	case 55:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setpgid */
+	case 57:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_oldolduname */
+	case 59:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_umask */
+	case 60:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_chroot */
+	case 61:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_dup2 */
+	case 63:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getppid */
+	case 64:
+	/* sys_getpgrp */
+	case 65:
+	/* sys_setsid */
+	case 66:
+	/* linux32_sys_siggetmask */
+	case 68:
+	/* linux32_sys_sigsetmask */
+	case 69:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_setreuid16 */
+	case 70:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_setregid16 */
+	case 71:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_netbsd32_osethostname */
+	case 74:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_setrlimit */
+	case 75:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_getrlimit */
+	case 76:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_50_netbsd32_getrusage */
+	case 77:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_gettimeofday */
+	case 78:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_settimeofday */
+	case 79:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_getgroups16 */
+	case 80:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_setgroups16 */
+	case 81:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_oldselect */
+	case 82:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_symlink */
+	case 83:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_netbsd32_lstat43 */
+	case 84:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_readlink */
+	case 85:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_swapon */
+	case 87:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_reboot */
+	case 88:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_readdir */
+	case 89:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_old_mmap */
+	case 90:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_munmap */
+	case 91:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_netbsd32_otruncate */
+	case 92:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_43_netbsd32_oftruncate */
+	case 93:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fchmod */
+	case 94:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_fchown16 */
+	case 95:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_getpriority */
+	case 96:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setpriority */
+	case 97:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_profil */
+	case 98:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_statfs */
+	case 99:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_fstatfs */
+	case 100:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_ioperm */
+	case 101:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_socketcall */
+	case 102:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_50_netbsd32_setitimer */
+	case 104:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_50_netbsd32_getitimer */
+	case 105:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_stat */
+	case 106:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_lstat */
+	case 107:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_fstat */
+	case 108:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_olduname */
+	case 109:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_iopl */
+	case 110:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_wait4 */
+	case 114:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_swapoff */
+	case 115:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_sysinfo */
+	case 116:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_ipc */
+	case 117:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fsync */
+	case 118:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_sigreturn */
+	case 119:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_clone */
+	case 120:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_setdomainname */
+	case 121:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_uname */
+	case 122:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_modify_ldt */
+	case 123:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_mprotect */
+	case 125:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getpgid */
+	case 132:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fchdir */
+	case 133:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_personality */
+	case 136:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_setfsuid */
+	case 138:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_setfsgid */
+	case 139:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_llseek */
+	case 140:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_getdents */
+	case 141:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_select */
+	case 142:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_flock */
+	case 143:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___msync13 */
+	case 144:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_readv */
+	case 145:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_writev */
+	case 146:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* netbsd32_getsid */
+	case 147:
+		if (ndx == 0 || ndx == 1)
+			p = "pid_t";
+		break;
+	/* linux32_sys_fdatasync */
+	case 148:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys___sysctl */
+	case 149:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mlock */
+	case 150:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_munlock */
+	case 151:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mlockall */
+	case 152:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_munlockall */
+	case 153:
+	/* linux32_sys_sched_setparam */
+	case 154:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_sched_getparam */
+	case 155:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_sched_setscheduler */
+	case 156:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_sched_getscheduler */
+	case 157:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_sched_yield */
+	case 158:
+	/* linux32_sys_sched_get_priority_max */
+	case 159:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_sched_get_priority_min */
+	case 160:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_nanosleep */
+	case 162:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_mremap */
+	case 163:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_setresuid16 */
+	case 164:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_getresuid16 */
+	case 165:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_poll */
+	case 168:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_setresgid16 */
+	case 170:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_getresgid16 */
+	case 171:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_rt_sigreturn */
+	case 173:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_rt_sigaction */
+	case 174:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_rt_sigprocmask */
+	case 175:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_rt_sigpending */
+	case 176:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_rt_sigtimedwait */
+	case 177:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_rt_queueinfo */
+	case 178:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_rt_sigsuspend */
+	case 179:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_pread */
+	case 180:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* linux32_sys_pwrite */
+	case 181:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* linux32_sys_chown16 */
+	case 182:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___getcwd */
+	case 183:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___vfork14 */
+	case 190:
+	/* linux32_sys_ugetrlimit */
+	case 191:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_mmap2 */
+	case 192:
+		if (ndx == 0 || ndx == 1)
+			p = "linux32_off_t";
+		break;
+	/* linux32_sys_truncate64 */
+	case 193:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_ftruncate64 */
+	case 194:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_stat64 */
+	case 195:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_lstat64 */
+	case 196:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_fstat64 */
+	case 197:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___posix_lchown */
+	case 198:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getuid */
+	case 199:
+	/* sys_getgid */
+	case 200:
+	/* sys_geteuid */
+	case 201:
+	/* sys_getegid */
+	case 202:
+	/* netbsd32_setreuid */
+	case 203:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setregid */
+	case 204:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getgroups */
+	case 205:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setgroups */
+	case 206:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___posix_fchown */
+	case 207:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_setresuid */
+	case 208:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_getresuid */
+	case 209:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_setresgid */
+	case 210:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_getresgid */
+	case 211:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___posix_chown */
+	case 212:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setuid */
+	case 213:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setgid */
+	case 214:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_setfsuid */
+	case 215:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_setfsgid */
+	case 216:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mincore */
+	case 218:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_madvise */
+	case 219:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_getdents64 */
+	case 220:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#define linux32_sys_fcntl64 linux32_sys_fcntl
+#define linux32_sys_fcntl64_args linux32_sys_fcntl_args
+	/* linux32_sys_fcntl64 */
+	case 221:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux_sys_gettid */
+	case 224:
+	/* netbsd32_setxattr */
+	case 226:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_lsetxattr */
+	case 227:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fsetxattr */
+	case 228:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getxattr */
+	case 229:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* netbsd32_lgetxattr */
+	case 230:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* netbsd32_fgetxattr */
+	case 231:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* netbsd32_listxattr */
+	case 232:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* netbsd32_llistxattr */
+	case 233:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* netbsd32_flistxattr */
+	case 234:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* netbsd32_removexattr */
+	case 235:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_lremovexattr */
+	case 236:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fremovexattr */
+	case 237:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_tkill */
+	case 238:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_futex */
+	case 240:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_sched_setaffinity */
+	case 241:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_sched_getaffinity */
+	case 242:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_set_thread_area */
+	case 243:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_get_thread_area */
+	case 244:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_fadvise64 */
+	case 250:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_exit_group */
+	case 252:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_set_tid_address */
+	case 258:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_clock_settime */
+	case 264:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_clock_gettime */
+	case 265:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_clock_getres */
+	case 266:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_clock_nanosleep */
+	case 267:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_statfs64 */
+	case 268:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_fstatfs64 */
+	case 269:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_tgkill */
+	case 270:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* compat_50_netbsd32_utimes */
+	case 271:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_fadvise64_64 */
+	case 272:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_openat */
+	case 295:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mkdirat */
+	case 296:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_mknodat */
+	case 297:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_fchownat */
+	case 298:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_fstatat64 */
+	case 300:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_unlinkat */
+	case 301:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_renameat */
+	case 302:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_linkat */
+	case 303:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_symlinkat */
+	case 304:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_readlinkat */
+	case 305:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_fchmodat */
+	case 306:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_faccessat */
+	case 307:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_set_robust_list */
+	case 311:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_get_robust_list */
+	case 312:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_utimensat */
+	case 320:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_dup3 */
+	case 330:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* linux32_sys_pipe2 */
+	case 331:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	default:
+		break;
+	};
+	if (p != NULL)
+		strlcpy(desc, p, descsz);
+}
diff --git a/sys/compat/linux32/arch/amd64/syscalls.conf b/sys/compat/linux32/arch/amd64/syscalls.conf
index 644afc2..62d486c 100644
--- a/sys/compat/linux32/arch/amd64/syscalls.conf
+++ b/sys/compat/linux32/arch/amd64/syscalls.conf
@@ -1,9 +1,10 @@
-#	$NetBSD: syscalls.conf,v 1.1 2006/02/09 19:18:57 manu Exp $
+#	$NetBSD: syscalls.conf,v 1.2 2015/03/07 15:22:38 christos Exp $
 
 sysnames="linux32_syscalls.c"
 sysnumhdr="linux32_syscall.h"
 syssw="linux32_sysent.c"
 sysarghdr="linux32_syscallargs.h"
+systrace="linux32_systrace_args.c"
 compatopts=""
 libcompatopts=""
 
diff --git a/sys/compat/linux32/arch/amd64/syscalls.master b/sys/compat/linux32/arch/amd64/syscalls.master
index 904d667..2b2d6f9 100644
--- a/sys/compat/linux32/arch/amd64/syscalls.master
+++ b/sys/compat/linux32/arch/amd64/syscalls.master
@@ -1,4 +1,4 @@
-	$NetBSD: syscalls.master,v 1.67 2014/05/29 10:47:00 njoly Exp $
+	$NetBSD: syscalls.master,v 1.69 2015/03/08 17:10:44 christos Exp $
 
 ; NetBSD i386 COMPAT_LINUX32 system call name/number "master" file.
 ; (See syscalls.conf to see what it is processed into.)
@@ -88,7 +88,7 @@
 17	STD	{ int|linux32_sys||break(netbsd32_charp nsize); }
 18	OBSOL	ostat
 19	NOARGS	{ netbsd32_long|compat_43_netbsd32||olseek(int fd, \
-		    netbsd32_long offset, int chence); }
+		    netbsd32_long offset, int whence); }
 20	NOARGS 	{ pid_t|sys||getpid(void); }
 21	UNIMPL	mount
 22	UNIMPL	umount
@@ -122,7 +122,7 @@
 46	NOARGS	linux_setgid16 { int|netbsd32||setgid(gid_t gid); }
 47	NOARGS	linux_getgid16 { gid_t|sys||getgid(void); }
 48	STD	{ int|linux32_sys||signal(int signum, \
-		    linux32_handler_t handler); }
+		    linux32_handlerp_t handler); }
 49	NOARGS	linux_geteuid16 { uid_t|sys||geteuid(void); }
 50	NOARGS	linux_getegid16 { gid_t|sys||getegid(void); }
 51	NOARGS	{ int|netbsd32||acct(netbsd32_charp path); }
@@ -174,7 +174,7 @@
 		    netbsd32_charp link); }
 84	NOARGS	{ int|compat_43_netbsd32||lstat43(netbsd32_charp \
 		    path, netbsd32_stat43p_t ub); }
-85	NOARGS	{ int|netbsd32||readlink(netbsd32_charp name, \
+85	NOARGS	{ int|netbsd32||readlink(netbsd32_charp path, \
 		    netbsd32_charp buf, netbsd32_size_t count); }
 86	UNIMPL	uselib
 87	STD	{ int|linux32_sys||swapon(netbsd32_charp name); }
diff --git a/sys/compat/linux32/common/linux32_signal.c b/sys/compat/linux32/common/linux32_signal.c
index 77d831d..53704ad 100644
--- a/sys/compat/linux32/common/linux32_signal.c
+++ b/sys/compat/linux32/common/linux32_signal.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_signal.c,v 1.17 2013/11/18 01:32:52 chs Exp $ */
+/*	$NetBSD: linux32_signal.c,v 1.18 2015/03/08 17:10:44 christos Exp $ */
 
 /*-
  * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux32_signal.c,v 1.17 2013/11/18 01:32:52 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_signal.c,v 1.18 2015/03/08 17:10:44 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/ucred.h>
@@ -501,7 +501,7 @@ linux32_sys_signal(struct lwp *l, const struct linux32_sys_signal_args *uap, reg
 {
 	/* {
 		syscallarg(int) signum;
-		syscallarg(linux32_handler_t) handler;
+		syscallarg(linux32_handlerp_t) handler;
 	} */
         struct sigaction nbsa, obsa;
         int error, sig;
diff --git a/sys/compat/linux32/linux32_systrace_args.c b/sys/compat/linux32/linux32_systrace_args.c
new file mode 100644
index 0000000..d93ad10
--- /dev/null
+++ b/sys/compat/linux32/linux32_systrace_args.c
@@ -0,0 +1,41 @@
+/*	$NetBSD: linux32_systrace_args.c,v 1.1 2015/03/07 15:16:12 christos Exp $	*/
+
+/*-
+ * Copyright (c) 1998 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Eric Haszlakiewicz.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* XXX XXX This exists to keep kdump and friends happy. */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(1, "$NetBSD: linux32_systrace_args.c,v 1.1 2015/03/07 15:16:12 christos Exp $");
+
+#if defined(__amd64__)
+#include "../../sys/compat/linux32/arch/amd64/linux32_systrace_args.c"
+#else
+#error "fix me"
+#endif
diff --git a/sys/compat/netbsd32/netbsd32_syscall.h b/sys/compat/netbsd32/netbsd32_syscall.h
index e9e489f..51492784 100644
--- a/sys/compat/netbsd32/netbsd32_syscall.h
+++ b/sys/compat/netbsd32/netbsd32_syscall.h
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_syscall.h,v 1.109.2.3 2015/11/06 09:19:24 martin Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
diff --git a/sys/compat/netbsd32/netbsd32_syscallargs.h b/sys/compat/netbsd32/netbsd32_syscallargs.h
index 1bad5c0..b2c80e3 100644
--- a/sys/compat/netbsd32/netbsd32_syscallargs.h
+++ b/sys/compat/netbsd32/netbsd32_syscallargs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_syscallargs.h,v 1.109.2.3 2015/11/06 09:19:24 martin Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
diff --git a/sys/compat/netbsd32/netbsd32_syscalls.c b/sys/compat/netbsd32/netbsd32_syscalls.c
index 8773c9d..21c12eb 100644
--- a/sys/compat/netbsd32/netbsd32_syscalls.c
+++ b/sys/compat/netbsd32/netbsd32_syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_syscalls.c,v 1.108.2.3 2015/11/06 09:19:24 martin Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscalls.c,v 1.108.2.3 2015/11/06 09:19:24 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #if defined(_KERNEL_OPT)
@@ -25,6 +25,8 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_syscalls.c,v 1.108.2.3 2015/11/06 09:19:24
 #include <sys/syscallargs.h>
 #include <compat/netbsd32/netbsd32.h>
 #include <compat/netbsd32/netbsd32_syscallargs.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const netbsd32_syscallnames[] = {
@@ -615,3 +617,594 @@ const char *const netbsd32_syscallnames[] = {
 	/* 510 */	"# filler",
 	/* 511 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altnetbsd32_syscallnames[] = {
+	/*   0 */	"syscall",
+	/*   1 */	"exit",
+	/*   2 */	NULL, /* fork */
+	/*   3 */	"read",
+	/*   4 */	"write",
+	/*   5 */	"open",
+	/*   6 */	"close",
+	/*   7 */	NULL, /* compat_50_netbsd32_wait4 */
+	/*   8 */	NULL, /* compat_43_netbsd32_ocreat */
+	/*   9 */	"link",
+	/*  10 */	"unlink",
+	/*  11 */	NULL, /* obsolete execv */
+	/*  12 */	"chdir",
+	/*  13 */	"fchdir",
+	/*  14 */	NULL, /* compat_50_netbsd32_mknod */
+	/*  15 */	"chmod",
+	/*  16 */	"chown",
+	/*  17 */	"break",
+	/*  18 */	NULL, /* compat_20_netbsd32_getfsstat */
+	/*  19 */	NULL, /* compat_43_netbsd32_olseek */
+	/*  20 */	NULL, /* getpid */
+	/*  21 */	"mount",
+	/*  22 */	"unmount",
+	/*  23 */	"setuid",
+	/*  24 */	NULL, /* getuid */
+	/*  25 */	NULL, /* geteuid */
+	/*  26 */	"ptrace",
+	/*  27 */	"recvmsg",
+	/*  28 */	"sendmsg",
+	/*  29 */	"recvfrom",
+	/*  30 */	"accept",
+	/*  31 */	"getpeername",
+	/*  32 */	"getsockname",
+	/*  33 */	"access",
+	/*  34 */	"chflags",
+	/*  35 */	"fchflags",
+	/*  36 */	NULL, /* sync */
+	/*  37 */	"kill",
+	/*  38 */	NULL, /* compat_43_netbsd32_stat43 */
+	/*  39 */	NULL, /* getppid */
+	/*  40 */	NULL, /* compat_43_netbsd32_lstat43 */
+	/*  41 */	"dup",
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* getegid */
+	/*  44 */	"profil",
+	/*  45 */	"ktrace",
+	/*  46 */	"sigaction",
+	/*  47 */	NULL, /* getgid */
+	/*  48 */	NULL, /* compat_13_sigprocmask13 */
+	/*  49 */	"__getlogin",
+	/*  50 */	"setlogin",
+	/*  51 */	"acct",
+	/*  52 */	NULL, /* compat_13_sigpending13 */
+	/*  53 */	NULL, /* compat_13_netbsd32_sigaltstack13 */
+	/*  54 */	"ioctl",
+	/*  55 */	NULL, /* compat_12_netbsd32_reboot */
+	/*  56 */	"revoke",
+	/*  57 */	"symlink",
+	/*  58 */	"readlink",
+	/*  59 */	"execve",
+	/*  60 */	"umask",
+	/*  61 */	"chroot",
+	/*  62 */	NULL, /* compat_43_netbsd32_fstat43 */
+	/*  63 */	NULL, /* compat_43_netbsd32_ogetkerninfo */
+	/*  64 */	NULL, /* compat_43_ogetpagesize */
+	/*  65 */	NULL, /* compat_12_netbsd32_msync */
+	/*  66 */	NULL, /* vfork */
+	/*  67 */	NULL, /* obsolete vread */
+	/*  68 */	NULL, /* obsolete vwrite */
+	/*  69 */	"sbrk",
+	/*  70 */	"sstk",
+	/*  71 */	NULL, /* compat_43_netbsd32_ommap */
+	/*  72 */	"ovadvise",
+	/*  73 */	"munmap",
+	/*  74 */	"mprotect",
+	/*  75 */	"madvise",
+	/*  76 */	NULL, /* obsolete vhangup */
+	/*  77 */	NULL, /* obsolete vlimit */
+	/*  78 */	"mincore",
+	/*  79 */	"getgroups",
+	/*  80 */	"setgroups",
+	/*  81 */	NULL, /* getpgrp */
+	/*  82 */	"setpgid",
+	/*  83 */	NULL, /* compat_50_netbsd32_setitimer */
+	/*  84 */	NULL, /* compat_43_owait */
+	/*  85 */	NULL, /* compat_12_netbsd32_oswapon */
+	/*  86 */	NULL, /* compat_50_netbsd32_getitimer */
+	/*  87 */	NULL, /* compat_43_netbsd32_ogethostname */
+	/*  88 */	NULL, /* compat_43_netbsd32_osethostname */
+	/*  89 */	NULL, /* compat_43_ogetdtablesize */
+	/*  90 */	"dup2",
+	/*  91 */	NULL, /* unimplemented getdopt */
+	/*  92 */	"fcntl",
+	/*  93 */	NULL, /* compat_50_netbsd32_select */
+	/*  94 */	NULL, /* unimplemented setdopt */
+	/*  95 */	"fsync",
+	/*  96 */	"setpriority",
+	/*  97 */	NULL, /* compat_30_netbsd32_socket */
+	/*  98 */	"connect",
+	/*  99 */	NULL, /* compat_43_netbsd32_oaccept */
+	/* 100 */	"getpriority",
+	/* 101 */	NULL, /* compat_43_netbsd32_osend */
+	/* 102 */	NULL, /* compat_43_netbsd32_orecv */
+	/* 103 */	NULL, /* compat_13_sigreturn13 */
+	/* 104 */	"bind",
+	/* 105 */	"setsockopt",
+	/* 106 */	"listen",
+	/* 107 */	NULL, /* obsolete vtimes */
+	/* 108 */	NULL, /* compat_43_netbsd32_osigvec */
+	/* 109 */	NULL, /* compat_43_netbsd32_sigblock */
+	/* 110 */	NULL, /* compat_43_netbsd32_sigsetmask */
+	/* 111 */	NULL, /* compat_13_sigsuspend13 */
+	/* 112 */	NULL, /* compat_43_netbsd32_osigstack */
+	/* 113 */	NULL, /* compat_43_netbsd32_orecvmsg */
+	/* 114 */	NULL, /* compat_43_netbsd32_osendmsg */
+	/* 115 */	NULL, /* obsolete vtrace */
+	/* 116 */	NULL, /* compat_50_netbsd32_gettimeofday */
+	/* 117 */	NULL, /* compat_50_netbsd32_getrusage */
+	/* 118 */	"getsockopt",
+	/* 119 */	NULL, /* obsolete resuba */
+	/* 120 */	"readv",
+	/* 121 */	"writev",
+	/* 122 */	NULL, /* compat_50_netbsd32_settimeofday */
+	/* 123 */	"fchown",
+	/* 124 */	"fchmod",
+	/* 125 */	NULL, /* compat_43_netbsd32_orecvfrom */
+	/* 126 */	"setreuid",
+	/* 127 */	"setregid",
+	/* 128 */	"rename",
+	/* 129 */	NULL, /* compat_43_netbsd32_otruncate */
+	/* 130 */	NULL, /* compat_43_netbsd32_oftruncate */
+	/* 131 */	"flock",
+	/* 132 */	"mkfifo",
+	/* 133 */	"sendto",
+	/* 134 */	"shutdown",
+	/* 135 */	"socketpair",
+	/* 136 */	"mkdir",
+	/* 137 */	"rmdir",
+	/* 138 */	NULL, /* compat_50_netbsd32_utimes */
+	/* 139 */	NULL, /* obsolete 4.2 sigreturn */
+	/* 140 */	NULL, /* compat_50_netbsd32_adjtime */
+	/* 141 */	NULL, /* compat_43_netbsd32_ogetpeername */
+	/* 142 */	NULL, /* compat_43_ogethostid */
+	/* 143 */	NULL, /* compat_43_netbsd32_sethostid */
+	/* 144 */	NULL, /* compat_43_netbsd32_ogetrlimit */
+	/* 145 */	NULL, /* compat_43_netbsd32_osetrlimit */
+	/* 146 */	NULL, /* compat_43_netbsd32_killpg */
+	/* 147 */	NULL, /* setsid */
+	/* 148 */	NULL, /* compat_50_netbsd32_quotactl */
+	/* 149 */	NULL, /* compat_43_oquota */
+	/* 150 */	NULL, /* compat_43_netbsd32_ogetsockname */
+	/* 151 */	NULL, /* unimplemented */
+	/* 152 */	NULL, /* unimplemented */
+	/* 153 */	NULL, /* unimplemented */
+	/* 154 */	NULL, /* unimplemented */
+#if defined(NFSSERVER) || !defined(_KERNEL_OPT)
+	/* 155 */	"nfssvc",
+#else
+	/* 155 */	NULL, /* excluded netbsd32_nfssvc */
+#endif
+	/* 156 */	NULL, /* compat_43_netbsd32_ogetdirentries */
+	/* 157 */	NULL, /* compat_20_netbsd32_statfs */
+	/* 158 */	NULL, /* compat_20_netbsd32_fstatfs */
+	/* 159 */	NULL, /* unimplemented */
+	/* 160 */	NULL, /* unimplemented */
+	/* 161 */	NULL, /* compat_30_netbsd32_getfh */
+	/* 162 */	NULL, /* compat_09_netbsd32_ogetdomainname */
+	/* 163 */	NULL, /* compat_09_netbsd32_osetdomainname */
+	/* 164 */	NULL, /* compat_09_netbsd32_uname */
+	/* 165 */	"sysarch",
+	/* 166 */	NULL, /* unimplemented */
+	/* 167 */	NULL, /* unimplemented */
+	/* 168 */	NULL, /* unimplemented */
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* 169 */	NULL, /* compat_10_osemsys */
+#else
+	/* 169 */	NULL, /* excluded netbsd32_semsys */
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* 170 */	NULL, /* compat_10_omsgsys */
+#else
+	/* 170 */	NULL, /* excluded netbsd32_msgsys */
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* 171 */	NULL, /* compat_10_oshmsys */
+#else
+	/* 171 */	NULL, /* excluded netbsd32_shmsys */
+#endif
+	/* 172 */	NULL, /* unimplemented */
+	/* 173 */	"pread",
+	/* 174 */	"pwrite",
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* 175 */	NULL, /* compat_30_netbsd32_ntp_gettime */
+	/* 176 */	"ntp_adjtime",
+#else
+	/* 175 */	NULL, /* excluded ntp_gettime */
+	/* 176 */	NULL, /* excluded ntp_adjtime */
+#endif
+	/* 177 */	NULL, /* unimplemented */
+	/* 178 */	NULL, /* unimplemented */
+	/* 179 */	NULL, /* unimplemented */
+	/* 180 */	NULL, /* unimplemented */
+	/* 181 */	"setgid",
+	/* 182 */	"setegid",
+	/* 183 */	"seteuid",
+	/* 184 */	NULL, /* excluded netbsd32_lfs_bmapv */
+	/* 185 */	NULL, /* excluded netbsd32_lfs_markv */
+	/* 186 */	NULL, /* excluded netbsd32_lfs_segclean */
+	/* 187 */	NULL, /* excluded netbsd32_lfs_segwait */
+	/* 188 */	NULL, /* compat_12_netbsd32_stat12 */
+	/* 189 */	NULL, /* compat_12_netbsd32_fstat12 */
+	/* 190 */	NULL, /* compat_12_netbsd32_lstat12 */
+	/* 191 */	"pathconf",
+	/* 192 */	"fpathconf",
+	/* 193 */	NULL, /* unimplemented */
+	/* 194 */	"getrlimit",
+	/* 195 */	"setrlimit",
+	/* 196 */	NULL, /* compat_12_netbsd32_getdirentries */
+	/* 197 */	"mmap",
+	/* 198 */	"___syscall",
+	/* 199 */	"lseek",
+	/* 200 */	"truncate",
+	/* 201 */	"ftruncate",
+	/* 202 */	"__sysctl",
+	/* 203 */	"mlock",
+	/* 204 */	"munlock",
+	/* 205 */	"undelete",
+	/* 206 */	NULL, /* compat_50_netbsd32_futimes */
+	/* 207 */	"getpgid",
+	/* 208 */	"reboot",
+	/* 209 */	"poll",
+	/* 210 */	NULL, /* unimplemented */
+	/* 211 */	NULL, /* unimplemented */
+	/* 212 */	NULL, /* unimplemented */
+	/* 213 */	NULL, /* unimplemented */
+	/* 214 */	NULL, /* unimplemented */
+	/* 215 */	NULL, /* unimplemented */
+	/* 216 */	NULL, /* unimplemented */
+	/* 217 */	NULL, /* unimplemented */
+	/* 218 */	NULL, /* unimplemented */
+	/* 219 */	NULL, /* unimplemented */
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* 220 */	NULL, /* compat_14_netbsd32___semctl */
+	/* 221 */	"semget",
+	/* 222 */	"semop",
+	/* 223 */	"semconfig",
+#else
+	/* 220 */	NULL, /* excluded compat_14_netbsd32_semctl */
+	/* 221 */	NULL, /* excluded netbsd32_semget */
+	/* 222 */	NULL, /* excluded netbsd32_semop */
+	/* 223 */	NULL, /* excluded netbsd32_semconfig */
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* 224 */	NULL, /* compat_14_netbsd32_msgctl */
+	/* 225 */	"msgget",
+	/* 226 */	"msgsnd",
+	/* 227 */	"msgrcv",
+#else
+	/* 224 */	NULL, /* excluded compat_14_netbsd32_msgctl */
+	/* 225 */	NULL, /* excluded netbsd32_msgget */
+	/* 226 */	NULL, /* excluded netbsd32_msgsnd */
+	/* 227 */	NULL, /* excluded netbsd32_msgrcv */
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* 228 */	"shmat",
+	/* 229 */	NULL, /* compat_14_netbsd32_shmctl */
+	/* 230 */	"shmdt",
+	/* 231 */	"shmget",
+#else
+	/* 228 */	NULL, /* excluded netbsd32_shmat */
+	/* 229 */	NULL, /* excluded compat_14_netbsd32_shmctl */
+	/* 230 */	NULL, /* excluded netbsd32_shmdt */
+	/* 231 */	NULL, /* excluded netbsd32_shmget */
+#endif
+	/* 232 */	NULL, /* compat_50_netbsd32_clock_gettime */
+	/* 233 */	NULL, /* compat_50_netbsd32_clock_settime */
+	/* 234 */	NULL, /* compat_50_netbsd32_clock_getres */
+	/* 235 */	"timer_create",
+	/* 236 */	"timer_delete",
+	/* 237 */	NULL, /* compat_50_netbsd32_timer_settime */
+	/* 238 */	NULL, /* compat_50_netbsd32_timer_gettime */
+	/* 239 */	"timer_getoverrun",
+	/* 240 */	NULL, /* compat_50_netbsd32_nanosleep */
+	/* 241 */	"fdatasync",
+	/* 242 */	"mlockall",
+	/* 243 */	NULL, /* munlockall */
+	/* 244 */	NULL, /* compat_50_netbsd32___sigtimedwait */
+	/* 245 */	NULL, /* unimplemented */
+	/* 246 */	NULL, /* unimplemented */
+	/* 247 */	"_ksem_init",
+	/* 248 */	"_ksem_open",
+	/* 249 */	"_ksem_unlink",
+	/* 250 */	"_ksem_close",
+	/* 251 */	"_ksem_post",
+	/* 252 */	"_ksem_wait",
+	/* 253 */	"_ksem_trywait",
+	/* 254 */	"_ksem_getvalue",
+	/* 255 */	"_ksem_destroy",
+	/* 256 */	"_ksem_timedwait",
+	/* 257 */	NULL, /* unimplemented */
+	/* 258 */	NULL, /* unimplemented */
+	/* 259 */	NULL, /* unimplemented */
+	/* 260 */	NULL, /* unimplemented */
+	/* 261 */	NULL, /* unimplemented */
+	/* 262 */	NULL, /* unimplemented */
+	/* 263 */	NULL, /* unimplemented */
+	/* 264 */	NULL, /* unimplemented */
+	/* 265 */	NULL, /* unimplemented */
+	/* 266 */	NULL, /* unimplemented */
+	/* 267 */	NULL, /* unimplemented */
+	/* 268 */	NULL, /* unimplemented */
+	/* 269 */	NULL, /* unimplemented */
+	/* 270 */	"__posix_rename",
+	/* 271 */	"swapctl",
+	/* 272 */	NULL, /* compat_30_netbsd32_getdents */
+	/* 273 */	"minherit",
+	/* 274 */	"lchmod",
+	/* 275 */	"lchown",
+	/* 276 */	NULL, /* compat_50_netbsd32_lutimes */
+	/* 277 */	"msync",
+	/* 278 */	NULL, /* compat_30_netbsd32___stat13 */
+	/* 279 */	NULL, /* compat_30_netbsd32___fstat13 */
+	/* 280 */	NULL, /* compat_30_netbsd32___lstat13 */
+	/* 281 */	"sigaltstack",
+	/* 282 */	"vfork",
+	/* 283 */	"__posix_chown",
+	/* 284 */	"__posix_fchown",
+	/* 285 */	"__posix_lchown",
+	/* 286 */	"getsid",
+	/* 287 */	"__clone",
+	/* 288 */	"fktrace",
+	/* 289 */	"preadv",
+	/* 290 */	"pwritev",
+	/* 291 */	"sigaction",
+	/* 292 */	"sigpending",
+	/* 293 */	"sigprocmask",
+	/* 294 */	"sigsuspend",
+	/* 295 */	NULL, /* compat_16_netbsd32___sigreturn14 */
+	/* 296 */	"__getcwd",
+	/* 297 */	"fchroot",
+	/* 298 */	NULL, /* compat_30_netbsd32_fhopen */
+	/* 299 */	NULL, /* compat_30_netbsd32_fhstat */
+	/* 300 */	NULL, /* compat_20_netbsd32_fhstatfs */
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* 301 */	NULL, /* compat_50_netbsd32___semctl14 */
+#else
+	/* 301 */	NULL, /* excluded __semctl14 */
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* 302 */	NULL, /* compat_50_netbsd32___msgctl13 */
+#else
+	/* 302 */	NULL, /* excluded __msgctl13 */
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* 303 */	NULL, /* compat_50_netbsd32___shmctl13 */
+#else
+	/* 303 */	NULL, /* excluded __shmctl13 */
+#endif
+	/* 304 */	"lchflags",
+	/* 305 */	NULL, /* issetugid */
+	/* 306 */	"utrace",
+	/* 307 */	"getcontext",
+	/* 308 */	"setcontext",
+	/* 309 */	"_lwp_create",
+	/* 310 */	NULL, /* _lwp_exit */
+	/* 311 */	NULL, /* _lwp_self */
+	/* 312 */	"_lwp_wait",
+	/* 313 */	"_lwp_suspend",
+	/* 314 */	"_lwp_continue",
+	/* 315 */	"_lwp_wakeup",
+	/* 316 */	NULL, /* _lwp_getprivate */
+	/* 317 */	"_lwp_setprivate",
+	/* 318 */	"_lwp_kill",
+	/* 319 */	"_lwp_detach",
+	/* 320 */	NULL, /* compat_50_netbsd32__lwp_park */
+	/* 321 */	"_lwp_unpark",
+	/* 322 */	"_lwp_unpark_all",
+	/* 323 */	"_lwp_setname",
+	/* 324 */	"_lwp_getname",
+	/* 325 */	"_lwp_ctl",
+	/* 326 */	NULL, /* unimplemented */
+	/* 327 */	NULL, /* unimplemented */
+	/* 328 */	NULL, /* unimplemented */
+	/* 329 */	NULL, /* unimplemented */
+	/* 330 */	NULL, /* obsolete netbsd32_sa_register */
+	/* 331 */	NULL, /* obsolete netbsd32_sa_stacks */
+	/* 332 */	NULL, /* obsolete sa_enable */
+	/* 333 */	NULL, /* obsolete netbsd32_sa_setconcurrency */
+	/* 334 */	NULL, /* obsolete sa_yield */
+	/* 335 */	NULL, /* obsolete netbsd32_sa_preempt */
+	/* 336 */	NULL, /* obsolete sys_sa_unblockyield */
+	/* 337 */	NULL, /* unimplemented */
+	/* 338 */	NULL, /* unimplemented */
+	/* 339 */	NULL, /* unimplemented */
+	/* 340 */	"__sigaction_sigtramp",
+	/* 341 */	NULL, /* unimplemented */
+	/* 342 */	NULL, /* unimplemented */
+	/* 343 */	"rasctl",
+	/* 344 */	NULL, /* kqueue */
+	/* 345 */	NULL, /* compat_50_netbsd32_kevent */
+	/* 346 */	"_sched_setparam",
+	/* 347 */	"_sched_getparam",
+	/* 348 */	"_sched_setaffinity",
+	/* 349 */	"_sched_getaffinity",
+	/* 350 */	NULL, /* sched_yield */
+	/* 351 */	NULL, /* unimplemented */
+	/* 352 */	NULL, /* unimplemented */
+	/* 353 */	NULL, /* unimplemented */
+	/* 354 */	"fsync_range",
+	/* 355 */	"uuidgen",
+	/* 356 */	"getvfsstat",
+	/* 357 */	"statvfs1",
+	/* 358 */	"fstatvfs1",
+	/* 359 */	NULL, /* compat_30_netbsd32_fhstatvfs1 */
+	/* 360 */	"extattrctl",
+	/* 361 */	"extattr_set_file",
+	/* 362 */	"extattr_get_file",
+	/* 363 */	"extattr_delete_file",
+	/* 364 */	"extattr_set_fd",
+	/* 365 */	"extattr_get_fd",
+	/* 366 */	"extattr_delete_fd",
+	/* 367 */	"extattr_set_link",
+	/* 368 */	"extattr_get_link",
+	/* 369 */	"extattr_delete_link",
+	/* 370 */	"extattr_list_fd",
+	/* 371 */	"extattr_list_file",
+	/* 372 */	"extattr_list_link",
+	/* 373 */	NULL, /* compat_50_netbsd32_pselect */
+	/* 374 */	NULL, /* compat_50_netbsd32_pollts */
+	/* 375 */	"setxattr",
+	/* 376 */	"lsetxattr",
+	/* 377 */	"fsetxattr",
+	/* 378 */	"getxattr",
+	/* 379 */	"lgetxattr",
+	/* 380 */	"fgetxattr",
+	/* 381 */	"listxattr",
+	/* 382 */	"llistxattr",
+	/* 383 */	"flistxattr",
+	/* 384 */	"removexattr",
+	/* 385 */	"lremovexattr",
+	/* 386 */	"fremovexattr",
+	/* 387 */	NULL, /* compat_50_netbsd32___stat30 */
+	/* 388 */	NULL, /* compat_50_netbsd32___fstat30 */
+	/* 389 */	NULL, /* compat_50_netbsd32___lstat30 */
+	/* 390 */	"getdents",
+	/* 391 */	NULL, /* ignored old posix fadvise */
+	/* 392 */	NULL, /* compat_30_netbsd32___fhstat30 */
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* 393 */	NULL, /* compat_50_netbsd32_ntp_gettime */
+#else
+	/* 393 */	NULL, /* excluded __ntp_gettime30 */
+#endif
+	/* 394 */	"socket",
+	/* 395 */	"getfh",
+	/* 396 */	"fhopen",
+	/* 397 */	"fhstatvfs1",
+	/* 398 */	NULL, /* compat_50_netbsd32___fhstat40 */
+	/* 399 */	NULL, /* unimplemented sys_aio_cancel */
+	/* 400 */	NULL, /* unimplemented sys_aio_error */
+	/* 401 */	NULL, /* unimplemented sys_aio_fsync */
+	/* 402 */	NULL, /* unimplemented sys_aio_read */
+	/* 403 */	NULL, /* unimplemented sys_aio_return */
+	/* 404 */	NULL, /* unimplemented sys_aio_suspend */
+	/* 405 */	NULL, /* unimplemented sys_aio_write */
+	/* 406 */	NULL, /* unimplemented sys_lio_listio */
+	/* 407 */	NULL, /* unimplemented */
+	/* 408 */	NULL, /* unimplemented */
+	/* 409 */	NULL, /* unimplemented */
+	/* 410 */	"__mount50",
+	/* 411 */	"mremap",
+	/* 412 */	NULL, /* unimplemented */
+	/* 413 */	NULL, /* unimplemented */
+	/* 414 */	NULL, /* unimplemented */
+	/* 415 */	NULL, /* unimplemented */
+	/* 416 */	"posix_fadvise",
+	/* 417 */	"select",
+	/* 418 */	"gettimeofday",
+	/* 419 */	"settimeofday",
+	/* 420 */	"utimes",
+	/* 421 */	"adjtime",
+	/* 422 */	NULL, /* excluded __lfs_segwait50 */
+	/* 423 */	"futimes",
+	/* 424 */	"lutimes",
+	/* 425 */	"setitimer",
+	/* 426 */	"getitimer",
+	/* 427 */	"clock_gettime",
+	/* 428 */	"clock_settime",
+	/* 429 */	"clock_getres",
+	/* 430 */	"nanosleep",
+	/* 431 */	"__sigtimedwait",
+	/* 432 */	NULL, /* unimplemented netbsd32___mq_timedsend50 */
+	/* 433 */	NULL, /* unimplemented netbsd32___mq_timedreceive50 */
+	/* 434 */	NULL, /* compat_60_netbsd32__lwp_park */
+	/* 435 */	"kevent",
+	/* 436 */	"pselect",
+	/* 437 */	"pollts",
+	/* 438 */	NULL, /* unimplemented netbsd32___aio_suspend50 */
+	/* 439 */	"stat",
+	/* 440 */	"fstat",
+	/* 441 */	"lstat",
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* 442 */	"__semctl",
+#else
+	/* 442 */	NULL, /* excluded ____semctl50 */
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* 443 */	"shmctl",
+#else
+	/* 443 */	NULL, /* excluded ____shmctl50 */
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* 444 */	"msgctl",
+#else
+	/* 444 */	NULL, /* excluded ____msgctl50 */
+#endif
+	/* 445 */	"getrusage",
+	/* 446 */	"timer_settime",
+	/* 447 */	"timer_gettime",
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* 448 */	"ntp_gettime",
+#else
+	/* 448 */	NULL, /* excluded ___ntp_gettime50 */
+#endif
+	/* 449 */	"wait4",
+	/* 450 */	"mknod",
+	/* 451 */	"fhstat",
+	/* 452 */	NULL, /* obsolete 5.99 quotactl */
+	/* 453 */	"pipe2",
+	/* 454 */	"dup3",
+	/* 455 */	"kqueue1",
+	/* 456 */	"paccept",
+	/* 457 */	"linkat",
+	/* 458 */	"renameat",
+	/* 459 */	"mkfifoat",
+	/* 460 */	"mknodat",
+	/* 461 */	"mkdirat",
+	/* 462 */	"faccessat",
+	/* 463 */	"fchmodat",
+	/* 464 */	"fchownat",
+	/* 465 */	"fexecve",
+	/* 466 */	"fstatat",
+	/* 467 */	"utimensat",
+	/* 468 */	"openat",
+	/* 469 */	"readlinkat",
+	/* 470 */	"symlinkat",
+	/* 471 */	"unlinkat",
+	/* 472 */	"futimens",
+	/* 473 */	"__quotactl",
+	/* 474 */	"posix_spawn",
+	/* 475 */	NULL, /* unimplemented { int | netbsd32 | | recvmmsg ( int s , struct mmsghdr * mmsg , unsigned int vlen , unsigned int flags , netbsd32_timespecp_t timeout ) ; } */
+	/* 476 */	NULL, /* unimplemented { int | netbsd32 | | sendmmsg ( int s , struct mmsghdr * mmsg , unsigned int vlen , unsigned int flags ) ; } */
+	/* 477 */	"clock_nanosleep",
+	/* 478 */	"_lwp_park",
+	/* 479 */	NULL, /* filler */
+	/* 480 */	NULL, /* filler */
+	/* 481 */	NULL, /* filler */
+	/* 482 */	NULL, /* filler */
+	/* 483 */	NULL, /* filler */
+	/* 484 */	NULL, /* filler */
+	/* 485 */	NULL, /* filler */
+	/* 486 */	NULL, /* filler */
+	/* 487 */	NULL, /* filler */
+	/* 488 */	NULL, /* filler */
+	/* 489 */	NULL, /* filler */
+	/* 490 */	NULL, /* filler */
+	/* 491 */	NULL, /* filler */
+	/* 492 */	NULL, /* filler */
+	/* 493 */	NULL, /* filler */
+	/* 494 */	NULL, /* filler */
+	/* 495 */	NULL, /* filler */
+	/* 496 */	NULL, /* filler */
+	/* 497 */	NULL, /* filler */
+	/* 498 */	NULL, /* filler */
+	/* 499 */	NULL, /* filler */
+	/* 500 */	NULL, /* filler */
+	/* 501 */	NULL, /* filler */
+	/* 502 */	NULL, /* filler */
+	/* 503 */	NULL, /* filler */
+	/* 504 */	NULL, /* filler */
+	/* 505 */	NULL, /* filler */
+	/* 506 */	NULL, /* filler */
+	/* 507 */	NULL, /* filler */
+	/* 508 */	NULL, /* filler */
+	/* 509 */	NULL, /* filler */
+	/* 510 */	NULL, /* filler */
+	/* 511 */	NULL, /* filler */
+};
diff --git a/sys/compat/netbsd32/netbsd32_sysent.c b/sys/compat/netbsd32/netbsd32_sysent.c
index 0a49e52..3657e20 100644
--- a/sys/compat/netbsd32/netbsd32_sysent.c
+++ b/sys/compat/netbsd32/netbsd32_sysent.c
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_sysent.c,v 1.108.2.3 2015/11/06 09:19:24 martin Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_sysent.c,v 1.108.2.3 2015/11/06 09:19:24 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -115,1127 +115,1127 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_sysent.c,v 1.108.2.3 2015/11/06 09:19:24 ma
 
 struct sysent netbsd32_sysent[] = {
 	{ ns(struct netbsd32_syscall_args), SYCALL_INDIRECT,
-	    (sy_call_t *)netbsd32_syscall },	/* 0 = netbsd32_syscall */
+	    (sy_call_t *)netbsd32_syscall, 0, 0 },	/* 0 = netbsd32_syscall */
 	{ ns(struct netbsd32_exit_args), 0,
-	    (sy_call_t *)netbsd32_exit },	/* 1 = netbsd32_exit */
+	    (sy_call_t *)netbsd32_exit, 0, 0 },	/* 1 = netbsd32_exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct netbsd32_read_args), 0,
-	    (sy_call_t *)netbsd32_read },	/* 3 = netbsd32_read */
+	    (sy_call_t *)netbsd32_read, 0, 0 },	/* 3 = netbsd32_read */
 	{ ns(struct netbsd32_write_args), 0,
-	    (sy_call_t *)netbsd32_write },	/* 4 = netbsd32_write */
+	    (sy_call_t *)netbsd32_write, 0, 0 },	/* 4 = netbsd32_write */
 	{ ns(struct netbsd32_open_args), 0,
-	    (sy_call_t *)netbsd32_open },	/* 5 = netbsd32_open */
+	    (sy_call_t *)netbsd32_open, 0, 0 },	/* 5 = netbsd32_open */
 	{ ns(struct netbsd32_close_args), 0,
-	    (sy_call_t *)netbsd32_close },	/* 6 = netbsd32_close */
+	    (sy_call_t *)netbsd32_close, 0, 0 },	/* 6 = netbsd32_close */
 	{ ns(struct compat_50_netbsd32_wait4_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_wait4) },/* 7 = compat_50_netbsd32_wait4 */
+	    (sy_call_t *)compat_50(netbsd32_wait4), 0, 0 },/* 7 = compat_50_netbsd32_wait4 */
 	{ ns(struct compat_43_netbsd32_ocreat_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_ocreat) },/* 8 = compat_43_netbsd32_ocreat */
+	    (sy_call_t *)compat_43(netbsd32_ocreat), 0, 0 },/* 8 = compat_43_netbsd32_ocreat */
 	{ ns(struct netbsd32_link_args), 0,
-	    (sy_call_t *)netbsd32_link },	/* 9 = netbsd32_link */
+	    (sy_call_t *)netbsd32_link, 0, 0 },	/* 9 = netbsd32_link */
 	{ ns(struct netbsd32_unlink_args), 0,
-	    (sy_call_t *)netbsd32_unlink },	/* 10 = netbsd32_unlink */
+	    (sy_call_t *)netbsd32_unlink, 0, 0 },	/* 10 = netbsd32_unlink */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 11 = obsolete execv */
+	    sys_nosys, 0, 0 },			/* 11 = obsolete execv */
 	{ ns(struct netbsd32_chdir_args), 0,
-	    (sy_call_t *)netbsd32_chdir },	/* 12 = netbsd32_chdir */
+	    (sy_call_t *)netbsd32_chdir, 0, 0 },	/* 12 = netbsd32_chdir */
 	{ ns(struct netbsd32_fchdir_args), 0,
-	    (sy_call_t *)netbsd32_fchdir },	/* 13 = netbsd32_fchdir */
+	    (sy_call_t *)netbsd32_fchdir, 0, 0 },	/* 13 = netbsd32_fchdir */
 	{ ns(struct compat_50_netbsd32_mknod_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_mknod) },/* 14 = compat_50_netbsd32_mknod */
+	    (sy_call_t *)compat_50(netbsd32_mknod), 0, 0 },/* 14 = compat_50_netbsd32_mknod */
 	{ ns(struct netbsd32_chmod_args), 0,
-	    (sy_call_t *)netbsd32_chmod },	/* 15 = netbsd32_chmod */
+	    (sy_call_t *)netbsd32_chmod, 0, 0 },	/* 15 = netbsd32_chmod */
 	{ ns(struct netbsd32_chown_args), 0,
-	    (sy_call_t *)netbsd32_chown },	/* 16 = netbsd32_chown */
+	    (sy_call_t *)netbsd32_chown, 0, 0 },	/* 16 = netbsd32_chown */
 	{ ns(struct netbsd32_break_args), 0,
-	    (sy_call_t *)netbsd32_break },	/* 17 = netbsd32_break */
+	    (sy_call_t *)netbsd32_break, 0, 0 },	/* 17 = netbsd32_break */
 	{ ns(struct compat_20_netbsd32_getfsstat_args), 0,
-	    (sy_call_t *)compat_20(netbsd32_getfsstat) },/* 18 = compat_20_netbsd32_getfsstat */
+	    (sy_call_t *)compat_20(netbsd32_getfsstat), 0, 0 },/* 18 = compat_20_netbsd32_getfsstat */
 	{ ns(struct compat_43_netbsd32_olseek_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_olseek) },/* 19 = compat_43_netbsd32_olseek */
+	    (sy_call_t *)compat_43(netbsd32_olseek), 0, 0 },/* 19 = compat_43_netbsd32_olseek */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid },		/* 20 = getpid */
+	    (sy_call_t *)sys_getpid, 0, 0 },		/* 20 = getpid */
 	{ ns(struct netbsd32_mount_args), 0,
-	    (sy_call_t *)netbsd32_mount },	/* 21 = netbsd32_mount */
+	    (sy_call_t *)netbsd32_mount, 0, 0 },	/* 21 = netbsd32_mount */
 	{ ns(struct netbsd32_unmount_args), 0,
-	    (sy_call_t *)netbsd32_unmount },	/* 22 = netbsd32_unmount */
+	    (sy_call_t *)netbsd32_unmount, 0, 0 },	/* 22 = netbsd32_unmount */
 	{ ns(struct netbsd32_setuid_args), 0,
-	    (sy_call_t *)netbsd32_setuid },	/* 23 = netbsd32_setuid */
+	    (sy_call_t *)netbsd32_setuid, 0, 0 },	/* 23 = netbsd32_setuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid },		/* 24 = getuid */
+	    (sy_call_t *)sys_getuid, 0, 0 },		/* 24 = getuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_geteuid },		/* 25 = geteuid */
+	    (sy_call_t *)sys_geteuid, 0, 0 },		/* 25 = geteuid */
 	{ ns(struct netbsd32_ptrace_args), 0,
-	    (sy_call_t *)netbsd32_ptrace },	/* 26 = netbsd32_ptrace */
+	    (sy_call_t *)netbsd32_ptrace, 0, 0 },	/* 26 = netbsd32_ptrace */
 	{ ns(struct netbsd32_recvmsg_args), 0,
-	    (sy_call_t *)netbsd32_recvmsg },	/* 27 = netbsd32_recvmsg */
+	    (sy_call_t *)netbsd32_recvmsg, 0, 0 },	/* 27 = netbsd32_recvmsg */
 	{ ns(struct netbsd32_sendmsg_args), 0,
-	    (sy_call_t *)netbsd32_sendmsg },	/* 28 = netbsd32_sendmsg */
+	    (sy_call_t *)netbsd32_sendmsg, 0, 0 },	/* 28 = netbsd32_sendmsg */
 	{ ns(struct netbsd32_recvfrom_args), 0,
-	    (sy_call_t *)netbsd32_recvfrom },	/* 29 = netbsd32_recvfrom */
+	    (sy_call_t *)netbsd32_recvfrom, 0, 0 },	/* 29 = netbsd32_recvfrom */
 	{ ns(struct netbsd32_accept_args), 0,
-	    (sy_call_t *)netbsd32_accept },	/* 30 = netbsd32_accept */
+	    (sy_call_t *)netbsd32_accept, 0, 0 },	/* 30 = netbsd32_accept */
 	{ ns(struct netbsd32_getpeername_args), 0,
-	    (sy_call_t *)netbsd32_getpeername },/* 31 = netbsd32_getpeername */
+	    (sy_call_t *)netbsd32_getpeername, 0, 0 },/* 31 = netbsd32_getpeername */
 	{ ns(struct netbsd32_getsockname_args), 0,
-	    (sy_call_t *)netbsd32_getsockname },/* 32 = netbsd32_getsockname */
+	    (sy_call_t *)netbsd32_getsockname, 0, 0 },/* 32 = netbsd32_getsockname */
 	{ ns(struct netbsd32_access_args), 0,
-	    (sy_call_t *)netbsd32_access },	/* 33 = netbsd32_access */
+	    (sy_call_t *)netbsd32_access, 0, 0 },	/* 33 = netbsd32_access */
 	{ ns(struct netbsd32_chflags_args), 0,
-	    (sy_call_t *)netbsd32_chflags },	/* 34 = netbsd32_chflags */
+	    (sy_call_t *)netbsd32_chflags, 0, 0 },	/* 34 = netbsd32_chflags */
 	{ ns(struct netbsd32_fchflags_args), 0,
-	    (sy_call_t *)netbsd32_fchflags },	/* 35 = netbsd32_fchflags */
+	    (sy_call_t *)netbsd32_fchflags, 0, 0 },	/* 35 = netbsd32_fchflags */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct netbsd32_kill_args), 0,
-	    (sy_call_t *)netbsd32_kill },	/* 37 = netbsd32_kill */
+	    (sy_call_t *)netbsd32_kill, 0, 0 },	/* 37 = netbsd32_kill */
 	{ ns(struct compat_43_netbsd32_stat43_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_stat43) },/* 38 = compat_43_netbsd32_stat43 */
+	    (sy_call_t *)compat_43(netbsd32_stat43), 0, 0 },/* 38 = compat_43_netbsd32_stat43 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getppid },		/* 39 = getppid */
+	    (sy_call_t *)sys_getppid, 0, 0 },		/* 39 = getppid */
 	{ ns(struct compat_43_netbsd32_lstat43_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_lstat43) },/* 40 = compat_43_netbsd32_lstat43 */
+	    (sy_call_t *)compat_43(netbsd32_lstat43), 0, 0 },/* 40 = compat_43_netbsd32_lstat43 */
 	{ ns(struct netbsd32_dup_args), 0,
-	    (sy_call_t *)netbsd32_dup },	/* 41 = netbsd32_dup */
+	    (sy_call_t *)netbsd32_dup, 0, 0 },	/* 41 = netbsd32_dup */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_pipe },		/* 42 = pipe */
+	    (sy_call_t *)sys_pipe, 0, 0 },		/* 42 = pipe */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getegid },		/* 43 = getegid */
+	    (sy_call_t *)sys_getegid, 0, 0 },		/* 43 = getegid */
 	{ ns(struct netbsd32_profil_args), 0,
-	    (sy_call_t *)netbsd32_profil },	/* 44 = netbsd32_profil */
+	    (sy_call_t *)netbsd32_profil, 0, 0 },	/* 44 = netbsd32_profil */
 	{ ns(struct netbsd32_ktrace_args), 0,
-	    (sy_call_t *)netbsd32_ktrace },	/* 45 = netbsd32_ktrace */
+	    (sy_call_t *)netbsd32_ktrace, 0, 0 },	/* 45 = netbsd32_ktrace */
 	{ ns(struct netbsd32_sigaction_args), 0,
-	    (sy_call_t *)netbsd32_sigaction },	/* 46 = netbsd32_sigaction */
+	    (sy_call_t *)netbsd32_sigaction, 0, 0 },	/* 46 = netbsd32_sigaction */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid },		/* 47 = getgid */
+	    (sy_call_t *)sys_getgid, 0, 0 },		/* 47 = getgid */
 	{ ns(struct compat_13_netbsd32_sigprocmask_args), 0,
-	    (sy_call_t *)compat_13(netbsd32_sigprocmask) },/* 48 = compat_13_sigprocmask13 */
+	    (sy_call_t *)compat_13(netbsd32_sigprocmask), 0, 0 },/* 48 = compat_13_sigprocmask13 */
 	{ ns(struct netbsd32___getlogin_args), 0,
-	    (sy_call_t *)netbsd32___getlogin },	/* 49 = netbsd32___getlogin */
+	    (sy_call_t *)netbsd32___getlogin, 0, 0 },	/* 49 = netbsd32___getlogin */
 	{ ns(struct netbsd32_setlogin_args), 0,
-	    (sy_call_t *)netbsd32_setlogin },	/* 50 = netbsd32_setlogin */
+	    (sy_call_t *)netbsd32_setlogin, 0, 0 },	/* 50 = netbsd32_setlogin */
 	{ ns(struct netbsd32_acct_args), 0,
-	    (sy_call_t *)netbsd32_acct },	/* 51 = netbsd32_acct */
+	    (sy_call_t *)netbsd32_acct, 0, 0 },	/* 51 = netbsd32_acct */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_13(sys_sigpending) },/* 52 = compat_13_sigpending13 */
+	    (sy_call_t *)compat_13(sys_sigpending), 0, 0 },/* 52 = compat_13_sigpending13 */
 	{ ns(struct compat_13_netbsd32_sigaltstack13_args), 0,
-	    (sy_call_t *)compat_13(netbsd32_sigaltstack13) },/* 53 = compat_13_netbsd32_sigaltstack13 */
+	    (sy_call_t *)compat_13(netbsd32_sigaltstack13), 0, 0 },/* 53 = compat_13_netbsd32_sigaltstack13 */
 	{ ns(struct netbsd32_ioctl_args), 0,
-	    (sy_call_t *)netbsd32_ioctl },	/* 54 = netbsd32_ioctl */
+	    (sy_call_t *)netbsd32_ioctl, 0, 0 },	/* 54 = netbsd32_ioctl */
 	{ ns(struct compat_12_netbsd32_reboot_args), 0,
-	    (sy_call_t *)compat_12(netbsd32_reboot) },/* 55 = compat_12_netbsd32_reboot */
+	    (sy_call_t *)compat_12(netbsd32_reboot), 0, 0 },/* 55 = compat_12_netbsd32_reboot */
 	{ ns(struct netbsd32_revoke_args), 0,
-	    (sy_call_t *)netbsd32_revoke },	/* 56 = netbsd32_revoke */
+	    (sy_call_t *)netbsd32_revoke, 0, 0 },	/* 56 = netbsd32_revoke */
 	{ ns(struct netbsd32_symlink_args), 0,
-	    (sy_call_t *)netbsd32_symlink },	/* 57 = netbsd32_symlink */
+	    (sy_call_t *)netbsd32_symlink, 0, 0 },	/* 57 = netbsd32_symlink */
 	{ ns(struct netbsd32_readlink_args), 0,
-	    (sy_call_t *)netbsd32_readlink },	/* 58 = netbsd32_readlink */
+	    (sy_call_t *)netbsd32_readlink, 0, 0 },	/* 58 = netbsd32_readlink */
 	{ ns(struct netbsd32_execve_args), 0,
-	    (sy_call_t *)netbsd32_execve },	/* 59 = netbsd32_execve */
+	    (sy_call_t *)netbsd32_execve, 0, 0 },	/* 59 = netbsd32_execve */
 	{ ns(struct netbsd32_umask_args), 0,
-	    (sy_call_t *)netbsd32_umask },	/* 60 = netbsd32_umask */
+	    (sy_call_t *)netbsd32_umask, 0, 0 },	/* 60 = netbsd32_umask */
 	{ ns(struct netbsd32_chroot_args), 0,
-	    (sy_call_t *)netbsd32_chroot },	/* 61 = netbsd32_chroot */
+	    (sy_call_t *)netbsd32_chroot, 0, 0 },	/* 61 = netbsd32_chroot */
 	{ ns(struct compat_43_netbsd32_fstat43_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_fstat43) },/* 62 = compat_43_netbsd32_fstat43 */
+	    (sy_call_t *)compat_43(netbsd32_fstat43), 0, 0 },/* 62 = compat_43_netbsd32_fstat43 */
 	{ ns(struct compat_43_netbsd32_ogetkerninfo_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_ogetkerninfo) },/* 63 = compat_43_netbsd32_ogetkerninfo */
+	    (sy_call_t *)compat_43(netbsd32_ogetkerninfo), 0, 0 },/* 63 = compat_43_netbsd32_ogetkerninfo */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43(sys_getpagesize) },/* 64 = compat_43_ogetpagesize */
+	    (sy_call_t *)compat_43(sys_getpagesize), 0, 0 },/* 64 = compat_43_ogetpagesize */
 	{ ns(struct compat_12_netbsd32_msync_args), 0,
-	    (sy_call_t *)compat_12(netbsd32_msync) },/* 65 = compat_12_netbsd32_msync */
+	    (sy_call_t *)compat_12(netbsd32_msync), 0, 0 },/* 65 = compat_12_netbsd32_msync */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_vfork },		/* 66 = vfork */
+	    (sy_call_t *)sys_vfork, 0, 0 },		/* 66 = vfork */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 67 = obsolete vread */
+	    sys_nosys, 0, 0 },			/* 67 = obsolete vread */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 68 = obsolete vwrite */
+	    sys_nosys, 0, 0 },			/* 68 = obsolete vwrite */
 	{ ns(struct netbsd32_sbrk_args), 0,
-	    (sy_call_t *)netbsd32_sbrk },	/* 69 = netbsd32_sbrk */
+	    (sy_call_t *)netbsd32_sbrk, 0, 0 },	/* 69 = netbsd32_sbrk */
 	{ ns(struct netbsd32_sstk_args), 0,
-	    (sy_call_t *)netbsd32_sstk },	/* 70 = netbsd32_sstk */
+	    (sy_call_t *)netbsd32_sstk, 0, 0 },	/* 70 = netbsd32_sstk */
 	{ ns(struct compat_43_netbsd32_ommap_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_ommap) },/* 71 = compat_43_netbsd32_ommap */
+	    (sy_call_t *)compat_43(netbsd32_ommap), 0, 0 },/* 71 = compat_43_netbsd32_ommap */
 	{ ns(struct netbsd32_ovadvise_args), 0,
-	    (sy_call_t *)netbsd32_ovadvise },	/* 72 = vadvise */
+	    (sy_call_t *)netbsd32_ovadvise, 0, 0 },	/* 72 = vadvise */
 	{ ns(struct netbsd32_munmap_args), 0,
-	    (sy_call_t *)netbsd32_munmap },	/* 73 = netbsd32_munmap */
+	    (sy_call_t *)netbsd32_munmap, 0, 0 },	/* 73 = netbsd32_munmap */
 	{ ns(struct netbsd32_mprotect_args), 0,
-	    (sy_call_t *)netbsd32_mprotect },	/* 74 = netbsd32_mprotect */
+	    (sy_call_t *)netbsd32_mprotect, 0, 0 },	/* 74 = netbsd32_mprotect */
 	{ ns(struct netbsd32_madvise_args), 0,
-	    (sy_call_t *)netbsd32_madvise },	/* 75 = netbsd32_madvise */
+	    (sy_call_t *)netbsd32_madvise, 0, 0 },	/* 75 = netbsd32_madvise */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 76 = obsolete vhangup */
+	    sys_nosys, 0, 0 },			/* 76 = obsolete vhangup */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 77 = obsolete vlimit */
+	    sys_nosys, 0, 0 },			/* 77 = obsolete vlimit */
 	{ ns(struct netbsd32_mincore_args), 0,
-	    (sy_call_t *)netbsd32_mincore },	/* 78 = netbsd32_mincore */
+	    (sy_call_t *)netbsd32_mincore, 0, 0 },	/* 78 = netbsd32_mincore */
 	{ ns(struct netbsd32_getgroups_args), 0,
-	    (sy_call_t *)netbsd32_getgroups },	/* 79 = netbsd32_getgroups */
+	    (sy_call_t *)netbsd32_getgroups, 0, 0 },	/* 79 = netbsd32_getgroups */
 	{ ns(struct netbsd32_setgroups_args), 0,
-	    (sy_call_t *)netbsd32_setgroups },	/* 80 = netbsd32_setgroups */
+	    (sy_call_t *)netbsd32_setgroups, 0, 0 },	/* 80 = netbsd32_setgroups */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpgrp },		/* 81 = getpgrp */
+	    (sy_call_t *)sys_getpgrp, 0, 0 },		/* 81 = getpgrp */
 	{ ns(struct netbsd32_setpgid_args), 0,
-	    (sy_call_t *)netbsd32_setpgid },	/* 82 = netbsd32_setpgid */
+	    (sy_call_t *)netbsd32_setpgid, 0, 0 },	/* 82 = netbsd32_setpgid */
 	{ ns(struct compat_50_netbsd32_setitimer_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_setitimer) },/* 83 = compat_50_netbsd32_setitimer */
+	    (sy_call_t *)compat_50(netbsd32_setitimer), 0, 0 },/* 83 = compat_50_netbsd32_setitimer */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43(sys_wait) },	/* 84 = compat_43_owait */
+	    (sy_call_t *)compat_43(sys_wait), 0, 0 },	/* 84 = compat_43_owait */
 	{ ns(struct compat_12_netbsd32_oswapon_args), 0,
-	    (sy_call_t *)compat_12(netbsd32_oswapon) },/* 85 = compat_12_netbsd32_oswapon */
+	    (sy_call_t *)compat_12(netbsd32_oswapon), 0, 0 },/* 85 = compat_12_netbsd32_oswapon */
 	{ ns(struct compat_50_netbsd32_getitimer_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_getitimer) },/* 86 = compat_50_netbsd32_getitimer */
+	    (sy_call_t *)compat_50(netbsd32_getitimer), 0, 0 },/* 86 = compat_50_netbsd32_getitimer */
 	{ ns(struct compat_43_netbsd32_ogethostname_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_ogethostname) },/* 87 = compat_43_netbsd32_ogethostname */
+	    (sy_call_t *)compat_43(netbsd32_ogethostname), 0, 0 },/* 87 = compat_43_netbsd32_ogethostname */
 	{ ns(struct compat_43_netbsd32_osethostname_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_osethostname) },/* 88 = compat_43_netbsd32_osethostname */
+	    (sy_call_t *)compat_43(netbsd32_osethostname), 0, 0 },/* 88 = compat_43_netbsd32_osethostname */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43(sys_getdtablesize) },/* 89 = compat_43_ogetdtablesize */
+	    (sy_call_t *)compat_43(sys_getdtablesize), 0, 0 },/* 89 = compat_43_ogetdtablesize */
 	{ ns(struct netbsd32_dup2_args), 0,
-	    (sy_call_t *)netbsd32_dup2 },	/* 90 = netbsd32_dup2 */
+	    (sy_call_t *)netbsd32_dup2, 0, 0 },	/* 90 = netbsd32_dup2 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 91 = unimplemented getdopt */
+	    sys_nosys, 0, 0 },			/* 91 = unimplemented getdopt */
 	{ ns(struct netbsd32_fcntl_args), 0,
-	    (sy_call_t *)netbsd32_fcntl },	/* 92 = netbsd32_fcntl */
+	    (sy_call_t *)netbsd32_fcntl, 0, 0 },	/* 92 = netbsd32_fcntl */
 	{ ns(struct compat_50_netbsd32_select_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_select) },/* 93 = compat_50_netbsd32_select */
+	    (sy_call_t *)compat_50(netbsd32_select), 0, 0 },/* 93 = compat_50_netbsd32_select */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 94 = unimplemented setdopt */
+	    sys_nosys, 0, 0 },			/* 94 = unimplemented setdopt */
 	{ ns(struct netbsd32_fsync_args), 0,
-	    (sy_call_t *)netbsd32_fsync },	/* 95 = netbsd32_fsync */
+	    (sy_call_t *)netbsd32_fsync, 0, 0 },	/* 95 = netbsd32_fsync */
 	{ ns(struct netbsd32_setpriority_args), 0,
-	    (sy_call_t *)netbsd32_setpriority },/* 96 = netbsd32_setpriority */
+	    (sy_call_t *)netbsd32_setpriority, 0, 0 },/* 96 = netbsd32_setpriority */
 	{ ns(struct compat_30_netbsd32_socket_args), 0,
-	    (sy_call_t *)compat_30(netbsd32_socket) },/* 97 = compat_30_netbsd32_socket */
+	    (sy_call_t *)compat_30(netbsd32_socket), 0, 0 },/* 97 = compat_30_netbsd32_socket */
 	{ ns(struct netbsd32_connect_args), 0,
-	    (sy_call_t *)netbsd32_connect },	/* 98 = netbsd32_connect */
+	    (sy_call_t *)netbsd32_connect, 0, 0 },	/* 98 = netbsd32_connect */
 	{ ns(struct compat_43_netbsd32_oaccept_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_oaccept) },/* 99 = compat_43_netbsd32_oaccept */
+	    (sy_call_t *)compat_43(netbsd32_oaccept), 0, 0 },/* 99 = compat_43_netbsd32_oaccept */
 	{ ns(struct netbsd32_getpriority_args), 0,
-	    (sy_call_t *)netbsd32_getpriority },/* 100 = netbsd32_getpriority */
+	    (sy_call_t *)netbsd32_getpriority, 0, 0 },/* 100 = netbsd32_getpriority */
 	{ ns(struct compat_43_netbsd32_osend_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_osend) },/* 101 = compat_43_netbsd32_osend */
+	    (sy_call_t *)compat_43(netbsd32_osend), 0, 0 },/* 101 = compat_43_netbsd32_osend */
 	{ ns(struct compat_43_netbsd32_orecv_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_orecv) },/* 102 = compat_43_netbsd32_orecv */
+	    (sy_call_t *)compat_43(netbsd32_orecv), 0, 0 },/* 102 = compat_43_netbsd32_orecv */
 	{ ns(struct compat_13_netbsd32_sigreturn_args), 0,
-	    (sy_call_t *)compat_13(netbsd32_sigreturn) },/* 103 = compat_13_sigreturn13 */
+	    (sy_call_t *)compat_13(netbsd32_sigreturn), 0, 0 },/* 103 = compat_13_sigreturn13 */
 	{ ns(struct netbsd32_bind_args), 0,
-	    (sy_call_t *)netbsd32_bind },	/* 104 = netbsd32_bind */
+	    (sy_call_t *)netbsd32_bind, 0, 0 },	/* 104 = netbsd32_bind */
 	{ ns(struct netbsd32_setsockopt_args), 0,
-	    (sy_call_t *)netbsd32_setsockopt },	/* 105 = netbsd32_setsockopt */
+	    (sy_call_t *)netbsd32_setsockopt, 0, 0 },	/* 105 = netbsd32_setsockopt */
 	{ ns(struct netbsd32_listen_args), 0,
-	    (sy_call_t *)netbsd32_listen },	/* 106 = netbsd32_listen */
+	    (sy_call_t *)netbsd32_listen, 0, 0 },	/* 106 = netbsd32_listen */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 107 = obsolete vtimes */
+	    sys_nosys, 0, 0 },			/* 107 = obsolete vtimes */
 	{ ns(struct compat_43_netbsd32_osigvec_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_osigvec) },/* 108 = compat_43_netbsd32_osigvec */
+	    (sy_call_t *)compat_43(netbsd32_osigvec), 0, 0 },/* 108 = compat_43_netbsd32_osigvec */
 	{ ns(struct compat_43_netbsd32_sigblock_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_sigblock) },/* 109 = compat_43_netbsd32_sigblock */
+	    (sy_call_t *)compat_43(netbsd32_sigblock), 0, 0 },/* 109 = compat_43_netbsd32_sigblock */
 	{ ns(struct compat_43_netbsd32_sigsetmask_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_sigsetmask) },/* 110 = compat_43_netbsd32_sigsetmask */
+	    (sy_call_t *)compat_43(netbsd32_sigsetmask), 0, 0 },/* 110 = compat_43_netbsd32_sigsetmask */
 	{ ns(struct compat_13_netbsd32_sigsuspend_args), 0,
-	    (sy_call_t *)compat_13(netbsd32_sigsuspend) },/* 111 = compat_13_sigsuspend13 */
+	    (sy_call_t *)compat_13(netbsd32_sigsuspend), 0, 0 },/* 111 = compat_13_sigsuspend13 */
 	{ ns(struct compat_43_netbsd32_osigstack_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_osigstack) },/* 112 = compat_43_netbsd32_osigstack */
+	    (sy_call_t *)compat_43(netbsd32_osigstack), 0, 0 },/* 112 = compat_43_netbsd32_osigstack */
 	{ ns(struct compat_43_netbsd32_orecvmsg_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_orecvmsg) },/* 113 = compat_43_netbsd32_orecvmsg */
+	    (sy_call_t *)compat_43(netbsd32_orecvmsg), 0, 0 },/* 113 = compat_43_netbsd32_orecvmsg */
 	{ ns(struct compat_43_netbsd32_osendmsg_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_osendmsg) },/* 114 = compat_43_netbsd32_osendmsg */
+	    (sy_call_t *)compat_43(netbsd32_osendmsg), 0, 0 },/* 114 = compat_43_netbsd32_osendmsg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 115 = obsolete vtrace */
+	    sys_nosys, 0, 0 },			/* 115 = obsolete vtrace */
 	{ ns(struct compat_50_netbsd32_gettimeofday_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_gettimeofday) },/* 116 = compat_50_netbsd32_gettimeofday */
+	    (sy_call_t *)compat_50(netbsd32_gettimeofday), 0, 0 },/* 116 = compat_50_netbsd32_gettimeofday */
 	{ ns(struct compat_50_netbsd32_getrusage_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_getrusage) },/* 117 = compat_50_netbsd32_getrusage */
+	    (sy_call_t *)compat_50(netbsd32_getrusage), 0, 0 },/* 117 = compat_50_netbsd32_getrusage */
 	{ ns(struct netbsd32_getsockopt_args), 0,
-	    (sy_call_t *)netbsd32_getsockopt },	/* 118 = netbsd32_getsockopt */
+	    (sy_call_t *)netbsd32_getsockopt, 0, 0 },	/* 118 = netbsd32_getsockopt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 119 = obsolete resuba */
+	    sys_nosys, 0, 0 },			/* 119 = obsolete resuba */
 	{ ns(struct netbsd32_readv_args), 0,
-	    (sy_call_t *)netbsd32_readv },	/* 120 = netbsd32_readv */
+	    (sy_call_t *)netbsd32_readv, 0, 0 },	/* 120 = netbsd32_readv */
 	{ ns(struct netbsd32_writev_args), 0,
-	    (sy_call_t *)netbsd32_writev },	/* 121 = netbsd32_writev */
+	    (sy_call_t *)netbsd32_writev, 0, 0 },	/* 121 = netbsd32_writev */
 	{ ns(struct compat_50_netbsd32_settimeofday_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_settimeofday) },/* 122 = compat_50_netbsd32_settimeofday */
+	    (sy_call_t *)compat_50(netbsd32_settimeofday), 0, 0 },/* 122 = compat_50_netbsd32_settimeofday */
 	{ ns(struct netbsd32_fchown_args), 0,
-	    (sy_call_t *)netbsd32_fchown },	/* 123 = netbsd32_fchown */
+	    (sy_call_t *)netbsd32_fchown, 0, 0 },	/* 123 = netbsd32_fchown */
 	{ ns(struct netbsd32_fchmod_args), 0,
-	    (sy_call_t *)netbsd32_fchmod },	/* 124 = netbsd32_fchmod */
+	    (sy_call_t *)netbsd32_fchmod, 0, 0 },	/* 124 = netbsd32_fchmod */
 	{ ns(struct compat_43_netbsd32_orecvfrom_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_orecvfrom) },/* 125 = compat_43_netbsd32_orecvfrom */
+	    (sy_call_t *)compat_43(netbsd32_orecvfrom), 0, 0 },/* 125 = compat_43_netbsd32_orecvfrom */
 	{ ns(struct netbsd32_setreuid_args), 0,
-	    (sy_call_t *)netbsd32_setreuid },	/* 126 = netbsd32_setreuid */
+	    (sy_call_t *)netbsd32_setreuid, 0, 0 },	/* 126 = netbsd32_setreuid */
 	{ ns(struct netbsd32_setregid_args), 0,
-	    (sy_call_t *)netbsd32_setregid },	/* 127 = netbsd32_setregid */
+	    (sy_call_t *)netbsd32_setregid, 0, 0 },	/* 127 = netbsd32_setregid */
 	{ ns(struct netbsd32_rename_args), 0,
-	    (sy_call_t *)netbsd32_rename },	/* 128 = netbsd32_rename */
+	    (sy_call_t *)netbsd32_rename, 0, 0 },	/* 128 = netbsd32_rename */
 	{ ns(struct compat_43_netbsd32_otruncate_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_otruncate) },/* 129 = compat_43_netbsd32_otruncate */
+	    (sy_call_t *)compat_43(netbsd32_otruncate), 0, 0 },/* 129 = compat_43_netbsd32_otruncate */
 	{ ns(struct compat_43_netbsd32_oftruncate_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_oftruncate) },/* 130 = compat_43_netbsd32_oftruncate */
+	    (sy_call_t *)compat_43(netbsd32_oftruncate), 0, 0 },/* 130 = compat_43_netbsd32_oftruncate */
 	{ ns(struct netbsd32_flock_args), 0,
-	    (sy_call_t *)netbsd32_flock },	/* 131 = netbsd32_flock */
+	    (sy_call_t *)netbsd32_flock, 0, 0 },	/* 131 = netbsd32_flock */
 	{ ns(struct netbsd32_mkfifo_args), 0,
-	    (sy_call_t *)netbsd32_mkfifo },	/* 132 = netbsd32_mkfifo */
+	    (sy_call_t *)netbsd32_mkfifo, 0, 0 },	/* 132 = netbsd32_mkfifo */
 	{ ns(struct netbsd32_sendto_args), 0,
-	    (sy_call_t *)netbsd32_sendto },	/* 133 = netbsd32_sendto */
+	    (sy_call_t *)netbsd32_sendto, 0, 0 },	/* 133 = netbsd32_sendto */
 	{ ns(struct netbsd32_shutdown_args), 0,
-	    (sy_call_t *)netbsd32_shutdown },	/* 134 = netbsd32_shutdown */
+	    (sy_call_t *)netbsd32_shutdown, 0, 0 },	/* 134 = netbsd32_shutdown */
 	{ ns(struct netbsd32_socketpair_args), 0,
-	    (sy_call_t *)netbsd32_socketpair },	/* 135 = netbsd32_socketpair */
+	    (sy_call_t *)netbsd32_socketpair, 0, 0 },	/* 135 = netbsd32_socketpair */
 	{ ns(struct netbsd32_mkdir_args), 0,
-	    (sy_call_t *)netbsd32_mkdir },	/* 136 = netbsd32_mkdir */
+	    (sy_call_t *)netbsd32_mkdir, 0, 0 },	/* 136 = netbsd32_mkdir */
 	{ ns(struct netbsd32_rmdir_args), 0,
-	    (sy_call_t *)netbsd32_rmdir },	/* 137 = netbsd32_rmdir */
+	    (sy_call_t *)netbsd32_rmdir, 0, 0 },	/* 137 = netbsd32_rmdir */
 	{ ns(struct compat_50_netbsd32_utimes_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_utimes) },/* 138 = compat_50_netbsd32_utimes */
+	    (sy_call_t *)compat_50(netbsd32_utimes), 0, 0 },/* 138 = compat_50_netbsd32_utimes */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 139 = obsolete 4.2 sigreturn */
+	    sys_nosys, 0, 0 },			/* 139 = obsolete 4.2 sigreturn */
 	{ ns(struct compat_50_netbsd32_adjtime_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_adjtime) },/* 140 = compat_50_netbsd32_adjtime */
+	    (sy_call_t *)compat_50(netbsd32_adjtime), 0, 0 },/* 140 = compat_50_netbsd32_adjtime */
 	{ ns(struct compat_43_netbsd32_ogetpeername_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_ogetpeername) },/* 141 = compat_43_netbsd32_ogetpeername */
+	    (sy_call_t *)compat_43(netbsd32_ogetpeername), 0, 0 },/* 141 = compat_43_netbsd32_ogetpeername */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43(sys_gethostid) },/* 142 = compat_43_ogethostid */
+	    (sy_call_t *)compat_43(sys_gethostid), 0, 0 },/* 142 = compat_43_ogethostid */
 	{ ns(struct compat_43_netbsd32_sethostid_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_sethostid) },/* 143 = compat_43_netbsd32_sethostid */
+	    (sy_call_t *)compat_43(netbsd32_sethostid), 0, 0 },/* 143 = compat_43_netbsd32_sethostid */
 	{ ns(struct compat_43_netbsd32_ogetrlimit_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_ogetrlimit) },/* 144 = compat_43_netbsd32_ogetrlimit */
+	    (sy_call_t *)compat_43(netbsd32_ogetrlimit), 0, 0 },/* 144 = compat_43_netbsd32_ogetrlimit */
 	{ ns(struct compat_43_netbsd32_osetrlimit_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_osetrlimit) },/* 145 = compat_43_netbsd32_osetrlimit */
+	    (sy_call_t *)compat_43(netbsd32_osetrlimit), 0, 0 },/* 145 = compat_43_netbsd32_osetrlimit */
 	{ ns(struct compat_43_netbsd32_killpg_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_killpg) },/* 146 = compat_43_netbsd32_killpg */
+	    (sy_call_t *)compat_43(netbsd32_killpg), 0, 0 },/* 146 = compat_43_netbsd32_killpg */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_setsid },		/* 147 = setsid */
+	    (sy_call_t *)sys_setsid, 0, 0 },		/* 147 = setsid */
 	{ ns(struct compat_50_netbsd32_quotactl_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_quotactl) },/* 148 = compat_50_netbsd32_quotactl */
+	    (sy_call_t *)compat_50(netbsd32_quotactl), 0, 0 },/* 148 = compat_50_netbsd32_quotactl */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43(sys_quota) },/* 149 = compat_43_oquota */
+	    (sy_call_t *)compat_43(sys_quota), 0, 0 },/* 149 = compat_43_oquota */
 	{ ns(struct compat_43_netbsd32_ogetsockname_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_ogetsockname) },/* 150 = compat_43_netbsd32_ogetsockname */
+	    (sy_call_t *)compat_43(netbsd32_ogetsockname), 0, 0 },/* 150 = compat_43_netbsd32_ogetsockname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 151 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 151 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 152 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 152 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 153 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 153 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 154 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 154 = unimplemented */
 #if defined(NFSSERVER) || !defined(_KERNEL_OPT)
 	{ ns(struct netbsd32_nfssvc_args), 0,
-	    (sy_call_t *)netbsd32_nfssvc },	/* 155 = netbsd32_nfssvc */
+	    (sy_call_t *)netbsd32_nfssvc, 0, 0 },	/* 155 = netbsd32_nfssvc */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 155 = excluded netbsd32_nfssvc */
+	    sys_nosys, 0, 0 },			/* 155 = excluded netbsd32_nfssvc */
 #endif
 	{ ns(struct compat_43_netbsd32_ogetdirentries_args), 0,
-	    (sy_call_t *)compat_43(netbsd32_ogetdirentries) },/* 156 = compat_43_netbsd32_ogetdirentries */
+	    (sy_call_t *)compat_43(netbsd32_ogetdirentries), 0, 0 },/* 156 = compat_43_netbsd32_ogetdirentries */
 	{ ns(struct compat_20_netbsd32_statfs_args), 0,
-	    (sy_call_t *)compat_20(netbsd32_statfs) },/* 157 = compat_20_netbsd32_statfs */
+	    (sy_call_t *)compat_20(netbsd32_statfs), 0, 0 },/* 157 = compat_20_netbsd32_statfs */
 	{ ns(struct compat_20_netbsd32_fstatfs_args), 0,
-	    (sy_call_t *)compat_20(netbsd32_fstatfs) },/* 158 = compat_20_netbsd32_fstatfs */
+	    (sy_call_t *)compat_20(netbsd32_fstatfs), 0, 0 },/* 158 = compat_20_netbsd32_fstatfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 159 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 159 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 160 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 160 = unimplemented */
 	{ ns(struct compat_30_netbsd32_getfh_args), 0,
-	    (sy_call_t *)compat_30(netbsd32_getfh) },/* 161 = compat_30_netbsd32_getfh */
+	    (sy_call_t *)compat_30(netbsd32_getfh), 0, 0 },/* 161 = compat_30_netbsd32_getfh */
 	{ ns(struct compat_09_netbsd32_ogetdomainname_args), 0,
-	    (sy_call_t *)compat_09(netbsd32_ogetdomainname) },/* 162 = compat_09_netbsd32_ogetdomainname */
+	    (sy_call_t *)compat_09(netbsd32_ogetdomainname), 0, 0 },/* 162 = compat_09_netbsd32_ogetdomainname */
 	{ ns(struct compat_09_netbsd32_osetdomainname_args), 0,
-	    (sy_call_t *)compat_09(netbsd32_osetdomainname) },/* 163 = compat_09_netbsd32_osetdomainname */
+	    (sy_call_t *)compat_09(netbsd32_osetdomainname), 0, 0 },/* 163 = compat_09_netbsd32_osetdomainname */
 	{ ns(struct compat_09_netbsd32_uname_args), 0,
-	    (sy_call_t *)compat_09(netbsd32_uname) },/* 164 = compat_09_netbsd32_uname */
+	    (sy_call_t *)compat_09(netbsd32_uname), 0, 0 },/* 164 = compat_09_netbsd32_uname */
 	{ ns(struct netbsd32_sysarch_args), 0,
-	    (sy_call_t *)netbsd32_sysarch },	/* 165 = netbsd32_sysarch */
+	    (sy_call_t *)netbsd32_sysarch, 0, 0 },	/* 165 = netbsd32_sysarch */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 166 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 166 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 167 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 167 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 168 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 168 = unimplemented */
 #if defined(SYSVSEM) || !defined(_KERNEL_OPT)
 	{ ns(struct compat_10_netbsd32_semsys_args), 0,
-	    (sy_call_t *)compat_10(netbsd32_semsys) },/* 169 = compat_10_osemsys */
+	    (sy_call_t *)compat_10(netbsd32_semsys), 0, 0 },/* 169 = compat_10_osemsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 169 = excluded netbsd32_semsys */
+	    sys_nosys, 0, 0 },			/* 169 = excluded netbsd32_semsys */
 #endif
 #if defined(SYSVMSG) || !defined(_KERNEL_OPT)
 	{ ns(struct compat_10_netbsd32_msgsys_args), 0,
-	    (sy_call_t *)compat_10(netbsd32_msgsys) },/* 170 = compat_10_omsgsys */
+	    (sy_call_t *)compat_10(netbsd32_msgsys), 0, 0 },/* 170 = compat_10_omsgsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 170 = excluded netbsd32_msgsys */
+	    sys_nosys, 0, 0 },			/* 170 = excluded netbsd32_msgsys */
 #endif
 #if defined(SYSVSHM) || !defined(_KERNEL_OPT)
 	{ ns(struct compat_10_netbsd32_shmsys_args), 0,
-	    (sy_call_t *)compat_10(netbsd32_shmsys) },/* 171 = compat_10_oshmsys */
+	    (sy_call_t *)compat_10(netbsd32_shmsys), 0, 0 },/* 171 = compat_10_oshmsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 171 = excluded netbsd32_shmsys */
+	    sys_nosys, 0, 0 },			/* 171 = excluded netbsd32_shmsys */
 #endif
 	{ 0, 0, 0,
-	    sys_nosys },			/* 172 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 172 = unimplemented */
 	{ ns(struct netbsd32_pread_args), 0,
-	    (sy_call_t *)netbsd32_pread },	/* 173 = netbsd32_pread */
+	    (sy_call_t *)netbsd32_pread, 0, 0 },	/* 173 = netbsd32_pread */
 	{ ns(struct netbsd32_pwrite_args), 0,
-	    (sy_call_t *)netbsd32_pwrite },	/* 174 = netbsd32_pwrite */
+	    (sy_call_t *)netbsd32_pwrite, 0, 0 },	/* 174 = netbsd32_pwrite */
 #if defined(NTP) || !defined(_KERNEL_OPT)
 	{ ns(struct compat_30_netbsd32_ntp_gettime_args), 0,
-	    (sy_call_t *)compat_30(netbsd32_ntp_gettime) },/* 175 = compat_30_netbsd32_ntp_gettime */
+	    (sy_call_t *)compat_30(netbsd32_ntp_gettime), 0, 0 },/* 175 = compat_30_netbsd32_ntp_gettime */
 	{ ns(struct netbsd32_ntp_adjtime_args), 0,
-	    (sy_call_t *)netbsd32_ntp_adjtime },/* 176 = netbsd32_ntp_adjtime */
+	    (sy_call_t *)netbsd32_ntp_adjtime, 0, 0 },/* 176 = netbsd32_ntp_adjtime */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 175 = excluded ntp_gettime */
+	    sys_nosys, 0, 0 },			/* 175 = excluded ntp_gettime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 176 = excluded ntp_adjtime */
+	    sys_nosys, 0, 0 },			/* 176 = excluded ntp_adjtime */
 #endif
 	{ 0, 0, 0,
-	    sys_nosys },			/* 177 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 177 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 178 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 178 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 179 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 179 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 180 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 180 = unimplemented */
 	{ ns(struct netbsd32_setgid_args), 0,
-	    (sy_call_t *)netbsd32_setgid },	/* 181 = netbsd32_setgid */
+	    (sy_call_t *)netbsd32_setgid, 0, 0 },	/* 181 = netbsd32_setgid */
 	{ ns(struct netbsd32_setegid_args), 0,
-	    (sy_call_t *)netbsd32_setegid },	/* 182 = netbsd32_setegid */
+	    (sy_call_t *)netbsd32_setegid, 0, 0 },	/* 182 = netbsd32_setegid */
 	{ ns(struct netbsd32_seteuid_args), 0,
-	    (sy_call_t *)netbsd32_seteuid },	/* 183 = netbsd32_seteuid */
+	    (sy_call_t *)netbsd32_seteuid, 0, 0 },	/* 183 = netbsd32_seteuid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 184 = excluded netbsd32_lfs_bmapv */
+	    sys_nosys, 0, 0 },			/* 184 = excluded netbsd32_lfs_bmapv */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 185 = excluded netbsd32_lfs_markv */
+	    sys_nosys, 0, 0 },			/* 185 = excluded netbsd32_lfs_markv */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 186 = excluded netbsd32_lfs_segclean */
+	    sys_nosys, 0, 0 },			/* 186 = excluded netbsd32_lfs_segclean */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 187 = excluded netbsd32_lfs_segwait */
+	    sys_nosys, 0, 0 },			/* 187 = excluded netbsd32_lfs_segwait */
 	{ ns(struct compat_12_netbsd32_stat12_args), 0,
-	    (sy_call_t *)compat_12(netbsd32_stat12) },/* 188 = compat_12_netbsd32_stat12 */
+	    (sy_call_t *)compat_12(netbsd32_stat12), 0, 0 },/* 188 = compat_12_netbsd32_stat12 */
 	{ ns(struct compat_12_netbsd32_fstat12_args), 0,
-	    (sy_call_t *)compat_12(netbsd32_fstat12) },/* 189 = compat_12_netbsd32_fstat12 */
+	    (sy_call_t *)compat_12(netbsd32_fstat12), 0, 0 },/* 189 = compat_12_netbsd32_fstat12 */
 	{ ns(struct compat_12_netbsd32_lstat12_args), 0,
-	    (sy_call_t *)compat_12(netbsd32_lstat12) },/* 190 = compat_12_netbsd32_lstat12 */
+	    (sy_call_t *)compat_12(netbsd32_lstat12), 0, 0 },/* 190 = compat_12_netbsd32_lstat12 */
 	{ ns(struct netbsd32_pathconf_args), 0,
-	    (sy_call_t *)netbsd32_pathconf },	/* 191 = netbsd32_pathconf */
+	    (sy_call_t *)netbsd32_pathconf, 0, 0 },	/* 191 = netbsd32_pathconf */
 	{ ns(struct netbsd32_fpathconf_args), 0,
-	    (sy_call_t *)netbsd32_fpathconf },	/* 192 = netbsd32_fpathconf */
+	    (sy_call_t *)netbsd32_fpathconf, 0, 0 },	/* 192 = netbsd32_fpathconf */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 193 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 193 = unimplemented */
 	{ ns(struct netbsd32_getrlimit_args), 0,
-	    (sy_call_t *)netbsd32_getrlimit },	/* 194 = netbsd32_getrlimit */
+	    (sy_call_t *)netbsd32_getrlimit, 0, 0 },	/* 194 = netbsd32_getrlimit */
 	{ ns(struct netbsd32_setrlimit_args), 0,
-	    (sy_call_t *)netbsd32_setrlimit },	/* 195 = netbsd32_setrlimit */
+	    (sy_call_t *)netbsd32_setrlimit, 0, 0 },	/* 195 = netbsd32_setrlimit */
 	{ ns(struct compat_12_netbsd32_getdirentries_args), 0,
-	    (sy_call_t *)compat_12(netbsd32_getdirentries) },/* 196 = compat_12_netbsd32_getdirentries */
+	    (sy_call_t *)compat_12(netbsd32_getdirentries), 0, 0 },/* 196 = compat_12_netbsd32_getdirentries */
 	{ ns(struct netbsd32_mmap_args), 0,
-	    (sy_call_t *)netbsd32_mmap },	/* 197 = netbsd32_mmap */
+	    (sy_call_t *)netbsd32_mmap, 0, 0 },	/* 197 = netbsd32_mmap */
 	{ ns(struct netbsd32____syscall_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG0_64 | SYCALL_RET_64 | SYCALL_INDIRECT,
-	    (sy_call_t *)netbsd32____syscall },	/* 198 = netbsd32____syscall */
+	    (sy_call_t *)netbsd32____syscall, 0, 0 },	/* 198 = netbsd32____syscall */
 	{ ns(struct netbsd32_lseek_args), 0,
-	    (sy_call_t *)netbsd32_lseek },	/* 199 = netbsd32_lseek */
+	    (sy_call_t *)netbsd32_lseek, 0, 0 },	/* 199 = netbsd32_lseek */
 	{ ns(struct netbsd32_truncate_args), 0,
-	    (sy_call_t *)netbsd32_truncate },	/* 200 = netbsd32_truncate */
+	    (sy_call_t *)netbsd32_truncate, 0, 0 },	/* 200 = netbsd32_truncate */
 	{ ns(struct netbsd32_ftruncate_args), 0,
-	    (sy_call_t *)netbsd32_ftruncate },	/* 201 = netbsd32_ftruncate */
+	    (sy_call_t *)netbsd32_ftruncate, 0, 0 },	/* 201 = netbsd32_ftruncate */
 	{ ns(struct netbsd32___sysctl_args), 0,
-	    (sy_call_t *)netbsd32___sysctl },	/* 202 = netbsd32___sysctl */
+	    (sy_call_t *)netbsd32___sysctl, 0, 0 },	/* 202 = netbsd32___sysctl */
 	{ ns(struct netbsd32_mlock_args), 0,
-	    (sy_call_t *)netbsd32_mlock },	/* 203 = netbsd32_mlock */
+	    (sy_call_t *)netbsd32_mlock, 0, 0 },	/* 203 = netbsd32_mlock */
 	{ ns(struct netbsd32_munlock_args), 0,
-	    (sy_call_t *)netbsd32_munlock },	/* 204 = netbsd32_munlock */
+	    (sy_call_t *)netbsd32_munlock, 0, 0 },	/* 204 = netbsd32_munlock */
 	{ ns(struct netbsd32_undelete_args), 0,
-	    (sy_call_t *)netbsd32_undelete },	/* 205 = netbsd32_undelete */
+	    (sy_call_t *)netbsd32_undelete, 0, 0 },	/* 205 = netbsd32_undelete */
 	{ ns(struct compat_50_netbsd32_futimes_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_futimes) },/* 206 = compat_50_netbsd32_futimes */
+	    (sy_call_t *)compat_50(netbsd32_futimes), 0, 0 },/* 206 = compat_50_netbsd32_futimes */
 	{ ns(struct netbsd32_getpgid_args), 0,
-	    (sy_call_t *)netbsd32_getpgid },	/* 207 = netbsd32_getpgid */
+	    (sy_call_t *)netbsd32_getpgid, 0, 0 },	/* 207 = netbsd32_getpgid */
 	{ ns(struct netbsd32_reboot_args), 0,
-	    (sy_call_t *)netbsd32_reboot },	/* 208 = netbsd32_reboot */
+	    (sy_call_t *)netbsd32_reboot, 0, 0 },	/* 208 = netbsd32_reboot */
 	{ ns(struct netbsd32_poll_args), 0,
-	    (sy_call_t *)netbsd32_poll },	/* 209 = netbsd32_poll */
+	    (sy_call_t *)netbsd32_poll, 0, 0 },	/* 209 = netbsd32_poll */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 210 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 210 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 211 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 211 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 212 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 212 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 213 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 213 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 214 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 214 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 215 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 215 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 216 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 216 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 217 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 217 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 218 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 218 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 219 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 219 = unimplemented */
 #if defined(SYSVSEM) || !defined(_KERNEL_OPT)
 	{ ns(struct compat_14_netbsd32___semctl_args), 0,
-	    (sy_call_t *)compat_14(netbsd32___semctl) },/* 220 = compat_14_netbsd32___semctl */
+	    (sy_call_t *)compat_14(netbsd32___semctl), 0, 0 },/* 220 = compat_14_netbsd32___semctl */
 	{ ns(struct netbsd32_semget_args), 0,
-	    (sy_call_t *)netbsd32_semget },	/* 221 = netbsd32_semget */
+	    (sy_call_t *)netbsd32_semget, 0, 0 },	/* 221 = netbsd32_semget */
 	{ ns(struct netbsd32_semop_args), 0,
-	    (sy_call_t *)netbsd32_semop },	/* 222 = netbsd32_semop */
+	    (sy_call_t *)netbsd32_semop, 0, 0 },	/* 222 = netbsd32_semop */
 	{ ns(struct netbsd32_semconfig_args), 0,
-	    (sy_call_t *)netbsd32_semconfig },	/* 223 = netbsd32_semconfig */
+	    (sy_call_t *)netbsd32_semconfig, 0, 0 },	/* 223 = netbsd32_semconfig */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 220 = excluded compat_14_netbsd32_semctl */
+	    sys_nosys, 0, 0 },			/* 220 = excluded compat_14_netbsd32_semctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 221 = excluded netbsd32_semget */
+	    sys_nosys, 0, 0 },			/* 221 = excluded netbsd32_semget */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 222 = excluded netbsd32_semop */
+	    sys_nosys, 0, 0 },			/* 222 = excluded netbsd32_semop */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 223 = excluded netbsd32_semconfig */
+	    sys_nosys, 0, 0 },			/* 223 = excluded netbsd32_semconfig */
 #endif
 #if defined(SYSVMSG) || !defined(_KERNEL_OPT)
 	{ ns(struct compat_14_netbsd32_msgctl_args), 0,
-	    (sy_call_t *)compat_14(netbsd32_msgctl) },/* 224 = compat_14_netbsd32_msgctl */
+	    (sy_call_t *)compat_14(netbsd32_msgctl), 0, 0 },/* 224 = compat_14_netbsd32_msgctl */
 	{ ns(struct netbsd32_msgget_args), 0,
-	    (sy_call_t *)netbsd32_msgget },	/* 225 = netbsd32_msgget */
+	    (sy_call_t *)netbsd32_msgget, 0, 0 },	/* 225 = netbsd32_msgget */
 	{ ns(struct netbsd32_msgsnd_args), 0,
-	    (sy_call_t *)netbsd32_msgsnd },	/* 226 = netbsd32_msgsnd */
+	    (sy_call_t *)netbsd32_msgsnd, 0, 0 },	/* 226 = netbsd32_msgsnd */
 	{ ns(struct netbsd32_msgrcv_args), 0,
-	    (sy_call_t *)netbsd32_msgrcv },	/* 227 = netbsd32_msgrcv */
+	    (sy_call_t *)netbsd32_msgrcv, 0, 0 },	/* 227 = netbsd32_msgrcv */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 224 = excluded compat_14_netbsd32_msgctl */
+	    sys_nosys, 0, 0 },			/* 224 = excluded compat_14_netbsd32_msgctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 225 = excluded netbsd32_msgget */
+	    sys_nosys, 0, 0 },			/* 225 = excluded netbsd32_msgget */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 226 = excluded netbsd32_msgsnd */
+	    sys_nosys, 0, 0 },			/* 226 = excluded netbsd32_msgsnd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 227 = excluded netbsd32_msgrcv */
+	    sys_nosys, 0, 0 },			/* 227 = excluded netbsd32_msgrcv */
 #endif
 #if defined(SYSVSHM) || !defined(_KERNEL_OPT)
 	{ ns(struct netbsd32_shmat_args), 0,
-	    (sy_call_t *)netbsd32_shmat },	/* 228 = netbsd32_shmat */
+	    (sy_call_t *)netbsd32_shmat, 0, 0 },	/* 228 = netbsd32_shmat */
 	{ ns(struct compat_14_netbsd32_shmctl_args), 0,
-	    (sy_call_t *)compat_14(netbsd32_shmctl) },/* 229 = compat_14_netbsd32_shmctl */
+	    (sy_call_t *)compat_14(netbsd32_shmctl), 0, 0 },/* 229 = compat_14_netbsd32_shmctl */
 	{ ns(struct netbsd32_shmdt_args), 0,
-	    (sy_call_t *)netbsd32_shmdt },	/* 230 = netbsd32_shmdt */
+	    (sy_call_t *)netbsd32_shmdt, 0, 0 },	/* 230 = netbsd32_shmdt */
 	{ ns(struct netbsd32_shmget_args), 0,
-	    (sy_call_t *)netbsd32_shmget },	/* 231 = netbsd32_shmget */
+	    (sy_call_t *)netbsd32_shmget, 0, 0 },	/* 231 = netbsd32_shmget */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 228 = excluded netbsd32_shmat */
+	    sys_nosys, 0, 0 },			/* 228 = excluded netbsd32_shmat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 229 = excluded compat_14_netbsd32_shmctl */
+	    sys_nosys, 0, 0 },			/* 229 = excluded compat_14_netbsd32_shmctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 230 = excluded netbsd32_shmdt */
+	    sys_nosys, 0, 0 },			/* 230 = excluded netbsd32_shmdt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 231 = excluded netbsd32_shmget */
+	    sys_nosys, 0, 0 },			/* 231 = excluded netbsd32_shmget */
 #endif
 	{ ns(struct compat_50_netbsd32_clock_gettime_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_clock_gettime) },/* 232 = compat_50_netbsd32_clock_gettime */
+	    (sy_call_t *)compat_50(netbsd32_clock_gettime), 0, 0 },/* 232 = compat_50_netbsd32_clock_gettime */
 	{ ns(struct compat_50_netbsd32_clock_settime_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_clock_settime) },/* 233 = compat_50_netbsd32_clock_settime */
+	    (sy_call_t *)compat_50(netbsd32_clock_settime), 0, 0 },/* 233 = compat_50_netbsd32_clock_settime */
 	{ ns(struct compat_50_netbsd32_clock_getres_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_clock_getres) },/* 234 = compat_50_netbsd32_clock_getres */
+	    (sy_call_t *)compat_50(netbsd32_clock_getres), 0, 0 },/* 234 = compat_50_netbsd32_clock_getres */
 	{ ns(struct netbsd32_timer_create_args), 0,
-	    (sy_call_t *)netbsd32_timer_create },/* 235 = netbsd32_timer_create */
+	    (sy_call_t *)netbsd32_timer_create, 0, 0 },/* 235 = netbsd32_timer_create */
 	{ ns(struct netbsd32_timer_delete_args), 0,
-	    (sy_call_t *)netbsd32_timer_delete },/* 236 = netbsd32_timer_delete */
+	    (sy_call_t *)netbsd32_timer_delete, 0, 0 },/* 236 = netbsd32_timer_delete */
 	{ ns(struct compat_50_netbsd32_timer_settime_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_timer_settime) },/* 237 = compat_50_netbsd32_timer_settime */
+	    (sy_call_t *)compat_50(netbsd32_timer_settime), 0, 0 },/* 237 = compat_50_netbsd32_timer_settime */
 	{ ns(struct compat_50_netbsd32_timer_gettime_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_timer_gettime) },/* 238 = compat_50_netbsd32_timer_gettime */
+	    (sy_call_t *)compat_50(netbsd32_timer_gettime), 0, 0 },/* 238 = compat_50_netbsd32_timer_gettime */
 	{ ns(struct netbsd32_timer_getoverrun_args), 0,
-	    (sy_call_t *)netbsd32_timer_getoverrun },/* 239 = netbsd32_timer_getoverrun */
+	    (sy_call_t *)netbsd32_timer_getoverrun, 0, 0 },/* 239 = netbsd32_timer_getoverrun */
 	{ ns(struct compat_50_netbsd32_nanosleep_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_nanosleep) },/* 240 = compat_50_netbsd32_nanosleep */
+	    (sy_call_t *)compat_50(netbsd32_nanosleep), 0, 0 },/* 240 = compat_50_netbsd32_nanosleep */
 	{ ns(struct netbsd32_fdatasync_args), 0,
-	    (sy_call_t *)netbsd32_fdatasync },	/* 241 = netbsd32_fdatasync */
+	    (sy_call_t *)netbsd32_fdatasync, 0, 0 },	/* 241 = netbsd32_fdatasync */
 	{ ns(struct netbsd32_mlockall_args), 0,
-	    (sy_call_t *)netbsd32_mlockall },	/* 242 = netbsd32_mlockall */
+	    (sy_call_t *)netbsd32_mlockall, 0, 0 },	/* 242 = netbsd32_mlockall */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_munlockall },	/* 243 = munlockall */
+	    (sy_call_t *)sys_munlockall, 0, 0 },	/* 243 = munlockall */
 	{ ns(struct compat_50_netbsd32___sigtimedwait_args), 0,
-	    (sy_call_t *)compat_50(netbsd32___sigtimedwait) },/* 244 = compat_50_netbsd32___sigtimedwait */
+	    (sy_call_t *)compat_50(netbsd32___sigtimedwait), 0, 0 },/* 244 = compat_50_netbsd32___sigtimedwait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 245 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 245 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 246 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 246 = unimplemented */
 	{ ns(struct netbsd32__ksem_init_args), 0,
-	    (sy_call_t *)netbsd32__ksem_init },	/* 247 = netbsd32__ksem_init */
+	    (sy_call_t *)netbsd32__ksem_init, 0, 0 },	/* 247 = netbsd32__ksem_init */
 	{ ns(struct netbsd32__ksem_open_args), 0,
-	    (sy_call_t *)netbsd32__ksem_open },	/* 248 = netbsd32__ksem_open */
+	    (sy_call_t *)netbsd32__ksem_open, 0, 0 },	/* 248 = netbsd32__ksem_open */
 	{ ns(struct netbsd32__ksem_unlink_args), 0,
-	    (sy_call_t *)netbsd32__ksem_unlink },/* 249 = netbsd32__ksem_unlink */
+	    (sy_call_t *)netbsd32__ksem_unlink, 0, 0 },/* 249 = netbsd32__ksem_unlink */
 	{ ns(struct netbsd32__ksem_close_args), 0,
-	    (sy_call_t *)netbsd32__ksem_close },/* 250 = netbsd32__ksem_close */
+	    (sy_call_t *)netbsd32__ksem_close, 0, 0 },/* 250 = netbsd32__ksem_close */
 	{ ns(struct netbsd32__ksem_post_args), 0,
-	    (sy_call_t *)netbsd32__ksem_post },	/* 251 = netbsd32__ksem_post */
+	    (sy_call_t *)netbsd32__ksem_post, 0, 0 },	/* 251 = netbsd32__ksem_post */
 	{ ns(struct netbsd32__ksem_wait_args), 0,
-	    (sy_call_t *)netbsd32__ksem_wait },	/* 252 = netbsd32__ksem_wait */
+	    (sy_call_t *)netbsd32__ksem_wait, 0, 0 },	/* 252 = netbsd32__ksem_wait */
 	{ ns(struct netbsd32__ksem_trywait_args), 0,
-	    (sy_call_t *)netbsd32__ksem_trywait },/* 253 = netbsd32__ksem_trywait */
+	    (sy_call_t *)netbsd32__ksem_trywait, 0, 0 },/* 253 = netbsd32__ksem_trywait */
 	{ ns(struct netbsd32__ksem_getvalue_args), 0,
-	    (sy_call_t *)netbsd32__ksem_getvalue },/* 254 = netbsd32__ksem_getvalue */
+	    (sy_call_t *)netbsd32__ksem_getvalue, 0, 0 },/* 254 = netbsd32__ksem_getvalue */
 	{ ns(struct netbsd32__ksem_destroy_args), 0,
-	    (sy_call_t *)netbsd32__ksem_destroy },/* 255 = netbsd32__ksem_destroy */
+	    (sy_call_t *)netbsd32__ksem_destroy, 0, 0 },/* 255 = netbsd32__ksem_destroy */
 	{ ns(struct netbsd32__ksem_timedwait_args), 0,
-	    (sy_call_t *)netbsd32__ksem_timedwait },/* 256 = netbsd32__ksem_timedwait */
+	    (sy_call_t *)netbsd32__ksem_timedwait, 0, 0 },/* 256 = netbsd32__ksem_timedwait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 257 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 257 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 258 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 258 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 259 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 259 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 260 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 260 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 261 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 261 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 262 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 262 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 263 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 263 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 264 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 264 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 265 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 265 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 266 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 266 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 267 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 267 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 268 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 268 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 269 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 269 = unimplemented */
 	{ ns(struct netbsd32___posix_rename_args), 0,
-	    (sy_call_t *)netbsd32___posix_rename },/* 270 = netbsd32___posix_rename */
+	    (sy_call_t *)netbsd32___posix_rename, 0, 0 },/* 270 = netbsd32___posix_rename */
 	{ ns(struct netbsd32_swapctl_args), 0,
-	    (sy_call_t *)netbsd32_swapctl },	/* 271 = netbsd32_swapctl */
+	    (sy_call_t *)netbsd32_swapctl, 0, 0 },	/* 271 = netbsd32_swapctl */
 	{ ns(struct compat_30_netbsd32_getdents_args), 0,
-	    (sy_call_t *)compat_30(netbsd32_getdents) },/* 272 = compat_30_netbsd32_getdents */
+	    (sy_call_t *)compat_30(netbsd32_getdents), 0, 0 },/* 272 = compat_30_netbsd32_getdents */
 	{ ns(struct netbsd32_minherit_args), 0,
-	    (sy_call_t *)netbsd32_minherit },	/* 273 = netbsd32_minherit */
+	    (sy_call_t *)netbsd32_minherit, 0, 0 },	/* 273 = netbsd32_minherit */
 	{ ns(struct netbsd32_lchmod_args), 0,
-	    (sy_call_t *)netbsd32_lchmod },	/* 274 = netbsd32_lchmod */
+	    (sy_call_t *)netbsd32_lchmod, 0, 0 },	/* 274 = netbsd32_lchmod */
 	{ ns(struct netbsd32_lchown_args), 0,
-	    (sy_call_t *)netbsd32_lchown },	/* 275 = netbsd32_lchown */
+	    (sy_call_t *)netbsd32_lchown, 0, 0 },	/* 275 = netbsd32_lchown */
 	{ ns(struct compat_50_netbsd32_lutimes_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_lutimes) },/* 276 = compat_50_netbsd32_lutimes */
+	    (sy_call_t *)compat_50(netbsd32_lutimes), 0, 0 },/* 276 = compat_50_netbsd32_lutimes */
 	{ ns(struct netbsd32___msync13_args), 0,
-	    (sy_call_t *)netbsd32___msync13 },	/* 277 = netbsd32___msync13 */
+	    (sy_call_t *)netbsd32___msync13, 0, 0 },	/* 277 = netbsd32___msync13 */
 	{ ns(struct compat_30_netbsd32___stat13_args), 0,
-	    (sy_call_t *)compat_30(netbsd32___stat13) },/* 278 = compat_30_netbsd32___stat13 */
+	    (sy_call_t *)compat_30(netbsd32___stat13), 0, 0 },/* 278 = compat_30_netbsd32___stat13 */
 	{ ns(struct compat_30_netbsd32___fstat13_args), 0,
-	    (sy_call_t *)compat_30(netbsd32___fstat13) },/* 279 = compat_30_netbsd32___fstat13 */
+	    (sy_call_t *)compat_30(netbsd32___fstat13), 0, 0 },/* 279 = compat_30_netbsd32___fstat13 */
 	{ ns(struct compat_30_netbsd32___lstat13_args), 0,
-	    (sy_call_t *)compat_30(netbsd32___lstat13) },/* 280 = compat_30_netbsd32___lstat13 */
+	    (sy_call_t *)compat_30(netbsd32___lstat13), 0, 0 },/* 280 = compat_30_netbsd32___lstat13 */
 	{ ns(struct netbsd32___sigaltstack14_args), 0,
-	    (sy_call_t *)netbsd32___sigaltstack14 },/* 281 = netbsd32___sigaltstack14 */
+	    (sy_call_t *)netbsd32___sigaltstack14, 0, 0 },/* 281 = netbsd32___sigaltstack14 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys___vfork14 },	/* 282 = __vfork14 */
+	    (sy_call_t *)sys___vfork14, 0, 0 },	/* 282 = __vfork14 */
 	{ ns(struct netbsd32___posix_chown_args), 0,
-	    (sy_call_t *)netbsd32___posix_chown },/* 283 = netbsd32___posix_chown */
+	    (sy_call_t *)netbsd32___posix_chown, 0, 0 },/* 283 = netbsd32___posix_chown */
 	{ ns(struct netbsd32___posix_fchown_args), 0,
-	    (sy_call_t *)netbsd32___posix_fchown },/* 284 = netbsd32___posix_fchown */
+	    (sy_call_t *)netbsd32___posix_fchown, 0, 0 },/* 284 = netbsd32___posix_fchown */
 	{ ns(struct netbsd32___posix_lchown_args), 0,
-	    (sy_call_t *)netbsd32___posix_lchown },/* 285 = netbsd32___posix_lchown */
+	    (sy_call_t *)netbsd32___posix_lchown, 0, 0 },/* 285 = netbsd32___posix_lchown */
 	{ ns(struct netbsd32_getsid_args), 0,
-	    (sy_call_t *)netbsd32_getsid },	/* 286 = netbsd32_getsid */
+	    (sy_call_t *)netbsd32_getsid, 0, 0 },	/* 286 = netbsd32_getsid */
 	{ ns(struct netbsd32___clone_args), 0,
-	    (sy_call_t *)netbsd32___clone },	/* 287 = netbsd32___clone */
+	    (sy_call_t *)netbsd32___clone, 0, 0 },	/* 287 = netbsd32___clone */
 	{ ns(struct netbsd32_fktrace_args), 0,
-	    (sy_call_t *)netbsd32_fktrace },	/* 288 = netbsd32_fktrace */
+	    (sy_call_t *)netbsd32_fktrace, 0, 0 },	/* 288 = netbsd32_fktrace */
 	{ ns(struct netbsd32_preadv_args), 0,
-	    (sy_call_t *)netbsd32_preadv },	/* 289 = netbsd32_preadv */
+	    (sy_call_t *)netbsd32_preadv, 0, 0 },	/* 289 = netbsd32_preadv */
 	{ ns(struct netbsd32_pwritev_args), 0,
-	    (sy_call_t *)netbsd32_pwritev },	/* 290 = netbsd32_pwritev */
+	    (sy_call_t *)netbsd32_pwritev, 0, 0 },	/* 290 = netbsd32_pwritev */
 	{ ns(struct netbsd32___sigaction14_args), 0,
-	    (sy_call_t *)netbsd32___sigaction14 },/* 291 = netbsd32___sigaction14 */
+	    (sy_call_t *)netbsd32___sigaction14, 0, 0 },/* 291 = netbsd32___sigaction14 */
 	{ ns(struct netbsd32___sigpending14_args), 0,
-	    (sy_call_t *)netbsd32___sigpending14 },/* 292 = netbsd32___sigpending14 */
+	    (sy_call_t *)netbsd32___sigpending14, 0, 0 },/* 292 = netbsd32___sigpending14 */
 	{ ns(struct netbsd32___sigprocmask14_args), 0,
-	    (sy_call_t *)netbsd32___sigprocmask14 },/* 293 = netbsd32___sigprocmask14 */
+	    (sy_call_t *)netbsd32___sigprocmask14, 0, 0 },/* 293 = netbsd32___sigprocmask14 */
 	{ ns(struct netbsd32___sigsuspend14_args), 0,
-	    (sy_call_t *)netbsd32___sigsuspend14 },/* 294 = netbsd32___sigsuspend14 */
+	    (sy_call_t *)netbsd32___sigsuspend14, 0, 0 },/* 294 = netbsd32___sigsuspend14 */
 	{ ns(struct compat_16_netbsd32___sigreturn14_args), 0,
-	    (sy_call_t *)compat_16(netbsd32___sigreturn14) },/* 295 = compat_16_netbsd32___sigreturn14 */
+	    (sy_call_t *)compat_16(netbsd32___sigreturn14), 0, 0 },/* 295 = compat_16_netbsd32___sigreturn14 */
 	{ ns(struct netbsd32___getcwd_args), 0,
-	    (sy_call_t *)netbsd32___getcwd },	/* 296 = netbsd32___getcwd */
+	    (sy_call_t *)netbsd32___getcwd, 0, 0 },	/* 296 = netbsd32___getcwd */
 	{ ns(struct netbsd32_fchroot_args), 0,
-	    (sy_call_t *)netbsd32_fchroot },	/* 297 = netbsd32_fchroot */
+	    (sy_call_t *)netbsd32_fchroot, 0, 0 },	/* 297 = netbsd32_fchroot */
 	{ ns(struct compat_30_netbsd32_fhopen_args), 0,
-	    (sy_call_t *)compat_30(netbsd32_fhopen) },/* 298 = compat_30_netbsd32_fhopen */
+	    (sy_call_t *)compat_30(netbsd32_fhopen), 0, 0 },/* 298 = compat_30_netbsd32_fhopen */
 	{ ns(struct compat_30_netbsd32_fhstat_args), 0,
-	    (sy_call_t *)compat_30(netbsd32_fhstat) },/* 299 = compat_30_netbsd32_fhstat */
+	    (sy_call_t *)compat_30(netbsd32_fhstat), 0, 0 },/* 299 = compat_30_netbsd32_fhstat */
 	{ ns(struct compat_20_netbsd32_fhstatfs_args), 0,
-	    (sy_call_t *)compat_20(netbsd32_fhstatfs) },/* 300 = compat_20_netbsd32_fhstatfs */
+	    (sy_call_t *)compat_20(netbsd32_fhstatfs), 0, 0 },/* 300 = compat_20_netbsd32_fhstatfs */
 #if defined(SYSVSEM) || !defined(_KERNEL_OPT)
 	{ ns(struct compat_50_netbsd32___semctl14_args), 0,
-	    (sy_call_t *)compat_50(netbsd32___semctl14) },/* 301 = compat_50_netbsd32___semctl14 */
+	    (sy_call_t *)compat_50(netbsd32___semctl14), 0, 0 },/* 301 = compat_50_netbsd32___semctl14 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 301 = excluded __semctl14 */
+	    sys_nosys, 0, 0 },			/* 301 = excluded __semctl14 */
 #endif
 #if defined(SYSVMSG) || !defined(_KERNEL_OPT)
 	{ ns(struct compat_50_netbsd32___msgctl13_args), 0,
-	    (sy_call_t *)compat_50(netbsd32___msgctl13) },/* 302 = compat_50_netbsd32___msgctl13 */
+	    (sy_call_t *)compat_50(netbsd32___msgctl13), 0, 0 },/* 302 = compat_50_netbsd32___msgctl13 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 302 = excluded __msgctl13 */
+	    sys_nosys, 0, 0 },			/* 302 = excluded __msgctl13 */
 #endif
 #if defined(SYSVSHM) || !defined(_KERNEL_OPT)
 	{ ns(struct compat_50_netbsd32___shmctl13_args), 0,
-	    (sy_call_t *)compat_50(netbsd32___shmctl13) },/* 303 = compat_50_netbsd32___shmctl13 */
+	    (sy_call_t *)compat_50(netbsd32___shmctl13), 0, 0 },/* 303 = compat_50_netbsd32___shmctl13 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 303 = excluded __shmctl13 */
+	    sys_nosys, 0, 0 },			/* 303 = excluded __shmctl13 */
 #endif
 	{ ns(struct netbsd32_lchflags_args), 0,
-	    (sy_call_t *)netbsd32_lchflags },	/* 304 = netbsd32_lchflags */
+	    (sy_call_t *)netbsd32_lchflags, 0, 0 },	/* 304 = netbsd32_lchflags */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_issetugid },	/* 305 = issetugid */
+	    (sy_call_t *)sys_issetugid, 0, 0 },	/* 305 = issetugid */
 	{ ns(struct netbsd32_utrace_args), 0,
-	    (sy_call_t *)netbsd32_utrace },	/* 306 = netbsd32_utrace */
+	    (sy_call_t *)netbsd32_utrace, 0, 0 },	/* 306 = netbsd32_utrace */
 	{ ns(struct netbsd32_getcontext_args), 0,
-	    (sy_call_t *)netbsd32_getcontext },	/* 307 = netbsd32_getcontext */
+	    (sy_call_t *)netbsd32_getcontext, 0, 0 },	/* 307 = netbsd32_getcontext */
 	{ ns(struct netbsd32_setcontext_args), 0,
-	    (sy_call_t *)netbsd32_setcontext },	/* 308 = netbsd32_setcontext */
+	    (sy_call_t *)netbsd32_setcontext, 0, 0 },	/* 308 = netbsd32_setcontext */
 	{ ns(struct netbsd32__lwp_create_args), 0,
-	    (sy_call_t *)netbsd32__lwp_create },/* 309 = netbsd32__lwp_create */
+	    (sy_call_t *)netbsd32__lwp_create, 0, 0 },/* 309 = netbsd32__lwp_create */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys__lwp_exit },	/* 310 = _lwp_exit */
+	    (sy_call_t *)sys__lwp_exit, 0, 0 },	/* 310 = _lwp_exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys__lwp_self },	/* 311 = _lwp_self */
+	    (sy_call_t *)sys__lwp_self, 0, 0 },	/* 311 = _lwp_self */
 	{ ns(struct netbsd32__lwp_wait_args), 0,
-	    (sy_call_t *)netbsd32__lwp_wait },	/* 312 = netbsd32__lwp_wait */
+	    (sy_call_t *)netbsd32__lwp_wait, 0, 0 },	/* 312 = netbsd32__lwp_wait */
 	{ ns(struct netbsd32__lwp_suspend_args), 0,
-	    (sy_call_t *)netbsd32__lwp_suspend },/* 313 = netbsd32__lwp_suspend */
+	    (sy_call_t *)netbsd32__lwp_suspend, 0, 0 },/* 313 = netbsd32__lwp_suspend */
 	{ ns(struct netbsd32__lwp_continue_args), 0,
-	    (sy_call_t *)netbsd32__lwp_continue },/* 314 = netbsd32__lwp_continue */
+	    (sy_call_t *)netbsd32__lwp_continue, 0, 0 },/* 314 = netbsd32__lwp_continue */
 	{ ns(struct netbsd32__lwp_wakeup_args), 0,
-	    (sy_call_t *)netbsd32__lwp_wakeup },/* 315 = netbsd32__lwp_wakeup */
+	    (sy_call_t *)netbsd32__lwp_wakeup, 0, 0 },/* 315 = netbsd32__lwp_wakeup */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys__lwp_getprivate },	/* 316 = _lwp_getprivate */
+	    (sy_call_t *)sys__lwp_getprivate, 0, 0 },	/* 316 = _lwp_getprivate */
 	{ ns(struct netbsd32__lwp_setprivate_args), 0,
-	    (sy_call_t *)netbsd32__lwp_setprivate },/* 317 = netbsd32__lwp_setprivate */
+	    (sy_call_t *)netbsd32__lwp_setprivate, 0, 0 },/* 317 = netbsd32__lwp_setprivate */
 	{ ns(struct netbsd32__lwp_kill_args), 0,
-	    (sy_call_t *)netbsd32__lwp_kill },	/* 318 = netbsd32__lwp_kill */
+	    (sy_call_t *)netbsd32__lwp_kill, 0, 0 },	/* 318 = netbsd32__lwp_kill */
 	{ ns(struct netbsd32__lwp_detach_args), 0,
-	    (sy_call_t *)netbsd32__lwp_detach },/* 319 = netbsd32__lwp_detach */
+	    (sy_call_t *)netbsd32__lwp_detach, 0, 0 },/* 319 = netbsd32__lwp_detach */
 	{ ns(struct compat_50_netbsd32__lwp_park_args), 0,
-	    (sy_call_t *)compat_50(netbsd32__lwp_park) },/* 320 = compat_50_netbsd32__lwp_park */
+	    (sy_call_t *)compat_50(netbsd32__lwp_park), 0, 0 },/* 320 = compat_50_netbsd32__lwp_park */
 	{ ns(struct netbsd32__lwp_unpark_args), 0,
-	    (sy_call_t *)netbsd32__lwp_unpark },/* 321 = netbsd32__lwp_unpark */
+	    (sy_call_t *)netbsd32__lwp_unpark, 0, 0 },/* 321 = netbsd32__lwp_unpark */
 	{ ns(struct netbsd32__lwp_unpark_all_args), 0,
-	    (sy_call_t *)netbsd32__lwp_unpark_all },/* 322 = netbsd32__lwp_unpark_all */
+	    (sy_call_t *)netbsd32__lwp_unpark_all, 0, 0 },/* 322 = netbsd32__lwp_unpark_all */
 	{ ns(struct netbsd32__lwp_setname_args), 0,
-	    (sy_call_t *)netbsd32__lwp_setname },/* 323 = netbsd32__lwp_setname */
+	    (sy_call_t *)netbsd32__lwp_setname, 0, 0 },/* 323 = netbsd32__lwp_setname */
 	{ ns(struct netbsd32__lwp_getname_args), 0,
-	    (sy_call_t *)netbsd32__lwp_getname },/* 324 = netbsd32__lwp_getname */
+	    (sy_call_t *)netbsd32__lwp_getname, 0, 0 },/* 324 = netbsd32__lwp_getname */
 	{ ns(struct netbsd32__lwp_ctl_args), 0,
-	    (sy_call_t *)netbsd32__lwp_ctl },	/* 325 = netbsd32__lwp_ctl */
+	    (sy_call_t *)netbsd32__lwp_ctl, 0, 0 },	/* 325 = netbsd32__lwp_ctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 326 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 326 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 327 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 327 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 328 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 328 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 329 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 329 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 330 = obsolete netbsd32_sa_register */
+	    sys_nosys, 0, 0 },			/* 330 = obsolete netbsd32_sa_register */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 331 = obsolete netbsd32_sa_stacks */
+	    sys_nosys, 0, 0 },			/* 331 = obsolete netbsd32_sa_stacks */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 332 = obsolete sa_enable */
+	    sys_nosys, 0, 0 },			/* 332 = obsolete sa_enable */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 333 = obsolete netbsd32_sa_setconcurrency */
+	    sys_nosys, 0, 0 },			/* 333 = obsolete netbsd32_sa_setconcurrency */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 334 = obsolete sa_yield */
+	    sys_nosys, 0, 0 },			/* 334 = obsolete sa_yield */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 335 = obsolete netbsd32_sa_preempt */
+	    sys_nosys, 0, 0 },			/* 335 = obsolete netbsd32_sa_preempt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 336 = obsolete sys_sa_unblockyield */
+	    sys_nosys, 0, 0 },			/* 336 = obsolete sys_sa_unblockyield */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 337 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 337 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 338 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 338 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 339 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 339 = unimplemented */
 	{ ns(struct netbsd32___sigaction_sigtramp_args), 0,
-	    (sy_call_t *)netbsd32___sigaction_sigtramp },/* 340 = netbsd32___sigaction_sigtramp */
+	    (sy_call_t *)netbsd32___sigaction_sigtramp, 0, 0 },/* 340 = netbsd32___sigaction_sigtramp */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 341 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 341 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 342 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 342 = unimplemented */
 	{ ns(struct netbsd32_rasctl_args), 0,
-	    (sy_call_t *)netbsd32_rasctl },	/* 343 = netbsd32_rasctl */
+	    (sy_call_t *)netbsd32_rasctl, 0, 0 },	/* 343 = netbsd32_rasctl */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_kqueue },		/* 344 = kqueue */
+	    (sy_call_t *)sys_kqueue, 0, 0 },		/* 344 = kqueue */
 	{ ns(struct compat_50_netbsd32_kevent_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_kevent) },/* 345 = compat_50_netbsd32_kevent */
+	    (sy_call_t *)compat_50(netbsd32_kevent), 0, 0 },/* 345 = compat_50_netbsd32_kevent */
 	{ ns(struct netbsd32__sched_setparam_args), 0,
-	    (sy_call_t *)netbsd32__sched_setparam },/* 346 = netbsd32__sched_setparam */
+	    (sy_call_t *)netbsd32__sched_setparam, 0, 0 },/* 346 = netbsd32__sched_setparam */
 	{ ns(struct netbsd32__sched_getparam_args), 0,
-	    (sy_call_t *)netbsd32__sched_getparam },/* 347 = netbsd32__sched_getparam */
+	    (sy_call_t *)netbsd32__sched_getparam, 0, 0 },/* 347 = netbsd32__sched_getparam */
 	{ ns(struct netbsd32__sched_setaffinity_args), 0,
-	    (sy_call_t *)netbsd32__sched_setaffinity },/* 348 = netbsd32__sched_setaffinity */
+	    (sy_call_t *)netbsd32__sched_setaffinity, 0, 0 },/* 348 = netbsd32__sched_setaffinity */
 	{ ns(struct netbsd32__sched_getaffinity_args), 0,
-	    (sy_call_t *)netbsd32__sched_getaffinity },/* 349 = netbsd32__sched_getaffinity */
+	    (sy_call_t *)netbsd32__sched_getaffinity, 0, 0 },/* 349 = netbsd32__sched_getaffinity */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sched_yield },	/* 350 = sched_yield */
+	    (sy_call_t *)sys_sched_yield, 0, 0 },	/* 350 = sched_yield */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 351 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 351 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 352 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 352 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 353 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 353 = unimplemented */
 	{ ns(struct netbsd32_fsync_range_args), 0,
-	    (sy_call_t *)netbsd32_fsync_range },/* 354 = netbsd32_fsync_range */
+	    (sy_call_t *)netbsd32_fsync_range, 0, 0 },/* 354 = netbsd32_fsync_range */
 	{ ns(struct netbsd32_uuidgen_args), 0,
-	    (sy_call_t *)netbsd32_uuidgen },	/* 355 = netbsd32_uuidgen */
+	    (sy_call_t *)netbsd32_uuidgen, 0, 0 },	/* 355 = netbsd32_uuidgen */
 	{ ns(struct netbsd32_getvfsstat_args), 0,
-	    (sy_call_t *)netbsd32_getvfsstat },	/* 356 = netbsd32_getvfsstat */
+	    (sy_call_t *)netbsd32_getvfsstat, 0, 0 },	/* 356 = netbsd32_getvfsstat */
 	{ ns(struct netbsd32_statvfs1_args), 0,
-	    (sy_call_t *)netbsd32_statvfs1 },	/* 357 = netbsd32_statvfs1 */
+	    (sy_call_t *)netbsd32_statvfs1, 0, 0 },	/* 357 = netbsd32_statvfs1 */
 	{ ns(struct netbsd32_fstatvfs1_args), 0,
-	    (sy_call_t *)netbsd32_fstatvfs1 },	/* 358 = netbsd32_fstatvfs1 */
+	    (sy_call_t *)netbsd32_fstatvfs1, 0, 0 },	/* 358 = netbsd32_fstatvfs1 */
 	{ ns(struct compat_30_netbsd32_fhstatvfs1_args), 0,
-	    (sy_call_t *)compat_30(netbsd32_fhstatvfs1) },/* 359 = compat_30_netbsd32_fhstatvfs1 */
+	    (sy_call_t *)compat_30(netbsd32_fhstatvfs1), 0, 0 },/* 359 = compat_30_netbsd32_fhstatvfs1 */
 	{ ns(struct netbsd32_extattrctl_args), 0,
-	    (sy_call_t *)netbsd32_extattrctl },	/* 360 = netbsd32_extattrctl */
+	    (sy_call_t *)netbsd32_extattrctl, 0, 0 },	/* 360 = netbsd32_extattrctl */
 	{ ns(struct netbsd32_extattr_set_file_args), 0,
-	    (sy_call_t *)netbsd32_extattr_set_file },/* 361 = netbsd32_extattr_set_file */
+	    (sy_call_t *)netbsd32_extattr_set_file, 0, 0 },/* 361 = netbsd32_extattr_set_file */
 	{ ns(struct netbsd32_extattr_get_file_args), 0,
-	    (sy_call_t *)netbsd32_extattr_get_file },/* 362 = netbsd32_extattr_get_file */
+	    (sy_call_t *)netbsd32_extattr_get_file, 0, 0 },/* 362 = netbsd32_extattr_get_file */
 	{ ns(struct netbsd32_extattr_delete_file_args), 0,
-	    (sy_call_t *)netbsd32_extattr_delete_file },/* 363 = netbsd32_extattr_delete_file */
+	    (sy_call_t *)netbsd32_extattr_delete_file, 0, 0 },/* 363 = netbsd32_extattr_delete_file */
 	{ ns(struct netbsd32_extattr_set_fd_args), 0,
-	    (sy_call_t *)netbsd32_extattr_set_fd },/* 364 = netbsd32_extattr_set_fd */
+	    (sy_call_t *)netbsd32_extattr_set_fd, 0, 0 },/* 364 = netbsd32_extattr_set_fd */
 	{ ns(struct netbsd32_extattr_get_fd_args), 0,
-	    (sy_call_t *)netbsd32_extattr_get_fd },/* 365 = netbsd32_extattr_get_fd */
+	    (sy_call_t *)netbsd32_extattr_get_fd, 0, 0 },/* 365 = netbsd32_extattr_get_fd */
 	{ ns(struct netbsd32_extattr_delete_fd_args), 0,
-	    (sy_call_t *)netbsd32_extattr_delete_fd },/* 366 = netbsd32_extattr_delete_fd */
+	    (sy_call_t *)netbsd32_extattr_delete_fd, 0, 0 },/* 366 = netbsd32_extattr_delete_fd */
 	{ ns(struct netbsd32_extattr_set_link_args), 0,
-	    (sy_call_t *)netbsd32_extattr_set_link },/* 367 = netbsd32_extattr_set_link */
+	    (sy_call_t *)netbsd32_extattr_set_link, 0, 0 },/* 367 = netbsd32_extattr_set_link */
 	{ ns(struct netbsd32_extattr_get_link_args), 0,
-	    (sy_call_t *)netbsd32_extattr_get_link },/* 368 = netbsd32_extattr_get_link */
+	    (sy_call_t *)netbsd32_extattr_get_link, 0, 0 },/* 368 = netbsd32_extattr_get_link */
 	{ ns(struct netbsd32_extattr_delete_link_args), 0,
-	    (sy_call_t *)netbsd32_extattr_delete_link },/* 369 = netbsd32_extattr_delete_link */
+	    (sy_call_t *)netbsd32_extattr_delete_link, 0, 0 },/* 369 = netbsd32_extattr_delete_link */
 	{ ns(struct netbsd32_extattr_list_fd_args), 0,
-	    (sy_call_t *)netbsd32_extattr_list_fd },/* 370 = netbsd32_extattr_list_fd */
+	    (sy_call_t *)netbsd32_extattr_list_fd, 0, 0 },/* 370 = netbsd32_extattr_list_fd */
 	{ ns(struct netbsd32_extattr_list_file_args), 0,
-	    (sy_call_t *)netbsd32_extattr_list_file },/* 371 = netbsd32_extattr_list_file */
+	    (sy_call_t *)netbsd32_extattr_list_file, 0, 0 },/* 371 = netbsd32_extattr_list_file */
 	{ ns(struct netbsd32_extattr_list_link_args), 0,
-	    (sy_call_t *)netbsd32_extattr_list_link },/* 372 = netbsd32_extattr_list_link */
+	    (sy_call_t *)netbsd32_extattr_list_link, 0, 0 },/* 372 = netbsd32_extattr_list_link */
 	{ ns(struct compat_50_netbsd32_pselect_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_pselect) },/* 373 = compat_50_netbsd32_pselect */
+	    (sy_call_t *)compat_50(netbsd32_pselect), 0, 0 },/* 373 = compat_50_netbsd32_pselect */
 	{ ns(struct compat_50_netbsd32_pollts_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_pollts) },/* 374 = compat_50_netbsd32_pollts */
+	    (sy_call_t *)compat_50(netbsd32_pollts), 0, 0 },/* 374 = compat_50_netbsd32_pollts */
 	{ ns(struct netbsd32_setxattr_args), 0,
-	    (sy_call_t *)netbsd32_setxattr },	/* 375 = netbsd32_setxattr */
+	    (sy_call_t *)netbsd32_setxattr, 0, 0 },	/* 375 = netbsd32_setxattr */
 	{ ns(struct netbsd32_lsetxattr_args), 0,
-	    (sy_call_t *)netbsd32_lsetxattr },	/* 376 = netbsd32_lsetxattr */
+	    (sy_call_t *)netbsd32_lsetxattr, 0, 0 },	/* 376 = netbsd32_lsetxattr */
 	{ ns(struct netbsd32_fsetxattr_args), 0,
-	    (sy_call_t *)netbsd32_fsetxattr },	/* 377 = netbsd32_fsetxattr */
+	    (sy_call_t *)netbsd32_fsetxattr, 0, 0 },	/* 377 = netbsd32_fsetxattr */
 	{ ns(struct netbsd32_getxattr_args), 0,
-	    (sy_call_t *)netbsd32_getxattr },	/* 378 = netbsd32_getxattr */
+	    (sy_call_t *)netbsd32_getxattr, 0, 0 },	/* 378 = netbsd32_getxattr */
 	{ ns(struct netbsd32_lgetxattr_args), 0,
-	    (sy_call_t *)netbsd32_lgetxattr },	/* 379 = netbsd32_lgetxattr */
+	    (sy_call_t *)netbsd32_lgetxattr, 0, 0 },	/* 379 = netbsd32_lgetxattr */
 	{ ns(struct netbsd32_fgetxattr_args), 0,
-	    (sy_call_t *)netbsd32_fgetxattr },	/* 380 = netbsd32_fgetxattr */
+	    (sy_call_t *)netbsd32_fgetxattr, 0, 0 },	/* 380 = netbsd32_fgetxattr */
 	{ ns(struct netbsd32_listxattr_args), 0,
-	    (sy_call_t *)netbsd32_listxattr },	/* 381 = netbsd32_listxattr */
+	    (sy_call_t *)netbsd32_listxattr, 0, 0 },	/* 381 = netbsd32_listxattr */
 	{ ns(struct netbsd32_llistxattr_args), 0,
-	    (sy_call_t *)netbsd32_llistxattr },	/* 382 = netbsd32_llistxattr */
+	    (sy_call_t *)netbsd32_llistxattr, 0, 0 },	/* 382 = netbsd32_llistxattr */
 	{ ns(struct netbsd32_flistxattr_args), 0,
-	    (sy_call_t *)netbsd32_flistxattr },	/* 383 = netbsd32_flistxattr */
+	    (sy_call_t *)netbsd32_flistxattr, 0, 0 },	/* 383 = netbsd32_flistxattr */
 	{ ns(struct netbsd32_removexattr_args), 0,
-	    (sy_call_t *)netbsd32_removexattr },/* 384 = netbsd32_removexattr */
+	    (sy_call_t *)netbsd32_removexattr, 0, 0 },/* 384 = netbsd32_removexattr */
 	{ ns(struct netbsd32_lremovexattr_args), 0,
-	    (sy_call_t *)netbsd32_lremovexattr },/* 385 = netbsd32_lremovexattr */
+	    (sy_call_t *)netbsd32_lremovexattr, 0, 0 },/* 385 = netbsd32_lremovexattr */
 	{ ns(struct netbsd32_fremovexattr_args), 0,
-	    (sy_call_t *)netbsd32_fremovexattr },/* 386 = netbsd32_fremovexattr */
+	    (sy_call_t *)netbsd32_fremovexattr, 0, 0 },/* 386 = netbsd32_fremovexattr */
 	{ ns(struct compat_50_netbsd32___stat30_args), 0,
-	    (sy_call_t *)compat_50(netbsd32___stat30) },/* 387 = compat_50_netbsd32___stat30 */
+	    (sy_call_t *)compat_50(netbsd32___stat30), 0, 0 },/* 387 = compat_50_netbsd32___stat30 */
 	{ ns(struct compat_50_netbsd32___fstat30_args), 0,
-	    (sy_call_t *)compat_50(netbsd32___fstat30) },/* 388 = compat_50_netbsd32___fstat30 */
+	    (sy_call_t *)compat_50(netbsd32___fstat30), 0, 0 },/* 388 = compat_50_netbsd32___fstat30 */
 	{ ns(struct compat_50_netbsd32___lstat30_args), 0,
-	    (sy_call_t *)compat_50(netbsd32___lstat30) },/* 389 = compat_50_netbsd32___lstat30 */
+	    (sy_call_t *)compat_50(netbsd32___lstat30), 0, 0 },/* 389 = compat_50_netbsd32___lstat30 */
 	{ ns(struct netbsd32___getdents30_args), 0,
-	    (sy_call_t *)netbsd32___getdents30 },/* 390 = netbsd32___getdents30 */
+	    (sy_call_t *)netbsd32___getdents30, 0, 0 },/* 390 = netbsd32___getdents30 */
 	{ 0, 0, 0,
-	    (sy_call_t *)nullop },			/* 391 = ignored old posix fadvise */
+	    (sy_call_t *)nullop, 0, 0 },			/* 391 = ignored old posix fadvise */
 	{ ns(struct compat_30_netbsd32___fhstat30_args), 0,
-	    (sy_call_t *)compat_30(netbsd32___fhstat30) },/* 392 = compat_30_netbsd32___fhstat30 */
+	    (sy_call_t *)compat_30(netbsd32___fhstat30), 0, 0 },/* 392 = compat_30_netbsd32___fhstat30 */
 #if defined(NTP) || !defined(_KERNEL_OPT)
 	{ ns(struct compat_50_netbsd32_ntp_gettime_args), 0,
-	    (sy_call_t *)compat_50(netbsd32_ntp_gettime) },/* 393 = compat_50_netbsd32_ntp_gettime */
+	    (sy_call_t *)compat_50(netbsd32_ntp_gettime), 0, 0 },/* 393 = compat_50_netbsd32_ntp_gettime */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 393 = excluded __ntp_gettime30 */
+	    sys_nosys, 0, 0 },			/* 393 = excluded __ntp_gettime30 */
 #endif
 	{ ns(struct netbsd32___socket30_args), 0,
-	    (sy_call_t *)netbsd32___socket30 },	/* 394 = netbsd32___socket30 */
+	    (sy_call_t *)netbsd32___socket30, 0, 0 },	/* 394 = netbsd32___socket30 */
 	{ ns(struct netbsd32___getfh30_args), 0,
-	    (sy_call_t *)netbsd32___getfh30 },	/* 395 = netbsd32___getfh30 */
+	    (sy_call_t *)netbsd32___getfh30, 0, 0 },	/* 395 = netbsd32___getfh30 */
 	{ ns(struct netbsd32___fhopen40_args), 0,
-	    (sy_call_t *)netbsd32___fhopen40 },	/* 396 = netbsd32___fhopen40 */
+	    (sy_call_t *)netbsd32___fhopen40, 0, 0 },	/* 396 = netbsd32___fhopen40 */
 	{ ns(struct netbsd32___fhstatvfs140_args), 0,
-	    (sy_call_t *)netbsd32___fhstatvfs140 },/* 397 = netbsd32___fhstatvfs140 */
+	    (sy_call_t *)netbsd32___fhstatvfs140, 0, 0 },/* 397 = netbsd32___fhstatvfs140 */
 	{ ns(struct compat_50_netbsd32___fhstat40_args), 0,
-	    (sy_call_t *)compat_50(netbsd32___fhstat40) },/* 398 = compat_50_netbsd32___fhstat40 */
+	    (sy_call_t *)compat_50(netbsd32___fhstat40), 0, 0 },/* 398 = compat_50_netbsd32___fhstat40 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 399 = unimplemented sys_aio_cancel */
+	    sys_nosys, 0, 0 },			/* 399 = unimplemented sys_aio_cancel */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 400 = unimplemented sys_aio_error */
+	    sys_nosys, 0, 0 },			/* 400 = unimplemented sys_aio_error */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 401 = unimplemented sys_aio_fsync */
+	    sys_nosys, 0, 0 },			/* 401 = unimplemented sys_aio_fsync */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 402 = unimplemented sys_aio_read */
+	    sys_nosys, 0, 0 },			/* 402 = unimplemented sys_aio_read */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 403 = unimplemented sys_aio_return */
+	    sys_nosys, 0, 0 },			/* 403 = unimplemented sys_aio_return */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 404 = unimplemented sys_aio_suspend */
+	    sys_nosys, 0, 0 },			/* 404 = unimplemented sys_aio_suspend */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 405 = unimplemented sys_aio_write */
+	    sys_nosys, 0, 0 },			/* 405 = unimplemented sys_aio_write */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 406 = unimplemented sys_lio_listio */
+	    sys_nosys, 0, 0 },			/* 406 = unimplemented sys_lio_listio */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 407 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 407 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 408 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 408 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 409 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 409 = unimplemented */
 	{ ns(struct netbsd32___mount50_args), 0,
-	    (sy_call_t *)netbsd32___mount50 },	/* 410 = netbsd32___mount50 */
+	    (sy_call_t *)netbsd32___mount50, 0, 0 },	/* 410 = netbsd32___mount50 */
 	{ ns(struct netbsd32_mremap_args), 0,
-	    (sy_call_t *)netbsd32_mremap },	/* 411 = netbsd32_mremap */
+	    (sy_call_t *)netbsd32_mremap, 0, 0 },	/* 411 = netbsd32_mremap */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 412 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 412 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 413 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 413 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 414 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 414 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 415 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 415 = unimplemented */
 	{ ns(struct netbsd32___posix_fadvise50_args), 0,
-	    (sy_call_t *)netbsd32___posix_fadvise50 },/* 416 = netbsd32___posix_fadvise50 */
+	    (sy_call_t *)netbsd32___posix_fadvise50, 0, 0 },/* 416 = netbsd32___posix_fadvise50 */
 	{ ns(struct netbsd32___select50_args), 0,
-	    (sy_call_t *)netbsd32___select50 },	/* 417 = netbsd32___select50 */
+	    (sy_call_t *)netbsd32___select50, 0, 0 },	/* 417 = netbsd32___select50 */
 	{ ns(struct netbsd32___gettimeofday50_args), 0,
-	    (sy_call_t *)netbsd32___gettimeofday50 },/* 418 = netbsd32___gettimeofday50 */
+	    (sy_call_t *)netbsd32___gettimeofday50, 0, 0 },/* 418 = netbsd32___gettimeofday50 */
 	{ ns(struct netbsd32___settimeofday50_args), 0,
-	    (sy_call_t *)netbsd32___settimeofday50 },/* 419 = netbsd32___settimeofday50 */
+	    (sy_call_t *)netbsd32___settimeofday50, 0, 0 },/* 419 = netbsd32___settimeofday50 */
 	{ ns(struct netbsd32___utimes50_args), 0,
-	    (sy_call_t *)netbsd32___utimes50 },	/* 420 = netbsd32___utimes50 */
+	    (sy_call_t *)netbsd32___utimes50, 0, 0 },	/* 420 = netbsd32___utimes50 */
 	{ ns(struct netbsd32___adjtime50_args), 0,
-	    (sy_call_t *)netbsd32___adjtime50 },/* 421 = netbsd32___adjtime50 */
+	    (sy_call_t *)netbsd32___adjtime50, 0, 0 },/* 421 = netbsd32___adjtime50 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 422 = excluded __lfs_segwait50 */
+	    sys_nosys, 0, 0 },			/* 422 = excluded __lfs_segwait50 */
 	{ ns(struct netbsd32___futimes50_args), 0,
-	    (sy_call_t *)netbsd32___futimes50 },/* 423 = netbsd32___futimes50 */
+	    (sy_call_t *)netbsd32___futimes50, 0, 0 },/* 423 = netbsd32___futimes50 */
 	{ ns(struct netbsd32___lutimes50_args), 0,
-	    (sy_call_t *)netbsd32___lutimes50 },/* 424 = netbsd32___lutimes50 */
+	    (sy_call_t *)netbsd32___lutimes50, 0, 0 },/* 424 = netbsd32___lutimes50 */
 	{ ns(struct netbsd32___setitimer50_args), 0,
-	    (sy_call_t *)netbsd32___setitimer50 },/* 425 = netbsd32___setitimer50 */
+	    (sy_call_t *)netbsd32___setitimer50, 0, 0 },/* 425 = netbsd32___setitimer50 */
 	{ ns(struct netbsd32___getitimer50_args), 0,
-	    (sy_call_t *)netbsd32___getitimer50 },/* 426 = netbsd32___getitimer50 */
+	    (sy_call_t *)netbsd32___getitimer50, 0, 0 },/* 426 = netbsd32___getitimer50 */
 	{ ns(struct netbsd32___clock_gettime50_args), 0,
-	    (sy_call_t *)netbsd32___clock_gettime50 },/* 427 = netbsd32___clock_gettime50 */
+	    (sy_call_t *)netbsd32___clock_gettime50, 0, 0 },/* 427 = netbsd32___clock_gettime50 */
 	{ ns(struct netbsd32___clock_settime50_args), 0,
-	    (sy_call_t *)netbsd32___clock_settime50 },/* 428 = netbsd32___clock_settime50 */
+	    (sy_call_t *)netbsd32___clock_settime50, 0, 0 },/* 428 = netbsd32___clock_settime50 */
 	{ ns(struct netbsd32___clock_getres50_args), 0,
-	    (sy_call_t *)netbsd32___clock_getres50 },/* 429 = netbsd32___clock_getres50 */
+	    (sy_call_t *)netbsd32___clock_getres50, 0, 0 },/* 429 = netbsd32___clock_getres50 */
 	{ ns(struct netbsd32___nanosleep50_args), 0,
-	    (sy_call_t *)netbsd32___nanosleep50 },/* 430 = netbsd32___nanosleep50 */
+	    (sy_call_t *)netbsd32___nanosleep50, 0, 0 },/* 430 = netbsd32___nanosleep50 */
 	{ ns(struct netbsd32_____sigtimedwait50_args), 0,
-	    (sy_call_t *)netbsd32_____sigtimedwait50 },/* 431 = netbsd32_____sigtimedwait50 */
+	    (sy_call_t *)netbsd32_____sigtimedwait50, 0, 0 },/* 431 = netbsd32_____sigtimedwait50 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 432 = unimplemented netbsd32___mq_timedsend50 */
+	    sys_nosys, 0, 0 },			/* 432 = unimplemented netbsd32___mq_timedsend50 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 433 = unimplemented netbsd32___mq_timedreceive50 */
+	    sys_nosys, 0, 0 },			/* 433 = unimplemented netbsd32___mq_timedreceive50 */
 	{ ns(struct compat_60_netbsd32__lwp_park_args), 0,
-	    (sy_call_t *)compat_60(netbsd32__lwp_park) },/* 434 = compat_60_netbsd32__lwp_park */
+	    (sy_call_t *)compat_60(netbsd32__lwp_park), 0, 0 },/* 434 = compat_60_netbsd32__lwp_park */
 	{ ns(struct netbsd32___kevent50_args), 0,
-	    (sy_call_t *)netbsd32___kevent50 },	/* 435 = netbsd32___kevent50 */
+	    (sy_call_t *)netbsd32___kevent50, 0, 0 },	/* 435 = netbsd32___kevent50 */
 	{ ns(struct netbsd32___pselect50_args), 0,
-	    (sy_call_t *)netbsd32___pselect50 },/* 436 = netbsd32___pselect50 */
+	    (sy_call_t *)netbsd32___pselect50, 0, 0 },/* 436 = netbsd32___pselect50 */
 	{ ns(struct netbsd32___pollts50_args), 0,
-	    (sy_call_t *)netbsd32___pollts50 },	/* 437 = netbsd32___pollts50 */
+	    (sy_call_t *)netbsd32___pollts50, 0, 0 },	/* 437 = netbsd32___pollts50 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 438 = unimplemented netbsd32___aio_suspend50 */
+	    sys_nosys, 0, 0 },			/* 438 = unimplemented netbsd32___aio_suspend50 */
 	{ ns(struct netbsd32___stat50_args), 0,
-	    (sy_call_t *)netbsd32___stat50 },	/* 439 = netbsd32___stat50 */
+	    (sy_call_t *)netbsd32___stat50, 0, 0 },	/* 439 = netbsd32___stat50 */
 	{ ns(struct netbsd32___fstat50_args), 0,
-	    (sy_call_t *)netbsd32___fstat50 },	/* 440 = netbsd32___fstat50 */
+	    (sy_call_t *)netbsd32___fstat50, 0, 0 },	/* 440 = netbsd32___fstat50 */
 	{ ns(struct netbsd32___lstat50_args), 0,
-	    (sy_call_t *)netbsd32___lstat50 },	/* 441 = netbsd32___lstat50 */
+	    (sy_call_t *)netbsd32___lstat50, 0, 0 },	/* 441 = netbsd32___lstat50 */
 #if defined(SYSVSEM) || !defined(_KERNEL_OPT)
 	{ ns(struct netbsd32_____semctl50_args), 0,
-	    (sy_call_t *)netbsd32_____semctl50 },/* 442 = netbsd32_____semctl50 */
+	    (sy_call_t *)netbsd32_____semctl50, 0, 0 },/* 442 = netbsd32_____semctl50 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 442 = excluded ____semctl50 */
+	    sys_nosys, 0, 0 },			/* 442 = excluded ____semctl50 */
 #endif
 #if defined(SYSVSHM) || !defined(_KERNEL_OPT)
 	{ ns(struct netbsd32___shmctl50_args), 0,
-	    (sy_call_t *)netbsd32___shmctl50 },	/* 443 = netbsd32___shmctl50 */
+	    (sy_call_t *)netbsd32___shmctl50, 0, 0 },	/* 443 = netbsd32___shmctl50 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 443 = excluded ____shmctl50 */
+	    sys_nosys, 0, 0 },			/* 443 = excluded ____shmctl50 */
 #endif
 #if defined(SYSVMSG) || !defined(_KERNEL_OPT)
 	{ ns(struct netbsd32___msgctl50_args), 0,
-	    (sy_call_t *)netbsd32___msgctl50 },	/* 444 = netbsd32___msgctl50 */
+	    (sy_call_t *)netbsd32___msgctl50, 0, 0 },	/* 444 = netbsd32___msgctl50 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 444 = excluded ____msgctl50 */
+	    sys_nosys, 0, 0 },			/* 444 = excluded ____msgctl50 */
 #endif
 	{ ns(struct netbsd32___getrusage50_args), 0,
-	    (sy_call_t *)netbsd32___getrusage50 },/* 445 = netbsd32___getrusage50 */
+	    (sy_call_t *)netbsd32___getrusage50, 0, 0 },/* 445 = netbsd32___getrusage50 */
 	{ ns(struct netbsd32___timer_settime50_args), 0,
-	    (sy_call_t *)netbsd32___timer_settime50 },/* 446 = netbsd32___timer_settime50 */
+	    (sy_call_t *)netbsd32___timer_settime50, 0, 0 },/* 446 = netbsd32___timer_settime50 */
 	{ ns(struct netbsd32___timer_gettime50_args), 0,
-	    (sy_call_t *)netbsd32___timer_gettime50 },/* 447 = netbsd32___timer_gettime50 */
+	    (sy_call_t *)netbsd32___timer_gettime50, 0, 0 },/* 447 = netbsd32___timer_gettime50 */
 #if defined(NTP) || !defined(_KERNEL_OPT)
 	{ ns(struct netbsd32___ntp_gettime50_args), 0,
-	    (sy_call_t *)netbsd32___ntp_gettime50 },/* 448 = netbsd32___ntp_gettime50 */
+	    (sy_call_t *)netbsd32___ntp_gettime50, 0, 0 },/* 448 = netbsd32___ntp_gettime50 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 448 = excluded ___ntp_gettime50 */
+	    sys_nosys, 0, 0 },			/* 448 = excluded ___ntp_gettime50 */
 #endif
 	{ ns(struct netbsd32___wait450_args), 0,
-	    (sy_call_t *)netbsd32___wait450 },	/* 449 = netbsd32___wait450 */
+	    (sy_call_t *)netbsd32___wait450, 0, 0 },	/* 449 = netbsd32___wait450 */
 	{ ns(struct netbsd32___mknod50_args), 0,
-	    (sy_call_t *)netbsd32___mknod50 },	/* 450 = netbsd32___mknod50 */
+	    (sy_call_t *)netbsd32___mknod50, 0, 0 },	/* 450 = netbsd32___mknod50 */
 	{ ns(struct netbsd32___fhstat50_args), 0,
-	    (sy_call_t *)netbsd32___fhstat50 },	/* 451 = netbsd32___fhstat50 */
+	    (sy_call_t *)netbsd32___fhstat50, 0, 0 },	/* 451 = netbsd32___fhstat50 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 452 = obsolete 5.99 quotactl */
+	    sys_nosys, 0, 0 },			/* 452 = obsolete 5.99 quotactl */
 	{ ns(struct netbsd32_pipe2_args), 0,
-	    (sy_call_t *)netbsd32_pipe2 },	/* 453 = netbsd32_pipe2 */
+	    (sy_call_t *)netbsd32_pipe2, 0, 0 },	/* 453 = netbsd32_pipe2 */
 	{ ns(struct netbsd32_dup3_args), 0,
-	    (sy_call_t *)netbsd32_dup3 },	/* 454 = netbsd32_dup3 */
+	    (sy_call_t *)netbsd32_dup3, 0, 0 },	/* 454 = netbsd32_dup3 */
 	{ ns(struct netbsd32_kqueue1_args), 0,
-	    (sy_call_t *)netbsd32_kqueue1 },	/* 455 = netbsd32_kqueue1 */
+	    (sy_call_t *)netbsd32_kqueue1, 0, 0 },	/* 455 = netbsd32_kqueue1 */
 	{ ns(struct netbsd32_paccept_args), 0,
-	    (sy_call_t *)netbsd32_paccept },	/* 456 = netbsd32_paccept */
+	    (sy_call_t *)netbsd32_paccept, 0, 0 },	/* 456 = netbsd32_paccept */
 	{ ns(struct netbsd32_linkat_args), 0,
-	    (sy_call_t *)netbsd32_linkat },	/* 457 = netbsd32_linkat */
+	    (sy_call_t *)netbsd32_linkat, 0, 0 },	/* 457 = netbsd32_linkat */
 	{ ns(struct netbsd32_renameat_args), 0,
-	    (sy_call_t *)netbsd32_renameat },	/* 458 = netbsd32_renameat */
+	    (sy_call_t *)netbsd32_renameat, 0, 0 },	/* 458 = netbsd32_renameat */
 	{ ns(struct netbsd32_mkfifoat_args), 0,
-	    (sy_call_t *)netbsd32_mkfifoat },	/* 459 = netbsd32_mkfifoat */
+	    (sy_call_t *)netbsd32_mkfifoat, 0, 0 },	/* 459 = netbsd32_mkfifoat */
 	{ ns(struct netbsd32_mknodat_args), 0,
-	    (sy_call_t *)netbsd32_mknodat },	/* 460 = netbsd32_mknodat */
+	    (sy_call_t *)netbsd32_mknodat, 0, 0 },	/* 460 = netbsd32_mknodat */
 	{ ns(struct netbsd32_mkdirat_args), 0,
-	    (sy_call_t *)netbsd32_mkdirat },	/* 461 = netbsd32_mkdirat */
+	    (sy_call_t *)netbsd32_mkdirat, 0, 0 },	/* 461 = netbsd32_mkdirat */
 	{ ns(struct netbsd32_faccessat_args), 0,
-	    (sy_call_t *)netbsd32_faccessat },	/* 462 = netbsd32_faccessat */
+	    (sy_call_t *)netbsd32_faccessat, 0, 0 },	/* 462 = netbsd32_faccessat */
 	{ ns(struct netbsd32_fchmodat_args), 0,
-	    (sy_call_t *)netbsd32_fchmodat },	/* 463 = netbsd32_fchmodat */
+	    (sy_call_t *)netbsd32_fchmodat, 0, 0 },	/* 463 = netbsd32_fchmodat */
 	{ ns(struct netbsd32_fchownat_args), 0,
-	    (sy_call_t *)netbsd32_fchownat },	/* 464 = netbsd32_fchownat */
+	    (sy_call_t *)netbsd32_fchownat, 0, 0 },	/* 464 = netbsd32_fchownat */
 	{ ns(struct netbsd32_fexecve_args), 0,
-	    (sy_call_t *)netbsd32_fexecve },	/* 465 = netbsd32_fexecve */
+	    (sy_call_t *)netbsd32_fexecve, 0, 0 },	/* 465 = netbsd32_fexecve */
 	{ ns(struct netbsd32_fstatat_args), 0,
-	    (sy_call_t *)netbsd32_fstatat },	/* 466 = netbsd32_fstatat */
+	    (sy_call_t *)netbsd32_fstatat, 0, 0 },	/* 466 = netbsd32_fstatat */
 	{ ns(struct netbsd32_utimensat_args), 0,
-	    (sy_call_t *)netbsd32_utimensat },	/* 467 = netbsd32_utimensat */
+	    (sy_call_t *)netbsd32_utimensat, 0, 0 },	/* 467 = netbsd32_utimensat */
 	{ ns(struct netbsd32_openat_args), 0,
-	    (sy_call_t *)netbsd32_openat },	/* 468 = netbsd32_openat */
+	    (sy_call_t *)netbsd32_openat, 0, 0 },	/* 468 = netbsd32_openat */
 	{ ns(struct netbsd32_readlinkat_args), 0,
-	    (sy_call_t *)netbsd32_readlinkat },	/* 469 = netbsd32_readlinkat */
+	    (sy_call_t *)netbsd32_readlinkat, 0, 0 },	/* 469 = netbsd32_readlinkat */
 	{ ns(struct netbsd32_symlinkat_args), 0,
-	    (sy_call_t *)netbsd32_symlinkat },	/* 470 = netbsd32_symlinkat */
+	    (sy_call_t *)netbsd32_symlinkat, 0, 0 },	/* 470 = netbsd32_symlinkat */
 	{ ns(struct netbsd32_unlinkat_args), 0,
-	    (sy_call_t *)netbsd32_unlinkat },	/* 471 = netbsd32_unlinkat */
+	    (sy_call_t *)netbsd32_unlinkat, 0, 0 },	/* 471 = netbsd32_unlinkat */
 	{ ns(struct netbsd32_futimens_args), 0,
-	    (sy_call_t *)netbsd32_futimens },	/* 472 = netbsd32_futimens */
+	    (sy_call_t *)netbsd32_futimens, 0, 0 },	/* 472 = netbsd32_futimens */
 	{ ns(struct netbsd32___quotactl_args), 0,
-	    (sy_call_t *)netbsd32___quotactl },	/* 473 = netbsd32___quotactl */
+	    (sy_call_t *)netbsd32___quotactl, 0, 0 },	/* 473 = netbsd32___quotactl */
 	{ ns(struct netbsd32_posix_spawn_args), 0,
-	    (sy_call_t *)netbsd32_posix_spawn },/* 474 = netbsd32_posix_spawn */
+	    (sy_call_t *)netbsd32_posix_spawn, 0, 0 },/* 474 = netbsd32_posix_spawn */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 475 = unimplemented { int | netbsd32 | | recvmmsg ( int s , struct mmsghdr * mmsg , unsigned int vlen , unsigned int flags , netbsd32_timespecp_t timeout ) ; } */
+	    sys_nosys, 0, 0 },			/* 475 = unimplemented { int | netbsd32 | | recvmmsg ( int s , struct mmsghdr * mmsg , unsigned int vlen , unsigned int flags , netbsd32_timespecp_t timeout ) ; } */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 476 = unimplemented { int | netbsd32 | | sendmmsg ( int s , struct mmsghdr * mmsg , unsigned int vlen , unsigned int flags ) ; } */
+	    sys_nosys, 0, 0 },			/* 476 = unimplemented { int | netbsd32 | | sendmmsg ( int s , struct mmsghdr * mmsg , unsigned int vlen , unsigned int flags ) ; } */
 	{ ns(struct netbsd32_clock_nanosleep_args), 0,
-	    (sy_call_t *)netbsd32_clock_nanosleep },/* 477 = netbsd32_clock_nanosleep */
+	    (sy_call_t *)netbsd32_clock_nanosleep, 0, 0 },/* 477 = netbsd32_clock_nanosleep */
 	{ ns(struct netbsd32____lwp_park60_args), 0,
-	    (sy_call_t *)netbsd32____lwp_park60 },/* 478 = netbsd32____lwp_park60 */
+	    (sy_call_t *)netbsd32____lwp_park60, 0, 0 },/* 478 = netbsd32____lwp_park60 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 479 = filler */
+	    sys_nosys, 0, 0 },			/* 479 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 480 = filler */
+	    sys_nosys, 0, 0 },			/* 480 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 481 = filler */
+	    sys_nosys, 0, 0 },			/* 481 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 482 = filler */
+	    sys_nosys, 0, 0 },			/* 482 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 483 = filler */
+	    sys_nosys, 0, 0 },			/* 483 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 484 = filler */
+	    sys_nosys, 0, 0 },			/* 484 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 485 = filler */
+	    sys_nosys, 0, 0 },			/* 485 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 486 = filler */
+	    sys_nosys, 0, 0 },			/* 486 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 487 = filler */
+	    sys_nosys, 0, 0 },			/* 487 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 488 = filler */
+	    sys_nosys, 0, 0 },			/* 488 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 489 = filler */
+	    sys_nosys, 0, 0 },			/* 489 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 490 = filler */
+	    sys_nosys, 0, 0 },			/* 490 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 491 = filler */
+	    sys_nosys, 0, 0 },			/* 491 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 492 = filler */
+	    sys_nosys, 0, 0 },			/* 492 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 493 = filler */
+	    sys_nosys, 0, 0 },			/* 493 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 494 = filler */
+	    sys_nosys, 0, 0 },			/* 494 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 495 = filler */
+	    sys_nosys, 0, 0 },			/* 495 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 496 = filler */
+	    sys_nosys, 0, 0 },			/* 496 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 497 = filler */
+	    sys_nosys, 0, 0 },			/* 497 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 498 = filler */
+	    sys_nosys, 0, 0 },			/* 498 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 499 = filler */
+	    sys_nosys, 0, 0 },			/* 499 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 500 = filler */
+	    sys_nosys, 0, 0 },			/* 500 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 501 = filler */
+	    sys_nosys, 0, 0 },			/* 501 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 502 = filler */
+	    sys_nosys, 0, 0 },			/* 502 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 503 = filler */
+	    sys_nosys, 0, 0 },			/* 503 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 504 = filler */
+	    sys_nosys, 0, 0 },			/* 504 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 505 = filler */
+	    sys_nosys, 0, 0 },			/* 505 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 506 = filler */
+	    sys_nosys, 0, 0 },			/* 506 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 507 = filler */
+	    sys_nosys, 0, 0 },			/* 507 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 508 = filler */
+	    sys_nosys, 0, 0 },			/* 508 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 509 = filler */
+	    sys_nosys, 0, 0 },			/* 509 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 510 = filler */
+	    sys_nosys, 0, 0 },			/* 510 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 511 = filler */
+	    sys_nosys, 0, 0 },			/* 511 = filler */
 };
diff --git a/sys/compat/netbsd32/netbsd32_systrace_args.c b/sys/compat/netbsd32/netbsd32_systrace_args.c
new file mode 100644
index 0000000..6cc109d
--- /dev/null
+++ b/sys/compat/netbsd32/netbsd32_systrace_args.c
@@ -0,0 +1,10745 @@
+/* $NetBSD$ */
+
+/*
+ * System call argument to DTrace register array converstion.
+ *
+ * DO NOT EDIT-- this file is automatically generated.
+ * This file is part of the DTrace syscall provider.
+ */
+
+static void
+systrace_args(register_t sysnum, const void *params, uintptr_t *uarg, size_t *n_args)
+{
+	intptr_t *iarg  = (intptr_t *)uarg;
+	switch (sysnum) {
+	/* netbsd32_syscall */
+	case 0: {
+		struct netbsd32_syscall_args *p = params;
+		iarg[0] = SCARG(p, code); /* int */
+		iarg[1] = SCARG(p, args[NETBSD32_SYS_MAXSYSARGS]); /* register32_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_exit */
+	case 1: {
+		struct netbsd32_exit_args *p = params;
+		iarg[0] = SCARG(p, rval); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_fork */
+	case 2: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_read */
+	case 3: {
+		struct netbsd32_read_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, nbyte); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_write */
+	case 4: {
+		struct netbsd32_write_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, nbyte); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_open */
+	case 5: {
+		struct netbsd32_open_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, flags); /* int */
+		iarg[2] = SCARG(p, mode); /* mode_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_close */
+	case 6: {
+		struct netbsd32_close_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_wait4 */
+	case 7: {
+		struct compat_50_netbsd32_wait4_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, status).i32; /* netbsd32_intp */
+		iarg[2] = SCARG(p, options); /* int */
+		uarg[3] = (intptr_t) SCARG(p, rusage).i32; /* netbsd32_rusage50p_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_ocreat */
+	case 8: {
+		struct compat_43_netbsd32_ocreat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, mode); /* mode_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_link */
+	case 9: {
+		struct netbsd32_link_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, link).i32; /* netbsd32_charp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_unlink */
+	case 10: {
+		struct netbsd32_unlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_chdir */
+	case 12: {
+		struct netbsd32_chdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_fchdir */
+	case 13: {
+		struct netbsd32_fchdir_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_mknod */
+	case 14: {
+		struct compat_50_netbsd32_mknod_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, mode); /* mode_t */
+		uarg[2] = SCARG(p, dev); /* uint32_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_chmod */
+	case 15: {
+		struct netbsd32_chmod_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, mode); /* mode_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_chown */
+	case 16: {
+		struct netbsd32_chown_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_break */
+	case 17: {
+		struct netbsd32_break_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, nsize).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_getfsstat */
+	case 18: {
+		struct compat_20_netbsd32_getfsstat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_statfsp_t */
+		iarg[1] = SCARG(p, bufsize); /* netbsd32_long */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_olseek */
+	case 19: {
+		struct compat_43_netbsd32_olseek_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, offset); /* netbsd32_long */
+		iarg[2] = SCARG(p, whence); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getpid */
+	case 20: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_mount */
+	case 21: {
+		struct netbsd32_mount_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, type).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, flags); /* int */
+		uarg[3] = (intptr_t) SCARG(p, data).i32; /* netbsd32_voidp */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_unmount */
+	case 22: {
+		struct netbsd32_unmount_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, flags); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_setuid */
+	case 23: {
+		struct netbsd32_setuid_args *p = params;
+		uarg[0] = SCARG(p, uid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_getuid */
+	case 24: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_geteuid */
+	case 25: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_ptrace */
+	case 26: {
+		struct netbsd32_ptrace_args *p = params;
+		iarg[0] = SCARG(p, req); /* int */
+		iarg[1] = SCARG(p, pid); /* pid_t */
+		uarg[2] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, data); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_recvmsg */
+	case 27: {
+		struct netbsd32_recvmsg_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msg).i32; /* netbsd32_msghdrp_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_sendmsg */
+	case 28: {
+		struct netbsd32_sendmsg_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msg).i32; /* netbsd32_msghdrp_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_recvfrom */
+	case 29: {
+		struct netbsd32_recvfrom_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, len); /* netbsd32_size_t */
+		iarg[3] = SCARG(p, flags); /* int */
+		uarg[4] = (intptr_t) SCARG(p, from).i32; /* netbsd32_sockaddrp_t */
+		uarg[5] = (intptr_t) SCARG(p, fromlenaddr).i32; /* netbsd32_intp */
+		*n_args = 6;
+		break;
+	}
+	/* netbsd32_accept */
+	case 30: {
+		struct netbsd32_accept_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_sockaddrp_t */
+		uarg[2] = (intptr_t) SCARG(p, anamelen).i32; /* netbsd32_intp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_getpeername */
+	case 31: {
+		struct netbsd32_getpeername_args *p = params;
+		iarg[0] = SCARG(p, fdes); /* int */
+		uarg[1] = (intptr_t) SCARG(p, asa).i32; /* netbsd32_sockaddrp_t */
+		uarg[2] = (intptr_t) SCARG(p, alen).i32; /* netbsd32_intp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_getsockname */
+	case 32: {
+		struct netbsd32_getsockname_args *p = params;
+		iarg[0] = SCARG(p, fdes); /* int */
+		uarg[1] = (intptr_t) SCARG(p, asa).i32; /* netbsd32_sockaddrp_t */
+		uarg[2] = (intptr_t) SCARG(p, alen).i32; /* netbsd32_intp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_access */
+	case 33: {
+		struct netbsd32_access_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, flags); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_chflags */
+	case 34: {
+		struct netbsd32_chflags_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, flags); /* netbsd32_u_long */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_fchflags */
+	case 35: {
+		struct netbsd32_fchflags_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, flags); /* netbsd32_u_long */
+		*n_args = 2;
+		break;
+	}
+	/* sys_sync */
+	case 36: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_kill */
+	case 37: {
+		struct netbsd32_kill_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		iarg[1] = SCARG(p, signum); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_stat43 */
+	case 38: {
+		struct compat_43_netbsd32_stat43_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, ub).i32; /* netbsd32_stat43p_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getppid */
+	case 39: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_lstat43 */
+	case 40: {
+		struct compat_43_netbsd32_lstat43_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, ub).i32; /* netbsd32_stat43p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_dup */
+	case 41: {
+		struct netbsd32_dup_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_pipe */
+	case 42: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getegid */
+	case 43: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_profil */
+	case 44: {
+		struct netbsd32_profil_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, samples).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, size); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, offset); /* netbsd32_u_long */
+		uarg[3] = SCARG(p, scale); /* u_int */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_ktrace */
+	case 45: {
+		struct netbsd32_ktrace_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fname).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, ops); /* int */
+		iarg[2] = SCARG(p, facs); /* int */
+		iarg[3] = SCARG(p, pid); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_sigaction */
+	case 46: {
+		struct netbsd32_sigaction_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		uarg[1] = (intptr_t) SCARG(p, nsa).i32; /* netbsd32_sigactionp_t */
+		uarg[2] = (intptr_t) SCARG(p, osa).i32; /* netbsd32_sigactionp_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getgid */
+	case 47: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_sigprocmask */
+	case 48: {
+		struct compat_13_netbsd32_sigprocmask_args *p = params;
+		iarg[0] = SCARG(p, how); /* int */
+		iarg[1] = SCARG(p, mask); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___getlogin */
+	case 49: {
+		struct netbsd32___getlogin_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, namebuf).i32; /* netbsd32_charp */
+		uarg[1] = SCARG(p, namelen); /* u_int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_setlogin */
+	case 50: {
+		struct netbsd32_setlogin_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, namebuf).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_acct */
+	case 51: {
+		struct netbsd32_acct_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* sys_sigpending */
+	case 52: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_sigaltstack13 */
+	case 53: {
+		struct compat_13_netbsd32_sigaltstack13_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, nss).i32; /* netbsd32_sigaltstack13p_t */
+		uarg[1] = (intptr_t) SCARG(p, oss).i32; /* netbsd32_sigaltstack13p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_ioctl */
+	case 54: {
+		struct netbsd32_ioctl_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, com); /* netbsd32_u_long */
+		uarg[2] = (intptr_t) SCARG(p, data).i32; /* netbsd32_voidp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_reboot */
+	case 55: {
+		struct compat_12_netbsd32_reboot_args *p = params;
+		iarg[0] = SCARG(p, opt); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_revoke */
+	case 56: {
+		struct netbsd32_revoke_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_symlink */
+	case 57: {
+		struct netbsd32_symlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, link).i32; /* netbsd32_charp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_readlink */
+	case 58: {
+		struct netbsd32_readlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, count); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_execve */
+	case 59: {
+		struct netbsd32_execve_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, argp).i32; /* netbsd32_charpp */
+		uarg[2] = (intptr_t) SCARG(p, envp).i32; /* netbsd32_charpp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_umask */
+	case 60: {
+		struct netbsd32_umask_args *p = params;
+		iarg[0] = SCARG(p, newmask); /* mode_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_chroot */
+	case 61: {
+		struct netbsd32_chroot_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_fstat43 */
+	case 62: {
+		struct compat_43_netbsd32_fstat43_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sb).i32; /* netbsd32_stat43p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_ogetkerninfo */
+	case 63: {
+		struct compat_43_netbsd32_ogetkerninfo_args *p = params;
+		iarg[0] = SCARG(p, op); /* int */
+		uarg[1] = (intptr_t) SCARG(p, where).i32; /* netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, size).i32; /* netbsd32_intp */
+		iarg[3] = SCARG(p, arg); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* sys_getpagesize */
+	case 64: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_msync */
+	case 65: {
+		struct compat_12_netbsd32_msync_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_vfork */
+	case 66: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_sbrk */
+	case 69: {
+		struct netbsd32_sbrk_args *p = params;
+		iarg[0] = SCARG(p, incr); /* netbsd32_intptr_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_sstk */
+	case 70: {
+		struct netbsd32_sstk_args *p = params;
+		iarg[0] = SCARG(p, incr); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_ommap */
+	case 71: {
+		struct compat_43_netbsd32_ommap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, prot); /* int */
+		iarg[3] = SCARG(p, flags); /* int */
+		iarg[4] = SCARG(p, fd); /* int */
+		iarg[5] = SCARG(p, pos); /* netbsd32_long */
+		*n_args = 6;
+		break;
+	}
+	/* netbsd32_ovadvise */
+	case 72: {
+		struct netbsd32_ovadvise_args *p = params;
+		iarg[0] = SCARG(p, anom); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_munmap */
+	case 73: {
+		struct netbsd32_munmap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_mprotect */
+	case 74: {
+		struct netbsd32_mprotect_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, prot); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_madvise */
+	case 75: {
+		struct netbsd32_madvise_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, behav); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_mincore */
+	case 78: {
+		struct netbsd32_mincore_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		uarg[2] = (intptr_t) SCARG(p, vec).i32; /* netbsd32_charp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_getgroups */
+	case 79: {
+		struct netbsd32_getgroups_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset).i32; /* netbsd32_gid_tp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_setgroups */
+	case 80: {
+		struct netbsd32_setgroups_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset).i32; /* netbsd32_gid_tp */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getpgrp */
+	case 81: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_setpgid */
+	case 82: {
+		struct netbsd32_setpgid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		iarg[1] = SCARG(p, pgid); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_setitimer */
+	case 83: {
+		struct compat_50_netbsd32_setitimer_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, itv).i32; /* netbsd32_itimerval50p_t */
+		uarg[2] = (intptr_t) SCARG(p, oitv).i32; /* netbsd32_itimerval50p_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_wait */
+	case 84: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_oswapon */
+	case 85: {
+		struct compat_12_netbsd32_oswapon_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_getitimer */
+	case 86: {
+		struct compat_50_netbsd32_getitimer_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, itv).i32; /* netbsd32_itimerval50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_ogethostname */
+	case 87: {
+		struct compat_43_netbsd32_ogethostname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, hostname).i32; /* netbsd32_charp */
+		uarg[1] = SCARG(p, len); /* u_int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_osethostname */
+	case 88: {
+		struct compat_43_netbsd32_osethostname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, hostname).i32; /* netbsd32_charp */
+		uarg[1] = SCARG(p, len); /* u_int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getdtablesize */
+	case 89: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_dup2 */
+	case 90: {
+		struct netbsd32_dup2_args *p = params;
+		iarg[0] = SCARG(p, from); /* int */
+		iarg[1] = SCARG(p, to); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_fcntl */
+	case 92: {
+		struct netbsd32_fcntl_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, arg).i32; /* netbsd32_voidp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_select */
+	case 93: {
+		struct compat_50_netbsd32_select_args *p = params;
+		iarg[0] = SCARG(p, nd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, in).i32; /* netbsd32_fd_setp_t */
+		uarg[2] = (intptr_t) SCARG(p, ou).i32; /* netbsd32_fd_setp_t */
+		uarg[3] = (intptr_t) SCARG(p, ex).i32; /* netbsd32_fd_setp_t */
+		uarg[4] = (intptr_t) SCARG(p, tv).i32; /* netbsd32_timeval50p_t */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_fsync */
+	case 95: {
+		struct netbsd32_fsync_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_setpriority */
+	case 96: {
+		struct netbsd32_setpriority_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, who); /* int */
+		iarg[2] = SCARG(p, prio); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_socket */
+	case 97: {
+		struct compat_30_netbsd32_socket_args *p = params;
+		iarg[0] = SCARG(p, domain); /* int */
+		iarg[1] = SCARG(p, type); /* int */
+		iarg[2] = SCARG(p, protocol); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_connect */
+	case 98: {
+		struct netbsd32_connect_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_sockaddrp_t */
+		iarg[2] = SCARG(p, namelen); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_oaccept */
+	case 99: {
+		struct compat_43_netbsd32_oaccept_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_voidp */
+		uarg[2] = (intptr_t) SCARG(p, anamelen).i32; /* netbsd32_intp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_getpriority */
+	case 100: {
+		struct netbsd32_getpriority_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, who); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_osend */
+	case 101: {
+		struct compat_43_netbsd32_osend_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, len); /* int */
+		iarg[3] = SCARG(p, flags); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_orecv */
+	case 102: {
+		struct compat_43_netbsd32_orecv_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, len); /* int */
+		iarg[3] = SCARG(p, flags); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_sigreturn */
+	case 103: {
+		struct compat_13_netbsd32_sigreturn_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, sigcntxp).i32; /* netbsd32_sigcontextp_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_bind */
+	case 104: {
+		struct netbsd32_bind_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_sockaddrp_t */
+		iarg[2] = SCARG(p, namelen); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_setsockopt */
+	case 105: {
+		struct netbsd32_setsockopt_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		iarg[1] = SCARG(p, level); /* int */
+		iarg[2] = SCARG(p, name); /* int */
+		uarg[3] = (intptr_t) SCARG(p, val).i32; /* netbsd32_voidp */
+		iarg[4] = SCARG(p, valsize); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_listen */
+	case 106: {
+		struct netbsd32_listen_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		iarg[1] = SCARG(p, backlog); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_osigvec */
+	case 108: {
+		struct compat_43_netbsd32_osigvec_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		uarg[1] = (intptr_t) SCARG(p, nsv).i32; /* netbsd32_sigvecp_t */
+		uarg[2] = (intptr_t) SCARG(p, osv).i32; /* netbsd32_sigvecp_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_sigblock */
+	case 109: {
+		struct compat_43_netbsd32_sigblock_args *p = params;
+		iarg[0] = SCARG(p, mask); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_sigsetmask */
+	case 110: {
+		struct compat_43_netbsd32_sigsetmask_args *p = params;
+		iarg[0] = SCARG(p, mask); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_sigsuspend */
+	case 111: {
+		struct compat_13_netbsd32_sigsuspend_args *p = params;
+		iarg[0] = SCARG(p, mask); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_osigstack */
+	case 112: {
+		struct compat_43_netbsd32_osigstack_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, nss).i32; /* netbsd32_sigstackp_t */
+		uarg[1] = (intptr_t) SCARG(p, oss).i32; /* netbsd32_sigstackp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_orecvmsg */
+	case 113: {
+		struct compat_43_netbsd32_orecvmsg_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msg).i32; /* netbsd32_omsghdrp_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_osendmsg */
+	case 114: {
+		struct compat_43_netbsd32_osendmsg_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msg).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_gettimeofday */
+	case 116: {
+		struct compat_50_netbsd32_gettimeofday_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tp).i32; /* netbsd32_timeval50p_t */
+		uarg[1] = (intptr_t) SCARG(p, tzp).i32; /* netbsd32_timezonep_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_getrusage */
+	case 117: {
+		struct compat_50_netbsd32_getrusage_args *p = params;
+		iarg[0] = SCARG(p, who); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rusage).i32; /* netbsd32_rusage50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_getsockopt */
+	case 118: {
+		struct netbsd32_getsockopt_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		iarg[1] = SCARG(p, level); /* int */
+		iarg[2] = SCARG(p, name); /* int */
+		uarg[3] = (intptr_t) SCARG(p, val).i32; /* netbsd32_voidp */
+		uarg[4] = (intptr_t) SCARG(p, avalsize).i32; /* netbsd32_intp */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_readv */
+	case 120: {
+		struct netbsd32_readv_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, iovp).i32; /* netbsd32_iovecp_t */
+		iarg[2] = SCARG(p, iovcnt); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_writev */
+	case 121: {
+		struct netbsd32_writev_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, iovp).i32; /* netbsd32_iovecp_t */
+		iarg[2] = SCARG(p, iovcnt); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_settimeofday */
+	case 122: {
+		struct compat_50_netbsd32_settimeofday_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tv).i32; /* netbsd32_timeval50p_t */
+		uarg[1] = (intptr_t) SCARG(p, tzp).i32; /* netbsd32_timezonep_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_fchown */
+	case 123: {
+		struct netbsd32_fchown_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_fchmod */
+	case 124: {
+		struct netbsd32_fchmod_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, mode); /* mode_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_orecvfrom */
+	case 125: {
+		struct compat_43_netbsd32_orecvfrom_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, len); /* netbsd32_size_t */
+		iarg[3] = SCARG(p, flags); /* int */
+		uarg[4] = (intptr_t) SCARG(p, from).i32; /* netbsd32_voidp */
+		uarg[5] = (intptr_t) SCARG(p, fromlenaddr).i32; /* netbsd32_intp */
+		*n_args = 6;
+		break;
+	}
+	/* netbsd32_setreuid */
+	case 126: {
+		struct netbsd32_setreuid_args *p = params;
+		uarg[0] = SCARG(p, ruid); /* uid_t */
+		uarg[1] = SCARG(p, euid); /* uid_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_setregid */
+	case 127: {
+		struct netbsd32_setregid_args *p = params;
+		iarg[0] = SCARG(p, rgid); /* gid_t */
+		iarg[1] = SCARG(p, egid); /* gid_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_rename */
+	case 128: {
+		struct netbsd32_rename_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, from).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, to).i32; /* netbsd32_charp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_otruncate */
+	case 129: {
+		struct compat_43_netbsd32_otruncate_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, length); /* netbsd32_long */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_oftruncate */
+	case 130: {
+		struct compat_43_netbsd32_oftruncate_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, length); /* netbsd32_long */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_flock */
+	case 131: {
+		struct netbsd32_flock_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, how); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_mkfifo */
+	case 132: {
+		struct netbsd32_mkfifo_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, mode); /* mode_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_sendto */
+	case 133: {
+		struct netbsd32_sendto_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, len); /* netbsd32_size_t */
+		iarg[3] = SCARG(p, flags); /* int */
+		uarg[4] = (intptr_t) SCARG(p, to).i32; /* netbsd32_sockaddrp_t */
+		iarg[5] = SCARG(p, tolen); /* int */
+		*n_args = 6;
+		break;
+	}
+	/* netbsd32_shutdown */
+	case 134: {
+		struct netbsd32_shutdown_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		iarg[1] = SCARG(p, how); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_socketpair */
+	case 135: {
+		struct netbsd32_socketpair_args *p = params;
+		iarg[0] = SCARG(p, domain); /* int */
+		iarg[1] = SCARG(p, type); /* int */
+		iarg[2] = SCARG(p, protocol); /* int */
+		uarg[3] = (intptr_t) SCARG(p, rsv).i32; /* netbsd32_intp */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_mkdir */
+	case 136: {
+		struct netbsd32_mkdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, mode); /* mode_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_rmdir */
+	case 137: {
+		struct netbsd32_rmdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_utimes */
+	case 138: {
+		struct compat_50_netbsd32_utimes_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, tptr).i32; /* netbsd32_timeval50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_adjtime */
+	case 140: {
+		struct compat_50_netbsd32_adjtime_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, delta).i32; /* netbsd32_timeval50p_t */
+		uarg[1] = (intptr_t) SCARG(p, olddelta).i32; /* netbsd32_timeval50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_ogetpeername */
+	case 141: {
+		struct compat_43_netbsd32_ogetpeername_args *p = params;
+		iarg[0] = SCARG(p, fdes); /* int */
+		uarg[1] = (intptr_t) SCARG(p, asa).i32; /* netbsd32_voidp */
+		uarg[2] = (intptr_t) SCARG(p, alen).i32; /* netbsd32_intp */
+		*n_args = 3;
+		break;
+	}
+	/* sys_gethostid */
+	case 142: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_sethostid */
+	case 143: {
+		struct compat_43_netbsd32_sethostid_args *p = params;
+		iarg[0] = SCARG(p, hostid); /* int32_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_ogetrlimit */
+	case 144: {
+		struct compat_43_netbsd32_ogetrlimit_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rlp).i32; /* netbsd32_orlimitp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_osetrlimit */
+	case 145: {
+		struct compat_43_netbsd32_osetrlimit_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rlp).i32; /* netbsd32_orlimitp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_killpg */
+	case 146: {
+		struct compat_43_netbsd32_killpg_args *p = params;
+		iarg[0] = SCARG(p, pgid); /* int */
+		iarg[1] = SCARG(p, signum); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setsid */
+	case 147: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_quotactl */
+	case 148: {
+		struct compat_50_netbsd32_quotactl_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, cmd); /* int */
+		iarg[2] = SCARG(p, uid); /* int */
+		uarg[3] = (intptr_t) SCARG(p, arg).i32; /* netbsd32_voidp */
+		*n_args = 4;
+		break;
+	}
+	/* sys_quota */
+	case 149: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_ogetsockname */
+	case 150: {
+		struct compat_43_netbsd32_ogetsockname_args *p = params;
+		iarg[0] = SCARG(p, fdec); /* int */
+		uarg[1] = (intptr_t) SCARG(p, asa).i32; /* netbsd32_voidp */
+		uarg[2] = (intptr_t) SCARG(p, alen).i32; /* netbsd32_intp */
+		*n_args = 3;
+		break;
+	}
+#if defined(NFSSERVER) || !defined(_KERNEL_OPT)
+	/* netbsd32_nfssvc */
+	case 155: {
+		struct netbsd32_nfssvc_args *p = params;
+		iarg[0] = SCARG(p, flag); /* int */
+		uarg[1] = (intptr_t) SCARG(p, argp).i32; /* netbsd32_voidp */
+		*n_args = 2;
+		break;
+	}
+#else
+#endif
+	/* netbsd32_ogetdirentries */
+	case 156: {
+		struct compat_43_netbsd32_ogetdirentries_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_charp */
+		uarg[2] = SCARG(p, count); /* u_int */
+		uarg[3] = (intptr_t) SCARG(p, basep).i32; /* netbsd32_longp */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_statfs */
+	case 157: {
+		struct compat_20_netbsd32_statfs_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_statfsp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_fstatfs */
+	case 158: {
+		struct compat_20_netbsd32_fstatfs_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_statfsp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_getfh */
+	case 161: {
+		struct compat_30_netbsd32_getfh_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fname).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, fhp).i32; /* netbsd32_compat_30_fhandlep_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_ogetdomainname */
+	case 162: {
+		struct compat_09_netbsd32_ogetdomainname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, domainname).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, len); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_osetdomainname */
+	case 163: {
+		struct compat_09_netbsd32_osetdomainname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, domainname).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, len); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_uname */
+	case 164: {
+		struct compat_09_netbsd32_uname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, name).i32; /* netbsd32_outsnamep_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_sysarch */
+	case 165: {
+		struct netbsd32_sysarch_args *p = params;
+		iarg[0] = SCARG(p, op); /* int */
+		uarg[1] = (intptr_t) SCARG(p, parms).i32; /* netbsd32_voidp */
+		*n_args = 2;
+		break;
+	}
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* netbsd32_semsys */
+	case 169: {
+		struct compat_10_netbsd32_semsys_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, a2); /* int */
+		iarg[2] = SCARG(p, a3); /* int */
+		iarg[3] = SCARG(p, a4); /* int */
+		iarg[4] = SCARG(p, a5); /* int */
+		*n_args = 5;
+		break;
+	}
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* netbsd32_msgsys */
+	case 170: {
+		struct compat_10_netbsd32_msgsys_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, a2); /* int */
+		iarg[2] = SCARG(p, a3); /* int */
+		iarg[3] = SCARG(p, a4); /* int */
+		iarg[4] = SCARG(p, a5); /* int */
+		iarg[5] = SCARG(p, a6); /* int */
+		*n_args = 6;
+		break;
+	}
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* netbsd32_shmsys */
+	case 171: {
+		struct compat_10_netbsd32_shmsys_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, a2); /* int */
+		iarg[2] = SCARG(p, a3); /* int */
+		iarg[3] = SCARG(p, a4); /* int */
+		*n_args = 4;
+		break;
+	}
+#else
+#endif
+	/* netbsd32_pread */
+	case 173: {
+		struct netbsd32_pread_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, nbyte); /* netbsd32_size_t */
+		iarg[3] = SCARG(p, PAD); /* int */
+		iarg[4] = SCARG(p, offset); /* netbsd32_off_t */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_pwrite */
+	case 174: {
+		struct netbsd32_pwrite_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, nbyte); /* netbsd32_size_t */
+		iarg[3] = SCARG(p, PAD); /* int */
+		iarg[4] = SCARG(p, offset); /* netbsd32_off_t */
+		*n_args = 5;
+		break;
+	}
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* netbsd32_ntp_gettime */
+	case 175: {
+		struct compat_30_netbsd32_ntp_gettime_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ntvp).i32; /* netbsd32_ntptimeval50p_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_ntp_adjtime */
+	case 176: {
+		struct netbsd32_ntp_adjtime_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tp).i32; /* netbsd32_timexp_t */
+		*n_args = 1;
+		break;
+	}
+#else
+#endif
+	/* netbsd32_setgid */
+	case 181: {
+		struct netbsd32_setgid_args *p = params;
+		iarg[0] = SCARG(p, gid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_setegid */
+	case 182: {
+		struct netbsd32_setegid_args *p = params;
+		iarg[0] = SCARG(p, egid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_seteuid */
+	case 183: {
+		struct netbsd32_seteuid_args *p = params;
+		uarg[0] = SCARG(p, euid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_stat12 */
+	case 188: {
+		struct compat_12_netbsd32_stat12_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, ub).i32; /* netbsd32_stat12p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_fstat12 */
+	case 189: {
+		struct compat_12_netbsd32_fstat12_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sb).i32; /* netbsd32_stat12p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_lstat12 */
+	case 190: {
+		struct compat_12_netbsd32_lstat12_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, ub).i32; /* netbsd32_stat12p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_pathconf */
+	case 191: {
+		struct netbsd32_pathconf_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, name); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_fpathconf */
+	case 192: {
+		struct netbsd32_fpathconf_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, name); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_getrlimit */
+	case 194: {
+		struct netbsd32_getrlimit_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rlp).i32; /* netbsd32_rlimitp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_setrlimit */
+	case 195: {
+		struct netbsd32_setrlimit_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rlp).i32; /* netbsd32_rlimitp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_getdirentries */
+	case 196: {
+		struct compat_12_netbsd32_getdirentries_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_charp */
+		uarg[2] = SCARG(p, count); /* u_int */
+		uarg[3] = (intptr_t) SCARG(p, basep).i32; /* netbsd32_longp */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_mmap */
+	case 197: {
+		struct netbsd32_mmap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, prot); /* int */
+		iarg[3] = SCARG(p, flags); /* int */
+		iarg[4] = SCARG(p, fd); /* int */
+		iarg[5] = SCARG(p, PAD); /* netbsd32_long */
+		iarg[6] = SCARG(p, pos); /* netbsd32_off_t */
+		*n_args = 7;
+		break;
+	}
+	/* netbsd32____syscall */
+	case 198: {
+		struct netbsd32____syscall_args *p = params;
+		iarg[0] = SCARG(p, code); /* quad_t */
+		iarg[1] = SCARG(p, args[NETBSD32_SYS_MAXSYSARGS]); /* register32_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_lseek */
+	case 199: {
+		struct netbsd32_lseek_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, PAD); /* int */
+		iarg[2] = SCARG(p, offset); /* netbsd32_off_t */
+		iarg[3] = SCARG(p, whence); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_truncate */
+	case 200: {
+		struct netbsd32_truncate_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, PAD); /* int */
+		iarg[2] = SCARG(p, length); /* netbsd32_off_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_ftruncate */
+	case 201: {
+		struct netbsd32_ftruncate_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, PAD); /* int */
+		iarg[2] = SCARG(p, length); /* netbsd32_off_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32___sysctl */
+	case 202: {
+		struct netbsd32___sysctl_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, name).i32; /* netbsd32_intp */
+		uarg[1] = SCARG(p, namelen); /* u_int */
+		uarg[2] = (intptr_t) SCARG(p, oldv).i32; /* netbsd32_voidp */
+		uarg[3] = (intptr_t) SCARG(p, oldlenp).i32; /* netbsd32_size_tp */
+		uarg[4] = (intptr_t) SCARG(p, newv).i32; /* netbsd32_voidp */
+		iarg[5] = SCARG(p, newlen); /* netbsd32_size_t */
+		*n_args = 6;
+		break;
+	}
+	/* netbsd32_mlock */
+	case 203: {
+		struct netbsd32_mlock_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_munlock */
+	case 204: {
+		struct netbsd32_munlock_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_undelete */
+	case 205: {
+		struct netbsd32_undelete_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_futimes */
+	case 206: {
+		struct compat_50_netbsd32_futimes_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, tptr).i32; /* netbsd32_timeval50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_getpgid */
+	case 207: {
+		struct netbsd32_getpgid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_reboot */
+	case 208: {
+		struct netbsd32_reboot_args *p = params;
+		iarg[0] = SCARG(p, opt); /* int */
+		uarg[1] = (intptr_t) SCARG(p, bootstr).i32; /* netbsd32_charp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_poll */
+	case 209: {
+		struct netbsd32_poll_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fds).i32; /* netbsd32_pollfdp_t */
+		uarg[1] = SCARG(p, nfds); /* u_int */
+		iarg[2] = SCARG(p, timeout); /* int */
+		*n_args = 3;
+		break;
+	}
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* netbsd32___semctl */
+	case 220: {
+		struct compat_14_netbsd32___semctl_args *p = params;
+		iarg[0] = SCARG(p, semid); /* int */
+		iarg[1] = SCARG(p, semnum); /* int */
+		iarg[2] = SCARG(p, cmd); /* int */
+		iarg[3] = SCARG(p, arg); /* netbsd32_semunu_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_semget */
+	case 221: {
+		struct netbsd32_semget_args *p = params;
+		iarg[0] = SCARG(p, key); /* netbsd32_key_t */
+		iarg[1] = SCARG(p, nsems); /* int */
+		iarg[2] = SCARG(p, semflg); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_semop */
+	case 222: {
+		struct netbsd32_semop_args *p = params;
+		iarg[0] = SCARG(p, semid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sops).i32; /* netbsd32_sembufp_t */
+		iarg[2] = SCARG(p, nsops); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_semconfig */
+	case 223: {
+		struct netbsd32_semconfig_args *p = params;
+		iarg[0] = SCARG(p, flag); /* int */
+		*n_args = 1;
+		break;
+	}
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* netbsd32_msgctl */
+	case 224: {
+		struct compat_14_netbsd32_msgctl_args *p = params;
+		iarg[0] = SCARG(p, msqid); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_msqid_ds14p_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_msgget */
+	case 225: {
+		struct netbsd32_msgget_args *p = params;
+		iarg[0] = SCARG(p, key); /* netbsd32_key_t */
+		iarg[1] = SCARG(p, msgflg); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_msgsnd */
+	case 226: {
+		struct netbsd32_msgsnd_args *p = params;
+		iarg[0] = SCARG(p, msqid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msgp).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, msgsz); /* netbsd32_size_t */
+		iarg[3] = SCARG(p, msgflg); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_msgrcv */
+	case 227: {
+		struct netbsd32_msgrcv_args *p = params;
+		iarg[0] = SCARG(p, msqid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msgp).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, msgsz); /* netbsd32_size_t */
+		iarg[3] = SCARG(p, msgtyp); /* netbsd32_long */
+		iarg[4] = SCARG(p, msgflg); /* int */
+		*n_args = 5;
+		break;
+	}
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* netbsd32_shmat */
+	case 228: {
+		struct netbsd32_shmat_args *p = params;
+		iarg[0] = SCARG(p, shmid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, shmaddr).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, shmflg); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_shmctl */
+	case 229: {
+		struct compat_14_netbsd32_shmctl_args *p = params;
+		iarg[0] = SCARG(p, shmid); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_shmid_dsp_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_shmdt */
+	case 230: {
+		struct netbsd32_shmdt_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, shmaddr).i32; /* netbsd32_voidp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_shmget */
+	case 231: {
+		struct netbsd32_shmget_args *p = params;
+		iarg[0] = SCARG(p, key); /* netbsd32_key_t */
+		iarg[1] = SCARG(p, size); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, shmflg); /* int */
+		*n_args = 3;
+		break;
+	}
+#else
+#endif
+	/* netbsd32_clock_gettime */
+	case 232: {
+		struct compat_50_netbsd32_clock_gettime_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* netbsd32_clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp).i32; /* netbsd32_timespec50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_clock_settime */
+	case 233: {
+		struct compat_50_netbsd32_clock_settime_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* netbsd32_clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp).i32; /* netbsd32_timespec50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_clock_getres */
+	case 234: {
+		struct compat_50_netbsd32_clock_getres_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* netbsd32_clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp).i32; /* netbsd32_timespec50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_timer_create */
+	case 235: {
+		struct netbsd32_timer_create_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* netbsd32_clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, evp).i32; /* netbsd32_sigeventp_t */
+		uarg[2] = (intptr_t) SCARG(p, timerid).i32; /* netbsd32_timerp_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_timer_delete */
+	case 236: {
+		struct netbsd32_timer_delete_args *p = params;
+		iarg[0] = SCARG(p, timerid); /* netbsd32_timer_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_timer_settime */
+	case 237: {
+		struct compat_50_netbsd32_timer_settime_args *p = params;
+		iarg[0] = SCARG(p, timerid); /* netbsd32_timer_t */
+		iarg[1] = SCARG(p, flags); /* int */
+		uarg[2] = (intptr_t) SCARG(p, value).i32; /* netbsd32_itimerspec50p_t */
+		uarg[3] = (intptr_t) SCARG(p, ovalue).i32; /* netbsd32_itimerspec50p_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_timer_gettime */
+	case 238: {
+		struct compat_50_netbsd32_timer_gettime_args *p = params;
+		iarg[0] = SCARG(p, timerid); /* netbsd32_timer_t */
+		uarg[1] = (intptr_t) SCARG(p, value).i32; /* netbsd32_itimerspec50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_timer_getoverrun */
+	case 239: {
+		struct netbsd32_timer_getoverrun_args *p = params;
+		iarg[0] = SCARG(p, timerid); /* netbsd32_timer_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_nanosleep */
+	case 240: {
+		struct compat_50_netbsd32_nanosleep_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, rqtp).i32; /* netbsd32_timespec50p_t */
+		uarg[1] = (intptr_t) SCARG(p, rmtp).i32; /* netbsd32_timespec50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_fdatasync */
+	case 241: {
+		struct netbsd32_fdatasync_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_mlockall */
+	case 242: {
+		struct netbsd32_mlockall_args *p = params;
+		iarg[0] = SCARG(p, flags); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_munlockall */
+	case 243: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32___sigtimedwait */
+	case 244: {
+		struct compat_50_netbsd32___sigtimedwait_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set).i32; /* netbsd32_sigsetp_t */
+		uarg[1] = (intptr_t) SCARG(p, info).i32; /* netbsd32_siginfop_t */
+		uarg[2] = (intptr_t) SCARG(p, timeout).i32; /* netbsd32_timespec50p_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32__ksem_init */
+	case 247: {
+		struct netbsd32__ksem_init_args *p = params;
+		uarg[0] = SCARG(p, value); /* unsigned int */
+		uarg[1] = (intptr_t) SCARG(p, idp).i32; /* netbsd32_semidp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32__ksem_open */
+	case 248: {
+		struct netbsd32__ksem_open_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, oflag); /* int */
+		iarg[2] = SCARG(p, mode); /* mode_t */
+		uarg[3] = SCARG(p, value); /* unsigned int */
+		uarg[4] = (intptr_t) SCARG(p, idp).i32; /* netbsd32_semidp_t */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32__ksem_unlink */
+	case 249: {
+		struct netbsd32__ksem_unlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32__ksem_close */
+	case 250: {
+		struct netbsd32__ksem_close_args *p = params;
+		iarg[0] = SCARG(p, id); /* netbsd32_intptr_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32__ksem_post */
+	case 251: {
+		struct netbsd32__ksem_post_args *p = params;
+		iarg[0] = SCARG(p, id); /* netbsd32_intptr_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32__ksem_wait */
+	case 252: {
+		struct netbsd32__ksem_wait_args *p = params;
+		iarg[0] = SCARG(p, id); /* netbsd32_intptr_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32__ksem_trywait */
+	case 253: {
+		struct netbsd32__ksem_trywait_args *p = params;
+		iarg[0] = SCARG(p, id); /* netbsd32_intptr_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32__ksem_getvalue */
+	case 254: {
+		struct netbsd32__ksem_getvalue_args *p = params;
+		iarg[0] = SCARG(p, id); /* netbsd32_intptr_t */
+		uarg[1] = (intptr_t) SCARG(p, value).i32; /* netbsd32_intp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32__ksem_destroy */
+	case 255: {
+		struct netbsd32__ksem_destroy_args *p = params;
+		iarg[0] = SCARG(p, id); /* netbsd32_intptr_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32__ksem_timedwait */
+	case 256: {
+		struct netbsd32__ksem_timedwait_args *p = params;
+		iarg[0] = SCARG(p, id); /* intptr_t */
+		uarg[1] = (intptr_t) SCARG(p, abstime).i32; /* const netbsd32_timespecp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___posix_rename */
+	case 270: {
+		struct netbsd32___posix_rename_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, from).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, to).i32; /* netbsd32_charp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_swapctl */
+	case 271: {
+		struct netbsd32_swapctl_args *p = params;
+		iarg[0] = SCARG(p, cmd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, arg).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, misc); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_getdents */
+	case 272: {
+		struct compat_30_netbsd32_getdents_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, count); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_minherit */
+	case 273: {
+		struct netbsd32_minherit_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, inherit); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_lchmod */
+	case 274: {
+		struct netbsd32_lchmod_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, mode); /* mode_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_lchown */
+	case 275: {
+		struct netbsd32_lchown_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_lutimes */
+	case 276: {
+		struct compat_50_netbsd32_lutimes_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, tptr).i32; /* netbsd32_timeval50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___msync13 */
+	case 277: {
+		struct netbsd32___msync13_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32___stat13 */
+	case 278: {
+		struct compat_30_netbsd32___stat13_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, ub).i32; /* netbsd32_stat13p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___fstat13 */
+	case 279: {
+		struct compat_30_netbsd32___fstat13_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sb).i32; /* netbsd32_stat13p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___lstat13 */
+	case 280: {
+		struct compat_30_netbsd32___lstat13_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, ub).i32; /* netbsd32_stat13p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___sigaltstack14 */
+	case 281: {
+		struct netbsd32___sigaltstack14_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, nss).i32; /* netbsd32_sigaltstackp_t */
+		uarg[1] = (intptr_t) SCARG(p, oss).i32; /* netbsd32_sigaltstackp_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys___vfork14 */
+	case 282: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32___posix_chown */
+	case 283: {
+		struct netbsd32___posix_chown_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32___posix_fchown */
+	case 284: {
+		struct netbsd32___posix_fchown_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32___posix_lchown */
+	case 285: {
+		struct netbsd32___posix_lchown_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_getsid */
+	case 286: {
+		struct netbsd32_getsid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32___clone */
+	case 287: {
+		struct netbsd32___clone_args *p = params;
+		iarg[0] = SCARG(p, flags); /* int */
+		uarg[1] = (intptr_t) SCARG(p, stack).i32; /* netbsd32_voidp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_fktrace */
+	case 288: {
+		struct netbsd32_fktrace_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, ops); /* int */
+		iarg[2] = SCARG(p, facs); /* int */
+		iarg[3] = SCARG(p, pid); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_preadv */
+	case 289: {
+		struct netbsd32_preadv_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, iovp).i32; /* netbsd32_iovecp_t */
+		iarg[2] = SCARG(p, iovcnt); /* int */
+		iarg[3] = SCARG(p, PAD); /* int */
+		iarg[4] = SCARG(p, offset); /* netbsd32_off_t */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_pwritev */
+	case 290: {
+		struct netbsd32_pwritev_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, iovp).i32; /* netbsd32_iovecp_t */
+		iarg[2] = SCARG(p, iovcnt); /* int */
+		iarg[3] = SCARG(p, PAD); /* int */
+		iarg[4] = SCARG(p, offset); /* netbsd32_off_t */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32___sigaction14 */
+	case 291: {
+		struct netbsd32___sigaction14_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		uarg[1] = (intptr_t) SCARG(p, nsa).i32; /* netbsd32_sigactionp_t */
+		uarg[2] = (intptr_t) SCARG(p, osa).i32; /* netbsd32_sigactionp_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32___sigpending14 */
+	case 292: {
+		struct netbsd32___sigpending14_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set).i32; /* netbsd32_sigsetp_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32___sigprocmask14 */
+	case 293: {
+		struct netbsd32___sigprocmask14_args *p = params;
+		iarg[0] = SCARG(p, how); /* int */
+		uarg[1] = (intptr_t) SCARG(p, set).i32; /* netbsd32_sigsetp_t */
+		uarg[2] = (intptr_t) SCARG(p, oset).i32; /* netbsd32_sigsetp_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32___sigsuspend14 */
+	case 294: {
+		struct netbsd32___sigsuspend14_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set).i32; /* netbsd32_sigsetp_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32___sigreturn14 */
+	case 295: {
+		struct compat_16_netbsd32___sigreturn14_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, sigcntxp).i32; /* netbsd32_sigcontextp_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32___getcwd */
+	case 296: {
+		struct netbsd32___getcwd_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, bufp).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, length); /* netbsd32_size_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_fchroot */
+	case 297: {
+		struct netbsd32_fchroot_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_fhopen */
+	case 298: {
+		struct compat_30_netbsd32_fhopen_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp).i32; /* netbsd32_fhandlep_t */
+		iarg[1] = SCARG(p, flags); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_fhstat */
+	case 299: {
+		struct compat_30_netbsd32_fhstat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp).i32; /* netbsd32_fhandlep_t */
+		uarg[1] = (intptr_t) SCARG(p, sb).i32; /* netbsd32_stat13p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_fhstatfs */
+	case 300: {
+		struct compat_20_netbsd32_fhstatfs_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp).i32; /* netbsd32_fhandlep_t */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_stat50p_t */
+		*n_args = 2;
+		break;
+	}
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* netbsd32___semctl14 */
+	case 301: {
+		struct compat_50_netbsd32___semctl14_args *p = params;
+		iarg[0] = SCARG(p, semid); /* int */
+		iarg[1] = SCARG(p, semnum); /* int */
+		iarg[2] = SCARG(p, cmd); /* int */
+		uarg[3] = (intptr_t) SCARG(p, arg).i32; /* netbsd32_semun50p_t */
+		*n_args = 4;
+		break;
+	}
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* netbsd32___msgctl13 */
+	case 302: {
+		struct compat_50_netbsd32___msgctl13_args *p = params;
+		iarg[0] = SCARG(p, msqid); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_msqid_ds50p_t */
+		*n_args = 3;
+		break;
+	}
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* netbsd32___shmctl13 */
+	case 303: {
+		struct compat_50_netbsd32___shmctl13_args *p = params;
+		iarg[0] = SCARG(p, shmid); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_shmid_ds50p_t */
+		*n_args = 3;
+		break;
+	}
+#else
+#endif
+	/* netbsd32_lchflags */
+	case 304: {
+		struct netbsd32_lchflags_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, flags); /* netbsd32_u_long */
+		*n_args = 2;
+		break;
+	}
+	/* sys_issetugid */
+	case 305: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_utrace */
+	case 306: {
+		struct netbsd32_utrace_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, label).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[2] = SCARG(p, len); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_getcontext */
+	case 307: {
+		struct netbsd32_getcontext_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ucp).i32; /* netbsd32_ucontextp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_setcontext */
+	case 308: {
+		struct netbsd32_setcontext_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ucp).i32; /* netbsd32_ucontextp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32__lwp_create */
+	case 309: {
+		struct netbsd32__lwp_create_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ucp).i32; /* netbsd32_ucontextp */
+		iarg[1] = SCARG(p, flags); /* netbsd32_u_long */
+		uarg[2] = (intptr_t) SCARG(p, new_lwp).i32; /* netbsd32_lwpidp */
+		*n_args = 3;
+		break;
+	}
+	/* sys__lwp_exit */
+	case 310: {
+		*n_args = 0;
+		break;
+	}
+	/* sys__lwp_self */
+	case 311: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32__lwp_wait */
+	case 312: {
+		struct netbsd32__lwp_wait_args *p = params;
+		iarg[0] = SCARG(p, wait_for); /* lwpid_t */
+		uarg[1] = (intptr_t) SCARG(p, departed).i32; /* netbsd32_lwpidp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32__lwp_suspend */
+	case 313: {
+		struct netbsd32__lwp_suspend_args *p = params;
+		iarg[0] = SCARG(p, target); /* lwpid_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32__lwp_continue */
+	case 314: {
+		struct netbsd32__lwp_continue_args *p = params;
+		iarg[0] = SCARG(p, target); /* lwpid_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32__lwp_wakeup */
+	case 315: {
+		struct netbsd32__lwp_wakeup_args *p = params;
+		iarg[0] = SCARG(p, target); /* lwpid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys__lwp_getprivate */
+	case 316: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32__lwp_setprivate */
+	case 317: {
+		struct netbsd32__lwp_setprivate_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ptr).i32; /* netbsd32_voidp */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32__lwp_kill */
+	case 318: {
+		struct netbsd32__lwp_kill_args *p = params;
+		iarg[0] = SCARG(p, target); /* lwpid_t */
+		iarg[1] = SCARG(p, signo); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32__lwp_detach */
+	case 319: {
+		struct netbsd32__lwp_detach_args *p = params;
+		iarg[0] = SCARG(p, target); /* lwpid_t */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32__lwp_park */
+	case 320: {
+		struct compat_50_netbsd32__lwp_park_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ts).i32; /* netbsd32_timespec50p_t */
+		iarg[1] = SCARG(p, unpark); /* lwpid_t */
+		uarg[2] = (intptr_t) SCARG(p, hint).i32; /* netbsd32_voidp */
+		uarg[3] = (intptr_t) SCARG(p, unparkhint).i32; /* netbsd32_voidp */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32__lwp_unpark */
+	case 321: {
+		struct netbsd32__lwp_unpark_args *p = params;
+		iarg[0] = SCARG(p, target); /* lwpid_t */
+		uarg[1] = (intptr_t) SCARG(p, hint).i32; /* netbsd32_voidp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32__lwp_unpark_all */
+	case 322: {
+		struct netbsd32__lwp_unpark_all_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, targets).i32; /* netbsd32_lwpidp */
+		iarg[1] = SCARG(p, ntargets); /* netbsd32_size_t */
+		uarg[2] = (intptr_t) SCARG(p, hint).i32; /* netbsd32_voidp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32__lwp_setname */
+	case 323: {
+		struct netbsd32__lwp_setname_args *p = params;
+		iarg[0] = SCARG(p, target); /* lwpid_t */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32__lwp_getname */
+	case 324: {
+		struct netbsd32__lwp_getname_args *p = params;
+		iarg[0] = SCARG(p, target); /* lwpid_t */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, len); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32__lwp_ctl */
+	case 325: {
+		struct netbsd32__lwp_ctl_args *p = params;
+		iarg[0] = SCARG(p, features); /* int */
+		uarg[1] = (intptr_t) SCARG(p, address).i32; /* netbsd32_pointer_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___sigaction_sigtramp */
+	case 340: {
+		struct netbsd32___sigaction_sigtramp_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		uarg[1] = (intptr_t) SCARG(p, nsa).i32; /* netbsd32_sigactionp_t */
+		uarg[2] = (intptr_t) SCARG(p, osa).i32; /* netbsd32_sigactionp_t */
+		uarg[3] = (intptr_t) SCARG(p, tramp).i32; /* netbsd32_voidp */
+		iarg[4] = SCARG(p, vers); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_rasctl */
+	case 343: {
+		struct netbsd32_rasctl_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, len); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, op); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_kqueue */
+	case 344: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_kevent */
+	case 345: {
+		struct compat_50_netbsd32_kevent_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, changelist).i32; /* netbsd32_keventp_t */
+		iarg[2] = SCARG(p, nchanges); /* netbsd32_size_t */
+		uarg[3] = (intptr_t) SCARG(p, eventlist).i32; /* netbsd32_keventp_t */
+		iarg[4] = SCARG(p, nevents); /* netbsd32_size_t */
+		uarg[5] = (intptr_t) SCARG(p, timeout).i32; /* netbsd32_timespec50p_t */
+		*n_args = 6;
+		break;
+	}
+	/* netbsd32__sched_setparam */
+	case 346: {
+		struct netbsd32__sched_setparam_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		iarg[1] = SCARG(p, lid); /* lwpid_t */
+		iarg[2] = SCARG(p, policy); /* int */
+		uarg[3] = (intptr_t) SCARG(p, params).i32; /* const netbsd32_sched_paramp_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32__sched_getparam */
+	case 347: {
+		struct netbsd32__sched_getparam_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		iarg[1] = SCARG(p, lid); /* lwpid_t */
+		uarg[2] = (intptr_t) SCARG(p, policy).i32; /* netbsd32_intp */
+		uarg[3] = (intptr_t) SCARG(p, params).i32; /* netbsd32_sched_paramp_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32__sched_setaffinity */
+	case 348: {
+		struct netbsd32__sched_setaffinity_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		iarg[1] = SCARG(p, lid); /* lwpid_t */
+		iarg[2] = SCARG(p, size); /* netbsd32_size_t */
+		uarg[3] = (intptr_t) SCARG(p, cpuset).i32; /* const netbsd32_cpusetp_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32__sched_getaffinity */
+	case 349: {
+		struct netbsd32__sched_getaffinity_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		iarg[1] = SCARG(p, lid); /* lwpid_t */
+		iarg[2] = SCARG(p, size); /* netbsd32_size_t */
+		uarg[3] = (intptr_t) SCARG(p, cpuset).i32; /* netbsd32_cpusetp_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_sched_yield */
+	case 350: {
+		*n_args = 0;
+		break;
+	}
+	/* netbsd32_fsync_range */
+	case 354: {
+		struct netbsd32_fsync_range_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, flags); /* int */
+		iarg[2] = SCARG(p, start); /* netbsd32_off_t */
+		iarg[3] = SCARG(p, length); /* netbsd32_off_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_uuidgen */
+	case 355: {
+		struct netbsd32_uuidgen_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, store).i32; /* netbsd32_uuidp_t */
+		iarg[1] = SCARG(p, count); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_getvfsstat */
+	case 356: {
+		struct netbsd32_getvfsstat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_statvfsp_t */
+		iarg[1] = SCARG(p, bufsize); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_statvfs1 */
+	case 357: {
+		struct netbsd32_statvfs1_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_statvfsp_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_fstatvfs1 */
+	case 358: {
+		struct netbsd32_fstatvfs1_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_statvfsp_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_fhstatvfs1 */
+	case 359: {
+		struct compat_30_netbsd32_fhstatvfs1_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp).i32; /* netbsd32_fhandlep_t */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_statvfsp_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_extattrctl */
+	case 360: {
+		struct netbsd32_extattrctl_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, filename).i32; /* netbsd32_charp */
+		iarg[3] = SCARG(p, attrnamespace); /* int */
+		uarg[4] = (intptr_t) SCARG(p, attrname).i32; /* netbsd32_charp */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_extattr_set_file */
+	case 361: {
+		struct netbsd32_extattr_set_file_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname).i32; /* netbsd32_charp */
+		uarg[3] = (intptr_t) SCARG(p, data).i32; /* netbsd32_voidp */
+		iarg[4] = SCARG(p, nbytes); /* netbsd32_size_t */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_extattr_get_file */
+	case 362: {
+		struct netbsd32_extattr_get_file_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname).i32; /* netbsd32_charp */
+		uarg[3] = (intptr_t) SCARG(p, data).i32; /* netbsd32_voidp */
+		iarg[4] = SCARG(p, nbytes); /* netbsd32_size_t */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_extattr_delete_file */
+	case 363: {
+		struct netbsd32_extattr_delete_file_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname).i32; /* netbsd32_charp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_extattr_set_fd */
+	case 364: {
+		struct netbsd32_extattr_set_fd_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname).i32; /* netbsd32_charp */
+		uarg[3] = (intptr_t) SCARG(p, data).i32; /* netbsd32_voidp */
+		iarg[4] = SCARG(p, nbytes); /* netbsd32_size_t */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_extattr_get_fd */
+	case 365: {
+		struct netbsd32_extattr_get_fd_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname).i32; /* netbsd32_charp */
+		uarg[3] = (intptr_t) SCARG(p, data).i32; /* netbsd32_voidp */
+		iarg[4] = SCARG(p, nbytes); /* netbsd32_size_t */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_extattr_delete_fd */
+	case 366: {
+		struct netbsd32_extattr_delete_fd_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname).i32; /* netbsd32_charp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_extattr_set_link */
+	case 367: {
+		struct netbsd32_extattr_set_link_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname).i32; /* netbsd32_charp */
+		uarg[3] = (intptr_t) SCARG(p, data).i32; /* netbsd32_voidp */
+		iarg[4] = SCARG(p, nbytes); /* netbsd32_size_t */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_extattr_get_link */
+	case 368: {
+		struct netbsd32_extattr_get_link_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname).i32; /* netbsd32_charp */
+		uarg[3] = (intptr_t) SCARG(p, data).i32; /* netbsd32_voidp */
+		iarg[4] = SCARG(p, nbytes); /* netbsd32_size_t */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_extattr_delete_link */
+	case 369: {
+		struct netbsd32_extattr_delete_link_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname).i32; /* netbsd32_charp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_extattr_list_fd */
+	case 370: {
+		struct netbsd32_extattr_list_fd_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, data).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, nbytes); /* netbsd32_size_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_extattr_list_file */
+	case 371: {
+		struct netbsd32_extattr_list_file_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, data).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, nbytes); /* netbsd32_size_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_extattr_list_link */
+	case 372: {
+		struct netbsd32_extattr_list_link_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, data).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, nbytes); /* netbsd32_size_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_pselect */
+	case 373: {
+		struct compat_50_netbsd32_pselect_args *p = params;
+		iarg[0] = SCARG(p, nd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, in).i32; /* netbsd32_fd_setp_t */
+		uarg[2] = (intptr_t) SCARG(p, ou).i32; /* netbsd32_fd_setp_t */
+		uarg[3] = (intptr_t) SCARG(p, ex).i32; /* netbsd32_fd_setp_t */
+		uarg[4] = (intptr_t) SCARG(p, ts).i32; /* netbsd32_timespec50p_t */
+		uarg[5] = (intptr_t) SCARG(p, mask).i32; /* netbsd32_sigsetp_t */
+		*n_args = 6;
+		break;
+	}
+	/* netbsd32_pollts */
+	case 374: {
+		struct compat_50_netbsd32_pollts_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fds).i32; /* netbsd32_pollfdp_t */
+		uarg[1] = SCARG(p, nfds); /* u_int */
+		uarg[2] = (intptr_t) SCARG(p, ts).i32; /* netbsd32_timespec50p_t */
+		uarg[3] = (intptr_t) SCARG(p, mask).i32; /* netbsd32_sigsetp_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_setxattr */
+	case 375: {
+		struct netbsd32_setxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, value).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, size); /* netbsd32_size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_lsetxattr */
+	case 376: {
+		struct netbsd32_lsetxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, value).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, size); /* netbsd32_size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_fsetxattr */
+	case 377: {
+		struct netbsd32_fsetxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, value).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, size); /* netbsd32_size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_getxattr */
+	case 378: {
+		struct netbsd32_getxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, value).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, size); /* netbsd32_size_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_lgetxattr */
+	case 379: {
+		struct netbsd32_lgetxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, value).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, size); /* netbsd32_size_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_fgetxattr */
+	case 380: {
+		struct netbsd32_fgetxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, value).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, size); /* netbsd32_size_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_listxattr */
+	case 381: {
+		struct netbsd32_listxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, list).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, size); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_llistxattr */
+	case 382: {
+		struct netbsd32_llistxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, list).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, size); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_flistxattr */
+	case 383: {
+		struct netbsd32_flistxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, list).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, size); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_removexattr */
+	case 384: {
+		struct netbsd32_removexattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_lremovexattr */
+	case 385: {
+		struct netbsd32_lremovexattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_fremovexattr */
+	case 386: {
+		struct netbsd32_fremovexattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_charp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___stat30 */
+	case 387: {
+		struct compat_50_netbsd32___stat30_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, ub).i32; /* netbsd32_stat50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___fstat30 */
+	case 388: {
+		struct compat_50_netbsd32___fstat30_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sb).i32; /* netbsd32_stat50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___lstat30 */
+	case 389: {
+		struct compat_50_netbsd32___lstat30_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, ub).i32; /* netbsd32_stat50p_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___getdents30 */
+	case 390: {
+		struct netbsd32___getdents30_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, count); /* netbsd32_size_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32___fhstat30 */
+	case 392: {
+		struct compat_30_netbsd32___fhstat30_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp).i32; /* netbsd32_fhandlep_t */
+		uarg[1] = (intptr_t) SCARG(p, sb).i32; /* netbsd32_stat50p_t */
+		*n_args = 2;
+		break;
+	}
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* netbsd32_ntp_gettime */
+	case 393: {
+		struct compat_50_netbsd32_ntp_gettime_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ntvp).i32; /* netbsd32_ntptimeval50p_t */
+		*n_args = 1;
+		break;
+	}
+#else
+#endif
+	/* netbsd32___socket30 */
+	case 394: {
+		struct netbsd32___socket30_args *p = params;
+		iarg[0] = SCARG(p, domain); /* int */
+		iarg[1] = SCARG(p, type); /* int */
+		iarg[2] = SCARG(p, protocol); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32___getfh30 */
+	case 395: {
+		struct netbsd32___getfh30_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fname).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, fhp).i32; /* netbsd32_pointer_t */
+		uarg[2] = (intptr_t) SCARG(p, fh_size).i32; /* netbsd32_size_tp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32___fhopen40 */
+	case 396: {
+		struct netbsd32___fhopen40_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp).i32; /* netbsd32_pointer_t */
+		iarg[1] = SCARG(p, fh_size); /* netbsd32_size_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32___fhstatvfs140 */
+	case 397: {
+		struct netbsd32___fhstatvfs140_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp).i32; /* netbsd32_pointer_t */
+		iarg[1] = SCARG(p, fh_size); /* netbsd32_size_t */
+		uarg[2] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_statvfsp_t */
+		iarg[3] = SCARG(p, flags); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32___fhstat40 */
+	case 398: {
+		struct compat_50_netbsd32___fhstat40_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp).i32; /* netbsd32_pointer_t */
+		iarg[1] = SCARG(p, fh_size); /* netbsd32_size_t */
+		uarg[2] = (intptr_t) SCARG(p, sb).i32; /* netbsd32_stat50p_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32___mount50 */
+	case 410: {
+		struct netbsd32___mount50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, type).i32; /* netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* netbsd32_charp */
+		iarg[2] = SCARG(p, flags); /* int */
+		uarg[3] = (intptr_t) SCARG(p, data).i32; /* netbsd32_voidp */
+		iarg[4] = SCARG(p, data_len); /* netbsd32_size_t */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_mremap */
+	case 411: {
+		struct netbsd32_mremap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, old_address).i32; /* netbsd32_voidp */
+		iarg[1] = SCARG(p, old_size); /* netbsd32_size_t */
+		uarg[2] = (intptr_t) SCARG(p, new_address).i32; /* netbsd32_voidp */
+		iarg[3] = SCARG(p, new_size); /* netbsd32_size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32___posix_fadvise50 */
+	case 416: {
+		struct netbsd32___posix_fadvise50_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, PAD); /* int */
+		iarg[2] = SCARG(p, offset); /* netbsd32_off_t */
+		iarg[3] = SCARG(p, len); /* netbsd32_off_t */
+		iarg[4] = SCARG(p, advice); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32___select50 */
+	case 417: {
+		struct netbsd32___select50_args *p = params;
+		iarg[0] = SCARG(p, nd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, in).i32; /* netbsd32_fd_setp_t */
+		uarg[2] = (intptr_t) SCARG(p, ou).i32; /* netbsd32_fd_setp_t */
+		uarg[3] = (intptr_t) SCARG(p, ex).i32; /* netbsd32_fd_setp_t */
+		uarg[4] = (intptr_t) SCARG(p, tv).i32; /* netbsd32_timevalp_t */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32___gettimeofday50 */
+	case 418: {
+		struct netbsd32___gettimeofday50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tp).i32; /* netbsd32_timevalp_t */
+		uarg[1] = (intptr_t) SCARG(p, tzp).i32; /* netbsd32_voidp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___settimeofday50 */
+	case 419: {
+		struct netbsd32___settimeofday50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tv).i32; /* const netbsd32_timevalp_t */
+		uarg[1] = (intptr_t) SCARG(p, tzp).i32; /* const netbsd32_voidp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___utimes50 */
+	case 420: {
+		struct netbsd32___utimes50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, tptr).i32; /* const netbsd32_timevalp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___adjtime50 */
+	case 421: {
+		struct netbsd32___adjtime50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, delta).i32; /* const netbsd32_timevalp_t */
+		uarg[1] = (intptr_t) SCARG(p, olddelta).i32; /* netbsd32_timevalp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___futimes50 */
+	case 423: {
+		struct netbsd32___futimes50_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, tptr).i32; /* const netbsd32_timevalp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___lutimes50 */
+	case 424: {
+		struct netbsd32___lutimes50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, tptr).i32; /* const netbsd32_timevalp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___setitimer50 */
+	case 425: {
+		struct netbsd32___setitimer50_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, itv).i32; /* const netbsd32_itimervalp_t */
+		uarg[2] = (intptr_t) SCARG(p, oitv).i32; /* netbsd32_itimervalp_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32___getitimer50 */
+	case 426: {
+		struct netbsd32___getitimer50_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, itv).i32; /* netbsd32_itimervalp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___clock_gettime50 */
+	case 427: {
+		struct netbsd32___clock_gettime50_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp).i32; /* netbsd32_timespecp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___clock_settime50 */
+	case 428: {
+		struct netbsd32___clock_settime50_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp).i32; /* const netbsd32_timespecp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___clock_getres50 */
+	case 429: {
+		struct netbsd32___clock_getres50_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp).i32; /* netbsd32_timespecp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___nanosleep50 */
+	case 430: {
+		struct netbsd32___nanosleep50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, rqtp).i32; /* const netbsd32_timespecp_t */
+		uarg[1] = (intptr_t) SCARG(p, rmtp).i32; /* netbsd32_timespecp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_____sigtimedwait50 */
+	case 431: {
+		struct netbsd32_____sigtimedwait50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set).i32; /* const netbsd32_sigsetp_t */
+		uarg[1] = (intptr_t) SCARG(p, info).i32; /* netbsd32_siginfop_t */
+		uarg[2] = (intptr_t) SCARG(p, timeout).i32; /* netbsd32_timespecp_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32__lwp_park */
+	case 434: {
+		struct compat_60_netbsd32__lwp_park_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ts).i32; /* const netbsd32_timespecp_t */
+		iarg[1] = SCARG(p, unpark); /* lwpid_t */
+		uarg[2] = (intptr_t) SCARG(p, hint).i32; /* const netbsd32_voidp */
+		uarg[3] = (intptr_t) SCARG(p, unparkhint).i32; /* const netbsd32_voidp */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32___kevent50 */
+	case 435: {
+		struct netbsd32___kevent50_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, changelist).i32; /* const netbsd32_keventp_t */
+		iarg[2] = SCARG(p, nchanges); /* netbsd32_size_t */
+		uarg[3] = (intptr_t) SCARG(p, eventlist).i32; /* netbsd32_keventp_t */
+		iarg[4] = SCARG(p, nevents); /* netbsd32_size_t */
+		uarg[5] = (intptr_t) SCARG(p, timeout).i32; /* const netbsd32_timespecp_t */
+		*n_args = 6;
+		break;
+	}
+	/* netbsd32___pselect50 */
+	case 436: {
+		struct netbsd32___pselect50_args *p = params;
+		iarg[0] = SCARG(p, nd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, in).i32; /* netbsd32_fd_setp_t */
+		uarg[2] = (intptr_t) SCARG(p, ou).i32; /* netbsd32_fd_setp_t */
+		uarg[3] = (intptr_t) SCARG(p, ex).i32; /* netbsd32_fd_setp_t */
+		uarg[4] = (intptr_t) SCARG(p, ts).i32; /* const netbsd32_timespecp_t */
+		uarg[5] = (intptr_t) SCARG(p, mask).i32; /* const netbsd32_sigsetp_t */
+		*n_args = 6;
+		break;
+	}
+	/* netbsd32___pollts50 */
+	case 437: {
+		struct netbsd32___pollts50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fds).i32; /* netbsd32_pollfdp_t */
+		uarg[1] = SCARG(p, nfds); /* u_int */
+		uarg[2] = (intptr_t) SCARG(p, ts).i32; /* const netbsd32_timespecp_t */
+		uarg[3] = (intptr_t) SCARG(p, mask).i32; /* const netbsd32_sigsetp_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32___stat50 */
+	case 439: {
+		struct netbsd32___stat50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, ub).i32; /* netbsd32_statp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___fstat50 */
+	case 440: {
+		struct netbsd32___fstat50_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sb).i32; /* netbsd32_statp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___lstat50 */
+	case 441: {
+		struct netbsd32___lstat50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, ub).i32; /* netbsd32_statp_t */
+		*n_args = 2;
+		break;
+	}
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* netbsd32_____semctl50 */
+	case 442: {
+		struct netbsd32_____semctl50_args *p = params;
+		iarg[0] = SCARG(p, semid); /* int */
+		iarg[1] = SCARG(p, semnum); /* int */
+		iarg[2] = SCARG(p, cmd); /* int */
+		uarg[3] = (intptr_t) SCARG(p, arg).i32; /* netbsd32_semunp_t */
+		*n_args = 4;
+		break;
+	}
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* netbsd32___shmctl50 */
+	case 443: {
+		struct netbsd32___shmctl50_args *p = params;
+		iarg[0] = SCARG(p, shmid); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_shmid_dsp_t */
+		*n_args = 3;
+		break;
+	}
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* netbsd32___msgctl50 */
+	case 444: {
+		struct netbsd32___msgctl50_args *p = params;
+		iarg[0] = SCARG(p, msqid); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_msqid_dsp_t */
+		*n_args = 3;
+		break;
+	}
+#else
+#endif
+	/* netbsd32___getrusage50 */
+	case 445: {
+		struct netbsd32___getrusage50_args *p = params;
+		iarg[0] = SCARG(p, who); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rusage).i32; /* netbsd32_rusagep_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___timer_settime50 */
+	case 446: {
+		struct netbsd32___timer_settime50_args *p = params;
+		iarg[0] = SCARG(p, timerid); /* timer_t */
+		iarg[1] = SCARG(p, flags); /* int */
+		uarg[2] = (intptr_t) SCARG(p, value).i32; /* const netbsd32_itimerspecp_t */
+		uarg[3] = (intptr_t) SCARG(p, ovalue).i32; /* netbsd32_itimerspecp_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32___timer_gettime50 */
+	case 447: {
+		struct netbsd32___timer_gettime50_args *p = params;
+		iarg[0] = SCARG(p, timerid); /* timer_t */
+		uarg[1] = (intptr_t) SCARG(p, value).i32; /* netbsd32_itimerspecp_t */
+		*n_args = 2;
+		break;
+	}
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* netbsd32___ntp_gettime50 */
+	case 448: {
+		struct netbsd32___ntp_gettime50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ntvp).i32; /* netbsd32_ntptimevalp_t */
+		*n_args = 1;
+		break;
+	}
+#else
+#endif
+	/* netbsd32___wait450 */
+	case 449: {
+		struct netbsd32___wait450_args *p = params;
+		iarg[0] = SCARG(p, pid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, status).i32; /* netbsd32_intp */
+		iarg[2] = SCARG(p, options); /* int */
+		uarg[3] = (intptr_t) SCARG(p, rusage).i32; /* netbsd32_rusagep_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32___mknod50 */
+	case 450: {
+		struct netbsd32___mknod50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		iarg[1] = SCARG(p, mode); /* mode_t */
+		iarg[2] = SCARG(p, dev); /* netbsd32_dev_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32___fhstat50 */
+	case 451: {
+		struct netbsd32___fhstat50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp).i32; /* const netbsd32_voidp */
+		iarg[1] = SCARG(p, fh_size); /* netbsd32_size_t */
+		uarg[2] = (intptr_t) SCARG(p, sb).i32; /* netbsd32_statp_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_pipe2 */
+	case 453: {
+		struct netbsd32_pipe2_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fildes).i32; /* netbsd32_intp */
+		iarg[1] = SCARG(p, flags); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_dup3 */
+	case 454: {
+		struct netbsd32_dup3_args *p = params;
+		iarg[0] = SCARG(p, from); /* int */
+		iarg[1] = SCARG(p, to); /* int */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_kqueue1 */
+	case 455: {
+		struct netbsd32_kqueue1_args *p = params;
+		iarg[0] = SCARG(p, flags); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* netbsd32_paccept */
+	case 456: {
+		struct netbsd32_paccept_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name).i32; /* netbsd32_sockaddrp_t */
+		uarg[2] = (intptr_t) SCARG(p, anamelen).i32; /* netbsd32_socklenp_t */
+		uarg[3] = (intptr_t) SCARG(p, mask).i32; /* const netbsd32_sigsetp_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_linkat */
+	case 457: {
+		struct netbsd32_linkat_args *p = params;
+		iarg[0] = SCARG(p, fd1); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name1).i32; /* const netbsd32_charp */
+		iarg[2] = SCARG(p, fd2); /* int */
+		uarg[3] = (intptr_t) SCARG(p, name2).i32; /* const netbsd32_charp */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_renameat */
+	case 458: {
+		struct netbsd32_renameat_args *p = params;
+		iarg[0] = SCARG(p, fromfd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, from).i32; /* const netbsd32_charp */
+		iarg[2] = SCARG(p, tofd); /* int */
+		uarg[3] = (intptr_t) SCARG(p, to).i32; /* const netbsd32_charp */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_mkfifoat */
+	case 459: {
+		struct netbsd32_mkfifoat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		iarg[2] = SCARG(p, mode); /* mode_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_mknodat */
+	case 460: {
+		struct netbsd32_mknodat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		iarg[2] = SCARG(p, mode); /* mode_t */
+		iarg[3] = SCARG(p, PAD); /* int */
+		iarg[4] = SCARG(p, dev); /* netbsd32_dev_t */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_mkdirat */
+	case 461: {
+		struct netbsd32_mkdirat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		iarg[2] = SCARG(p, mode); /* mode_t */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_faccessat */
+	case 462: {
+		struct netbsd32_faccessat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		iarg[2] = SCARG(p, amode); /* int */
+		iarg[3] = SCARG(p, flag); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_fchmodat */
+	case 463: {
+		struct netbsd32_fchmodat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		iarg[2] = SCARG(p, mode); /* mode_t */
+		iarg[3] = SCARG(p, flag); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_fchownat */
+	case 464: {
+		struct netbsd32_fchownat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		uarg[2] = SCARG(p, owner); /* uid_t */
+		iarg[3] = SCARG(p, group); /* gid_t */
+		iarg[4] = SCARG(p, flag); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* netbsd32_fexecve */
+	case 465: {
+		struct netbsd32_fexecve_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, argp).i32; /* netbsd32_charpp */
+		uarg[2] = (intptr_t) SCARG(p, envp).i32; /* netbsd32_charpp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_fstatat */
+	case 466: {
+		struct netbsd32_fstatat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_statp_t */
+		iarg[3] = SCARG(p, flag); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_utimensat */
+	case 467: {
+		struct netbsd32_utimensat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, tptr).i32; /* const netbsd32_timespecp_t */
+		iarg[3] = SCARG(p, flag); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_openat */
+	case 468: {
+		struct netbsd32_openat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		iarg[2] = SCARG(p, oflags); /* int */
+		iarg[3] = SCARG(p, mode); /* mode_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_readlinkat */
+	case 469: {
+		struct netbsd32_readlinkat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, buf).i32; /* netbsd32_charp */
+		uarg[3] = SCARG(p, bufsize); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32_symlinkat */
+	case 470: {
+		struct netbsd32_symlinkat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path1).i32; /* const netbsd32_charp */
+		iarg[1] = SCARG(p, fd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, path2).i32; /* const netbsd32_charp */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_unlinkat */
+	case 471: {
+		struct netbsd32_unlinkat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		iarg[2] = SCARG(p, flag); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* netbsd32_futimens */
+	case 472: {
+		struct netbsd32_futimens_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, tptr).i32; /* const netbsd32_timespecp_t */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32___quotactl */
+	case 473: {
+		struct netbsd32___quotactl_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		uarg[1] = (intptr_t) SCARG(p, args).i32; /* netbsd32_voidp */
+		*n_args = 2;
+		break;
+	}
+	/* netbsd32_posix_spawn */
+	case 474: {
+		struct netbsd32_posix_spawn_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, pid).i32; /* netbsd32_pid_tp */
+		uarg[1] = (intptr_t) SCARG(p, path).i32; /* const netbsd32_charp */
+		uarg[2] = (intptr_t) SCARG(p, file_actions).i32; /* const netbsd32_posix_spawn_file_actionsp */
+		uarg[3] = (intptr_t) SCARG(p, attrp).i32; /* const netbsd32_posix_spawnattrp */
+		uarg[4] = (intptr_t) SCARG(p, argv).i32; /* netbsd32_charpp */
+		uarg[5] = (intptr_t) SCARG(p, envp).i32; /* netbsd32_charpp */
+		*n_args = 6;
+		break;
+	}
+	/* netbsd32_clock_nanosleep */
+	case 477: {
+		struct netbsd32_clock_nanosleep_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* netbsd32_clockid_t */
+		iarg[1] = SCARG(p, flags); /* int */
+		uarg[2] = (intptr_t) SCARG(p, rqtp).i32; /* const netbsd32_timespecp_t */
+		uarg[3] = (intptr_t) SCARG(p, rmtp).i32; /* netbsd32_timespecp_t */
+		*n_args = 4;
+		break;
+	}
+	/* netbsd32____lwp_park60 */
+	case 478: {
+		struct netbsd32____lwp_park60_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* netbsd32_clockid_t */
+		iarg[1] = SCARG(p, flags); /* int */
+		uarg[2] = (intptr_t) SCARG(p, ts).i32; /* const netbsd32_timespecp_t */
+		iarg[3] = SCARG(p, unpark); /* lwpid_t */
+		uarg[4] = (intptr_t) SCARG(p, hint).i32; /* netbsd32_voidp */
+		uarg[5] = (intptr_t) SCARG(p, unparkhint).i32; /* netbsd32_voidp */
+		*n_args = 6;
+		break;
+	}
+	default:
+		*n_args = 0;
+		break;
+	};
+}
+static void
+systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
+{
+	const char *p = NULL;
+	switch (sysnum) {
+	/* netbsd32_syscall */
+	case 0:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "register32_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_exit */
+	case 1:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fork */
+	case 2:
+		break;
+	/* netbsd32_read */
+	case 3:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_write */
+	case 4:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_open */
+	case 5:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_close */
+	case 6:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_wait4 */
+	case 7:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_intp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "netbsd32_rusage50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_ocreat */
+	case 8:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_link */
+	case 9:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_unlink */
+	case 10:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_chdir */
+	case 12:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fchdir */
+	case 13:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mknod */
+	case 14:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "mode_t";
+			break;
+		case 2:
+			p = "uint32_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_chmod */
+	case 15:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_chown */
+	case 16:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_break */
+	case 17:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getfsstat */
+	case 18:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_statfsp_t";
+			break;
+		case 1:
+			p = "netbsd32_long";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_olseek */
+	case 19:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_long";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpid */
+	case 20:
+		break;
+	/* netbsd32_mount */
+	case 21:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_unmount */
+	case 22:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setuid */
+	case 23:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getuid */
+	case 24:
+		break;
+	/* sys_geteuid */
+	case 25:
+		break;
+	/* netbsd32_ptrace */
+	case 26:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "pid_t";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_recvmsg */
+	case 27:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_msghdrp_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_sendmsg */
+	case 28:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_msghdrp_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_recvfrom */
+	case 29:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "netbsd32_sockaddrp_t";
+			break;
+		case 5:
+			p = "netbsd32_intp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_accept */
+	case 30:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_sockaddrp_t";
+			break;
+		case 2:
+			p = "netbsd32_intp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getpeername */
+	case 31:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_sockaddrp_t";
+			break;
+		case 2:
+			p = "netbsd32_intp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getsockname */
+	case 32:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_sockaddrp_t";
+			break;
+		case 2:
+			p = "netbsd32_intp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_access */
+	case 33:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_chflags */
+	case 34:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_u_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fchflags */
+	case 35:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_u_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sync */
+	case 36:
+		break;
+	/* netbsd32_kill */
+	case 37:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_stat43 */
+	case 38:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_stat43p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getppid */
+	case 39:
+		break;
+	/* netbsd32_lstat43 */
+	case 40:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_stat43p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_dup */
+	case 41:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_pipe */
+	case 42:
+		break;
+	/* sys_getegid */
+	case 43:
+		break;
+	/* netbsd32_profil */
+	case 44:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "netbsd32_u_long";
+			break;
+		case 3:
+			p = "u_int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_ktrace */
+	case 45:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_sigaction */
+	case 46:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_sigactionp_t";
+			break;
+		case 2:
+			p = "netbsd32_sigactionp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getgid */
+	case 47:
+		break;
+	/* netbsd32_sigprocmask */
+	case 48:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___getlogin */
+	case 49:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setlogin */
+	case 50:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_acct */
+	case 51:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sigpending */
+	case 52:
+		break;
+	/* netbsd32_sigaltstack13 */
+	case 53:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_sigaltstack13p_t";
+			break;
+		case 1:
+			p = "netbsd32_sigaltstack13p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_ioctl */
+	case 54:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_u_long";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_reboot */
+	case 55:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_revoke */
+	case 56:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_symlink */
+	case 57:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_readlink */
+	case 58:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_execve */
+	case 59:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charpp";
+			break;
+		case 2:
+			p = "netbsd32_charpp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_umask */
+	case 60:
+		switch(ndx) {
+		case 0:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_chroot */
+	case 61:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fstat43 */
+	case 62:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_stat43p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_ogetkerninfo */
+	case 63:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_intp";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpagesize */
+	case 64:
+		break;
+	/* netbsd32_msync */
+	case 65:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_vfork */
+	case 66:
+		break;
+	/* netbsd32_sbrk */
+	case 69:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_intptr_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_sstk */
+	case 70:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_ommap */
+	case 71:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "int";
+			break;
+		case 5:
+			p = "netbsd32_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_ovadvise */
+	case 72:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_munmap */
+	case 73:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mprotect */
+	case 74:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_madvise */
+	case 75:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mincore */
+	case 78:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getgroups */
+	case 79:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_gid_tp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setgroups */
+	case 80:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_gid_tp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpgrp */
+	case 81:
+		break;
+	/* netbsd32_setpgid */
+	case 82:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setitimer */
+	case 83:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_itimerval50p_t";
+			break;
+		case 2:
+			p = "netbsd32_itimerval50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_wait */
+	case 84:
+		break;
+	/* netbsd32_oswapon */
+	case 85:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getitimer */
+	case 86:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_itimerval50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_ogethostname */
+	case 87:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_osethostname */
+	case 88:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getdtablesize */
+	case 89:
+		break;
+	/* netbsd32_dup2 */
+	case 90:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fcntl */
+	case 92:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_select */
+	case 93:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_fd_setp_t";
+			break;
+		case 2:
+			p = "netbsd32_fd_setp_t";
+			break;
+		case 3:
+			p = "netbsd32_fd_setp_t";
+			break;
+		case 4:
+			p = "netbsd32_timeval50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fsync */
+	case 95:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setpriority */
+	case 96:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_socket */
+	case 97:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_connect */
+	case 98:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_sockaddrp_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_oaccept */
+	case 99:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_intp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getpriority */
+	case 100:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_osend */
+	case 101:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_orecv */
+	case 102:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_sigreturn */
+	case 103:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_sigcontextp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_bind */
+	case 104:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_sockaddrp_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setsockopt */
+	case 105:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "netbsd32_voidp";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_listen */
+	case 106:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_osigvec */
+	case 108:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_sigvecp_t";
+			break;
+		case 2:
+			p = "netbsd32_sigvecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_sigblock */
+	case 109:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_sigsetmask */
+	case 110:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_sigsuspend */
+	case 111:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_osigstack */
+	case 112:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_sigstackp_t";
+			break;
+		case 1:
+			p = "netbsd32_sigstackp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_orecvmsg */
+	case 113:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_omsghdrp_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_osendmsg */
+	case 114:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_gettimeofday */
+	case 116:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_timeval50p_t";
+			break;
+		case 1:
+			p = "netbsd32_timezonep_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getrusage */
+	case 117:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_rusage50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getsockopt */
+	case 118:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "netbsd32_voidp";
+			break;
+		case 4:
+			p = "netbsd32_intp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_readv */
+	case 120:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_iovecp_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_writev */
+	case 121:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_iovecp_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_settimeofday */
+	case 122:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_timeval50p_t";
+			break;
+		case 1:
+			p = "netbsd32_timezonep_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fchown */
+	case 123:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fchmod */
+	case 124:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_orecvfrom */
+	case 125:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "netbsd32_voidp";
+			break;
+		case 5:
+			p = "netbsd32_intp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setreuid */
+	case 126:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setregid */
+	case 127:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		case 1:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_rename */
+	case 128:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_otruncate */
+	case 129:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_oftruncate */
+	case 130:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_flock */
+	case 131:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mkfifo */
+	case 132:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_sendto */
+	case 133:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "netbsd32_sockaddrp_t";
+			break;
+		case 5:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_shutdown */
+	case 134:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_socketpair */
+	case 135:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "netbsd32_intp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mkdir */
+	case 136:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_rmdir */
+	case 137:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_utimes */
+	case 138:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_timeval50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_adjtime */
+	case 140:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_timeval50p_t";
+			break;
+		case 1:
+			p = "netbsd32_timeval50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_ogetpeername */
+	case 141:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_intp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_gethostid */
+	case 142:
+		break;
+	/* netbsd32_sethostid */
+	case 143:
+		switch(ndx) {
+		case 0:
+			p = "int32_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_ogetrlimit */
+	case 144:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_orlimitp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_osetrlimit */
+	case 145:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_orlimitp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_killpg */
+	case 146:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setsid */
+	case 147:
+		break;
+	/* netbsd32_quotactl */
+	case 148:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_quota */
+	case 149:
+		break;
+	/* netbsd32_ogetsockname */
+	case 150:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_intp";
+			break;
+		default:
+			break;
+		};
+		break;
+#if defined(NFSSERVER) || !defined(_KERNEL_OPT)
+	/* netbsd32_nfssvc */
+	case 155:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* netbsd32_ogetdirentries */
+	case 156:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "u_int";
+			break;
+		case 3:
+			p = "netbsd32_longp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_statfs */
+	case 157:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_statfsp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fstatfs */
+	case 158:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_statfsp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getfh */
+	case 161:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_compat_30_fhandlep_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_ogetdomainname */
+	case 162:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_osetdomainname */
+	case 163:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_uname */
+	case 164:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_outsnamep_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_sysarch */
+	case 165:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* netbsd32_semsys */
+	case 169:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* netbsd32_msgsys */
+	case 170:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "int";
+			break;
+		case 5:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* netbsd32_shmsys */
+	case 171:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* netbsd32_pread */
+	case 173:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "netbsd32_off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_pwrite */
+	case 174:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "netbsd32_off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* netbsd32_ntp_gettime */
+	case 175:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_ntptimeval50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_ntp_adjtime */
+	case 176:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_timexp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* netbsd32_setgid */
+	case 181:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setegid */
+	case 182:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_seteuid */
+	case 183:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_stat12 */
+	case 188:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_stat12p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fstat12 */
+	case 189:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_stat12p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_lstat12 */
+	case 190:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_stat12p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_pathconf */
+	case 191:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fpathconf */
+	case 192:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getrlimit */
+	case 194:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_rlimitp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setrlimit */
+	case 195:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_rlimitp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getdirentries */
+	case 196:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "u_int";
+			break;
+		case 3:
+			p = "netbsd32_longp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mmap */
+	case 197:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "int";
+			break;
+		case 5:
+			p = "netbsd32_long";
+			break;
+		case 6:
+			p = "netbsd32_off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32____syscall */
+	case 198:
+		switch(ndx) {
+		case 0:
+			p = "quad_t";
+			break;
+		case 1:
+			p = "register32_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_lseek */
+	case 199:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_off_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_truncate */
+	case 200:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_ftruncate */
+	case 201:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___sysctl */
+	case 202:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_intp";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_tp";
+			break;
+		case 4:
+			p = "netbsd32_voidp";
+			break;
+		case 5:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mlock */
+	case 203:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_munlock */
+	case 204:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_undelete */
+	case 205:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_futimes */
+	case 206:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_timeval50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getpgid */
+	case 207:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_reboot */
+	case 208:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_poll */
+	case 209:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_pollfdp_t";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* netbsd32___semctl */
+	case 220:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "netbsd32_semunu_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_semget */
+	case 221:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_key_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_semop */
+	case 222:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_sembufp_t";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_semconfig */
+	case 223:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* netbsd32_msgctl */
+	case 224:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_msqid_ds14p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_msgget */
+	case 225:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_key_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_msgsnd */
+	case 226:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_msgrcv */
+	case 227:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		case 3:
+			p = "netbsd32_long";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* netbsd32_shmat */
+	case 228:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_shmctl */
+	case 229:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_shmid_dsp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_shmdt */
+	case 230:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_shmget */
+	case 231:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_key_t";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* netbsd32_clock_gettime */
+	case 232:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_clockid_t";
+			break;
+		case 1:
+			p = "netbsd32_timespec50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_clock_settime */
+	case 233:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_clockid_t";
+			break;
+		case 1:
+			p = "netbsd32_timespec50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_clock_getres */
+	case 234:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_clockid_t";
+			break;
+		case 1:
+			p = "netbsd32_timespec50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_timer_create */
+	case 235:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_clockid_t";
+			break;
+		case 1:
+			p = "netbsd32_sigeventp_t";
+			break;
+		case 2:
+			p = "netbsd32_timerp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_timer_delete */
+	case 236:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_timer_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_timer_settime */
+	case 237:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_timer_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_itimerspec50p_t";
+			break;
+		case 3:
+			p = "netbsd32_itimerspec50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_timer_gettime */
+	case 238:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_timer_t";
+			break;
+		case 1:
+			p = "netbsd32_itimerspec50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_timer_getoverrun */
+	case 239:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_timer_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_nanosleep */
+	case 240:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_timespec50p_t";
+			break;
+		case 1:
+			p = "netbsd32_timespec50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fdatasync */
+	case 241:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mlockall */
+	case 242:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_munlockall */
+	case 243:
+		break;
+	/* netbsd32___sigtimedwait */
+	case 244:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_sigsetp_t";
+			break;
+		case 1:
+			p = "netbsd32_siginfop_t";
+			break;
+		case 2:
+			p = "netbsd32_timespec50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__ksem_init */
+	case 247:
+		switch(ndx) {
+		case 0:
+			p = "unsigned int";
+			break;
+		case 1:
+			p = "netbsd32_semidp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__ksem_open */
+	case 248:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "mode_t";
+			break;
+		case 3:
+			p = "unsigned int";
+			break;
+		case 4:
+			p = "netbsd32_semidp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__ksem_unlink */
+	case 249:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__ksem_close */
+	case 250:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_intptr_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__ksem_post */
+	case 251:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_intptr_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__ksem_wait */
+	case 252:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_intptr_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__ksem_trywait */
+	case 253:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_intptr_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__ksem_getvalue */
+	case 254:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_intptr_t";
+			break;
+		case 1:
+			p = "netbsd32_intp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__ksem_destroy */
+	case 255:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_intptr_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__ksem_timedwait */
+	case 256:
+		switch(ndx) {
+		case 0:
+			p = "intptr_t";
+			break;
+		case 1:
+			p = "const netbsd32_timespecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___posix_rename */
+	case 270:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_swapctl */
+	case 271:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getdents */
+	case 272:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_minherit */
+	case 273:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_lchmod */
+	case 274:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_lchown */
+	case 275:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_lutimes */
+	case 276:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_timeval50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___msync13 */
+	case 277:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___stat13 */
+	case 278:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_stat13p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___fstat13 */
+	case 279:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_stat13p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___lstat13 */
+	case 280:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_stat13p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___sigaltstack14 */
+	case 281:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_sigaltstackp_t";
+			break;
+		case 1:
+			p = "netbsd32_sigaltstackp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___vfork14 */
+	case 282:
+		break;
+	/* netbsd32___posix_chown */
+	case 283:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___posix_fchown */
+	case 284:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___posix_lchown */
+	case 285:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getsid */
+	case 286:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___clone */
+	case 287:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fktrace */
+	case 288:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_preadv */
+	case 289:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_iovecp_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "netbsd32_off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_pwritev */
+	case 290:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_iovecp_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "netbsd32_off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___sigaction14 */
+	case 291:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_sigactionp_t";
+			break;
+		case 2:
+			p = "netbsd32_sigactionp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___sigpending14 */
+	case 292:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_sigsetp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___sigprocmask14 */
+	case 293:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_sigsetp_t";
+			break;
+		case 2:
+			p = "netbsd32_sigsetp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___sigsuspend14 */
+	case 294:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_sigsetp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___sigreturn14 */
+	case 295:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_sigcontextp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___getcwd */
+	case 296:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fchroot */
+	case 297:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fhopen */
+	case 298:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_fhandlep_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fhstat */
+	case 299:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_fhandlep_t";
+			break;
+		case 1:
+			p = "netbsd32_stat13p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fhstatfs */
+	case 300:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_fhandlep_t";
+			break;
+		case 1:
+			p = "netbsd32_stat50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* netbsd32___semctl14 */
+	case 301:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "netbsd32_semun50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* netbsd32___msgctl13 */
+	case 302:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_msqid_ds50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* netbsd32___shmctl13 */
+	case 303:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_shmid_ds50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* netbsd32_lchflags */
+	case 304:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_u_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_issetugid */
+	case 305:
+		break;
+	/* netbsd32_utrace */
+	case 306:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getcontext */
+	case 307:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_ucontextp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setcontext */
+	case 308:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_ucontextp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__lwp_create */
+	case 309:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_ucontextp";
+			break;
+		case 1:
+			p = "netbsd32_u_long";
+			break;
+		case 2:
+			p = "netbsd32_lwpidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_exit */
+	case 310:
+		break;
+	/* sys__lwp_self */
+	case 311:
+		break;
+	/* netbsd32__lwp_wait */
+	case 312:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		case 1:
+			p = "netbsd32_lwpidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__lwp_suspend */
+	case 313:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__lwp_continue */
+	case 314:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__lwp_wakeup */
+	case 315:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_getprivate */
+	case 316:
+		break;
+	/* netbsd32__lwp_setprivate */
+	case 317:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__lwp_kill */
+	case 318:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__lwp_detach */
+	case 319:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__lwp_park */
+	case 320:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_timespec50p_t";
+			break;
+		case 1:
+			p = "lwpid_t";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__lwp_unpark */
+	case 321:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__lwp_unpark_all */
+	case 322:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_lwpidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__lwp_setname */
+	case 323:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__lwp_getname */
+	case 324:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__lwp_ctl */
+	case 325:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_pointer_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___sigaction_sigtramp */
+	case 340:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_sigactionp_t";
+			break;
+		case 2:
+			p = "netbsd32_sigactionp_t";
+			break;
+		case 3:
+			p = "netbsd32_voidp";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_rasctl */
+	case 343:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_kqueue */
+	case 344:
+		break;
+	/* netbsd32_kevent */
+	case 345:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_keventp_t";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		case 3:
+			p = "netbsd32_keventp_t";
+			break;
+		case 4:
+			p = "netbsd32_size_t";
+			break;
+		case 5:
+			p = "netbsd32_timespec50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__sched_setparam */
+	case 346:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "lwpid_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "const netbsd32_sched_paramp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__sched_getparam */
+	case 347:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "lwpid_t";
+			break;
+		case 2:
+			p = "netbsd32_intp";
+			break;
+		case 3:
+			p = "netbsd32_sched_paramp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__sched_setaffinity */
+	case 348:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "lwpid_t";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		case 3:
+			p = "const netbsd32_cpusetp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__sched_getaffinity */
+	case 349:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "lwpid_t";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		case 3:
+			p = "netbsd32_cpusetp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sched_yield */
+	case 350:
+		break;
+	/* netbsd32_fsync_range */
+	case 354:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_off_t";
+			break;
+		case 3:
+			p = "netbsd32_off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_uuidgen */
+	case 355:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_uuidp_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getvfsstat */
+	case 356:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_statvfsp_t";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_statvfs1 */
+	case 357:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_statvfsp_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fstatvfs1 */
+	case 358:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_statvfsp_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fhstatvfs1 */
+	case 359:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_fhandlep_t";
+			break;
+		case 1:
+			p = "netbsd32_statvfsp_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_extattrctl */
+	case 360:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_charp";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_extattr_set_file */
+	case 361:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_charp";
+			break;
+		case 3:
+			p = "netbsd32_voidp";
+			break;
+		case 4:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_extattr_get_file */
+	case 362:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_charp";
+			break;
+		case 3:
+			p = "netbsd32_voidp";
+			break;
+		case 4:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_extattr_delete_file */
+	case 363:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_extattr_set_fd */
+	case 364:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_charp";
+			break;
+		case 3:
+			p = "netbsd32_voidp";
+			break;
+		case 4:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_extattr_get_fd */
+	case 365:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_charp";
+			break;
+		case 3:
+			p = "netbsd32_voidp";
+			break;
+		case 4:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_extattr_delete_fd */
+	case 366:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_extattr_set_link */
+	case 367:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_charp";
+			break;
+		case 3:
+			p = "netbsd32_voidp";
+			break;
+		case 4:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_extattr_get_link */
+	case 368:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_charp";
+			break;
+		case 3:
+			p = "netbsd32_voidp";
+			break;
+		case 4:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_extattr_delete_link */
+	case 369:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_extattr_list_fd */
+	case 370:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_extattr_list_file */
+	case 371:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_extattr_list_link */
+	case 372:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_pselect */
+	case 373:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_fd_setp_t";
+			break;
+		case 2:
+			p = "netbsd32_fd_setp_t";
+			break;
+		case 3:
+			p = "netbsd32_fd_setp_t";
+			break;
+		case 4:
+			p = "netbsd32_timespec50p_t";
+			break;
+		case 5:
+			p = "netbsd32_sigsetp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_pollts */
+	case 374:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_pollfdp_t";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		case 2:
+			p = "netbsd32_timespec50p_t";
+			break;
+		case 3:
+			p = "netbsd32_sigsetp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_setxattr */
+	case 375:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_lsetxattr */
+	case 376:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fsetxattr */
+	case 377:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_getxattr */
+	case 378:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_lgetxattr */
+	case 379:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fgetxattr */
+	case 380:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_listxattr */
+	case 381:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_llistxattr */
+	case 382:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_flistxattr */
+	case 383:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_removexattr */
+	case 384:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_lremovexattr */
+	case 385:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fremovexattr */
+	case 386:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___stat30 */
+	case 387:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_stat50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___fstat30 */
+	case 388:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_stat50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___lstat30 */
+	case 389:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_stat50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___getdents30 */
+	case 390:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___fhstat30 */
+	case 392:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_fhandlep_t";
+			break;
+		case 1:
+			p = "netbsd32_stat50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* netbsd32_ntp_gettime */
+	case 393:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_ntptimeval50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* netbsd32___socket30 */
+	case 394:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___getfh30 */
+	case 395:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_pointer_t";
+			break;
+		case 2:
+			p = "netbsd32_size_tp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___fhopen40 */
+	case 396:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_pointer_t";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___fhstatvfs140 */
+	case 397:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_pointer_t";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "netbsd32_statvfsp_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___fhstat40 */
+	case 398:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_pointer_t";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "netbsd32_stat50p_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___mount50 */
+	case 410:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_charp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "netbsd32_voidp";
+			break;
+		case 4:
+			p = "netbsd32_size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mremap */
+	case 411:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "netbsd32_voidp";
+			break;
+		case 3:
+			p = "netbsd32_size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___posix_fadvise50 */
+	case 416:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_off_t";
+			break;
+		case 3:
+			p = "netbsd32_off_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___select50 */
+	case 417:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_fd_setp_t";
+			break;
+		case 2:
+			p = "netbsd32_fd_setp_t";
+			break;
+		case 3:
+			p = "netbsd32_fd_setp_t";
+			break;
+		case 4:
+			p = "netbsd32_timevalp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___gettimeofday50 */
+	case 418:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_timevalp_t";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___settimeofday50 */
+	case 419:
+		switch(ndx) {
+		case 0:
+			p = "const netbsd32_timevalp_t";
+			break;
+		case 1:
+			p = "const netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___utimes50 */
+	case 420:
+		switch(ndx) {
+		case 0:
+			p = "const netbsd32_charp";
+			break;
+		case 1:
+			p = "const netbsd32_timevalp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___adjtime50 */
+	case 421:
+		switch(ndx) {
+		case 0:
+			p = "const netbsd32_timevalp_t";
+			break;
+		case 1:
+			p = "netbsd32_timevalp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___futimes50 */
+	case 423:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_timevalp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___lutimes50 */
+	case 424:
+		switch(ndx) {
+		case 0:
+			p = "const netbsd32_charp";
+			break;
+		case 1:
+			p = "const netbsd32_timevalp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___setitimer50 */
+	case 425:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_itimervalp_t";
+			break;
+		case 2:
+			p = "netbsd32_itimervalp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___getitimer50 */
+	case 426:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_itimervalp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___clock_gettime50 */
+	case 427:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "netbsd32_timespecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___clock_settime50 */
+	case 428:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "const netbsd32_timespecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___clock_getres50 */
+	case 429:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "netbsd32_timespecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___nanosleep50 */
+	case 430:
+		switch(ndx) {
+		case 0:
+			p = "const netbsd32_timespecp_t";
+			break;
+		case 1:
+			p = "netbsd32_timespecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_____sigtimedwait50 */
+	case 431:
+		switch(ndx) {
+		case 0:
+			p = "const netbsd32_sigsetp_t";
+			break;
+		case 1:
+			p = "netbsd32_siginfop_t";
+			break;
+		case 2:
+			p = "netbsd32_timespecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32__lwp_park */
+	case 434:
+		switch(ndx) {
+		case 0:
+			p = "const netbsd32_timespecp_t";
+			break;
+		case 1:
+			p = "lwpid_t";
+			break;
+		case 2:
+			p = "const netbsd32_voidp";
+			break;
+		case 3:
+			p = "const netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___kevent50 */
+	case 435:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_keventp_t";
+			break;
+		case 2:
+			p = "netbsd32_size_t";
+			break;
+		case 3:
+			p = "netbsd32_keventp_t";
+			break;
+		case 4:
+			p = "netbsd32_size_t";
+			break;
+		case 5:
+			p = "const netbsd32_timespecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___pselect50 */
+	case 436:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_fd_setp_t";
+			break;
+		case 2:
+			p = "netbsd32_fd_setp_t";
+			break;
+		case 3:
+			p = "netbsd32_fd_setp_t";
+			break;
+		case 4:
+			p = "const netbsd32_timespecp_t";
+			break;
+		case 5:
+			p = "const netbsd32_sigsetp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___pollts50 */
+	case 437:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_pollfdp_t";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		case 2:
+			p = "const netbsd32_timespecp_t";
+			break;
+		case 3:
+			p = "const netbsd32_sigsetp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___stat50 */
+	case 439:
+		switch(ndx) {
+		case 0:
+			p = "const netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_statp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___fstat50 */
+	case 440:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_statp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___lstat50 */
+	case 441:
+		switch(ndx) {
+		case 0:
+			p = "const netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_statp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* netbsd32_____semctl50 */
+	case 442:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "netbsd32_semunp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* netbsd32___shmctl50 */
+	case 443:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_shmid_dsp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* netbsd32___msgctl50 */
+	case 444:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "netbsd32_msqid_dsp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* netbsd32___getrusage50 */
+	case 445:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_rusagep_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___timer_settime50 */
+	case 446:
+		switch(ndx) {
+		case 0:
+			p = "timer_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const netbsd32_itimerspecp_t";
+			break;
+		case 3:
+			p = "netbsd32_itimerspecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___timer_gettime50 */
+	case 447:
+		switch(ndx) {
+		case 0:
+			p = "timer_t";
+			break;
+		case 1:
+			p = "netbsd32_itimerspecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* netbsd32___ntp_gettime50 */
+	case 448:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_ntptimevalp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* netbsd32___wait450 */
+	case 449:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_intp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "netbsd32_rusagep_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___mknod50 */
+	case 450:
+		switch(ndx) {
+		case 0:
+			p = "const netbsd32_charp";
+			break;
+		case 1:
+			p = "mode_t";
+			break;
+		case 2:
+			p = "netbsd32_dev_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___fhstat50 */
+	case 451:
+		switch(ndx) {
+		case 0:
+			p = "const netbsd32_voidp";
+			break;
+		case 1:
+			p = "netbsd32_size_t";
+			break;
+		case 2:
+			p = "netbsd32_statp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_pipe2 */
+	case 453:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_intp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_dup3 */
+	case 454:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_kqueue1 */
+	case 455:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_paccept */
+	case 456:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_sockaddrp_t";
+			break;
+		case 2:
+			p = "netbsd32_socklenp_t";
+			break;
+		case 3:
+			p = "const netbsd32_sigsetp_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_linkat */
+	case 457:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_charp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "const netbsd32_charp";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_renameat */
+	case 458:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_charp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "const netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mkfifoat */
+	case 459:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_charp";
+			break;
+		case 2:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mknodat */
+	case 460:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_charp";
+			break;
+		case 2:
+			p = "mode_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "netbsd32_dev_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_mkdirat */
+	case 461:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_charp";
+			break;
+		case 2:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_faccessat */
+	case 462:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_charp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fchmodat */
+	case 463:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_charp";
+			break;
+		case 2:
+			p = "mode_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fchownat */
+	case 464:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_charp";
+			break;
+		case 2:
+			p = "uid_t";
+			break;
+		case 3:
+			p = "gid_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fexecve */
+	case 465:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "netbsd32_charpp";
+			break;
+		case 2:
+			p = "netbsd32_charpp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_fstatat */
+	case 466:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_statp_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_utimensat */
+	case 467:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_charp";
+			break;
+		case 2:
+			p = "const netbsd32_timespecp_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_openat */
+	case 468:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_charp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_readlinkat */
+	case 469:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_charp";
+			break;
+		case 2:
+			p = "netbsd32_charp";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_symlinkat */
+	case 470:
+		switch(ndx) {
+		case 0:
+			p = "const netbsd32_charp";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const netbsd32_charp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_unlinkat */
+	case 471:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_charp";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_futimens */
+	case 472:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const netbsd32_timespecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32___quotactl */
+	case 473:
+		switch(ndx) {
+		case 0:
+			p = "const netbsd32_charp";
+			break;
+		case 1:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_posix_spawn */
+	case 474:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_pid_tp";
+			break;
+		case 1:
+			p = "const netbsd32_charp";
+			break;
+		case 2:
+			p = "const netbsd32_posix_spawn_file_actionsp";
+			break;
+		case 3:
+			p = "const netbsd32_posix_spawnattrp";
+			break;
+		case 4:
+			p = "netbsd32_charpp";
+			break;
+		case 5:
+			p = "netbsd32_charpp";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32_clock_nanosleep */
+	case 477:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_clockid_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const netbsd32_timespecp_t";
+			break;
+		case 3:
+			p = "netbsd32_timespecp_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* netbsd32____lwp_park60 */
+	case 478:
+		switch(ndx) {
+		case 0:
+			p = "netbsd32_clockid_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const netbsd32_timespecp_t";
+			break;
+		case 3:
+			p = "lwpid_t";
+			break;
+		case 4:
+			p = "netbsd32_voidp";
+			break;
+		case 5:
+			p = "netbsd32_voidp";
+			break;
+		default:
+			break;
+		};
+		break;
+	default:
+		break;
+	};
+	if (p != NULL)
+		strlcpy(desc, p, descsz);
+}
+static void
+systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
+{
+	const char *p = NULL;
+	switch (sysnum) {
+	/* netbsd32_syscall */
+	case 0:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_exit */
+	case 1:
+		if (ndx == 0 || ndx == 1)
+			p = "void";
+		break;
+	/* sys_fork */
+	case 2:
+	/* netbsd32_read */
+	case 3:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* netbsd32_write */
+	case 4:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* netbsd32_open */
+	case 5:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_close */
+	case 6:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_wait4 */
+	case 7:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_ocreat */
+	case 8:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_link */
+	case 9:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_unlink */
+	case 10:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_chdir */
+	case 12:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fchdir */
+	case 13:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mknod */
+	case 14:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_chmod */
+	case 15:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_chown */
+	case 16:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_break */
+	case 17:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getfsstat */
+	case 18:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_olseek */
+	case 19:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_long";
+		break;
+	/* sys_getpid */
+	case 20:
+	/* netbsd32_mount */
+	case 21:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_unmount */
+	case 22:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setuid */
+	case 23:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getuid */
+	case 24:
+	/* sys_geteuid */
+	case 25:
+	/* netbsd32_ptrace */
+	case 26:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_recvmsg */
+	case 27:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* netbsd32_sendmsg */
+	case 28:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* netbsd32_recvfrom */
+	case 29:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* netbsd32_accept */
+	case 30:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getpeername */
+	case 31:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getsockname */
+	case 32:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_access */
+	case 33:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_chflags */
+	case 34:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fchflags */
+	case 35:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sync */
+	case 36:
+	/* netbsd32_kill */
+	case 37:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_stat43 */
+	case 38:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getppid */
+	case 39:
+	/* netbsd32_lstat43 */
+	case 40:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_dup */
+	case 41:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_pipe */
+	case 42:
+	/* sys_getegid */
+	case 43:
+	/* netbsd32_profil */
+	case 44:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_ktrace */
+	case 45:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_sigaction */
+	case 46:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getgid */
+	case 47:
+	/* netbsd32_sigprocmask */
+	case 48:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___getlogin */
+	case 49:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setlogin */
+	case 50:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_acct */
+	case 51:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sigpending */
+	case 52:
+	/* netbsd32_sigaltstack13 */
+	case 53:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_ioctl */
+	case 54:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_reboot */
+	case 55:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_revoke */
+	case 56:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_symlink */
+	case 57:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_readlink */
+	case 58:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_execve */
+	case 59:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_umask */
+	case 60:
+		if (ndx == 0 || ndx == 1)
+			p = "mode_t";
+		break;
+	/* netbsd32_chroot */
+	case 61:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fstat43 */
+	case 62:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_ogetkerninfo */
+	case 63:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getpagesize */
+	case 64:
+	/* netbsd32_msync */
+	case 65:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_vfork */
+	case 66:
+	/* netbsd32_sbrk */
+	case 69:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_sstk */
+	case 70:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_ommap */
+	case 71:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_ovadvise */
+	case 72:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_munmap */
+	case 73:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mprotect */
+	case 74:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_madvise */
+	case 75:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mincore */
+	case 78:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getgroups */
+	case 79:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setgroups */
+	case 80:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getpgrp */
+	case 81:
+	/* netbsd32_setpgid */
+	case 82:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setitimer */
+	case 83:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_wait */
+	case 84:
+	/* netbsd32_oswapon */
+	case 85:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getitimer */
+	case 86:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_ogethostname */
+	case 87:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_osethostname */
+	case 88:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getdtablesize */
+	case 89:
+	/* netbsd32_dup2 */
+	case 90:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fcntl */
+	case 92:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_select */
+	case 93:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fsync */
+	case 95:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setpriority */
+	case 96:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_socket */
+	case 97:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_connect */
+	case 98:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_oaccept */
+	case 99:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getpriority */
+	case 100:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_osend */
+	case 101:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_orecv */
+	case 102:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_sigreturn */
+	case 103:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_bind */
+	case 104:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setsockopt */
+	case 105:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_listen */
+	case 106:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_osigvec */
+	case 108:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_sigblock */
+	case 109:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_sigsetmask */
+	case 110:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_sigsuspend */
+	case 111:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_osigstack */
+	case 112:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_orecvmsg */
+	case 113:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_osendmsg */
+	case 114:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_gettimeofday */
+	case 116:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getrusage */
+	case 117:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getsockopt */
+	case 118:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_readv */
+	case 120:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* netbsd32_writev */
+	case 121:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* netbsd32_settimeofday */
+	case 122:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fchown */
+	case 123:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fchmod */
+	case 124:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_orecvfrom */
+	case 125:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setreuid */
+	case 126:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setregid */
+	case 127:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_rename */
+	case 128:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_otruncate */
+	case 129:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_oftruncate */
+	case 130:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_flock */
+	case 131:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mkfifo */
+	case 132:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_sendto */
+	case 133:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* netbsd32_shutdown */
+	case 134:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_socketpair */
+	case 135:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mkdir */
+	case 136:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_rmdir */
+	case 137:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_utimes */
+	case 138:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_adjtime */
+	case 140:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_ogetpeername */
+	case 141:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_gethostid */
+	case 142:
+	/* netbsd32_sethostid */
+	case 143:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_ogetrlimit */
+	case 144:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_osetrlimit */
+	case 145:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_killpg */
+	case 146:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setsid */
+	case 147:
+	/* netbsd32_quotactl */
+	case 148:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_quota */
+	case 149:
+	/* netbsd32_ogetsockname */
+	case 150:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#if defined(NFSSERVER) || !defined(_KERNEL_OPT)
+	/* netbsd32_nfssvc */
+	case 155:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* netbsd32_ogetdirentries */
+	case 156:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_statfs */
+	case 157:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fstatfs */
+	case 158:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getfh */
+	case 161:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_ogetdomainname */
+	case 162:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_osetdomainname */
+	case 163:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_uname */
+	case 164:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_sysarch */
+	case 165:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* netbsd32_semsys */
+	case 169:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* netbsd32_msgsys */
+	case 170:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* netbsd32_shmsys */
+	case 171:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* netbsd32_pread */
+	case 173:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* netbsd32_pwrite */
+	case 174:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* netbsd32_ntp_gettime */
+	case 175:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_ntp_adjtime */
+	case 176:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* netbsd32_setgid */
+	case 181:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setegid */
+	case 182:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_seteuid */
+	case 183:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_stat12 */
+	case 188:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fstat12 */
+	case 189:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_lstat12 */
+	case 190:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_pathconf */
+	case 191:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_long";
+		break;
+	/* netbsd32_fpathconf */
+	case 192:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_long";
+		break;
+	/* netbsd32_getrlimit */
+	case 194:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setrlimit */
+	case 195:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getdirentries */
+	case 196:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mmap */
+	case 197:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_voidp";
+		break;
+	/* netbsd32____syscall */
+	case 198:
+		if (ndx == 0 || ndx == 1)
+			p = "quad_t";
+		break;
+	/* netbsd32_lseek */
+	case 199:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_off_t";
+		break;
+	/* netbsd32_truncate */
+	case 200:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_ftruncate */
+	case 201:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___sysctl */
+	case 202:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mlock */
+	case 203:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_munlock */
+	case 204:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_undelete */
+	case 205:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_futimes */
+	case 206:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getpgid */
+	case 207:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_reboot */
+	case 208:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_poll */
+	case 209:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* netbsd32___semctl */
+	case 220:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_semget */
+	case 221:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_semop */
+	case 222:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_semconfig */
+	case 223:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* netbsd32_msgctl */
+	case 224:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_msgget */
+	case 225:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_msgsnd */
+	case 226:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_msgrcv */
+	case 227:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* netbsd32_shmat */
+	case 228:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_voidp";
+		break;
+	/* netbsd32_shmctl */
+	case 229:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_shmdt */
+	case 230:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_shmget */
+	case 231:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* netbsd32_clock_gettime */
+	case 232:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_clock_settime */
+	case 233:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_clock_getres */
+	case 234:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_timer_create */
+	case 235:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_timer_delete */
+	case 236:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_timer_settime */
+	case 237:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_timer_gettime */
+	case 238:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_timer_getoverrun */
+	case 239:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_nanosleep */
+	case 240:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fdatasync */
+	case 241:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mlockall */
+	case 242:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_munlockall */
+	case 243:
+	/* netbsd32___sigtimedwait */
+	case 244:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__ksem_init */
+	case 247:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__ksem_open */
+	case 248:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__ksem_unlink */
+	case 249:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__ksem_close */
+	case 250:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__ksem_post */
+	case 251:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__ksem_wait */
+	case 252:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__ksem_trywait */
+	case 253:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__ksem_getvalue */
+	case 254:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__ksem_destroy */
+	case 255:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__ksem_timedwait */
+	case 256:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___posix_rename */
+	case 270:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_swapctl */
+	case 271:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getdents */
+	case 272:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_minherit */
+	case 273:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_lchmod */
+	case 274:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_lchown */
+	case 275:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_lutimes */
+	case 276:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___msync13 */
+	case 277:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___stat13 */
+	case 278:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___fstat13 */
+	case 279:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___lstat13 */
+	case 280:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___sigaltstack14 */
+	case 281:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___vfork14 */
+	case 282:
+	/* netbsd32___posix_chown */
+	case 283:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___posix_fchown */
+	case 284:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___posix_lchown */
+	case 285:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getsid */
+	case 286:
+		if (ndx == 0 || ndx == 1)
+			p = "pid_t";
+		break;
+	/* netbsd32___clone */
+	case 287:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fktrace */
+	case 288:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_preadv */
+	case 289:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* netbsd32_pwritev */
+	case 290:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* netbsd32___sigaction14 */
+	case 291:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___sigpending14 */
+	case 292:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___sigprocmask14 */
+	case 293:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___sigsuspend14 */
+	case 294:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___sigreturn14 */
+	case 295:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___getcwd */
+	case 296:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fchroot */
+	case 297:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fhopen */
+	case 298:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fhstat */
+	case 299:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fhstatfs */
+	case 300:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* netbsd32___semctl14 */
+	case 301:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* netbsd32___msgctl13 */
+	case 302:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* netbsd32___shmctl13 */
+	case 303:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* netbsd32_lchflags */
+	case 304:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_issetugid */
+	case 305:
+	/* netbsd32_utrace */
+	case 306:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getcontext */
+	case 307:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setcontext */
+	case 308:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__lwp_create */
+	case 309:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__lwp_exit */
+	case 310:
+	/* sys__lwp_self */
+	case 311:
+	/* netbsd32__lwp_wait */
+	case 312:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__lwp_suspend */
+	case 313:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__lwp_continue */
+	case 314:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__lwp_wakeup */
+	case 315:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__lwp_getprivate */
+	case 316:
+	/* netbsd32__lwp_setprivate */
+	case 317:
+		if (ndx == 0 || ndx == 1)
+			p = "void";
+		break;
+	/* netbsd32__lwp_kill */
+	case 318:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__lwp_detach */
+	case 319:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__lwp_park */
+	case 320:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__lwp_unpark */
+	case 321:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__lwp_unpark_all */
+	case 322:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_size_t";
+		break;
+	/* netbsd32__lwp_setname */
+	case 323:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__lwp_getname */
+	case 324:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__lwp_ctl */
+	case 325:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___sigaction_sigtramp */
+	case 340:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_rasctl */
+	case 343:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_kqueue */
+	case 344:
+	/* netbsd32_kevent */
+	case 345:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__sched_setparam */
+	case 346:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__sched_getparam */
+	case 347:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__sched_setaffinity */
+	case 348:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__sched_getaffinity */
+	case 349:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sched_yield */
+	case 350:
+	/* netbsd32_fsync_range */
+	case 354:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_uuidgen */
+	case 355:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getvfsstat */
+	case 356:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_statvfs1 */
+	case 357:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fstatvfs1 */
+	case 358:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fhstatvfs1 */
+	case 359:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_extattrctl */
+	case 360:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_extattr_set_file */
+	case 361:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_extattr_get_file */
+	case 362:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_extattr_delete_file */
+	case 363:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_extattr_set_fd */
+	case 364:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_extattr_get_fd */
+	case 365:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_extattr_delete_fd */
+	case 366:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_extattr_set_link */
+	case 367:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_extattr_get_link */
+	case 368:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_extattr_delete_link */
+	case 369:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_extattr_list_fd */
+	case 370:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_extattr_list_file */
+	case 371:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_extattr_list_link */
+	case 372:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_pselect */
+	case 373:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_pollts */
+	case 374:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_setxattr */
+	case 375:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_lsetxattr */
+	case 376:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fsetxattr */
+	case 377:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_getxattr */
+	case 378:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_lgetxattr */
+	case 379:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fgetxattr */
+	case 380:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_listxattr */
+	case 381:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_llistxattr */
+	case 382:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_flistxattr */
+	case 383:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_removexattr */
+	case 384:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_lremovexattr */
+	case 385:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fremovexattr */
+	case 386:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___stat30 */
+	case 387:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___fstat30 */
+	case 388:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___lstat30 */
+	case 389:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___getdents30 */
+	case 390:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___fhstat30 */
+	case 392:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* netbsd32_ntp_gettime */
+	case 393:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* netbsd32___socket30 */
+	case 394:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___getfh30 */
+	case 395:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___fhopen40 */
+	case 396:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___fhstatvfs140 */
+	case 397:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___fhstat40 */
+	case 398:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___mount50 */
+	case 410:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mremap */
+	case 411:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_voidp";
+		break;
+	/* netbsd32___posix_fadvise50 */
+	case 416:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___select50 */
+	case 417:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___gettimeofday50 */
+	case 418:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___settimeofday50 */
+	case 419:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___utimes50 */
+	case 420:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___adjtime50 */
+	case 421:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___futimes50 */
+	case 423:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___lutimes50 */
+	case 424:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___setitimer50 */
+	case 425:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___getitimer50 */
+	case 426:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___clock_gettime50 */
+	case 427:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___clock_settime50 */
+	case 428:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___clock_getres50 */
+	case 429:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___nanosleep50 */
+	case 430:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_____sigtimedwait50 */
+	case 431:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32__lwp_park */
+	case 434:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___kevent50 */
+	case 435:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___pselect50 */
+	case 436:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___pollts50 */
+	case 437:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___stat50 */
+	case 439:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___fstat50 */
+	case 440:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___lstat50 */
+	case 441:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* netbsd32_____semctl50 */
+	case 442:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* netbsd32___shmctl50 */
+	case 443:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* netbsd32___msgctl50 */
+	case 444:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* netbsd32___getrusage50 */
+	case 445:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___timer_settime50 */
+	case 446:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___timer_gettime50 */
+	case 447:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* netbsd32___ntp_gettime50 */
+	case 448:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* netbsd32___wait450 */
+	case 449:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___mknod50 */
+	case 450:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___fhstat50 */
+	case 451:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_pipe2 */
+	case 453:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_dup3 */
+	case 454:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_kqueue1 */
+	case 455:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_paccept */
+	case 456:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_linkat */
+	case 457:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_renameat */
+	case 458:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mkfifoat */
+	case 459:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mknodat */
+	case 460:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_mkdirat */
+	case 461:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_faccessat */
+	case 462:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fchmodat */
+	case 463:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fchownat */
+	case 464:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fexecve */
+	case 465:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_fstatat */
+	case 466:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_utimensat */
+	case 467:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_openat */
+	case 468:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_readlinkat */
+	case 469:
+		if (ndx == 0 || ndx == 1)
+			p = "netbsd32_ssize_t";
+		break;
+	/* netbsd32_symlinkat */
+	case 470:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_unlinkat */
+	case 471:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_futimens */
+	case 472:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32___quotactl */
+	case 473:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_posix_spawn */
+	case 474:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32_clock_nanosleep */
+	case 477:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* netbsd32____lwp_park60 */
+	case 478:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	default:
+		break;
+	};
+	if (p != NULL)
+		strlcpy(desc, p, descsz);
+}
diff --git a/sys/compat/netbsd32/syscalls.conf b/sys/compat/netbsd32/syscalls.conf
index 2384b4e..abc04ca 100644
--- a/sys/compat/netbsd32/syscalls.conf
+++ b/sys/compat/netbsd32/syscalls.conf
@@ -4,6 +4,7 @@ sysnames="netbsd32_syscalls.c"
 sysnumhdr="netbsd32_syscall.h"
 syssw="netbsd32_sysent.c"
 sysarghdr="netbsd32_syscallargs.h"
+systrace="netbsd32_systrace_args.c"
 compatopts="compat_43 compat_09 compat_10 compat_11 compat_12 compat_13 compat_14 compat_15 compat_16 compat_20 compat_30 compat_40 compat_50 compat_60"
 libcompatopts=""
 
diff --git a/sys/compat/osf1/osf1_syscall.h b/sys/compat/osf1/osf1_syscall.h
index 5d45013..68a597e 100644
--- a/sys/compat/osf1/osf1_syscall.h
+++ b/sys/compat/osf1/osf1_syscall.h
@@ -1,4 +1,4 @@
-/* $NetBSD: osf1_syscall.h,v 1.61 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
diff --git a/sys/compat/osf1/osf1_syscallargs.h b/sys/compat/osf1/osf1_syscallargs.h
index 1181c3e..d7d6f65 100644
--- a/sys/compat/osf1/osf1_syscallargs.h
+++ b/sys/compat/osf1/osf1_syscallargs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: osf1_syscallargs.h,v 1.62 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
diff --git a/sys/compat/osf1/osf1_syscalls.c b/sys/compat/osf1/osf1_syscalls.c
index bbc6e20..df67494 100644
--- a/sys/compat/osf1/osf1_syscalls.c
+++ b/sys/compat/osf1/osf1_syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: osf1_syscalls.c,v 1.60 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: osf1_syscalls.c,v 1.60 2013/11/07 19:39:58 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #if defined(_KERNEL_OPT)
@@ -22,6 +22,8 @@ __KERNEL_RCSID(0, "$NetBSD: osf1_syscalls.c,v 1.60 2013/11/07 19:39:58 njoly Exp
 #include <sys/syscallargs.h>
 #include <compat/osf1/osf1.h>
 #include <compat/osf1/osf1_syscallargs.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const osf1_syscallnames[] = {
@@ -538,3 +540,520 @@ const char *const osf1_syscallnames[] = {
 	/* 510 */	"# filler",
 	/* 511 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altosf1_syscallnames[] = {
+	/*   0 */	"nosys",
+	/*   1 */	NULL, /* exit */
+	/*   2 */	NULL, /* fork */
+	/*   3 */	NULL, /* read */
+	/*   4 */	NULL, /* write */
+	/*   5 */	NULL, /* unimplemented old open */
+	/*   6 */	NULL, /* close */
+	/*   7 */	NULL, /* wait4 */
+	/*   8 */	NULL, /* unimplemented old creat */
+	/*   9 */	NULL, /* link */
+	/*  10 */	NULL, /* unlink */
+	/*  11 */	NULL, /* unimplemented execv */
+	/*  12 */	NULL, /* chdir */
+	/*  13 */	NULL, /* fchdir */
+	/*  14 */	NULL, /* mknod */
+	/*  15 */	NULL, /* chmod */
+	/*  16 */	NULL, /* __posix_chown */
+	/*  17 */	NULL, /* obreak */
+	/*  18 */	NULL, /* getfsstat */
+	/*  19 */	NULL, /* lseek */
+	/*  20 */	NULL, /* getpid_with_ppid */
+	/*  21 */	NULL, /* mount */
+	/*  22 */	NULL, /* unmount */
+	/*  23 */	NULL, /* setuid */
+	/*  24 */	NULL, /* getuid_with_euid */
+	/*  25 */	NULL, /* unimplemented exec_with_loader */
+	/*  26 */	NULL, /* unimplemented ptrace */
+	/*  27 */	NULL, /* recvmsg_xopen */
+	/*  28 */	NULL, /* sendmsg_xopen */
+	/*  29 */	NULL, /* unimplemented recvfrom */
+	/*  30 */	NULL, /* unimplemented accept */
+	/*  31 */	NULL, /* unimplemented getpeername */
+	/*  32 */	NULL, /* unimplemented getsockname */
+	/*  33 */	NULL, /* access */
+	/*  34 */	NULL, /* unimplemented chflags */
+	/*  35 */	NULL, /* unimplemented fchflags */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	NULL, /* kill */
+	/*  38 */	NULL, /* unimplemented old stat */
+	/*  39 */	NULL, /* setpgid */
+	/*  40 */	NULL, /* unimplemented old lstat */
+	/*  41 */	NULL, /* dup */
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* set_program_attributes */
+	/*  44 */	NULL, /* unimplemented profil */
+	/*  45 */	NULL, /* open */
+	/*  46 */	NULL, /* obsolete sigaction */
+	/*  47 */	NULL, /* getgid_with_egid */
+	/*  48 */	NULL, /* sigprocmask */
+	/*  49 */	NULL, /* __getlogin */
+	/*  50 */	NULL, /* __setlogin */
+	/*  51 */	NULL, /* acct */
+	/*  52 */	NULL, /* unimplemented sigpending */
+	/*  53 */	NULL, /* classcntl */
+	/*  54 */	NULL, /* ioctl */
+	/*  55 */	NULL, /* reboot */
+	/*  56 */	NULL, /* revoke */
+	/*  57 */	NULL, /* symlink */
+	/*  58 */	NULL, /* readlink */
+	/*  59 */	NULL, /* execve */
+	/*  60 */	NULL, /* umask */
+	/*  61 */	NULL, /* chroot */
+	/*  62 */	NULL, /* unimplemented old fstat */
+	/*  63 */	NULL, /* getpgrp */
+	/*  64 */	NULL, /* getpagesize */
+	/*  65 */	NULL, /* unimplemented mremap */
+	/*  66 */	NULL, /* vfork */
+	/*  67 */	NULL, /* stat */
+	/*  68 */	NULL, /* lstat */
+	/*  69 */	NULL, /* unimplemented sbrk */
+	/*  70 */	NULL, /* unimplemented sstk */
+	/*  71 */	NULL, /* mmap */
+	/*  72 */	NULL, /* unimplemented ovadvise */
+	/*  73 */	NULL, /* munmap */
+	/*  74 */	NULL, /* mprotect */
+	/*  75 */	NULL, /* madvise */
+	/*  76 */	NULL, /* unimplemented old vhangup */
+	/*  77 */	NULL, /* unimplemented kmodcall */
+	/*  78 */	NULL, /* unimplemented mincore */
+	/*  79 */	NULL, /* getgroups */
+	/*  80 */	NULL, /* setgroups */
+	/*  81 */	NULL, /* unimplemented old getpgrp */
+	/*  82 */	"setpgid",
+	/*  83 */	NULL, /* setitimer */
+	/*  84 */	NULL, /* unimplemented old wait */
+	/*  85 */	NULL, /* unimplemented table */
+	/*  86 */	NULL, /* getitimer */
+	/*  87 */	NULL, /* gethostname */
+	/*  88 */	NULL, /* sethostname */
+	/*  89 */	NULL, /* getdtablesize */
+	/*  90 */	NULL, /* dup2 */
+	/*  91 */	NULL, /* fstat */
+	/*  92 */	NULL, /* fcntl */
+	/*  93 */	NULL, /* select */
+	/*  94 */	NULL, /* poll */
+	/*  95 */	NULL, /* fsync */
+	/*  96 */	NULL, /* setpriority */
+	/*  97 */	NULL, /* socket */
+	/*  98 */	NULL, /* connect */
+	/*  99 */	NULL, /* accept */
+	/* 100 */	NULL, /* getpriority */
+	/* 101 */	NULL, /* send */
+	/* 102 */	NULL, /* recv */
+	/* 103 */	NULL, /* sigreturn */
+	/* 104 */	NULL, /* bind */
+	/* 105 */	NULL, /* setsockopt */
+	/* 106 */	NULL, /* listen */
+	/* 107 */	NULL, /* unimplemented plock */
+	/* 108 */	NULL, /* unimplemented old sigvec */
+	/* 109 */	NULL, /* unimplemented old sigblock */
+	/* 110 */	NULL, /* unimplemented old sigsetmask */
+	/* 111 */	NULL, /* sigsuspend */
+	/* 112 */	NULL, /* sigstack */
+	/* 113 */	NULL, /* unimplemented old recvmsg */
+	/* 114 */	NULL, /* unimplemented old sendmsg */
+	/* 115 */	NULL, /* obsolete vtrace */
+	/* 116 */	NULL, /* gettimeofday */
+	/* 117 */	NULL, /* getrusage */
+	/* 118 */	NULL, /* getsockopt */
+	/* 119 */	NULL, /* unimplemented */
+	/* 120 */	NULL, /* readv */
+	/* 121 */	NULL, /* writev */
+	/* 122 */	NULL, /* settimeofday */
+	/* 123 */	NULL, /* __posix_fchown */
+	/* 124 */	NULL, /* fchmod */
+	/* 125 */	NULL, /* recvfrom */
+	/* 126 */	NULL, /* setreuid */
+	/* 127 */	NULL, /* setregid */
+	/* 128 */	NULL, /* __posix_rename */
+	/* 129 */	NULL, /* truncate */
+	/* 130 */	NULL, /* ftruncate */
+	/* 131 */	NULL, /* flock */
+	/* 132 */	NULL, /* setgid */
+	/* 133 */	NULL, /* sendto */
+	/* 134 */	NULL, /* shutdown */
+	/* 135 */	NULL, /* socketpair */
+	/* 136 */	NULL, /* mkdir */
+	/* 137 */	NULL, /* rmdir */
+	/* 138 */	NULL, /* utimes */
+	/* 139 */	NULL, /* obsolete 4.2 sigreturn */
+	/* 140 */	NULL, /* unimplemented adjtime */
+	/* 141 */	NULL, /* getpeername */
+	/* 142 */	NULL, /* gethostid */
+	/* 143 */	NULL, /* sethostid */
+	/* 144 */	NULL, /* getrlimit */
+	/* 145 */	NULL, /* setrlimit */
+	/* 146 */	NULL, /* unimplemented old killpg */
+	/* 147 */	NULL, /* setsid */
+	/* 148 */	NULL, /* unimplemented quotactl */
+	/* 149 */	NULL, /* quota */
+	/* 150 */	NULL, /* getsockname */
+	/* 151 */	NULL, /* unimplemented pread */
+	/* 152 */	NULL, /* unimplemented pwrite */
+	/* 153 */	NULL, /* unimplemented pid_block */
+	/* 154 */	NULL, /* unimplemented pid_unblock */
+	/* 155 */	NULL, /* unimplemented signal_urti */
+	/* 156 */	NULL, /* sigaction */
+	/* 157 */	NULL, /* unimplemented sigwaitprim */
+	/* 158 */	NULL, /* unimplemented nfssvc */
+	/* 159 */	NULL, /* getdirentries */
+	/* 160 */	NULL, /* statfs */
+	/* 161 */	NULL, /* fstatfs */
+	/* 162 */	NULL, /* unimplemented */
+	/* 163 */	NULL, /* unimplemented async_daemon */
+	/* 164 */	NULL, /* unimplemented getfh */
+	/* 165 */	NULL, /* getdomainname */
+	/* 166 */	NULL, /* setdomainname */
+	/* 167 */	NULL, /* unimplemented */
+	/* 168 */	NULL, /* unimplemented */
+	/* 169 */	NULL, /* unimplemented exportfs */
+	/* 170 */	NULL, /* unimplemented */
+	/* 171 */	NULL, /* unimplemented */
+	/* 172 */	NULL, /* unimplemented alt msgctl */
+	/* 173 */	NULL, /* unimplemented alt msgget */
+	/* 174 */	NULL, /* unimplemented alt msgrcv */
+	/* 175 */	NULL, /* unimplemented alt msgsnd */
+	/* 176 */	NULL, /* unimplemented alt semctl */
+	/* 177 */	NULL, /* unimplemented alt semget */
+	/* 178 */	NULL, /* unimplemented alt semop */
+	/* 179 */	NULL, /* unimplemented alt uname */
+	/* 180 */	NULL, /* unimplemented */
+	/* 181 */	NULL, /* unimplemented alt plock */
+	/* 182 */	NULL, /* unimplemented lockf */
+	/* 183 */	NULL, /* unimplemented */
+	/* 184 */	NULL, /* unimplemented getmnt */
+	/* 185 */	NULL, /* unimplemented */
+	/* 186 */	NULL, /* unimplemented unmount */
+	/* 187 */	NULL, /* unimplemented alt sigpending */
+	/* 188 */	NULL, /* unimplemented alt setsid */
+	/* 189 */	NULL, /* unimplemented */
+	/* 190 */	NULL, /* unimplemented */
+	/* 191 */	NULL, /* unimplemented */
+	/* 192 */	NULL, /* unimplemented */
+	/* 193 */	NULL, /* unimplemented */
+	/* 194 */	NULL, /* unimplemented */
+	/* 195 */	NULL, /* unimplemented */
+	/* 196 */	NULL, /* unimplemented */
+	/* 197 */	NULL, /* unimplemented */
+	/* 198 */	NULL, /* unimplemented */
+	/* 199 */	NULL, /* unimplemented swapon */
+	/* 200 */	NULL, /* unimplemented msgctl */
+	/* 201 */	NULL, /* unimplemented msgget */
+	/* 202 */	NULL, /* unimplemented msgrcv */
+	/* 203 */	NULL, /* unimplemented msgsnd */
+	/* 204 */	NULL, /* unimplemented semctl */
+	/* 205 */	NULL, /* unimplemented semget */
+	/* 206 */	NULL, /* unimplemented semop */
+	/* 207 */	NULL, /* uname */
+	/* 208 */	NULL, /* __posix_lchown */
+	/* 209 */	NULL, /* shmat */
+	/* 210 */	NULL, /* shmctl */
+	/* 211 */	NULL, /* shmdt */
+	/* 212 */	NULL, /* shmget */
+	/* 213 */	NULL, /* unimplemented mvalid */
+	/* 214 */	NULL, /* unimplemented getaddressconf */
+	/* 215 */	NULL, /* unimplemented msleep */
+	/* 216 */	NULL, /* unimplemented mwakeup */
+	/* 217 */	NULL, /* unimplemented msync */
+	/* 218 */	NULL, /* unimplemented signal */
+	/* 219 */	NULL, /* unimplemented utc gettime */
+	/* 220 */	NULL, /* unimplemented utc adjtime */
+	/* 221 */	NULL, /* unimplemented */
+	/* 222 */	NULL, /* unimplemented security */
+	/* 223 */	NULL, /* unimplemented kloadcall */
+	/* 224 */	NULL, /* stat2 */
+	/* 225 */	NULL, /* lstat2 */
+	/* 226 */	NULL, /* fstat2 */
+	/* 227 */	NULL, /* unimplemented statfs2 */
+	/* 228 */	NULL, /* unimplemented fstatfs2 */
+	/* 229 */	NULL, /* unimplemented getfsstat2 */
+	/* 230 */	NULL, /* unimplemented */
+	/* 231 */	NULL, /* unimplemented */
+	/* 232 */	NULL, /* unimplemented */
+	/* 233 */	NULL, /* getpgid */
+	/* 234 */	NULL, /* getsid */
+	/* 235 */	NULL, /* sigaltstack */
+	/* 236 */	NULL, /* unimplemented waitid */
+	/* 237 */	NULL, /* unimplemented priocntlset */
+	/* 238 */	NULL, /* unimplemented sigsendset */
+	/* 239 */	NULL, /* unimplemented set_speculative */
+	/* 240 */	NULL, /* unimplemented msfs_syscall */
+	/* 241 */	NULL, /* sysinfo */
+	/* 242 */	NULL, /* unimplemented uadmin */
+	/* 243 */	NULL, /* unimplemented fuser */
+	/* 244 */	NULL, /* unimplemented proplist_syscall */
+	/* 245 */	NULL, /* unimplemented ntp_adjtime */
+	/* 246 */	NULL, /* unimplemented ntp_gettime */
+	/* 247 */	NULL, /* pathconf */
+	/* 248 */	NULL, /* fpathconf */
+	/* 249 */	NULL, /* unimplemented */
+	/* 250 */	NULL, /* unimplemented uswitch */
+	/* 251 */	NULL, /* usleep_thread */
+	/* 252 */	NULL, /* unimplemented audcntl */
+	/* 253 */	NULL, /* unimplemented audgen */
+	/* 254 */	NULL, /* unimplemented sysfs */
+	/* 255 */	NULL, /* unimplemented subsys_info */
+	/* 256 */	NULL, /* getsysinfo */
+	/* 257 */	NULL, /* setsysinfo */
+	/* 258 */	NULL, /* unimplemented afs_syscall */
+	/* 259 */	NULL, /* unimplemented swapctl */
+	/* 260 */	NULL, /* unimplemented memcntl */
+	/* 261 */	NULL, /* unimplemented fdatasync */
+	/* 262 */	NULL, /* unimplemented oflock */
+	/* 263 */	NULL, /* unimplemented _F64_readv */
+	/* 264 */	NULL, /* unimplemented _F64_writev */
+	/* 265 */	NULL, /* unimplemented cdslxlate */
+	/* 266 */	NULL, /* unimplemented sendfile */
+	/* 267 */	NULL, /* filler */
+	/* 268 */	NULL, /* filler */
+	/* 269 */	NULL, /* filler */
+	/* 270 */	NULL, /* filler */
+	/* 271 */	NULL, /* filler */
+	/* 272 */	NULL, /* filler */
+	/* 273 */	NULL, /* filler */
+	/* 274 */	NULL, /* filler */
+	/* 275 */	NULL, /* filler */
+	/* 276 */	NULL, /* filler */
+	/* 277 */	NULL, /* filler */
+	/* 278 */	NULL, /* filler */
+	/* 279 */	NULL, /* filler */
+	/* 280 */	NULL, /* filler */
+	/* 281 */	NULL, /* filler */
+	/* 282 */	NULL, /* filler */
+	/* 283 */	NULL, /* filler */
+	/* 284 */	NULL, /* filler */
+	/* 285 */	NULL, /* filler */
+	/* 286 */	NULL, /* filler */
+	/* 287 */	NULL, /* filler */
+	/* 288 */	NULL, /* filler */
+	/* 289 */	NULL, /* filler */
+	/* 290 */	NULL, /* filler */
+	/* 291 */	NULL, /* filler */
+	/* 292 */	NULL, /* filler */
+	/* 293 */	NULL, /* filler */
+	/* 294 */	NULL, /* filler */
+	/* 295 */	NULL, /* filler */
+	/* 296 */	NULL, /* filler */
+	/* 297 */	NULL, /* filler */
+	/* 298 */	NULL, /* filler */
+	/* 299 */	NULL, /* filler */
+	/* 300 */	NULL, /* filler */
+	/* 301 */	NULL, /* filler */
+	/* 302 */	NULL, /* filler */
+	/* 303 */	NULL, /* filler */
+	/* 304 */	NULL, /* filler */
+	/* 305 */	NULL, /* filler */
+	/* 306 */	NULL, /* filler */
+	/* 307 */	NULL, /* filler */
+	/* 308 */	NULL, /* filler */
+	/* 309 */	NULL, /* filler */
+	/* 310 */	NULL, /* filler */
+	/* 311 */	NULL, /* filler */
+	/* 312 */	NULL, /* filler */
+	/* 313 */	NULL, /* filler */
+	/* 314 */	NULL, /* filler */
+	/* 315 */	NULL, /* filler */
+	/* 316 */	NULL, /* filler */
+	/* 317 */	NULL, /* filler */
+	/* 318 */	NULL, /* filler */
+	/* 319 */	NULL, /* filler */
+	/* 320 */	NULL, /* filler */
+	/* 321 */	NULL, /* filler */
+	/* 322 */	NULL, /* filler */
+	/* 323 */	NULL, /* filler */
+	/* 324 */	NULL, /* filler */
+	/* 325 */	NULL, /* filler */
+	/* 326 */	NULL, /* filler */
+	/* 327 */	NULL, /* filler */
+	/* 328 */	NULL, /* filler */
+	/* 329 */	NULL, /* filler */
+	/* 330 */	NULL, /* filler */
+	/* 331 */	NULL, /* filler */
+	/* 332 */	NULL, /* filler */
+	/* 333 */	NULL, /* filler */
+	/* 334 */	NULL, /* filler */
+	/* 335 */	NULL, /* filler */
+	/* 336 */	NULL, /* filler */
+	/* 337 */	NULL, /* filler */
+	/* 338 */	NULL, /* filler */
+	/* 339 */	NULL, /* filler */
+	/* 340 */	NULL, /* filler */
+	/* 341 */	NULL, /* filler */
+	/* 342 */	NULL, /* filler */
+	/* 343 */	NULL, /* filler */
+	/* 344 */	NULL, /* filler */
+	/* 345 */	NULL, /* filler */
+	/* 346 */	NULL, /* filler */
+	/* 347 */	NULL, /* filler */
+	/* 348 */	NULL, /* filler */
+	/* 349 */	NULL, /* filler */
+	/* 350 */	NULL, /* filler */
+	/* 351 */	NULL, /* filler */
+	/* 352 */	NULL, /* filler */
+	/* 353 */	NULL, /* filler */
+	/* 354 */	NULL, /* filler */
+	/* 355 */	NULL, /* filler */
+	/* 356 */	NULL, /* filler */
+	/* 357 */	NULL, /* filler */
+	/* 358 */	NULL, /* filler */
+	/* 359 */	NULL, /* filler */
+	/* 360 */	NULL, /* filler */
+	/* 361 */	NULL, /* filler */
+	/* 362 */	NULL, /* filler */
+	/* 363 */	NULL, /* filler */
+	/* 364 */	NULL, /* filler */
+	/* 365 */	NULL, /* filler */
+	/* 366 */	NULL, /* filler */
+	/* 367 */	NULL, /* filler */
+	/* 368 */	NULL, /* filler */
+	/* 369 */	NULL, /* filler */
+	/* 370 */	NULL, /* filler */
+	/* 371 */	NULL, /* filler */
+	/* 372 */	NULL, /* filler */
+	/* 373 */	NULL, /* filler */
+	/* 374 */	NULL, /* filler */
+	/* 375 */	NULL, /* filler */
+	/* 376 */	NULL, /* filler */
+	/* 377 */	NULL, /* filler */
+	/* 378 */	NULL, /* filler */
+	/* 379 */	NULL, /* filler */
+	/* 380 */	NULL, /* filler */
+	/* 381 */	NULL, /* filler */
+	/* 382 */	NULL, /* filler */
+	/* 383 */	NULL, /* filler */
+	/* 384 */	NULL, /* filler */
+	/* 385 */	NULL, /* filler */
+	/* 386 */	NULL, /* filler */
+	/* 387 */	NULL, /* filler */
+	/* 388 */	NULL, /* filler */
+	/* 389 */	NULL, /* filler */
+	/* 390 */	NULL, /* filler */
+	/* 391 */	NULL, /* filler */
+	/* 392 */	NULL, /* filler */
+	/* 393 */	NULL, /* filler */
+	/* 394 */	NULL, /* filler */
+	/* 395 */	NULL, /* filler */
+	/* 396 */	NULL, /* filler */
+	/* 397 */	NULL, /* filler */
+	/* 398 */	NULL, /* filler */
+	/* 399 */	NULL, /* filler */
+	/* 400 */	NULL, /* filler */
+	/* 401 */	NULL, /* filler */
+	/* 402 */	NULL, /* filler */
+	/* 403 */	NULL, /* filler */
+	/* 404 */	NULL, /* filler */
+	/* 405 */	NULL, /* filler */
+	/* 406 */	NULL, /* filler */
+	/* 407 */	NULL, /* filler */
+	/* 408 */	NULL, /* filler */
+	/* 409 */	NULL, /* filler */
+	/* 410 */	NULL, /* filler */
+	/* 411 */	NULL, /* filler */
+	/* 412 */	NULL, /* filler */
+	/* 413 */	NULL, /* filler */
+	/* 414 */	NULL, /* filler */
+	/* 415 */	NULL, /* filler */
+	/* 416 */	NULL, /* filler */
+	/* 417 */	NULL, /* filler */
+	/* 418 */	NULL, /* filler */
+	/* 419 */	NULL, /* filler */
+	/* 420 */	NULL, /* filler */
+	/* 421 */	NULL, /* filler */
+	/* 422 */	NULL, /* filler */
+	/* 423 */	NULL, /* filler */
+	/* 424 */	NULL, /* filler */
+	/* 425 */	NULL, /* filler */
+	/* 426 */	NULL, /* filler */
+	/* 427 */	NULL, /* filler */
+	/* 428 */	NULL, /* filler */
+	/* 429 */	NULL, /* filler */
+	/* 430 */	NULL, /* filler */
+	/* 431 */	NULL, /* filler */
+	/* 432 */	NULL, /* filler */
+	/* 433 */	NULL, /* filler */
+	/* 434 */	NULL, /* filler */
+	/* 435 */	NULL, /* filler */
+	/* 436 */	NULL, /* filler */
+	/* 437 */	NULL, /* filler */
+	/* 438 */	NULL, /* filler */
+	/* 439 */	NULL, /* filler */
+	/* 440 */	NULL, /* filler */
+	/* 441 */	NULL, /* filler */
+	/* 442 */	NULL, /* filler */
+	/* 443 */	NULL, /* filler */
+	/* 444 */	NULL, /* filler */
+	/* 445 */	NULL, /* filler */
+	/* 446 */	NULL, /* filler */
+	/* 447 */	NULL, /* filler */
+	/* 448 */	NULL, /* filler */
+	/* 449 */	NULL, /* filler */
+	/* 450 */	NULL, /* filler */
+	/* 451 */	NULL, /* filler */
+	/* 452 */	NULL, /* filler */
+	/* 453 */	NULL, /* filler */
+	/* 454 */	NULL, /* filler */
+	/* 455 */	NULL, /* filler */
+	/* 456 */	NULL, /* filler */
+	/* 457 */	NULL, /* filler */
+	/* 458 */	NULL, /* filler */
+	/* 459 */	NULL, /* filler */
+	/* 460 */	NULL, /* filler */
+	/* 461 */	NULL, /* filler */
+	/* 462 */	NULL, /* filler */
+	/* 463 */	NULL, /* filler */
+	/* 464 */	NULL, /* filler */
+	/* 465 */	NULL, /* filler */
+	/* 466 */	NULL, /* filler */
+	/* 467 */	NULL, /* filler */
+	/* 468 */	NULL, /* filler */
+	/* 469 */	NULL, /* filler */
+	/* 470 */	NULL, /* filler */
+	/* 471 */	NULL, /* filler */
+	/* 472 */	NULL, /* filler */
+	/* 473 */	NULL, /* filler */
+	/* 474 */	NULL, /* filler */
+	/* 475 */	NULL, /* filler */
+	/* 476 */	NULL, /* filler */
+	/* 477 */	NULL, /* filler */
+	/* 478 */	NULL, /* filler */
+	/* 479 */	NULL, /* filler */
+	/* 480 */	NULL, /* filler */
+	/* 481 */	NULL, /* filler */
+	/* 482 */	NULL, /* filler */
+	/* 483 */	NULL, /* filler */
+	/* 484 */	NULL, /* filler */
+	/* 485 */	NULL, /* filler */
+	/* 486 */	NULL, /* filler */
+	/* 487 */	NULL, /* filler */
+	/* 488 */	NULL, /* filler */
+	/* 489 */	NULL, /* filler */
+	/* 490 */	NULL, /* filler */
+	/* 491 */	NULL, /* filler */
+	/* 492 */	NULL, /* filler */
+	/* 493 */	NULL, /* filler */
+	/* 494 */	NULL, /* filler */
+	/* 495 */	NULL, /* filler */
+	/* 496 */	NULL, /* filler */
+	/* 497 */	NULL, /* filler */
+	/* 498 */	NULL, /* filler */
+	/* 499 */	NULL, /* filler */
+	/* 500 */	NULL, /* filler */
+	/* 501 */	NULL, /* filler */
+	/* 502 */	NULL, /* filler */
+	/* 503 */	NULL, /* filler */
+	/* 504 */	NULL, /* filler */
+	/* 505 */	NULL, /* filler */
+	/* 506 */	NULL, /* filler */
+	/* 507 */	NULL, /* filler */
+	/* 508 */	NULL, /* filler */
+	/* 509 */	NULL, /* filler */
+	/* 510 */	NULL, /* filler */
+	/* 511 */	NULL, /* filler */
+};
diff --git a/sys/compat/osf1/osf1_sysent.c b/sys/compat/osf1/osf1_sysent.c
index f8a8eac..540afb0 100644
--- a/sys/compat/osf1/osf1_sysent.c
+++ b/sys/compat/osf1/osf1_sysent.c
@@ -1,4 +1,4 @@
-/* $NetBSD: osf1_sysent.c,v 1.62 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: osf1_sysent.c,v 1.62 2013/11/07 19:39:58 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_43.h"
@@ -28,1027 +28,1027 @@ __KERNEL_RCSID(0, "$NetBSD: osf1_sysent.c,v 1.62 2013/11/07 19:39:58 njoly Exp $
 
 struct sysent osf1_sysent[] = {
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_nosys },		/* 0 = syscall */
+	    (sy_call_t *)sys_nosys, 0, 0 },		/* 0 = syscall */
 	{ ns(struct sys_exit_args), 0,
-	    (sy_call_t *)sys_exit },		/* 1 = exit */
+	    (sy_call_t *)sys_exit, 0, 0 },		/* 1 = exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct sys_read_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_read },		/* 3 = read */
+	    (sy_call_t *)sys_read, 0, 0 },		/* 3 = read */
 	{ ns(struct sys_write_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_write },		/* 4 = write */
+	    (sy_call_t *)sys_write, 0, 0 },		/* 4 = write */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 5 = unimplemented old open */
+	    sys_nosys, 0, 0 },			/* 5 = unimplemented old open */
 	{ ns(struct sys_close_args), 0,
-	    (sy_call_t *)sys_close },		/* 6 = close */
+	    (sy_call_t *)sys_close, 0, 0 },		/* 6 = close */
 	{ ns(struct osf1_sys_wait4_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_wait4 },	/* 7 = wait4 */
+	    (sy_call_t *)osf1_sys_wait4, 0, 0 },	/* 7 = wait4 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 8 = unimplemented old creat */
+	    sys_nosys, 0, 0 },			/* 8 = unimplemented old creat */
 	{ ns(struct sys_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_link },		/* 9 = link */
+	    (sy_call_t *)sys_link, 0, 0 },		/* 9 = link */
 	{ ns(struct sys_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_unlink },		/* 10 = unlink */
+	    (sy_call_t *)sys_unlink, 0, 0 },		/* 10 = unlink */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 11 = unimplemented execv */
+	    sys_nosys, 0, 0 },			/* 11 = unimplemented execv */
 	{ ns(struct sys_chdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chdir },		/* 12 = chdir */
+	    (sy_call_t *)sys_chdir, 0, 0 },		/* 12 = chdir */
 	{ ns(struct sys_fchdir_args), 0,
-	    (sy_call_t *)sys_fchdir },		/* 13 = fchdir */
+	    (sy_call_t *)sys_fchdir, 0, 0 },		/* 13 = fchdir */
 	{ ns(struct osf1_sys_mknod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_mknod },	/* 14 = mknod */
+	    (sy_call_t *)osf1_sys_mknod, 0, 0 },	/* 14 = mknod */
 	{ ns(struct sys_chmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chmod },		/* 15 = chmod */
+	    (sy_call_t *)sys_chmod, 0, 0 },		/* 15 = chmod */
 	{ ns(struct sys___posix_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_chown },	/* 16 = __posix_chown */
+	    (sy_call_t *)sys___posix_chown, 0, 0 },	/* 16 = __posix_chown */
 	{ ns(struct sys_obreak_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_obreak },		/* 17 = obreak */
+	    (sy_call_t *)sys_obreak, 0, 0 },		/* 17 = obreak */
 	{ ns(struct osf1_sys_getfsstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_getfsstat },	/* 18 = getfsstat */
+	    (sy_call_t *)osf1_sys_getfsstat, 0, 0 },	/* 18 = getfsstat */
 	{ ns(struct osf1_sys_lseek_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64 | SYCALL_RET_64,
-	    (sy_call_t *)osf1_sys_lseek },	/* 19 = lseek */
+	    (sy_call_t *)osf1_sys_lseek, 0, 0 },	/* 19 = lseek */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid_with_ppid },/* 20 = getpid_with_ppid */
+	    (sy_call_t *)sys_getpid_with_ppid, 0, 0 },/* 20 = getpid_with_ppid */
 	{ ns(struct osf1_sys_mount_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_mount },	/* 21 = mount */
+	    (sy_call_t *)osf1_sys_mount, 0, 0 },	/* 21 = mount */
 	{ ns(struct osf1_sys_unmount_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_unmount },	/* 22 = unmount */
+	    (sy_call_t *)osf1_sys_unmount, 0, 0 },	/* 22 = unmount */
 	{ ns(struct osf1_sys_setuid_args), 0,
-	    (sy_call_t *)osf1_sys_setuid },	/* 23 = setuid */
+	    (sy_call_t *)osf1_sys_setuid, 0, 0 },	/* 23 = setuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid_with_euid },/* 24 = getuid_with_euid */
+	    (sy_call_t *)sys_getuid_with_euid, 0, 0 },/* 24 = getuid_with_euid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 25 = unimplemented exec_with_loader */
+	    sys_nosys, 0, 0 },			/* 25 = unimplemented exec_with_loader */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 26 = unimplemented ptrace */
+	    sys_nosys, 0, 0 },			/* 26 = unimplemented ptrace */
 	{ ns(struct osf1_sys_recvmsg_xopen_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_recvmsg_xopen },/* 27 = recvmsg_xopen */
+	    (sy_call_t *)osf1_sys_recvmsg_xopen, 0, 0 },/* 27 = recvmsg_xopen */
 	{ ns(struct osf1_sys_sendmsg_xopen_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_sendmsg_xopen },/* 28 = sendmsg_xopen */
+	    (sy_call_t *)osf1_sys_sendmsg_xopen, 0, 0 },/* 28 = sendmsg_xopen */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 29 = unimplemented recvfrom */
+	    sys_nosys, 0, 0 },			/* 29 = unimplemented recvfrom */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 30 = unimplemented accept */
+	    sys_nosys, 0, 0 },			/* 30 = unimplemented accept */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 31 = unimplemented getpeername */
+	    sys_nosys, 0, 0 },			/* 31 = unimplemented getpeername */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 32 = unimplemented getsockname */
+	    sys_nosys, 0, 0 },			/* 32 = unimplemented getsockname */
 	{ ns(struct osf1_sys_access_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_access },	/* 33 = access */
+	    (sy_call_t *)osf1_sys_access, 0, 0 },	/* 33 = access */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 34 = unimplemented chflags */
+	    sys_nosys, 0, 0 },			/* 34 = unimplemented chflags */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 35 = unimplemented fchflags */
+	    sys_nosys, 0, 0 },			/* 35 = unimplemented fchflags */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct sys_kill_args), 0,
-	    (sy_call_t *)sys_kill },		/* 37 = kill */
+	    (sy_call_t *)sys_kill, 0, 0 },		/* 37 = kill */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 38 = unimplemented old stat */
+	    sys_nosys, 0, 0 },			/* 38 = unimplemented old stat */
 	{ ns(struct sys_setpgid_args), 0,
-	    (sy_call_t *)sys_setpgid },		/* 39 = setpgid */
+	    (sy_call_t *)sys_setpgid, 0, 0 },		/* 39 = setpgid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 40 = unimplemented old lstat */
+	    sys_nosys, 0, 0 },			/* 40 = unimplemented old lstat */
 	{ ns(struct sys_dup_args), 0,
-	    (sy_call_t *)sys_dup },		/* 41 = dup */
+	    (sy_call_t *)sys_dup, 0, 0 },		/* 41 = dup */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_pipe },		/* 42 = pipe */
+	    (sy_call_t *)sys_pipe, 0, 0 },		/* 42 = pipe */
 	{ ns(struct osf1_sys_set_program_attributes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_set_program_attributes },/* 43 = set_program_attributes */
+	    (sy_call_t *)osf1_sys_set_program_attributes, 0, 0 },/* 43 = set_program_attributes */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 44 = unimplemented profil */
+	    sys_nosys, 0, 0 },			/* 44 = unimplemented profil */
 	{ ns(struct osf1_sys_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_open },	/* 45 = open */
+	    (sy_call_t *)osf1_sys_open, 0, 0 },	/* 45 = open */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 46 = obsolete sigaction */
+	    sys_nosys, 0, 0 },			/* 46 = obsolete sigaction */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid_with_egid },/* 47 = getgid_with_egid */
+	    (sy_call_t *)sys_getgid_with_egid, 0, 0 },/* 47 = getgid_with_egid */
 	{ ns(struct compat_13_sys_sigprocmask_args), 0,
-	    (sy_call_t *)compat_13_sys_sigprocmask },/* 48 = sigprocmask */
+	    (sy_call_t *)compat_13_sys_sigprocmask, 0, 0 },/* 48 = sigprocmask */
 	{ ns(struct sys___getlogin_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getlogin },	/* 49 = __getlogin */
+	    (sy_call_t *)sys___getlogin, 0, 0 },	/* 49 = __getlogin */
 	{ ns(struct sys___setlogin_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___setlogin },	/* 50 = __setlogin */
+	    (sy_call_t *)sys___setlogin, 0, 0 },	/* 50 = __setlogin */
 	{ ns(struct sys_acct_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_acct },		/* 51 = acct */
+	    (sy_call_t *)sys_acct, 0, 0 },		/* 51 = acct */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 52 = unimplemented sigpending */
+	    sys_nosys, 0, 0 },			/* 52 = unimplemented sigpending */
 	{ ns(struct osf1_sys_classcntl_args), 0,
-	    (sy_call_t *)osf1_sys_classcntl },	/* 53 = classcntl */
+	    (sy_call_t *)osf1_sys_classcntl, 0, 0 },	/* 53 = classcntl */
 	{ ns(struct osf1_sys_ioctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_ioctl },	/* 54 = ioctl */
+	    (sy_call_t *)osf1_sys_ioctl, 0, 0 },	/* 54 = ioctl */
 	{ ns(struct osf1_sys_reboot_args), 0,
-	    (sy_call_t *)osf1_sys_reboot },	/* 55 = reboot */
+	    (sy_call_t *)osf1_sys_reboot, 0, 0 },	/* 55 = reboot */
 	{ ns(struct sys_revoke_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_revoke },		/* 56 = revoke */
+	    (sy_call_t *)sys_revoke, 0, 0 },		/* 56 = revoke */
 	{ ns(struct sys_symlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlink },		/* 57 = symlink */
+	    (sy_call_t *)sys_symlink, 0, 0 },		/* 57 = symlink */
 	{ ns(struct sys_readlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlink },	/* 58 = readlink */
+	    (sy_call_t *)sys_readlink, 0, 0 },	/* 58 = readlink */
 	{ ns(struct osf1_sys_execve_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_execve },	/* 59 = execve */
+	    (sy_call_t *)osf1_sys_execve, 0, 0 },	/* 59 = execve */
 	{ ns(struct sys_umask_args), 0,
-	    (sy_call_t *)sys_umask },		/* 60 = umask */
+	    (sy_call_t *)sys_umask, 0, 0 },		/* 60 = umask */
 	{ ns(struct sys_chroot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chroot },		/* 61 = chroot */
+	    (sy_call_t *)sys_chroot, 0, 0 },		/* 61 = chroot */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 62 = unimplemented old fstat */
+	    sys_nosys, 0, 0 },			/* 62 = unimplemented old fstat */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpgrp },		/* 63 = getpgrp */
+	    (sy_call_t *)sys_getpgrp, 0, 0 },		/* 63 = getpgrp */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_getpagesize },/* 64 = getpagesize */
+	    (sy_call_t *)compat_43_sys_getpagesize, 0, 0 },/* 64 = getpagesize */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 65 = unimplemented mremap */
+	    sys_nosys, 0, 0 },			/* 65 = unimplemented mremap */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_vfork },		/* 66 = vfork */
+	    (sy_call_t *)sys_vfork, 0, 0 },		/* 66 = vfork */
 	{ ns(struct osf1_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_stat },	/* 67 = stat */
+	    (sy_call_t *)osf1_sys_stat, 0, 0 },	/* 67 = stat */
 	{ ns(struct osf1_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_lstat },	/* 68 = lstat */
+	    (sy_call_t *)osf1_sys_lstat, 0, 0 },	/* 68 = lstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 69 = unimplemented sbrk */
+	    sys_nosys, 0, 0 },			/* 69 = unimplemented sbrk */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 70 = unimplemented sstk */
+	    sys_nosys, 0, 0 },			/* 70 = unimplemented sstk */
 	{ ns(struct osf1_sys_mmap_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG5_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_mmap },	/* 71 = mmap */
+	    (sy_call_t *)osf1_sys_mmap, 0, 0 },	/* 71 = mmap */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 72 = unimplemented ovadvise */
+	    sys_nosys, 0, 0 },			/* 72 = unimplemented ovadvise */
 	{ ns(struct sys_munmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munmap },		/* 73 = munmap */
+	    (sy_call_t *)sys_munmap, 0, 0 },		/* 73 = munmap */
 	{ ns(struct osf1_sys_mprotect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_mprotect },	/* 74 = mprotect */
+	    (sy_call_t *)osf1_sys_mprotect, 0, 0 },	/* 74 = mprotect */
 	{ ns(struct osf1_sys_madvise_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_madvise },	/* 75 = madvise */
+	    (sy_call_t *)osf1_sys_madvise, 0, 0 },	/* 75 = madvise */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 76 = unimplemented old vhangup */
+	    sys_nosys, 0, 0 },			/* 76 = unimplemented old vhangup */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 77 = unimplemented kmodcall */
+	    sys_nosys, 0, 0 },			/* 77 = unimplemented kmodcall */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 78 = unimplemented mincore */
+	    sys_nosys, 0, 0 },			/* 78 = unimplemented mincore */
 	{ ns(struct sys_getgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getgroups },	/* 79 = getgroups */
+	    (sy_call_t *)sys_getgroups, 0, 0 },	/* 79 = getgroups */
 	{ ns(struct sys_setgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setgroups },	/* 80 = setgroups */
+	    (sy_call_t *)sys_setgroups, 0, 0 },	/* 80 = setgroups */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 81 = unimplemented old getpgrp */
+	    sys_nosys, 0, 0 },			/* 81 = unimplemented old getpgrp */
 	{ ns(struct sys_setpgid_args), 0,
-	    (sy_call_t *)sys_setpgid },		/* 82 = setpgrp */
+	    (sy_call_t *)sys_setpgid, 0, 0 },		/* 82 = setpgrp */
 	{ ns(struct osf1_sys_setitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_setitimer },	/* 83 = setitimer */
+	    (sy_call_t *)osf1_sys_setitimer, 0, 0 },	/* 83 = setitimer */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 84 = unimplemented old wait */
+	    sys_nosys, 0, 0 },			/* 84 = unimplemented old wait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 85 = unimplemented table */
+	    sys_nosys, 0, 0 },			/* 85 = unimplemented table */
 	{ ns(struct osf1_sys_getitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_getitimer },	/* 86 = getitimer */
+	    (sy_call_t *)osf1_sys_getitimer, 0, 0 },	/* 86 = getitimer */
 	{ ns(struct compat_43_sys_gethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_gethostname },/* 87 = gethostname */
+	    (sy_call_t *)compat_43_sys_gethostname, 0, 0 },/* 87 = gethostname */
 	{ ns(struct compat_43_sys_sethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sethostname },/* 88 = sethostname */
+	    (sy_call_t *)compat_43_sys_sethostname, 0, 0 },/* 88 = sethostname */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_getdtablesize },/* 89 = getdtablesize */
+	    (sy_call_t *)compat_43_sys_getdtablesize, 0, 0 },/* 89 = getdtablesize */
 	{ ns(struct sys_dup2_args), 0,
-	    (sy_call_t *)sys_dup2 },		/* 90 = dup2 */
+	    (sy_call_t *)sys_dup2, 0, 0 },		/* 90 = dup2 */
 	{ ns(struct osf1_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_fstat },	/* 91 = fstat */
+	    (sy_call_t *)osf1_sys_fstat, 0, 0 },	/* 91 = fstat */
 	{ ns(struct osf1_sys_fcntl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_fcntl },	/* 92 = fcntl */
+	    (sy_call_t *)osf1_sys_fcntl, 0, 0 },	/* 92 = fcntl */
 	{ ns(struct osf1_sys_select_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_select },	/* 93 = select */
+	    (sy_call_t *)osf1_sys_select, 0, 0 },	/* 93 = select */
 	{ ns(struct sys_poll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_poll },		/* 94 = poll */
+	    (sy_call_t *)sys_poll, 0, 0 },		/* 94 = poll */
 	{ ns(struct sys_fsync_args), 0,
-	    (sy_call_t *)sys_fsync },		/* 95 = fsync */
+	    (sy_call_t *)sys_fsync, 0, 0 },		/* 95 = fsync */
 	{ ns(struct sys_setpriority_args), 0,
-	    (sy_call_t *)sys_setpriority },	/* 96 = setpriority */
+	    (sy_call_t *)sys_setpriority, 0, 0 },	/* 96 = setpriority */
 	{ ns(struct osf1_sys_socket_args), 0,
-	    (sy_call_t *)osf1_sys_socket },	/* 97 = socket */
+	    (sy_call_t *)osf1_sys_socket, 0, 0 },	/* 97 = socket */
 	{ ns(struct sys_connect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_connect },		/* 98 = connect */
+	    (sy_call_t *)sys_connect, 0, 0 },		/* 98 = connect */
 	{ ns(struct compat_43_sys_accept_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_accept },/* 99 = accept */
+	    (sy_call_t *)compat_43_sys_accept, 0, 0 },/* 99 = accept */
 	{ ns(struct sys_getpriority_args), 0,
-	    (sy_call_t *)sys_getpriority },	/* 100 = getpriority */
+	    (sy_call_t *)sys_getpriority, 0, 0 },	/* 100 = getpriority */
 	{ ns(struct compat_43_sys_send_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_send },	/* 101 = send */
+	    (sy_call_t *)compat_43_sys_send, 0, 0 },	/* 101 = send */
 	{ ns(struct compat_43_sys_recv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recv },	/* 102 = recv */
+	    (sy_call_t *)compat_43_sys_recv, 0, 0 },	/* 102 = recv */
 	{ ns(struct compat_13_sys_sigreturn_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_13_sys_sigreturn },/* 103 = sigreturn */
+	    (sy_call_t *)compat_13_sys_sigreturn, 0, 0 },/* 103 = sigreturn */
 	{ ns(struct sys_bind_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_bind },		/* 104 = bind */
+	    (sy_call_t *)sys_bind, 0, 0 },		/* 104 = bind */
 	{ ns(struct sys_setsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setsockopt },	/* 105 = setsockopt */
+	    (sy_call_t *)sys_setsockopt, 0, 0 },	/* 105 = setsockopt */
 	{ ns(struct sys_listen_args), 0,
-	    (sy_call_t *)sys_listen },		/* 106 = listen */
+	    (sy_call_t *)sys_listen, 0, 0 },		/* 106 = listen */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 107 = unimplemented plock */
+	    sys_nosys, 0, 0 },			/* 107 = unimplemented plock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 108 = unimplemented old sigvec */
+	    sys_nosys, 0, 0 },			/* 108 = unimplemented old sigvec */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 109 = unimplemented old sigblock */
+	    sys_nosys, 0, 0 },			/* 109 = unimplemented old sigblock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 110 = unimplemented old sigsetmask */
+	    sys_nosys, 0, 0 },			/* 110 = unimplemented old sigsetmask */
 	{ ns(struct compat_13_sys_sigsuspend_args), 0,
-	    (sy_call_t *)compat_13_sys_sigsuspend },/* 111 = sigsuspend */
+	    (sy_call_t *)compat_13_sys_sigsuspend, 0, 0 },/* 111 = sigsuspend */
 	{ ns(struct compat_43_sys_sigstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sigstack },/* 112 = sigstack */
+	    (sy_call_t *)compat_43_sys_sigstack, 0, 0 },/* 112 = sigstack */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 113 = unimplemented old recvmsg */
+	    sys_nosys, 0, 0 },			/* 113 = unimplemented old recvmsg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 114 = unimplemented old sendmsg */
+	    sys_nosys, 0, 0 },			/* 114 = unimplemented old sendmsg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 115 = obsolete vtrace */
+	    sys_nosys, 0, 0 },			/* 115 = obsolete vtrace */
 	{ ns(struct osf1_sys_gettimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_gettimeofday },/* 116 = gettimeofday */
+	    (sy_call_t *)osf1_sys_gettimeofday, 0, 0 },/* 116 = gettimeofday */
 	{ ns(struct osf1_sys_getrusage_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_getrusage },	/* 117 = getrusage */
+	    (sy_call_t *)osf1_sys_getrusage, 0, 0 },	/* 117 = getrusage */
 	{ ns(struct sys_getsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getsockopt },	/* 118 = getsockopt */
+	    (sy_call_t *)sys_getsockopt, 0, 0 },	/* 118 = getsockopt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 119 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 119 = unimplemented */
 	{ ns(struct osf1_sys_readv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_readv },	/* 120 = readv */
+	    (sy_call_t *)osf1_sys_readv, 0, 0 },	/* 120 = readv */
 	{ ns(struct osf1_sys_writev_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_writev },	/* 121 = writev */
+	    (sy_call_t *)osf1_sys_writev, 0, 0 },	/* 121 = writev */
 	{ ns(struct osf1_sys_settimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_settimeofday },/* 122 = settimeofday */
+	    (sy_call_t *)osf1_sys_settimeofday, 0, 0 },/* 122 = settimeofday */
 	{ ns(struct sys___posix_fchown_args), 0,
-	    (sy_call_t *)sys___posix_fchown },	/* 123 = __posix_fchown */
+	    (sy_call_t *)sys___posix_fchown, 0, 0 },	/* 123 = __posix_fchown */
 	{ ns(struct sys_fchmod_args), 0,
-	    (sy_call_t *)sys_fchmod },		/* 124 = fchmod */
+	    (sy_call_t *)sys_fchmod, 0, 0 },		/* 124 = fchmod */
 	{ ns(struct compat_43_sys_recvfrom_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recvfrom },/* 125 = recvfrom */
+	    (sy_call_t *)compat_43_sys_recvfrom, 0, 0 },/* 125 = recvfrom */
 	{ ns(struct sys_setreuid_args), 0,
-	    (sy_call_t *)sys_setreuid },	/* 126 = setreuid */
+	    (sy_call_t *)sys_setreuid, 0, 0 },	/* 126 = setreuid */
 	{ ns(struct sys_setregid_args), 0,
-	    (sy_call_t *)sys_setregid },	/* 127 = setregid */
+	    (sy_call_t *)sys_setregid, 0, 0 },	/* 127 = setregid */
 	{ ns(struct sys___posix_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_rename },	/* 128 = __posix_rename */
+	    (sy_call_t *)sys___posix_rename, 0, 0 },	/* 128 = __posix_rename */
 	{ ns(struct osf1_sys_truncate_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_truncate },	/* 129 = truncate */
+	    (sy_call_t *)osf1_sys_truncate, 0, 0 },	/* 129 = truncate */
 	{ ns(struct osf1_sys_ftruncate_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG1_64,
-	    (sy_call_t *)osf1_sys_ftruncate },	/* 130 = ftruncate */
+	    (sy_call_t *)osf1_sys_ftruncate, 0, 0 },	/* 130 = ftruncate */
 	{ ns(struct sys_flock_args), 0,
-	    (sy_call_t *)sys_flock },		/* 131 = flock */
+	    (sy_call_t *)sys_flock, 0, 0 },		/* 131 = flock */
 	{ ns(struct osf1_sys_setgid_args), 0,
-	    (sy_call_t *)osf1_sys_setgid },	/* 132 = setgid */
+	    (sy_call_t *)osf1_sys_setgid, 0, 0 },	/* 132 = setgid */
 	{ ns(struct osf1_sys_sendto_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_sendto },	/* 133 = sendto */
+	    (sy_call_t *)osf1_sys_sendto, 0, 0 },	/* 133 = sendto */
 	{ ns(struct sys_shutdown_args), 0,
-	    (sy_call_t *)sys_shutdown },	/* 134 = shutdown */
+	    (sy_call_t *)sys_shutdown, 0, 0 },	/* 134 = shutdown */
 	{ ns(struct osf1_sys_socketpair_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_socketpair },	/* 135 = socketpair */
+	    (sy_call_t *)osf1_sys_socketpair, 0, 0 },	/* 135 = socketpair */
 	{ ns(struct sys_mkdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdir },		/* 136 = mkdir */
+	    (sy_call_t *)sys_mkdir, 0, 0 },		/* 136 = mkdir */
 	{ ns(struct sys_rmdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rmdir },		/* 137 = rmdir */
+	    (sy_call_t *)sys_rmdir, 0, 0 },		/* 137 = rmdir */
 	{ ns(struct osf1_sys_utimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_utimes },	/* 138 = utimes */
+	    (sy_call_t *)osf1_sys_utimes, 0, 0 },	/* 138 = utimes */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 139 = obsolete 4.2 sigreturn */
+	    sys_nosys, 0, 0 },			/* 139 = obsolete 4.2 sigreturn */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 140 = unimplemented adjtime */
+	    sys_nosys, 0, 0 },			/* 140 = unimplemented adjtime */
 	{ ns(struct compat_43_sys_getpeername_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getpeername },/* 141 = getpeername */
+	    (sy_call_t *)compat_43_sys_getpeername, 0, 0 },/* 141 = getpeername */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_gethostid },/* 142 = gethostid */
+	    (sy_call_t *)compat_43_sys_gethostid, 0, 0 },/* 142 = gethostid */
 	{ ns(struct compat_43_sys_sethostid_args), 0,
-	    (sy_call_t *)compat_43_sys_sethostid },/* 143 = sethostid */
+	    (sy_call_t *)compat_43_sys_sethostid, 0, 0 },/* 143 = sethostid */
 	{ ns(struct osf1_sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_getrlimit },	/* 144 = getrlimit */
+	    (sy_call_t *)osf1_sys_getrlimit, 0, 0 },	/* 144 = getrlimit */
 	{ ns(struct osf1_sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_setrlimit },	/* 145 = setrlimit */
+	    (sy_call_t *)osf1_sys_setrlimit, 0, 0 },	/* 145 = setrlimit */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 146 = unimplemented old killpg */
+	    sys_nosys, 0, 0 },			/* 146 = unimplemented old killpg */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_setsid },		/* 147 = setsid */
+	    (sy_call_t *)sys_setsid, 0, 0 },		/* 147 = setsid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 148 = unimplemented quotactl */
+	    sys_nosys, 0, 0 },			/* 148 = unimplemented quotactl */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_quota },	/* 149 = quota */
+	    (sy_call_t *)compat_43_sys_quota, 0, 0 },	/* 149 = quota */
 	{ ns(struct compat_43_sys_getsockname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getsockname },/* 150 = getsockname */
+	    (sy_call_t *)compat_43_sys_getsockname, 0, 0 },/* 150 = getsockname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 151 = unimplemented pread */
+	    sys_nosys, 0, 0 },			/* 151 = unimplemented pread */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 152 = unimplemented pwrite */
+	    sys_nosys, 0, 0 },			/* 152 = unimplemented pwrite */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 153 = unimplemented pid_block */
+	    sys_nosys, 0, 0 },			/* 153 = unimplemented pid_block */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 154 = unimplemented pid_unblock */
+	    sys_nosys, 0, 0 },			/* 154 = unimplemented pid_unblock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 155 = unimplemented signal_urti */
+	    sys_nosys, 0, 0 },			/* 155 = unimplemented signal_urti */
 	{ ns(struct osf1_sys_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_sigaction },	/* 156 = sigaction */
+	    (sy_call_t *)osf1_sys_sigaction, 0, 0 },	/* 156 = sigaction */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 157 = unimplemented sigwaitprim */
+	    sys_nosys, 0, 0 },			/* 157 = unimplemented sigwaitprim */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 158 = unimplemented nfssvc */
+	    sys_nosys, 0, 0 },			/* 158 = unimplemented nfssvc */
 	{ ns(struct osf1_sys_getdirentries_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_getdirentries },/* 159 = getdirentries */
+	    (sy_call_t *)osf1_sys_getdirentries, 0, 0 },/* 159 = getdirentries */
 	{ ns(struct osf1_sys_statfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_statfs },	/* 160 = statfs */
+	    (sy_call_t *)osf1_sys_statfs, 0, 0 },	/* 160 = statfs */
 	{ ns(struct osf1_sys_fstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_fstatfs },	/* 161 = fstatfs */
+	    (sy_call_t *)osf1_sys_fstatfs, 0, 0 },	/* 161 = fstatfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 162 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 162 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 163 = unimplemented async_daemon */
+	    sys_nosys, 0, 0 },			/* 163 = unimplemented async_daemon */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 164 = unimplemented getfh */
+	    sys_nosys, 0, 0 },			/* 164 = unimplemented getfh */
 	{ ns(struct compat_09_sys_getdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_09_sys_getdomainname },/* 165 = getdomainname */
+	    (sy_call_t *)compat_09_sys_getdomainname, 0, 0 },/* 165 = getdomainname */
 	{ ns(struct compat_09_sys_setdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_09_sys_setdomainname },/* 166 = setdomainname */
+	    (sy_call_t *)compat_09_sys_setdomainname, 0, 0 },/* 166 = setdomainname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 167 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 167 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 168 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 168 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 169 = unimplemented exportfs */
+	    sys_nosys, 0, 0 },			/* 169 = unimplemented exportfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 170 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 170 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 171 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 171 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 172 = unimplemented alt msgctl */
+	    sys_nosys, 0, 0 },			/* 172 = unimplemented alt msgctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 173 = unimplemented alt msgget */
+	    sys_nosys, 0, 0 },			/* 173 = unimplemented alt msgget */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 174 = unimplemented alt msgrcv */
+	    sys_nosys, 0, 0 },			/* 174 = unimplemented alt msgrcv */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 175 = unimplemented alt msgsnd */
+	    sys_nosys, 0, 0 },			/* 175 = unimplemented alt msgsnd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 176 = unimplemented alt semctl */
+	    sys_nosys, 0, 0 },			/* 176 = unimplemented alt semctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 177 = unimplemented alt semget */
+	    sys_nosys, 0, 0 },			/* 177 = unimplemented alt semget */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 178 = unimplemented alt semop */
+	    sys_nosys, 0, 0 },			/* 178 = unimplemented alt semop */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 179 = unimplemented alt uname */
+	    sys_nosys, 0, 0 },			/* 179 = unimplemented alt uname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 180 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 180 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 181 = unimplemented alt plock */
+	    sys_nosys, 0, 0 },			/* 181 = unimplemented alt plock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 182 = unimplemented lockf */
+	    sys_nosys, 0, 0 },			/* 182 = unimplemented lockf */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 183 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 183 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 184 = unimplemented getmnt */
+	    sys_nosys, 0, 0 },			/* 184 = unimplemented getmnt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 185 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 185 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 186 = unimplemented unmount */
+	    sys_nosys, 0, 0 },			/* 186 = unimplemented unmount */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 187 = unimplemented alt sigpending */
+	    sys_nosys, 0, 0 },			/* 187 = unimplemented alt sigpending */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 188 = unimplemented alt setsid */
+	    sys_nosys, 0, 0 },			/* 188 = unimplemented alt setsid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 189 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 189 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 190 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 190 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 191 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 191 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 192 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 192 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 193 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 193 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 194 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 194 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 195 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 195 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 196 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 196 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 197 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 197 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 198 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 198 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 199 = unimplemented swapon */
+	    sys_nosys, 0, 0 },			/* 199 = unimplemented swapon */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 200 = unimplemented msgctl */
+	    sys_nosys, 0, 0 },			/* 200 = unimplemented msgctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 201 = unimplemented msgget */
+	    sys_nosys, 0, 0 },			/* 201 = unimplemented msgget */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 202 = unimplemented msgrcv */
+	    sys_nosys, 0, 0 },			/* 202 = unimplemented msgrcv */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 203 = unimplemented msgsnd */
+	    sys_nosys, 0, 0 },			/* 203 = unimplemented msgsnd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 204 = unimplemented semctl */
+	    sys_nosys, 0, 0 },			/* 204 = unimplemented semctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 205 = unimplemented semget */
+	    sys_nosys, 0, 0 },			/* 205 = unimplemented semget */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 206 = unimplemented semop */
+	    sys_nosys, 0, 0 },			/* 206 = unimplemented semop */
 	{ ns(struct osf1_sys_uname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_uname },	/* 207 = uname */
+	    (sy_call_t *)osf1_sys_uname, 0, 0 },	/* 207 = uname */
 	{ ns(struct sys___posix_lchown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_lchown },	/* 208 = __posix_lchown */
+	    (sy_call_t *)sys___posix_lchown, 0, 0 },	/* 208 = __posix_lchown */
 	{ ns(struct osf1_sys_shmat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_shmat },	/* 209 = shmat */
+	    (sy_call_t *)osf1_sys_shmat, 0, 0 },	/* 209 = shmat */
 	{ ns(struct osf1_sys_shmctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_shmctl },	/* 210 = shmctl */
+	    (sy_call_t *)osf1_sys_shmctl, 0, 0 },	/* 210 = shmctl */
 	{ ns(struct osf1_sys_shmdt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_shmdt },	/* 211 = shmdt */
+	    (sy_call_t *)osf1_sys_shmdt, 0, 0 },	/* 211 = shmdt */
 	{ ns(struct osf1_sys_shmget_args), 0,
-	    (sy_call_t *)osf1_sys_shmget },	/* 212 = shmget */
+	    (sy_call_t *)osf1_sys_shmget, 0, 0 },	/* 212 = shmget */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 213 = unimplemented mvalid */
+	    sys_nosys, 0, 0 },			/* 213 = unimplemented mvalid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 214 = unimplemented getaddressconf */
+	    sys_nosys, 0, 0 },			/* 214 = unimplemented getaddressconf */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 215 = unimplemented msleep */
+	    sys_nosys, 0, 0 },			/* 215 = unimplemented msleep */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 216 = unimplemented mwakeup */
+	    sys_nosys, 0, 0 },			/* 216 = unimplemented mwakeup */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 217 = unimplemented msync */
+	    sys_nosys, 0, 0 },			/* 217 = unimplemented msync */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 218 = unimplemented signal */
+	    sys_nosys, 0, 0 },			/* 218 = unimplemented signal */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 219 = unimplemented utc gettime */
+	    sys_nosys, 0, 0 },			/* 219 = unimplemented utc gettime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 220 = unimplemented utc adjtime */
+	    sys_nosys, 0, 0 },			/* 220 = unimplemented utc adjtime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 221 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 221 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 222 = unimplemented security */
+	    sys_nosys, 0, 0 },			/* 222 = unimplemented security */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 223 = unimplemented kloadcall */
+	    sys_nosys, 0, 0 },			/* 223 = unimplemented kloadcall */
 	{ ns(struct osf1_sys_stat2_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_stat2 },	/* 224 = stat2 */
+	    (sy_call_t *)osf1_sys_stat2, 0, 0 },	/* 224 = stat2 */
 	{ ns(struct osf1_sys_lstat2_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_lstat2 },	/* 225 = lstat2 */
+	    (sy_call_t *)osf1_sys_lstat2, 0, 0 },	/* 225 = lstat2 */
 	{ ns(struct osf1_sys_fstat2_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_fstat2 },	/* 226 = fstat2 */
+	    (sy_call_t *)osf1_sys_fstat2, 0, 0 },	/* 226 = fstat2 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 227 = unimplemented statfs2 */
+	    sys_nosys, 0, 0 },			/* 227 = unimplemented statfs2 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 228 = unimplemented fstatfs2 */
+	    sys_nosys, 0, 0 },			/* 228 = unimplemented fstatfs2 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 229 = unimplemented getfsstat2 */
+	    sys_nosys, 0, 0 },			/* 229 = unimplemented getfsstat2 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 230 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 230 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 231 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 231 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 232 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 232 = unimplemented */
 	{ ns(struct sys_getpgid_args), 0,
-	    (sy_call_t *)sys_getpgid },		/* 233 = getpgid */
+	    (sy_call_t *)sys_getpgid, 0, 0 },		/* 233 = getpgid */
 	{ ns(struct sys_getsid_args), 0,
-	    (sy_call_t *)sys_getsid },		/* 234 = getsid */
+	    (sy_call_t *)sys_getsid, 0, 0 },		/* 234 = getsid */
 	{ ns(struct osf1_sys_sigaltstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_sigaltstack },/* 235 = sigaltstack */
+	    (sy_call_t *)osf1_sys_sigaltstack, 0, 0 },/* 235 = sigaltstack */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 236 = unimplemented waitid */
+	    sys_nosys, 0, 0 },			/* 236 = unimplemented waitid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 237 = unimplemented priocntlset */
+	    sys_nosys, 0, 0 },			/* 237 = unimplemented priocntlset */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 238 = unimplemented sigsendset */
+	    sys_nosys, 0, 0 },			/* 238 = unimplemented sigsendset */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 239 = unimplemented set_speculative */
+	    sys_nosys, 0, 0 },			/* 239 = unimplemented set_speculative */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 240 = unimplemented msfs_syscall */
+	    sys_nosys, 0, 0 },			/* 240 = unimplemented msfs_syscall */
 	{ ns(struct osf1_sys_sysinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_sysinfo },	/* 241 = sysinfo */
+	    (sy_call_t *)osf1_sys_sysinfo, 0, 0 },	/* 241 = sysinfo */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 242 = unimplemented uadmin */
+	    sys_nosys, 0, 0 },			/* 242 = unimplemented uadmin */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 243 = unimplemented fuser */
+	    sys_nosys, 0, 0 },			/* 243 = unimplemented fuser */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 244 = unimplemented proplist_syscall */
+	    sys_nosys, 0, 0 },			/* 244 = unimplemented proplist_syscall */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 245 = unimplemented ntp_adjtime */
+	    sys_nosys, 0, 0 },			/* 245 = unimplemented ntp_adjtime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 246 = unimplemented ntp_gettime */
+	    sys_nosys, 0, 0 },			/* 246 = unimplemented ntp_gettime */
 	{ ns(struct osf1_sys_pathconf_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_pathconf },	/* 247 = pathconf */
+	    (sy_call_t *)osf1_sys_pathconf, 0, 0 },	/* 247 = pathconf */
 	{ ns(struct osf1_sys_fpathconf_args), 0,
-	    (sy_call_t *)osf1_sys_fpathconf },	/* 248 = fpathconf */
+	    (sy_call_t *)osf1_sys_fpathconf, 0, 0 },	/* 248 = fpathconf */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 249 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 249 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 250 = unimplemented uswitch */
+	    sys_nosys, 0, 0 },			/* 250 = unimplemented uswitch */
 	{ ns(struct osf1_sys_usleep_thread_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_usleep_thread },/* 251 = usleep_thread */
+	    (sy_call_t *)osf1_sys_usleep_thread, 0, 0 },/* 251 = usleep_thread */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 252 = unimplemented audcntl */
+	    sys_nosys, 0, 0 },			/* 252 = unimplemented audcntl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 253 = unimplemented audgen */
+	    sys_nosys, 0, 0 },			/* 253 = unimplemented audgen */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 254 = unimplemented sysfs */
+	    sys_nosys, 0, 0 },			/* 254 = unimplemented sysfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 255 = unimplemented subsys_info */
+	    sys_nosys, 0, 0 },			/* 255 = unimplemented subsys_info */
 	{ ns(struct osf1_sys_getsysinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_getsysinfo },	/* 256 = getsysinfo */
+	    (sy_call_t *)osf1_sys_getsysinfo, 0, 0 },	/* 256 = getsysinfo */
 	{ ns(struct osf1_sys_setsysinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)osf1_sys_setsysinfo },	/* 257 = setsysinfo */
+	    (sy_call_t *)osf1_sys_setsysinfo, 0, 0 },	/* 257 = setsysinfo */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 258 = unimplemented afs_syscall */
+	    sys_nosys, 0, 0 },			/* 258 = unimplemented afs_syscall */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 259 = unimplemented swapctl */
+	    sys_nosys, 0, 0 },			/* 259 = unimplemented swapctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 260 = unimplemented memcntl */
+	    sys_nosys, 0, 0 },			/* 260 = unimplemented memcntl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 261 = unimplemented fdatasync */
+	    sys_nosys, 0, 0 },			/* 261 = unimplemented fdatasync */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 262 = unimplemented oflock */
+	    sys_nosys, 0, 0 },			/* 262 = unimplemented oflock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 263 = unimplemented _F64_readv */
+	    sys_nosys, 0, 0 },			/* 263 = unimplemented _F64_readv */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 264 = unimplemented _F64_writev */
+	    sys_nosys, 0, 0 },			/* 264 = unimplemented _F64_writev */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 265 = unimplemented cdslxlate */
+	    sys_nosys, 0, 0 },			/* 265 = unimplemented cdslxlate */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 266 = unimplemented sendfile */
+	    sys_nosys, 0, 0 },			/* 266 = unimplemented sendfile */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 267 = filler */
+	    sys_nosys, 0, 0 },			/* 267 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 268 = filler */
+	    sys_nosys, 0, 0 },			/* 268 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 269 = filler */
+	    sys_nosys, 0, 0 },			/* 269 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 270 = filler */
+	    sys_nosys, 0, 0 },			/* 270 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 271 = filler */
+	    sys_nosys, 0, 0 },			/* 271 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 272 = filler */
+	    sys_nosys, 0, 0 },			/* 272 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 273 = filler */
+	    sys_nosys, 0, 0 },			/* 273 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 274 = filler */
+	    sys_nosys, 0, 0 },			/* 274 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 275 = filler */
+	    sys_nosys, 0, 0 },			/* 275 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 276 = filler */
+	    sys_nosys, 0, 0 },			/* 276 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 277 = filler */
+	    sys_nosys, 0, 0 },			/* 277 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 278 = filler */
+	    sys_nosys, 0, 0 },			/* 278 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 279 = filler */
+	    sys_nosys, 0, 0 },			/* 279 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 280 = filler */
+	    sys_nosys, 0, 0 },			/* 280 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 281 = filler */
+	    sys_nosys, 0, 0 },			/* 281 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 282 = filler */
+	    sys_nosys, 0, 0 },			/* 282 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 283 = filler */
+	    sys_nosys, 0, 0 },			/* 283 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 284 = filler */
+	    sys_nosys, 0, 0 },			/* 284 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 285 = filler */
+	    sys_nosys, 0, 0 },			/* 285 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 286 = filler */
+	    sys_nosys, 0, 0 },			/* 286 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 287 = filler */
+	    sys_nosys, 0, 0 },			/* 287 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 288 = filler */
+	    sys_nosys, 0, 0 },			/* 288 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 289 = filler */
+	    sys_nosys, 0, 0 },			/* 289 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 290 = filler */
+	    sys_nosys, 0, 0 },			/* 290 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 291 = filler */
+	    sys_nosys, 0, 0 },			/* 291 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 292 = filler */
+	    sys_nosys, 0, 0 },			/* 292 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 293 = filler */
+	    sys_nosys, 0, 0 },			/* 293 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 294 = filler */
+	    sys_nosys, 0, 0 },			/* 294 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 295 = filler */
+	    sys_nosys, 0, 0 },			/* 295 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 296 = filler */
+	    sys_nosys, 0, 0 },			/* 296 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 297 = filler */
+	    sys_nosys, 0, 0 },			/* 297 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 298 = filler */
+	    sys_nosys, 0, 0 },			/* 298 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 299 = filler */
+	    sys_nosys, 0, 0 },			/* 299 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 300 = filler */
+	    sys_nosys, 0, 0 },			/* 300 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 301 = filler */
+	    sys_nosys, 0, 0 },			/* 301 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 302 = filler */
+	    sys_nosys, 0, 0 },			/* 302 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 303 = filler */
+	    sys_nosys, 0, 0 },			/* 303 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 304 = filler */
+	    sys_nosys, 0, 0 },			/* 304 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 305 = filler */
+	    sys_nosys, 0, 0 },			/* 305 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 306 = filler */
+	    sys_nosys, 0, 0 },			/* 306 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 307 = filler */
+	    sys_nosys, 0, 0 },			/* 307 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 308 = filler */
+	    sys_nosys, 0, 0 },			/* 308 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 309 = filler */
+	    sys_nosys, 0, 0 },			/* 309 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 310 = filler */
+	    sys_nosys, 0, 0 },			/* 310 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 311 = filler */
+	    sys_nosys, 0, 0 },			/* 311 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 312 = filler */
+	    sys_nosys, 0, 0 },			/* 312 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 313 = filler */
+	    sys_nosys, 0, 0 },			/* 313 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 314 = filler */
+	    sys_nosys, 0, 0 },			/* 314 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 315 = filler */
+	    sys_nosys, 0, 0 },			/* 315 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 316 = filler */
+	    sys_nosys, 0, 0 },			/* 316 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 317 = filler */
+	    sys_nosys, 0, 0 },			/* 317 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 318 = filler */
+	    sys_nosys, 0, 0 },			/* 318 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 319 = filler */
+	    sys_nosys, 0, 0 },			/* 319 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 320 = filler */
+	    sys_nosys, 0, 0 },			/* 320 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 321 = filler */
+	    sys_nosys, 0, 0 },			/* 321 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 322 = filler */
+	    sys_nosys, 0, 0 },			/* 322 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 323 = filler */
+	    sys_nosys, 0, 0 },			/* 323 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 324 = filler */
+	    sys_nosys, 0, 0 },			/* 324 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 325 = filler */
+	    sys_nosys, 0, 0 },			/* 325 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 326 = filler */
+	    sys_nosys, 0, 0 },			/* 326 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 327 = filler */
+	    sys_nosys, 0, 0 },			/* 327 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 328 = filler */
+	    sys_nosys, 0, 0 },			/* 328 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 329 = filler */
+	    sys_nosys, 0, 0 },			/* 329 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 330 = filler */
+	    sys_nosys, 0, 0 },			/* 330 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 331 = filler */
+	    sys_nosys, 0, 0 },			/* 331 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 332 = filler */
+	    sys_nosys, 0, 0 },			/* 332 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 333 = filler */
+	    sys_nosys, 0, 0 },			/* 333 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 334 = filler */
+	    sys_nosys, 0, 0 },			/* 334 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 335 = filler */
+	    sys_nosys, 0, 0 },			/* 335 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 336 = filler */
+	    sys_nosys, 0, 0 },			/* 336 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 337 = filler */
+	    sys_nosys, 0, 0 },			/* 337 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 338 = filler */
+	    sys_nosys, 0, 0 },			/* 338 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 339 = filler */
+	    sys_nosys, 0, 0 },			/* 339 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 340 = filler */
+	    sys_nosys, 0, 0 },			/* 340 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 341 = filler */
+	    sys_nosys, 0, 0 },			/* 341 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 342 = filler */
+	    sys_nosys, 0, 0 },			/* 342 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 343 = filler */
+	    sys_nosys, 0, 0 },			/* 343 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 344 = filler */
+	    sys_nosys, 0, 0 },			/* 344 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 345 = filler */
+	    sys_nosys, 0, 0 },			/* 345 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 346 = filler */
+	    sys_nosys, 0, 0 },			/* 346 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 347 = filler */
+	    sys_nosys, 0, 0 },			/* 347 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 348 = filler */
+	    sys_nosys, 0, 0 },			/* 348 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 349 = filler */
+	    sys_nosys, 0, 0 },			/* 349 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 350 = filler */
+	    sys_nosys, 0, 0 },			/* 350 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 351 = filler */
+	    sys_nosys, 0, 0 },			/* 351 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 352 = filler */
+	    sys_nosys, 0, 0 },			/* 352 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 353 = filler */
+	    sys_nosys, 0, 0 },			/* 353 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 354 = filler */
+	    sys_nosys, 0, 0 },			/* 354 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 355 = filler */
+	    sys_nosys, 0, 0 },			/* 355 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 356 = filler */
+	    sys_nosys, 0, 0 },			/* 356 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 357 = filler */
+	    sys_nosys, 0, 0 },			/* 357 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 358 = filler */
+	    sys_nosys, 0, 0 },			/* 358 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 359 = filler */
+	    sys_nosys, 0, 0 },			/* 359 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 360 = filler */
+	    sys_nosys, 0, 0 },			/* 360 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 361 = filler */
+	    sys_nosys, 0, 0 },			/* 361 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 362 = filler */
+	    sys_nosys, 0, 0 },			/* 362 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 363 = filler */
+	    sys_nosys, 0, 0 },			/* 363 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 364 = filler */
+	    sys_nosys, 0, 0 },			/* 364 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 365 = filler */
+	    sys_nosys, 0, 0 },			/* 365 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 366 = filler */
+	    sys_nosys, 0, 0 },			/* 366 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 367 = filler */
+	    sys_nosys, 0, 0 },			/* 367 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 368 = filler */
+	    sys_nosys, 0, 0 },			/* 368 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 369 = filler */
+	    sys_nosys, 0, 0 },			/* 369 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 370 = filler */
+	    sys_nosys, 0, 0 },			/* 370 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 371 = filler */
+	    sys_nosys, 0, 0 },			/* 371 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 372 = filler */
+	    sys_nosys, 0, 0 },			/* 372 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 373 = filler */
+	    sys_nosys, 0, 0 },			/* 373 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 374 = filler */
+	    sys_nosys, 0, 0 },			/* 374 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 375 = filler */
+	    sys_nosys, 0, 0 },			/* 375 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 376 = filler */
+	    sys_nosys, 0, 0 },			/* 376 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 377 = filler */
+	    sys_nosys, 0, 0 },			/* 377 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 378 = filler */
+	    sys_nosys, 0, 0 },			/* 378 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 379 = filler */
+	    sys_nosys, 0, 0 },			/* 379 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 380 = filler */
+	    sys_nosys, 0, 0 },			/* 380 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 381 = filler */
+	    sys_nosys, 0, 0 },			/* 381 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 382 = filler */
+	    sys_nosys, 0, 0 },			/* 382 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 383 = filler */
+	    sys_nosys, 0, 0 },			/* 383 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 384 = filler */
+	    sys_nosys, 0, 0 },			/* 384 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 385 = filler */
+	    sys_nosys, 0, 0 },			/* 385 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 386 = filler */
+	    sys_nosys, 0, 0 },			/* 386 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 387 = filler */
+	    sys_nosys, 0, 0 },			/* 387 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 388 = filler */
+	    sys_nosys, 0, 0 },			/* 388 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 389 = filler */
+	    sys_nosys, 0, 0 },			/* 389 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 390 = filler */
+	    sys_nosys, 0, 0 },			/* 390 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 391 = filler */
+	    sys_nosys, 0, 0 },			/* 391 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 392 = filler */
+	    sys_nosys, 0, 0 },			/* 392 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 393 = filler */
+	    sys_nosys, 0, 0 },			/* 393 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 394 = filler */
+	    sys_nosys, 0, 0 },			/* 394 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 395 = filler */
+	    sys_nosys, 0, 0 },			/* 395 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 396 = filler */
+	    sys_nosys, 0, 0 },			/* 396 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 397 = filler */
+	    sys_nosys, 0, 0 },			/* 397 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 398 = filler */
+	    sys_nosys, 0, 0 },			/* 398 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 399 = filler */
+	    sys_nosys, 0, 0 },			/* 399 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 400 = filler */
+	    sys_nosys, 0, 0 },			/* 400 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 401 = filler */
+	    sys_nosys, 0, 0 },			/* 401 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 402 = filler */
+	    sys_nosys, 0, 0 },			/* 402 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 403 = filler */
+	    sys_nosys, 0, 0 },			/* 403 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 404 = filler */
+	    sys_nosys, 0, 0 },			/* 404 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 405 = filler */
+	    sys_nosys, 0, 0 },			/* 405 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 406 = filler */
+	    sys_nosys, 0, 0 },			/* 406 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 407 = filler */
+	    sys_nosys, 0, 0 },			/* 407 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 408 = filler */
+	    sys_nosys, 0, 0 },			/* 408 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 409 = filler */
+	    sys_nosys, 0, 0 },			/* 409 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 410 = filler */
+	    sys_nosys, 0, 0 },			/* 410 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 411 = filler */
+	    sys_nosys, 0, 0 },			/* 411 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 412 = filler */
+	    sys_nosys, 0, 0 },			/* 412 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 413 = filler */
+	    sys_nosys, 0, 0 },			/* 413 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 414 = filler */
+	    sys_nosys, 0, 0 },			/* 414 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 415 = filler */
+	    sys_nosys, 0, 0 },			/* 415 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 416 = filler */
+	    sys_nosys, 0, 0 },			/* 416 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 417 = filler */
+	    sys_nosys, 0, 0 },			/* 417 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 418 = filler */
+	    sys_nosys, 0, 0 },			/* 418 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 419 = filler */
+	    sys_nosys, 0, 0 },			/* 419 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 420 = filler */
+	    sys_nosys, 0, 0 },			/* 420 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 421 = filler */
+	    sys_nosys, 0, 0 },			/* 421 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 422 = filler */
+	    sys_nosys, 0, 0 },			/* 422 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 423 = filler */
+	    sys_nosys, 0, 0 },			/* 423 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 424 = filler */
+	    sys_nosys, 0, 0 },			/* 424 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 425 = filler */
+	    sys_nosys, 0, 0 },			/* 425 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 426 = filler */
+	    sys_nosys, 0, 0 },			/* 426 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 427 = filler */
+	    sys_nosys, 0, 0 },			/* 427 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 428 = filler */
+	    sys_nosys, 0, 0 },			/* 428 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 429 = filler */
+	    sys_nosys, 0, 0 },			/* 429 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 430 = filler */
+	    sys_nosys, 0, 0 },			/* 430 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 431 = filler */
+	    sys_nosys, 0, 0 },			/* 431 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 432 = filler */
+	    sys_nosys, 0, 0 },			/* 432 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 433 = filler */
+	    sys_nosys, 0, 0 },			/* 433 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 434 = filler */
+	    sys_nosys, 0, 0 },			/* 434 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 435 = filler */
+	    sys_nosys, 0, 0 },			/* 435 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 436 = filler */
+	    sys_nosys, 0, 0 },			/* 436 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 437 = filler */
+	    sys_nosys, 0, 0 },			/* 437 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 438 = filler */
+	    sys_nosys, 0, 0 },			/* 438 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 439 = filler */
+	    sys_nosys, 0, 0 },			/* 439 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 440 = filler */
+	    sys_nosys, 0, 0 },			/* 440 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 441 = filler */
+	    sys_nosys, 0, 0 },			/* 441 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 442 = filler */
+	    sys_nosys, 0, 0 },			/* 442 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 443 = filler */
+	    sys_nosys, 0, 0 },			/* 443 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 444 = filler */
+	    sys_nosys, 0, 0 },			/* 444 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 445 = filler */
+	    sys_nosys, 0, 0 },			/* 445 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 446 = filler */
+	    sys_nosys, 0, 0 },			/* 446 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 447 = filler */
+	    sys_nosys, 0, 0 },			/* 447 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 448 = filler */
+	    sys_nosys, 0, 0 },			/* 448 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 449 = filler */
+	    sys_nosys, 0, 0 },			/* 449 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 450 = filler */
+	    sys_nosys, 0, 0 },			/* 450 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 451 = filler */
+	    sys_nosys, 0, 0 },			/* 451 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 452 = filler */
+	    sys_nosys, 0, 0 },			/* 452 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 453 = filler */
+	    sys_nosys, 0, 0 },			/* 453 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 454 = filler */
+	    sys_nosys, 0, 0 },			/* 454 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 455 = filler */
+	    sys_nosys, 0, 0 },			/* 455 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 456 = filler */
+	    sys_nosys, 0, 0 },			/* 456 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 457 = filler */
+	    sys_nosys, 0, 0 },			/* 457 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 458 = filler */
+	    sys_nosys, 0, 0 },			/* 458 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 459 = filler */
+	    sys_nosys, 0, 0 },			/* 459 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 460 = filler */
+	    sys_nosys, 0, 0 },			/* 460 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 461 = filler */
+	    sys_nosys, 0, 0 },			/* 461 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 462 = filler */
+	    sys_nosys, 0, 0 },			/* 462 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 463 = filler */
+	    sys_nosys, 0, 0 },			/* 463 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 464 = filler */
+	    sys_nosys, 0, 0 },			/* 464 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 465 = filler */
+	    sys_nosys, 0, 0 },			/* 465 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 466 = filler */
+	    sys_nosys, 0, 0 },			/* 466 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 467 = filler */
+	    sys_nosys, 0, 0 },			/* 467 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 468 = filler */
+	    sys_nosys, 0, 0 },			/* 468 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 469 = filler */
+	    sys_nosys, 0, 0 },			/* 469 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 470 = filler */
+	    sys_nosys, 0, 0 },			/* 470 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 471 = filler */
+	    sys_nosys, 0, 0 },			/* 471 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 472 = filler */
+	    sys_nosys, 0, 0 },			/* 472 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 473 = filler */
+	    sys_nosys, 0, 0 },			/* 473 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 474 = filler */
+	    sys_nosys, 0, 0 },			/* 474 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 475 = filler */
+	    sys_nosys, 0, 0 },			/* 475 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 476 = filler */
+	    sys_nosys, 0, 0 },			/* 476 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 477 = filler */
+	    sys_nosys, 0, 0 },			/* 477 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 478 = filler */
+	    sys_nosys, 0, 0 },			/* 478 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 479 = filler */
+	    sys_nosys, 0, 0 },			/* 479 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 480 = filler */
+	    sys_nosys, 0, 0 },			/* 480 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 481 = filler */
+	    sys_nosys, 0, 0 },			/* 481 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 482 = filler */
+	    sys_nosys, 0, 0 },			/* 482 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 483 = filler */
+	    sys_nosys, 0, 0 },			/* 483 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 484 = filler */
+	    sys_nosys, 0, 0 },			/* 484 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 485 = filler */
+	    sys_nosys, 0, 0 },			/* 485 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 486 = filler */
+	    sys_nosys, 0, 0 },			/* 486 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 487 = filler */
+	    sys_nosys, 0, 0 },			/* 487 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 488 = filler */
+	    sys_nosys, 0, 0 },			/* 488 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 489 = filler */
+	    sys_nosys, 0, 0 },			/* 489 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 490 = filler */
+	    sys_nosys, 0, 0 },			/* 490 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 491 = filler */
+	    sys_nosys, 0, 0 },			/* 491 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 492 = filler */
+	    sys_nosys, 0, 0 },			/* 492 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 493 = filler */
+	    sys_nosys, 0, 0 },			/* 493 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 494 = filler */
+	    sys_nosys, 0, 0 },			/* 494 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 495 = filler */
+	    sys_nosys, 0, 0 },			/* 495 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 496 = filler */
+	    sys_nosys, 0, 0 },			/* 496 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 497 = filler */
+	    sys_nosys, 0, 0 },			/* 497 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 498 = filler */
+	    sys_nosys, 0, 0 },			/* 498 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 499 = filler */
+	    sys_nosys, 0, 0 },			/* 499 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 500 = filler */
+	    sys_nosys, 0, 0 },			/* 500 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 501 = filler */
+	    sys_nosys, 0, 0 },			/* 501 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 502 = filler */
+	    sys_nosys, 0, 0 },			/* 502 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 503 = filler */
+	    sys_nosys, 0, 0 },			/* 503 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 504 = filler */
+	    sys_nosys, 0, 0 },			/* 504 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 505 = filler */
+	    sys_nosys, 0, 0 },			/* 505 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 506 = filler */
+	    sys_nosys, 0, 0 },			/* 506 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 507 = filler */
+	    sys_nosys, 0, 0 },			/* 507 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 508 = filler */
+	    sys_nosys, 0, 0 },			/* 508 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 509 = filler */
+	    sys_nosys, 0, 0 },			/* 509 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 510 = filler */
+	    sys_nosys, 0, 0 },			/* 510 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 511 = filler */
+	    sys_nosys, 0, 0 },			/* 511 = filler */
 };
diff --git a/sys/compat/sunos/Makefile b/sys/compat/sunos/Makefile
index 33b4d73..2910a63 100644
--- a/sys/compat/sunos/Makefile
+++ b/sys/compat/sunos/Makefile
@@ -1,5 +1,5 @@
-#	$NetBSD: Makefile,v 1.6 2014/01/14 18:51:25 christos Exp $
+#	$NetBSD: Makefile,v 1.7 2015/03/07 15:15:24 christos Exp $
 
-SYACALL_PREFIX=sunos
+SYSCALL_PREFIX=sunos
 
 .include <bsd.syscall.mk>
diff --git a/sys/compat/sunos/sunos_ioctl.c b/sys/compat/sunos/sunos_ioctl.c
index 7b51b5f..e190f54 100644
--- a/sys/compat/sunos/sunos_ioctl.c
+++ b/sys/compat/sunos/sunos_ioctl.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: sunos_ioctl.c,v 1.61 2008/11/19 18:36:05 ad Exp $	*/
+/*	$NetBSD: sunos_ioctl.c,v 1.63 2015/09/26 04:13:39 christos Exp $	*/
 
 /*
  * Copyright (c) 1993 Markus Wild.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunos_ioctl.c,v 1.61 2008/11/19 18:36:05 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunos_ioctl.c,v 1.63 2015/09/26 04:13:39 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -839,7 +839,7 @@ sunos_sys_ioctl(struct lwp *l, const struct sunos_sys_ioctl_args *uap, register_
 	 * (which was from the old sparc/scsi/sun_disklabel.c), and
 	 * modified to suite.
 	 */
-	case DKIOCGGEOM:
+	case SUN_DKIOCGGEOM:
             {
 		struct disklabel dl;
 
@@ -862,12 +862,12 @@ sunos_sys_ioctl(struct lwp *l, const struct sunos_sys_ioctl_args *uap, register_
 		break;
 	    }
 
-	case DKIOCINFO:
+	case SUN_DKIOCINFO:
 		/* Homey don't do DKIOCINFO */
 		memset(SCARG(uap, data), 0, sizeof(struct sun_dkctlr));
 		break;
 
-	case DKIOCGPART:
+	case SUN_DKIOCGPART:
             {
 		struct partinfo pi;
 
diff --git a/sys/compat/sunos/sunos_syscall.h b/sys/compat/sunos/sunos_syscall.h
index 95d3fdd..131e5b4 100644
--- a/sys/compat/sunos/sunos_syscall.h
+++ b/sys/compat/sunos/sunos_syscall.h
@@ -1,4 +1,4 @@
-/* $NetBSD: sunos_syscall.h,v 1.87 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
diff --git a/sys/compat/sunos/sunos_syscallargs.h b/sys/compat/sunos/sunos_syscallargs.h
index d9503f3..8206272 100644
--- a/sys/compat/sunos/sunos_syscallargs.h
+++ b/sys/compat/sunos/sunos_syscallargs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: sunos_syscallargs.h,v 1.71 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
diff --git a/sys/compat/sunos/sunos_syscalls.c b/sys/compat/sunos/sunos_syscalls.c
index 2833861..7532591 100644
--- a/sys/compat/sunos/sunos_syscalls.c
+++ b/sys/compat/sunos/sunos_syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: sunos_syscalls.c,v 1.86 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunos_syscalls.c,v 1.86 2013/11/07 19:39:58 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #if defined(_KERNEL_OPT)
@@ -23,6 +23,8 @@ __KERNEL_RCSID(0, "$NetBSD: sunos_syscalls.c,v 1.86 2013/11/07 19:39:58 njoly Ex
 #include <sys/syscallargs.h>
 #include <compat/sunos/sunos.h>
 #include <compat/sunos/sunos_syscallargs.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const sunos_syscallnames[] = {
@@ -295,3 +297,276 @@ const char *const sunos_syscallnames[] = {
 	/* 254 */	"# filler",
 	/* 255 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altsunos_syscallnames[] = {
+	/*   0 */	"nosys",
+	/*   1 */	NULL, /* exit */
+	/*   2 */	NULL, /* fork */
+	/*   3 */	NULL, /* read */
+	/*   4 */	NULL, /* write */
+	/*   5 */	NULL, /* open */
+	/*   6 */	NULL, /* close */
+	/*   7 */	NULL, /* wait4 */
+	/*   8 */	NULL, /* creat */
+	/*   9 */	NULL, /* link */
+	/*  10 */	NULL, /* unlink */
+	/*  11 */	NULL, /* execv */
+	/*  12 */	NULL, /* chdir */
+	/*  13 */	NULL, /* obsolete old_time */
+	/*  14 */	NULL, /* mknod */
+	/*  15 */	NULL, /* chmod */
+	/*  16 */	NULL, /* chown */
+	/*  17 */	"obreak",
+	/*  18 */	NULL, /* obsolete old_stat */
+	/*  19 */	NULL, /* lseek */
+	/*  20 */	NULL, /* getpid_with_ppid */
+	/*  21 */	NULL, /* obsolete sunos_old_mount */
+	/*  22 */	NULL, /* unimplemented System V umount */
+	/*  23 */	NULL, /* setuid */
+	/*  24 */	NULL, /* getuid_with_euid */
+	/*  25 */	NULL, /* stime */
+	/*  26 */	NULL, /* ptrace */
+	/*  27 */	NULL, /* unimplemented old_sunos_alarm */
+	/*  28 */	NULL, /* unimplemented old_sunos_fstat */
+	/*  29 */	NULL, /* unimplemented old_sunos_pause */
+	/*  30 */	NULL, /* unimplemented old_sunos_utime */
+	/*  31 */	NULL, /* unimplemented old_sunos_stty */
+	/*  32 */	NULL, /* unimplemented old_sunos_gtty */
+	/*  33 */	NULL, /* access */
+	/*  34 */	NULL, /* unimplemented old_sunos_nice */
+	/*  35 */	NULL, /* unimplemented old_sunos_ftime */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	NULL, /* kill */
+	/*  38 */	NULL, /* stat */
+	/*  39 */	NULL, /* unimplemented sunos_setpgrp */
+	/*  40 */	NULL, /* lstat */
+	/*  41 */	NULL, /* dup */
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* unimplemented sunos_times */
+	/*  44 */	NULL, /* profil */
+	/*  45 */	NULL, /* unimplemented */
+	/*  46 */	NULL, /* setgid */
+	/*  47 */	NULL, /* getgid_with_egid */
+	/*  48 */	NULL, /* unimplemented sunos_ssig */
+	/*  49 */	NULL, /* unimplemented reserved for USG */
+	/*  50 */	NULL, /* unimplemented reserved for USG */
+	/*  51 */	NULL, /* acct */
+	/*  52 */	NULL, /* unimplemented */
+	/*  53 */	NULL, /* mctl */
+	/*  54 */	NULL, /* ioctl */
+	/*  55 */	NULL, /* reboot */
+	/*  56 */	NULL, /* obsolete sunos_owait3 */
+	/*  57 */	NULL, /* symlink */
+	/*  58 */	NULL, /* readlink */
+	/*  59 */	NULL, /* execve */
+	/*  60 */	NULL, /* umask */
+	/*  61 */	NULL, /* chroot */
+	/*  62 */	NULL, /* fstat */
+	/*  63 */	NULL, /* unimplemented */
+	/*  64 */	NULL, /* getpagesize */
+	/*  65 */	NULL, /* omsync */
+	/*  66 */	NULL, /* vfork */
+	/*  67 */	NULL, /* obsolete vread */
+	/*  68 */	NULL, /* obsolete vwrite */
+	/*  69 */	NULL, /* sbrk */
+	/*  70 */	NULL, /* sstk */
+	/*  71 */	NULL, /* mmap */
+	/*  72 */	"ovadvise",
+	/*  73 */	NULL, /* munmap */
+	/*  74 */	NULL, /* mprotect */
+	/*  75 */	NULL, /* madvise */
+	/*  76 */	NULL, /* vhangup */
+	/*  77 */	NULL, /* unimplemented vlimit */
+	/*  78 */	NULL, /* mincore */
+	/*  79 */	NULL, /* getgroups */
+	/*  80 */	NULL, /* setgroups */
+	/*  81 */	NULL, /* getpgrp */
+	/*  82 */	NULL, /* setpgrp */
+	/*  83 */	NULL, /* setitimer */
+	/*  84 */	NULL, /* unimplemented sunos_sys_wait */
+	/*  85 */	NULL, /* swapon */
+	/*  86 */	NULL, /* getitimer */
+	/*  87 */	NULL, /* gethostname */
+	/*  88 */	NULL, /* sethostname */
+	/*  89 */	NULL, /* getdtablesize */
+	/*  90 */	NULL, /* dup2 */
+	/*  91 */	NULL, /* unimplemented getdopt */
+	/*  92 */	NULL, /* fcntl */
+	/*  93 */	NULL, /* select */
+	/*  94 */	NULL, /* unimplemented setdopt */
+	/*  95 */	NULL, /* fsync */
+	/*  96 */	NULL, /* setpriority */
+	/*  97 */	NULL, /* socket */
+	/*  98 */	NULL, /* connect */
+	/*  99 */	NULL, /* accept */
+	/* 100 */	NULL, /* getpriority */
+	/* 101 */	NULL, /* send */
+	/* 102 */	NULL, /* recv */
+	/* 103 */	NULL, /* unimplemented old socketaddr */
+	/* 104 */	NULL, /* bind */
+	/* 105 */	NULL, /* setsockopt */
+	/* 106 */	NULL, /* listen */
+	/* 107 */	NULL, /* unimplemented vtimes */
+	/* 108 */	NULL, /* sigvec */
+	/* 109 */	NULL, /* sigblock */
+	/* 110 */	NULL, /* sigsetmask */
+	/* 111 */	NULL, /* sigsuspend */
+	/* 112 */	NULL, /* sigstack */
+	/* 113 */	NULL, /* recvmsg */
+	/* 114 */	NULL, /* sendmsg */
+	/* 115 */	NULL, /* obsolete vtrace */
+	/* 116 */	NULL, /* gettimeofday */
+	/* 117 */	NULL, /* getrusage */
+	/* 118 */	NULL, /* getsockopt */
+	/* 119 */	NULL, /* unimplemented */
+	/* 120 */	NULL, /* readv */
+	/* 121 */	NULL, /* writev */
+	/* 122 */	NULL, /* settimeofday */
+	/* 123 */	NULL, /* fchown */
+	/* 124 */	NULL, /* fchmod */
+	/* 125 */	NULL, /* recvfrom */
+	/* 126 */	NULL, /* setreuid */
+	/* 127 */	NULL, /* setregid */
+	/* 128 */	NULL, /* rename */
+	/* 129 */	NULL, /* truncate */
+	/* 130 */	NULL, /* ftruncate */
+	/* 131 */	NULL, /* flock */
+	/* 132 */	NULL, /* unimplemented */
+	/* 133 */	NULL, /* sendto */
+	/* 134 */	NULL, /* shutdown */
+	/* 135 */	NULL, /* socketpair */
+	/* 136 */	NULL, /* mkdir */
+	/* 137 */	NULL, /* rmdir */
+	/* 138 */	NULL, /* utimes */
+	/* 139 */	NULL, /* sigreturn */
+	/* 140 */	NULL, /* adjtime */
+	/* 141 */	NULL, /* getpeername */
+	/* 142 */	NULL, /* gethostid */
+	/* 143 */	NULL, /* unimplemented old sethostid */
+	/* 144 */	NULL, /* getrlimit */
+	/* 145 */	NULL, /* setrlimit */
+	/* 146 */	NULL, /* killpg */
+	/* 147 */	NULL, /* unimplemented */
+	/* 148 */	NULL, /* unimplemented */
+	/* 149 */	NULL, /* unimplemented */
+	/* 150 */	NULL, /* getsockname */
+	/* 151 */	NULL, /* unimplemented getmsg */
+	/* 152 */	NULL, /* unimplemented putmsg */
+	/* 153 */	NULL, /* poll */
+	/* 154 */	NULL, /* unimplemented */
+	/* 155 */	NULL, /* unimplemented nfssvc */
+	/* 156 */	NULL, /* getdirentries */
+	/* 157 */	NULL, /* statfs */
+	/* 158 */	NULL, /* fstatfs */
+	/* 159 */	NULL, /* unmount */
+	/* 160 */	"daemon",
+	/* 161 */	NULL, /* getfh */
+	/* 162 */	NULL, /* getdomainname */
+	/* 163 */	NULL, /* setdomainname */
+	/* 164 */	NULL, /* unimplemented rtschedule */
+	/* 165 */	NULL, /* quotactl */
+	/* 166 */	NULL, /* exportfs */
+	/* 167 */	NULL, /* mount */
+	/* 168 */	NULL, /* ustat */
+#ifdef SYSVSEM
+	/* 169 */	NULL, /* semsys */
+#else
+	/* 169 */	NULL, /* unimplemented semsys */
+#endif
+#ifdef SYSVMSG
+	/* 170 */	NULL, /* msgsys */
+#else
+	/* 170 */	NULL, /* unimplemented msgsys */
+#endif
+#ifdef SYSVSHM
+	/* 171 */	NULL, /* shmsys */
+#else
+	/* 171 */	NULL, /* unimplemented shmsys */
+#endif
+	/* 172 */	NULL, /* auditsys */
+	/* 173 */	NULL, /* unimplemented rfssys */
+	/* 174 */	NULL, /* getdents */
+	/* 175 */	NULL, /* setsid */
+	/* 176 */	NULL, /* fchdir */
+	/* 177 */	NULL, /* fchroot */
+	/* 178 */	NULL, /* unimplemented vpixsys */
+	/* 179 */	NULL, /* unimplemented aioread */
+	/* 180 */	NULL, /* unimplemented aiowrite */
+	/* 181 */	NULL, /* unimplemented aiowait */
+	/* 182 */	NULL, /* unimplemented aiocancel */
+	/* 183 */	NULL, /* sigpending */
+	/* 184 */	NULL, /* unimplemented */
+	/* 185 */	NULL, /* setpgid */
+	/* 186 */	NULL, /* pathconf */
+	/* 187 */	NULL, /* fpathconf */
+	/* 188 */	NULL, /* sysconf */
+	/* 189 */	NULL, /* uname */
+	/* 190 */	NULL, /* filler */
+	/* 191 */	NULL, /* filler */
+	/* 192 */	NULL, /* filler */
+	/* 193 */	NULL, /* filler */
+	/* 194 */	NULL, /* filler */
+	/* 195 */	NULL, /* filler */
+	/* 196 */	NULL, /* filler */
+	/* 197 */	NULL, /* filler */
+	/* 198 */	NULL, /* filler */
+	/* 199 */	NULL, /* filler */
+	/* 200 */	NULL, /* filler */
+	/* 201 */	NULL, /* filler */
+	/* 202 */	NULL, /* filler */
+	/* 203 */	NULL, /* filler */
+	/* 204 */	NULL, /* filler */
+	/* 205 */	NULL, /* filler */
+	/* 206 */	NULL, /* filler */
+	/* 207 */	NULL, /* filler */
+	/* 208 */	NULL, /* filler */
+	/* 209 */	NULL, /* filler */
+	/* 210 */	NULL, /* filler */
+	/* 211 */	NULL, /* filler */
+	/* 212 */	NULL, /* filler */
+	/* 213 */	NULL, /* filler */
+	/* 214 */	NULL, /* filler */
+	/* 215 */	NULL, /* filler */
+	/* 216 */	NULL, /* filler */
+	/* 217 */	NULL, /* filler */
+	/* 218 */	NULL, /* filler */
+	/* 219 */	NULL, /* filler */
+	/* 220 */	NULL, /* filler */
+	/* 221 */	NULL, /* filler */
+	/* 222 */	NULL, /* filler */
+	/* 223 */	NULL, /* filler */
+	/* 224 */	NULL, /* filler */
+	/* 225 */	NULL, /* filler */
+	/* 226 */	NULL, /* filler */
+	/* 227 */	NULL, /* filler */
+	/* 228 */	NULL, /* filler */
+	/* 229 */	NULL, /* filler */
+	/* 230 */	NULL, /* filler */
+	/* 231 */	NULL, /* filler */
+	/* 232 */	NULL, /* filler */
+	/* 233 */	NULL, /* filler */
+	/* 234 */	NULL, /* filler */
+	/* 235 */	NULL, /* filler */
+	/* 236 */	NULL, /* filler */
+	/* 237 */	NULL, /* filler */
+	/* 238 */	NULL, /* filler */
+	/* 239 */	NULL, /* filler */
+	/* 240 */	NULL, /* filler */
+	/* 241 */	NULL, /* filler */
+	/* 242 */	NULL, /* filler */
+	/* 243 */	NULL, /* filler */
+	/* 244 */	NULL, /* filler */
+	/* 245 */	NULL, /* filler */
+	/* 246 */	NULL, /* filler */
+	/* 247 */	NULL, /* filler */
+	/* 248 */	NULL, /* filler */
+	/* 249 */	NULL, /* filler */
+	/* 250 */	NULL, /* filler */
+	/* 251 */	NULL, /* filler */
+	/* 252 */	NULL, /* filler */
+	/* 253 */	NULL, /* filler */
+	/* 254 */	NULL, /* filler */
+	/* 255 */	NULL, /* filler */
+};
diff --git a/sys/compat/sunos/sunos_sysent.c b/sys/compat/sunos/sunos_sysent.c
index 83beaba..4db9cb4 100644
--- a/sys/compat/sunos/sunos_sysent.c
+++ b/sys/compat/sunos/sunos_sysent.c
@@ -1,4 +1,4 @@
-/* $NetBSD: sunos_sysent.c,v 1.82 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunos_sysent.c,v 1.82 2013/11/07 19:39:58 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include "opt_sysv.h"
@@ -29,530 +29,530 @@ __KERNEL_RCSID(0, "$NetBSD: sunos_sysent.c,v 1.82 2013/11/07 19:39:58 njoly Exp
 
 struct sysent sunos_sysent[] = {
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_nosys },		/* 0 = syscall */
+	    (sy_call_t *)sys_nosys, 0, 0 },		/* 0 = syscall */
 	{ ns(struct sys_exit_args), 0,
-	    (sy_call_t *)sys_exit },		/* 1 = exit */
+	    (sy_call_t *)sys_exit, 0, 0 },		/* 1 = exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct sys_read_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_read },		/* 3 = read */
+	    (sy_call_t *)sys_read, 0, 0 },		/* 3 = read */
 	{ ns(struct sys_write_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_write },		/* 4 = write */
+	    (sy_call_t *)sys_write, 0, 0 },		/* 4 = write */
 	{ ns(struct sunos_sys_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_open },	/* 5 = open */
+	    (sy_call_t *)sunos_sys_open, 0, 0 },	/* 5 = open */
 	{ ns(struct sys_close_args), 0,
-	    (sy_call_t *)sys_close },		/* 6 = close */
+	    (sy_call_t *)sys_close, 0, 0 },		/* 6 = close */
 	{ ns(struct sunos_sys_wait4_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_wait4 },	/* 7 = wait4 */
+	    (sy_call_t *)sunos_sys_wait4, 0, 0 },	/* 7 = wait4 */
 	{ ns(struct sunos_sys_creat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_creat },	/* 8 = creat */
+	    (sy_call_t *)sunos_sys_creat, 0, 0 },	/* 8 = creat */
 	{ ns(struct sys_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_link },		/* 9 = link */
+	    (sy_call_t *)sys_link, 0, 0 },		/* 9 = link */
 	{ ns(struct sys_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_unlink },		/* 10 = unlink */
+	    (sy_call_t *)sys_unlink, 0, 0 },		/* 10 = unlink */
 	{ ns(struct sunos_sys_execv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_execv },	/* 11 = execv */
+	    (sy_call_t *)sunos_sys_execv, 0, 0 },	/* 11 = execv */
 	{ ns(struct sys_chdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chdir },		/* 12 = chdir */
+	    (sy_call_t *)sys_chdir, 0, 0 },		/* 12 = chdir */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 13 = obsolete old_time */
+	    sys_nosys, 0, 0 },			/* 13 = obsolete old_time */
 	{ ns(struct sunos_sys_mknod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_mknod },	/* 14 = mknod */
+	    (sy_call_t *)sunos_sys_mknod, 0, 0 },	/* 14 = mknod */
 	{ ns(struct sys_chmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chmod },		/* 15 = chmod */
+	    (sy_call_t *)sys_chmod, 0, 0 },		/* 15 = chmod */
 	{ ns(struct sys_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chown },		/* 16 = chown */
+	    (sy_call_t *)sys_chown, 0, 0 },		/* 16 = chown */
 	{ ns(struct sys_obreak_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_obreak },		/* 17 = break */
+	    (sy_call_t *)sys_obreak, 0, 0 },		/* 17 = break */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 18 = obsolete old_stat */
+	    sys_nosys, 0, 0 },			/* 18 = obsolete old_stat */
 	{ ns(struct compat_43_sys_lseek_args), 0,
-	    (sy_call_t *)compat_43_sys_lseek },	/* 19 = lseek */
+	    (sy_call_t *)compat_43_sys_lseek, 0, 0 },	/* 19 = lseek */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid_with_ppid },/* 20 = getpid_with_ppid */
+	    (sy_call_t *)sys_getpid_with_ppid, 0, 0 },/* 20 = getpid_with_ppid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 21 = obsolete sunos_old_mount */
+	    sys_nosys, 0, 0 },			/* 21 = obsolete sunos_old_mount */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 22 = unimplemented System V umount */
+	    sys_nosys, 0, 0 },			/* 22 = unimplemented System V umount */
 	{ ns(struct sys_setuid_args), 0,
-	    (sy_call_t *)sys_setuid },		/* 23 = setuid */
+	    (sy_call_t *)sys_setuid, 0, 0 },		/* 23 = setuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid_with_euid },/* 24 = getuid_with_euid */
+	    (sy_call_t *)sys_getuid_with_euid, 0, 0 },/* 24 = getuid_with_euid */
 	{ ns(struct sunos_sys_stime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_stime },	/* 25 = stime */
+	    (sy_call_t *)sunos_sys_stime, 0, 0 },	/* 25 = stime */
 	{ ns(struct sunos_sys_ptrace_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_ptrace },	/* 26 = ptrace */
+	    (sy_call_t *)sunos_sys_ptrace, 0, 0 },	/* 26 = ptrace */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 27 = unimplemented old_sunos_alarm */
+	    sys_nosys, 0, 0 },			/* 27 = unimplemented old_sunos_alarm */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 28 = unimplemented old_sunos_fstat */
+	    sys_nosys, 0, 0 },			/* 28 = unimplemented old_sunos_fstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 29 = unimplemented old_sunos_pause */
+	    sys_nosys, 0, 0 },			/* 29 = unimplemented old_sunos_pause */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 30 = unimplemented old_sunos_utime */
+	    sys_nosys, 0, 0 },			/* 30 = unimplemented old_sunos_utime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 31 = unimplemented old_sunos_stty */
+	    sys_nosys, 0, 0 },			/* 31 = unimplemented old_sunos_stty */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 32 = unimplemented old_sunos_gtty */
+	    sys_nosys, 0, 0 },			/* 32 = unimplemented old_sunos_gtty */
 	{ ns(struct sys_access_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_access },		/* 33 = access */
+	    (sy_call_t *)sys_access, 0, 0 },		/* 33 = access */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 34 = unimplemented old_sunos_nice */
+	    sys_nosys, 0, 0 },			/* 34 = unimplemented old_sunos_nice */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 35 = unimplemented old_sunos_ftime */
+	    sys_nosys, 0, 0 },			/* 35 = unimplemented old_sunos_ftime */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct sys_kill_args), 0,
-	    (sy_call_t *)sys_kill },		/* 37 = kill */
+	    (sy_call_t *)sys_kill, 0, 0 },		/* 37 = kill */
 	{ ns(struct compat_43_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_stat },	/* 38 = stat */
+	    (sy_call_t *)compat_43_sys_stat, 0, 0 },	/* 38 = stat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 39 = unimplemented sunos_setpgrp */
+	    sys_nosys, 0, 0 },			/* 39 = unimplemented sunos_setpgrp */
 	{ ns(struct compat_43_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_lstat },	/* 40 = lstat */
+	    (sy_call_t *)compat_43_sys_lstat, 0, 0 },	/* 40 = lstat */
 	{ ns(struct sys_dup_args), 0,
-	    (sy_call_t *)sys_dup },		/* 41 = dup */
+	    (sy_call_t *)sys_dup, 0, 0 },		/* 41 = dup */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_pipe },		/* 42 = pipe */
+	    (sy_call_t *)sys_pipe, 0, 0 },		/* 42 = pipe */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 43 = unimplemented sunos_times */
+	    sys_nosys, 0, 0 },			/* 43 = unimplemented sunos_times */
 	{ ns(struct sys_profil_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_profil },		/* 44 = profil */
+	    (sy_call_t *)sys_profil, 0, 0 },		/* 44 = profil */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 45 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 45 = unimplemented */
 	{ ns(struct sys_setgid_args), 0,
-	    (sy_call_t *)sys_setgid },		/* 46 = setgid */
+	    (sy_call_t *)sys_setgid, 0, 0 },		/* 46 = setgid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid_with_egid },/* 47 = getgid_with_egid */
+	    (sy_call_t *)sys_getgid_with_egid, 0, 0 },/* 47 = getgid_with_egid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 48 = unimplemented sunos_ssig */
+	    sys_nosys, 0, 0 },			/* 48 = unimplemented sunos_ssig */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 49 = unimplemented reserved for USG */
+	    sys_nosys, 0, 0 },			/* 49 = unimplemented reserved for USG */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 50 = unimplemented reserved for USG */
+	    sys_nosys, 0, 0 },			/* 50 = unimplemented reserved for USG */
 	{ ns(struct sys_acct_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_acct },		/* 51 = acct */
+	    (sy_call_t *)sys_acct, 0, 0 },		/* 51 = acct */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 52 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 52 = unimplemented */
 	{ ns(struct sunos_sys_mctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_mctl },	/* 53 = mctl */
+	    (sy_call_t *)sunos_sys_mctl, 0, 0 },	/* 53 = mctl */
 	{ ns(struct sunos_sys_ioctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_ioctl },	/* 54 = ioctl */
+	    (sy_call_t *)sunos_sys_ioctl, 0, 0 },	/* 54 = ioctl */
 	{ ns(struct sunos_sys_reboot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_reboot },	/* 55 = reboot */
+	    (sy_call_t *)sunos_sys_reboot, 0, 0 },	/* 55 = reboot */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 56 = obsolete sunos_owait3 */
+	    sys_nosys, 0, 0 },			/* 56 = obsolete sunos_owait3 */
 	{ ns(struct sys_symlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlink },		/* 57 = symlink */
+	    (sy_call_t *)sys_symlink, 0, 0 },		/* 57 = symlink */
 	{ ns(struct sys_readlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlink },	/* 58 = readlink */
+	    (sy_call_t *)sys_readlink, 0, 0 },	/* 58 = readlink */
 	{ ns(struct sunos_sys_execve_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_execve },	/* 59 = execve */
+	    (sy_call_t *)sunos_sys_execve, 0, 0 },	/* 59 = execve */
 	{ ns(struct sys_umask_args), 0,
-	    (sy_call_t *)sys_umask },		/* 60 = umask */
+	    (sy_call_t *)sys_umask, 0, 0 },		/* 60 = umask */
 	{ ns(struct sys_chroot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chroot },		/* 61 = chroot */
+	    (sy_call_t *)sys_chroot, 0, 0 },		/* 61 = chroot */
 	{ ns(struct compat_43_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_fstat },	/* 62 = fstat */
+	    (sy_call_t *)compat_43_sys_fstat, 0, 0 },	/* 62 = fstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 63 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 63 = unimplemented */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_getpagesize },/* 64 = getpagesize */
+	    (sy_call_t *)compat_43_sys_getpagesize, 0, 0 },/* 64 = getpagesize */
 	{ ns(struct sunos_sys_omsync_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_omsync },	/* 65 = omsync */
+	    (sy_call_t *)sunos_sys_omsync, 0, 0 },	/* 65 = omsync */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_vfork },		/* 66 = vfork */
+	    (sy_call_t *)sys_vfork, 0, 0 },		/* 66 = vfork */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 67 = obsolete vread */
+	    sys_nosys, 0, 0 },			/* 67 = obsolete vread */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 68 = obsolete vwrite */
+	    sys_nosys, 0, 0 },			/* 68 = obsolete vwrite */
 	{ ns(struct sys_sbrk_args), 0,
-	    (sy_call_t *)sys_sbrk },		/* 69 = sbrk */
+	    (sy_call_t *)sys_sbrk, 0, 0 },		/* 69 = sbrk */
 	{ ns(struct sys_sstk_args), 0,
-	    (sy_call_t *)sys_sstk },		/* 70 = sstk */
+	    (sy_call_t *)sys_sstk, 0, 0 },		/* 70 = sstk */
 	{ ns(struct sunos_sys_mmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_mmap },	/* 71 = mmap */
+	    (sy_call_t *)sunos_sys_mmap, 0, 0 },	/* 71 = mmap */
 	{ ns(struct sys_ovadvise_args), 0,
-	    (sy_call_t *)sys_ovadvise },	/* 72 = vadvise */
+	    (sy_call_t *)sys_ovadvise, 0, 0 },	/* 72 = vadvise */
 	{ ns(struct sys_munmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munmap },		/* 73 = munmap */
+	    (sy_call_t *)sys_munmap, 0, 0 },		/* 73 = munmap */
 	{ ns(struct sys_mprotect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mprotect },	/* 74 = mprotect */
+	    (sy_call_t *)sys_mprotect, 0, 0 },	/* 74 = mprotect */
 	{ ns(struct sys_madvise_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_madvise },		/* 75 = madvise */
+	    (sy_call_t *)sys_madvise, 0, 0 },		/* 75 = madvise */
 	{ 0, 0, 0,
-	    (sy_call_t *)sunos_sys_vhangup },	/* 76 = vhangup */
+	    (sy_call_t *)sunos_sys_vhangup, 0, 0 },	/* 76 = vhangup */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 77 = unimplemented vlimit */
+	    sys_nosys, 0, 0 },			/* 77 = unimplemented vlimit */
 	{ ns(struct sys_mincore_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mincore },		/* 78 = mincore */
+	    (sy_call_t *)sys_mincore, 0, 0 },		/* 78 = mincore */
 	{ ns(struct sys_getgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getgroups },	/* 79 = getgroups */
+	    (sy_call_t *)sys_getgroups, 0, 0 },	/* 79 = getgroups */
 	{ ns(struct sys_setgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setgroups },	/* 80 = setgroups */
+	    (sy_call_t *)sys_setgroups, 0, 0 },	/* 80 = setgroups */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpgrp },		/* 81 = getpgrp */
+	    (sy_call_t *)sys_getpgrp, 0, 0 },		/* 81 = getpgrp */
 	{ ns(struct sunos_sys_setpgrp_args), 0,
-	    (sy_call_t *)sunos_sys_setpgrp },	/* 82 = setpgrp */
+	    (sy_call_t *)sunos_sys_setpgrp, 0, 0 },	/* 82 = setpgrp */
 	{ ns(struct compat_50_sys_setitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_setitimer },/* 83 = setitimer */
+	    (sy_call_t *)compat_50_sys_setitimer, 0, 0 },/* 83 = setitimer */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 84 = unimplemented sunos_sys_wait */
+	    sys_nosys, 0, 0 },			/* 84 = unimplemented sunos_sys_wait */
 	{ ns(struct compat_12_sys_swapon_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_12_sys_swapon },/* 85 = swapon */
+	    (sy_call_t *)compat_12_sys_swapon, 0, 0 },/* 85 = swapon */
 	{ ns(struct compat_50_sys_getitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getitimer },/* 86 = getitimer */
+	    (sy_call_t *)compat_50_sys_getitimer, 0, 0 },/* 86 = getitimer */
 	{ ns(struct compat_43_sys_gethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_gethostname },/* 87 = gethostname */
+	    (sy_call_t *)compat_43_sys_gethostname, 0, 0 },/* 87 = gethostname */
 	{ ns(struct compat_43_sys_sethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sethostname },/* 88 = sethostname */
+	    (sy_call_t *)compat_43_sys_sethostname, 0, 0 },/* 88 = sethostname */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_getdtablesize },/* 89 = getdtablesize */
+	    (sy_call_t *)compat_43_sys_getdtablesize, 0, 0 },/* 89 = getdtablesize */
 	{ ns(struct sys_dup2_args), 0,
-	    (sy_call_t *)sys_dup2 },		/* 90 = dup2 */
+	    (sy_call_t *)sys_dup2, 0, 0 },		/* 90 = dup2 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 91 = unimplemented getdopt */
+	    sys_nosys, 0, 0 },			/* 91 = unimplemented getdopt */
 	{ ns(struct sunos_sys_fcntl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_fcntl },	/* 92 = fcntl */
+	    (sy_call_t *)sunos_sys_fcntl, 0, 0 },	/* 92 = fcntl */
 	{ ns(struct compat_50_sys_select_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_select },/* 93 = select */
+	    (sy_call_t *)compat_50_sys_select, 0, 0 },/* 93 = select */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 94 = unimplemented setdopt */
+	    sys_nosys, 0, 0 },			/* 94 = unimplemented setdopt */
 	{ ns(struct sys_fsync_args), 0,
-	    (sy_call_t *)sys_fsync },		/* 95 = fsync */
+	    (sy_call_t *)sys_fsync, 0, 0 },		/* 95 = fsync */
 	{ ns(struct sys_setpriority_args), 0,
-	    (sy_call_t *)sys_setpriority },	/* 96 = setpriority */
+	    (sy_call_t *)sys_setpriority, 0, 0 },	/* 96 = setpriority */
 	{ ns(struct sunos_sys_socket_args), 0,
-	    (sy_call_t *)sunos_sys_socket },	/* 97 = socket */
+	    (sy_call_t *)sunos_sys_socket, 0, 0 },	/* 97 = socket */
 	{ ns(struct sys_connect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_connect },		/* 98 = connect */
+	    (sy_call_t *)sys_connect, 0, 0 },		/* 98 = connect */
 	{ ns(struct compat_43_sys_accept_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_accept },/* 99 = accept */
+	    (sy_call_t *)compat_43_sys_accept, 0, 0 },/* 99 = accept */
 	{ ns(struct sys_getpriority_args), 0,
-	    (sy_call_t *)sys_getpriority },	/* 100 = getpriority */
+	    (sy_call_t *)sys_getpriority, 0, 0 },	/* 100 = getpriority */
 	{ ns(struct compat_43_sys_send_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_send },	/* 101 = send */
+	    (sy_call_t *)compat_43_sys_send, 0, 0 },	/* 101 = send */
 	{ ns(struct compat_43_sys_recv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recv },	/* 102 = recv */
+	    (sy_call_t *)compat_43_sys_recv, 0, 0 },	/* 102 = recv */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 103 = unimplemented old socketaddr */
+	    sys_nosys, 0, 0 },			/* 103 = unimplemented old socketaddr */
 	{ ns(struct sys_bind_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_bind },		/* 104 = bind */
+	    (sy_call_t *)sys_bind, 0, 0 },		/* 104 = bind */
 	{ ns(struct sunos_sys_setsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_setsockopt },/* 105 = setsockopt */
+	    (sy_call_t *)sunos_sys_setsockopt, 0, 0 },/* 105 = setsockopt */
 	{ ns(struct sys_listen_args), 0,
-	    (sy_call_t *)sys_listen },		/* 106 = listen */
+	    (sy_call_t *)sys_listen, 0, 0 },		/* 106 = listen */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 107 = unimplemented vtimes */
+	    sys_nosys, 0, 0 },			/* 107 = unimplemented vtimes */
 	{ ns(struct sunos_sys_sigvec_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_sigvec },	/* 108 = sigvec */
+	    (sy_call_t *)sunos_sys_sigvec, 0, 0 },	/* 108 = sigvec */
 	{ ns(struct compat_43_sys_sigblock_args), 0,
-	    (sy_call_t *)compat_43_sys_sigblock },/* 109 = sigblock */
+	    (sy_call_t *)compat_43_sys_sigblock, 0, 0 },/* 109 = sigblock */
 	{ ns(struct compat_43_sys_sigsetmask_args), 0,
-	    (sy_call_t *)compat_43_sys_sigsetmask },/* 110 = sigsetmask */
+	    (sy_call_t *)compat_43_sys_sigsetmask, 0, 0 },/* 110 = sigsetmask */
 	{ ns(struct sunos_sys_sigsuspend_args), 0,
-	    (sy_call_t *)sunos_sys_sigsuspend },/* 111 = sigsuspend */
+	    (sy_call_t *)sunos_sys_sigsuspend, 0, 0 },/* 111 = sigsuspend */
 	{ ns(struct compat_43_sys_sigstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sigstack },/* 112 = sigstack */
+	    (sy_call_t *)compat_43_sys_sigstack, 0, 0 },/* 112 = sigstack */
 	{ ns(struct compat_43_sys_recvmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recvmsg },/* 113 = recvmsg */
+	    (sy_call_t *)compat_43_sys_recvmsg, 0, 0 },/* 113 = recvmsg */
 	{ ns(struct compat_43_sys_sendmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sendmsg },/* 114 = sendmsg */
+	    (sy_call_t *)compat_43_sys_sendmsg, 0, 0 },/* 114 = sendmsg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 115 = obsolete vtrace */
+	    sys_nosys, 0, 0 },			/* 115 = obsolete vtrace */
 	{ ns(struct compat_50_sys_gettimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_gettimeofday },/* 116 = gettimeofday */
+	    (sy_call_t *)compat_50_sys_gettimeofday, 0, 0 },/* 116 = gettimeofday */
 	{ ns(struct compat_50_sys_getrusage_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getrusage },/* 117 = getrusage */
+	    (sy_call_t *)compat_50_sys_getrusage, 0, 0 },/* 117 = getrusage */
 	{ ns(struct sys_getsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getsockopt },	/* 118 = getsockopt */
+	    (sy_call_t *)sys_getsockopt, 0, 0 },	/* 118 = getsockopt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 119 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 119 = unimplemented */
 	{ ns(struct sys_readv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readv },		/* 120 = readv */
+	    (sy_call_t *)sys_readv, 0, 0 },		/* 120 = readv */
 	{ ns(struct sys_writev_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_writev },		/* 121 = writev */
+	    (sy_call_t *)sys_writev, 0, 0 },		/* 121 = writev */
 	{ ns(struct compat_50_sys_settimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_settimeofday },/* 122 = settimeofday */
+	    (sy_call_t *)compat_50_sys_settimeofday, 0, 0 },/* 122 = settimeofday */
 	{ ns(struct sys_fchown_args), 0,
-	    (sy_call_t *)sys_fchown },		/* 123 = fchown */
+	    (sy_call_t *)sys_fchown, 0, 0 },		/* 123 = fchown */
 	{ ns(struct sys_fchmod_args), 0,
-	    (sy_call_t *)sys_fchmod },		/* 124 = fchmod */
+	    (sy_call_t *)sys_fchmod, 0, 0 },		/* 124 = fchmod */
 	{ ns(struct compat_43_sys_recvfrom_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recvfrom },/* 125 = recvfrom */
+	    (sy_call_t *)compat_43_sys_recvfrom, 0, 0 },/* 125 = recvfrom */
 	{ ns(struct sys_setreuid_args), 0,
-	    (sy_call_t *)sys_setreuid },	/* 126 = setreuid */
+	    (sy_call_t *)sys_setreuid, 0, 0 },	/* 126 = setreuid */
 	{ ns(struct sys_setregid_args), 0,
-	    (sy_call_t *)sys_setregid },	/* 127 = setregid */
+	    (sy_call_t *)sys_setregid, 0, 0 },	/* 127 = setregid */
 	{ ns(struct sys_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rename },		/* 128 = rename */
+	    (sy_call_t *)sys_rename, 0, 0 },		/* 128 = rename */
 	{ ns(struct compat_43_sys_truncate_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_truncate },/* 129 = truncate */
+	    (sy_call_t *)compat_43_sys_truncate, 0, 0 },/* 129 = truncate */
 	{ ns(struct compat_43_sys_ftruncate_args), 0,
-	    (sy_call_t *)compat_43_sys_ftruncate },/* 130 = ftruncate */
+	    (sy_call_t *)compat_43_sys_ftruncate, 0, 0 },/* 130 = ftruncate */
 	{ ns(struct sys_flock_args), 0,
-	    (sy_call_t *)sys_flock },		/* 131 = flock */
+	    (sy_call_t *)sys_flock, 0, 0 },		/* 131 = flock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 132 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 132 = unimplemented */
 	{ ns(struct sys_sendto_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_sendto },		/* 133 = sendto */
+	    (sy_call_t *)sys_sendto, 0, 0 },		/* 133 = sendto */
 	{ ns(struct sys_shutdown_args), 0,
-	    (sy_call_t *)sys_shutdown },	/* 134 = shutdown */
+	    (sy_call_t *)sys_shutdown, 0, 0 },	/* 134 = shutdown */
 	{ ns(struct sunos_sys_socketpair_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_socketpair },/* 135 = socketpair */
+	    (sy_call_t *)sunos_sys_socketpair, 0, 0 },/* 135 = socketpair */
 	{ ns(struct sys_mkdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdir },		/* 136 = mkdir */
+	    (sy_call_t *)sys_mkdir, 0, 0 },		/* 136 = mkdir */
 	{ ns(struct sys_rmdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rmdir },		/* 137 = rmdir */
+	    (sy_call_t *)sys_rmdir, 0, 0 },		/* 137 = rmdir */
 	{ ns(struct compat_50_sys_utimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_utimes },/* 138 = utimes */
+	    (sy_call_t *)compat_50_sys_utimes, 0, 0 },/* 138 = utimes */
 	{ ns(struct sunos_sys_sigreturn_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_sigreturn },	/* 139 = sigreturn */
+	    (sy_call_t *)sunos_sys_sigreturn, 0, 0 },	/* 139 = sigreturn */
 	{ ns(struct compat_50_sys_adjtime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_adjtime },/* 140 = adjtime */
+	    (sy_call_t *)compat_50_sys_adjtime, 0, 0 },/* 140 = adjtime */
 	{ ns(struct compat_43_sys_getpeername_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getpeername },/* 141 = getpeername */
+	    (sy_call_t *)compat_43_sys_getpeername, 0, 0 },/* 141 = getpeername */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_gethostid },/* 142 = gethostid */
+	    (sy_call_t *)compat_43_sys_gethostid, 0, 0 },/* 142 = gethostid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 143 = unimplemented old sethostid */
+	    sys_nosys, 0, 0 },			/* 143 = unimplemented old sethostid */
 	{ ns(struct sunos_sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_getrlimit },	/* 144 = getrlimit */
+	    (sy_call_t *)sunos_sys_getrlimit, 0, 0 },	/* 144 = getrlimit */
 	{ ns(struct sunos_sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_setrlimit },	/* 145 = setrlimit */
+	    (sy_call_t *)sunos_sys_setrlimit, 0, 0 },	/* 145 = setrlimit */
 	{ ns(struct compat_43_sys_killpg_args), 0,
-	    (sy_call_t *)compat_43_sys_killpg },/* 146 = killpg */
+	    (sy_call_t *)compat_43_sys_killpg, 0, 0 },/* 146 = killpg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 147 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 147 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 148 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 148 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 149 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 149 = unimplemented */
 	{ ns(struct compat_43_sys_getsockname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getsockname },/* 150 = getsockname */
+	    (sy_call_t *)compat_43_sys_getsockname, 0, 0 },/* 150 = getsockname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 151 = unimplemented getmsg */
+	    sys_nosys, 0, 0 },			/* 151 = unimplemented getmsg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 152 = unimplemented putmsg */
+	    sys_nosys, 0, 0 },			/* 152 = unimplemented putmsg */
 	{ ns(struct sys_poll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_poll },		/* 153 = poll */
+	    (sy_call_t *)sys_poll, 0, 0 },		/* 153 = poll */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 154 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 154 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 155 = unimplemented nfssvc */
+	    sys_nosys, 0, 0 },			/* 155 = unimplemented nfssvc */
 	{ ns(struct compat_12_sys_getdirentries_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_12_sys_getdirentries },/* 156 = getdirentries */
+	    (sy_call_t *)compat_12_sys_getdirentries, 0, 0 },/* 156 = getdirentries */
 	{ ns(struct sunos_sys_statfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_statfs },	/* 157 = statfs */
+	    (sy_call_t *)sunos_sys_statfs, 0, 0 },	/* 157 = statfs */
 	{ ns(struct sunos_sys_fstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_fstatfs },	/* 158 = fstatfs */
+	    (sy_call_t *)sunos_sys_fstatfs, 0, 0 },	/* 158 = fstatfs */
 	{ ns(struct sunos_sys_unmount_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_unmount },	/* 159 = unmount */
+	    (sy_call_t *)sunos_sys_unmount, 0, 0 },	/* 159 = unmount */
 	{ 0, 0, 0,
-	    (sy_call_t *)async_daemon },	/* 160 = async_daemon */
+	    (sy_call_t *)async_daemon, 0, 0 },	/* 160 = async_daemon */
 	{ ns(struct compat_30_sys_getfh_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_30_sys_getfh },	/* 161 = getfh */
+	    (sy_call_t *)compat_30_sys_getfh, 0, 0 },	/* 161 = getfh */
 	{ ns(struct compat_09_sys_getdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_09_sys_getdomainname },/* 162 = getdomainname */
+	    (sy_call_t *)compat_09_sys_getdomainname, 0, 0 },/* 162 = getdomainname */
 	{ ns(struct compat_09_sys_setdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_09_sys_setdomainname },/* 163 = setdomainname */
+	    (sy_call_t *)compat_09_sys_setdomainname, 0, 0 },/* 163 = setdomainname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 164 = unimplemented rtschedule */
+	    sys_nosys, 0, 0 },			/* 164 = unimplemented rtschedule */
 	{ ns(struct sunos_sys_quotactl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_quotactl },	/* 165 = quotactl */
+	    (sy_call_t *)sunos_sys_quotactl, 0, 0 },	/* 165 = quotactl */
 	{ ns(struct sunos_sys_exportfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_exportfs },	/* 166 = exportfs */
+	    (sy_call_t *)sunos_sys_exportfs, 0, 0 },	/* 166 = exportfs */
 	{ ns(struct sunos_sys_mount_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_mount },	/* 167 = mount */
+	    (sy_call_t *)sunos_sys_mount, 0, 0 },	/* 167 = mount */
 	{ ns(struct sunos_sys_ustat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_ustat },	/* 168 = ustat */
+	    (sy_call_t *)sunos_sys_ustat, 0, 0 },	/* 168 = ustat */
 #ifdef SYSVSEM
 	{ ns(struct compat_10_sys_semsys_args), 0,
-	    (sy_call_t *)compat_10_sys_semsys },/* 169 = semsys */
+	    (sy_call_t *)compat_10_sys_semsys, 0, 0 },/* 169 = semsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 169 = unimplemented semsys */
+	    sys_nosys, 0, 0 },			/* 169 = unimplemented semsys */
 #endif
 #ifdef SYSVMSG
 	{ ns(struct compat_10_sys_msgsys_args), 0,
-	    (sy_call_t *)compat_10_sys_msgsys },/* 170 = msgsys */
+	    (sy_call_t *)compat_10_sys_msgsys, 0, 0 },/* 170 = msgsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 170 = unimplemented msgsys */
+	    sys_nosys, 0, 0 },			/* 170 = unimplemented msgsys */
 #endif
 #ifdef SYSVSHM
 	{ ns(struct compat_10_sys_shmsys_args), 0,
-	    (sy_call_t *)compat_10_sys_shmsys },/* 171 = shmsys */
+	    (sy_call_t *)compat_10_sys_shmsys, 0, 0 },/* 171 = shmsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 171 = unimplemented shmsys */
+	    sys_nosys, 0, 0 },			/* 171 = unimplemented shmsys */
 #endif
 	{ ns(struct sunos_sys_auditsys_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_auditsys },	/* 172 = auditsys */
+	    (sy_call_t *)sunos_sys_auditsys, 0, 0 },	/* 172 = auditsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 173 = unimplemented rfssys */
+	    sys_nosys, 0, 0 },			/* 173 = unimplemented rfssys */
 	{ ns(struct sunos_sys_getdents_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_getdents },	/* 174 = getdents */
+	    (sy_call_t *)sunos_sys_getdents, 0, 0 },	/* 174 = getdents */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_setsid },		/* 175 = setsid */
+	    (sy_call_t *)sys_setsid, 0, 0 },		/* 175 = setsid */
 	{ ns(struct sys_fchdir_args), 0,
-	    (sy_call_t *)sys_fchdir },		/* 176 = fchdir */
+	    (sy_call_t *)sys_fchdir, 0, 0 },		/* 176 = fchdir */
 	{ ns(struct sys_fchroot_args), 0,
-	    (sy_call_t *)sys_fchroot },		/* 177 = fchroot */
+	    (sy_call_t *)sys_fchroot, 0, 0 },		/* 177 = fchroot */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 178 = unimplemented vpixsys */
+	    sys_nosys, 0, 0 },			/* 178 = unimplemented vpixsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 179 = unimplemented aioread */
+	    sys_nosys, 0, 0 },			/* 179 = unimplemented aioread */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 180 = unimplemented aiowrite */
+	    sys_nosys, 0, 0 },			/* 180 = unimplemented aiowrite */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 181 = unimplemented aiowait */
+	    sys_nosys, 0, 0 },			/* 181 = unimplemented aiowait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 182 = unimplemented aiocancel */
+	    sys_nosys, 0, 0 },			/* 182 = unimplemented aiocancel */
 	{ ns(struct sunos_sys_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_sigpending },/* 183 = sigpending */
+	    (sy_call_t *)sunos_sys_sigpending, 0, 0 },/* 183 = sigpending */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 184 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 184 = unimplemented */
 	{ ns(struct sys_setpgid_args), 0,
-	    (sy_call_t *)sys_setpgid },		/* 185 = setpgid */
+	    (sy_call_t *)sys_setpgid, 0, 0 },		/* 185 = setpgid */
 	{ ns(struct sys_pathconf_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pathconf },	/* 186 = pathconf */
+	    (sy_call_t *)sys_pathconf, 0, 0 },	/* 186 = pathconf */
 	{ ns(struct sys_fpathconf_args), 0,
-	    (sy_call_t *)sys_fpathconf },	/* 187 = fpathconf */
+	    (sy_call_t *)sys_fpathconf, 0, 0 },	/* 187 = fpathconf */
 	{ ns(struct sunos_sys_sysconf_args), 0,
-	    (sy_call_t *)sunos_sys_sysconf },	/* 188 = sysconf */
+	    (sy_call_t *)sunos_sys_sysconf, 0, 0 },	/* 188 = sysconf */
 	{ ns(struct sunos_sys_uname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sunos_sys_uname },	/* 189 = uname */
+	    (sy_call_t *)sunos_sys_uname, 0, 0 },	/* 189 = uname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 190 = filler */
+	    sys_nosys, 0, 0 },			/* 190 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 191 = filler */
+	    sys_nosys, 0, 0 },			/* 191 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 192 = filler */
+	    sys_nosys, 0, 0 },			/* 192 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 193 = filler */
+	    sys_nosys, 0, 0 },			/* 193 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 194 = filler */
+	    sys_nosys, 0, 0 },			/* 194 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 195 = filler */
+	    sys_nosys, 0, 0 },			/* 195 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 196 = filler */
+	    sys_nosys, 0, 0 },			/* 196 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 197 = filler */
+	    sys_nosys, 0, 0 },			/* 197 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 198 = filler */
+	    sys_nosys, 0, 0 },			/* 198 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 199 = filler */
+	    sys_nosys, 0, 0 },			/* 199 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 200 = filler */
+	    sys_nosys, 0, 0 },			/* 200 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 201 = filler */
+	    sys_nosys, 0, 0 },			/* 201 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 202 = filler */
+	    sys_nosys, 0, 0 },			/* 202 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 203 = filler */
+	    sys_nosys, 0, 0 },			/* 203 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 204 = filler */
+	    sys_nosys, 0, 0 },			/* 204 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 205 = filler */
+	    sys_nosys, 0, 0 },			/* 205 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 206 = filler */
+	    sys_nosys, 0, 0 },			/* 206 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 207 = filler */
+	    sys_nosys, 0, 0 },			/* 207 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 208 = filler */
+	    sys_nosys, 0, 0 },			/* 208 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 209 = filler */
+	    sys_nosys, 0, 0 },			/* 209 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 210 = filler */
+	    sys_nosys, 0, 0 },			/* 210 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 211 = filler */
+	    sys_nosys, 0, 0 },			/* 211 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 212 = filler */
+	    sys_nosys, 0, 0 },			/* 212 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 213 = filler */
+	    sys_nosys, 0, 0 },			/* 213 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 214 = filler */
+	    sys_nosys, 0, 0 },			/* 214 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 215 = filler */
+	    sys_nosys, 0, 0 },			/* 215 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 216 = filler */
+	    sys_nosys, 0, 0 },			/* 216 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 217 = filler */
+	    sys_nosys, 0, 0 },			/* 217 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 218 = filler */
+	    sys_nosys, 0, 0 },			/* 218 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 219 = filler */
+	    sys_nosys, 0, 0 },			/* 219 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 220 = filler */
+	    sys_nosys, 0, 0 },			/* 220 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 221 = filler */
+	    sys_nosys, 0, 0 },			/* 221 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 222 = filler */
+	    sys_nosys, 0, 0 },			/* 222 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 223 = filler */
+	    sys_nosys, 0, 0 },			/* 223 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 224 = filler */
+	    sys_nosys, 0, 0 },			/* 224 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 225 = filler */
+	    sys_nosys, 0, 0 },			/* 225 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 226 = filler */
+	    sys_nosys, 0, 0 },			/* 226 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 227 = filler */
+	    sys_nosys, 0, 0 },			/* 227 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 228 = filler */
+	    sys_nosys, 0, 0 },			/* 228 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 229 = filler */
+	    sys_nosys, 0, 0 },			/* 229 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 230 = filler */
+	    sys_nosys, 0, 0 },			/* 230 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 231 = filler */
+	    sys_nosys, 0, 0 },			/* 231 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 232 = filler */
+	    sys_nosys, 0, 0 },			/* 232 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 233 = filler */
+	    sys_nosys, 0, 0 },			/* 233 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 234 = filler */
+	    sys_nosys, 0, 0 },			/* 234 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 235 = filler */
+	    sys_nosys, 0, 0 },			/* 235 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 236 = filler */
+	    sys_nosys, 0, 0 },			/* 236 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 237 = filler */
+	    sys_nosys, 0, 0 },			/* 237 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 238 = filler */
+	    sys_nosys, 0, 0 },			/* 238 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 239 = filler */
+	    sys_nosys, 0, 0 },			/* 239 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 240 = filler */
+	    sys_nosys, 0, 0 },			/* 240 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 241 = filler */
+	    sys_nosys, 0, 0 },			/* 241 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 242 = filler */
+	    sys_nosys, 0, 0 },			/* 242 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 243 = filler */
+	    sys_nosys, 0, 0 },			/* 243 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 244 = filler */
+	    sys_nosys, 0, 0 },			/* 244 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 245 = filler */
+	    sys_nosys, 0, 0 },			/* 245 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 246 = filler */
+	    sys_nosys, 0, 0 },			/* 246 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 247 = filler */
+	    sys_nosys, 0, 0 },			/* 247 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 248 = filler */
+	    sys_nosys, 0, 0 },			/* 248 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 249 = filler */
+	    sys_nosys, 0, 0 },			/* 249 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 250 = filler */
+	    sys_nosys, 0, 0 },			/* 250 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 251 = filler */
+	    sys_nosys, 0, 0 },			/* 251 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 252 = filler */
+	    sys_nosys, 0, 0 },			/* 252 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 253 = filler */
+	    sys_nosys, 0, 0 },			/* 253 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 254 = filler */
+	    sys_nosys, 0, 0 },			/* 254 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 255 = filler */
+	    sys_nosys, 0, 0 },			/* 255 = filler */
 };
diff --git a/sys/compat/sunos32/sunos32_ioctl.c b/sys/compat/sunos32/sunos32_ioctl.c
index df4e50e..422872c 100644
--- a/sys/compat/sunos32/sunos32_ioctl.c
+++ b/sys/compat/sunos32/sunos32_ioctl.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: sunos32_ioctl.c,v 1.29 2008/05/29 14:51:26 mrg Exp $	*/
+/*	$NetBSD: sunos32_ioctl.c,v 1.32 2015/09/26 04:13:39 christos Exp $	*/
 /* from: NetBSD: sunos_ioctl.c,v 1.35 2001/02/03 22:20:02 mrg Exp 	*/
 
 /*
@@ -54,7 +54,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunos32_ioctl.c,v 1.29 2008/05/29 14:51:26 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunos32_ioctl.c,v 1.32 2015/09/26 04:13:39 christos Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd32.h"
@@ -866,7 +866,7 @@ sunos32_sys_ioctl(struct lwp *l, const struct sunos32_sys_ioctl_args *uap, regis
 	 * (which was from the old sparc/scsi/sun_disklabel.c), and
 	 * modified to suite.
 	 */
-	case DKIOCGGEOM:
+	case SUN_DKIOCGGEOM:
             {
 		struct disklabel dl;
 
@@ -890,13 +890,13 @@ sunos32_sys_ioctl(struct lwp *l, const struct sunos32_sys_ioctl_args *uap, regis
 		break;
 	    }
 
-	case DKIOCINFO:
+	case SUN_DKIOCINFO:
 		/* Homey don't do DKIOCINFO */
 		/* XXX can't do memset() on a user address (dsl) */
 		memset(SCARG_P32(uap, data), 0, sizeof(struct sun_dkctlr));
 		break;
 
-	case DKIOCGPART:
+	case SUN_DKIOCGPART:
             {
 		struct partinfo pi;
 
diff --git a/sys/compat/sunos32/sunos32_syscall.h b/sys/compat/sunos32/sunos32_syscall.h
index 6b3ed62..814ef03 100644
--- a/sys/compat/sunos32/sunos32_syscall.h
+++ b/sys/compat/sunos32/sunos32_syscall.h
@@ -1,4 +1,4 @@
-/* $NetBSD: sunos32_syscall.h,v 1.28 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
diff --git a/sys/compat/sunos32/sunos32_syscallargs.h b/sys/compat/sunos32/sunos32_syscallargs.h
index 2d490d8..21b8d2d 100644
--- a/sys/compat/sunos32/sunos32_syscallargs.h
+++ b/sys/compat/sunos32/sunos32_syscallargs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: sunos32_syscallargs.h,v 1.27 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
diff --git a/sys/compat/sunos32/sunos32_syscalls.c b/sys/compat/sunos32/sunos32_syscalls.c
index abb3dcc..2027100 100644
--- a/sys/compat/sunos32/sunos32_syscalls.c
+++ b/sys/compat/sunos32/sunos32_syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: sunos32_syscalls.c,v 1.27 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunos32_syscalls.c,v 1.27 2013/11/07 19:39:58 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #if defined(_KERNEL_OPT)
@@ -27,6 +27,8 @@ __KERNEL_RCSID(0, "$NetBSD: sunos32_syscalls.c,v 1.27 2013/11/07 19:39:58 njoly
 #include <compat/netbsd32/netbsd32_syscallargs.h>
 #include <compat/sunos32/sunos32.h>
 #include <compat/sunos32/sunos32_syscallargs.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const sunos32_syscallnames[] = {
@@ -299,3 +301,276 @@ const char *const sunos32_syscallnames[] = {
 	/* 254 */	"# filler",
 	/* 255 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altsunos32_syscallnames[] = {
+	/*   0 */	"nosys",
+	/*   1 */	"exit",
+	/*   2 */	NULL, /* fork */
+	/*   3 */	"read",
+	/*   4 */	"write",
+	/*   5 */	NULL, /* open */
+	/*   6 */	"close",
+	/*   7 */	NULL, /* wait4 */
+	/*   8 */	NULL, /* creat */
+	/*   9 */	"link",
+	/*  10 */	"unlink",
+	/*  11 */	NULL, /* execv */
+	/*  12 */	"chdir",
+	/*  13 */	NULL, /* obsolete old_time */
+	/*  14 */	NULL, /* mknod */
+	/*  15 */	"chmod",
+	/*  16 */	"chown",
+	/*  17 */	"break",
+	/*  18 */	NULL, /* obsolete old_stat */
+	/*  19 */	"olseek",
+	/*  20 */	NULL, /* getpid_with_ppid */
+	/*  21 */	NULL, /* obsolete sunos_old_mount */
+	/*  22 */	NULL, /* unimplemented System V umount */
+	/*  23 */	"setuid",
+	/*  24 */	NULL, /* getuid_with_euid */
+	/*  25 */	NULL, /* stime */
+	/*  26 */	NULL, /* ptrace */
+	/*  27 */	NULL, /* unimplemented old_sunos_alarm */
+	/*  28 */	NULL, /* unimplemented old_sunos_fstat */
+	/*  29 */	NULL, /* unimplemented old_sunos_pause */
+	/*  30 */	NULL, /* unimplemented old_sunos_utime */
+	/*  31 */	NULL, /* unimplemented old_sunos_stty */
+	/*  32 */	NULL, /* unimplemented old_sunos_gtty */
+	/*  33 */	NULL, /* access */
+	/*  34 */	NULL, /* unimplemented old_sunos_nice */
+	/*  35 */	NULL, /* unimplemented old_sunos_ftime */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	"kill",
+	/*  38 */	NULL, /* stat */
+	/*  39 */	NULL, /* unimplemented sunos_setpgrp */
+	/*  40 */	NULL, /* lstat */
+	/*  41 */	"dup",
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* unimplemented sunos_times */
+	/*  44 */	"profil",
+	/*  45 */	NULL, /* unimplemented */
+	/*  46 */	"setgid",
+	/*  47 */	NULL, /* getgid_with_egid */
+	/*  48 */	NULL, /* unimplemented sunos_ssig */
+	/*  49 */	NULL, /* unimplemented reserved for USG */
+	/*  50 */	NULL, /* unimplemented reserved for USG */
+	/*  51 */	"acct",
+	/*  52 */	NULL, /* unimplemented */
+	/*  53 */	NULL, /* mctl */
+	/*  54 */	NULL, /* ioctl */
+	/*  55 */	NULL, /* reboot */
+	/*  56 */	NULL, /* obsolete sunos_owait3 */
+	/*  57 */	"symlink",
+	/*  58 */	"readlink",
+	/*  59 */	NULL, /* execve */
+	/*  60 */	"umask",
+	/*  61 */	"chroot",
+	/*  62 */	"fstat43",
+	/*  63 */	NULL, /* unimplemented */
+	/*  64 */	"getpagesize",
+	/*  65 */	NULL, /* omsync */
+	/*  66 */	NULL, /* vfork */
+	/*  67 */	NULL, /* obsolete vread */
+	/*  68 */	NULL, /* obsolete vwrite */
+	/*  69 */	"sbrk",
+	/*  70 */	"sstk",
+	/*  71 */	NULL, /* mmap */
+	/*  72 */	"ovadvise",
+	/*  73 */	"munmap",
+	/*  74 */	"mprotect",
+	/*  75 */	"madvise",
+	/*  76 */	NULL, /* vhangup */
+	/*  77 */	NULL, /* unimplemented vlimit */
+	/*  78 */	"mincore",
+	/*  79 */	"getgroups",
+	/*  80 */	"setgroups",
+	/*  81 */	NULL, /* getpgrp */
+	/*  82 */	NULL, /* setpgrp */
+	/*  83 */	"setitimer",
+	/*  84 */	NULL, /* unimplemented sunos32_sys_wait */
+	/*  85 */	"oswapon",
+	/*  86 */	"getitimer",
+	/*  87 */	"ogethostname",
+	/*  88 */	"osethostname",
+	/*  89 */	"getdtablesize",
+	/*  90 */	"dup2",
+	/*  91 */	NULL, /* unimplemented getdopt */
+	/*  92 */	NULL, /* fcntl */
+	/*  93 */	"select",
+	/*  94 */	NULL, /* unimplemented setdopt */
+	/*  95 */	"fsync",
+	/*  96 */	"setpriority",
+	/*  97 */	NULL, /* socket */
+	/*  98 */	"connect",
+	/*  99 */	"oaccept",
+	/* 100 */	"getpriority",
+	/* 101 */	"osend",
+	/* 102 */	"orecv",
+	/* 103 */	NULL, /* unimplemented old socketaddr */
+	/* 104 */	"bind",
+	/* 105 */	NULL, /* setsockopt */
+	/* 106 */	"listen",
+	/* 107 */	NULL, /* unimplemented vtimes */
+	/* 108 */	NULL, /* sigvec */
+	/* 109 */	"sigblock",
+	/* 110 */	"sigsetmask",
+	/* 111 */	NULL, /* sigsuspend */
+	/* 112 */	"osigstack",
+	/* 113 */	"orecvmsg",
+	/* 114 */	"osendmsg",
+	/* 115 */	NULL, /* obsolete vtrace */
+	/* 116 */	"gettimeofday",
+	/* 117 */	"getrusage",
+	/* 118 */	"getsockopt",
+	/* 119 */	NULL, /* unimplemented */
+	/* 120 */	"readv",
+	/* 121 */	"writev",
+	/* 122 */	"settimeofday",
+	/* 123 */	"fchown",
+	/* 124 */	"fchmod",
+	/* 125 */	"orecvfrom",
+	/* 126 */	"setreuid",
+	/* 127 */	"setregid",
+	/* 128 */	"rename",
+	/* 129 */	"otruncate",
+	/* 130 */	"oftruncate",
+	/* 131 */	"flock",
+	/* 132 */	NULL, /* unimplemented */
+	/* 133 */	"sendto",
+	/* 134 */	"shutdown",
+	/* 135 */	NULL, /* socketpair */
+	/* 136 */	"mkdir",
+	/* 137 */	"rmdir",
+	/* 138 */	"utimes",
+	/* 139 */	NULL, /* sigreturn */
+	/* 140 */	"adjtime",
+	/* 141 */	"ogetpeername",
+	/* 142 */	NULL, /* gethostid */
+	/* 143 */	NULL, /* unimplemented old sethostid */
+	/* 144 */	NULL, /* getrlimit */
+	/* 145 */	NULL, /* setrlimit */
+	/* 146 */	"killpg",
+	/* 147 */	NULL, /* unimplemented */
+	/* 148 */	NULL, /* unimplemented */
+	/* 149 */	NULL, /* unimplemented */
+	/* 150 */	"ogetsockname",
+	/* 151 */	NULL, /* unimplemented getmsg */
+	/* 152 */	NULL, /* unimplemented putmsg */
+	/* 153 */	"poll",
+	/* 154 */	NULL, /* unimplemented */
+	/* 155 */	NULL, /* unimplemented nfssvc */
+	/* 156 */	"ogetdirentries",
+	/* 157 */	NULL, /* statfs */
+	/* 158 */	NULL, /* fstatfs */
+	/* 159 */	NULL, /* unmount */
+	/* 160 */	NULL, /* unimplemented async_daemon */
+	/* 161 */	NULL, /* getfh */
+	/* 162 */	"ogetdomainname",
+	/* 163 */	"osetdomainname",
+	/* 164 */	NULL, /* unimplemented rtschedule */
+	/* 165 */	NULL, /* quotactl */
+	/* 166 */	NULL, /* exportfs */
+	/* 167 */	NULL, /* mount */
+	/* 168 */	NULL, /* ustat */
+#ifdef SYSVSEM
+	/* 169 */	"semsys",
+#else
+	/* 169 */	NULL, /* unimplemented semsys */
+#endif
+#ifdef SYSVMSG
+	/* 170 */	"msgsys",
+#else
+	/* 170 */	NULL, /* unimplemented msgsys */
+#endif
+#ifdef SYSVSHM
+	/* 171 */	"shmsys",
+#else
+	/* 171 */	NULL, /* unimplemented shmsys */
+#endif
+	/* 172 */	NULL, /* auditsys */
+	/* 173 */	NULL, /* unimplemented rfssys */
+	/* 174 */	NULL, /* getdents */
+	/* 175 */	NULL, /* setsid */
+	/* 176 */	"fchdir",
+	/* 177 */	"fchroot",
+	/* 178 */	NULL, /* unimplemented vpixsys */
+	/* 179 */	NULL, /* unimplemented aioread */
+	/* 180 */	NULL, /* unimplemented aiowrite */
+	/* 181 */	NULL, /* unimplemented aiowait */
+	/* 182 */	NULL, /* unimplemented aiocancel */
+	/* 183 */	NULL, /* sigpending */
+	/* 184 */	NULL, /* unimplemented */
+	/* 185 */	"setpgid",
+	/* 186 */	"pathconf",
+	/* 187 */	"fpathconf",
+	/* 188 */	NULL, /* sysconf */
+	/* 189 */	NULL, /* uname */
+	/* 190 */	NULL, /* filler */
+	/* 191 */	NULL, /* filler */
+	/* 192 */	NULL, /* filler */
+	/* 193 */	NULL, /* filler */
+	/* 194 */	NULL, /* filler */
+	/* 195 */	NULL, /* filler */
+	/* 196 */	NULL, /* filler */
+	/* 197 */	NULL, /* filler */
+	/* 198 */	NULL, /* filler */
+	/* 199 */	NULL, /* filler */
+	/* 200 */	NULL, /* filler */
+	/* 201 */	NULL, /* filler */
+	/* 202 */	NULL, /* filler */
+	/* 203 */	NULL, /* filler */
+	/* 204 */	NULL, /* filler */
+	/* 205 */	NULL, /* filler */
+	/* 206 */	NULL, /* filler */
+	/* 207 */	NULL, /* filler */
+	/* 208 */	NULL, /* filler */
+	/* 209 */	NULL, /* filler */
+	/* 210 */	NULL, /* filler */
+	/* 211 */	NULL, /* filler */
+	/* 212 */	NULL, /* filler */
+	/* 213 */	NULL, /* filler */
+	/* 214 */	NULL, /* filler */
+	/* 215 */	NULL, /* filler */
+	/* 216 */	NULL, /* filler */
+	/* 217 */	NULL, /* filler */
+	/* 218 */	NULL, /* filler */
+	/* 219 */	NULL, /* filler */
+	/* 220 */	NULL, /* filler */
+	/* 221 */	NULL, /* filler */
+	/* 222 */	NULL, /* filler */
+	/* 223 */	NULL, /* filler */
+	/* 224 */	NULL, /* filler */
+	/* 225 */	NULL, /* filler */
+	/* 226 */	NULL, /* filler */
+	/* 227 */	NULL, /* filler */
+	/* 228 */	NULL, /* filler */
+	/* 229 */	NULL, /* filler */
+	/* 230 */	NULL, /* filler */
+	/* 231 */	NULL, /* filler */
+	/* 232 */	NULL, /* filler */
+	/* 233 */	NULL, /* filler */
+	/* 234 */	NULL, /* filler */
+	/* 235 */	NULL, /* filler */
+	/* 236 */	NULL, /* filler */
+	/* 237 */	NULL, /* filler */
+	/* 238 */	NULL, /* filler */
+	/* 239 */	NULL, /* filler */
+	/* 240 */	NULL, /* filler */
+	/* 241 */	NULL, /* filler */
+	/* 242 */	NULL, /* filler */
+	/* 243 */	NULL, /* filler */
+	/* 244 */	NULL, /* filler */
+	/* 245 */	NULL, /* filler */
+	/* 246 */	NULL, /* filler */
+	/* 247 */	NULL, /* filler */
+	/* 248 */	NULL, /* filler */
+	/* 249 */	NULL, /* filler */
+	/* 250 */	NULL, /* filler */
+	/* 251 */	NULL, /* filler */
+	/* 252 */	NULL, /* filler */
+	/* 253 */	NULL, /* filler */
+	/* 254 */	NULL, /* filler */
+	/* 255 */	NULL, /* filler */
+};
diff --git a/sys/compat/sunos32/sunos32_sysent.c b/sys/compat/sunos32/sunos32_sysent.c
index cccc33a..c24ccd5 100644
--- a/sys/compat/sunos32/sunos32_sysent.c
+++ b/sys/compat/sunos32/sunos32_sysent.c
@@ -1,4 +1,4 @@
-/* $NetBSD: sunos32_sysent.c,v 1.29 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunos32_sysent.c,v 1.29 2013/11/07 19:39:58 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include "opt_sysv.h"
@@ -33,530 +33,530 @@ __KERNEL_RCSID(0, "$NetBSD: sunos32_sysent.c,v 1.29 2013/11/07 19:39:58 njoly Ex
 
 struct sysent sunos32_sysent[] = {
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_nosys },		/* 0 = syscall */
+	    (sy_call_t *)sys_nosys, 0, 0 },		/* 0 = syscall */
 	{ ns(struct netbsd32_exit_args), 0,
-	    (sy_call_t *)netbsd32_exit },	/* 1 = netbsd32_exit */
+	    (sy_call_t *)netbsd32_exit, 0, 0 },	/* 1 = netbsd32_exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct netbsd32_read_args), 0,
-	    (sy_call_t *)netbsd32_read },	/* 3 = netbsd32_read */
+	    (sy_call_t *)netbsd32_read, 0, 0 },	/* 3 = netbsd32_read */
 	{ ns(struct netbsd32_write_args), 0,
-	    (sy_call_t *)netbsd32_write },	/* 4 = netbsd32_write */
+	    (sy_call_t *)netbsd32_write, 0, 0 },	/* 4 = netbsd32_write */
 	{ ns(struct sunos32_sys_open_args), 0,
-	    (sy_call_t *)sunos32_sys_open },	/* 5 = open */
+	    (sy_call_t *)sunos32_sys_open, 0, 0 },	/* 5 = open */
 	{ ns(struct netbsd32_close_args), 0,
-	    (sy_call_t *)netbsd32_close },	/* 6 = netbsd32_close */
+	    (sy_call_t *)netbsd32_close, 0, 0 },	/* 6 = netbsd32_close */
 	{ ns(struct sunos32_sys_wait4_args), 0,
-	    (sy_call_t *)sunos32_sys_wait4 },	/* 7 = wait4 */
+	    (sy_call_t *)sunos32_sys_wait4, 0, 0 },	/* 7 = wait4 */
 	{ ns(struct sunos32_sys_creat_args), 0,
-	    (sy_call_t *)sunos32_sys_creat },	/* 8 = creat */
+	    (sy_call_t *)sunos32_sys_creat, 0, 0 },	/* 8 = creat */
 	{ ns(struct netbsd32_link_args), 0,
-	    (sy_call_t *)netbsd32_link },	/* 9 = netbsd32_link */
+	    (sy_call_t *)netbsd32_link, 0, 0 },	/* 9 = netbsd32_link */
 	{ ns(struct netbsd32_unlink_args), 0,
-	    (sy_call_t *)netbsd32_unlink },	/* 10 = netbsd32_unlink */
+	    (sy_call_t *)netbsd32_unlink, 0, 0 },	/* 10 = netbsd32_unlink */
 	{ ns(struct sunos32_sys_execv_args), 0,
-	    (sy_call_t *)sunos32_sys_execv },	/* 11 = execv */
+	    (sy_call_t *)sunos32_sys_execv, 0, 0 },	/* 11 = execv */
 	{ ns(struct netbsd32_chdir_args), 0,
-	    (sy_call_t *)netbsd32_chdir },	/* 12 = netbsd32_chdir */
+	    (sy_call_t *)netbsd32_chdir, 0, 0 },	/* 12 = netbsd32_chdir */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 13 = obsolete old_time */
+	    sys_nosys, 0, 0 },			/* 13 = obsolete old_time */
 	{ ns(struct sunos32_sys_mknod_args), 0,
-	    (sy_call_t *)sunos32_sys_mknod },	/* 14 = mknod */
+	    (sy_call_t *)sunos32_sys_mknod, 0, 0 },	/* 14 = mknod */
 	{ ns(struct netbsd32_chmod_args), 0,
-	    (sy_call_t *)netbsd32_chmod },	/* 15 = netbsd32_chmod */
+	    (sy_call_t *)netbsd32_chmod, 0, 0 },	/* 15 = netbsd32_chmod */
 	{ ns(struct netbsd32_chown_args), 0,
-	    (sy_call_t *)netbsd32_chown },	/* 16 = netbsd32_chown */
+	    (sy_call_t *)netbsd32_chown, 0, 0 },	/* 16 = netbsd32_chown */
 	{ ns(struct netbsd32_break_args), 0,
-	    (sy_call_t *)netbsd32_break },	/* 17 = netbsd32_break */
+	    (sy_call_t *)netbsd32_break, 0, 0 },	/* 17 = netbsd32_break */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 18 = obsolete old_stat */
+	    sys_nosys, 0, 0 },			/* 18 = obsolete old_stat */
 	{ ns(struct compat_43_netbsd32_olseek_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_olseek },/* 19 = compat_43_netbsd32_olseek */
+	    (sy_call_t *)compat_43_netbsd32_olseek, 0, 0 },/* 19 = compat_43_netbsd32_olseek */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid_with_ppid },/* 20 = getpid_with_ppid */
+	    (sy_call_t *)sys_getpid_with_ppid, 0, 0 },/* 20 = getpid_with_ppid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 21 = obsolete sunos_old_mount */
+	    sys_nosys, 0, 0 },			/* 21 = obsolete sunos_old_mount */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 22 = unimplemented System V umount */
+	    sys_nosys, 0, 0 },			/* 22 = unimplemented System V umount */
 	{ ns(struct netbsd32_setuid_args), 0,
-	    (sy_call_t *)netbsd32_setuid },	/* 23 = netbsd32_setuid */
+	    (sy_call_t *)netbsd32_setuid, 0, 0 },	/* 23 = netbsd32_setuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid_with_euid },/* 24 = getuid_with_euid */
+	    (sy_call_t *)sys_getuid_with_euid, 0, 0 },/* 24 = getuid_with_euid */
 	{ ns(struct sunos32_sys_stime_args), 0,
-	    (sy_call_t *)sunos32_sys_stime },	/* 25 = stime */
+	    (sy_call_t *)sunos32_sys_stime, 0, 0 },	/* 25 = stime */
 	{ ns(struct sunos32_sys_ptrace_args), 0,
-	    (sy_call_t *)sunos32_sys_ptrace },	/* 26 = ptrace */
+	    (sy_call_t *)sunos32_sys_ptrace, 0, 0 },	/* 26 = ptrace */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 27 = unimplemented old_sunos_alarm */
+	    sys_nosys, 0, 0 },			/* 27 = unimplemented old_sunos_alarm */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 28 = unimplemented old_sunos_fstat */
+	    sys_nosys, 0, 0 },			/* 28 = unimplemented old_sunos_fstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 29 = unimplemented old_sunos_pause */
+	    sys_nosys, 0, 0 },			/* 29 = unimplemented old_sunos_pause */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 30 = unimplemented old_sunos_utime */
+	    sys_nosys, 0, 0 },			/* 30 = unimplemented old_sunos_utime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 31 = unimplemented old_sunos_stty */
+	    sys_nosys, 0, 0 },			/* 31 = unimplemented old_sunos_stty */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 32 = unimplemented old_sunos_gtty */
+	    sys_nosys, 0, 0 },			/* 32 = unimplemented old_sunos_gtty */
 	{ ns(struct sunos32_sys_access_args), 0,
-	    (sy_call_t *)sunos32_sys_access },	/* 33 = access */
+	    (sy_call_t *)sunos32_sys_access, 0, 0 },	/* 33 = access */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 34 = unimplemented old_sunos_nice */
+	    sys_nosys, 0, 0 },			/* 34 = unimplemented old_sunos_nice */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 35 = unimplemented old_sunos_ftime */
+	    sys_nosys, 0, 0 },			/* 35 = unimplemented old_sunos_ftime */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct netbsd32_kill_args), 0,
-	    (sy_call_t *)netbsd32_kill },	/* 37 = netbsd32_kill */
+	    (sy_call_t *)netbsd32_kill, 0, 0 },	/* 37 = netbsd32_kill */
 	{ ns(struct sunos32_sys_stat_args), 0,
-	    (sy_call_t *)sunos32_sys_stat },	/* 38 = stat */
+	    (sy_call_t *)sunos32_sys_stat, 0, 0 },	/* 38 = stat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 39 = unimplemented sunos_setpgrp */
+	    sys_nosys, 0, 0 },			/* 39 = unimplemented sunos_setpgrp */
 	{ ns(struct sunos32_sys_lstat_args), 0,
-	    (sy_call_t *)sunos32_sys_lstat },	/* 40 = lstat */
+	    (sy_call_t *)sunos32_sys_lstat, 0, 0 },	/* 40 = lstat */
 	{ ns(struct netbsd32_dup_args), 0,
-	    (sy_call_t *)netbsd32_dup },	/* 41 = netbsd32_dup */
+	    (sy_call_t *)netbsd32_dup, 0, 0 },	/* 41 = netbsd32_dup */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_pipe },		/* 42 = pipe */
+	    (sy_call_t *)sys_pipe, 0, 0 },		/* 42 = pipe */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 43 = unimplemented sunos_times */
+	    sys_nosys, 0, 0 },			/* 43 = unimplemented sunos_times */
 	{ ns(struct netbsd32_profil_args), 0,
-	    (sy_call_t *)netbsd32_profil },	/* 44 = netbsd32_profil */
+	    (sy_call_t *)netbsd32_profil, 0, 0 },	/* 44 = netbsd32_profil */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 45 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 45 = unimplemented */
 	{ ns(struct netbsd32_setgid_args), 0,
-	    (sy_call_t *)netbsd32_setgid },	/* 46 = netbsd32_setgid */
+	    (sy_call_t *)netbsd32_setgid, 0, 0 },	/* 46 = netbsd32_setgid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid_with_egid },/* 47 = getgid_with_egid */
+	    (sy_call_t *)sys_getgid_with_egid, 0, 0 },/* 47 = getgid_with_egid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 48 = unimplemented sunos_ssig */
+	    sys_nosys, 0, 0 },			/* 48 = unimplemented sunos_ssig */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 49 = unimplemented reserved for USG */
+	    sys_nosys, 0, 0 },			/* 49 = unimplemented reserved for USG */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 50 = unimplemented reserved for USG */
+	    sys_nosys, 0, 0 },			/* 50 = unimplemented reserved for USG */
 	{ ns(struct netbsd32_acct_args), 0,
-	    (sy_call_t *)netbsd32_acct },	/* 51 = netbsd32_acct */
+	    (sy_call_t *)netbsd32_acct, 0, 0 },	/* 51 = netbsd32_acct */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 52 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 52 = unimplemented */
 	{ ns(struct sunos32_sys_mctl_args), 0,
-	    (sy_call_t *)sunos32_sys_mctl },	/* 53 = mctl */
+	    (sy_call_t *)sunos32_sys_mctl, 0, 0 },	/* 53 = mctl */
 	{ ns(struct sunos32_sys_ioctl_args), 0,
-	    (sy_call_t *)sunos32_sys_ioctl },	/* 54 = ioctl */
+	    (sy_call_t *)sunos32_sys_ioctl, 0, 0 },	/* 54 = ioctl */
 	{ ns(struct sunos32_sys_reboot_args), 0,
-	    (sy_call_t *)sunos32_sys_reboot },	/* 55 = reboot */
+	    (sy_call_t *)sunos32_sys_reboot, 0, 0 },	/* 55 = reboot */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 56 = obsolete sunos_owait3 */
+	    sys_nosys, 0, 0 },			/* 56 = obsolete sunos_owait3 */
 	{ ns(struct netbsd32_symlink_args), 0,
-	    (sy_call_t *)netbsd32_symlink },	/* 57 = netbsd32_symlink */
+	    (sy_call_t *)netbsd32_symlink, 0, 0 },	/* 57 = netbsd32_symlink */
 	{ ns(struct netbsd32_readlink_args), 0,
-	    (sy_call_t *)netbsd32_readlink },	/* 58 = netbsd32_readlink */
+	    (sy_call_t *)netbsd32_readlink, 0, 0 },	/* 58 = netbsd32_readlink */
 	{ ns(struct sunos32_sys_execve_args), 0,
-	    (sy_call_t *)sunos32_sys_execve },	/* 59 = execve */
+	    (sy_call_t *)sunos32_sys_execve, 0, 0 },	/* 59 = execve */
 	{ ns(struct netbsd32_umask_args), 0,
-	    (sy_call_t *)netbsd32_umask },	/* 60 = netbsd32_umask */
+	    (sy_call_t *)netbsd32_umask, 0, 0 },	/* 60 = netbsd32_umask */
 	{ ns(struct netbsd32_chroot_args), 0,
-	    (sy_call_t *)netbsd32_chroot },	/* 61 = netbsd32_chroot */
+	    (sy_call_t *)netbsd32_chroot, 0, 0 },	/* 61 = netbsd32_chroot */
 	{ ns(struct compat_43_netbsd32_fstat43_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_fstat43 },/* 62 = compat_43_netbsd32_fstat43 */
+	    (sy_call_t *)compat_43_netbsd32_fstat43, 0, 0 },/* 62 = compat_43_netbsd32_fstat43 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 63 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 63 = unimplemented */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_getpagesize },/* 64 = ogetpagesize */
+	    (sy_call_t *)compat_43_sys_getpagesize, 0, 0 },/* 64 = ogetpagesize */
 	{ ns(struct sunos32_sys_omsync_args), 0,
-	    (sy_call_t *)sunos32_sys_omsync },	/* 65 = omsync */
+	    (sy_call_t *)sunos32_sys_omsync, 0, 0 },	/* 65 = omsync */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_vfork },		/* 66 = vfork */
+	    (sy_call_t *)sys_vfork, 0, 0 },		/* 66 = vfork */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 67 = obsolete vread */
+	    sys_nosys, 0, 0 },			/* 67 = obsolete vread */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 68 = obsolete vwrite */
+	    sys_nosys, 0, 0 },			/* 68 = obsolete vwrite */
 	{ ns(struct netbsd32_sbrk_args), 0,
-	    (sy_call_t *)netbsd32_sbrk },	/* 69 = netbsd32_sbrk */
+	    (sy_call_t *)netbsd32_sbrk, 0, 0 },	/* 69 = netbsd32_sbrk */
 	{ ns(struct netbsd32_sstk_args), 0,
-	    (sy_call_t *)netbsd32_sstk },	/* 70 = netbsd32_sstk */
+	    (sy_call_t *)netbsd32_sstk, 0, 0 },	/* 70 = netbsd32_sstk */
 	{ ns(struct sunos32_sys_mmap_args), 0,
-	    (sy_call_t *)sunos32_sys_mmap },	/* 71 = mmap */
+	    (sy_call_t *)sunos32_sys_mmap, 0, 0 },	/* 71 = mmap */
 	{ ns(struct netbsd32_ovadvise_args), 0,
-	    (sy_call_t *)netbsd32_ovadvise },	/* 72 = vadvise */
+	    (sy_call_t *)netbsd32_ovadvise, 0, 0 },	/* 72 = vadvise */
 	{ ns(struct netbsd32_munmap_args), 0,
-	    (sy_call_t *)netbsd32_munmap },	/* 73 = netbsd32_munmap */
+	    (sy_call_t *)netbsd32_munmap, 0, 0 },	/* 73 = netbsd32_munmap */
 	{ ns(struct netbsd32_mprotect_args), 0,
-	    (sy_call_t *)netbsd32_mprotect },	/* 74 = netbsd32_mprotect */
+	    (sy_call_t *)netbsd32_mprotect, 0, 0 },	/* 74 = netbsd32_mprotect */
 	{ ns(struct netbsd32_madvise_args), 0,
-	    (sy_call_t *)netbsd32_madvise },	/* 75 = netbsd32_madvise */
+	    (sy_call_t *)netbsd32_madvise, 0, 0 },	/* 75 = netbsd32_madvise */
 	{ 0, 0, 0,
-	    (sy_call_t *)sunos32_sys_vhangup },	/* 76 = vhangup */
+	    (sy_call_t *)sunos32_sys_vhangup, 0, 0 },	/* 76 = vhangup */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 77 = unimplemented vlimit */
+	    sys_nosys, 0, 0 },			/* 77 = unimplemented vlimit */
 	{ ns(struct netbsd32_mincore_args), 0,
-	    (sy_call_t *)netbsd32_mincore },	/* 78 = netbsd32_mincore */
+	    (sy_call_t *)netbsd32_mincore, 0, 0 },	/* 78 = netbsd32_mincore */
 	{ ns(struct netbsd32_getgroups_args), 0,
-	    (sy_call_t *)netbsd32_getgroups },	/* 79 = netbsd32_getgroups */
+	    (sy_call_t *)netbsd32_getgroups, 0, 0 },	/* 79 = netbsd32_getgroups */
 	{ ns(struct netbsd32_setgroups_args), 0,
-	    (sy_call_t *)netbsd32_setgroups },	/* 80 = netbsd32_setgroups */
+	    (sy_call_t *)netbsd32_setgroups, 0, 0 },	/* 80 = netbsd32_setgroups */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpgrp },		/* 81 = getpgrp */
+	    (sy_call_t *)sys_getpgrp, 0, 0 },		/* 81 = getpgrp */
 	{ ns(struct sunos32_sys_setpgrp_args), 0,
-	    (sy_call_t *)sunos32_sys_setpgrp },	/* 82 = setpgrp */
+	    (sy_call_t *)sunos32_sys_setpgrp, 0, 0 },	/* 82 = setpgrp */
 	{ ns(struct compat_50_netbsd32_setitimer_args), 0,
-	    (sy_call_t *)compat_50_netbsd32_setitimer },/* 83 = compat_50_netbsd32_setitimer */
+	    (sy_call_t *)compat_50_netbsd32_setitimer, 0, 0 },/* 83 = compat_50_netbsd32_setitimer */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 84 = unimplemented sunos32_sys_wait */
+	    sys_nosys, 0, 0 },			/* 84 = unimplemented sunos32_sys_wait */
 	{ ns(struct compat_12_netbsd32_oswapon_args), 0,
-	    (sy_call_t *)compat_12_netbsd32_oswapon },/* 85 = compat_12_netbsd32_oswapon */
+	    (sy_call_t *)compat_12_netbsd32_oswapon, 0, 0 },/* 85 = compat_12_netbsd32_oswapon */
 	{ ns(struct compat_50_netbsd32_getitimer_args), 0,
-	    (sy_call_t *)compat_50_netbsd32_getitimer },/* 86 = compat_50_netbsd32_getitimer */
+	    (sy_call_t *)compat_50_netbsd32_getitimer, 0, 0 },/* 86 = compat_50_netbsd32_getitimer */
 	{ ns(struct compat_43_netbsd32_ogethostname_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_ogethostname },/* 87 = compat_43_netbsd32_ogethostname */
+	    (sy_call_t *)compat_43_netbsd32_ogethostname, 0, 0 },/* 87 = compat_43_netbsd32_ogethostname */
 	{ ns(struct compat_43_netbsd32_osethostname_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_osethostname },/* 88 = compat_43_netbsd32_osethostname */
+	    (sy_call_t *)compat_43_netbsd32_osethostname, 0, 0 },/* 88 = compat_43_netbsd32_osethostname */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_getdtablesize },/* 89 = ogetdtablesize */
+	    (sy_call_t *)compat_43_sys_getdtablesize, 0, 0 },/* 89 = ogetdtablesize */
 	{ ns(struct netbsd32_dup2_args), 0,
-	    (sy_call_t *)netbsd32_dup2 },	/* 90 = netbsd32_dup2 */
+	    (sy_call_t *)netbsd32_dup2, 0, 0 },	/* 90 = netbsd32_dup2 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 91 = unimplemented getdopt */
+	    sys_nosys, 0, 0 },			/* 91 = unimplemented getdopt */
 	{ ns(struct sunos32_sys_fcntl_args), 0,
-	    (sy_call_t *)sunos32_sys_fcntl },	/* 92 = fcntl */
+	    (sy_call_t *)sunos32_sys_fcntl, 0, 0 },	/* 92 = fcntl */
 	{ ns(struct compat_50_netbsd32_select_args), 0,
-	    (sy_call_t *)compat_50_netbsd32_select },/* 93 = compat_50_netbsd32_select */
+	    (sy_call_t *)compat_50_netbsd32_select, 0, 0 },/* 93 = compat_50_netbsd32_select */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 94 = unimplemented setdopt */
+	    sys_nosys, 0, 0 },			/* 94 = unimplemented setdopt */
 	{ ns(struct netbsd32_fsync_args), 0,
-	    (sy_call_t *)netbsd32_fsync },	/* 95 = netbsd32_fsync */
+	    (sy_call_t *)netbsd32_fsync, 0, 0 },	/* 95 = netbsd32_fsync */
 	{ ns(struct netbsd32_setpriority_args), 0,
-	    (sy_call_t *)netbsd32_setpriority },/* 96 = netbsd32_setpriority */
+	    (sy_call_t *)netbsd32_setpriority, 0, 0 },/* 96 = netbsd32_setpriority */
 	{ ns(struct sunos32_sys_socket_args), 0,
-	    (sy_call_t *)sunos32_sys_socket },	/* 97 = socket */
+	    (sy_call_t *)sunos32_sys_socket, 0, 0 },	/* 97 = socket */
 	{ ns(struct netbsd32_connect_args), 0,
-	    (sy_call_t *)netbsd32_connect },	/* 98 = netbsd32_connect */
+	    (sy_call_t *)netbsd32_connect, 0, 0 },	/* 98 = netbsd32_connect */
 	{ ns(struct compat_43_netbsd32_oaccept_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_oaccept },/* 99 = compat_43_netbsd32_oaccept */
+	    (sy_call_t *)compat_43_netbsd32_oaccept, 0, 0 },/* 99 = compat_43_netbsd32_oaccept */
 	{ ns(struct netbsd32_getpriority_args), 0,
-	    (sy_call_t *)netbsd32_getpriority },/* 100 = netbsd32_getpriority */
+	    (sy_call_t *)netbsd32_getpriority, 0, 0 },/* 100 = netbsd32_getpriority */
 	{ ns(struct compat_43_netbsd32_osend_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_osend },/* 101 = compat_43_netbsd32_osend */
+	    (sy_call_t *)compat_43_netbsd32_osend, 0, 0 },/* 101 = compat_43_netbsd32_osend */
 	{ ns(struct compat_43_netbsd32_orecv_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_orecv },/* 102 = compat_43_netbsd32_orecv */
+	    (sy_call_t *)compat_43_netbsd32_orecv, 0, 0 },/* 102 = compat_43_netbsd32_orecv */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 103 = unimplemented old socketaddr */
+	    sys_nosys, 0, 0 },			/* 103 = unimplemented old socketaddr */
 	{ ns(struct netbsd32_bind_args), 0,
-	    (sy_call_t *)netbsd32_bind },	/* 104 = netbsd32_bind */
+	    (sy_call_t *)netbsd32_bind, 0, 0 },	/* 104 = netbsd32_bind */
 	{ ns(struct sunos32_sys_setsockopt_args), 0,
-	    (sy_call_t *)sunos32_sys_setsockopt },/* 105 = setsockopt */
+	    (sy_call_t *)sunos32_sys_setsockopt, 0, 0 },/* 105 = setsockopt */
 	{ ns(struct netbsd32_listen_args), 0,
-	    (sy_call_t *)netbsd32_listen },	/* 106 = netbsd32_listen */
+	    (sy_call_t *)netbsd32_listen, 0, 0 },	/* 106 = netbsd32_listen */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 107 = unimplemented vtimes */
+	    sys_nosys, 0, 0 },			/* 107 = unimplemented vtimes */
 	{ ns(struct sunos32_sys_sigvec_args), 0,
-	    (sy_call_t *)sunos32_sys_sigvec },	/* 108 = sigvec */
+	    (sy_call_t *)sunos32_sys_sigvec, 0, 0 },	/* 108 = sigvec */
 	{ ns(struct compat_43_netbsd32_sigblock_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_sigblock },/* 109 = compat_43_netbsd32_sigblock */
+	    (sy_call_t *)compat_43_netbsd32_sigblock, 0, 0 },/* 109 = compat_43_netbsd32_sigblock */
 	{ ns(struct compat_43_netbsd32_sigsetmask_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_sigsetmask },/* 110 = compat_43_netbsd32_sigsetmask */
+	    (sy_call_t *)compat_43_netbsd32_sigsetmask, 0, 0 },/* 110 = compat_43_netbsd32_sigsetmask */
 	{ ns(struct sunos32_sys_sigsuspend_args), 0,
-	    (sy_call_t *)sunos32_sys_sigsuspend },/* 111 = sigsuspend */
+	    (sy_call_t *)sunos32_sys_sigsuspend, 0, 0 },/* 111 = sigsuspend */
 	{ ns(struct compat_43_netbsd32_osigstack_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_osigstack },/* 112 = compat_43_netbsd32_osigstack */
+	    (sy_call_t *)compat_43_netbsd32_osigstack, 0, 0 },/* 112 = compat_43_netbsd32_osigstack */
 	{ ns(struct compat_43_netbsd32_orecvmsg_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_orecvmsg },/* 113 = compat_43_netbsd32_orecvmsg */
+	    (sy_call_t *)compat_43_netbsd32_orecvmsg, 0, 0 },/* 113 = compat_43_netbsd32_orecvmsg */
 	{ ns(struct compat_43_netbsd32_osendmsg_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_osendmsg },/* 114 = compat_43_netbsd32_osendmsg */
+	    (sy_call_t *)compat_43_netbsd32_osendmsg, 0, 0 },/* 114 = compat_43_netbsd32_osendmsg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 115 = obsolete vtrace */
+	    sys_nosys, 0, 0 },			/* 115 = obsolete vtrace */
 	{ ns(struct compat_50_netbsd32_gettimeofday_args), 0,
-	    (sy_call_t *)compat_50_netbsd32_gettimeofday },/* 116 = compat_50_netbsd32_gettimeofday */
+	    (sy_call_t *)compat_50_netbsd32_gettimeofday, 0, 0 },/* 116 = compat_50_netbsd32_gettimeofday */
 	{ ns(struct compat_50_netbsd32_getrusage_args), 0,
-	    (sy_call_t *)compat_50_netbsd32_getrusage },/* 117 = compat_50_netbsd32_getrusage */
+	    (sy_call_t *)compat_50_netbsd32_getrusage, 0, 0 },/* 117 = compat_50_netbsd32_getrusage */
 	{ ns(struct netbsd32_getsockopt_args), 0,
-	    (sy_call_t *)netbsd32_getsockopt },	/* 118 = netbsd32_getsockopt */
+	    (sy_call_t *)netbsd32_getsockopt, 0, 0 },	/* 118 = netbsd32_getsockopt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 119 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 119 = unimplemented */
 	{ ns(struct netbsd32_readv_args), 0,
-	    (sy_call_t *)netbsd32_readv },	/* 120 = netbsd32_readv */
+	    (sy_call_t *)netbsd32_readv, 0, 0 },	/* 120 = netbsd32_readv */
 	{ ns(struct netbsd32_writev_args), 0,
-	    (sy_call_t *)netbsd32_writev },	/* 121 = netbsd32_writev */
+	    (sy_call_t *)netbsd32_writev, 0, 0 },	/* 121 = netbsd32_writev */
 	{ ns(struct compat_50_netbsd32_settimeofday_args), 0,
-	    (sy_call_t *)compat_50_netbsd32_settimeofday },/* 122 = compat_50_netbsd32_settimeofday */
+	    (sy_call_t *)compat_50_netbsd32_settimeofday, 0, 0 },/* 122 = compat_50_netbsd32_settimeofday */
 	{ ns(struct netbsd32_fchown_args), 0,
-	    (sy_call_t *)netbsd32_fchown },	/* 123 = netbsd32_fchown */
+	    (sy_call_t *)netbsd32_fchown, 0, 0 },	/* 123 = netbsd32_fchown */
 	{ ns(struct netbsd32_fchmod_args), 0,
-	    (sy_call_t *)netbsd32_fchmod },	/* 124 = netbsd32_fchmod */
+	    (sy_call_t *)netbsd32_fchmod, 0, 0 },	/* 124 = netbsd32_fchmod */
 	{ ns(struct compat_43_netbsd32_orecvfrom_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_orecvfrom },/* 125 = compat_43_netbsd32_orecvfrom */
+	    (sy_call_t *)compat_43_netbsd32_orecvfrom, 0, 0 },/* 125 = compat_43_netbsd32_orecvfrom */
 	{ ns(struct netbsd32_setreuid_args), 0,
-	    (sy_call_t *)netbsd32_setreuid },	/* 126 = netbsd32_setreuid */
+	    (sy_call_t *)netbsd32_setreuid, 0, 0 },	/* 126 = netbsd32_setreuid */
 	{ ns(struct netbsd32_setregid_args), 0,
-	    (sy_call_t *)netbsd32_setregid },	/* 127 = netbsd32_setregid */
+	    (sy_call_t *)netbsd32_setregid, 0, 0 },	/* 127 = netbsd32_setregid */
 	{ ns(struct netbsd32_rename_args), 0,
-	    (sy_call_t *)netbsd32_rename },	/* 128 = netbsd32_rename */
+	    (sy_call_t *)netbsd32_rename, 0, 0 },	/* 128 = netbsd32_rename */
 	{ ns(struct compat_43_netbsd32_otruncate_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_otruncate },/* 129 = compat_43_netbsd32_otruncate */
+	    (sy_call_t *)compat_43_netbsd32_otruncate, 0, 0 },/* 129 = compat_43_netbsd32_otruncate */
 	{ ns(struct compat_43_netbsd32_oftruncate_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_oftruncate },/* 130 = compat_43_netbsd32_oftruncate */
+	    (sy_call_t *)compat_43_netbsd32_oftruncate, 0, 0 },/* 130 = compat_43_netbsd32_oftruncate */
 	{ ns(struct netbsd32_flock_args), 0,
-	    (sy_call_t *)netbsd32_flock },	/* 131 = netbsd32_flock */
+	    (sy_call_t *)netbsd32_flock, 0, 0 },	/* 131 = netbsd32_flock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 132 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 132 = unimplemented */
 	{ ns(struct netbsd32_sendto_args), 0,
-	    (sy_call_t *)netbsd32_sendto },	/* 133 = netbsd32_sendto */
+	    (sy_call_t *)netbsd32_sendto, 0, 0 },	/* 133 = netbsd32_sendto */
 	{ ns(struct netbsd32_shutdown_args), 0,
-	    (sy_call_t *)netbsd32_shutdown },	/* 134 = netbsd32_shutdown */
+	    (sy_call_t *)netbsd32_shutdown, 0, 0 },	/* 134 = netbsd32_shutdown */
 	{ ns(struct sunos32_sys_socketpair_args), 0,
-	    (sy_call_t *)sunos32_sys_socketpair },/* 135 = socketpair */
+	    (sy_call_t *)sunos32_sys_socketpair, 0, 0 },/* 135 = socketpair */
 	{ ns(struct netbsd32_mkdir_args), 0,
-	    (sy_call_t *)netbsd32_mkdir },	/* 136 = netbsd32_mkdir */
+	    (sy_call_t *)netbsd32_mkdir, 0, 0 },	/* 136 = netbsd32_mkdir */
 	{ ns(struct netbsd32_rmdir_args), 0,
-	    (sy_call_t *)netbsd32_rmdir },	/* 137 = netbsd32_rmdir */
+	    (sy_call_t *)netbsd32_rmdir, 0, 0 },	/* 137 = netbsd32_rmdir */
 	{ ns(struct compat_50_netbsd32_utimes_args), 0,
-	    (sy_call_t *)compat_50_netbsd32_utimes },/* 138 = compat_50_netbsd32_utimes */
+	    (sy_call_t *)compat_50_netbsd32_utimes, 0, 0 },/* 138 = compat_50_netbsd32_utimes */
 	{ ns(struct sunos32_sys_sigreturn_args), 0,
-	    (sy_call_t *)sunos32_sys_sigreturn },/* 139 = sigreturn */
+	    (sy_call_t *)sunos32_sys_sigreturn, 0, 0 },/* 139 = sigreturn */
 	{ ns(struct compat_50_netbsd32_adjtime_args), 0,
-	    (sy_call_t *)compat_50_netbsd32_adjtime },/* 140 = compat_50_netbsd32_adjtime */
+	    (sy_call_t *)compat_50_netbsd32_adjtime, 0, 0 },/* 140 = compat_50_netbsd32_adjtime */
 	{ ns(struct compat_43_netbsd32_ogetpeername_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_ogetpeername },/* 141 = compat_43_netbsd32_ogetpeername */
+	    (sy_call_t *)compat_43_netbsd32_ogetpeername, 0, 0 },/* 141 = compat_43_netbsd32_ogetpeername */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_gethostid },/* 142 = gethostid */
+	    (sy_call_t *)compat_43_sys_gethostid, 0, 0 },/* 142 = gethostid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 143 = unimplemented old sethostid */
+	    sys_nosys, 0, 0 },			/* 143 = unimplemented old sethostid */
 	{ ns(struct sunos32_sys_getrlimit_args), 0,
-	    (sy_call_t *)sunos32_sys_getrlimit },/* 144 = getrlimit */
+	    (sy_call_t *)sunos32_sys_getrlimit, 0, 0 },/* 144 = getrlimit */
 	{ ns(struct sunos32_sys_setrlimit_args), 0,
-	    (sy_call_t *)sunos32_sys_setrlimit },/* 145 = setrlimit */
+	    (sy_call_t *)sunos32_sys_setrlimit, 0, 0 },/* 145 = setrlimit */
 	{ ns(struct compat_43_netbsd32_killpg_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_killpg },/* 146 = compat_43_netbsd32_killpg */
+	    (sy_call_t *)compat_43_netbsd32_killpg, 0, 0 },/* 146 = compat_43_netbsd32_killpg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 147 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 147 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 148 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 148 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 149 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 149 = unimplemented */
 	{ ns(struct compat_43_netbsd32_ogetsockname_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_ogetsockname },/* 150 = compat_43_netbsd32_ogetsockname */
+	    (sy_call_t *)compat_43_netbsd32_ogetsockname, 0, 0 },/* 150 = compat_43_netbsd32_ogetsockname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 151 = unimplemented getmsg */
+	    sys_nosys, 0, 0 },			/* 151 = unimplemented getmsg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 152 = unimplemented putmsg */
+	    sys_nosys, 0, 0 },			/* 152 = unimplemented putmsg */
 	{ ns(struct netbsd32_poll_args), 0,
-	    (sy_call_t *)netbsd32_poll },	/* 153 = netbsd32_poll */
+	    (sy_call_t *)netbsd32_poll, 0, 0 },	/* 153 = netbsd32_poll */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 154 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 154 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 155 = unimplemented nfssvc */
+	    sys_nosys, 0, 0 },			/* 155 = unimplemented nfssvc */
 	{ ns(struct compat_43_netbsd32_ogetdirentries_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_ogetdirentries },/* 156 = compat_43_netbsd32_ogetdirentries */
+	    (sy_call_t *)compat_43_netbsd32_ogetdirentries, 0, 0 },/* 156 = compat_43_netbsd32_ogetdirentries */
 	{ ns(struct sunos32_sys_statfs_args), 0,
-	    (sy_call_t *)sunos32_sys_statfs },	/* 157 = statfs */
+	    (sy_call_t *)sunos32_sys_statfs, 0, 0 },	/* 157 = statfs */
 	{ ns(struct sunos32_sys_fstatfs_args), 0,
-	    (sy_call_t *)sunos32_sys_fstatfs },	/* 158 = fstatfs */
+	    (sy_call_t *)sunos32_sys_fstatfs, 0, 0 },	/* 158 = fstatfs */
 	{ ns(struct sunos32_sys_unmount_args), 0,
-	    (sy_call_t *)sunos32_sys_unmount },	/* 159 = unmount */
+	    (sy_call_t *)sunos32_sys_unmount, 0, 0 },	/* 159 = unmount */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 160 = unimplemented async_daemon */
+	    sys_nosys, 0, 0 },			/* 160 = unimplemented async_daemon */
 	{ ns(struct compat_30_sys_getfh_args), 0,
-	    (sy_call_t *)compat_30_sys_getfh },	/* 161 = getfh */
+	    (sy_call_t *)compat_30_sys_getfh, 0, 0 },	/* 161 = getfh */
 	{ ns(struct compat_09_netbsd32_ogetdomainname_args), 0,
-	    (sy_call_t *)compat_09_netbsd32_ogetdomainname },/* 162 = compat_09_netbsd32_ogetdomainname */
+	    (sy_call_t *)compat_09_netbsd32_ogetdomainname, 0, 0 },/* 162 = compat_09_netbsd32_ogetdomainname */
 	{ ns(struct compat_09_netbsd32_osetdomainname_args), 0,
-	    (sy_call_t *)compat_09_netbsd32_osetdomainname },/* 163 = compat_09_netbsd32_osetdomainname */
+	    (sy_call_t *)compat_09_netbsd32_osetdomainname, 0, 0 },/* 163 = compat_09_netbsd32_osetdomainname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 164 = unimplemented rtschedule */
+	    sys_nosys, 0, 0 },			/* 164 = unimplemented rtschedule */
 	{ ns(struct sunos32_sys_quotactl_args), 0,
-	    (sy_call_t *)sunos32_sys_quotactl },/* 165 = quotactl */
+	    (sy_call_t *)sunos32_sys_quotactl, 0, 0 },/* 165 = quotactl */
 	{ ns(struct sunos32_sys_exportfs_args), 0,
-	    (sy_call_t *)sunos32_sys_exportfs },/* 166 = exportfs */
+	    (sy_call_t *)sunos32_sys_exportfs, 0, 0 },/* 166 = exportfs */
 	{ ns(struct sunos32_sys_mount_args), 0,
-	    (sy_call_t *)sunos32_sys_mount },	/* 167 = mount */
+	    (sy_call_t *)sunos32_sys_mount, 0, 0 },	/* 167 = mount */
 	{ ns(struct sunos32_sys_ustat_args), 0,
-	    (sy_call_t *)sunos32_sys_ustat },	/* 168 = ustat */
+	    (sy_call_t *)sunos32_sys_ustat, 0, 0 },	/* 168 = ustat */
 #ifdef SYSVSEM
 	{ ns(struct compat_10_netbsd32_semsys_args), 0,
-	    (sy_call_t *)compat_10_netbsd32_semsys },/* 169 = osemsys */
+	    (sy_call_t *)compat_10_netbsd32_semsys, 0, 0 },/* 169 = osemsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 169 = unimplemented semsys */
+	    sys_nosys, 0, 0 },			/* 169 = unimplemented semsys */
 #endif
 #ifdef SYSVMSG
 	{ ns(struct compat_10_netbsd32_msgsys_args), 0,
-	    (sy_call_t *)compat_10_netbsd32_msgsys },/* 170 = omsgsys */
+	    (sy_call_t *)compat_10_netbsd32_msgsys, 0, 0 },/* 170 = omsgsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 170 = unimplemented msgsys */
+	    sys_nosys, 0, 0 },			/* 170 = unimplemented msgsys */
 #endif
 #ifdef SYSVSHM
 	{ ns(struct compat_10_netbsd32_shmsys_args), 0,
-	    (sy_call_t *)compat_10_netbsd32_shmsys },/* 171 = oshmsys */
+	    (sy_call_t *)compat_10_netbsd32_shmsys, 0, 0 },/* 171 = oshmsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 171 = unimplemented shmsys */
+	    sys_nosys, 0, 0 },			/* 171 = unimplemented shmsys */
 #endif
 	{ ns(struct sunos32_sys_auditsys_args), 0,
-	    (sy_call_t *)sunos32_sys_auditsys },/* 172 = auditsys */
+	    (sy_call_t *)sunos32_sys_auditsys, 0, 0 },/* 172 = auditsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 173 = unimplemented rfssys */
+	    sys_nosys, 0, 0 },			/* 173 = unimplemented rfssys */
 	{ ns(struct sunos32_sys_getdents_args), 0,
-	    (sy_call_t *)sunos32_sys_getdents },/* 174 = getdents */
+	    (sy_call_t *)sunos32_sys_getdents, 0, 0 },/* 174 = getdents */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_setsid },		/* 175 = setsid */
+	    (sy_call_t *)sys_setsid, 0, 0 },		/* 175 = setsid */
 	{ ns(struct netbsd32_fchdir_args), 0,
-	    (sy_call_t *)netbsd32_fchdir },	/* 176 = netbsd32_fchdir */
+	    (sy_call_t *)netbsd32_fchdir, 0, 0 },	/* 176 = netbsd32_fchdir */
 	{ ns(struct netbsd32_fchroot_args), 0,
-	    (sy_call_t *)netbsd32_fchroot },	/* 177 = netbsd32_fchroot */
+	    (sy_call_t *)netbsd32_fchroot, 0, 0 },	/* 177 = netbsd32_fchroot */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 178 = unimplemented vpixsys */
+	    sys_nosys, 0, 0 },			/* 178 = unimplemented vpixsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 179 = unimplemented aioread */
+	    sys_nosys, 0, 0 },			/* 179 = unimplemented aioread */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 180 = unimplemented aiowrite */
+	    sys_nosys, 0, 0 },			/* 180 = unimplemented aiowrite */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 181 = unimplemented aiowait */
+	    sys_nosys, 0, 0 },			/* 181 = unimplemented aiowait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 182 = unimplemented aiocancel */
+	    sys_nosys, 0, 0 },			/* 182 = unimplemented aiocancel */
 	{ ns(struct sunos32_sys_sigpending_args), 0,
-	    (sy_call_t *)sunos32_sys_sigpending },/* 183 = sigpending */
+	    (sy_call_t *)sunos32_sys_sigpending, 0, 0 },/* 183 = sigpending */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 184 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 184 = unimplemented */
 	{ ns(struct netbsd32_setpgid_args), 0,
-	    (sy_call_t *)netbsd32_setpgid },	/* 185 = netbsd32_setpgid */
+	    (sy_call_t *)netbsd32_setpgid, 0, 0 },	/* 185 = netbsd32_setpgid */
 	{ ns(struct netbsd32_pathconf_args), 0,
-	    (sy_call_t *)netbsd32_pathconf },	/* 186 = netbsd32_pathconf */
+	    (sy_call_t *)netbsd32_pathconf, 0, 0 },	/* 186 = netbsd32_pathconf */
 	{ ns(struct netbsd32_fpathconf_args), 0,
-	    (sy_call_t *)netbsd32_fpathconf },	/* 187 = netbsd32_fpathconf */
+	    (sy_call_t *)netbsd32_fpathconf, 0, 0 },	/* 187 = netbsd32_fpathconf */
 	{ ns(struct sunos32_sys_sysconf_args), 0,
-	    (sy_call_t *)sunos32_sys_sysconf },	/* 188 = sysconf */
+	    (sy_call_t *)sunos32_sys_sysconf, 0, 0 },	/* 188 = sysconf */
 	{ ns(struct sunos32_sys_uname_args), 0,
-	    (sy_call_t *)sunos32_sys_uname },	/* 189 = uname */
+	    (sy_call_t *)sunos32_sys_uname, 0, 0 },	/* 189 = uname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 190 = filler */
+	    sys_nosys, 0, 0 },			/* 190 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 191 = filler */
+	    sys_nosys, 0, 0 },			/* 191 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 192 = filler */
+	    sys_nosys, 0, 0 },			/* 192 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 193 = filler */
+	    sys_nosys, 0, 0 },			/* 193 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 194 = filler */
+	    sys_nosys, 0, 0 },			/* 194 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 195 = filler */
+	    sys_nosys, 0, 0 },			/* 195 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 196 = filler */
+	    sys_nosys, 0, 0 },			/* 196 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 197 = filler */
+	    sys_nosys, 0, 0 },			/* 197 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 198 = filler */
+	    sys_nosys, 0, 0 },			/* 198 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 199 = filler */
+	    sys_nosys, 0, 0 },			/* 199 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 200 = filler */
+	    sys_nosys, 0, 0 },			/* 200 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 201 = filler */
+	    sys_nosys, 0, 0 },			/* 201 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 202 = filler */
+	    sys_nosys, 0, 0 },			/* 202 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 203 = filler */
+	    sys_nosys, 0, 0 },			/* 203 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 204 = filler */
+	    sys_nosys, 0, 0 },			/* 204 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 205 = filler */
+	    sys_nosys, 0, 0 },			/* 205 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 206 = filler */
+	    sys_nosys, 0, 0 },			/* 206 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 207 = filler */
+	    sys_nosys, 0, 0 },			/* 207 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 208 = filler */
+	    sys_nosys, 0, 0 },			/* 208 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 209 = filler */
+	    sys_nosys, 0, 0 },			/* 209 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 210 = filler */
+	    sys_nosys, 0, 0 },			/* 210 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 211 = filler */
+	    sys_nosys, 0, 0 },			/* 211 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 212 = filler */
+	    sys_nosys, 0, 0 },			/* 212 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 213 = filler */
+	    sys_nosys, 0, 0 },			/* 213 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 214 = filler */
+	    sys_nosys, 0, 0 },			/* 214 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 215 = filler */
+	    sys_nosys, 0, 0 },			/* 215 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 216 = filler */
+	    sys_nosys, 0, 0 },			/* 216 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 217 = filler */
+	    sys_nosys, 0, 0 },			/* 217 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 218 = filler */
+	    sys_nosys, 0, 0 },			/* 218 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 219 = filler */
+	    sys_nosys, 0, 0 },			/* 219 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 220 = filler */
+	    sys_nosys, 0, 0 },			/* 220 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 221 = filler */
+	    sys_nosys, 0, 0 },			/* 221 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 222 = filler */
+	    sys_nosys, 0, 0 },			/* 222 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 223 = filler */
+	    sys_nosys, 0, 0 },			/* 223 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 224 = filler */
+	    sys_nosys, 0, 0 },			/* 224 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 225 = filler */
+	    sys_nosys, 0, 0 },			/* 225 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 226 = filler */
+	    sys_nosys, 0, 0 },			/* 226 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 227 = filler */
+	    sys_nosys, 0, 0 },			/* 227 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 228 = filler */
+	    sys_nosys, 0, 0 },			/* 228 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 229 = filler */
+	    sys_nosys, 0, 0 },			/* 229 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 230 = filler */
+	    sys_nosys, 0, 0 },			/* 230 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 231 = filler */
+	    sys_nosys, 0, 0 },			/* 231 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 232 = filler */
+	    sys_nosys, 0, 0 },			/* 232 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 233 = filler */
+	    sys_nosys, 0, 0 },			/* 233 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 234 = filler */
+	    sys_nosys, 0, 0 },			/* 234 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 235 = filler */
+	    sys_nosys, 0, 0 },			/* 235 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 236 = filler */
+	    sys_nosys, 0, 0 },			/* 236 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 237 = filler */
+	    sys_nosys, 0, 0 },			/* 237 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 238 = filler */
+	    sys_nosys, 0, 0 },			/* 238 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 239 = filler */
+	    sys_nosys, 0, 0 },			/* 239 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 240 = filler */
+	    sys_nosys, 0, 0 },			/* 240 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 241 = filler */
+	    sys_nosys, 0, 0 },			/* 241 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 242 = filler */
+	    sys_nosys, 0, 0 },			/* 242 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 243 = filler */
+	    sys_nosys, 0, 0 },			/* 243 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 244 = filler */
+	    sys_nosys, 0, 0 },			/* 244 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 245 = filler */
+	    sys_nosys, 0, 0 },			/* 245 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 246 = filler */
+	    sys_nosys, 0, 0 },			/* 246 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 247 = filler */
+	    sys_nosys, 0, 0 },			/* 247 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 248 = filler */
+	    sys_nosys, 0, 0 },			/* 248 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 249 = filler */
+	    sys_nosys, 0, 0 },			/* 249 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 250 = filler */
+	    sys_nosys, 0, 0 },			/* 250 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 251 = filler */
+	    sys_nosys, 0, 0 },			/* 251 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 252 = filler */
+	    sys_nosys, 0, 0 },			/* 252 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 253 = filler */
+	    sys_nosys, 0, 0 },			/* 253 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 254 = filler */
+	    sys_nosys, 0, 0 },			/* 254 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 255 = filler */
+	    sys_nosys, 0, 0 },			/* 255 = filler */
 };
diff --git a/sys/compat/svr4/svr4_syscall.h b/sys/compat/svr4/svr4_syscall.h
index 51aa61a..975b198 100644
--- a/sys/compat/svr4/svr4_syscall.h
+++ b/sys/compat/svr4/svr4_syscall.h
@@ -1,4 +1,4 @@
-/* $NetBSD: svr4_syscall.h,v 1.85 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
diff --git a/sys/compat/svr4/svr4_syscallargs.h b/sys/compat/svr4/svr4_syscallargs.h
index 6ef08ba..7471748 100644
--- a/sys/compat/svr4/svr4_syscallargs.h
+++ b/sys/compat/svr4/svr4_syscallargs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: svr4_syscallargs.h,v 1.84 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
diff --git a/sys/compat/svr4/svr4_syscalls.c b/sys/compat/svr4/svr4_syscalls.c
index cfea3c1..8475db4 100644
--- a/sys/compat/svr4/svr4_syscalls.c
+++ b/sys/compat/svr4/svr4_syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: svr4_syscalls.c,v 1.85 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: svr4_syscalls.c,v 1.85 2013/11/07 19:39:58 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #if defined(_KERNEL_OPT)
@@ -32,6 +32,8 @@ __KERNEL_RCSID(0, "$NetBSD: svr4_syscalls.c,v 1.85 2013/11/07 19:39:58 njoly Exp
 #include <compat/svr4/svr4_resource.h>
 #include <compat/svr4/svr4_acl.h>
 #include <compat/svr4/svr4_schedctl.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const svr4_syscallnames[] = {
@@ -308,3 +310,280 @@ const char *const svr4_syscallnames[] = {
 	/* 254 */	"#254 (unimplemented lwp_sigtimedwait)",
 	/* 255 */	"#255 (unimplemented umount2)",
 };
+
+
+/* libc style syscall names */
+const char *const altsvr4_syscallnames[] = {
+	/*   0 */	"nosys",
+	/*   1 */	NULL, /* exit */
+	/*   2 */	NULL, /* fork */
+	/*   3 */	NULL, /* read */
+	/*   4 */	NULL, /* write */
+	/*   5 */	NULL, /* open */
+	/*   6 */	NULL, /* close */
+	/*   7 */	NULL, /* wait */
+	/*   8 */	NULL, /* creat */
+	/*   9 */	NULL, /* link */
+	/*  10 */	NULL, /* unlink */
+	/*  11 */	NULL, /* execv */
+	/*  12 */	NULL, /* chdir */
+	/*  13 */	NULL, /* time */
+	/*  14 */	NULL, /* mknod */
+	/*  15 */	NULL, /* chmod */
+	/*  16 */	"__posix_chown",
+	/*  17 */	NULL, /* break */
+	/*  18 */	NULL, /* stat */
+	/*  19 */	NULL, /* lseek */
+	/*  20 */	NULL, /* getpid */
+	/*  21 */	NULL, /* unimplemented old_mount */
+	/*  22 */	NULL, /* unimplemented System V umount */
+	/*  23 */	NULL, /* setuid */
+	/*  24 */	NULL, /* getuid_with_euid */
+	/*  25 */	NULL, /* unimplemented stime */
+	/*  26 */	NULL, /* unimplemented ptrace */
+	/*  27 */	NULL, /* alarm */
+	/*  28 */	NULL, /* fstat */
+	/*  29 */	NULL, /* pause */
+	/*  30 */	NULL, /* utime */
+	/*  31 */	NULL, /* unimplemented was stty */
+	/*  32 */	NULL, /* unimplemented was gtty */
+	/*  33 */	NULL, /* access */
+	/*  34 */	NULL, /* nice */
+	/*  35 */	NULL, /* unimplemented statfs */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	NULL, /* kill */
+	/*  38 */	NULL, /* unimplemented fstatfs */
+	/*  39 */	NULL, /* pgrpsys */
+	/*  40 */	NULL, /* unimplemented xenix */
+	/*  41 */	NULL, /* dup */
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* times */
+	/*  44 */	NULL, /* unimplemented profil */
+	/*  45 */	NULL, /* unimplemented plock */
+	/*  46 */	NULL, /* setgid */
+	/*  47 */	NULL, /* getgid_with_egid */
+	/*  48 */	NULL, /* signal */
+#ifdef SYSVMSG
+	/*  49 */	NULL, /* msgsys */
+#else
+	/*  49 */	NULL, /* unimplemented msgsys */
+#endif
+	/*  50 */	NULL, /* sysarch */
+	/*  51 */	NULL, /* unimplemented acct */
+#ifdef SYSVSHM
+	/*  52 */	NULL, /* shmsys */
+#else
+	/*  52 */	NULL, /* unimplemented shmsys */
+#endif
+#ifdef SYSVSEM
+	/*  53 */	NULL, /* semsys */
+#else
+	/*  53 */	NULL, /* unimplemented semsys */
+#endif
+	/*  54 */	NULL, /* ioctl */
+	/*  55 */	NULL, /* unimplemented uadmin */
+	/*  56 */	NULL, /* unimplemented exch */
+	/*  57 */	NULL, /* utssys */
+	/*  58 */	NULL, /* fsync */
+	/*  59 */	NULL, /* execve */
+	/*  60 */	NULL, /* umask */
+	/*  61 */	NULL, /* chroot */
+	/*  62 */	NULL, /* fcntl */
+	/*  63 */	NULL, /* ulimit */
+	/*  64 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  65 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  66 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  67 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  68 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  69 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  70 */	NULL, /* obsolete advfs */
+	/*  71 */	NULL, /* obsolete unadvfs */
+	/*  72 */	NULL, /* obsolete rmount */
+	/*  73 */	NULL, /* obsolete rumount */
+	/*  74 */	NULL, /* obsolete rfstart */
+	/*  75 */	NULL, /* obsolete sigret */
+	/*  76 */	NULL, /* obsolete rdebug */
+	/*  77 */	NULL, /* obsolete rfstop */
+	/*  78 */	NULL, /* unimplemented rfsys */
+	/*  79 */	NULL, /* rmdir */
+	/*  80 */	NULL, /* mkdir */
+	/*  81 */	NULL, /* getdents */
+	/*  82 */	NULL, /* obsolete libattach */
+	/*  83 */	NULL, /* obsolete libdetach */
+	/*  84 */	NULL, /* unimplemented sysfs */
+	/*  85 */	NULL, /* getmsg */
+	/*  86 */	NULL, /* putmsg */
+	/*  87 */	NULL, /* poll */
+	/*  88 */	NULL, /* lstat */
+	/*  89 */	NULL, /* symlink */
+	/*  90 */	NULL, /* readlink */
+	/*  91 */	NULL, /* getgroups */
+	/*  92 */	NULL, /* setgroups */
+	/*  93 */	NULL, /* fchmod */
+	/*  94 */	"__posix_fchown",
+	/*  95 */	NULL, /* sigprocmask */
+	/*  96 */	NULL, /* sigsuspend */
+	/*  97 */	NULL, /* sigaltstack */
+	/*  98 */	NULL, /* sigaction */
+	/*  99 */	NULL, /* sigpending */
+	/* 100 */	NULL, /* context */
+	/* 101 */	NULL, /* unimplemented evsys */
+	/* 102 */	NULL, /* unimplemented evtrapret */
+	/* 103 */	NULL, /* statvfs */
+	/* 104 */	NULL, /* fstatvfs */
+	/* 105 */	NULL, /* unimplemented */
+	/* 106 */	NULL, /* unimplemented nfssvc */
+	/* 107 */	NULL, /* waitsys */
+	/* 108 */	NULL, /* unimplemented sigsendsys */
+	/* 109 */	NULL, /* hrtsys */
+	/* 110 */	NULL, /* unimplemented acancel */
+	/* 111 */	NULL, /* unimplemented async */
+	/* 112 */	NULL, /* unimplemented priocntlsys */
+	/* 113 */	NULL, /* pathconf */
+	/* 114 */	NULL, /* unimplemented mincore */
+	/* 115 */	NULL, /* mmap */
+	/* 116 */	NULL, /* mprotect */
+	/* 117 */	NULL, /* munmap */
+	/* 118 */	NULL, /* fpathconf */
+	/* 119 */	NULL, /* vfork */
+	/* 120 */	NULL, /* fchdir */
+	/* 121 */	NULL, /* readv */
+	/* 122 */	NULL, /* writev */
+	/* 123 */	NULL, /* xstat */
+	/* 124 */	NULL, /* lxstat */
+	/* 125 */	NULL, /* fxstat */
+	/* 126 */	NULL, /* xmknod */
+	/* 127 */	NULL, /* unimplemented clocal */
+	/* 128 */	NULL, /* setrlimit */
+	/* 129 */	NULL, /* getrlimit */
+	/* 130 */	"__posix_lchown",
+	/* 131 */	NULL, /* memcntl */
+	/* 132 */	NULL, /* unimplemented getpmsg */
+	/* 133 */	NULL, /* unimplemented putpmsg */
+	/* 134 */	"__posix_rename",
+	/* 135 */	NULL, /* uname */
+	/* 136 */	NULL, /* setegid */
+	/* 137 */	NULL, /* sysconfig */
+	/* 138 */	NULL, /* adjtime */
+	/* 139 */	NULL, /* systeminfo */
+	/* 140 */	NULL, /* unimplemented */
+	/* 141 */	NULL, /* seteuid */
+	/* 142 */	NULL, /* unimplemented vtrace */
+	/* 143 */	"fork",
+	/* 144 */	NULL, /* unimplemented sigtimedwait */
+	/* 145 */	NULL, /* _lwp_info */
+	/* 146 */	NULL, /* unimplemented yield */
+	/* 147 */	NULL, /* unimplemented lwp_sema_wait */
+	/* 148 */	NULL, /* unimplemented lwp_sema_post */
+	/* 149 */	NULL, /* unimplemented lwp_sema_trywait */
+	/* 150 */	NULL, /* unimplemented */
+	/* 151 */	NULL, /* unimplemented */
+	/* 152 */	NULL, /* unimplemented modctl */
+	/* 153 */	NULL, /* fchroot */
+	/* 154 */	NULL, /* utimes */
+	/* 155 */	NULL, /* vhangup */
+	/* 156 */	NULL, /* gettimeofday */
+	/* 157 */	NULL, /* getitimer */
+	/* 158 */	NULL, /* setitimer */
+	/* 159 */	NULL, /* _lwp_create */
+	/* 160 */	NULL, /* _lwp_exit */
+	/* 161 */	NULL, /* _lwp_suspend */
+	/* 162 */	NULL, /* _lwp_continue */
+	/* 163 */	NULL, /* _lwp_kill */
+	/* 164 */	NULL, /* _lwp_self */
+	/* 165 */	NULL, /* _lwp_getprivate */
+	/* 166 */	NULL, /* _lwp_setprivate */
+	/* 167 */	NULL, /* _lwp_wait */
+	/* 168 */	NULL, /* unimplemented lwp_mutex_unlock */
+	/* 169 */	NULL, /* unimplemented lwp_mutex_lock */
+	/* 170 */	NULL, /* unimplemented lwp_cond_wait */
+	/* 171 */	NULL, /* unimplemented lwp_cond_signal */
+	/* 172 */	NULL, /* unimplemented lwp_cond_broadcast */
+	/* 173 */	NULL, /* pread */
+	/* 174 */	NULL, /* pwrite */
+	/* 175 */	NULL, /* llseek */
+	/* 176 */	NULL, /* unimplemented inst_sync */
+	/* 177 */	NULL, /* unimplemented */
+	/* 178 */	NULL, /* unimplemented kaio */
+	/* 179 */	NULL, /* unimplemented */
+	/* 180 */	NULL, /* unimplemented */
+	/* 181 */	NULL, /* unimplemented */
+	/* 182 */	NULL, /* unimplemented */
+	/* 183 */	NULL, /* unimplemented */
+	/* 184 */	NULL, /* unimplemented tsolsys */
+	/* 185 */	NULL, /* acl */
+	/* 186 */	NULL, /* auditsys */
+	/* 187 */	NULL, /* unimplemented processor_bind */
+	/* 188 */	NULL, /* unimplemented processor_info */
+	/* 189 */	NULL, /* unimplemented p_online */
+	/* 190 */	NULL, /* unimplemented sigqueue */
+	/* 191 */	NULL, /* unimplemented clock_gettime */
+	/* 192 */	NULL, /* unimplemented clock_settime */
+	/* 193 */	NULL, /* unimplemented clock_getres */
+	/* 194 */	NULL, /* unimplemented timer_create */
+	/* 195 */	NULL, /* unimplemented timer_delete */
+	/* 196 */	NULL, /* unimplemented timer_settime */
+	/* 197 */	NULL, /* unimplemented timer_gettime */
+	/* 198 */	NULL, /* unimplemented timer_getoverrun */
+	/* 199 */	NULL, /* nanosleep */
+	/* 200 */	NULL, /* facl */
+	/* 201 */	NULL, /* unimplemented door */
+	/* 202 */	NULL, /* setreuid */
+	/* 203 */	NULL, /* setregid */
+	/* 204 */	NULL, /* unimplemented install_utrap */
+	/* 205 */	NULL, /* unimplemented signotify */
+	/* 206 */	NULL, /* schedctl */
+	/* 207 */	NULL, /* unimplemented pset */
+	/* 208 */	NULL, /* unimplemented */
+	/* 209 */	NULL, /* resolvepath */
+	/* 210 */	NULL, /* unimplemented signotifywait */
+	/* 211 */	NULL, /* unimplemented lwp_sigredirect */
+	/* 212 */	NULL, /* unimplemented lwp_alarm */
+	/* 213 */	NULL, /* getdents64 */
+	/* 214 */	NULL, /* mmap64 */
+	/* 215 */	NULL, /* stat64 */
+	/* 216 */	NULL, /* lstat64 */
+	/* 217 */	NULL, /* fstat64 */
+	/* 218 */	NULL, /* statvfs64 */
+	/* 219 */	NULL, /* fstatvfs64 */
+	/* 220 */	NULL, /* setrlimit64 */
+	/* 221 */	NULL, /* getrlimit64 */
+	/* 222 */	NULL, /* pread64 */
+	/* 223 */	NULL, /* pwrite64 */
+	/* 224 */	NULL, /* creat64 */
+	/* 225 */	NULL, /* open64 */
+	/* 226 */	NULL, /* unimplemented rpcsys */
+	/* 227 */	NULL, /* unimplemented */
+	/* 228 */	NULL, /* unimplemented */
+	/* 229 */	NULL, /* unimplemented */
+	/* 230 */	NULL, /* socket */
+	/* 231 */	NULL, /* socketpair */
+	/* 232 */	NULL, /* bind */
+	/* 233 */	NULL, /* listen */
+	/* 234 */	NULL, /* accept */
+	/* 235 */	NULL, /* connect */
+	/* 236 */	NULL, /* shutdown */
+	/* 237 */	NULL, /* recv */
+	/* 238 */	NULL, /* recvfrom */
+	/* 239 */	NULL, /* recvmsg */
+	/* 240 */	NULL, /* send */
+	/* 241 */	NULL, /* sendmsg */
+	/* 242 */	NULL, /* sendto */
+	/* 243 */	NULL, /* getpeername */
+	/* 244 */	NULL, /* getsockname */
+	/* 245 */	NULL, /* getsockopt */
+	/* 246 */	NULL, /* setsockopt */
+	/* 247 */	NULL, /* unimplemented sockconfig */
+	/* 248 */	NULL, /* unimplemented sys_ntp_gettime */
+#if defined(NTP) || !defined(_KERNEL)
+	/* 249 */	NULL, /* ntp_adjtime */
+#else
+	/* 249 */	NULL, /* excluded ntp_adjtime */
+#endif
+	/* 250 */	NULL, /* unimplemented lwp_mutex_unlock */
+	/* 251 */	NULL, /* unimplemented lwp_mutex_trylock */
+	/* 252 */	NULL, /* unimplemented lwp_mutex_init */
+	/* 253 */	NULL, /* unimplemented cladm */
+	/* 254 */	NULL, /* unimplemented lwp_sigtimedwait */
+	/* 255 */	NULL, /* unimplemented umount2 */
+};
diff --git a/sys/compat/svr4/svr4_sysent.c b/sys/compat/svr4/svr4_sysent.c
index e95e3da..c9717d0 100644
--- a/sys/compat/svr4/svr4_sysent.c
+++ b/sys/compat/svr4/svr4_sysent.c
@@ -1,4 +1,4 @@
-/* $NetBSD: svr4_sysent.c,v 1.88 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: svr4_sysent.c,v 1.88 2013/11/07 19:39:58 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ntp.h"
@@ -38,535 +38,535 @@ __KERNEL_RCSID(0, "$NetBSD: svr4_sysent.c,v 1.88 2013/11/07 19:39:58 njoly Exp $
 
 struct sysent svr4_sysent[] = {
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_nosys },		/* 0 = syscall */
+	    (sy_call_t *)sys_nosys, 0, 0 },		/* 0 = syscall */
 	{ ns(struct sys_exit_args), 0,
-	    (sy_call_t *)sys_exit },		/* 1 = exit */
+	    (sy_call_t *)sys_exit, 0, 0 },		/* 1 = exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct sys_read_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_read },		/* 3 = read */
+	    (sy_call_t *)sys_read, 0, 0 },		/* 3 = read */
 	{ ns(struct sys_write_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_write },		/* 4 = write */
+	    (sy_call_t *)sys_write, 0, 0 },		/* 4 = write */
 	{ ns(struct svr4_sys_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_open },	/* 5 = open */
+	    (sy_call_t *)svr4_sys_open, 0, 0 },	/* 5 = open */
 	{ ns(struct sys_close_args), 0,
-	    (sy_call_t *)sys_close },		/* 6 = close */
+	    (sy_call_t *)sys_close, 0, 0 },		/* 6 = close */
 	{ ns(struct svr4_sys_wait_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_wait },	/* 7 = wait */
+	    (sy_call_t *)svr4_sys_wait, 0, 0 },	/* 7 = wait */
 	{ ns(struct svr4_sys_creat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_creat },	/* 8 = creat */
+	    (sy_call_t *)svr4_sys_creat, 0, 0 },	/* 8 = creat */
 	{ ns(struct sys_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_link },		/* 9 = link */
+	    (sy_call_t *)sys_link, 0, 0 },		/* 9 = link */
 	{ ns(struct sys_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_unlink },		/* 10 = unlink */
+	    (sy_call_t *)sys_unlink, 0, 0 },		/* 10 = unlink */
 	{ ns(struct svr4_sys_execv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_execv },	/* 11 = execv */
+	    (sy_call_t *)svr4_sys_execv, 0, 0 },	/* 11 = execv */
 	{ ns(struct sys_chdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chdir },		/* 12 = chdir */
+	    (sy_call_t *)sys_chdir, 0, 0 },		/* 12 = chdir */
 	{ ns(struct svr4_sys_time_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_time },	/* 13 = time */
+	    (sy_call_t *)svr4_sys_time, 0, 0 },	/* 13 = time */
 	{ ns(struct svr4_sys_mknod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_mknod },	/* 14 = mknod */
+	    (sy_call_t *)svr4_sys_mknod, 0, 0 },	/* 14 = mknod */
 	{ ns(struct sys_chmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chmod },		/* 15 = chmod */
+	    (sy_call_t *)sys_chmod, 0, 0 },		/* 15 = chmod */
 	{ ns(struct sys___posix_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_chown },	/* 16 = chown */
+	    (sy_call_t *)sys___posix_chown, 0, 0 },	/* 16 = chown */
 	{ ns(struct svr4_sys_break_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_break },	/* 17 = break */
+	    (sy_call_t *)svr4_sys_break, 0, 0 },	/* 17 = break */
 	{ ns(struct svr4_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_stat },	/* 18 = stat */
+	    (sy_call_t *)svr4_sys_stat, 0, 0 },	/* 18 = stat */
 	{ ns(struct compat_43_sys_lseek_args), 0,
-	    (sy_call_t *)compat_43_sys_lseek },	/* 19 = lseek */
+	    (sy_call_t *)compat_43_sys_lseek, 0, 0 },	/* 19 = lseek */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid },		/* 20 = getpid */
+	    (sy_call_t *)sys_getpid, 0, 0 },		/* 20 = getpid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 21 = unimplemented old_mount */
+	    sys_nosys, 0, 0 },			/* 21 = unimplemented old_mount */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 22 = unimplemented System V umount */
+	    sys_nosys, 0, 0 },			/* 22 = unimplemented System V umount */
 	{ ns(struct sys_setuid_args), 0,
-	    (sy_call_t *)sys_setuid },		/* 23 = setuid */
+	    (sy_call_t *)sys_setuid, 0, 0 },		/* 23 = setuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid_with_euid },/* 24 = getuid_with_euid */
+	    (sy_call_t *)sys_getuid_with_euid, 0, 0 },/* 24 = getuid_with_euid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 25 = unimplemented stime */
+	    sys_nosys, 0, 0 },			/* 25 = unimplemented stime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 26 = unimplemented ptrace */
+	    sys_nosys, 0, 0 },			/* 26 = unimplemented ptrace */
 	{ ns(struct svr4_sys_alarm_args), 0,
-	    (sy_call_t *)svr4_sys_alarm },	/* 27 = alarm */
+	    (sy_call_t *)svr4_sys_alarm, 0, 0 },	/* 27 = alarm */
 	{ ns(struct svr4_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_fstat },	/* 28 = fstat */
+	    (sy_call_t *)svr4_sys_fstat, 0, 0 },	/* 28 = fstat */
 	{ 0, 0, 0,
-	    (sy_call_t *)svr4_sys_pause },	/* 29 = pause */
+	    (sy_call_t *)svr4_sys_pause, 0, 0 },	/* 29 = pause */
 	{ ns(struct svr4_sys_utime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_utime },	/* 30 = utime */
+	    (sy_call_t *)svr4_sys_utime, 0, 0 },	/* 30 = utime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 31 = unimplemented was stty */
+	    sys_nosys, 0, 0 },			/* 31 = unimplemented was stty */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 32 = unimplemented was gtty */
+	    sys_nosys, 0, 0 },			/* 32 = unimplemented was gtty */
 	{ ns(struct svr4_sys_access_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_access },	/* 33 = access */
+	    (sy_call_t *)svr4_sys_access, 0, 0 },	/* 33 = access */
 	{ ns(struct svr4_sys_nice_args), 0,
-	    (sy_call_t *)svr4_sys_nice },	/* 34 = nice */
+	    (sy_call_t *)svr4_sys_nice, 0, 0 },	/* 34 = nice */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 35 = unimplemented statfs */
+	    sys_nosys, 0, 0 },			/* 35 = unimplemented statfs */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct svr4_sys_kill_args), 0,
-	    (sy_call_t *)svr4_sys_kill },	/* 37 = kill */
+	    (sy_call_t *)svr4_sys_kill, 0, 0 },	/* 37 = kill */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 38 = unimplemented fstatfs */
+	    sys_nosys, 0, 0 },			/* 38 = unimplemented fstatfs */
 	{ ns(struct svr4_sys_pgrpsys_args), 0,
-	    (sy_call_t *)svr4_sys_pgrpsys },	/* 39 = pgrpsys */
+	    (sy_call_t *)svr4_sys_pgrpsys, 0, 0 },	/* 39 = pgrpsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 40 = unimplemented xenix */
+	    sys_nosys, 0, 0 },			/* 40 = unimplemented xenix */
 	{ ns(struct sys_dup_args), 0,
-	    (sy_call_t *)sys_dup },		/* 41 = dup */
+	    (sy_call_t *)sys_dup, 0, 0 },		/* 41 = dup */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_pipe },		/* 42 = pipe */
+	    (sy_call_t *)sys_pipe, 0, 0 },		/* 42 = pipe */
 	{ ns(struct svr4_sys_times_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_times },	/* 43 = times */
+	    (sy_call_t *)svr4_sys_times, 0, 0 },	/* 43 = times */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 44 = unimplemented profil */
+	    sys_nosys, 0, 0 },			/* 44 = unimplemented profil */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 45 = unimplemented plock */
+	    sys_nosys, 0, 0 },			/* 45 = unimplemented plock */
 	{ ns(struct sys_setgid_args), 0,
-	    (sy_call_t *)sys_setgid },		/* 46 = setgid */
+	    (sy_call_t *)sys_setgid, 0, 0 },		/* 46 = setgid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid_with_egid },/* 47 = getgid_with_egid */
+	    (sy_call_t *)sys_getgid_with_egid, 0, 0 },/* 47 = getgid_with_egid */
 	{ ns(struct svr4_sys_signal_args), 0,
-	    (sy_call_t *)svr4_sys_signal },	/* 48 = signal */
+	    (sy_call_t *)svr4_sys_signal, 0, 0 },	/* 48 = signal */
 #ifdef SYSVMSG
 	{ ns(struct svr4_sys_msgsys_args), 0,
-	    (sy_call_t *)svr4_sys_msgsys },	/* 49 = msgsys */
+	    (sy_call_t *)svr4_sys_msgsys, 0, 0 },	/* 49 = msgsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 49 = unimplemented msgsys */
+	    sys_nosys, 0, 0 },			/* 49 = unimplemented msgsys */
 #endif
 	{ ns(struct svr4_sys_sysarch_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_sysarch },	/* 50 = sysarch */
+	    (sy_call_t *)svr4_sys_sysarch, 0, 0 },	/* 50 = sysarch */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 51 = unimplemented acct */
+	    sys_nosys, 0, 0 },			/* 51 = unimplemented acct */
 #ifdef SYSVSHM
 	{ ns(struct svr4_sys_shmsys_args), 0,
-	    (sy_call_t *)svr4_sys_shmsys },	/* 52 = shmsys */
+	    (sy_call_t *)svr4_sys_shmsys, 0, 0 },	/* 52 = shmsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 52 = unimplemented shmsys */
+	    sys_nosys, 0, 0 },			/* 52 = unimplemented shmsys */
 #endif
 #ifdef SYSVSEM
 	{ ns(struct svr4_sys_semsys_args), 0,
-	    (sy_call_t *)svr4_sys_semsys },	/* 53 = semsys */
+	    (sy_call_t *)svr4_sys_semsys, 0, 0 },	/* 53 = semsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 53 = unimplemented semsys */
+	    sys_nosys, 0, 0 },			/* 53 = unimplemented semsys */
 #endif
 	{ ns(struct svr4_sys_ioctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_ioctl },	/* 54 = ioctl */
+	    (sy_call_t *)svr4_sys_ioctl, 0, 0 },	/* 54 = ioctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 55 = unimplemented uadmin */
+	    sys_nosys, 0, 0 },			/* 55 = unimplemented uadmin */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 56 = unimplemented exch */
+	    sys_nosys, 0, 0 },			/* 56 = unimplemented exch */
 	{ ns(struct svr4_sys_utssys_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_utssys },	/* 57 = utssys */
+	    (sy_call_t *)svr4_sys_utssys, 0, 0 },	/* 57 = utssys */
 	{ ns(struct sys_fsync_args), 0,
-	    (sy_call_t *)sys_fsync },		/* 58 = fsync */
+	    (sy_call_t *)sys_fsync, 0, 0 },		/* 58 = fsync */
 	{ ns(struct svr4_sys_execve_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_execve },	/* 59 = execve */
+	    (sy_call_t *)svr4_sys_execve, 0, 0 },	/* 59 = execve */
 	{ ns(struct sys_umask_args), 0,
-	    (sy_call_t *)sys_umask },		/* 60 = umask */
+	    (sy_call_t *)sys_umask, 0, 0 },		/* 60 = umask */
 	{ ns(struct sys_chroot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chroot },		/* 61 = chroot */
+	    (sy_call_t *)sys_chroot, 0, 0 },		/* 61 = chroot */
 	{ ns(struct svr4_sys_fcntl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_fcntl },	/* 62 = fcntl */
+	    (sy_call_t *)svr4_sys_fcntl, 0, 0 },	/* 62 = fcntl */
 	{ ns(struct svr4_sys_ulimit_args), 0,
-	    (sy_call_t *)svr4_sys_ulimit },	/* 63 = ulimit */
+	    (sy_call_t *)svr4_sys_ulimit, 0, 0 },	/* 63 = ulimit */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 64 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 64 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 65 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 65 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 66 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 66 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 67 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 67 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 68 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 68 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 69 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 69 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 70 = obsolete advfs */
+	    sys_nosys, 0, 0 },			/* 70 = obsolete advfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 71 = obsolete unadvfs */
+	    sys_nosys, 0, 0 },			/* 71 = obsolete unadvfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 72 = obsolete rmount */
+	    sys_nosys, 0, 0 },			/* 72 = obsolete rmount */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 73 = obsolete rumount */
+	    sys_nosys, 0, 0 },			/* 73 = obsolete rumount */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 74 = obsolete rfstart */
+	    sys_nosys, 0, 0 },			/* 74 = obsolete rfstart */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 75 = obsolete sigret */
+	    sys_nosys, 0, 0 },			/* 75 = obsolete sigret */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 76 = obsolete rdebug */
+	    sys_nosys, 0, 0 },			/* 76 = obsolete rdebug */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 77 = obsolete rfstop */
+	    sys_nosys, 0, 0 },			/* 77 = obsolete rfstop */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 78 = unimplemented rfsys */
+	    sys_nosys, 0, 0 },			/* 78 = unimplemented rfsys */
 	{ ns(struct sys_rmdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rmdir },		/* 79 = rmdir */
+	    (sy_call_t *)sys_rmdir, 0, 0 },		/* 79 = rmdir */
 	{ ns(struct sys_mkdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdir },		/* 80 = mkdir */
+	    (sy_call_t *)sys_mkdir, 0, 0 },		/* 80 = mkdir */
 	{ ns(struct svr4_sys_getdents_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_getdents },	/* 81 = getdents */
+	    (sy_call_t *)svr4_sys_getdents, 0, 0 },	/* 81 = getdents */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 82 = obsolete libattach */
+	    sys_nosys, 0, 0 },			/* 82 = obsolete libattach */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 83 = obsolete libdetach */
+	    sys_nosys, 0, 0 },			/* 83 = obsolete libdetach */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 84 = unimplemented sysfs */
+	    sys_nosys, 0, 0 },			/* 84 = unimplemented sysfs */
 	{ ns(struct svr4_sys_getmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_getmsg },	/* 85 = getmsg */
+	    (sy_call_t *)svr4_sys_getmsg, 0, 0 },	/* 85 = getmsg */
 	{ ns(struct svr4_sys_putmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_putmsg },	/* 86 = putmsg */
+	    (sy_call_t *)svr4_sys_putmsg, 0, 0 },	/* 86 = putmsg */
 	{ ns(struct sys_poll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_poll },		/* 87 = poll */
+	    (sy_call_t *)sys_poll, 0, 0 },		/* 87 = poll */
 	{ ns(struct svr4_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_lstat },	/* 88 = lstat */
+	    (sy_call_t *)svr4_sys_lstat, 0, 0 },	/* 88 = lstat */
 	{ ns(struct sys_symlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlink },		/* 89 = symlink */
+	    (sy_call_t *)sys_symlink, 0, 0 },		/* 89 = symlink */
 	{ ns(struct sys_readlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlink },	/* 90 = readlink */
+	    (sy_call_t *)sys_readlink, 0, 0 },	/* 90 = readlink */
 	{ ns(struct sys_getgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getgroups },	/* 91 = getgroups */
+	    (sy_call_t *)sys_getgroups, 0, 0 },	/* 91 = getgroups */
 	{ ns(struct sys_setgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setgroups },	/* 92 = setgroups */
+	    (sy_call_t *)sys_setgroups, 0, 0 },	/* 92 = setgroups */
 	{ ns(struct sys_fchmod_args), 0,
-	    (sy_call_t *)sys_fchmod },		/* 93 = fchmod */
+	    (sy_call_t *)sys_fchmod, 0, 0 },		/* 93 = fchmod */
 	{ ns(struct sys___posix_fchown_args), 0,
-	    (sy_call_t *)sys___posix_fchown },	/* 94 = fchown */
+	    (sy_call_t *)sys___posix_fchown, 0, 0 },	/* 94 = fchown */
 	{ ns(struct svr4_sys_sigprocmask_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_sigprocmask },/* 95 = sigprocmask */
+	    (sy_call_t *)svr4_sys_sigprocmask, 0, 0 },/* 95 = sigprocmask */
 	{ ns(struct svr4_sys_sigsuspend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_sigsuspend },	/* 96 = sigsuspend */
+	    (sy_call_t *)svr4_sys_sigsuspend, 0, 0 },	/* 96 = sigsuspend */
 	{ ns(struct svr4_sys_sigaltstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_sigaltstack },/* 97 = sigaltstack */
+	    (sy_call_t *)svr4_sys_sigaltstack, 0, 0 },/* 97 = sigaltstack */
 	{ ns(struct svr4_sys_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_sigaction },	/* 98 = sigaction */
+	    (sy_call_t *)svr4_sys_sigaction, 0, 0 },	/* 98 = sigaction */
 	{ ns(struct svr4_sys_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_sigpending },	/* 99 = sigpending */
+	    (sy_call_t *)svr4_sys_sigpending, 0, 0 },	/* 99 = sigpending */
 	{ ns(struct svr4_sys_context_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_context },	/* 100 = context */
+	    (sy_call_t *)svr4_sys_context, 0, 0 },	/* 100 = context */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 101 = unimplemented evsys */
+	    sys_nosys, 0, 0 },			/* 101 = unimplemented evsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 102 = unimplemented evtrapret */
+	    sys_nosys, 0, 0 },			/* 102 = unimplemented evtrapret */
 	{ ns(struct svr4_sys_statvfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_statvfs },	/* 103 = statvfs */
+	    (sy_call_t *)svr4_sys_statvfs, 0, 0 },	/* 103 = statvfs */
 	{ ns(struct svr4_sys_fstatvfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_fstatvfs },	/* 104 = fstatvfs */
+	    (sy_call_t *)svr4_sys_fstatvfs, 0, 0 },	/* 104 = fstatvfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 105 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 105 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 106 = unimplemented nfssvc */
+	    sys_nosys, 0, 0 },			/* 106 = unimplemented nfssvc */
 	{ ns(struct svr4_sys_waitsys_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_waitsys },	/* 107 = waitsys */
+	    (sy_call_t *)svr4_sys_waitsys, 0, 0 },	/* 107 = waitsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 108 = unimplemented sigsendsys */
+	    sys_nosys, 0, 0 },			/* 108 = unimplemented sigsendsys */
 	{ ns(struct svr4_sys_hrtsys_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_hrtsys },	/* 109 = hrtsys */
+	    (sy_call_t *)svr4_sys_hrtsys, 0, 0 },	/* 109 = hrtsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 110 = unimplemented acancel */
+	    sys_nosys, 0, 0 },			/* 110 = unimplemented acancel */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 111 = unimplemented async */
+	    sys_nosys, 0, 0 },			/* 111 = unimplemented async */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 112 = unimplemented priocntlsys */
+	    sys_nosys, 0, 0 },			/* 112 = unimplemented priocntlsys */
 	{ ns(struct svr4_sys_pathconf_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_pathconf },	/* 113 = pathconf */
+	    (sy_call_t *)svr4_sys_pathconf, 0, 0 },	/* 113 = pathconf */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 114 = unimplemented mincore */
+	    sys_nosys, 0, 0 },			/* 114 = unimplemented mincore */
 	{ ns(struct svr4_sys_mmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_mmap },	/* 115 = mmap */
+	    (sy_call_t *)svr4_sys_mmap, 0, 0 },	/* 115 = mmap */
 	{ ns(struct sys_mprotect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mprotect },	/* 116 = mprotect */
+	    (sy_call_t *)sys_mprotect, 0, 0 },	/* 116 = mprotect */
 	{ ns(struct sys_munmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munmap },		/* 117 = munmap */
+	    (sy_call_t *)sys_munmap, 0, 0 },		/* 117 = munmap */
 	{ ns(struct svr4_sys_fpathconf_args), 0,
-	    (sy_call_t *)svr4_sys_fpathconf },	/* 118 = fpathconf */
+	    (sy_call_t *)svr4_sys_fpathconf, 0, 0 },	/* 118 = fpathconf */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_vfork },		/* 119 = vfork */
+	    (sy_call_t *)sys_vfork, 0, 0 },		/* 119 = vfork */
 	{ ns(struct sys_fchdir_args), 0,
-	    (sy_call_t *)sys_fchdir },		/* 120 = fchdir */
+	    (sy_call_t *)sys_fchdir, 0, 0 },		/* 120 = fchdir */
 	{ ns(struct sys_readv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readv },		/* 121 = readv */
+	    (sy_call_t *)sys_readv, 0, 0 },		/* 121 = readv */
 	{ ns(struct sys_writev_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_writev },		/* 122 = writev */
+	    (sy_call_t *)sys_writev, 0, 0 },		/* 122 = writev */
 	{ ns(struct svr4_sys_xstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_xstat },	/* 123 = xstat */
+	    (sy_call_t *)svr4_sys_xstat, 0, 0 },	/* 123 = xstat */
 	{ ns(struct svr4_sys_lxstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_lxstat },	/* 124 = lxstat */
+	    (sy_call_t *)svr4_sys_lxstat, 0, 0 },	/* 124 = lxstat */
 	{ ns(struct svr4_sys_fxstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_fxstat },	/* 125 = fxstat */
+	    (sy_call_t *)svr4_sys_fxstat, 0, 0 },	/* 125 = fxstat */
 	{ ns(struct svr4_sys_xmknod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_xmknod },	/* 126 = xmknod */
+	    (sy_call_t *)svr4_sys_xmknod, 0, 0 },	/* 126 = xmknod */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 127 = unimplemented clocal */
+	    sys_nosys, 0, 0 },			/* 127 = unimplemented clocal */
 	{ ns(struct svr4_sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_setrlimit },	/* 128 = setrlimit */
+	    (sy_call_t *)svr4_sys_setrlimit, 0, 0 },	/* 128 = setrlimit */
 	{ ns(struct svr4_sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_getrlimit },	/* 129 = getrlimit */
+	    (sy_call_t *)svr4_sys_getrlimit, 0, 0 },	/* 129 = getrlimit */
 	{ ns(struct sys___posix_lchown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_lchown },	/* 130 = lchown */
+	    (sy_call_t *)sys___posix_lchown, 0, 0 },	/* 130 = lchown */
 	{ ns(struct svr4_sys_memcntl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_memcntl },	/* 131 = memcntl */
+	    (sy_call_t *)svr4_sys_memcntl, 0, 0 },	/* 131 = memcntl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 132 = unimplemented getpmsg */
+	    sys_nosys, 0, 0 },			/* 132 = unimplemented getpmsg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 133 = unimplemented putpmsg */
+	    sys_nosys, 0, 0 },			/* 133 = unimplemented putpmsg */
 	{ ns(struct sys___posix_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_rename },	/* 134 = rename */
+	    (sy_call_t *)sys___posix_rename, 0, 0 },	/* 134 = rename */
 	{ ns(struct svr4_sys_uname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_uname },	/* 135 = uname */
+	    (sy_call_t *)svr4_sys_uname, 0, 0 },	/* 135 = uname */
 	{ ns(struct sys_setegid_args), 0,
-	    (sy_call_t *)sys_setegid },		/* 136 = setegid */
+	    (sy_call_t *)sys_setegid, 0, 0 },		/* 136 = setegid */
 	{ ns(struct svr4_sys_sysconfig_args), 0,
-	    (sy_call_t *)svr4_sys_sysconfig },	/* 137 = sysconfig */
+	    (sy_call_t *)svr4_sys_sysconfig, 0, 0 },	/* 137 = sysconfig */
 	{ ns(struct compat_50_sys_adjtime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_adjtime },/* 138 = adjtime */
+	    (sy_call_t *)compat_50_sys_adjtime, 0, 0 },/* 138 = adjtime */
 	{ ns(struct svr4_sys_systeminfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_systeminfo },	/* 139 = systeminfo */
+	    (sy_call_t *)svr4_sys_systeminfo, 0, 0 },	/* 139 = systeminfo */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 140 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 140 = unimplemented */
 	{ ns(struct sys_seteuid_args), 0,
-	    (sy_call_t *)sys_seteuid },		/* 141 = seteuid */
+	    (sy_call_t *)sys_seteuid, 0, 0 },		/* 141 = seteuid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 142 = unimplemented vtrace */
+	    sys_nosys, 0, 0 },			/* 142 = unimplemented vtrace */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 143 = fork1 */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 143 = fork1 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 144 = unimplemented sigtimedwait */
+	    sys_nosys, 0, 0 },			/* 144 = unimplemented sigtimedwait */
 	{ ns(struct svr4_sys__lwp_info_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys__lwp_info },	/* 145 = _lwp_info */
+	    (sy_call_t *)svr4_sys__lwp_info, 0, 0 },	/* 145 = _lwp_info */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 146 = unimplemented yield */
+	    sys_nosys, 0, 0 },			/* 146 = unimplemented yield */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 147 = unimplemented lwp_sema_wait */
+	    sys_nosys, 0, 0 },			/* 147 = unimplemented lwp_sema_wait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 148 = unimplemented lwp_sema_post */
+	    sys_nosys, 0, 0 },			/* 148 = unimplemented lwp_sema_post */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 149 = unimplemented lwp_sema_trywait */
+	    sys_nosys, 0, 0 },			/* 149 = unimplemented lwp_sema_trywait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 150 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 150 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 151 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 151 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 152 = unimplemented modctl */
+	    sys_nosys, 0, 0 },			/* 152 = unimplemented modctl */
 	{ ns(struct sys_fchroot_args), 0,
-	    (sy_call_t *)sys_fchroot },		/* 153 = fchroot */
+	    (sy_call_t *)sys_fchroot, 0, 0 },		/* 153 = fchroot */
 	{ ns(struct svr4_sys_utimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_utimes },	/* 154 = utimes */
+	    (sy_call_t *)svr4_sys_utimes, 0, 0 },	/* 154 = utimes */
 	{ 0, 0, 0,
-	    (sy_call_t *)svr4_sys_vhangup },	/* 155 = vhangup */
+	    (sy_call_t *)svr4_sys_vhangup, 0, 0 },	/* 155 = vhangup */
 	{ ns(struct svr4_sys_gettimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_gettimeofday },/* 156 = gettimeofday */
+	    (sy_call_t *)svr4_sys_gettimeofday, 0, 0 },/* 156 = gettimeofday */
 	{ ns(struct compat_50_sys_getitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_getitimer },/* 157 = getitimer */
+	    (sy_call_t *)compat_50_sys_getitimer, 0, 0 },/* 157 = getitimer */
 	{ ns(struct compat_50_sys_setitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_setitimer },/* 158 = setitimer */
+	    (sy_call_t *)compat_50_sys_setitimer, 0, 0 },/* 158 = setitimer */
 	{ ns(struct svr4_sys__lwp_create_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys__lwp_create },/* 159 = _lwp_create */
+	    (sy_call_t *)svr4_sys__lwp_create, 0, 0 },/* 159 = _lwp_create */
 	{ 0, 0, 0,
-	    (sy_call_t *)svr4_sys__lwp_exit },	/* 160 = _lwp_exit */
+	    (sy_call_t *)svr4_sys__lwp_exit, 0, 0 },	/* 160 = _lwp_exit */
 	{ ns(struct svr4_sys__lwp_suspend_args), 0,
-	    (sy_call_t *)svr4_sys__lwp_suspend },/* 161 = _lwp_suspend */
+	    (sy_call_t *)svr4_sys__lwp_suspend, 0, 0 },/* 161 = _lwp_suspend */
 	{ ns(struct svr4_sys__lwp_continue_args), 0,
-	    (sy_call_t *)svr4_sys__lwp_continue },/* 162 = _lwp_continue */
+	    (sy_call_t *)svr4_sys__lwp_continue, 0, 0 },/* 162 = _lwp_continue */
 	{ ns(struct svr4_sys__lwp_kill_args), 0,
-	    (sy_call_t *)svr4_sys__lwp_kill },	/* 163 = _lwp_kill */
+	    (sy_call_t *)svr4_sys__lwp_kill, 0, 0 },	/* 163 = _lwp_kill */
 	{ 0, 0, 0,
-	    (sy_call_t *)svr4_sys__lwp_self },	/* 164 = _lwp_self */
+	    (sy_call_t *)svr4_sys__lwp_self, 0, 0 },	/* 164 = _lwp_self */
 	{ 0, 0, 0,
-	    (sy_call_t *)svr4_sys__lwp_getprivate },/* 165 = _lwp_getprivate */
+	    (sy_call_t *)svr4_sys__lwp_getprivate, 0, 0 },/* 165 = _lwp_getprivate */
 	{ ns(struct svr4_sys__lwp_setprivate_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys__lwp_setprivate },/* 166 = _lwp_setprivate */
+	    (sy_call_t *)svr4_sys__lwp_setprivate, 0, 0 },/* 166 = _lwp_setprivate */
 	{ ns(struct svr4_sys__lwp_wait_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys__lwp_wait },	/* 167 = _lwp_wait */
+	    (sy_call_t *)svr4_sys__lwp_wait, 0, 0 },	/* 167 = _lwp_wait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 168 = unimplemented lwp_mutex_unlock */
+	    sys_nosys, 0, 0 },			/* 168 = unimplemented lwp_mutex_unlock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 169 = unimplemented lwp_mutex_lock */
+	    sys_nosys, 0, 0 },			/* 169 = unimplemented lwp_mutex_lock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 170 = unimplemented lwp_cond_wait */
+	    sys_nosys, 0, 0 },			/* 170 = unimplemented lwp_cond_wait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 171 = unimplemented lwp_cond_signal */
+	    sys_nosys, 0, 0 },			/* 171 = unimplemented lwp_cond_signal */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 172 = unimplemented lwp_cond_broadcast */
+	    sys_nosys, 0, 0 },			/* 172 = unimplemented lwp_cond_broadcast */
 	{ ns(struct svr4_sys_pread_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_pread },	/* 173 = pread */
+	    (sy_call_t *)svr4_sys_pread, 0, 0 },	/* 173 = pread */
 	{ ns(struct svr4_sys_pwrite_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_pwrite },	/* 174 = pwrite */
+	    (sy_call_t *)svr4_sys_pwrite, 0, 0 },	/* 174 = pwrite */
 	{ ns(struct svr4_sys_llseek_args), 0,
-	    (sy_call_t *)svr4_sys_llseek },	/* 175 = llseek */
+	    (sy_call_t *)svr4_sys_llseek, 0, 0 },	/* 175 = llseek */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 176 = unimplemented inst_sync */
+	    sys_nosys, 0, 0 },			/* 176 = unimplemented inst_sync */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 177 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 177 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 178 = unimplemented kaio */
+	    sys_nosys, 0, 0 },			/* 178 = unimplemented kaio */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 179 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 179 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 180 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 180 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 181 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 181 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 182 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 182 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 183 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 183 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 184 = unimplemented tsolsys */
+	    sys_nosys, 0, 0 },			/* 184 = unimplemented tsolsys */
 	{ ns(struct svr4_sys_acl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_acl },	/* 185 = acl */
+	    (sy_call_t *)svr4_sys_acl, 0, 0 },	/* 185 = acl */
 	{ ns(struct svr4_sys_auditsys_args), 0,
-	    (sy_call_t *)svr4_sys_auditsys },	/* 186 = auditsys */
+	    (sy_call_t *)svr4_sys_auditsys, 0, 0 },	/* 186 = auditsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 187 = unimplemented processor_bind */
+	    sys_nosys, 0, 0 },			/* 187 = unimplemented processor_bind */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 188 = unimplemented processor_info */
+	    sys_nosys, 0, 0 },			/* 188 = unimplemented processor_info */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 189 = unimplemented p_online */
+	    sys_nosys, 0, 0 },			/* 189 = unimplemented p_online */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 190 = unimplemented sigqueue */
+	    sys_nosys, 0, 0 },			/* 190 = unimplemented sigqueue */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 191 = unimplemented clock_gettime */
+	    sys_nosys, 0, 0 },			/* 191 = unimplemented clock_gettime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 192 = unimplemented clock_settime */
+	    sys_nosys, 0, 0 },			/* 192 = unimplemented clock_settime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 193 = unimplemented clock_getres */
+	    sys_nosys, 0, 0 },			/* 193 = unimplemented clock_getres */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 194 = unimplemented timer_create */
+	    sys_nosys, 0, 0 },			/* 194 = unimplemented timer_create */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 195 = unimplemented timer_delete */
+	    sys_nosys, 0, 0 },			/* 195 = unimplemented timer_delete */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 196 = unimplemented timer_settime */
+	    sys_nosys, 0, 0 },			/* 196 = unimplemented timer_settime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 197 = unimplemented timer_gettime */
+	    sys_nosys, 0, 0 },			/* 197 = unimplemented timer_gettime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 198 = unimplemented timer_getoverrun */
+	    sys_nosys, 0, 0 },			/* 198 = unimplemented timer_getoverrun */
 	{ ns(struct compat_50_sys_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_50_sys_nanosleep },/* 199 = nanosleep */
+	    (sy_call_t *)compat_50_sys_nanosleep, 0, 0 },/* 199 = nanosleep */
 	{ ns(struct svr4_sys_facl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_facl },	/* 200 = facl */
+	    (sy_call_t *)svr4_sys_facl, 0, 0 },	/* 200 = facl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 201 = unimplemented door */
+	    sys_nosys, 0, 0 },			/* 201 = unimplemented door */
 	{ ns(struct sys_setreuid_args), 0,
-	    (sy_call_t *)sys_setreuid },	/* 202 = setreuid */
+	    (sy_call_t *)sys_setreuid, 0, 0 },	/* 202 = setreuid */
 	{ ns(struct sys_setregid_args), 0,
-	    (sy_call_t *)sys_setregid },	/* 203 = setregid */
+	    (sy_call_t *)sys_setregid, 0, 0 },	/* 203 = setregid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 204 = unimplemented install_utrap */
+	    sys_nosys, 0, 0 },			/* 204 = unimplemented install_utrap */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 205 = unimplemented signotify */
+	    sys_nosys, 0, 0 },			/* 205 = unimplemented signotify */
 	{ ns(struct svr4_sys_schedctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_schedctl },	/* 206 = schedctl */
+	    (sy_call_t *)svr4_sys_schedctl, 0, 0 },	/* 206 = schedctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 207 = unimplemented pset */
+	    sys_nosys, 0, 0 },			/* 207 = unimplemented pset */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 208 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 208 = unimplemented */
 	{ ns(struct svr4_sys_resolvepath_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_resolvepath },/* 209 = resolvepath */
+	    (sy_call_t *)svr4_sys_resolvepath, 0, 0 },/* 209 = resolvepath */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 210 = unimplemented signotifywait */
+	    sys_nosys, 0, 0 },			/* 210 = unimplemented signotifywait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 211 = unimplemented lwp_sigredirect */
+	    sys_nosys, 0, 0 },			/* 211 = unimplemented lwp_sigredirect */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 212 = unimplemented lwp_alarm */
+	    sys_nosys, 0, 0 },			/* 212 = unimplemented lwp_alarm */
 	{ ns(struct svr4_sys_getdents64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_getdents64 },	/* 213 = getdents64 */
+	    (sy_call_t *)svr4_sys_getdents64, 0, 0 },	/* 213 = getdents64 */
 	{ ns(struct svr4_sys_mmap64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_mmap64 },	/* 214 = mmap64 */
+	    (sy_call_t *)svr4_sys_mmap64, 0, 0 },	/* 214 = mmap64 */
 	{ ns(struct svr4_sys_stat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_stat64 },	/* 215 = stat64 */
+	    (sy_call_t *)svr4_sys_stat64, 0, 0 },	/* 215 = stat64 */
 	{ ns(struct svr4_sys_lstat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_lstat64 },	/* 216 = lstat64 */
+	    (sy_call_t *)svr4_sys_lstat64, 0, 0 },	/* 216 = lstat64 */
 	{ ns(struct svr4_sys_fstat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_fstat64 },	/* 217 = fstat64 */
+	    (sy_call_t *)svr4_sys_fstat64, 0, 0 },	/* 217 = fstat64 */
 	{ ns(struct svr4_sys_statvfs64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_statvfs64 },	/* 218 = statvfs64 */
+	    (sy_call_t *)svr4_sys_statvfs64, 0, 0 },	/* 218 = statvfs64 */
 	{ ns(struct svr4_sys_fstatvfs64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_fstatvfs64 },	/* 219 = fstatvfs64 */
+	    (sy_call_t *)svr4_sys_fstatvfs64, 0, 0 },	/* 219 = fstatvfs64 */
 	{ ns(struct svr4_sys_setrlimit64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_setrlimit64 },/* 220 = setrlimit64 */
+	    (sy_call_t *)svr4_sys_setrlimit64, 0, 0 },/* 220 = setrlimit64 */
 	{ ns(struct svr4_sys_getrlimit64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_getrlimit64 },/* 221 = getrlimit64 */
+	    (sy_call_t *)svr4_sys_getrlimit64, 0, 0 },/* 221 = getrlimit64 */
 	{ ns(struct svr4_sys_pread64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_pread64 },	/* 222 = pread64 */
+	    (sy_call_t *)svr4_sys_pread64, 0, 0 },	/* 222 = pread64 */
 	{ ns(struct svr4_sys_pwrite64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_pwrite64 },	/* 223 = pwrite64 */
+	    (sy_call_t *)svr4_sys_pwrite64, 0, 0 },	/* 223 = pwrite64 */
 	{ ns(struct svr4_sys_creat64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_creat64 },	/* 224 = creat64 */
+	    (sy_call_t *)svr4_sys_creat64, 0, 0 },	/* 224 = creat64 */
 	{ ns(struct svr4_sys_open64_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_sys_open64 },	/* 225 = open64 */
+	    (sy_call_t *)svr4_sys_open64, 0, 0 },	/* 225 = open64 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 226 = unimplemented rpcsys */
+	    sys_nosys, 0, 0 },			/* 226 = unimplemented rpcsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 227 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 227 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 228 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 228 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 229 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 229 = unimplemented */
 	{ ns(struct svr4_sys_socket_args), 0,
-	    (sy_call_t *)svr4_sys_socket },	/* 230 = socket */
+	    (sy_call_t *)svr4_sys_socket, 0, 0 },	/* 230 = socket */
 	{ ns(struct sys_socketpair_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_socketpair },	/* 231 = socketpair */
+	    (sy_call_t *)sys_socketpair, 0, 0 },	/* 231 = socketpair */
 	{ ns(struct sys_bind_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_bind },		/* 232 = bind */
+	    (sy_call_t *)sys_bind, 0, 0 },		/* 232 = bind */
 	{ ns(struct sys_listen_args), 0,
-	    (sy_call_t *)sys_listen },		/* 233 = listen */
+	    (sy_call_t *)sys_listen, 0, 0 },		/* 233 = listen */
 	{ ns(struct compat_43_sys_accept_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_accept },/* 234 = accept */
+	    (sy_call_t *)compat_43_sys_accept, 0, 0 },/* 234 = accept */
 	{ ns(struct sys_connect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_connect },		/* 235 = connect */
+	    (sy_call_t *)sys_connect, 0, 0 },		/* 235 = connect */
 	{ ns(struct sys_shutdown_args), 0,
-	    (sy_call_t *)sys_shutdown },	/* 236 = shutdown */
+	    (sy_call_t *)sys_shutdown, 0, 0 },	/* 236 = shutdown */
 	{ ns(struct compat_43_sys_recv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recv },	/* 237 = recv */
+	    (sy_call_t *)compat_43_sys_recv, 0, 0 },	/* 237 = recv */
 	{ ns(struct compat_43_sys_recvfrom_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recvfrom },/* 238 = recvfrom */
+	    (sy_call_t *)compat_43_sys_recvfrom, 0, 0 },/* 238 = recvfrom */
 	{ ns(struct compat_43_sys_recvmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recvmsg },/* 239 = recvmsg */
+	    (sy_call_t *)compat_43_sys_recvmsg, 0, 0 },/* 239 = recvmsg */
 	{ ns(struct compat_43_sys_send_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_send },	/* 240 = send */
+	    (sy_call_t *)compat_43_sys_send, 0, 0 },	/* 240 = send */
 	{ ns(struct compat_43_sys_sendmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sendmsg },/* 241 = sendmsg */
+	    (sy_call_t *)compat_43_sys_sendmsg, 0, 0 },/* 241 = sendmsg */
 	{ ns(struct sys_sendto_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_sendto },		/* 242 = sendto */
+	    (sy_call_t *)sys_sendto, 0, 0 },		/* 242 = sendto */
 	{ ns(struct compat_43_sys_getpeername_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getpeername },/* 243 = getpeername */
+	    (sy_call_t *)compat_43_sys_getpeername, 0, 0 },/* 243 = getpeername */
 	{ ns(struct compat_43_sys_getsockname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getsockname },/* 244 = getsockname */
+	    (sy_call_t *)compat_43_sys_getsockname, 0, 0 },/* 244 = getsockname */
 	{ ns(struct sys_getsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getsockopt },	/* 245 = getsockopt */
+	    (sy_call_t *)sys_getsockopt, 0, 0 },	/* 245 = getsockopt */
 	{ ns(struct sys_setsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setsockopt },	/* 246 = setsockopt */
+	    (sy_call_t *)sys_setsockopt, 0, 0 },	/* 246 = setsockopt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 247 = unimplemented sockconfig */
+	    sys_nosys, 0, 0 },			/* 247 = unimplemented sockconfig */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 248 = unimplemented sys_ntp_gettime */
+	    sys_nosys, 0, 0 },			/* 248 = unimplemented sys_ntp_gettime */
 #if defined(NTP) || !defined(_KERNEL)
 	{ ns(struct sys_ntp_adjtime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_ntp_adjtime },	/* 249 = ntp_adjtime */
+	    (sy_call_t *)sys_ntp_adjtime, 0, 0 },	/* 249 = ntp_adjtime */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 249 = excluded ntp_adjtime */
+	    sys_nosys, 0, 0 },			/* 249 = excluded ntp_adjtime */
 #endif
 	{ 0, 0, 0,
-	    sys_nosys },			/* 250 = unimplemented lwp_mutex_unlock */
+	    sys_nosys, 0, 0 },			/* 250 = unimplemented lwp_mutex_unlock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 251 = unimplemented lwp_mutex_trylock */
+	    sys_nosys, 0, 0 },			/* 251 = unimplemented lwp_mutex_trylock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 252 = unimplemented lwp_mutex_init */
+	    sys_nosys, 0, 0 },			/* 252 = unimplemented lwp_mutex_init */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 253 = unimplemented cladm */
+	    sys_nosys, 0, 0 },			/* 253 = unimplemented cladm */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 254 = unimplemented lwp_sigtimedwait */
+	    sys_nosys, 0, 0 },			/* 254 = unimplemented lwp_sigtimedwait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 255 = unimplemented umount2 */
+	    sys_nosys, 0, 0 },			/* 255 = unimplemented umount2 */
 };
diff --git a/sys/compat/svr4_32/svr4_32_syscall.h b/sys/compat/svr4_32/svr4_32_syscall.h
index 57e0d35..5bc96c4 100644
--- a/sys/compat/svr4_32/svr4_32_syscall.h
+++ b/sys/compat/svr4_32/svr4_32_syscall.h
@@ -1,4 +1,4 @@
-/* $NetBSD: svr4_32_syscall.h,v 1.22 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
diff --git a/sys/compat/svr4_32/svr4_32_syscallargs.h b/sys/compat/svr4_32/svr4_32_syscallargs.h
index a748f89..2f68620 100644
--- a/sys/compat/svr4_32/svr4_32_syscallargs.h
+++ b/sys/compat/svr4_32/svr4_32_syscallargs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: svr4_32_syscallargs.h,v 1.22 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
diff --git a/sys/compat/svr4_32/svr4_32_syscalls.c b/sys/compat/svr4_32/svr4_32_syscalls.c
index 10b3b41..0918a02 100644
--- a/sys/compat/svr4_32/svr4_32_syscalls.c
+++ b/sys/compat/svr4_32/svr4_32_syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: svr4_32_syscalls.c,v 1.22 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: svr4_32_syscalls.c,v 1.22 2013/11/07 19:39:58 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #if defined(_KERNEL_OPT)
@@ -32,6 +32,8 @@ __KERNEL_RCSID(0, "$NetBSD: svr4_32_syscalls.c,v 1.22 2013/11/07 19:39:58 njoly
 #include <compat/svr4_32/svr4_32_resource.h>
 #include <compat/svr4_32/svr4_32_acl.h>
 #include <compat/svr4_32/svr4_32_schedctl.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const svr4_32_syscallnames[] = {
@@ -312,3 +314,284 @@ const char *const svr4_32_syscallnames[] = {
 	/* 254 */	"#254 (unimplemented lwp_sigtimedwait)",
 	/* 255 */	"#255 (unimplemented umount2)",
 };
+
+
+/* libc style syscall names */
+const char *const altsvr4_32_syscallnames[] = {
+	/*   0 */	"nosys",
+	/*   1 */	"exit",
+	/*   2 */	NULL, /* fork */
+	/*   3 */	"read",
+	/*   4 */	"write",
+	/*   5 */	NULL, /* open */
+	/*   6 */	"close",
+	/*   7 */	NULL, /* wait */
+	/*   8 */	NULL, /* creat */
+	/*   9 */	"link",
+	/*  10 */	"unlink",
+	/*  11 */	NULL, /* execv */
+	/*  12 */	"chdir",
+	/*  13 */	NULL, /* time */
+	/*  14 */	NULL, /* mknod */
+	/*  15 */	"chmod",
+	/*  16 */	"__posix_chown",
+	/*  17 */	NULL, /* break */
+	/*  18 */	NULL, /* stat */
+	/*  19 */	"olseek",
+	/*  20 */	NULL, /* getpid */
+	/*  21 */	NULL, /* unimplemented old_mount */
+	/*  22 */	NULL, /* unimplemented System V umount */
+	/*  23 */	"setuid",
+	/*  24 */	NULL, /* getuid_with_euid */
+	/*  25 */	NULL, /* unimplemented stime */
+	/*  26 */	NULL, /* unimplemented pcsample */
+	/*  27 */	NULL, /* alarm */
+	/*  28 */	NULL, /* fstat */
+	/*  29 */	NULL, /* pause */
+	/*  30 */	NULL, /* utime */
+	/*  31 */	NULL, /* unimplemented was stty */
+	/*  32 */	NULL, /* unimplemented was gtty */
+	/*  33 */	NULL, /* access */
+	/*  34 */	NULL, /* nice */
+	/*  35 */	NULL, /* unimplemented statfs */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	NULL, /* kill */
+	/*  38 */	NULL, /* unimplemented fstatfs */
+	/*  39 */	NULL, /* pgrpsys */
+	/*  40 */	NULL, /* unimplemented xenix */
+	/*  41 */	"dup",
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* times */
+	/*  44 */	NULL, /* unimplemented profil */
+	/*  45 */	NULL, /* unimplemented plock */
+	/*  46 */	"setgid",
+	/*  47 */	NULL, /* getgid_with_egid */
+	/*  48 */	NULL, /* signal */
+#ifdef SYSVMSG
+	/*  49 */	NULL, /* msgsys */
+#else
+	/*  49 */	NULL, /* unimplemented msgsys */
+#endif
+	/*  50 */	NULL, /* sysarch */
+	/*  51 */	NULL, /* unimplemented acct */
+#ifdef SYSVSHM
+	/*  52 */	NULL, /* shmsys */
+#else
+	/*  52 */	NULL, /* unimplemented shmsys */
+#endif
+#ifdef SYSVSEM
+	/*  53 */	NULL, /* semsys */
+#else
+	/*  53 */	NULL, /* unimplemented semsys */
+#endif
+	/*  54 */	NULL, /* ioctl */
+	/*  55 */	NULL, /* unimplemented uadmin */
+	/*  56 */	NULL, /* unimplemented exch */
+	/*  57 */	NULL, /* utssys */
+	/*  58 */	"fsync",
+	/*  59 */	"execve",
+	/*  60 */	"umask",
+	/*  61 */	"chroot",
+	/*  62 */	NULL, /* fcntl */
+	/*  63 */	NULL, /* ulimit */
+	/*  64 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  65 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  66 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  67 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  68 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  69 */	NULL, /* unimplemented reserved for unix/pc */
+	/*  70 */	NULL, /* obsolete advfs */
+	/*  71 */	NULL, /* obsolete unadvfs */
+	/*  72 */	NULL, /* obsolete rmount */
+	/*  73 */	NULL, /* obsolete rumount */
+	/*  74 */	NULL, /* obsolete rfstart */
+	/*  75 */	NULL, /* obsolete sigret */
+	/*  76 */	NULL, /* obsolete rdebug */
+	/*  77 */	NULL, /* obsolete rfstop */
+	/*  78 */	NULL, /* unimplemented rfsys */
+	/*  79 */	"rmdir",
+	/*  80 */	"mkdir",
+	/*  81 */	NULL, /* getdents */
+	/*  82 */	NULL, /* obsolete libattach */
+	/*  83 */	NULL, /* obsolete libdetach */
+	/*  84 */	NULL, /* unimplemented sysfs */
+	/*  85 */	NULL, /* getmsg */
+	/*  86 */	NULL, /* putmsg */
+	/*  87 */	"poll",
+	/*  88 */	NULL, /* lstat */
+	/*  89 */	"symlink",
+	/*  90 */	"readlink",
+	/*  91 */	"getgroups",
+	/*  92 */	"setgroups",
+	/*  93 */	"fchmod",
+	/*  94 */	"__posix_fchown",
+	/*  95 */	NULL, /* sigprocmask */
+	/*  96 */	NULL, /* sigsuspend */
+	/*  97 */	NULL, /* sigaltstack */
+	/*  98 */	NULL, /* sigaction */
+	/*  99 */	NULL, /* sigpending */
+	/* 100 */	NULL, /* context */
+	/* 101 */	NULL, /* unimplemented evsys */
+	/* 102 */	NULL, /* unimplemented evtrapret */
+	/* 103 */	NULL, /* statvfs */
+	/* 104 */	NULL, /* fstatvfs */
+	/* 105 */	NULL, /* unimplemented getloadavg */
+	/* 106 */	NULL, /* unimplemented nfssvc */
+	/* 107 */	NULL, /* waitsys */
+	/* 108 */	NULL, /* unimplemented sigsendsys */
+	/* 109 */	NULL, /* hrtsys */
+	/* 110 */	NULL, /* unimplemented acancel */
+	/* 111 */	NULL, /* unimplemented async */
+	/* 112 */	NULL, /* unimplemented priocntlsys */
+	/* 113 */	NULL, /* pathconf */
+	/* 114 */	NULL, /* unimplemented mincore */
+	/* 115 */	NULL, /* mmap */
+	/* 116 */	"mprotect",
+	/* 117 */	"munmap",
+	/* 118 */	NULL, /* fpathconf */
+	/* 119 */	NULL, /* vfork */
+	/* 120 */	"fchdir",
+	/* 121 */	"readv",
+	/* 122 */	"writev",
+	/* 123 */	NULL, /* xstat */
+	/* 124 */	NULL, /* lxstat */
+	/* 125 */	NULL, /* fxstat */
+	/* 126 */	NULL, /* xmknod */
+	/* 127 */	NULL, /* unimplemented clocal */
+	/* 128 */	NULL, /* setrlimit */
+	/* 129 */	NULL, /* getrlimit */
+	/* 130 */	NULL, /* lchown */
+	/* 131 */	NULL, /* memcntl */
+	/* 132 */	NULL, /* unimplemented getpmsg */
+	/* 133 */	NULL, /* unimplemented putpmsg */
+	/* 134 */	"__posix_rename",
+	/* 135 */	NULL, /* uname */
+	/* 136 */	"setegid",
+	/* 137 */	NULL, /* sysconfig */
+	/* 138 */	"adjtime",
+	/* 139 */	NULL, /* systeminfo */
+	/* 140 */	NULL, /* unimplemented */
+	/* 141 */	"seteuid",
+	/* 142 */	NULL, /* unimplemented vtrace */
+	/* 143 */	"fork",
+	/* 144 */	NULL, /* unimplemented sigtimedwait */
+	/* 145 */	NULL, /* _lwp_info */
+	/* 146 */	NULL, /* unimplemented yield */
+	/* 147 */	NULL, /* unimplemented lwp_sema_wait */
+	/* 148 */	NULL, /* unimplemented lwp_sema_post */
+	/* 149 */	NULL, /* unimplemented lwp_sema_trywait */
+	/* 150 */	NULL, /* unimplemented */
+	/* 151 */	NULL, /* unimplemented corectl */
+	/* 152 */	NULL, /* unimplemented modctl */
+	/* 153 */	"fchroot",
+	/* 154 */	NULL, /* utimes */
+	/* 155 */	NULL, /* vhangup */
+	/* 156 */	NULL, /* gettimeofday */
+	/* 157 */	"getitimer",
+	/* 158 */	"setitimer",
+	/* 159 */	NULL, /* _lwp_create */
+	/* 160 */	NULL, /* _lwp_exit */
+	/* 161 */	NULL, /* _lwp_suspend */
+	/* 162 */	NULL, /* _lwp_continue */
+	/* 163 */	NULL, /* _lwp_kill */
+	/* 164 */	NULL, /* _lwp_self */
+	/* 165 */	NULL, /* _lwp_getprivate */
+	/* 166 */	NULL, /* _lwp_setprivate */
+	/* 167 */	NULL, /* _lwp_wait */
+	/* 168 */	NULL, /* unimplemented lwp_mutex_wakeup */
+	/* 169 */	NULL, /* unimplemented lwp_mutex_lock */
+	/* 170 */	NULL, /* unimplemented lwp_cond_wait */
+	/* 171 */	NULL, /* unimplemented lwp_cond_signal */
+	/* 172 */	NULL, /* unimplemented lwp_cond_broadcast */
+	/* 173 */	NULL, /* pread */
+	/* 174 */	NULL, /* pwrite */
+	/* 175 */	NULL, /* llseek */
+	/* 176 */	NULL, /* unimplemented inst_sync */
+	/* 177 */	NULL, /* unimplemented srmlimitsys */
+	/* 178 */	NULL, /* unimplemented kaio */
+	/* 179 */	NULL, /* unimplemented cpc */
+	/* 180 */	NULL, /* unimplemented */
+	/* 181 */	NULL, /* unimplemented */
+	/* 182 */	NULL, /* unimplemented */
+	/* 183 */	NULL, /* unimplemented */
+	/* 184 */	NULL, /* unimplemented tsolsys */
+	/* 185 */	NULL, /* acl */
+	/* 186 */	NULL, /* auditsys */
+	/* 187 */	NULL, /* unimplemented processor_bind */
+	/* 188 */	NULL, /* unimplemented processor_info */
+	/* 189 */	NULL, /* unimplemented p_online */
+	/* 190 */	NULL, /* unimplemented sigqueue */
+	/* 191 */	NULL, /* unimplemented clock_gettime */
+	/* 192 */	NULL, /* unimplemented clock_settime */
+	/* 193 */	NULL, /* unimplemented clock_getres */
+	/* 194 */	NULL, /* unimplemented timer_create */
+	/* 195 */	NULL, /* unimplemented timer_delete */
+	/* 196 */	NULL, /* unimplemented timer_settime */
+	/* 197 */	NULL, /* unimplemented timer_gettime */
+	/* 198 */	NULL, /* unimplemented timer_getoverrun */
+	/* 199 */	"nanosleep",
+	/* 200 */	NULL, /* facl */
+	/* 201 */	NULL, /* unimplemented door */
+	/* 202 */	"setreuid",
+	/* 203 */	"setregid",
+	/* 204 */	NULL, /* unimplemented install_utrap */
+	/* 205 */	NULL, /* unimplemented signotify */
+	/* 206 */	NULL, /* schedctl */
+	/* 207 */	NULL, /* unimplemented pset */
+	/* 208 */	NULL, /* unimplemented sparc_utrap_install */
+	/* 209 */	NULL, /* resolvepath */
+	/* 210 */	NULL, /* unimplemented signotifywait */
+	/* 211 */	NULL, /* unimplemented lwp_sigredirect */
+	/* 212 */	NULL, /* unimplemented lwp_alarm */
+	/* 213 */	NULL, /* getdents64 */
+	/* 214 */	NULL, /* mmap64 */
+	/* 215 */	NULL, /* stat64 */
+	/* 216 */	NULL, /* lstat64 */
+	/* 217 */	NULL, /* fstat64 */
+	/* 218 */	NULL, /* statvfs64 */
+	/* 219 */	NULL, /* fstatvfs64 */
+	/* 220 */	NULL, /* setrlimit64 */
+	/* 221 */	NULL, /* getrlimit64 */
+	/* 222 */	NULL, /* pread64 */
+	/* 223 */	NULL, /* pwrite64 */
+#define svr4_32_sys_creat64 svr4_32_sys_creat
+#define svr4_32_sys_creat64_args svr4_32_sys_creat_args
+	/* 224 */	NULL, /* creat64 */
+#define svr4_32_sys_open64 svr4_32_sys_open
+#define svr4_32_sys_open64_args svr4_32_sys_open_args
+	/* 225 */	NULL, /* open64 */
+	/* 226 */	NULL, /* unimplemented rpcsys */
+	/* 227 */	NULL, /* unimplemented */
+	/* 228 */	NULL, /* unimplemented */
+	/* 229 */	NULL, /* unimplemented */
+	/* 230 */	NULL, /* socket */
+	/* 231 */	"socketpair",
+	/* 232 */	"bind",
+	/* 233 */	"listen",
+	/* 234 */	"oaccept",
+	/* 235 */	"connect",
+	/* 236 */	"shutdown",
+	/* 237 */	"orecv",
+	/* 238 */	"orecvfrom",
+	/* 239 */	"orecvmsg",
+	/* 240 */	"osend",
+	/* 241 */	"osendmsg",
+	/* 242 */	"sendto",
+	/* 243 */	"ogetpeername",
+	/* 244 */	"ogetsockname",
+	/* 245 */	"getsockopt",
+	/* 246 */	"setsockopt",
+	/* 247 */	NULL, /* unimplemented sockconfig */
+	/* 248 */	NULL, /* unimplemented netbsd32_ntp_gettime */
+#if defined(NTP) || !defined(_KERNEL)
+	/* 249 */	"ntp_adjtime",
+#else
+	/* 249 */	NULL, /* excluded ntp_adjtime */
+#endif
+	/* 250 */	NULL, /* unimplemented lwp_mutex_unlock */
+	/* 251 */	NULL, /* unimplemented lwp_mutex_trylock */
+	/* 252 */	NULL, /* unimplemented lwp_mutex_init */
+	/* 253 */	NULL, /* unimplemented cladm */
+	/* 254 */	NULL, /* unimplemented lwp_sigtimedwait */
+	/* 255 */	NULL, /* unimplemented umount2 */
+};
diff --git a/sys/compat/svr4_32/svr4_32_sysent.c b/sys/compat/svr4_32/svr4_32_sysent.c
index 2913eb8..cf10591 100644
--- a/sys/compat/svr4_32/svr4_32_sysent.c
+++ b/sys/compat/svr4_32/svr4_32_sysent.c
@@ -1,4 +1,4 @@
-/* $NetBSD: svr4_32_sysent.c,v 1.23 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: svr4_32_sysent.c,v 1.23 2013/11/07 19:39:58 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ntp.h"
@@ -38,539 +38,539 @@ __KERNEL_RCSID(0, "$NetBSD: svr4_32_sysent.c,v 1.23 2013/11/07 19:39:58 njoly Ex
 
 struct sysent svr4_32_sysent[] = {
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_nosys },		/* 0 = syscall */
+	    (sy_call_t *)sys_nosys, 0, 0 },		/* 0 = syscall */
 	{ ns(struct netbsd32_exit_args), 0,
-	    (sy_call_t *)netbsd32_exit },	/* 1 = netbsd32_exit */
+	    (sy_call_t *)netbsd32_exit, 0, 0 },	/* 1 = netbsd32_exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct netbsd32_read_args), 0,
-	    (sy_call_t *)netbsd32_read },	/* 3 = netbsd32_read */
+	    (sy_call_t *)netbsd32_read, 0, 0 },	/* 3 = netbsd32_read */
 	{ ns(struct netbsd32_write_args), 0,
-	    (sy_call_t *)netbsd32_write },	/* 4 = netbsd32_write */
+	    (sy_call_t *)netbsd32_write, 0, 0 },	/* 4 = netbsd32_write */
 	{ ns(struct svr4_32_sys_open_args), 0,
-	    (sy_call_t *)svr4_32_sys_open },	/* 5 = open */
+	    (sy_call_t *)svr4_32_sys_open, 0, 0 },	/* 5 = open */
 	{ ns(struct netbsd32_close_args), 0,
-	    (sy_call_t *)netbsd32_close },	/* 6 = netbsd32_close */
+	    (sy_call_t *)netbsd32_close, 0, 0 },	/* 6 = netbsd32_close */
 	{ ns(struct svr4_32_sys_wait_args), 0,
-	    (sy_call_t *)svr4_32_sys_wait },	/* 7 = wait */
+	    (sy_call_t *)svr4_32_sys_wait, 0, 0 },	/* 7 = wait */
 	{ ns(struct svr4_32_sys_creat_args), 0,
-	    (sy_call_t *)svr4_32_sys_creat },	/* 8 = creat */
+	    (sy_call_t *)svr4_32_sys_creat, 0, 0 },	/* 8 = creat */
 	{ ns(struct netbsd32_link_args), 0,
-	    (sy_call_t *)netbsd32_link },	/* 9 = netbsd32_link */
+	    (sy_call_t *)netbsd32_link, 0, 0 },	/* 9 = netbsd32_link */
 	{ ns(struct netbsd32_unlink_args), 0,
-	    (sy_call_t *)netbsd32_unlink },	/* 10 = netbsd32_unlink */
+	    (sy_call_t *)netbsd32_unlink, 0, 0 },	/* 10 = netbsd32_unlink */
 	{ ns(struct svr4_32_sys_execv_args), 0,
-	    (sy_call_t *)svr4_32_sys_execv },	/* 11 = execv */
+	    (sy_call_t *)svr4_32_sys_execv, 0, 0 },	/* 11 = execv */
 	{ ns(struct netbsd32_chdir_args), 0,
-	    (sy_call_t *)netbsd32_chdir },	/* 12 = netbsd32_chdir */
+	    (sy_call_t *)netbsd32_chdir, 0, 0 },	/* 12 = netbsd32_chdir */
 	{ ns(struct svr4_32_sys_time_args), 0,
-	    (sy_call_t *)svr4_32_sys_time },	/* 13 = time */
+	    (sy_call_t *)svr4_32_sys_time, 0, 0 },	/* 13 = time */
 	{ ns(struct svr4_32_sys_mknod_args), 0,
-	    (sy_call_t *)svr4_32_sys_mknod },	/* 14 = mknod */
+	    (sy_call_t *)svr4_32_sys_mknod, 0, 0 },	/* 14 = mknod */
 	{ ns(struct netbsd32_chmod_args), 0,
-	    (sy_call_t *)netbsd32_chmod },	/* 15 = netbsd32_chmod */
+	    (sy_call_t *)netbsd32_chmod, 0, 0 },	/* 15 = netbsd32_chmod */
 	{ ns(struct netbsd32___posix_chown_args), 0,
-	    (sy_call_t *)netbsd32___posix_chown },/* 16 = chown */
+	    (sy_call_t *)netbsd32___posix_chown, 0, 0 },/* 16 = chown */
 	{ ns(struct svr4_32_sys_break_args), 0,
-	    (sy_call_t *)svr4_32_sys_break },	/* 17 = break */
+	    (sy_call_t *)svr4_32_sys_break, 0, 0 },	/* 17 = break */
 	{ ns(struct svr4_32_sys_stat_args), 0,
-	    (sy_call_t *)svr4_32_sys_stat },	/* 18 = stat */
+	    (sy_call_t *)svr4_32_sys_stat, 0, 0 },	/* 18 = stat */
 	{ ns(struct compat_43_netbsd32_olseek_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_olseek },/* 19 = compat_43_netbsd32_olseek */
+	    (sy_call_t *)compat_43_netbsd32_olseek, 0, 0 },/* 19 = compat_43_netbsd32_olseek */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid },		/* 20 = getpid */
+	    (sy_call_t *)sys_getpid, 0, 0 },		/* 20 = getpid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 21 = unimplemented old_mount */
+	    sys_nosys, 0, 0 },			/* 21 = unimplemented old_mount */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 22 = unimplemented System V umount */
+	    sys_nosys, 0, 0 },			/* 22 = unimplemented System V umount */
 	{ ns(struct netbsd32_setuid_args), 0,
-	    (sy_call_t *)netbsd32_setuid },	/* 23 = netbsd32_setuid */
+	    (sy_call_t *)netbsd32_setuid, 0, 0 },	/* 23 = netbsd32_setuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid_with_euid },/* 24 = getuid_with_euid */
+	    (sy_call_t *)sys_getuid_with_euid, 0, 0 },/* 24 = getuid_with_euid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 25 = unimplemented stime */
+	    sys_nosys, 0, 0 },			/* 25 = unimplemented stime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 26 = unimplemented pcsample */
+	    sys_nosys, 0, 0 },			/* 26 = unimplemented pcsample */
 	{ ns(struct svr4_32_sys_alarm_args), 0,
-	    (sy_call_t *)svr4_32_sys_alarm },	/* 27 = alarm */
+	    (sy_call_t *)svr4_32_sys_alarm, 0, 0 },	/* 27 = alarm */
 	{ ns(struct svr4_32_sys_fstat_args), 0,
-	    (sy_call_t *)svr4_32_sys_fstat },	/* 28 = fstat */
+	    (sy_call_t *)svr4_32_sys_fstat, 0, 0 },	/* 28 = fstat */
 	{ 0, 0, 0,
-	    (sy_call_t *)svr4_32_sys_pause },	/* 29 = pause */
+	    (sy_call_t *)svr4_32_sys_pause, 0, 0 },	/* 29 = pause */
 	{ ns(struct svr4_32_sys_utime_args), 0,
-	    (sy_call_t *)svr4_32_sys_utime },	/* 30 = utime */
+	    (sy_call_t *)svr4_32_sys_utime, 0, 0 },	/* 30 = utime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 31 = unimplemented was stty */
+	    sys_nosys, 0, 0 },			/* 31 = unimplemented was stty */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 32 = unimplemented was gtty */
+	    sys_nosys, 0, 0 },			/* 32 = unimplemented was gtty */
 	{ ns(struct svr4_32_sys_access_args), 0,
-	    (sy_call_t *)svr4_32_sys_access },	/* 33 = access */
+	    (sy_call_t *)svr4_32_sys_access, 0, 0 },	/* 33 = access */
 	{ ns(struct svr4_32_sys_nice_args), 0,
-	    (sy_call_t *)svr4_32_sys_nice },	/* 34 = nice */
+	    (sy_call_t *)svr4_32_sys_nice, 0, 0 },	/* 34 = nice */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 35 = unimplemented statfs */
+	    sys_nosys, 0, 0 },			/* 35 = unimplemented statfs */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct svr4_32_sys_kill_args), 0,
-	    (sy_call_t *)svr4_32_sys_kill },	/* 37 = kill */
+	    (sy_call_t *)svr4_32_sys_kill, 0, 0 },	/* 37 = kill */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 38 = unimplemented fstatfs */
+	    sys_nosys, 0, 0 },			/* 38 = unimplemented fstatfs */
 	{ ns(struct svr4_32_sys_pgrpsys_args), 0,
-	    (sy_call_t *)svr4_32_sys_pgrpsys },	/* 39 = pgrpsys */
+	    (sy_call_t *)svr4_32_sys_pgrpsys, 0, 0 },	/* 39 = pgrpsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 40 = unimplemented xenix */
+	    sys_nosys, 0, 0 },			/* 40 = unimplemented xenix */
 	{ ns(struct netbsd32_dup_args), 0,
-	    (sy_call_t *)netbsd32_dup },	/* 41 = netbsd32_dup */
+	    (sy_call_t *)netbsd32_dup, 0, 0 },	/* 41 = netbsd32_dup */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_pipe },		/* 42 = pipe */
+	    (sy_call_t *)sys_pipe, 0, 0 },		/* 42 = pipe */
 	{ ns(struct svr4_32_sys_times_args), 0,
-	    (sy_call_t *)svr4_32_sys_times },	/* 43 = times */
+	    (sy_call_t *)svr4_32_sys_times, 0, 0 },	/* 43 = times */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 44 = unimplemented profil */
+	    sys_nosys, 0, 0 },			/* 44 = unimplemented profil */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 45 = unimplemented plock */
+	    sys_nosys, 0, 0 },			/* 45 = unimplemented plock */
 	{ ns(struct netbsd32_setgid_args), 0,
-	    (sy_call_t *)netbsd32_setgid },	/* 46 = netbsd32_setgid */
+	    (sy_call_t *)netbsd32_setgid, 0, 0 },	/* 46 = netbsd32_setgid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid_with_egid },/* 47 = getgid_with_egid */
+	    (sy_call_t *)sys_getgid_with_egid, 0, 0 },/* 47 = getgid_with_egid */
 	{ ns(struct svr4_32_sys_signal_args), 0,
-	    (sy_call_t *)svr4_32_sys_signal },	/* 48 = signal */
+	    (sy_call_t *)svr4_32_sys_signal, 0, 0 },	/* 48 = signal */
 #ifdef SYSVMSG
 	{ ns(struct svr4_32_sys_msgsys_args), 0,
-	    (sy_call_t *)svr4_32_sys_msgsys },	/* 49 = msgsys */
+	    (sy_call_t *)svr4_32_sys_msgsys, 0, 0 },	/* 49 = msgsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 49 = unimplemented msgsys */
+	    sys_nosys, 0, 0 },			/* 49 = unimplemented msgsys */
 #endif
 	{ ns(struct svr4_32_sys_sysarch_args), 0,
-	    (sy_call_t *)svr4_32_sys_sysarch },	/* 50 = sysarch */
+	    (sy_call_t *)svr4_32_sys_sysarch, 0, 0 },	/* 50 = sysarch */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 51 = unimplemented acct */
+	    sys_nosys, 0, 0 },			/* 51 = unimplemented acct */
 #ifdef SYSVSHM
 	{ ns(struct svr4_32_sys_shmsys_args), 0,
-	    (sy_call_t *)svr4_32_sys_shmsys },	/* 52 = shmsys */
+	    (sy_call_t *)svr4_32_sys_shmsys, 0, 0 },	/* 52 = shmsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 52 = unimplemented shmsys */
+	    sys_nosys, 0, 0 },			/* 52 = unimplemented shmsys */
 #endif
 #ifdef SYSVSEM
 	{ ns(struct svr4_32_sys_semsys_args), 0,
-	    (sy_call_t *)svr4_32_sys_semsys },	/* 53 = semsys */
+	    (sy_call_t *)svr4_32_sys_semsys, 0, 0 },	/* 53 = semsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 53 = unimplemented semsys */
+	    sys_nosys, 0, 0 },			/* 53 = unimplemented semsys */
 #endif
 	{ ns(struct svr4_32_sys_ioctl_args), 0,
-	    (sy_call_t *)svr4_32_sys_ioctl },	/* 54 = ioctl */
+	    (sy_call_t *)svr4_32_sys_ioctl, 0, 0 },	/* 54 = ioctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 55 = unimplemented uadmin */
+	    sys_nosys, 0, 0 },			/* 55 = unimplemented uadmin */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 56 = unimplemented exch */
+	    sys_nosys, 0, 0 },			/* 56 = unimplemented exch */
 	{ ns(struct svr4_32_sys_utssys_args), 0,
-	    (sy_call_t *)svr4_32_sys_utssys },	/* 57 = utssys */
+	    (sy_call_t *)svr4_32_sys_utssys, 0, 0 },	/* 57 = utssys */
 	{ ns(struct netbsd32_fsync_args), 0,
-	    (sy_call_t *)netbsd32_fsync },	/* 58 = netbsd32_fsync */
+	    (sy_call_t *)netbsd32_fsync, 0, 0 },	/* 58 = netbsd32_fsync */
 	{ ns(struct netbsd32_execve_args), 0,
-	    (sy_call_t *)netbsd32_execve },	/* 59 = netbsd32_execve */
+	    (sy_call_t *)netbsd32_execve, 0, 0 },	/* 59 = netbsd32_execve */
 	{ ns(struct netbsd32_umask_args), 0,
-	    (sy_call_t *)netbsd32_umask },	/* 60 = netbsd32_umask */
+	    (sy_call_t *)netbsd32_umask, 0, 0 },	/* 60 = netbsd32_umask */
 	{ ns(struct netbsd32_chroot_args), 0,
-	    (sy_call_t *)netbsd32_chroot },	/* 61 = netbsd32_chroot */
+	    (sy_call_t *)netbsd32_chroot, 0, 0 },	/* 61 = netbsd32_chroot */
 	{ ns(struct svr4_32_sys_fcntl_args), 0,
-	    (sy_call_t *)svr4_32_sys_fcntl },	/* 62 = fcntl */
+	    (sy_call_t *)svr4_32_sys_fcntl, 0, 0 },	/* 62 = fcntl */
 	{ ns(struct svr4_32_sys_ulimit_args), 0,
-	    (sy_call_t *)svr4_32_sys_ulimit },	/* 63 = ulimit */
+	    (sy_call_t *)svr4_32_sys_ulimit, 0, 0 },	/* 63 = ulimit */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 64 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 64 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 65 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 65 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 66 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 66 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 67 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 67 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 68 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 68 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 69 = unimplemented reserved for unix/pc */
+	    sys_nosys, 0, 0 },			/* 69 = unimplemented reserved for unix/pc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 70 = obsolete advfs */
+	    sys_nosys, 0, 0 },			/* 70 = obsolete advfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 71 = obsolete unadvfs */
+	    sys_nosys, 0, 0 },			/* 71 = obsolete unadvfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 72 = obsolete rmount */
+	    sys_nosys, 0, 0 },			/* 72 = obsolete rmount */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 73 = obsolete rumount */
+	    sys_nosys, 0, 0 },			/* 73 = obsolete rumount */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 74 = obsolete rfstart */
+	    sys_nosys, 0, 0 },			/* 74 = obsolete rfstart */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 75 = obsolete sigret */
+	    sys_nosys, 0, 0 },			/* 75 = obsolete sigret */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 76 = obsolete rdebug */
+	    sys_nosys, 0, 0 },			/* 76 = obsolete rdebug */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 77 = obsolete rfstop */
+	    sys_nosys, 0, 0 },			/* 77 = obsolete rfstop */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 78 = unimplemented rfsys */
+	    sys_nosys, 0, 0 },			/* 78 = unimplemented rfsys */
 	{ ns(struct netbsd32_rmdir_args), 0,
-	    (sy_call_t *)netbsd32_rmdir },	/* 79 = netbsd32_rmdir */
+	    (sy_call_t *)netbsd32_rmdir, 0, 0 },	/* 79 = netbsd32_rmdir */
 	{ ns(struct netbsd32_mkdir_args), 0,
-	    (sy_call_t *)netbsd32_mkdir },	/* 80 = netbsd32_mkdir */
+	    (sy_call_t *)netbsd32_mkdir, 0, 0 },	/* 80 = netbsd32_mkdir */
 	{ ns(struct svr4_32_sys_getdents_args), 0,
-	    (sy_call_t *)svr4_32_sys_getdents },/* 81 = getdents */
+	    (sy_call_t *)svr4_32_sys_getdents, 0, 0 },/* 81 = getdents */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 82 = obsolete libattach */
+	    sys_nosys, 0, 0 },			/* 82 = obsolete libattach */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 83 = obsolete libdetach */
+	    sys_nosys, 0, 0 },			/* 83 = obsolete libdetach */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 84 = unimplemented sysfs */
+	    sys_nosys, 0, 0 },			/* 84 = unimplemented sysfs */
 	{ ns(struct svr4_32_sys_getmsg_args), 0,
-	    (sy_call_t *)svr4_32_sys_getmsg },	/* 85 = getmsg */
+	    (sy_call_t *)svr4_32_sys_getmsg, 0, 0 },	/* 85 = getmsg */
 	{ ns(struct svr4_32_sys_putmsg_args), 0,
-	    (sy_call_t *)svr4_32_sys_putmsg },	/* 86 = putmsg */
+	    (sy_call_t *)svr4_32_sys_putmsg, 0, 0 },	/* 86 = putmsg */
 	{ ns(struct netbsd32_poll_args), 0,
-	    (sy_call_t *)netbsd32_poll },	/* 87 = netbsd32_poll */
+	    (sy_call_t *)netbsd32_poll, 0, 0 },	/* 87 = netbsd32_poll */
 	{ ns(struct svr4_32_sys_lstat_args), 0,
-	    (sy_call_t *)svr4_32_sys_lstat },	/* 88 = lstat */
+	    (sy_call_t *)svr4_32_sys_lstat, 0, 0 },	/* 88 = lstat */
 	{ ns(struct netbsd32_symlink_args), 0,
-	    (sy_call_t *)netbsd32_symlink },	/* 89 = netbsd32_symlink */
+	    (sy_call_t *)netbsd32_symlink, 0, 0 },	/* 89 = netbsd32_symlink */
 	{ ns(struct netbsd32_readlink_args), 0,
-	    (sy_call_t *)netbsd32_readlink },	/* 90 = netbsd32_readlink */
+	    (sy_call_t *)netbsd32_readlink, 0, 0 },	/* 90 = netbsd32_readlink */
 	{ ns(struct netbsd32_getgroups_args), 0,
-	    (sy_call_t *)netbsd32_getgroups },	/* 91 = netbsd32_getgroups */
+	    (sy_call_t *)netbsd32_getgroups, 0, 0 },	/* 91 = netbsd32_getgroups */
 	{ ns(struct netbsd32_setgroups_args), 0,
-	    (sy_call_t *)netbsd32_setgroups },	/* 92 = netbsd32_setgroups */
+	    (sy_call_t *)netbsd32_setgroups, 0, 0 },	/* 92 = netbsd32_setgroups */
 	{ ns(struct netbsd32_fchmod_args), 0,
-	    (sy_call_t *)netbsd32_fchmod },	/* 93 = netbsd32_fchmod */
+	    (sy_call_t *)netbsd32_fchmod, 0, 0 },	/* 93 = netbsd32_fchmod */
 	{ ns(struct netbsd32___posix_fchown_args), 0,
-	    (sy_call_t *)netbsd32___posix_fchown },/* 94 = fchown */
+	    (sy_call_t *)netbsd32___posix_fchown, 0, 0 },/* 94 = fchown */
 	{ ns(struct svr4_32_sys_sigprocmask_args), 0,
-	    (sy_call_t *)svr4_32_sys_sigprocmask },/* 95 = sigprocmask */
+	    (sy_call_t *)svr4_32_sys_sigprocmask, 0, 0 },/* 95 = sigprocmask */
 	{ ns(struct svr4_32_sys_sigsuspend_args), 0,
-	    (sy_call_t *)svr4_32_sys_sigsuspend },/* 96 = sigsuspend */
+	    (sy_call_t *)svr4_32_sys_sigsuspend, 0, 0 },/* 96 = sigsuspend */
 	{ ns(struct svr4_32_sys_sigaltstack_args), 0,
-	    (sy_call_t *)svr4_32_sys_sigaltstack },/* 97 = sigaltstack */
+	    (sy_call_t *)svr4_32_sys_sigaltstack, 0, 0 },/* 97 = sigaltstack */
 	{ ns(struct svr4_32_sys_sigaction_args), 0,
-	    (sy_call_t *)svr4_32_sys_sigaction },/* 98 = sigaction */
+	    (sy_call_t *)svr4_32_sys_sigaction, 0, 0 },/* 98 = sigaction */
 	{ ns(struct svr4_32_sys_sigpending_args), 0,
-	    (sy_call_t *)svr4_32_sys_sigpending },/* 99 = sigpending */
+	    (sy_call_t *)svr4_32_sys_sigpending, 0, 0 },/* 99 = sigpending */
 	{ ns(struct svr4_32_sys_context_args), 0,
-	    (sy_call_t *)svr4_32_sys_context },	/* 100 = context */
+	    (sy_call_t *)svr4_32_sys_context, 0, 0 },	/* 100 = context */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 101 = unimplemented evsys */
+	    sys_nosys, 0, 0 },			/* 101 = unimplemented evsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 102 = unimplemented evtrapret */
+	    sys_nosys, 0, 0 },			/* 102 = unimplemented evtrapret */
 	{ ns(struct svr4_32_sys_statvfs_args), 0,
-	    (sy_call_t *)svr4_32_sys_statvfs },	/* 103 = statvfs */
+	    (sy_call_t *)svr4_32_sys_statvfs, 0, 0 },	/* 103 = statvfs */
 	{ ns(struct svr4_32_sys_fstatvfs_args), 0,
-	    (sy_call_t *)svr4_32_sys_fstatvfs },/* 104 = fstatvfs */
+	    (sy_call_t *)svr4_32_sys_fstatvfs, 0, 0 },/* 104 = fstatvfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 105 = unimplemented getloadavg */
+	    sys_nosys, 0, 0 },			/* 105 = unimplemented getloadavg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 106 = unimplemented nfssvc */
+	    sys_nosys, 0, 0 },			/* 106 = unimplemented nfssvc */
 	{ ns(struct svr4_32_sys_waitsys_args), 0,
-	    (sy_call_t *)svr4_32_sys_waitsys },	/* 107 = waitsys */
+	    (sy_call_t *)svr4_32_sys_waitsys, 0, 0 },	/* 107 = waitsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 108 = unimplemented sigsendsys */
+	    sys_nosys, 0, 0 },			/* 108 = unimplemented sigsendsys */
 	{ ns(struct svr4_32_sys_hrtsys_args), 0,
-	    (sy_call_t *)svr4_32_sys_hrtsys },	/* 109 = hrtsys */
+	    (sy_call_t *)svr4_32_sys_hrtsys, 0, 0 },	/* 109 = hrtsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 110 = unimplemented acancel */
+	    sys_nosys, 0, 0 },			/* 110 = unimplemented acancel */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 111 = unimplemented async */
+	    sys_nosys, 0, 0 },			/* 111 = unimplemented async */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 112 = unimplemented priocntlsys */
+	    sys_nosys, 0, 0 },			/* 112 = unimplemented priocntlsys */
 	{ ns(struct svr4_32_sys_pathconf_args), 0,
-	    (sy_call_t *)svr4_32_sys_pathconf },/* 113 = pathconf */
+	    (sy_call_t *)svr4_32_sys_pathconf, 0, 0 },/* 113 = pathconf */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 114 = unimplemented mincore */
+	    sys_nosys, 0, 0 },			/* 114 = unimplemented mincore */
 	{ ns(struct svr4_32_sys_mmap_args), 0,
-	    (sy_call_t *)svr4_32_sys_mmap },	/* 115 = mmap */
+	    (sy_call_t *)svr4_32_sys_mmap, 0, 0 },	/* 115 = mmap */
 	{ ns(struct netbsd32_mprotect_args), 0,
-	    (sy_call_t *)netbsd32_mprotect },	/* 116 = netbsd32_mprotect */
+	    (sy_call_t *)netbsd32_mprotect, 0, 0 },	/* 116 = netbsd32_mprotect */
 	{ ns(struct netbsd32_munmap_args), 0,
-	    (sy_call_t *)netbsd32_munmap },	/* 117 = netbsd32_munmap */
+	    (sy_call_t *)netbsd32_munmap, 0, 0 },	/* 117 = netbsd32_munmap */
 	{ ns(struct svr4_32_sys_fpathconf_args), 0,
-	    (sy_call_t *)svr4_32_sys_fpathconf },/* 118 = fpathconf */
+	    (sy_call_t *)svr4_32_sys_fpathconf, 0, 0 },/* 118 = fpathconf */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_vfork },		/* 119 = vfork */
+	    (sy_call_t *)sys_vfork, 0, 0 },		/* 119 = vfork */
 	{ ns(struct netbsd32_fchdir_args), 0,
-	    (sy_call_t *)netbsd32_fchdir },	/* 120 = netbsd32_fchdir */
+	    (sy_call_t *)netbsd32_fchdir, 0, 0 },	/* 120 = netbsd32_fchdir */
 	{ ns(struct netbsd32_readv_args), 0,
-	    (sy_call_t *)netbsd32_readv },	/* 121 = netbsd32_readv */
+	    (sy_call_t *)netbsd32_readv, 0, 0 },	/* 121 = netbsd32_readv */
 	{ ns(struct netbsd32_writev_args), 0,
-	    (sy_call_t *)netbsd32_writev },	/* 122 = netbsd32_writev */
+	    (sy_call_t *)netbsd32_writev, 0, 0 },	/* 122 = netbsd32_writev */
 	{ ns(struct svr4_32_sys_xstat_args), 0,
-	    (sy_call_t *)svr4_32_sys_xstat },	/* 123 = xstat */
+	    (sy_call_t *)svr4_32_sys_xstat, 0, 0 },	/* 123 = xstat */
 	{ ns(struct svr4_32_sys_lxstat_args), 0,
-	    (sy_call_t *)svr4_32_sys_lxstat },	/* 124 = lxstat */
+	    (sy_call_t *)svr4_32_sys_lxstat, 0, 0 },	/* 124 = lxstat */
 	{ ns(struct svr4_32_sys_fxstat_args), 0,
-	    (sy_call_t *)svr4_32_sys_fxstat },	/* 125 = fxstat */
+	    (sy_call_t *)svr4_32_sys_fxstat, 0, 0 },	/* 125 = fxstat */
 	{ ns(struct svr4_32_sys_xmknod_args), 0,
-	    (sy_call_t *)svr4_32_sys_xmknod },	/* 126 = xmknod */
+	    (sy_call_t *)svr4_32_sys_xmknod, 0, 0 },	/* 126 = xmknod */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 127 = unimplemented clocal */
+	    sys_nosys, 0, 0 },			/* 127 = unimplemented clocal */
 	{ ns(struct svr4_32_sys_setrlimit_args), 0,
-	    (sy_call_t *)svr4_32_sys_setrlimit },/* 128 = setrlimit */
+	    (sy_call_t *)svr4_32_sys_setrlimit, 0, 0 },/* 128 = setrlimit */
 	{ ns(struct svr4_32_sys_getrlimit_args), 0,
-	    (sy_call_t *)svr4_32_sys_getrlimit },/* 129 = getrlimit */
+	    (sy_call_t *)svr4_32_sys_getrlimit, 0, 0 },/* 129 = getrlimit */
 	{ ns(struct netbsd32_lchown_args), 0,
-	    (sy_call_t *)netbsd32_lchown },	/* 130 = lchown */
+	    (sy_call_t *)netbsd32_lchown, 0, 0 },	/* 130 = lchown */
 	{ ns(struct svr4_32_sys_memcntl_args), 0,
-	    (sy_call_t *)svr4_32_sys_memcntl },	/* 131 = memcntl */
+	    (sy_call_t *)svr4_32_sys_memcntl, 0, 0 },	/* 131 = memcntl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 132 = unimplemented getpmsg */
+	    sys_nosys, 0, 0 },			/* 132 = unimplemented getpmsg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 133 = unimplemented putpmsg */
+	    sys_nosys, 0, 0 },			/* 133 = unimplemented putpmsg */
 	{ ns(struct netbsd32___posix_rename_args), 0,
-	    (sy_call_t *)netbsd32___posix_rename },/* 134 = rename */
+	    (sy_call_t *)netbsd32___posix_rename, 0, 0 },/* 134 = rename */
 	{ ns(struct svr4_32_sys_uname_args), 0,
-	    (sy_call_t *)svr4_32_sys_uname },	/* 135 = uname */
+	    (sy_call_t *)svr4_32_sys_uname, 0, 0 },	/* 135 = uname */
 	{ ns(struct netbsd32_setegid_args), 0,
-	    (sy_call_t *)netbsd32_setegid },	/* 136 = netbsd32_setegid */
+	    (sy_call_t *)netbsd32_setegid, 0, 0 },	/* 136 = netbsd32_setegid */
 	{ ns(struct svr4_32_sys_sysconfig_args), 0,
-	    (sy_call_t *)svr4_32_sys_sysconfig },/* 137 = sysconfig */
+	    (sy_call_t *)svr4_32_sys_sysconfig, 0, 0 },/* 137 = sysconfig */
 	{ ns(struct compat_50_netbsd32_adjtime_args), 0,
-	    (sy_call_t *)compat_50_netbsd32_adjtime },/* 138 = compat_50_netbsd32_adjtime */
+	    (sy_call_t *)compat_50_netbsd32_adjtime, 0, 0 },/* 138 = compat_50_netbsd32_adjtime */
 	{ ns(struct svr4_32_sys_systeminfo_args), 0,
-	    (sy_call_t *)svr4_32_sys_systeminfo },/* 139 = systeminfo */
+	    (sy_call_t *)svr4_32_sys_systeminfo, 0, 0 },/* 139 = systeminfo */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 140 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 140 = unimplemented */
 	{ ns(struct netbsd32_seteuid_args), 0,
-	    (sy_call_t *)netbsd32_seteuid },	/* 141 = netbsd32_seteuid */
+	    (sy_call_t *)netbsd32_seteuid, 0, 0 },	/* 141 = netbsd32_seteuid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 142 = unimplemented vtrace */
+	    sys_nosys, 0, 0 },			/* 142 = unimplemented vtrace */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 143 = fork1 */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 143 = fork1 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 144 = unimplemented sigtimedwait */
+	    sys_nosys, 0, 0 },			/* 144 = unimplemented sigtimedwait */
 	{ ns(struct svr4_32_sys__lwp_info_args), 0,
-	    (sy_call_t *)svr4_32_sys__lwp_info },/* 145 = _lwp_info */
+	    (sy_call_t *)svr4_32_sys__lwp_info, 0, 0 },/* 145 = _lwp_info */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 146 = unimplemented yield */
+	    sys_nosys, 0, 0 },			/* 146 = unimplemented yield */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 147 = unimplemented lwp_sema_wait */
+	    sys_nosys, 0, 0 },			/* 147 = unimplemented lwp_sema_wait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 148 = unimplemented lwp_sema_post */
+	    sys_nosys, 0, 0 },			/* 148 = unimplemented lwp_sema_post */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 149 = unimplemented lwp_sema_trywait */
+	    sys_nosys, 0, 0 },			/* 149 = unimplemented lwp_sema_trywait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 150 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 150 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 151 = unimplemented corectl */
+	    sys_nosys, 0, 0 },			/* 151 = unimplemented corectl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 152 = unimplemented modctl */
+	    sys_nosys, 0, 0 },			/* 152 = unimplemented modctl */
 	{ ns(struct netbsd32_fchroot_args), 0,
-	    (sy_call_t *)netbsd32_fchroot },	/* 153 = netbsd32_fchroot */
+	    (sy_call_t *)netbsd32_fchroot, 0, 0 },	/* 153 = netbsd32_fchroot */
 	{ ns(struct svr4_32_sys_utimes_args), 0,
-	    (sy_call_t *)svr4_32_sys_utimes },	/* 154 = utimes */
+	    (sy_call_t *)svr4_32_sys_utimes, 0, 0 },	/* 154 = utimes */
 	{ 0, 0, 0,
-	    (sy_call_t *)svr4_32_sys_vhangup },	/* 155 = vhangup */
+	    (sy_call_t *)svr4_32_sys_vhangup, 0, 0 },	/* 155 = vhangup */
 	{ ns(struct svr4_32_sys_gettimeofday_args), 0,
-	    (sy_call_t *)svr4_32_sys_gettimeofday },/* 156 = gettimeofday */
+	    (sy_call_t *)svr4_32_sys_gettimeofday, 0, 0 },/* 156 = gettimeofday */
 	{ ns(struct compat_50_netbsd32_getitimer_args), 0,
-	    (sy_call_t *)compat_50_netbsd32_getitimer },/* 157 = compat_50_netbsd32_getitimer */
+	    (sy_call_t *)compat_50_netbsd32_getitimer, 0, 0 },/* 157 = compat_50_netbsd32_getitimer */
 	{ ns(struct compat_50_netbsd32_setitimer_args), 0,
-	    (sy_call_t *)compat_50_netbsd32_setitimer },/* 158 = compat_50_netbsd32_setitimer */
+	    (sy_call_t *)compat_50_netbsd32_setitimer, 0, 0 },/* 158 = compat_50_netbsd32_setitimer */
 	{ ns(struct svr4_32_sys__lwp_create_args), 0,
-	    (sy_call_t *)svr4_32_sys__lwp_create },/* 159 = _lwp_create */
+	    (sy_call_t *)svr4_32_sys__lwp_create, 0, 0 },/* 159 = _lwp_create */
 	{ 0, 0, 0,
-	    (sy_call_t *)svr4_32_sys__lwp_exit },/* 160 = _lwp_exit */
+	    (sy_call_t *)svr4_32_sys__lwp_exit, 0, 0 },/* 160 = _lwp_exit */
 	{ ns(struct svr4_32_sys__lwp_suspend_args), 0,
-	    (sy_call_t *)svr4_32_sys__lwp_suspend },/* 161 = _lwp_suspend */
+	    (sy_call_t *)svr4_32_sys__lwp_suspend, 0, 0 },/* 161 = _lwp_suspend */
 	{ ns(struct svr4_32_sys__lwp_continue_args), 0,
-	    (sy_call_t *)svr4_32_sys__lwp_continue },/* 162 = _lwp_continue */
+	    (sy_call_t *)svr4_32_sys__lwp_continue, 0, 0 },/* 162 = _lwp_continue */
 	{ ns(struct svr4_32_sys__lwp_kill_args), 0,
-	    (sy_call_t *)svr4_32_sys__lwp_kill },/* 163 = _lwp_kill */
+	    (sy_call_t *)svr4_32_sys__lwp_kill, 0, 0 },/* 163 = _lwp_kill */
 	{ 0, 0, 0,
-	    (sy_call_t *)svr4_sys__lwp_self },	/* 164 = _lwp_self */
+	    (sy_call_t *)svr4_sys__lwp_self, 0, 0 },	/* 164 = _lwp_self */
 	{ 0, 0, 0,
-	    (sy_call_t *)svr4_32_sys__lwp_getprivate },/* 165 = _lwp_getprivate */
+	    (sy_call_t *)svr4_32_sys__lwp_getprivate, 0, 0 },/* 165 = _lwp_getprivate */
 	{ ns(struct svr4_32_sys__lwp_setprivate_args), 0,
-	    (sy_call_t *)svr4_32_sys__lwp_setprivate },/* 166 = _lwp_setprivate */
+	    (sy_call_t *)svr4_32_sys__lwp_setprivate, 0, 0 },/* 166 = _lwp_setprivate */
 	{ ns(struct svr4_32_sys__lwp_wait_args), 0,
-	    (sy_call_t *)svr4_32_sys__lwp_wait },/* 167 = _lwp_wait */
+	    (sy_call_t *)svr4_32_sys__lwp_wait, 0, 0 },/* 167 = _lwp_wait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 168 = unimplemented lwp_mutex_wakeup */
+	    sys_nosys, 0, 0 },			/* 168 = unimplemented lwp_mutex_wakeup */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 169 = unimplemented lwp_mutex_lock */
+	    sys_nosys, 0, 0 },			/* 169 = unimplemented lwp_mutex_lock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 170 = unimplemented lwp_cond_wait */
+	    sys_nosys, 0, 0 },			/* 170 = unimplemented lwp_cond_wait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 171 = unimplemented lwp_cond_signal */
+	    sys_nosys, 0, 0 },			/* 171 = unimplemented lwp_cond_signal */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 172 = unimplemented lwp_cond_broadcast */
+	    sys_nosys, 0, 0 },			/* 172 = unimplemented lwp_cond_broadcast */
 	{ ns(struct svr4_32_sys_pread_args), 0,
-	    (sy_call_t *)svr4_32_sys_pread },	/* 173 = pread */
+	    (sy_call_t *)svr4_32_sys_pread, 0, 0 },	/* 173 = pread */
 	{ ns(struct svr4_32_sys_pwrite_args), 0,
-	    (sy_call_t *)svr4_32_sys_pwrite },	/* 174 = pwrite */
+	    (sy_call_t *)svr4_32_sys_pwrite, 0, 0 },	/* 174 = pwrite */
 	{ ns(struct svr4_32_sys_llseek_args), 0,
-	    (sy_call_t *)svr4_32_sys_llseek },	/* 175 = llseek */
+	    (sy_call_t *)svr4_32_sys_llseek, 0, 0 },	/* 175 = llseek */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 176 = unimplemented inst_sync */
+	    sys_nosys, 0, 0 },			/* 176 = unimplemented inst_sync */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 177 = unimplemented srmlimitsys */
+	    sys_nosys, 0, 0 },			/* 177 = unimplemented srmlimitsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 178 = unimplemented kaio */
+	    sys_nosys, 0, 0 },			/* 178 = unimplemented kaio */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 179 = unimplemented cpc */
+	    sys_nosys, 0, 0 },			/* 179 = unimplemented cpc */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 180 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 180 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 181 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 181 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 182 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 182 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 183 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 183 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 184 = unimplemented tsolsys */
+	    sys_nosys, 0, 0 },			/* 184 = unimplemented tsolsys */
 	{ ns(struct svr4_32_sys_acl_args), 0,
-	    (sy_call_t *)svr4_32_sys_acl },	/* 185 = acl */
+	    (sy_call_t *)svr4_32_sys_acl, 0, 0 },	/* 185 = acl */
 	{ ns(struct svr4_32_sys_auditsys_args), 0,
-	    (sy_call_t *)svr4_32_sys_auditsys },/* 186 = auditsys */
+	    (sy_call_t *)svr4_32_sys_auditsys, 0, 0 },/* 186 = auditsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 187 = unimplemented processor_bind */
+	    sys_nosys, 0, 0 },			/* 187 = unimplemented processor_bind */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 188 = unimplemented processor_info */
+	    sys_nosys, 0, 0 },			/* 188 = unimplemented processor_info */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 189 = unimplemented p_online */
+	    sys_nosys, 0, 0 },			/* 189 = unimplemented p_online */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 190 = unimplemented sigqueue */
+	    sys_nosys, 0, 0 },			/* 190 = unimplemented sigqueue */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 191 = unimplemented clock_gettime */
+	    sys_nosys, 0, 0 },			/* 191 = unimplemented clock_gettime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 192 = unimplemented clock_settime */
+	    sys_nosys, 0, 0 },			/* 192 = unimplemented clock_settime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 193 = unimplemented clock_getres */
+	    sys_nosys, 0, 0 },			/* 193 = unimplemented clock_getres */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 194 = unimplemented timer_create */
+	    sys_nosys, 0, 0 },			/* 194 = unimplemented timer_create */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 195 = unimplemented timer_delete */
+	    sys_nosys, 0, 0 },			/* 195 = unimplemented timer_delete */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 196 = unimplemented timer_settime */
+	    sys_nosys, 0, 0 },			/* 196 = unimplemented timer_settime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 197 = unimplemented timer_gettime */
+	    sys_nosys, 0, 0 },			/* 197 = unimplemented timer_gettime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 198 = unimplemented timer_getoverrun */
+	    sys_nosys, 0, 0 },			/* 198 = unimplemented timer_getoverrun */
 	{ ns(struct compat_50_netbsd32_nanosleep_args), 0,
-	    (sy_call_t *)compat_50_netbsd32_nanosleep },/* 199 = compat_50_netbsd32_nanosleep */
+	    (sy_call_t *)compat_50_netbsd32_nanosleep, 0, 0 },/* 199 = compat_50_netbsd32_nanosleep */
 	{ ns(struct svr4_32_sys_facl_args), 0,
-	    (sy_call_t *)svr4_32_sys_facl },	/* 200 = facl */
+	    (sy_call_t *)svr4_32_sys_facl, 0, 0 },	/* 200 = facl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 201 = unimplemented door */
+	    sys_nosys, 0, 0 },			/* 201 = unimplemented door */
 	{ ns(struct netbsd32_setreuid_args), 0,
-	    (sy_call_t *)netbsd32_setreuid },	/* 202 = netbsd32_setreuid */
+	    (sy_call_t *)netbsd32_setreuid, 0, 0 },	/* 202 = netbsd32_setreuid */
 	{ ns(struct netbsd32_setregid_args), 0,
-	    (sy_call_t *)netbsd32_setregid },	/* 203 = netbsd32_setregid */
+	    (sy_call_t *)netbsd32_setregid, 0, 0 },	/* 203 = netbsd32_setregid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 204 = unimplemented install_utrap */
+	    sys_nosys, 0, 0 },			/* 204 = unimplemented install_utrap */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 205 = unimplemented signotify */
+	    sys_nosys, 0, 0 },			/* 205 = unimplemented signotify */
 	{ ns(struct svr4_32_sys_schedctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)svr4_32_sys_schedctl },/* 206 = schedctl */
+	    (sy_call_t *)svr4_32_sys_schedctl, 0, 0 },/* 206 = schedctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 207 = unimplemented pset */
+	    sys_nosys, 0, 0 },			/* 207 = unimplemented pset */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 208 = unimplemented sparc_utrap_install */
+	    sys_nosys, 0, 0 },			/* 208 = unimplemented sparc_utrap_install */
 	{ ns(struct svr4_32_sys_resolvepath_args), 0,
-	    (sy_call_t *)svr4_32_sys_resolvepath },/* 209 = resolvepath */
+	    (sy_call_t *)svr4_32_sys_resolvepath, 0, 0 },/* 209 = resolvepath */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 210 = unimplemented signotifywait */
+	    sys_nosys, 0, 0 },			/* 210 = unimplemented signotifywait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 211 = unimplemented lwp_sigredirect */
+	    sys_nosys, 0, 0 },			/* 211 = unimplemented lwp_sigredirect */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 212 = unimplemented lwp_alarm */
+	    sys_nosys, 0, 0 },			/* 212 = unimplemented lwp_alarm */
 	{ ns(struct svr4_32_sys_getdents64_args), 0,
-	    (sy_call_t *)svr4_32_sys_getdents64 },/* 213 = getdents64 */
+	    (sy_call_t *)svr4_32_sys_getdents64, 0, 0 },/* 213 = getdents64 */
 	{ ns(struct svr4_32_sys_mmap64_args), 0,
-	    (sy_call_t *)svr4_32_sys_mmap64 },	/* 214 = mmap64 */
+	    (sy_call_t *)svr4_32_sys_mmap64, 0, 0 },	/* 214 = mmap64 */
 	{ ns(struct svr4_32_sys_stat64_args), 0,
-	    (sy_call_t *)svr4_32_sys_stat64 },	/* 215 = stat64 */
+	    (sy_call_t *)svr4_32_sys_stat64, 0, 0 },	/* 215 = stat64 */
 	{ ns(struct svr4_32_sys_lstat64_args), 0,
-	    (sy_call_t *)svr4_32_sys_lstat64 },	/* 216 = lstat64 */
+	    (sy_call_t *)svr4_32_sys_lstat64, 0, 0 },	/* 216 = lstat64 */
 	{ ns(struct svr4_32_sys_fstat64_args), 0,
-	    (sy_call_t *)svr4_32_sys_fstat64 },	/* 217 = fstat64 */
+	    (sy_call_t *)svr4_32_sys_fstat64, 0, 0 },	/* 217 = fstat64 */
 	{ ns(struct svr4_32_sys_statvfs64_args), 0,
-	    (sy_call_t *)svr4_32_sys_statvfs64 },/* 218 = statvfs64 */
+	    (sy_call_t *)svr4_32_sys_statvfs64, 0, 0 },/* 218 = statvfs64 */
 	{ ns(struct svr4_32_sys_fstatvfs64_args), 0,
-	    (sy_call_t *)svr4_32_sys_fstatvfs64 },/* 219 = fstatvfs64 */
+	    (sy_call_t *)svr4_32_sys_fstatvfs64, 0, 0 },/* 219 = fstatvfs64 */
 	{ ns(struct svr4_32_sys_setrlimit64_args), 0,
-	    (sy_call_t *)svr4_32_sys_setrlimit64 },/* 220 = setrlimit64 */
+	    (sy_call_t *)svr4_32_sys_setrlimit64, 0, 0 },/* 220 = setrlimit64 */
 	{ ns(struct svr4_32_sys_getrlimit64_args), 0,
-	    (sy_call_t *)svr4_32_sys_getrlimit64 },/* 221 = getrlimit64 */
+	    (sy_call_t *)svr4_32_sys_getrlimit64, 0, 0 },/* 221 = getrlimit64 */
 	{ ns(struct svr4_32_sys_pread64_args), 0,
-	    (sy_call_t *)svr4_32_sys_pread64 },	/* 222 = pread64 */
+	    (sy_call_t *)svr4_32_sys_pread64, 0, 0 },	/* 222 = pread64 */
 	{ ns(struct svr4_32_sys_pwrite64_args), 0,
-	    (sy_call_t *)svr4_32_sys_pwrite64 },/* 223 = pwrite64 */
+	    (sy_call_t *)svr4_32_sys_pwrite64, 0, 0 },/* 223 = pwrite64 */
 #define svr4_32_sys_creat64 svr4_32_sys_creat
 #define svr4_32_sys_creat64_args svr4_32_sys_creat_args
 	{ ns(struct svr4_32_sys_creat64_args), 0,
-	    (sy_call_t *)svr4_32_sys_creat64 },	/* 224 = creat64 */
+	    (sy_call_t *)svr4_32_sys_creat64, 0, 0 },	/* 224 = creat64 */
 #define svr4_32_sys_open64 svr4_32_sys_open
 #define svr4_32_sys_open64_args svr4_32_sys_open_args
 	{ ns(struct svr4_32_sys_open64_args), 0,
-	    (sy_call_t *)svr4_32_sys_open64 },	/* 225 = open64 */
+	    (sy_call_t *)svr4_32_sys_open64, 0, 0 },	/* 225 = open64 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 226 = unimplemented rpcsys */
+	    sys_nosys, 0, 0 },			/* 226 = unimplemented rpcsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 227 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 227 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 228 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 228 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 229 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 229 = unimplemented */
 	{ ns(struct svr4_32_sys_socket_args), 0,
-	    (sy_call_t *)svr4_32_sys_socket },	/* 230 = socket */
+	    (sy_call_t *)svr4_32_sys_socket, 0, 0 },	/* 230 = socket */
 	{ ns(struct netbsd32_socketpair_args), 0,
-	    (sy_call_t *)netbsd32_socketpair },	/* 231 = netbsd32_socketpair */
+	    (sy_call_t *)netbsd32_socketpair, 0, 0 },	/* 231 = netbsd32_socketpair */
 	{ ns(struct netbsd32_bind_args), 0,
-	    (sy_call_t *)netbsd32_bind },	/* 232 = netbsd32_bind */
+	    (sy_call_t *)netbsd32_bind, 0, 0 },	/* 232 = netbsd32_bind */
 	{ ns(struct netbsd32_listen_args), 0,
-	    (sy_call_t *)netbsd32_listen },	/* 233 = netbsd32_listen */
+	    (sy_call_t *)netbsd32_listen, 0, 0 },	/* 233 = netbsd32_listen */
 	{ ns(struct compat_43_netbsd32_oaccept_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_oaccept },/* 234 = compat_43_netbsd32_oaccept */
+	    (sy_call_t *)compat_43_netbsd32_oaccept, 0, 0 },/* 234 = compat_43_netbsd32_oaccept */
 	{ ns(struct netbsd32_connect_args), 0,
-	    (sy_call_t *)netbsd32_connect },	/* 235 = netbsd32_connect */
+	    (sy_call_t *)netbsd32_connect, 0, 0 },	/* 235 = netbsd32_connect */
 	{ ns(struct netbsd32_shutdown_args), 0,
-	    (sy_call_t *)netbsd32_shutdown },	/* 236 = netbsd32_shutdown */
+	    (sy_call_t *)netbsd32_shutdown, 0, 0 },	/* 236 = netbsd32_shutdown */
 	{ ns(struct compat_43_netbsd32_orecv_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_orecv },/* 237 = compat_43_netbsd32_orecv */
+	    (sy_call_t *)compat_43_netbsd32_orecv, 0, 0 },/* 237 = compat_43_netbsd32_orecv */
 	{ ns(struct compat_43_netbsd32_orecvfrom_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_orecvfrom },/* 238 = compat_43_netbsd32_orecvfrom */
+	    (sy_call_t *)compat_43_netbsd32_orecvfrom, 0, 0 },/* 238 = compat_43_netbsd32_orecvfrom */
 	{ ns(struct compat_43_netbsd32_orecvmsg_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_orecvmsg },/* 239 = compat_43_netbsd32_orecvmsg */
+	    (sy_call_t *)compat_43_netbsd32_orecvmsg, 0, 0 },/* 239 = compat_43_netbsd32_orecvmsg */
 	{ ns(struct compat_43_netbsd32_osend_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_osend },/* 240 = compat_43_netbsd32_osend */
+	    (sy_call_t *)compat_43_netbsd32_osend, 0, 0 },/* 240 = compat_43_netbsd32_osend */
 	{ ns(struct compat_43_netbsd32_osendmsg_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_osendmsg },/* 241 = compat_43_netbsd32_osendmsg */
+	    (sy_call_t *)compat_43_netbsd32_osendmsg, 0, 0 },/* 241 = compat_43_netbsd32_osendmsg */
 	{ ns(struct netbsd32_sendto_args), 0,
-	    (sy_call_t *)netbsd32_sendto },	/* 242 = netbsd32_sendto */
+	    (sy_call_t *)netbsd32_sendto, 0, 0 },	/* 242 = netbsd32_sendto */
 	{ ns(struct compat_43_netbsd32_ogetpeername_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_ogetpeername },/* 243 = compat_43_netbsd32_ogetpeername */
+	    (sy_call_t *)compat_43_netbsd32_ogetpeername, 0, 0 },/* 243 = compat_43_netbsd32_ogetpeername */
 	{ ns(struct compat_43_netbsd32_ogetsockname_args), 0,
-	    (sy_call_t *)compat_43_netbsd32_ogetsockname },/* 244 = compat_43_netbsd32_ogetsockname */
+	    (sy_call_t *)compat_43_netbsd32_ogetsockname, 0, 0 },/* 244 = compat_43_netbsd32_ogetsockname */
 	{ ns(struct netbsd32_getsockopt_args), 0,
-	    (sy_call_t *)netbsd32_getsockopt },	/* 245 = netbsd32_getsockopt */
+	    (sy_call_t *)netbsd32_getsockopt, 0, 0 },	/* 245 = netbsd32_getsockopt */
 	{ ns(struct netbsd32_setsockopt_args), 0,
-	    (sy_call_t *)netbsd32_setsockopt },	/* 246 = netbsd32_setsockopt */
+	    (sy_call_t *)netbsd32_setsockopt, 0, 0 },	/* 246 = netbsd32_setsockopt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 247 = unimplemented sockconfig */
+	    sys_nosys, 0, 0 },			/* 247 = unimplemented sockconfig */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 248 = unimplemented netbsd32_ntp_gettime */
+	    sys_nosys, 0, 0 },			/* 248 = unimplemented netbsd32_ntp_gettime */
 #if defined(NTP) || !defined(_KERNEL)
 	{ ns(struct netbsd32_ntp_adjtime_args), 0,
-	    (sy_call_t *)netbsd32_ntp_adjtime },/* 249 = netbsd32_ntp_adjtime */
+	    (sy_call_t *)netbsd32_ntp_adjtime, 0, 0 },/* 249 = netbsd32_ntp_adjtime */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 249 = excluded ntp_adjtime */
+	    sys_nosys, 0, 0 },			/* 249 = excluded ntp_adjtime */
 #endif
 	{ 0, 0, 0,
-	    sys_nosys },			/* 250 = unimplemented lwp_mutex_unlock */
+	    sys_nosys, 0, 0 },			/* 250 = unimplemented lwp_mutex_unlock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 251 = unimplemented lwp_mutex_trylock */
+	    sys_nosys, 0, 0 },			/* 251 = unimplemented lwp_mutex_trylock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 252 = unimplemented lwp_mutex_init */
+	    sys_nosys, 0, 0 },			/* 252 = unimplemented lwp_mutex_init */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 253 = unimplemented cladm */
+	    sys_nosys, 0, 0 },			/* 253 = unimplemented cladm */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 254 = unimplemented lwp_sigtimedwait */
+	    sys_nosys, 0, 0 },			/* 254 = unimplemented lwp_sigtimedwait */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 255 = unimplemented umount2 */
+	    sys_nosys, 0, 0 },			/* 255 = unimplemented umount2 */
 };
diff --git a/sys/compat/ultrix/ultrix_syscall.h b/sys/compat/ultrix/ultrix_syscall.h
index 509fb1c..d8242fb 100644
--- a/sys/compat/ultrix/ultrix_syscall.h
+++ b/sys/compat/ultrix/ultrix_syscall.h
@@ -1,4 +1,4 @@
-/* $NetBSD: ultrix_syscall.h,v 1.63 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
diff --git a/sys/compat/ultrix/ultrix_syscallargs.h b/sys/compat/ultrix/ultrix_syscallargs.h
index ab66350..d7cba2e 100644
--- a/sys/compat/ultrix/ultrix_syscallargs.h
+++ b/sys/compat/ultrix/ultrix_syscallargs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: ultrix_syscallargs.h,v 1.58 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
diff --git a/sys/compat/ultrix/ultrix_syscalls.c b/sys/compat/ultrix/ultrix_syscalls.c
index 2a5fa38..fd81d9a 100644
--- a/sys/compat/ultrix/ultrix_syscalls.c
+++ b/sys/compat/ultrix/ultrix_syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: ultrix_syscalls.c,v 1.62 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ultrix_syscalls.c,v 1.62 2013/11/07 19:39:58 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include <sys/param.h>
@@ -18,6 +18,8 @@ __KERNEL_RCSID(0, "$NetBSD: ultrix_syscalls.c,v 1.62 2013/11/07 19:39:58 njoly E
 #include <sys/sched.h>
 #include <sys/syscallargs.h>
 #include <compat/ultrix/ultrix_syscallargs.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const ultrix_syscallnames[] = {
@@ -539,3 +541,525 @@ const char *const ultrix_syscallnames[] = {
 	/* 510 */	"# filler",
 	/* 511 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altultrix_syscallnames[] = {
+	/*   0 */	"nosys",
+	/*   1 */	NULL, /* exit */
+	/*   2 */	NULL, /* fork */
+	/*   3 */	NULL, /* read */
+	/*   4 */	NULL, /* write */
+	/*   5 */	NULL, /* open */
+	/*   6 */	NULL, /* close */
+	/*   7 */	"wait",
+	/*   8 */	NULL, /* creat */
+	/*   9 */	NULL, /* link */
+	/*  10 */	NULL, /* unlink */
+	/*  11 */	NULL, /* execv */
+	/*  12 */	NULL, /* chdir */
+	/*  13 */	NULL, /* obsolete time */
+	/*  14 */	NULL, /* mknod */
+	/*  15 */	NULL, /* chmod */
+	/*  16 */	NULL, /* __posix_chown */
+	/*  17 */	"obreak",
+	/*  18 */	NULL, /* obsolete stat */
+	/*  19 */	NULL, /* lseek */
+	/*  20 */	NULL, /* getpid */
+	/*  21 */	NULL, /* mount */
+	/*  22 */	NULL, /* obsolete sysV_unmount */
+	/*  23 */	NULL, /* setuid */
+	/*  24 */	NULL, /* getuid */
+	/*  25 */	NULL, /* obsolete v7 stime */
+	/*  26 */	NULL, /* obsolete v7 ptrace */
+	/*  27 */	NULL, /* obsolete v7 alarm */
+	/*  28 */	NULL, /* obsolete v7 fstat */
+	/*  29 */	NULL, /* obsolete v7 pause */
+	/*  30 */	NULL, /* obsolete v7 utime */
+	/*  31 */	NULL, /* obsolete v7 stty */
+	/*  32 */	NULL, /* obsolete v7 gtty */
+	/*  33 */	NULL, /* access */
+	/*  34 */	NULL, /* obsolete v7 nice */
+	/*  35 */	NULL, /* obsolete v7 ftime */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	NULL, /* kill */
+	/*  38 */	"stat",
+	/*  39 */	NULL, /* obsolete v7 setpgrp */
+	/*  40 */	"lstat",
+	/*  41 */	NULL, /* dup */
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* obsolete v7 times */
+	/*  44 */	NULL, /* profil */
+	/*  45 */	NULL, /* unimplemented */
+	/*  46 */	NULL, /* obsolete v7 setgid */
+	/*  47 */	NULL, /* getgid */
+	/*  48 */	NULL, /* unimplemented ssig */
+	/*  49 */	NULL, /* unimplemented reserved for USG */
+	/*  50 */	NULL, /* unimplemented reserved for USG */
+	/*  51 */	NULL, /* acct */
+	/*  52 */	NULL, /* unimplemented */
+	/*  53 */	NULL, /* unimplemented syslock */
+	/*  54 */	NULL, /* ioctl */
+	/*  55 */	NULL, /* reboot */
+	/*  56 */	NULL, /* unimplemented v7 mpxchan */
+	/*  57 */	NULL, /* symlink */
+	/*  58 */	NULL, /* readlink */
+	/*  59 */	NULL, /* execve */
+	/*  60 */	NULL, /* umask */
+	/*  61 */	NULL, /* chroot */
+	/*  62 */	NULL, /* fstat */
+	/*  63 */	NULL, /* unimplemented */
+	/*  64 */	NULL, /* getpagesize */
+	/*  65 */	NULL, /* unimplemented mremap */
+	/*  66 */	NULL, /* vfork */
+	/*  67 */	NULL, /* obsolete vread */
+	/*  68 */	NULL, /* obsolete vwrite */
+	/*  69 */	NULL, /* sbrk */
+	/*  70 */	NULL, /* sstk */
+	/*  71 */	NULL, /* mmap */
+	/*  72 */	"ovadvise",
+	/*  73 */	NULL, /* munmap */
+	/*  74 */	NULL, /* mprotect */
+	/*  75 */	NULL, /* madvise */
+	/*  76 */	NULL, /* vhangup */
+	/*  77 */	NULL, /* unimplemented old vlimit */
+	/*  78 */	NULL, /* mincore */
+	/*  79 */	NULL, /* getgroups */
+	/*  80 */	NULL, /* setgroups */
+	/*  81 */	NULL, /* getpgrp */
+	/*  82 */	NULL, /* setpgrp */
+	/*  83 */	"setitimer",
+	/*  84 */	NULL, /* wait3 */
+	/*  85 */	NULL, /* swapon */
+	/*  86 */	"getitimer",
+	/*  87 */	NULL, /* gethostname */
+	/*  88 */	NULL, /* sethostname */
+	/*  89 */	NULL, /* getdtablesize */
+	/*  90 */	NULL, /* dup2 */
+	/*  91 */	NULL, /* unimplemented getdopt */
+	/*  92 */	NULL, /* fcntl */
+	/*  93 */	NULL, /* select */
+	/*  94 */	NULL, /* unimplemented setdopt */
+	/*  95 */	NULL, /* fsync */
+	/*  96 */	NULL, /* setpriority */
+	/*  97 */	NULL, /* socket */
+	/*  98 */	NULL, /* connect */
+	/*  99 */	NULL, /* accept */
+	/* 100 */	NULL, /* getpriority */
+	/* 101 */	NULL, /* send */
+	/* 102 */	NULL, /* recv */
+	/* 103 */	NULL, /* sigreturn */
+	/* 104 */	NULL, /* bind */
+	/* 105 */	NULL, /* setsockopt */
+	/* 106 */	NULL, /* listen */
+	/* 107 */	NULL, /* unimplemented vtimes */
+	/* 108 */	NULL, /* sigvec */
+	/* 109 */	NULL, /* sigblock */
+	/* 110 */	NULL, /* sigsetmask */
+	/* 111 */	NULL, /* sigsuspend */
+	/* 112 */	NULL, /* sigstack */
+	/* 113 */	NULL, /* recvmsg */
+	/* 114 */	NULL, /* sendmsg */
+	/* 115 */	NULL, /* obsolete vtrace */
+	/* 116 */	"gettimeofday",
+	/* 117 */	"getrusage",
+	/* 118 */	NULL, /* getsockopt */
+	/* 119 */	NULL, /* unimplemented resuba */
+	/* 120 */	NULL, /* readv */
+	/* 121 */	NULL, /* writev */
+	/* 122 */	"settimeofday",
+	/* 123 */	NULL, /* __posix_fchown */
+	/* 124 */	NULL, /* fchmod */
+	/* 125 */	NULL, /* recvfrom */
+	/* 126 */	NULL, /* setreuid */
+	/* 127 */	NULL, /* setregid */
+	/* 128 */	NULL, /* rename */
+	/* 129 */	NULL, /* truncate */
+	/* 130 */	NULL, /* ftruncate */
+	/* 131 */	NULL, /* flock */
+	/* 132 */	NULL, /* unimplemented */
+	/* 133 */	NULL, /* sendto */
+	/* 134 */	NULL, /* shutdown */
+	/* 135 */	NULL, /* socketpair */
+	/* 136 */	NULL, /* mkdir */
+	/* 137 */	NULL, /* rmdir */
+	/* 138 */	"utimes",
+	/* 139 */	NULL, /* sigcleanup */
+	/* 140 */	"adjtime",
+	/* 141 */	NULL, /* getpeername */
+	/* 142 */	NULL, /* gethostid */
+	/* 143 */	NULL, /* unimplemented old sethostid */
+	/* 144 */	NULL, /* getrlimit */
+	/* 145 */	NULL, /* setrlimit */
+	/* 146 */	NULL, /* killpg */
+	/* 147 */	NULL, /* unimplemented */
+	/* 148 */	NULL, /* unimplemented setquota */
+	/* 149 */	NULL, /* unimplemented quota / * needs to be nullop to boot on Ultrix root partition * / */
+	/* 150 */	NULL, /* getsockname */
+	/* 151 */	NULL, /* unimplemented sysmips / * 4 args * / */
+#ifdef __mips
+	/* 152 */	NULL, /* cacheflush */
+	/* 153 */	NULL, /* cachectl */
+#else	/* !mips */
+	/* 152 */	NULL, /* unimplemented */
+	/* 153 */	NULL, /* unimplemented */
+#endif	/* !mips */
+	/* 154 */	NULL, /* unimplemented */
+	/* 155 */	NULL, /* unimplemented atomic_op */
+	/* 156 */	NULL, /* unimplemented */
+	/* 157 */	NULL, /* unimplemented */
+	/* 158 */	NULL, /* unimplemented ultrix_sys_nfssvc */
+	/* 159 */	NULL, /* getdirentries */
+	/* 160 */	NULL, /* statfs */
+	/* 161 */	NULL, /* fstatfs */
+	/* 162 */	NULL, /* unimplemented umount */
+	/* 163 */	NULL, /* unimplemented async_daemon */
+	/* 164 */	NULL, /* getfh */
+	/* 165 */	NULL, /* getdomainname */
+	/* 166 */	NULL, /* setdomainname */
+	/* 167 */	NULL, /* unimplemented */
+	/* 168 */	NULL, /* quotactl */
+	/* 169 */	NULL, /* exportfs */
+	/* 170 */	NULL, /* unimplemented ultrix_sys_mount */
+	/* 171 */	NULL, /* unimplemented 4 hdwconf */
+	/* 172 */	NULL, /* unimplemented msgctl */
+	/* 173 */	NULL, /* unimplemented msgget */
+	/* 174 */	NULL, /* unimplemented msgrcv */
+	/* 175 */	NULL, /* unimplemented msgsnd */
+	/* 176 */	NULL, /* unimplemented semctl */
+	/* 177 */	NULL, /* unimplemented semget */
+	/* 178 */	NULL, /* unimplemented semop */
+	/* 179 */	NULL, /* uname */
+	/* 180 */	NULL, /* shmsys */
+	/* 181 */	NULL, /* unimplemented 0 plock */
+	/* 182 */	NULL, /* unimplemented 0 lockf */
+	/* 183 */	NULL, /* ustat */
+	/* 184 */	NULL, /* getmnt */
+	/* 185 */	NULL, /* unimplemented notdef */
+	/* 186 */	NULL, /* unimplemented notdef */
+	/* 187 */	NULL, /* sigpending */
+	/* 188 */	NULL, /* setsid */
+	/* 189 */	NULL, /* waitpid */
+	/* 190 */	NULL, /* unimplemented */
+	/* 191 */	NULL, /* unimplemented */
+	/* 192 */	NULL, /* unimplemented */
+	/* 193 */	NULL, /* unimplemented */
+	/* 194 */	NULL, /* unimplemented */
+	/* 195 */	NULL, /* unimplemented */
+	/* 196 */	NULL, /* unimplemented */
+	/* 197 */	NULL, /* unimplemented */
+	/* 198 */	NULL, /* unimplemented */
+	/* 199 */	NULL, /* unimplemented */
+	/* 200 */	NULL, /* unimplemented */
+	/* 201 */	NULL, /* unimplemented */
+	/* 202 */	NULL, /* unimplemented */
+	/* 203 */	NULL, /* unimplemented */
+	/* 204 */	NULL, /* unimplemented */
+	/* 205 */	NULL, /* unimplemented */
+	/* 206 */	NULL, /* unimplemented */
+	/* 207 */	NULL, /* unimplemented */
+	/* 208 */	NULL, /* unimplemented */
+	/* 209 */	NULL, /* unimplemented */
+	/* 210 */	NULL, /* unimplemented */
+	/* 211 */	NULL, /* unimplemented */
+	/* 212 */	NULL, /* unimplemented */
+	/* 213 */	NULL, /* unimplemented */
+	/* 214 */	NULL, /* unimplemented */
+	/* 215 */	NULL, /* unimplemented */
+	/* 216 */	NULL, /* unimplemented */
+	/* 217 */	NULL, /* unimplemented */
+	/* 218 */	NULL, /* unimplemented */
+	/* 219 */	NULL, /* unimplemented */
+	/* 220 */	NULL, /* unimplemented */
+	/* 221 */	NULL, /* unimplemented */
+	/* 222 */	NULL, /* unimplemented */
+	/* 223 */	NULL, /* unimplemented */
+	/* 224 */	NULL, /* unimplemented */
+	/* 225 */	NULL, /* unimplemented */
+	/* 226 */	NULL, /* unimplemented */
+	/* 227 */	NULL, /* unimplemented */
+	/* 228 */	NULL, /* unimplemented */
+	/* 229 */	NULL, /* unimplemented */
+	/* 230 */	NULL, /* unimplemented */
+	/* 231 */	NULL, /* unimplemented */
+	/* 232 */	NULL, /* unimplemented */
+	/* 233 */	NULL, /* unimplemented 1 utc_gettime */
+	/* 234 */	NULL, /* unimplemented 2 utc_adjtime */
+	/* 235 */	NULL, /* unimplemented */
+	/* 236 */	NULL, /* unimplemented */
+	/* 237 */	NULL, /* unimplemented */
+	/* 238 */	NULL, /* unimplemented */
+	/* 239 */	NULL, /* unimplemented */
+	/* 240 */	NULL, /* unimplemented */
+	/* 241 */	NULL, /* unimplemented */
+	/* 242 */	NULL, /* unimplemented */
+	/* 243 */	NULL, /* unimplemented */
+	/* 244 */	NULL, /* unimplemented */
+	/* 245 */	NULL, /* unimplemented */
+	/* 246 */	NULL, /* unimplemented */
+	/* 247 */	NULL, /* unimplemented */
+	/* 248 */	NULL, /* unimplemented */
+	/* 249 */	NULL, /* unimplemented */
+	/* 250 */	NULL, /* unimplemented */
+	/* 251 */	NULL, /* unimplemented */
+	/* 252 */	NULL, /* unimplemented audctl / * Make no-op for installation on Ultrix rootpartition? * / */
+	/* 253 */	NULL, /* unimplemented audgen / * Make no-op for installation on Ultrix rootpartition? * / */
+	/* 254 */	NULL, /* unimplemented startcpu */
+	/* 255 */	NULL, /* unimplemented stopcpu */
+	/* 256 */	NULL, /* getsysinfo */
+	/* 257 */	NULL, /* setsysinfo */
+	/* 258 */	NULL, /* filler */
+	/* 259 */	NULL, /* filler */
+	/* 260 */	NULL, /* filler */
+	/* 261 */	NULL, /* filler */
+	/* 262 */	NULL, /* filler */
+	/* 263 */	NULL, /* filler */
+	/* 264 */	NULL, /* filler */
+	/* 265 */	NULL, /* filler */
+	/* 266 */	NULL, /* filler */
+	/* 267 */	NULL, /* filler */
+	/* 268 */	NULL, /* filler */
+	/* 269 */	NULL, /* filler */
+	/* 270 */	NULL, /* filler */
+	/* 271 */	NULL, /* filler */
+	/* 272 */	NULL, /* filler */
+	/* 273 */	NULL, /* filler */
+	/* 274 */	NULL, /* filler */
+	/* 275 */	NULL, /* filler */
+	/* 276 */	NULL, /* filler */
+	/* 277 */	NULL, /* filler */
+	/* 278 */	NULL, /* filler */
+	/* 279 */	NULL, /* filler */
+	/* 280 */	NULL, /* filler */
+	/* 281 */	NULL, /* filler */
+	/* 282 */	NULL, /* filler */
+	/* 283 */	NULL, /* filler */
+	/* 284 */	NULL, /* filler */
+	/* 285 */	NULL, /* filler */
+	/* 286 */	NULL, /* filler */
+	/* 287 */	NULL, /* filler */
+	/* 288 */	NULL, /* filler */
+	/* 289 */	NULL, /* filler */
+	/* 290 */	NULL, /* filler */
+	/* 291 */	NULL, /* filler */
+	/* 292 */	NULL, /* filler */
+	/* 293 */	NULL, /* filler */
+	/* 294 */	NULL, /* filler */
+	/* 295 */	NULL, /* filler */
+	/* 296 */	NULL, /* filler */
+	/* 297 */	NULL, /* filler */
+	/* 298 */	NULL, /* filler */
+	/* 299 */	NULL, /* filler */
+	/* 300 */	NULL, /* filler */
+	/* 301 */	NULL, /* filler */
+	/* 302 */	NULL, /* filler */
+	/* 303 */	NULL, /* filler */
+	/* 304 */	NULL, /* filler */
+	/* 305 */	NULL, /* filler */
+	/* 306 */	NULL, /* filler */
+	/* 307 */	NULL, /* filler */
+	/* 308 */	NULL, /* filler */
+	/* 309 */	NULL, /* filler */
+	/* 310 */	NULL, /* filler */
+	/* 311 */	NULL, /* filler */
+	/* 312 */	NULL, /* filler */
+	/* 313 */	NULL, /* filler */
+	/* 314 */	NULL, /* filler */
+	/* 315 */	NULL, /* filler */
+	/* 316 */	NULL, /* filler */
+	/* 317 */	NULL, /* filler */
+	/* 318 */	NULL, /* filler */
+	/* 319 */	NULL, /* filler */
+	/* 320 */	NULL, /* filler */
+	/* 321 */	NULL, /* filler */
+	/* 322 */	NULL, /* filler */
+	/* 323 */	NULL, /* filler */
+	/* 324 */	NULL, /* filler */
+	/* 325 */	NULL, /* filler */
+	/* 326 */	NULL, /* filler */
+	/* 327 */	NULL, /* filler */
+	/* 328 */	NULL, /* filler */
+	/* 329 */	NULL, /* filler */
+	/* 330 */	NULL, /* filler */
+	/* 331 */	NULL, /* filler */
+	/* 332 */	NULL, /* filler */
+	/* 333 */	NULL, /* filler */
+	/* 334 */	NULL, /* filler */
+	/* 335 */	NULL, /* filler */
+	/* 336 */	NULL, /* filler */
+	/* 337 */	NULL, /* filler */
+	/* 338 */	NULL, /* filler */
+	/* 339 */	NULL, /* filler */
+	/* 340 */	NULL, /* filler */
+	/* 341 */	NULL, /* filler */
+	/* 342 */	NULL, /* filler */
+	/* 343 */	NULL, /* filler */
+	/* 344 */	NULL, /* filler */
+	/* 345 */	NULL, /* filler */
+	/* 346 */	NULL, /* filler */
+	/* 347 */	NULL, /* filler */
+	/* 348 */	NULL, /* filler */
+	/* 349 */	NULL, /* filler */
+	/* 350 */	NULL, /* filler */
+	/* 351 */	NULL, /* filler */
+	/* 352 */	NULL, /* filler */
+	/* 353 */	NULL, /* filler */
+	/* 354 */	NULL, /* filler */
+	/* 355 */	NULL, /* filler */
+	/* 356 */	NULL, /* filler */
+	/* 357 */	NULL, /* filler */
+	/* 358 */	NULL, /* filler */
+	/* 359 */	NULL, /* filler */
+	/* 360 */	NULL, /* filler */
+	/* 361 */	NULL, /* filler */
+	/* 362 */	NULL, /* filler */
+	/* 363 */	NULL, /* filler */
+	/* 364 */	NULL, /* filler */
+	/* 365 */	NULL, /* filler */
+	/* 366 */	NULL, /* filler */
+	/* 367 */	NULL, /* filler */
+	/* 368 */	NULL, /* filler */
+	/* 369 */	NULL, /* filler */
+	/* 370 */	NULL, /* filler */
+	/* 371 */	NULL, /* filler */
+	/* 372 */	NULL, /* filler */
+	/* 373 */	NULL, /* filler */
+	/* 374 */	NULL, /* filler */
+	/* 375 */	NULL, /* filler */
+	/* 376 */	NULL, /* filler */
+	/* 377 */	NULL, /* filler */
+	/* 378 */	NULL, /* filler */
+	/* 379 */	NULL, /* filler */
+	/* 380 */	NULL, /* filler */
+	/* 381 */	NULL, /* filler */
+	/* 382 */	NULL, /* filler */
+	/* 383 */	NULL, /* filler */
+	/* 384 */	NULL, /* filler */
+	/* 385 */	NULL, /* filler */
+	/* 386 */	NULL, /* filler */
+	/* 387 */	NULL, /* filler */
+	/* 388 */	NULL, /* filler */
+	/* 389 */	NULL, /* filler */
+	/* 390 */	NULL, /* filler */
+	/* 391 */	NULL, /* filler */
+	/* 392 */	NULL, /* filler */
+	/* 393 */	NULL, /* filler */
+	/* 394 */	NULL, /* filler */
+	/* 395 */	NULL, /* filler */
+	/* 396 */	NULL, /* filler */
+	/* 397 */	NULL, /* filler */
+	/* 398 */	NULL, /* filler */
+	/* 399 */	NULL, /* filler */
+	/* 400 */	NULL, /* filler */
+	/* 401 */	NULL, /* filler */
+	/* 402 */	NULL, /* filler */
+	/* 403 */	NULL, /* filler */
+	/* 404 */	NULL, /* filler */
+	/* 405 */	NULL, /* filler */
+	/* 406 */	NULL, /* filler */
+	/* 407 */	NULL, /* filler */
+	/* 408 */	NULL, /* filler */
+	/* 409 */	NULL, /* filler */
+	/* 410 */	NULL, /* filler */
+	/* 411 */	NULL, /* filler */
+	/* 412 */	NULL, /* filler */
+	/* 413 */	NULL, /* filler */
+	/* 414 */	NULL, /* filler */
+	/* 415 */	NULL, /* filler */
+	/* 416 */	NULL, /* filler */
+	/* 417 */	NULL, /* filler */
+	/* 418 */	NULL, /* filler */
+	/* 419 */	NULL, /* filler */
+	/* 420 */	NULL, /* filler */
+	/* 421 */	NULL, /* filler */
+	/* 422 */	NULL, /* filler */
+	/* 423 */	NULL, /* filler */
+	/* 424 */	NULL, /* filler */
+	/* 425 */	NULL, /* filler */
+	/* 426 */	NULL, /* filler */
+	/* 427 */	NULL, /* filler */
+	/* 428 */	NULL, /* filler */
+	/* 429 */	NULL, /* filler */
+	/* 430 */	NULL, /* filler */
+	/* 431 */	NULL, /* filler */
+	/* 432 */	NULL, /* filler */
+	/* 433 */	NULL, /* filler */
+	/* 434 */	NULL, /* filler */
+	/* 435 */	NULL, /* filler */
+	/* 436 */	NULL, /* filler */
+	/* 437 */	NULL, /* filler */
+	/* 438 */	NULL, /* filler */
+	/* 439 */	NULL, /* filler */
+	/* 440 */	NULL, /* filler */
+	/* 441 */	NULL, /* filler */
+	/* 442 */	NULL, /* filler */
+	/* 443 */	NULL, /* filler */
+	/* 444 */	NULL, /* filler */
+	/* 445 */	NULL, /* filler */
+	/* 446 */	NULL, /* filler */
+	/* 447 */	NULL, /* filler */
+	/* 448 */	NULL, /* filler */
+	/* 449 */	NULL, /* filler */
+	/* 450 */	NULL, /* filler */
+	/* 451 */	NULL, /* filler */
+	/* 452 */	NULL, /* filler */
+	/* 453 */	NULL, /* filler */
+	/* 454 */	NULL, /* filler */
+	/* 455 */	NULL, /* filler */
+	/* 456 */	NULL, /* filler */
+	/* 457 */	NULL, /* filler */
+	/* 458 */	NULL, /* filler */
+	/* 459 */	NULL, /* filler */
+	/* 460 */	NULL, /* filler */
+	/* 461 */	NULL, /* filler */
+	/* 462 */	NULL, /* filler */
+	/* 463 */	NULL, /* filler */
+	/* 464 */	NULL, /* filler */
+	/* 465 */	NULL, /* filler */
+	/* 466 */	NULL, /* filler */
+	/* 467 */	NULL, /* filler */
+	/* 468 */	NULL, /* filler */
+	/* 469 */	NULL, /* filler */
+	/* 470 */	NULL, /* filler */
+	/* 471 */	NULL, /* filler */
+	/* 472 */	NULL, /* filler */
+	/* 473 */	NULL, /* filler */
+	/* 474 */	NULL, /* filler */
+	/* 475 */	NULL, /* filler */
+	/* 476 */	NULL, /* filler */
+	/* 477 */	NULL, /* filler */
+	/* 478 */	NULL, /* filler */
+	/* 479 */	NULL, /* filler */
+	/* 480 */	NULL, /* filler */
+	/* 481 */	NULL, /* filler */
+	/* 482 */	NULL, /* filler */
+	/* 483 */	NULL, /* filler */
+	/* 484 */	NULL, /* filler */
+	/* 485 */	NULL, /* filler */
+	/* 486 */	NULL, /* filler */
+	/* 487 */	NULL, /* filler */
+	/* 488 */	NULL, /* filler */
+	/* 489 */	NULL, /* filler */
+	/* 490 */	NULL, /* filler */
+	/* 491 */	NULL, /* filler */
+	/* 492 */	NULL, /* filler */
+	/* 493 */	NULL, /* filler */
+	/* 494 */	NULL, /* filler */
+	/* 495 */	NULL, /* filler */
+	/* 496 */	NULL, /* filler */
+	/* 497 */	NULL, /* filler */
+	/* 498 */	NULL, /* filler */
+	/* 499 */	NULL, /* filler */
+	/* 500 */	NULL, /* filler */
+	/* 501 */	NULL, /* filler */
+	/* 502 */	NULL, /* filler */
+	/* 503 */	NULL, /* filler */
+	/* 504 */	NULL, /* filler */
+	/* 505 */	NULL, /* filler */
+	/* 506 */	NULL, /* filler */
+	/* 507 */	NULL, /* filler */
+	/* 508 */	NULL, /* filler */
+	/* 509 */	NULL, /* filler */
+	/* 510 */	NULL, /* filler */
+	/* 511 */	NULL, /* filler */
+};
diff --git a/sys/compat/ultrix/ultrix_sysent.c b/sys/compat/ultrix/ultrix_sysent.c
index d5b9349..bf3a38e 100644
--- a/sys/compat/ultrix/ultrix_sysent.c
+++ b/sys/compat/ultrix/ultrix_sysent.c
@@ -1,4 +1,4 @@
-/* $NetBSD: ultrix_sysent.c,v 1.65 2013/11/07 19:39:58 njoly Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ultrix_sysent.c,v 1.65 2013/11/07 19:39:58 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -24,1034 +24,1034 @@ __KERNEL_RCSID(0, "$NetBSD: ultrix_sysent.c,v 1.65 2013/11/07 19:39:58 njoly Exp
 
 struct sysent ultrix_sysent[] = {
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_nosys },		/* 0 = syscall */
+	    (sy_call_t *)sys_nosys, 0, 0 },		/* 0 = syscall */
 	{ ns(struct sys_exit_args), 0,
-	    (sy_call_t *)sys_exit },		/* 1 = exit */
+	    (sy_call_t *)sys_exit, 0, 0 },		/* 1 = exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct sys_read_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_read },		/* 3 = read */
+	    (sy_call_t *)sys_read, 0, 0 },		/* 3 = read */
 	{ ns(struct sys_write_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_write },		/* 4 = write */
+	    (sy_call_t *)sys_write, 0, 0 },		/* 4 = write */
 	{ ns(struct ultrix_sys_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_open },	/* 5 = open */
+	    (sy_call_t *)ultrix_sys_open, 0, 0 },	/* 5 = open */
 	{ ns(struct sys_close_args), 0,
-	    (sy_call_t *)sys_close },		/* 6 = close */
+	    (sy_call_t *)sys_close, 0, 0 },		/* 6 = close */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_wait },	/* 7 = owait */
+	    (sy_call_t *)compat_43_sys_wait, 0, 0 },	/* 7 = owait */
 	{ ns(struct ultrix_sys_creat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_creat },	/* 8 = creat */
+	    (sy_call_t *)ultrix_sys_creat, 0, 0 },	/* 8 = creat */
 	{ ns(struct sys_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_link },		/* 9 = link */
+	    (sy_call_t *)sys_link, 0, 0 },		/* 9 = link */
 	{ ns(struct sys_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_unlink },		/* 10 = unlink */
+	    (sy_call_t *)sys_unlink, 0, 0 },		/* 10 = unlink */
 	{ ns(struct ultrix_sys_execv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_execv },	/* 11 = execv */
+	    (sy_call_t *)ultrix_sys_execv, 0, 0 },	/* 11 = execv */
 	{ ns(struct sys_chdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chdir },		/* 12 = chdir */
+	    (sy_call_t *)sys_chdir, 0, 0 },		/* 12 = chdir */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 13 = obsolete time */
+	    sys_nosys, 0, 0 },			/* 13 = obsolete time */
 	{ ns(struct ultrix_sys_mknod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_mknod },	/* 14 = mknod */
+	    (sy_call_t *)ultrix_sys_mknod, 0, 0 },	/* 14 = mknod */
 	{ ns(struct sys_chmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chmod },		/* 15 = chmod */
+	    (sy_call_t *)sys_chmod, 0, 0 },		/* 15 = chmod */
 	{ ns(struct sys___posix_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_chown },	/* 16 = __posix_chown */
+	    (sy_call_t *)sys___posix_chown, 0, 0 },	/* 16 = __posix_chown */
 	{ ns(struct sys_obreak_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_obreak },		/* 17 = break */
+	    (sy_call_t *)sys_obreak, 0, 0 },		/* 17 = break */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 18 = obsolete stat */
+	    sys_nosys, 0, 0 },			/* 18 = obsolete stat */
 	{ ns(struct compat_43_sys_lseek_args), 0,
-	    (sy_call_t *)compat_43_sys_lseek },	/* 19 = lseek */
+	    (sy_call_t *)compat_43_sys_lseek, 0, 0 },	/* 19 = lseek */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid },		/* 20 = getpid */
+	    (sy_call_t *)sys_getpid, 0, 0 },		/* 20 = getpid */
 	{ ns(struct ultrix_sys_mount_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_mount },	/* 21 = mount */
+	    (sy_call_t *)ultrix_sys_mount, 0, 0 },	/* 21 = mount */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 22 = obsolete sysV_unmount */
+	    sys_nosys, 0, 0 },			/* 22 = obsolete sysV_unmount */
 	{ ns(struct sys_setuid_args), 0,
-	    (sy_call_t *)sys_setuid },		/* 23 = setuid */
+	    (sy_call_t *)sys_setuid, 0, 0 },		/* 23 = setuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid },		/* 24 = getuid */
+	    (sy_call_t *)sys_getuid, 0, 0 },		/* 24 = getuid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 25 = obsolete v7 stime */
+	    sys_nosys, 0, 0 },			/* 25 = obsolete v7 stime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 26 = obsolete v7 ptrace */
+	    sys_nosys, 0, 0 },			/* 26 = obsolete v7 ptrace */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 27 = obsolete v7 alarm */
+	    sys_nosys, 0, 0 },			/* 27 = obsolete v7 alarm */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 28 = obsolete v7 fstat */
+	    sys_nosys, 0, 0 },			/* 28 = obsolete v7 fstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 29 = obsolete v7 pause */
+	    sys_nosys, 0, 0 },			/* 29 = obsolete v7 pause */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 30 = obsolete v7 utime */
+	    sys_nosys, 0, 0 },			/* 30 = obsolete v7 utime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 31 = obsolete v7 stty */
+	    sys_nosys, 0, 0 },			/* 31 = obsolete v7 stty */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 32 = obsolete v7 gtty */
+	    sys_nosys, 0, 0 },			/* 32 = obsolete v7 gtty */
 	{ ns(struct ultrix_sys_access_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_access },	/* 33 = access */
+	    (sy_call_t *)ultrix_sys_access, 0, 0 },	/* 33 = access */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 34 = obsolete v7 nice */
+	    sys_nosys, 0, 0 },			/* 34 = obsolete v7 nice */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 35 = obsolete v7 ftime */
+	    sys_nosys, 0, 0 },			/* 35 = obsolete v7 ftime */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct sys_kill_args), 0,
-	    (sy_call_t *)sys_kill },		/* 37 = kill */
+	    (sy_call_t *)sys_kill, 0, 0 },		/* 37 = kill */
 	{ ns(struct ultrix_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_stat },	/* 38 = stat43 */
+	    (sy_call_t *)ultrix_sys_stat, 0, 0 },	/* 38 = stat43 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 39 = obsolete v7 setpgrp */
+	    sys_nosys, 0, 0 },			/* 39 = obsolete v7 setpgrp */
 	{ ns(struct ultrix_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_lstat },	/* 40 = lstat43 */
+	    (sy_call_t *)ultrix_sys_lstat, 0, 0 },	/* 40 = lstat43 */
 	{ ns(struct sys_dup_args), 0,
-	    (sy_call_t *)sys_dup },		/* 41 = dup */
+	    (sy_call_t *)sys_dup, 0, 0 },		/* 41 = dup */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_pipe },		/* 42 = pipe */
+	    (sy_call_t *)sys_pipe, 0, 0 },		/* 42 = pipe */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 43 = obsolete v7 times */
+	    sys_nosys, 0, 0 },			/* 43 = obsolete v7 times */
 	{ ns(struct sys_profil_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_profil },		/* 44 = profil */
+	    (sy_call_t *)sys_profil, 0, 0 },		/* 44 = profil */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 45 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 45 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 46 = obsolete v7 setgid */
+	    sys_nosys, 0, 0 },			/* 46 = obsolete v7 setgid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid },		/* 47 = getgid */
+	    (sy_call_t *)sys_getgid, 0, 0 },		/* 47 = getgid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 48 = unimplemented ssig */
+	    sys_nosys, 0, 0 },			/* 48 = unimplemented ssig */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 49 = unimplemented reserved for USG */
+	    sys_nosys, 0, 0 },			/* 49 = unimplemented reserved for USG */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 50 = unimplemented reserved for USG */
+	    sys_nosys, 0, 0 },			/* 50 = unimplemented reserved for USG */
 	{ ns(struct sys_acct_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_acct },		/* 51 = acct */
+	    (sy_call_t *)sys_acct, 0, 0 },		/* 51 = acct */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 52 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 52 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 53 = unimplemented syslock */
+	    sys_nosys, 0, 0 },			/* 53 = unimplemented syslock */
 	{ ns(struct ultrix_sys_ioctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_ioctl },	/* 54 = ioctl */
+	    (sy_call_t *)ultrix_sys_ioctl, 0, 0 },	/* 54 = ioctl */
 	{ ns(struct sys_reboot_args), 0,
-	    (sy_call_t *)sys_reboot },		/* 55 = reboot */
+	    (sy_call_t *)sys_reboot, 0, 0 },		/* 55 = reboot */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 56 = unimplemented v7 mpxchan */
+	    sys_nosys, 0, 0 },			/* 56 = unimplemented v7 mpxchan */
 	{ ns(struct sys_symlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlink },		/* 57 = symlink */
+	    (sy_call_t *)sys_symlink, 0, 0 },		/* 57 = symlink */
 	{ ns(struct sys_readlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlink },	/* 58 = readlink */
+	    (sy_call_t *)sys_readlink, 0, 0 },	/* 58 = readlink */
 	{ ns(struct ultrix_sys_execve_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_execve },	/* 59 = execve */
+	    (sy_call_t *)ultrix_sys_execve, 0, 0 },	/* 59 = execve */
 	{ ns(struct sys_umask_args), 0,
-	    (sy_call_t *)sys_umask },		/* 60 = umask */
+	    (sy_call_t *)sys_umask, 0, 0 },		/* 60 = umask */
 	{ ns(struct sys_chroot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chroot },		/* 61 = chroot */
+	    (sy_call_t *)sys_chroot, 0, 0 },		/* 61 = chroot */
 	{ ns(struct compat_43_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_fstat },	/* 62 = fstat */
+	    (sy_call_t *)compat_43_sys_fstat, 0, 0 },	/* 62 = fstat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 63 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 63 = unimplemented */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_getpagesize },/* 64 = getpagesize */
+	    (sy_call_t *)compat_43_sys_getpagesize, 0, 0 },/* 64 = getpagesize */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 65 = unimplemented mremap */
+	    sys_nosys, 0, 0 },			/* 65 = unimplemented mremap */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_vfork },		/* 66 = vfork */
+	    (sy_call_t *)sys_vfork, 0, 0 },		/* 66 = vfork */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 67 = obsolete vread */
+	    sys_nosys, 0, 0 },			/* 67 = obsolete vread */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 68 = obsolete vwrite */
+	    sys_nosys, 0, 0 },			/* 68 = obsolete vwrite */
 	{ ns(struct sys_sbrk_args), 0,
-	    (sy_call_t *)sys_sbrk },		/* 69 = sbrk */
+	    (sy_call_t *)sys_sbrk, 0, 0 },		/* 69 = sbrk */
 	{ ns(struct sys_sstk_args), 0,
-	    (sy_call_t *)sys_sstk },		/* 70 = sstk */
+	    (sy_call_t *)sys_sstk, 0, 0 },		/* 70 = sstk */
 	{ ns(struct ultrix_sys_mmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_mmap },	/* 71 = mmap */
+	    (sy_call_t *)ultrix_sys_mmap, 0, 0 },	/* 71 = mmap */
 	{ ns(struct sys_ovadvise_args), 0,
-	    (sy_call_t *)sys_ovadvise },	/* 72 = vadvise */
+	    (sy_call_t *)sys_ovadvise, 0, 0 },	/* 72 = vadvise */
 	{ ns(struct sys_munmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munmap },		/* 73 = munmap */
+	    (sy_call_t *)sys_munmap, 0, 0 },		/* 73 = munmap */
 	{ ns(struct sys_mprotect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mprotect },	/* 74 = mprotect */
+	    (sy_call_t *)sys_mprotect, 0, 0 },	/* 74 = mprotect */
 	{ ns(struct sys_madvise_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_madvise },		/* 75 = madvise */
+	    (sy_call_t *)sys_madvise, 0, 0 },		/* 75 = madvise */
 	{ 0, 0, 0,
-	    (sy_call_t *)ultrix_sys_vhangup },	/* 76 = vhangup */
+	    (sy_call_t *)ultrix_sys_vhangup, 0, 0 },	/* 76 = vhangup */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 77 = unimplemented old vlimit */
+	    sys_nosys, 0, 0 },			/* 77 = unimplemented old vlimit */
 	{ ns(struct sys_mincore_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mincore },		/* 78 = mincore */
+	    (sy_call_t *)sys_mincore, 0, 0 },		/* 78 = mincore */
 	{ ns(struct sys_getgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getgroups },	/* 79 = getgroups */
+	    (sy_call_t *)sys_getgroups, 0, 0 },	/* 79 = getgroups */
 	{ ns(struct sys_setgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setgroups },	/* 80 = setgroups */
+	    (sy_call_t *)sys_setgroups, 0, 0 },	/* 80 = setgroups */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpgrp },		/* 81 = getpgrp */
+	    (sy_call_t *)sys_getpgrp, 0, 0 },		/* 81 = getpgrp */
 	{ ns(struct ultrix_sys_setpgrp_args), 0,
-	    (sy_call_t *)ultrix_sys_setpgrp },	/* 82 = setpgrp */
+	    (sy_call_t *)ultrix_sys_setpgrp, 0, 0 },	/* 82 = setpgrp */
 	{ ns(struct sys___setitimer50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___setitimer50 },	/* 83 = __setitimer50 */
+	    (sy_call_t *)sys___setitimer50, 0, 0 },	/* 83 = __setitimer50 */
 	{ ns(struct ultrix_sys_wait3_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_wait3 },	/* 84 = wait3 */
+	    (sy_call_t *)ultrix_sys_wait3, 0, 0 },	/* 84 = wait3 */
 	{ ns(struct compat_12_sys_swapon_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_12_sys_swapon },/* 85 = swapon */
+	    (sy_call_t *)compat_12_sys_swapon, 0, 0 },/* 85 = swapon */
 	{ ns(struct sys___getitimer50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getitimer50 },	/* 86 = __getitimer50 */
+	    (sy_call_t *)sys___getitimer50, 0, 0 },	/* 86 = __getitimer50 */
 	{ ns(struct compat_43_sys_gethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_gethostname },/* 87 = gethostname */
+	    (sy_call_t *)compat_43_sys_gethostname, 0, 0 },/* 87 = gethostname */
 	{ ns(struct compat_43_sys_sethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sethostname },/* 88 = sethostname */
+	    (sy_call_t *)compat_43_sys_sethostname, 0, 0 },/* 88 = sethostname */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_getdtablesize },/* 89 = getdtablesize */
+	    (sy_call_t *)compat_43_sys_getdtablesize, 0, 0 },/* 89 = getdtablesize */
 	{ ns(struct sys_dup2_args), 0,
-	    (sy_call_t *)sys_dup2 },		/* 90 = dup2 */
+	    (sy_call_t *)sys_dup2, 0, 0 },		/* 90 = dup2 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 91 = unimplemented getdopt */
+	    sys_nosys, 0, 0 },			/* 91 = unimplemented getdopt */
 	{ ns(struct ultrix_sys_fcntl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_fcntl },	/* 92 = fcntl */
+	    (sy_call_t *)ultrix_sys_fcntl, 0, 0 },	/* 92 = fcntl */
 	{ ns(struct ultrix_sys_select_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_select },	/* 93 = select */
+	    (sy_call_t *)ultrix_sys_select, 0, 0 },	/* 93 = select */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 94 = unimplemented setdopt */
+	    sys_nosys, 0, 0 },			/* 94 = unimplemented setdopt */
 	{ ns(struct sys_fsync_args), 0,
-	    (sy_call_t *)sys_fsync },		/* 95 = fsync */
+	    (sy_call_t *)sys_fsync, 0, 0 },		/* 95 = fsync */
 	{ ns(struct sys_setpriority_args), 0,
-	    (sy_call_t *)sys_setpriority },	/* 96 = setpriority */
+	    (sy_call_t *)sys_setpriority, 0, 0 },	/* 96 = setpriority */
 	{ ns(struct compat_30_sys_socket_args), 0,
-	    (sy_call_t *)compat_30_sys_socket },/* 97 = socket */
+	    (sy_call_t *)compat_30_sys_socket, 0, 0 },/* 97 = socket */
 	{ ns(struct sys_connect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_connect },		/* 98 = connect */
+	    (sy_call_t *)sys_connect, 0, 0 },		/* 98 = connect */
 	{ ns(struct compat_43_sys_accept_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_accept },/* 99 = accept */
+	    (sy_call_t *)compat_43_sys_accept, 0, 0 },/* 99 = accept */
 	{ ns(struct sys_getpriority_args), 0,
-	    (sy_call_t *)sys_getpriority },	/* 100 = getpriority */
+	    (sy_call_t *)sys_getpriority, 0, 0 },	/* 100 = getpriority */
 	{ ns(struct compat_43_sys_send_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_send },	/* 101 = send */
+	    (sy_call_t *)compat_43_sys_send, 0, 0 },	/* 101 = send */
 	{ ns(struct compat_43_sys_recv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recv },	/* 102 = recv */
+	    (sy_call_t *)compat_43_sys_recv, 0, 0 },	/* 102 = recv */
 	{ ns(struct ultrix_sys_sigreturn_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_sigreturn },/* 103 = sigreturn */
+	    (sy_call_t *)ultrix_sys_sigreturn, 0, 0 },/* 103 = sigreturn */
 	{ ns(struct sys_bind_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_bind },		/* 104 = bind */
+	    (sy_call_t *)sys_bind, 0, 0 },		/* 104 = bind */
 	{ ns(struct ultrix_sys_setsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_setsockopt },/* 105 = setsockopt */
+	    (sy_call_t *)ultrix_sys_setsockopt, 0, 0 },/* 105 = setsockopt */
 	{ ns(struct sys_listen_args), 0,
-	    (sy_call_t *)sys_listen },		/* 106 = listen */
+	    (sy_call_t *)sys_listen, 0, 0 },		/* 106 = listen */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 107 = unimplemented vtimes */
+	    sys_nosys, 0, 0 },			/* 107 = unimplemented vtimes */
 	{ ns(struct ultrix_sys_sigvec_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_sigvec },	/* 108 = sigvec */
+	    (sy_call_t *)ultrix_sys_sigvec, 0, 0 },	/* 108 = sigvec */
 	{ ns(struct compat_43_sys_sigblock_args), 0,
-	    (sy_call_t *)compat_43_sys_sigblock },/* 109 = sigblock */
+	    (sy_call_t *)compat_43_sys_sigblock, 0, 0 },/* 109 = sigblock */
 	{ ns(struct compat_43_sys_sigsetmask_args), 0,
-	    (sy_call_t *)compat_43_sys_sigsetmask },/* 110 = sigsetmask */
+	    (sy_call_t *)compat_43_sys_sigsetmask, 0, 0 },/* 110 = sigsetmask */
 	{ ns(struct ultrix_sys_sigsuspend_args), 0,
-	    (sy_call_t *)ultrix_sys_sigsuspend },/* 111 = sigsuspend */
+	    (sy_call_t *)ultrix_sys_sigsuspend, 0, 0 },/* 111 = sigsuspend */
 	{ ns(struct compat_43_sys_sigstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sigstack },/* 112 = sigstack */
+	    (sy_call_t *)compat_43_sys_sigstack, 0, 0 },/* 112 = sigstack */
 	{ ns(struct compat_43_sys_recvmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recvmsg },/* 113 = recvmsg */
+	    (sy_call_t *)compat_43_sys_recvmsg, 0, 0 },/* 113 = recvmsg */
 	{ ns(struct compat_43_sys_sendmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_sendmsg },/* 114 = sendmsg */
+	    (sy_call_t *)compat_43_sys_sendmsg, 0, 0 },/* 114 = sendmsg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 115 = obsolete vtrace */
+	    sys_nosys, 0, 0 },			/* 115 = obsolete vtrace */
 	{ ns(struct sys___gettimeofday50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___gettimeofday50 },/* 116 = __gettimeofday50 */
+	    (sy_call_t *)sys___gettimeofday50, 0, 0 },/* 116 = __gettimeofday50 */
 	{ ns(struct sys___getrusage50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getrusage50 },	/* 117 = __getrusage50 */
+	    (sy_call_t *)sys___getrusage50, 0, 0 },	/* 117 = __getrusage50 */
 	{ ns(struct sys_getsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getsockopt },	/* 118 = getsockopt */
+	    (sy_call_t *)sys_getsockopt, 0, 0 },	/* 118 = getsockopt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 119 = unimplemented resuba */
+	    sys_nosys, 0, 0 },			/* 119 = unimplemented resuba */
 	{ ns(struct sys_readv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readv },		/* 120 = readv */
+	    (sy_call_t *)sys_readv, 0, 0 },		/* 120 = readv */
 	{ ns(struct sys_writev_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_writev },		/* 121 = writev */
+	    (sy_call_t *)sys_writev, 0, 0 },		/* 121 = writev */
 	{ ns(struct sys___settimeofday50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___settimeofday50 },/* 122 = __settimeofday50 */
+	    (sy_call_t *)sys___settimeofday50, 0, 0 },/* 122 = __settimeofday50 */
 	{ ns(struct sys___posix_fchown_args), 0,
-	    (sy_call_t *)sys___posix_fchown },	/* 123 = __posix_fchown */
+	    (sy_call_t *)sys___posix_fchown, 0, 0 },	/* 123 = __posix_fchown */
 	{ ns(struct sys_fchmod_args), 0,
-	    (sy_call_t *)sys_fchmod },		/* 124 = fchmod */
+	    (sy_call_t *)sys_fchmod, 0, 0 },		/* 124 = fchmod */
 	{ ns(struct compat_43_sys_recvfrom_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_recvfrom },/* 125 = recvfrom */
+	    (sy_call_t *)compat_43_sys_recvfrom, 0, 0 },/* 125 = recvfrom */
 	{ ns(struct sys_setreuid_args), 0,
-	    (sy_call_t *)sys_setreuid },	/* 126 = setreuid */
+	    (sy_call_t *)sys_setreuid, 0, 0 },	/* 126 = setreuid */
 	{ ns(struct sys_setregid_args), 0,
-	    (sy_call_t *)sys_setregid },	/* 127 = setregid */
+	    (sy_call_t *)sys_setregid, 0, 0 },	/* 127 = setregid */
 	{ ns(struct sys_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rename },		/* 128 = rename */
+	    (sy_call_t *)sys_rename, 0, 0 },		/* 128 = rename */
 	{ ns(struct compat_43_sys_truncate_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_truncate },/* 129 = truncate */
+	    (sy_call_t *)compat_43_sys_truncate, 0, 0 },/* 129 = truncate */
 	{ ns(struct compat_43_sys_ftruncate_args), 0,
-	    (sy_call_t *)compat_43_sys_ftruncate },/* 130 = ftruncate */
+	    (sy_call_t *)compat_43_sys_ftruncate, 0, 0 },/* 130 = ftruncate */
 	{ ns(struct sys_flock_args), 0,
-	    (sy_call_t *)sys_flock },		/* 131 = flock */
+	    (sy_call_t *)sys_flock, 0, 0 },		/* 131 = flock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 132 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 132 = unimplemented */
 	{ ns(struct sys_sendto_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_sendto },		/* 133 = sendto */
+	    (sy_call_t *)sys_sendto, 0, 0 },		/* 133 = sendto */
 	{ ns(struct sys_shutdown_args), 0,
-	    (sy_call_t *)sys_shutdown },	/* 134 = shutdown */
+	    (sy_call_t *)sys_shutdown, 0, 0 },	/* 134 = shutdown */
 	{ ns(struct sys_socketpair_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_socketpair },	/* 135 = socketpair */
+	    (sy_call_t *)sys_socketpair, 0, 0 },	/* 135 = socketpair */
 	{ ns(struct sys_mkdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdir },		/* 136 = mkdir */
+	    (sy_call_t *)sys_mkdir, 0, 0 },		/* 136 = mkdir */
 	{ ns(struct sys_rmdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rmdir },		/* 137 = rmdir */
+	    (sy_call_t *)sys_rmdir, 0, 0 },		/* 137 = rmdir */
 	{ ns(struct sys___utimes50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___utimes50 },	/* 138 = __utimes50 */
+	    (sy_call_t *)sys___utimes50, 0, 0 },	/* 138 = __utimes50 */
 	{ ns(struct ultrix_sys_sigcleanup_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_sigcleanup },/* 139 = sigcleanup */
+	    (sy_call_t *)ultrix_sys_sigcleanup, 0, 0 },/* 139 = sigcleanup */
 	{ ns(struct sys___adjtime50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___adjtime50 },	/* 140 = __adjtime50 */
+	    (sy_call_t *)sys___adjtime50, 0, 0 },	/* 140 = __adjtime50 */
 	{ ns(struct compat_43_sys_getpeername_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getpeername },/* 141 = getpeername */
+	    (sy_call_t *)compat_43_sys_getpeername, 0, 0 },/* 141 = getpeername */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_43_sys_gethostid },/* 142 = gethostid */
+	    (sy_call_t *)compat_43_sys_gethostid, 0, 0 },/* 142 = gethostid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 143 = unimplemented old sethostid */
+	    sys_nosys, 0, 0 },			/* 143 = unimplemented old sethostid */
 	{ ns(struct compat_43_sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getrlimit },/* 144 = getrlimit */
+	    (sy_call_t *)compat_43_sys_getrlimit, 0, 0 },/* 144 = getrlimit */
 	{ ns(struct compat_43_sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_setrlimit },/* 145 = setrlimit */
+	    (sy_call_t *)compat_43_sys_setrlimit, 0, 0 },/* 145 = setrlimit */
 	{ ns(struct compat_43_sys_killpg_args), 0,
-	    (sy_call_t *)compat_43_sys_killpg },/* 146 = killpg */
+	    (sy_call_t *)compat_43_sys_killpg, 0, 0 },/* 146 = killpg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 147 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 147 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 148 = unimplemented setquota */
+	    sys_nosys, 0, 0 },			/* 148 = unimplemented setquota */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 149 = unimplemented quota / * needs to be nullop to boot on Ultrix root partition * / */
+	    sys_nosys, 0, 0 },			/* 149 = unimplemented quota / * needs to be nullop to boot on Ultrix root partition * / */
 	{ ns(struct compat_43_sys_getsockname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getsockname },/* 150 = getsockname */
+	    (sy_call_t *)compat_43_sys_getsockname, 0, 0 },/* 150 = getsockname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 151 = unimplemented sysmips / * 4 args * / */
+	    sys_nosys, 0, 0 },			/* 151 = unimplemented sysmips / * 4 args * / */
 #ifdef __mips
 	{ ns(struct ultrix_sys_cacheflush_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_cacheflush },/* 152 = cacheflush */
+	    (sy_call_t *)ultrix_sys_cacheflush, 0, 0 },/* 152 = cacheflush */
 	{ ns(struct ultrix_sys_cachectl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_cachectl },	/* 153 = cachectl */
+	    (sy_call_t *)ultrix_sys_cachectl, 0, 0 },	/* 153 = cachectl */
 #else	/* !mips */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 152 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 152 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 153 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 153 = unimplemented */
 #endif	/* !mips */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 154 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 154 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 155 = unimplemented atomic_op */
+	    sys_nosys, 0, 0 },			/* 155 = unimplemented atomic_op */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 156 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 156 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 157 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 157 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 158 = unimplemented ultrix_sys_nfssvc */
+	    sys_nosys, 0, 0 },			/* 158 = unimplemented ultrix_sys_nfssvc */
 	{ ns(struct compat_43_sys_getdirentries_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_43_sys_getdirentries },/* 159 = getdirentries */
+	    (sy_call_t *)compat_43_sys_getdirentries, 0, 0 },/* 159 = getdirentries */
 	{ ns(struct ultrix_sys_statfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_statfs },	/* 160 = statfs */
+	    (sy_call_t *)ultrix_sys_statfs, 0, 0 },	/* 160 = statfs */
 	{ ns(struct ultrix_sys_fstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_fstatfs },	/* 161 = fstatfs */
+	    (sy_call_t *)ultrix_sys_fstatfs, 0, 0 },	/* 161 = fstatfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 162 = unimplemented umount */
+	    sys_nosys, 0, 0 },			/* 162 = unimplemented umount */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 163 = unimplemented async_daemon */
+	    sys_nosys, 0, 0 },			/* 163 = unimplemented async_daemon */
 	{ ns(struct compat_30_sys_getfh_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_30_sys_getfh },	/* 164 = getfh */
+	    (sy_call_t *)compat_30_sys_getfh, 0, 0 },	/* 164 = getfh */
 	{ ns(struct compat_09_sys_getdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_09_sys_getdomainname },/* 165 = getdomainname */
+	    (sy_call_t *)compat_09_sys_getdomainname, 0, 0 },/* 165 = getdomainname */
 	{ ns(struct compat_09_sys_setdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_09_sys_setdomainname },/* 166 = setdomainname */
+	    (sy_call_t *)compat_09_sys_setdomainname, 0, 0 },/* 166 = setdomainname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 167 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 167 = unimplemented */
 	{ ns(struct ultrix_sys_quotactl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_quotactl },	/* 168 = quotactl */
+	    (sy_call_t *)ultrix_sys_quotactl, 0, 0 },	/* 168 = quotactl */
 	{ ns(struct ultrix_sys_exportfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_exportfs },	/* 169 = exportfs */
+	    (sy_call_t *)ultrix_sys_exportfs, 0, 0 },	/* 169 = exportfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 170 = unimplemented ultrix_sys_mount */
+	    sys_nosys, 0, 0 },			/* 170 = unimplemented ultrix_sys_mount */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 171 = unimplemented 4 hdwconf */
+	    sys_nosys, 0, 0 },			/* 171 = unimplemented 4 hdwconf */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 172 = unimplemented msgctl */
+	    sys_nosys, 0, 0 },			/* 172 = unimplemented msgctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 173 = unimplemented msgget */
+	    sys_nosys, 0, 0 },			/* 173 = unimplemented msgget */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 174 = unimplemented msgrcv */
+	    sys_nosys, 0, 0 },			/* 174 = unimplemented msgrcv */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 175 = unimplemented msgsnd */
+	    sys_nosys, 0, 0 },			/* 175 = unimplemented msgsnd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 176 = unimplemented semctl */
+	    sys_nosys, 0, 0 },			/* 176 = unimplemented semctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 177 = unimplemented semget */
+	    sys_nosys, 0, 0 },			/* 177 = unimplemented semget */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 178 = unimplemented semop */
+	    sys_nosys, 0, 0 },			/* 178 = unimplemented semop */
 	{ ns(struct ultrix_sys_uname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_uname },	/* 179 = uname */
+	    (sy_call_t *)ultrix_sys_uname, 0, 0 },	/* 179 = uname */
 	{ ns(struct ultrix_sys_shmsys_args), 0,
-	    (sy_call_t *)ultrix_sys_shmsys },	/* 180 = shmsys */
+	    (sy_call_t *)ultrix_sys_shmsys, 0, 0 },	/* 180 = shmsys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 181 = unimplemented 0 plock */
+	    sys_nosys, 0, 0 },			/* 181 = unimplemented 0 plock */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 182 = unimplemented 0 lockf */
+	    sys_nosys, 0, 0 },			/* 182 = unimplemented 0 lockf */
 	{ ns(struct ultrix_sys_ustat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_ustat },	/* 183 = ustat */
+	    (sy_call_t *)ultrix_sys_ustat, 0, 0 },	/* 183 = ustat */
 	{ ns(struct ultrix_sys_getmnt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_getmnt },	/* 184 = getmnt */
+	    (sy_call_t *)ultrix_sys_getmnt, 0, 0 },	/* 184 = getmnt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 185 = unimplemented notdef */
+	    sys_nosys, 0, 0 },			/* 185 = unimplemented notdef */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 186 = unimplemented notdef */
+	    sys_nosys, 0, 0 },			/* 186 = unimplemented notdef */
 	{ ns(struct ultrix_sys_sigpending_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_sigpending },/* 187 = sigpending */
+	    (sy_call_t *)ultrix_sys_sigpending, 0, 0 },/* 187 = sigpending */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_setsid },		/* 188 = setsid */
+	    (sy_call_t *)sys_setsid, 0, 0 },		/* 188 = setsid */
 	{ ns(struct ultrix_sys_waitpid_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_waitpid },	/* 189 = waitpid */
+	    (sy_call_t *)ultrix_sys_waitpid, 0, 0 },	/* 189 = waitpid */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 190 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 190 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 191 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 191 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 192 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 192 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 193 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 193 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 194 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 194 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 195 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 195 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 196 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 196 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 197 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 197 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 198 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 198 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 199 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 199 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 200 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 200 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 201 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 201 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 202 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 202 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 203 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 203 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 204 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 204 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 205 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 205 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 206 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 206 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 207 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 207 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 208 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 208 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 209 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 209 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 210 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 210 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 211 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 211 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 212 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 212 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 213 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 213 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 214 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 214 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 215 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 215 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 216 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 216 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 217 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 217 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 218 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 218 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 219 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 219 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 220 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 220 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 221 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 221 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 222 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 222 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 223 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 223 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 224 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 224 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 225 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 225 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 226 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 226 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 227 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 227 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 228 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 228 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 229 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 229 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 230 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 230 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 231 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 231 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 232 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 232 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 233 = unimplemented 1 utc_gettime */
+	    sys_nosys, 0, 0 },			/* 233 = unimplemented 1 utc_gettime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 234 = unimplemented 2 utc_adjtime */
+	    sys_nosys, 0, 0 },			/* 234 = unimplemented 2 utc_adjtime */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 235 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 235 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 236 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 236 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 237 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 237 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 238 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 238 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 239 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 239 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 240 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 240 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 241 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 241 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 242 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 242 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 243 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 243 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 244 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 244 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 245 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 245 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 246 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 246 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 247 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 247 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 248 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 248 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 249 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 249 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 250 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 250 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 251 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 251 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 252 = unimplemented audctl / * Make no-op for installation on Ultrix rootpartition? * / */
+	    sys_nosys, 0, 0 },			/* 252 = unimplemented audctl / * Make no-op for installation on Ultrix rootpartition? * / */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 253 = unimplemented audgen / * Make no-op for installation on Ultrix rootpartition? * / */
+	    sys_nosys, 0, 0 },			/* 253 = unimplemented audgen / * Make no-op for installation on Ultrix rootpartition? * / */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 254 = unimplemented startcpu */
+	    sys_nosys, 0, 0 },			/* 254 = unimplemented startcpu */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 255 = unimplemented stopcpu */
+	    sys_nosys, 0, 0 },			/* 255 = unimplemented stopcpu */
 	{ ns(struct ultrix_sys_getsysinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_getsysinfo },/* 256 = getsysinfo */
+	    (sy_call_t *)ultrix_sys_getsysinfo, 0, 0 },/* 256 = getsysinfo */
 	{ ns(struct ultrix_sys_setsysinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)ultrix_sys_setsysinfo },/* 257 = setsysinfo */
+	    (sy_call_t *)ultrix_sys_setsysinfo, 0, 0 },/* 257 = setsysinfo */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 258 = filler */
+	    sys_nosys, 0, 0 },			/* 258 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 259 = filler */
+	    sys_nosys, 0, 0 },			/* 259 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 260 = filler */
+	    sys_nosys, 0, 0 },			/* 260 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 261 = filler */
+	    sys_nosys, 0, 0 },			/* 261 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 262 = filler */
+	    sys_nosys, 0, 0 },			/* 262 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 263 = filler */
+	    sys_nosys, 0, 0 },			/* 263 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 264 = filler */
+	    sys_nosys, 0, 0 },			/* 264 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 265 = filler */
+	    sys_nosys, 0, 0 },			/* 265 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 266 = filler */
+	    sys_nosys, 0, 0 },			/* 266 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 267 = filler */
+	    sys_nosys, 0, 0 },			/* 267 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 268 = filler */
+	    sys_nosys, 0, 0 },			/* 268 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 269 = filler */
+	    sys_nosys, 0, 0 },			/* 269 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 270 = filler */
+	    sys_nosys, 0, 0 },			/* 270 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 271 = filler */
+	    sys_nosys, 0, 0 },			/* 271 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 272 = filler */
+	    sys_nosys, 0, 0 },			/* 272 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 273 = filler */
+	    sys_nosys, 0, 0 },			/* 273 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 274 = filler */
+	    sys_nosys, 0, 0 },			/* 274 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 275 = filler */
+	    sys_nosys, 0, 0 },			/* 275 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 276 = filler */
+	    sys_nosys, 0, 0 },			/* 276 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 277 = filler */
+	    sys_nosys, 0, 0 },			/* 277 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 278 = filler */
+	    sys_nosys, 0, 0 },			/* 278 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 279 = filler */
+	    sys_nosys, 0, 0 },			/* 279 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 280 = filler */
+	    sys_nosys, 0, 0 },			/* 280 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 281 = filler */
+	    sys_nosys, 0, 0 },			/* 281 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 282 = filler */
+	    sys_nosys, 0, 0 },			/* 282 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 283 = filler */
+	    sys_nosys, 0, 0 },			/* 283 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 284 = filler */
+	    sys_nosys, 0, 0 },			/* 284 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 285 = filler */
+	    sys_nosys, 0, 0 },			/* 285 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 286 = filler */
+	    sys_nosys, 0, 0 },			/* 286 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 287 = filler */
+	    sys_nosys, 0, 0 },			/* 287 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 288 = filler */
+	    sys_nosys, 0, 0 },			/* 288 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 289 = filler */
+	    sys_nosys, 0, 0 },			/* 289 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 290 = filler */
+	    sys_nosys, 0, 0 },			/* 290 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 291 = filler */
+	    sys_nosys, 0, 0 },			/* 291 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 292 = filler */
+	    sys_nosys, 0, 0 },			/* 292 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 293 = filler */
+	    sys_nosys, 0, 0 },			/* 293 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 294 = filler */
+	    sys_nosys, 0, 0 },			/* 294 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 295 = filler */
+	    sys_nosys, 0, 0 },			/* 295 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 296 = filler */
+	    sys_nosys, 0, 0 },			/* 296 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 297 = filler */
+	    sys_nosys, 0, 0 },			/* 297 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 298 = filler */
+	    sys_nosys, 0, 0 },			/* 298 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 299 = filler */
+	    sys_nosys, 0, 0 },			/* 299 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 300 = filler */
+	    sys_nosys, 0, 0 },			/* 300 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 301 = filler */
+	    sys_nosys, 0, 0 },			/* 301 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 302 = filler */
+	    sys_nosys, 0, 0 },			/* 302 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 303 = filler */
+	    sys_nosys, 0, 0 },			/* 303 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 304 = filler */
+	    sys_nosys, 0, 0 },			/* 304 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 305 = filler */
+	    sys_nosys, 0, 0 },			/* 305 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 306 = filler */
+	    sys_nosys, 0, 0 },			/* 306 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 307 = filler */
+	    sys_nosys, 0, 0 },			/* 307 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 308 = filler */
+	    sys_nosys, 0, 0 },			/* 308 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 309 = filler */
+	    sys_nosys, 0, 0 },			/* 309 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 310 = filler */
+	    sys_nosys, 0, 0 },			/* 310 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 311 = filler */
+	    sys_nosys, 0, 0 },			/* 311 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 312 = filler */
+	    sys_nosys, 0, 0 },			/* 312 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 313 = filler */
+	    sys_nosys, 0, 0 },			/* 313 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 314 = filler */
+	    sys_nosys, 0, 0 },			/* 314 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 315 = filler */
+	    sys_nosys, 0, 0 },			/* 315 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 316 = filler */
+	    sys_nosys, 0, 0 },			/* 316 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 317 = filler */
+	    sys_nosys, 0, 0 },			/* 317 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 318 = filler */
+	    sys_nosys, 0, 0 },			/* 318 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 319 = filler */
+	    sys_nosys, 0, 0 },			/* 319 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 320 = filler */
+	    sys_nosys, 0, 0 },			/* 320 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 321 = filler */
+	    sys_nosys, 0, 0 },			/* 321 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 322 = filler */
+	    sys_nosys, 0, 0 },			/* 322 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 323 = filler */
+	    sys_nosys, 0, 0 },			/* 323 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 324 = filler */
+	    sys_nosys, 0, 0 },			/* 324 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 325 = filler */
+	    sys_nosys, 0, 0 },			/* 325 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 326 = filler */
+	    sys_nosys, 0, 0 },			/* 326 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 327 = filler */
+	    sys_nosys, 0, 0 },			/* 327 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 328 = filler */
+	    sys_nosys, 0, 0 },			/* 328 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 329 = filler */
+	    sys_nosys, 0, 0 },			/* 329 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 330 = filler */
+	    sys_nosys, 0, 0 },			/* 330 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 331 = filler */
+	    sys_nosys, 0, 0 },			/* 331 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 332 = filler */
+	    sys_nosys, 0, 0 },			/* 332 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 333 = filler */
+	    sys_nosys, 0, 0 },			/* 333 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 334 = filler */
+	    sys_nosys, 0, 0 },			/* 334 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 335 = filler */
+	    sys_nosys, 0, 0 },			/* 335 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 336 = filler */
+	    sys_nosys, 0, 0 },			/* 336 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 337 = filler */
+	    sys_nosys, 0, 0 },			/* 337 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 338 = filler */
+	    sys_nosys, 0, 0 },			/* 338 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 339 = filler */
+	    sys_nosys, 0, 0 },			/* 339 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 340 = filler */
+	    sys_nosys, 0, 0 },			/* 340 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 341 = filler */
+	    sys_nosys, 0, 0 },			/* 341 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 342 = filler */
+	    sys_nosys, 0, 0 },			/* 342 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 343 = filler */
+	    sys_nosys, 0, 0 },			/* 343 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 344 = filler */
+	    sys_nosys, 0, 0 },			/* 344 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 345 = filler */
+	    sys_nosys, 0, 0 },			/* 345 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 346 = filler */
+	    sys_nosys, 0, 0 },			/* 346 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 347 = filler */
+	    sys_nosys, 0, 0 },			/* 347 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 348 = filler */
+	    sys_nosys, 0, 0 },			/* 348 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 349 = filler */
+	    sys_nosys, 0, 0 },			/* 349 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 350 = filler */
+	    sys_nosys, 0, 0 },			/* 350 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 351 = filler */
+	    sys_nosys, 0, 0 },			/* 351 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 352 = filler */
+	    sys_nosys, 0, 0 },			/* 352 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 353 = filler */
+	    sys_nosys, 0, 0 },			/* 353 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 354 = filler */
+	    sys_nosys, 0, 0 },			/* 354 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 355 = filler */
+	    sys_nosys, 0, 0 },			/* 355 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 356 = filler */
+	    sys_nosys, 0, 0 },			/* 356 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 357 = filler */
+	    sys_nosys, 0, 0 },			/* 357 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 358 = filler */
+	    sys_nosys, 0, 0 },			/* 358 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 359 = filler */
+	    sys_nosys, 0, 0 },			/* 359 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 360 = filler */
+	    sys_nosys, 0, 0 },			/* 360 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 361 = filler */
+	    sys_nosys, 0, 0 },			/* 361 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 362 = filler */
+	    sys_nosys, 0, 0 },			/* 362 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 363 = filler */
+	    sys_nosys, 0, 0 },			/* 363 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 364 = filler */
+	    sys_nosys, 0, 0 },			/* 364 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 365 = filler */
+	    sys_nosys, 0, 0 },			/* 365 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 366 = filler */
+	    sys_nosys, 0, 0 },			/* 366 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 367 = filler */
+	    sys_nosys, 0, 0 },			/* 367 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 368 = filler */
+	    sys_nosys, 0, 0 },			/* 368 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 369 = filler */
+	    sys_nosys, 0, 0 },			/* 369 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 370 = filler */
+	    sys_nosys, 0, 0 },			/* 370 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 371 = filler */
+	    sys_nosys, 0, 0 },			/* 371 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 372 = filler */
+	    sys_nosys, 0, 0 },			/* 372 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 373 = filler */
+	    sys_nosys, 0, 0 },			/* 373 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 374 = filler */
+	    sys_nosys, 0, 0 },			/* 374 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 375 = filler */
+	    sys_nosys, 0, 0 },			/* 375 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 376 = filler */
+	    sys_nosys, 0, 0 },			/* 376 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 377 = filler */
+	    sys_nosys, 0, 0 },			/* 377 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 378 = filler */
+	    sys_nosys, 0, 0 },			/* 378 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 379 = filler */
+	    sys_nosys, 0, 0 },			/* 379 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 380 = filler */
+	    sys_nosys, 0, 0 },			/* 380 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 381 = filler */
+	    sys_nosys, 0, 0 },			/* 381 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 382 = filler */
+	    sys_nosys, 0, 0 },			/* 382 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 383 = filler */
+	    sys_nosys, 0, 0 },			/* 383 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 384 = filler */
+	    sys_nosys, 0, 0 },			/* 384 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 385 = filler */
+	    sys_nosys, 0, 0 },			/* 385 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 386 = filler */
+	    sys_nosys, 0, 0 },			/* 386 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 387 = filler */
+	    sys_nosys, 0, 0 },			/* 387 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 388 = filler */
+	    sys_nosys, 0, 0 },			/* 388 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 389 = filler */
+	    sys_nosys, 0, 0 },			/* 389 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 390 = filler */
+	    sys_nosys, 0, 0 },			/* 390 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 391 = filler */
+	    sys_nosys, 0, 0 },			/* 391 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 392 = filler */
+	    sys_nosys, 0, 0 },			/* 392 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 393 = filler */
+	    sys_nosys, 0, 0 },			/* 393 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 394 = filler */
+	    sys_nosys, 0, 0 },			/* 394 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 395 = filler */
+	    sys_nosys, 0, 0 },			/* 395 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 396 = filler */
+	    sys_nosys, 0, 0 },			/* 396 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 397 = filler */
+	    sys_nosys, 0, 0 },			/* 397 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 398 = filler */
+	    sys_nosys, 0, 0 },			/* 398 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 399 = filler */
+	    sys_nosys, 0, 0 },			/* 399 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 400 = filler */
+	    sys_nosys, 0, 0 },			/* 400 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 401 = filler */
+	    sys_nosys, 0, 0 },			/* 401 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 402 = filler */
+	    sys_nosys, 0, 0 },			/* 402 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 403 = filler */
+	    sys_nosys, 0, 0 },			/* 403 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 404 = filler */
+	    sys_nosys, 0, 0 },			/* 404 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 405 = filler */
+	    sys_nosys, 0, 0 },			/* 405 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 406 = filler */
+	    sys_nosys, 0, 0 },			/* 406 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 407 = filler */
+	    sys_nosys, 0, 0 },			/* 407 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 408 = filler */
+	    sys_nosys, 0, 0 },			/* 408 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 409 = filler */
+	    sys_nosys, 0, 0 },			/* 409 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 410 = filler */
+	    sys_nosys, 0, 0 },			/* 410 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 411 = filler */
+	    sys_nosys, 0, 0 },			/* 411 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 412 = filler */
+	    sys_nosys, 0, 0 },			/* 412 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 413 = filler */
+	    sys_nosys, 0, 0 },			/* 413 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 414 = filler */
+	    sys_nosys, 0, 0 },			/* 414 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 415 = filler */
+	    sys_nosys, 0, 0 },			/* 415 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 416 = filler */
+	    sys_nosys, 0, 0 },			/* 416 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 417 = filler */
+	    sys_nosys, 0, 0 },			/* 417 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 418 = filler */
+	    sys_nosys, 0, 0 },			/* 418 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 419 = filler */
+	    sys_nosys, 0, 0 },			/* 419 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 420 = filler */
+	    sys_nosys, 0, 0 },			/* 420 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 421 = filler */
+	    sys_nosys, 0, 0 },			/* 421 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 422 = filler */
+	    sys_nosys, 0, 0 },			/* 422 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 423 = filler */
+	    sys_nosys, 0, 0 },			/* 423 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 424 = filler */
+	    sys_nosys, 0, 0 },			/* 424 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 425 = filler */
+	    sys_nosys, 0, 0 },			/* 425 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 426 = filler */
+	    sys_nosys, 0, 0 },			/* 426 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 427 = filler */
+	    sys_nosys, 0, 0 },			/* 427 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 428 = filler */
+	    sys_nosys, 0, 0 },			/* 428 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 429 = filler */
+	    sys_nosys, 0, 0 },			/* 429 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 430 = filler */
+	    sys_nosys, 0, 0 },			/* 430 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 431 = filler */
+	    sys_nosys, 0, 0 },			/* 431 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 432 = filler */
+	    sys_nosys, 0, 0 },			/* 432 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 433 = filler */
+	    sys_nosys, 0, 0 },			/* 433 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 434 = filler */
+	    sys_nosys, 0, 0 },			/* 434 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 435 = filler */
+	    sys_nosys, 0, 0 },			/* 435 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 436 = filler */
+	    sys_nosys, 0, 0 },			/* 436 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 437 = filler */
+	    sys_nosys, 0, 0 },			/* 437 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 438 = filler */
+	    sys_nosys, 0, 0 },			/* 438 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 439 = filler */
+	    sys_nosys, 0, 0 },			/* 439 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 440 = filler */
+	    sys_nosys, 0, 0 },			/* 440 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 441 = filler */
+	    sys_nosys, 0, 0 },			/* 441 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 442 = filler */
+	    sys_nosys, 0, 0 },			/* 442 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 443 = filler */
+	    sys_nosys, 0, 0 },			/* 443 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 444 = filler */
+	    sys_nosys, 0, 0 },			/* 444 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 445 = filler */
+	    sys_nosys, 0, 0 },			/* 445 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 446 = filler */
+	    sys_nosys, 0, 0 },			/* 446 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 447 = filler */
+	    sys_nosys, 0, 0 },			/* 447 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 448 = filler */
+	    sys_nosys, 0, 0 },			/* 448 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 449 = filler */
+	    sys_nosys, 0, 0 },			/* 449 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 450 = filler */
+	    sys_nosys, 0, 0 },			/* 450 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 451 = filler */
+	    sys_nosys, 0, 0 },			/* 451 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 452 = filler */
+	    sys_nosys, 0, 0 },			/* 452 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 453 = filler */
+	    sys_nosys, 0, 0 },			/* 453 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 454 = filler */
+	    sys_nosys, 0, 0 },			/* 454 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 455 = filler */
+	    sys_nosys, 0, 0 },			/* 455 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 456 = filler */
+	    sys_nosys, 0, 0 },			/* 456 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 457 = filler */
+	    sys_nosys, 0, 0 },			/* 457 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 458 = filler */
+	    sys_nosys, 0, 0 },			/* 458 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 459 = filler */
+	    sys_nosys, 0, 0 },			/* 459 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 460 = filler */
+	    sys_nosys, 0, 0 },			/* 460 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 461 = filler */
+	    sys_nosys, 0, 0 },			/* 461 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 462 = filler */
+	    sys_nosys, 0, 0 },			/* 462 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 463 = filler */
+	    sys_nosys, 0, 0 },			/* 463 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 464 = filler */
+	    sys_nosys, 0, 0 },			/* 464 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 465 = filler */
+	    sys_nosys, 0, 0 },			/* 465 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 466 = filler */
+	    sys_nosys, 0, 0 },			/* 466 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 467 = filler */
+	    sys_nosys, 0, 0 },			/* 467 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 468 = filler */
+	    sys_nosys, 0, 0 },			/* 468 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 469 = filler */
+	    sys_nosys, 0, 0 },			/* 469 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 470 = filler */
+	    sys_nosys, 0, 0 },			/* 470 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 471 = filler */
+	    sys_nosys, 0, 0 },			/* 471 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 472 = filler */
+	    sys_nosys, 0, 0 },			/* 472 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 473 = filler */
+	    sys_nosys, 0, 0 },			/* 473 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 474 = filler */
+	    sys_nosys, 0, 0 },			/* 474 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 475 = filler */
+	    sys_nosys, 0, 0 },			/* 475 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 476 = filler */
+	    sys_nosys, 0, 0 },			/* 476 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 477 = filler */
+	    sys_nosys, 0, 0 },			/* 477 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 478 = filler */
+	    sys_nosys, 0, 0 },			/* 478 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 479 = filler */
+	    sys_nosys, 0, 0 },			/* 479 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 480 = filler */
+	    sys_nosys, 0, 0 },			/* 480 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 481 = filler */
+	    sys_nosys, 0, 0 },			/* 481 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 482 = filler */
+	    sys_nosys, 0, 0 },			/* 482 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 483 = filler */
+	    sys_nosys, 0, 0 },			/* 483 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 484 = filler */
+	    sys_nosys, 0, 0 },			/* 484 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 485 = filler */
+	    sys_nosys, 0, 0 },			/* 485 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 486 = filler */
+	    sys_nosys, 0, 0 },			/* 486 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 487 = filler */
+	    sys_nosys, 0, 0 },			/* 487 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 488 = filler */
+	    sys_nosys, 0, 0 },			/* 488 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 489 = filler */
+	    sys_nosys, 0, 0 },			/* 489 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 490 = filler */
+	    sys_nosys, 0, 0 },			/* 490 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 491 = filler */
+	    sys_nosys, 0, 0 },			/* 491 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 492 = filler */
+	    sys_nosys, 0, 0 },			/* 492 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 493 = filler */
+	    sys_nosys, 0, 0 },			/* 493 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 494 = filler */
+	    sys_nosys, 0, 0 },			/* 494 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 495 = filler */
+	    sys_nosys, 0, 0 },			/* 495 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 496 = filler */
+	    sys_nosys, 0, 0 },			/* 496 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 497 = filler */
+	    sys_nosys, 0, 0 },			/* 497 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 498 = filler */
+	    sys_nosys, 0, 0 },			/* 498 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 499 = filler */
+	    sys_nosys, 0, 0 },			/* 499 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 500 = filler */
+	    sys_nosys, 0, 0 },			/* 500 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 501 = filler */
+	    sys_nosys, 0, 0 },			/* 501 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 502 = filler */
+	    sys_nosys, 0, 0 },			/* 502 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 503 = filler */
+	    sys_nosys, 0, 0 },			/* 503 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 504 = filler */
+	    sys_nosys, 0, 0 },			/* 504 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 505 = filler */
+	    sys_nosys, 0, 0 },			/* 505 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 506 = filler */
+	    sys_nosys, 0, 0 },			/* 506 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 507 = filler */
+	    sys_nosys, 0, 0 },			/* 507 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 508 = filler */
+	    sys_nosys, 0, 0 },			/* 508 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 509 = filler */
+	    sys_nosys, 0, 0 },			/* 509 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 510 = filler */
+	    sys_nosys, 0, 0 },			/* 510 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 511 = filler */
+	    sys_nosys, 0, 0 },			/* 511 = filler */
 };
diff --git a/sys/conf/debugsyms.c b/sys/conf/debugsyms.c
index 634689d..c66d512 100644
--- a/sys/conf/debugsyms.c
+++ b/sys/conf/debugsyms.c
@@ -1,13 +1,14 @@
-/*	$NetBSD: debugsyms.c,v 1.3 2009/11/23 02:13:45 rmind Exp $	*/
+/*	$NetBSD: debugsyms.c,v 1.4 2015/10/06 22:13:39 christos Exp $	*/
 /*
  * This file is in the public domain.
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: debugsyms.c,v 1.3 2009/11/23 02:13:45 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: debugsyms.c,v 1.4 2015/10/06 22:13:39 christos Exp $");
 
 #define	_CALLOUT_PRIVATE
 #define	__MUTEX_PRIVATE
+#define	__KAUTH_PRIVATE
 
 #include <sys/param.h>
 #include <sys/lwp.h>
@@ -22,6 +23,8 @@ __KERNEL_RCSID(0, "$NetBSD: debugsyms.c,v 1.3 2009/11/23 02:13:45 rmind Exp $");
 #include <sys/un.h>
 #include <sys/unpcb.h>
 #include <sys/vnode.h>
+#include <sys/specificdata.h>
+#include <sys/kauth.h>
 
 /*
  * Without a dummy function referencing some of the types, gcc will
@@ -32,6 +35,7 @@ proc_t	*_debugsym_dummyfunc(vnode_t *vp);
 proc_t *
 _debugsym_dummyfunc(vnode_t *vp)
 {
+	struct kauth_cred *cr = (kauth_cred_t)vp;
 
-	return ((lwp_t *)vp->v_mount)->l_proc;
+	return cr->cr_uid ? ((lwp_t *)vp->v_mount)->l_proc : NULL;
 }
diff --git a/sys/conf/files b/sys/conf/files
index 205da04..787353a 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -1659,7 +1659,7 @@ file	kern/sys_select.c
 file	kern/sys_sig.c
 file	kern/sys_sched.c
 file	kern/sys_socket.c
-file	kern/syscalls.c			syscall_debug
+file	kern/syscalls.c			syscall_debug | kdtrace_hooks
 file	kern/sysv_ipc.c			sysvshm | sysvsem | sysvmsg
 file	kern/sysv_msg.c			sysvmsg
 file	kern/sysv_sem.c			sysvsem
diff --git a/sys/dev/lockstat.c b/sys/dev/lockstat.c
index 9884fdd..05d5769 100644
--- a/sys/dev/lockstat.c
+++ b/sys/dev/lockstat.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: lockstat.c,v 1.19 2014/07/25 08:10:35 dholland Exp $	*/
+/*	$NetBSD: lockstat.c,v 1.21 2015/03/09 01:41:41 christos Exp $	*/
 
 /*-
  * Copyright (c) 2006, 2007 The NetBSD Foundation, Inc.
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: lockstat.c,v 1.19 2014/07/25 08:10:35 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lockstat.c,v 1.21 2015/03/09 01:41:41 christos Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -97,6 +97,7 @@ dev_type_read(lockstat_read);
 dev_type_ioctl(lockstat_ioctl);
 
 volatile u_int	lockstat_enabled;
+volatile u_int	lockstat_dev_enabled;
 uintptr_t	lockstat_csstart;
 uintptr_t	lockstat_csend;
 uintptr_t	lockstat_csmask;
@@ -110,6 +111,21 @@ size_t		lockstat_sizeb;
 int		lockstat_busy;
 struct timespec	lockstat_stime;
 
+#ifdef KDTRACE_HOOKS
+volatile u_int lockstat_dtrace_enabled;
+CTASSERT(LB_NEVENT <= 3);
+CTASSERT(LB_NLOCK <= (7 << LB_LOCK_SHIFT));
+void
+lockstat_probe_stub(uint32_t id, uintptr_t lock, uintptr_t callsite,
+    uintptr_t flags, uintptr_t count, uintptr_t cycles)
+{
+}
+
+uint32_t	lockstat_probemap[LS_NPROBES];
+void		(*lockstat_probe_func)(uint32_t, uintptr_t, uintptr_t,
+		    uintptr_t, uintptr_t, uintptr_t) = &lockstat_probe_stub;
+#endif
+
 const struct cdevsw lockstat_cdevsw = {
 	.d_open = lockstat_open,
 	.d_close = lockstat_close,
@@ -150,7 +166,7 @@ lockstat_init_tables(lsenable_t *le)
 	lscpu_t *lc;
 	lsbuf_t *lb;
 
-	KASSERT(!lockstat_enabled);
+	KASSERT(!lockstat_dev_enabled);
 
 	for (CPU_INFO_FOREACH(cii, ci)) {
 		if (ci->ci_lockstat != NULL) {
@@ -195,7 +211,7 @@ void
 lockstat_start(lsenable_t *le)
 {
 
-	KASSERT(!lockstat_enabled);
+	KASSERT(!lockstat_dev_enabled);
 
 	lockstat_init_tables(le);
 
@@ -216,8 +232,8 @@ lockstat_start(lsenable_t *le)
 	lockstat_lockend = le->le_lockend;
 	membar_sync();
 	getnanotime(&lockstat_stime);
-	lockstat_enabled = le->le_mask;
-	membar_producer();
+	lockstat_dev_enabled = le->le_mask;
+	LOCKSTAT_ENABLED_UPDATE();
 }
 
 /*
@@ -233,14 +249,14 @@ lockstat_stop(lsdisable_t *ld)
 	int error;
 	lwp_t *l;
 
-	KASSERT(lockstat_enabled);
+	KASSERT(lockstat_dev_enabled);
 
 	/*
 	 * Set enabled false, force a write barrier, and wait for other CPUs
 	 * to exit lockstat_event().
 	 */
-	lockstat_enabled = 0;
-	membar_producer();
+	lockstat_dev_enabled = 0;
+	LOCKSTAT_ENABLED_UPDATE();
 	getnanotime(&ts);
 	tsleep(&lockstat_stop, PPAUSE, "lockstat", mstohz(10));
 
@@ -299,7 +315,7 @@ lockstat_alloc(lsenable_t *le)
 	lsbuf_t *lb;
 	size_t sz;
 
-	KASSERT(!lockstat_enabled);
+	KASSERT(!lockstat_dev_enabled);
 	lockstat_free();
 
 	sz = sizeof(*lb) * le->le_nbufs;
@@ -308,7 +324,7 @@ lockstat_alloc(lsenable_t *le)
 	if (lb == NULL)
 		return (ENOMEM);
 
-	KASSERT(!lockstat_enabled);
+	KASSERT(!lockstat_dev_enabled);
 	KASSERT(lockstat_baseb == NULL);
 	lockstat_sizeb = sz;
 	lockstat_baseb = lb;
@@ -323,7 +339,7 @@ void
 lockstat_free(void)
 {
 
-	KASSERT(!lockstat_enabled);
+	KASSERT(!lockstat_dev_enabled);
 
 	if (lockstat_baseb != NULL) {
 		kmem_free(lockstat_baseb, lockstat_sizeb);
@@ -344,7 +360,15 @@ lockstat_event(uintptr_t lock, uintptr_t callsite, u_int flags, u_int count,
 	u_int event;
 	int s;
 
-	if ((flags & lockstat_enabled) != flags || count == 0)
+#ifdef KDTRACE_HOOKS
+	uint32_t id;
+	CTASSERT((LS_NPROBES & (LS_NPROBES - 1)) == 0);
+	if ((id = lockstat_probemap[LS_COMPRESS(flags)]) != 0)
+		(*lockstat_probe_func)(id, lock, callsite, flags, count,
+		    cycles);
+#endif
+
+	if ((flags & lockstat_dev_enabled) != flags || count == 0)
 		return;
 	if (lock < lockstat_lockstart || lock > lockstat_lockend)
 		return;
@@ -452,7 +476,7 @@ lockstat_ioctl(dev_t dev, u_long cmd, void *data, int flag, lwp_t *l)
 			error = ENODEV;
 			break;
 		}
-		if (lockstat_enabled) {
+		if (lockstat_dev_enabled) {
 			error = EBUSY;
 			break;
 		}
@@ -488,7 +512,7 @@ lockstat_ioctl(dev_t dev, u_long cmd, void *data, int flag, lwp_t *l)
 		break;
 
 	case IOC_LOCKSTAT_DISABLE:
-		if (!lockstat_enabled)
+		if (!lockstat_dev_enabled)
 			error = EINVAL;
 		else
 			error = lockstat_stop((lsdisable_t *)data);
@@ -509,7 +533,7 @@ int
 lockstat_read(dev_t dev, struct uio *uio, int flag)
 {
 
-	if (curlwp != lockstat_lwp || lockstat_enabled)
+	if (curlwp != lockstat_lwp || lockstat_dev_enabled)
 		return EBUSY;
 	return uiomove(lockstat_baseb, lockstat_sizeb, uio);
 }
diff --git a/sys/dev/lockstat.h b/sys/dev/lockstat.h
index d3d0e91..f6029e8 100644
--- a/sys/dev/lockstat.h
+++ b/sys/dev/lockstat.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: lockstat.h,v 1.10 2009/01/20 14:49:00 yamt Exp $	*/
+/*	$NetBSD: lockstat.h,v 1.13 2015/03/09 01:41:41 christos Exp $	*/
 
 /*-
  * Copyright (c) 2006 The NetBSD Foundation, Inc.
@@ -33,6 +33,7 @@
 #define _SYS_LOCKSTAT_H_
 
 #ifdef _KERNEL_OPT
+#include "opt_dtrace.h"
 #include <lockstat.h>
 #endif
 
@@ -118,6 +119,8 @@ typedef struct lsdisable {
 #define	LB_LOCK_MASK		0x0000ff00
 #define	LB_LOCK_SHIFT		8
 
+#define	LB_DTRACE		0x00010000
+
 typedef struct lsbuf {
 	union {
 		LIST_ENTRY(lsbuf) list;
@@ -179,6 +182,7 @@ do {									\
 void	lockstat_event(uintptr_t, uintptr_t, u_int, u_int, uint64_t);
 
 extern volatile u_int	lockstat_enabled;
+extern volatile u_int	lockstat_dev_enabled;
 
 #else
 
@@ -195,4 +199,26 @@ extern volatile u_int	lockstat_enabled;
 
 #endif
 
+#ifdef KDTRACE_HOOKS
+extern volatile u_int lockstat_dtrace_enabled;
+#define KDTRACE_LOCKSTAT_ENABLED lockstat_dtrace_enabled
+#define LS_COMPRESS(f) \
+    ((((f) & 0x3) | (((f) & 0x700) >> 6)) & (LS_NPROBES - 1))
+#define	LS_NPROBES	0x20	/* 5 bits */
+
+extern uint32_t	lockstat_probemap[];
+extern void	(*lockstat_probe_func)(uint32_t, uintptr_t, uintptr_t,
+    uintptr_t, uintptr_t, uintptr_t);
+
+void		lockstat_probe_stub(uint32_t, uintptr_t, uintptr_t,
+    uintptr_t, uintptr_t, uintptr_t);
+#else
+#define KDTRACE_LOCKSTAT_ENABLED 0
+#endif
+
+#define LOCKSTAT_ENABLED_UPDATE() do { \
+	lockstat_enabled = lockstat_dev_enabled | KDTRACE_LOCKSTAT_ENABLED; \
+	membar_producer(); \
+    } while (/*CONSTCOND*/0)
+
 #endif	/* _SYS_LOCKSTAT_H_ */
diff --git a/sys/dev/sun/disklabel.h b/sys/dev/sun/disklabel.h
index fa6dcea..067667b 100644
--- a/sys/dev/sun/disklabel.h
+++ b/sys/dev/sun/disklabel.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: disklabel.h,v 1.4 2005/12/11 12:23:56 christos Exp $ */
+/*	$NetBSD: disklabel.h,v 1.6 2015/09/26 03:31:52 christos Exp $ */
 
 /*
  * Copyright (c) 1992, 1993
@@ -47,9 +47,9 @@
 #define	SUN_DKMAGIC	55998
 
 /* These are the guys that Sun's dkinfo needs... */
-#define DKIOCGGEOM	_IOR('d', 2, struct sun_dkgeom)	/* geometry info */
-#define DKIOCINFO	_IOR('d', 8, struct sun_dkctlr)	/* controller info */
-#define DKIOCGPART	_IOR('d', 4, struct sun_dkpart)	/* partition info */
+#define SUN_DKIOCGGEOM	_IOR('d', 2, struct sun_dkgeom)	/* geometry info */
+#define SUN_DKIOCINFO	_IOR('d', 8, struct sun_dkctlr)	/* controller info */
+#define SUN_DKIOCGPART	_IOR('d', 4, struct sun_dkpart)	/* partition info */
 
 /* geometry info */
 struct sun_dkgeom {
diff --git a/sys/kern/Makefile b/sys/kern/Makefile
index 93efec6..f07f4f8 100644
--- a/sys/kern/Makefile
+++ b/sys/kern/Makefile
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.17 2014/01/16 01:15:34 christos Exp $
+#	$NetBSD: Makefile,v 1.18 2015/03/07 16:38:07 christos Exp $
 #
 #	from: @(#)Makefile	8.2 (Berkeley) 3/21/94
 
@@ -11,7 +11,7 @@ all:
 	@false
 
 SYSCALLSRC = makesyscalls.sh syscalls.conf syscalls.master
-init_sysent.c syscalls.c ../sys/syscall.h ../sys/syscallargs.h: ${SYSCALLSRC}
+init_sysent.c syscalls.c systrace_args.c ../sys/syscall.h ../sys/syscallargs.h: ${SYSCALLSRC}
 	${HOST_SH} makesyscalls.sh syscalls.conf syscalls.master
 
 VNODEIFSRC = vnode_if.sh vnode_if.src
diff --git a/sys/kern/init_sysent.c b/sys/kern/init_sysent.c
index f875fa8..c2cb5f4 100644
--- a/sys/kern/init_sysent.c
+++ b/sys/kern/init_sysent.c
@@ -1,4 +1,4 @@
-/* $NetBSD: init_sysent.c,v 1.287.2.1 2015/02/24 10:52:43 martin Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call switch table.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: init_sysent.c,v 1.287.2.1 2015/02/24 10:52:43 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #include "opt_modular.h"
 #include "opt_ntp.h"
@@ -111,1115 +111,1115 @@ __KERNEL_RCSID(0, "$NetBSD: init_sysent.c,v 1.287.2.1 2015/02/24 10:52:43 martin
 
 struct sysent sysent[] = {
 	{ ns(struct sys_syscall_args), SYCALL_INDIRECT,
-	    (sy_call_t *)sys_syscall },		/* 0 = syscall */
+	    (sy_call_t *)sys_syscall, 0, 0 },		/* 0 = syscall */
 	{ ns(struct sys_exit_args), 0,
-	    (sy_call_t *)sys_exit },		/* 1 = exit */
+	    (sy_call_t *)sys_exit, 0, 0 },		/* 1 = exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_fork },		/* 2 = fork */
+	    (sy_call_t *)sys_fork, 0, 0 },		/* 2 = fork */
 	{ ns(struct sys_read_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_read },		/* 3 = read */
+	    (sy_call_t *)sys_read, 0, 0 },		/* 3 = read */
 	{ ns(struct sys_write_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_write },		/* 4 = write */
+	    (sy_call_t *)sys_write, 0, 0 },		/* 4 = write */
 	{ ns(struct sys_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_open },		/* 5 = open */
+	    (sy_call_t *)sys_open, 0, 0 },		/* 5 = open */
 	{ ns(struct sys_close_args), 0,
-	    (sy_call_t *)sys_close },		/* 6 = close */
+	    (sy_call_t *)sys_close, 0, 0 },		/* 6 = close */
 	{ ns(struct compat_50_sys_wait4_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 7 = compat_50_wait4 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 7 = compat_50_wait4 */
 	{ ns(struct compat_43_sys_creat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 8 = compat_43_ocreat */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 8 = compat_43_ocreat */
 	{ ns(struct sys_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_link },		/* 9 = link */
+	    (sy_call_t *)sys_link, 0, 0 },		/* 9 = link */
 	{ ns(struct sys_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_unlink },		/* 10 = unlink */
+	    (sy_call_t *)sys_unlink, 0, 0 },		/* 10 = unlink */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 11 = obsolete execv */
+	    sys_nosys, 0, 0 },			/* 11 = obsolete execv */
 	{ ns(struct sys_chdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chdir },		/* 12 = chdir */
+	    (sy_call_t *)sys_chdir, 0, 0 },		/* 12 = chdir */
 	{ ns(struct sys_fchdir_args), 0,
-	    (sy_call_t *)sys_fchdir },		/* 13 = fchdir */
+	    (sy_call_t *)sys_fchdir, 0, 0 },		/* 13 = fchdir */
 	{ ns(struct compat_50_sys_mknod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 14 = compat_50_mknod */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 14 = compat_50_mknod */
 	{ ns(struct sys_chmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chmod },		/* 15 = chmod */
+	    (sy_call_t *)sys_chmod, 0, 0 },		/* 15 = chmod */
 	{ ns(struct sys_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chown },		/* 16 = chown */
+	    (sy_call_t *)sys_chown, 0, 0 },		/* 16 = chown */
 	{ ns(struct sys_obreak_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_obreak },		/* 17 = break */
+	    (sy_call_t *)sys_obreak, 0, 0 },		/* 17 = break */
 	{ ns(struct compat_20_sys_getfsstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 18 = compat_20_getfsstat */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 18 = compat_20_getfsstat */
 	{ ns(struct compat_43_sys_lseek_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 19 = compat_43_olseek */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 19 = compat_43_olseek */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpid_with_ppid },/* 20 = getpid */
+	    (sy_call_t *)sys_getpid_with_ppid, 0, 0 },/* 20 = getpid */
 	{ ns(struct compat_40_sys_mount_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 21 = compat_40_mount */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 21 = compat_40_mount */
 	{ ns(struct sys_unmount_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_unmount },		/* 22 = unmount */
+	    (sy_call_t *)sys_unmount, 0, 0 },		/* 22 = unmount */
 	{ ns(struct sys_setuid_args), 0,
-	    (sy_call_t *)sys_setuid },		/* 23 = setuid */
+	    (sy_call_t *)sys_setuid, 0, 0 },		/* 23 = setuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getuid_with_euid },/* 24 = getuid */
+	    (sy_call_t *)sys_getuid_with_euid, 0, 0 },/* 24 = getuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_geteuid },		/* 25 = geteuid */
+	    (sy_call_t *)sys_geteuid, 0, 0 },		/* 25 = geteuid */
 	{ ns(struct sys_ptrace_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_ptrace },		/* 26 = ptrace */
+	    (sy_call_t *)sys_ptrace, 0, 0 },		/* 26 = ptrace */
 	{ ns(struct sys_recvmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_recvmsg },		/* 27 = recvmsg */
+	    (sy_call_t *)sys_recvmsg, 0, 0 },		/* 27 = recvmsg */
 	{ ns(struct sys_sendmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_sendmsg },		/* 28 = sendmsg */
+	    (sy_call_t *)sys_sendmsg, 0, 0 },		/* 28 = sendmsg */
 	{ ns(struct sys_recvfrom_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_recvfrom },	/* 29 = recvfrom */
+	    (sy_call_t *)sys_recvfrom, 0, 0 },	/* 29 = recvfrom */
 	{ ns(struct sys_accept_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_accept },		/* 30 = accept */
+	    (sy_call_t *)sys_accept, 0, 0 },		/* 30 = accept */
 	{ ns(struct sys_getpeername_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getpeername },	/* 31 = getpeername */
+	    (sy_call_t *)sys_getpeername, 0, 0 },	/* 31 = getpeername */
 	{ ns(struct sys_getsockname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getsockname },	/* 32 = getsockname */
+	    (sy_call_t *)sys_getsockname, 0, 0 },	/* 32 = getsockname */
 	{ ns(struct sys_access_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_access },		/* 33 = access */
+	    (sy_call_t *)sys_access, 0, 0 },		/* 33 = access */
 	{ ns(struct sys_chflags_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chflags },		/* 34 = chflags */
+	    (sy_call_t *)sys_chflags, 0, 0 },		/* 34 = chflags */
 	{ ns(struct sys_fchflags_args), 0,
-	    (sy_call_t *)sys_fchflags },	/* 35 = fchflags */
+	    (sy_call_t *)sys_fchflags, 0, 0 },	/* 35 = fchflags */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sync },		/* 36 = sync */
+	    (sy_call_t *)sys_sync, 0, 0 },		/* 36 = sync */
 	{ ns(struct sys_kill_args), 0,
-	    (sy_call_t *)sys_kill },		/* 37 = kill */
+	    (sy_call_t *)sys_kill, 0, 0 },		/* 37 = kill */
 	{ ns(struct compat_43_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 38 = compat_43_stat43 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 38 = compat_43_stat43 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getppid },		/* 39 = getppid */
+	    (sy_call_t *)sys_getppid, 0, 0 },		/* 39 = getppid */
 	{ ns(struct compat_43_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 40 = compat_43_lstat43 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 40 = compat_43_lstat43 */
 	{ ns(struct sys_dup_args), 0,
-	    (sy_call_t *)sys_dup },		/* 41 = dup */
+	    (sy_call_t *)sys_dup, 0, 0 },		/* 41 = dup */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_pipe },		/* 42 = pipe */
+	    (sy_call_t *)sys_pipe, 0, 0 },		/* 42 = pipe */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getegid },		/* 43 = getegid */
+	    (sy_call_t *)sys_getegid, 0, 0 },		/* 43 = getegid */
 	{ ns(struct sys_profil_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_profil },		/* 44 = profil */
+	    (sy_call_t *)sys_profil, 0, 0 },		/* 44 = profil */
 	{ ns(struct sys_ktrace_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_ktrace },		/* 45 = ktrace */
+	    (sy_call_t *)sys_ktrace, 0, 0 },		/* 45 = ktrace */
 	{ ns(struct compat_13_sys_sigaction_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 46 = compat_13_sigaction13 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 46 = compat_13_sigaction13 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getgid_with_egid },/* 47 = getgid */
+	    (sy_call_t *)sys_getgid_with_egid, 0, 0 },/* 47 = getgid */
 	{ ns(struct compat_13_sys_sigprocmask_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 48 = compat_13_sigprocmask13 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 48 = compat_13_sigprocmask13 */
 	{ ns(struct sys___getlogin_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getlogin },	/* 49 = __getlogin */
+	    (sy_call_t *)sys___getlogin, 0, 0 },	/* 49 = __getlogin */
 	{ ns(struct sys___setlogin_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___setlogin },	/* 50 = __setlogin */
+	    (sy_call_t *)sys___setlogin, 0, 0 },	/* 50 = __setlogin */
 	{ ns(struct sys_acct_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_acct },		/* 51 = acct */
+	    (sy_call_t *)sys_acct, 0, 0 },		/* 51 = acct */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_nomodule },	/* 52 = compat_13_sigpending13 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 52 = compat_13_sigpending13 */
 	{ ns(struct compat_13_sys_sigaltstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 53 = compat_13_sigaltstack13 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 53 = compat_13_sigaltstack13 */
 	{ ns(struct sys_ioctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_ioctl },		/* 54 = ioctl */
+	    (sy_call_t *)sys_ioctl, 0, 0 },		/* 54 = ioctl */
 	{ ns(struct compat_12_sys_reboot_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 55 = compat_12_oreboot */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 55 = compat_12_oreboot */
 	{ ns(struct sys_revoke_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_revoke },		/* 56 = revoke */
+	    (sy_call_t *)sys_revoke, 0, 0 },		/* 56 = revoke */
 	{ ns(struct sys_symlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlink },		/* 57 = symlink */
+	    (sy_call_t *)sys_symlink, 0, 0 },		/* 57 = symlink */
 	{ ns(struct sys_readlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlink },	/* 58 = readlink */
+	    (sy_call_t *)sys_readlink, 0, 0 },	/* 58 = readlink */
 	{ ns(struct sys_execve_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_execve },		/* 59 = execve */
+	    (sy_call_t *)sys_execve, 0, 0 },		/* 59 = execve */
 	{ ns(struct sys_umask_args), 0,
-	    (sy_call_t *)sys_umask },		/* 60 = umask */
+	    (sy_call_t *)sys_umask, 0, 0 },		/* 60 = umask */
 	{ ns(struct sys_chroot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_chroot },		/* 61 = chroot */
+	    (sy_call_t *)sys_chroot, 0, 0 },		/* 61 = chroot */
 	{ ns(struct compat_43_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 62 = compat_43_fstat43 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 62 = compat_43_fstat43 */
 	{ ns(struct compat_43_sys_getkerninfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 63 = compat_43_ogetkerninfo */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 63 = compat_43_ogetkerninfo */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_nomodule },	/* 64 = compat_43_ogetpagesize */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 64 = compat_43_ogetpagesize */
 	{ ns(struct compat_12_sys_msync_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 65 = compat_12_msync */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 65 = compat_12_msync */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_vfork },		/* 66 = vfork */
+	    (sy_call_t *)sys_vfork, 0, 0 },		/* 66 = vfork */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 67 = obsolete vread */
+	    sys_nosys, 0, 0 },			/* 67 = obsolete vread */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 68 = obsolete vwrite */
+	    sys_nosys, 0, 0 },			/* 68 = obsolete vwrite */
 	{ ns(struct sys_sbrk_args), 0,
-	    (sy_call_t *)sys_sbrk },		/* 69 = sbrk */
+	    (sy_call_t *)sys_sbrk, 0, 0 },		/* 69 = sbrk */
 	{ ns(struct sys_sstk_args), 0,
-	    (sy_call_t *)sys_sstk },		/* 70 = sstk */
+	    (sy_call_t *)sys_sstk, 0, 0 },		/* 70 = sstk */
 	{ ns(struct compat_43_sys_mmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 71 = compat_43_ommap */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 71 = compat_43_ommap */
 	{ ns(struct sys_ovadvise_args), 0,
-	    (sy_call_t *)sys_ovadvise },	/* 72 = vadvise */
+	    (sy_call_t *)sys_ovadvise, 0, 0 },	/* 72 = vadvise */
 	{ ns(struct sys_munmap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munmap },		/* 73 = munmap */
+	    (sy_call_t *)sys_munmap, 0, 0 },		/* 73 = munmap */
 	{ ns(struct sys_mprotect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mprotect },	/* 74 = mprotect */
+	    (sy_call_t *)sys_mprotect, 0, 0 },	/* 74 = mprotect */
 	{ ns(struct sys_madvise_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_madvise },		/* 75 = madvise */
+	    (sy_call_t *)sys_madvise, 0, 0 },		/* 75 = madvise */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 76 = obsolete vhangup */
+	    sys_nosys, 0, 0 },			/* 76 = obsolete vhangup */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 77 = obsolete vlimit */
+	    sys_nosys, 0, 0 },			/* 77 = obsolete vlimit */
 	{ ns(struct sys_mincore_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mincore },		/* 78 = mincore */
+	    (sy_call_t *)sys_mincore, 0, 0 },		/* 78 = mincore */
 	{ ns(struct sys_getgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getgroups },	/* 79 = getgroups */
+	    (sy_call_t *)sys_getgroups, 0, 0 },	/* 79 = getgroups */
 	{ ns(struct sys_setgroups_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setgroups },	/* 80 = setgroups */
+	    (sy_call_t *)sys_setgroups, 0, 0 },	/* 80 = setgroups */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_getpgrp },		/* 81 = getpgrp */
+	    (sy_call_t *)sys_getpgrp, 0, 0 },		/* 81 = getpgrp */
 	{ ns(struct sys_setpgid_args), 0,
-	    (sy_call_t *)sys_setpgid },		/* 82 = setpgid */
+	    (sy_call_t *)sys_setpgid, 0, 0 },		/* 82 = setpgid */
 	{ ns(struct compat_50_sys_setitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 83 = compat_50_setitimer */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 83 = compat_50_setitimer */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_nomodule },	/* 84 = compat_43_owait */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 84 = compat_43_owait */
 	{ ns(struct compat_12_sys_swapon_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 85 = compat_12_oswapon */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 85 = compat_12_oswapon */
 	{ ns(struct compat_50_sys_getitimer_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 86 = compat_50_getitimer */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 86 = compat_50_getitimer */
 	{ ns(struct compat_43_sys_gethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 87 = compat_43_ogethostname */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 87 = compat_43_ogethostname */
 	{ ns(struct compat_43_sys_sethostname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 88 = compat_43_osethostname */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 88 = compat_43_osethostname */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_nomodule },	/* 89 = compat_43_ogetdtablesize */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 89 = compat_43_ogetdtablesize */
 	{ ns(struct sys_dup2_args), 0,
-	    (sy_call_t *)sys_dup2 },		/* 90 = dup2 */
+	    (sy_call_t *)sys_dup2, 0, 0 },		/* 90 = dup2 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 91 = unimplemented getdopt */
+	    sys_nosys, 0, 0 },			/* 91 = unimplemented getdopt */
 	{ ns(struct sys_fcntl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_fcntl },		/* 92 = fcntl */
+	    (sy_call_t *)sys_fcntl, 0, 0 },		/* 92 = fcntl */
 	{ ns(struct compat_50_sys_select_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 93 = compat_50_select */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 93 = compat_50_select */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 94 = unimplemented setdopt */
+	    sys_nosys, 0, 0 },			/* 94 = unimplemented setdopt */
 	{ ns(struct sys_fsync_args), 0,
-	    (sy_call_t *)sys_fsync },		/* 95 = fsync */
+	    (sy_call_t *)sys_fsync, 0, 0 },		/* 95 = fsync */
 	{ ns(struct sys_setpriority_args), 0,
-	    (sy_call_t *)sys_setpriority },	/* 96 = setpriority */
+	    (sy_call_t *)sys_setpriority, 0, 0 },	/* 96 = setpriority */
 	{ ns(struct compat_30_sys_socket_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 97 = compat_30_socket */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 97 = compat_30_socket */
 	{ ns(struct sys_connect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_connect },		/* 98 = connect */
+	    (sy_call_t *)sys_connect, 0, 0 },		/* 98 = connect */
 	{ ns(struct compat_43_sys_accept_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 99 = compat_43_oaccept */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 99 = compat_43_oaccept */
 	{ ns(struct sys_getpriority_args), 0,
-	    (sy_call_t *)sys_getpriority },	/* 100 = getpriority */
+	    (sy_call_t *)sys_getpriority, 0, 0 },	/* 100 = getpriority */
 	{ ns(struct compat_43_sys_send_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 101 = compat_43_osend */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 101 = compat_43_osend */
 	{ ns(struct compat_43_sys_recv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 102 = compat_43_orecv */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 102 = compat_43_orecv */
 	{ ns(struct compat_13_sys_sigreturn_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 103 = compat_13_sigreturn13 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 103 = compat_13_sigreturn13 */
 	{ ns(struct sys_bind_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_bind },		/* 104 = bind */
+	    (sy_call_t *)sys_bind, 0, 0 },		/* 104 = bind */
 	{ ns(struct sys_setsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setsockopt },	/* 105 = setsockopt */
+	    (sy_call_t *)sys_setsockopt, 0, 0 },	/* 105 = setsockopt */
 	{ ns(struct sys_listen_args), 0,
-	    (sy_call_t *)sys_listen },		/* 106 = listen */
+	    (sy_call_t *)sys_listen, 0, 0 },		/* 106 = listen */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 107 = obsolete vtimes */
+	    sys_nosys, 0, 0 },			/* 107 = obsolete vtimes */
 	{ ns(struct compat_43_sys_sigvec_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 108 = compat_43_osigvec */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 108 = compat_43_osigvec */
 	{ ns(struct compat_43_sys_sigblock_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 109 = compat_43_osigblock */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 109 = compat_43_osigblock */
 	{ ns(struct compat_43_sys_sigsetmask_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 110 = compat_43_osigsetmask */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 110 = compat_43_osigsetmask */
 	{ ns(struct compat_13_sys_sigsuspend_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 111 = compat_13_sigsuspend13 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 111 = compat_13_sigsuspend13 */
 	{ ns(struct compat_43_sys_sigstack_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 112 = compat_43_osigstack */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 112 = compat_43_osigstack */
 	{ ns(struct compat_43_sys_recvmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 113 = compat_43_orecvmsg */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 113 = compat_43_orecvmsg */
 	{ ns(struct compat_43_sys_sendmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 114 = compat_43_osendmsg */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 114 = compat_43_osendmsg */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 115 = obsolete vtrace */
+	    sys_nosys, 0, 0 },			/* 115 = obsolete vtrace */
 	{ ns(struct compat_50_sys_gettimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 116 = compat_50_gettimeofday */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 116 = compat_50_gettimeofday */
 	{ ns(struct compat_50_sys_getrusage_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 117 = compat_50_getrusage */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 117 = compat_50_getrusage */
 	{ ns(struct sys_getsockopt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getsockopt },	/* 118 = getsockopt */
+	    (sy_call_t *)sys_getsockopt, 0, 0 },	/* 118 = getsockopt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 119 = obsolete resuba */
+	    sys_nosys, 0, 0 },			/* 119 = obsolete resuba */
 	{ ns(struct sys_readv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readv },		/* 120 = readv */
+	    (sy_call_t *)sys_readv, 0, 0 },		/* 120 = readv */
 	{ ns(struct sys_writev_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_writev },		/* 121 = writev */
+	    (sy_call_t *)sys_writev, 0, 0 },		/* 121 = writev */
 	{ ns(struct compat_50_sys_settimeofday_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 122 = compat_50_settimeofday */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 122 = compat_50_settimeofday */
 	{ ns(struct sys_fchown_args), 0,
-	    (sy_call_t *)sys_fchown },		/* 123 = fchown */
+	    (sy_call_t *)sys_fchown, 0, 0 },		/* 123 = fchown */
 	{ ns(struct sys_fchmod_args), 0,
-	    (sy_call_t *)sys_fchmod },		/* 124 = fchmod */
+	    (sy_call_t *)sys_fchmod, 0, 0 },		/* 124 = fchmod */
 	{ ns(struct compat_43_sys_recvfrom_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 125 = compat_43_orecvfrom */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 125 = compat_43_orecvfrom */
 	{ ns(struct sys_setreuid_args), 0,
-	    (sy_call_t *)sys_setreuid },	/* 126 = setreuid */
+	    (sy_call_t *)sys_setreuid, 0, 0 },	/* 126 = setreuid */
 	{ ns(struct sys_setregid_args), 0,
-	    (sy_call_t *)sys_setregid },	/* 127 = setregid */
+	    (sy_call_t *)sys_setregid, 0, 0 },	/* 127 = setregid */
 	{ ns(struct sys_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rename },		/* 128 = rename */
+	    (sy_call_t *)sys_rename, 0, 0 },		/* 128 = rename */
 	{ ns(struct compat_43_sys_truncate_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 129 = compat_43_otruncate */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 129 = compat_43_otruncate */
 	{ ns(struct compat_43_sys_ftruncate_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 130 = compat_43_oftruncate */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 130 = compat_43_oftruncate */
 	{ ns(struct sys_flock_args), 0,
-	    (sy_call_t *)sys_flock },		/* 131 = flock */
+	    (sy_call_t *)sys_flock, 0, 0 },		/* 131 = flock */
 	{ ns(struct sys_mkfifo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkfifo },		/* 132 = mkfifo */
+	    (sy_call_t *)sys_mkfifo, 0, 0 },		/* 132 = mkfifo */
 	{ ns(struct sys_sendto_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_sendto },		/* 133 = sendto */
+	    (sy_call_t *)sys_sendto, 0, 0 },		/* 133 = sendto */
 	{ ns(struct sys_shutdown_args), 0,
-	    (sy_call_t *)sys_shutdown },	/* 134 = shutdown */
+	    (sy_call_t *)sys_shutdown, 0, 0 },	/* 134 = shutdown */
 	{ ns(struct sys_socketpair_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_socketpair },	/* 135 = socketpair */
+	    (sy_call_t *)sys_socketpair, 0, 0 },	/* 135 = socketpair */
 	{ ns(struct sys_mkdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdir },		/* 136 = mkdir */
+	    (sy_call_t *)sys_mkdir, 0, 0 },		/* 136 = mkdir */
 	{ ns(struct sys_rmdir_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rmdir },		/* 137 = rmdir */
+	    (sy_call_t *)sys_rmdir, 0, 0 },		/* 137 = rmdir */
 	{ ns(struct compat_50_sys_utimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 138 = compat_50_utimes */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 138 = compat_50_utimes */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 139 = obsolete 4.2 sigreturn */
+	    sys_nosys, 0, 0 },			/* 139 = obsolete 4.2 sigreturn */
 	{ ns(struct compat_50_sys_adjtime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 140 = compat_50_adjtime */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 140 = compat_50_adjtime */
 	{ ns(struct compat_43_sys_getpeername_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 141 = compat_43_ogetpeername */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 141 = compat_43_ogetpeername */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_nomodule },	/* 142 = compat_43_ogethostid */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 142 = compat_43_ogethostid */
 	{ ns(struct compat_43_sys_sethostid_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 143 = compat_43_osethostid */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 143 = compat_43_osethostid */
 	{ ns(struct compat_43_sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 144 = compat_43_ogetrlimit */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 144 = compat_43_ogetrlimit */
 	{ ns(struct compat_43_sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 145 = compat_43_osetrlimit */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 145 = compat_43_osetrlimit */
 	{ ns(struct compat_43_sys_killpg_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 146 = compat_43_okillpg */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 146 = compat_43_okillpg */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_setsid },		/* 147 = setsid */
+	    (sy_call_t *)sys_setsid, 0, 0 },		/* 147 = setsid */
 	{ ns(struct compat_50_sys_quotactl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 148 = compat_50_quotactl */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 148 = compat_50_quotactl */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_nomodule },	/* 149 = compat_43_oquota */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 149 = compat_43_oquota */
 	{ ns(struct compat_43_sys_getsockname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 150 = compat_43_ogetsockname */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 150 = compat_43_ogetsockname */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 151 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 151 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 152 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 152 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 153 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 153 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 154 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 154 = unimplemented */
 	{ ns(struct sys_nfssvc_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 155 = nfssvc */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 155 = nfssvc */
 	{ ns(struct compat_43_sys_getdirentries_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 156 = compat_43_ogetdirentries */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 156 = compat_43_ogetdirentries */
 	{ ns(struct compat_20_sys_statfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 157 = compat_20_statfs */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 157 = compat_20_statfs */
 	{ ns(struct compat_20_sys_fstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 158 = compat_20_fstatfs */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 158 = compat_20_fstatfs */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 159 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 159 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 160 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 160 = unimplemented */
 	{ ns(struct compat_30_sys_getfh_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 161 = compat_30_getfh */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 161 = compat_30_getfh */
 	{ ns(struct compat_09_sys_getdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 162 = compat_09_ogetdomainname */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 162 = compat_09_ogetdomainname */
 	{ ns(struct compat_09_sys_setdomainname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 163 = compat_09_osetdomainname */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 163 = compat_09_osetdomainname */
 	{ ns(struct compat_09_sys_uname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 164 = compat_09_ouname */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 164 = compat_09_ouname */
 	{ ns(struct sys_sysarch_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_sysarch },		/* 165 = sysarch */
+	    (sy_call_t *)sys_sysarch, 0, 0 },		/* 165 = sysarch */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 166 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 166 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 167 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 167 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 168 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 168 = unimplemented */
 #if (defined(SYSVSEM) || !defined(_KERNEL_OPT)) && !defined(_LP64)
 	{ ns(struct compat_10_sys_semsys_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 169 = compat_10_osemsys */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 169 = compat_10_osemsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 169 = excluded 1.0 semsys */
+	    sys_nosys, 0, 0 },			/* 169 = excluded 1.0 semsys */
 #endif
 #if (defined(SYSVMSG) || !defined(_KERNEL_OPT)) && !defined(_LP64)
 	{ ns(struct compat_10_sys_msgsys_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 170 = compat_10_omsgsys */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 170 = compat_10_omsgsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 170 = excluded 1.0 msgsys */
+	    sys_nosys, 0, 0 },			/* 170 = excluded 1.0 msgsys */
 #endif
 #if (defined(SYSVSHM) || !defined(_KERNEL_OPT)) && !defined(_LP64)
 	{ ns(struct compat_10_sys_shmsys_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 171 = compat_10_oshmsys */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 171 = compat_10_oshmsys */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 171 = excluded 1.0 shmsys */
+	    sys_nosys, 0, 0 },			/* 171 = excluded 1.0 shmsys */
 #endif
 	{ 0, 0, 0,
-	    sys_nosys },			/* 172 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 172 = unimplemented */
 	{ ns(struct sys_pread_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG4_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pread },		/* 173 = pread */
+	    (sy_call_t *)sys_pread, 0, 0 },		/* 173 = pread */
 	{ ns(struct sys_pwrite_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG4_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pwrite },		/* 174 = pwrite */
+	    (sy_call_t *)sys_pwrite, 0, 0 },		/* 174 = pwrite */
 	{ ns(struct compat_30_sys_ntp_gettime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_30(sys_ntp_gettime) },/* 175 = compat_30_ntp_gettime */
+	    (sy_call_t *)compat_30(sys_ntp_gettime), 0, 0 },/* 175 = compat_30_ntp_gettime */
 #if defined(NTP) || !defined(_KERNEL_OPT)
 	{ ns(struct sys_ntp_adjtime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_ntp_adjtime },	/* 176 = ntp_adjtime */
+	    (sy_call_t *)sys_ntp_adjtime, 0, 0 },	/* 176 = ntp_adjtime */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 176 = excluded ntp_adjtime */
+	    sys_nosys, 0, 0 },			/* 176 = excluded ntp_adjtime */
 #endif
 	{ 0, 0, 0,
-	    sys_nosys },			/* 177 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 177 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 178 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 178 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 179 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 179 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 180 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 180 = unimplemented */
 	{ ns(struct sys_setgid_args), 0,
-	    (sy_call_t *)sys_setgid },		/* 181 = setgid */
+	    (sy_call_t *)sys_setgid, 0, 0 },		/* 181 = setgid */
 	{ ns(struct sys_setegid_args), 0,
-	    (sy_call_t *)sys_setegid },		/* 182 = setegid */
+	    (sy_call_t *)sys_setegid, 0, 0 },		/* 182 = setegid */
 	{ ns(struct sys_seteuid_args), 0,
-	    (sy_call_t *)sys_seteuid },		/* 183 = seteuid */
+	    (sy_call_t *)sys_seteuid, 0, 0 },		/* 183 = seteuid */
 	{ ns(struct sys_lfs_bmapv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 184 = lfs_bmapv */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 184 = lfs_bmapv */
 	{ ns(struct sys_lfs_markv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 185 = lfs_markv */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 185 = lfs_markv */
 	{ ns(struct sys_lfs_segclean_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 186 = lfs_segclean */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 186 = lfs_segclean */
 	{ ns(struct compat_50_sys_lfs_segwait_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 187 = compat_50_lfs_segwait */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 187 = compat_50_lfs_segwait */
 	{ ns(struct compat_12_sys_stat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 188 = compat_12_stat12 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 188 = compat_12_stat12 */
 	{ ns(struct compat_12_sys_fstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 189 = compat_12_fstat12 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 189 = compat_12_fstat12 */
 	{ ns(struct compat_12_sys_lstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 190 = compat_12_lstat12 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 190 = compat_12_lstat12 */
 	{ ns(struct sys_pathconf_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pathconf },	/* 191 = pathconf */
+	    (sy_call_t *)sys_pathconf, 0, 0 },	/* 191 = pathconf */
 	{ ns(struct sys_fpathconf_args), 0,
-	    (sy_call_t *)sys_fpathconf },	/* 192 = fpathconf */
+	    (sy_call_t *)sys_fpathconf, 0, 0 },	/* 192 = fpathconf */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 193 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 193 = unimplemented */
 	{ ns(struct sys_getrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getrlimit },	/* 194 = getrlimit */
+	    (sy_call_t *)sys_getrlimit, 0, 0 },	/* 194 = getrlimit */
 	{ ns(struct sys_setrlimit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setrlimit },	/* 195 = setrlimit */
+	    (sy_call_t *)sys_setrlimit, 0, 0 },	/* 195 = setrlimit */
 	{ ns(struct compat_12_sys_getdirentries_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 196 = compat_12_getdirentries */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 196 = compat_12_getdirentries */
 	{ ns(struct sys_mmap_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG6_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mmap },		/* 197 = mmap */
+	    (sy_call_t *)sys_mmap, 0, 0 },		/* 197 = mmap */
 	{ ns(struct sys___syscall_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG0_64 | SYCALL_RET_64 | SYCALL_INDIRECT,
-	    (sy_call_t *)sys___syscall },	/* 198 = __syscall */
+	    (sy_call_t *)sys___syscall, 0, 0 },	/* 198 = __syscall */
 	{ ns(struct sys_lseek_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG2_64 | SYCALL_RET_64,
-	    (sy_call_t *)sys_lseek },		/* 199 = lseek */
+	    (sy_call_t *)sys_lseek, 0, 0 },		/* 199 = lseek */
 	{ ns(struct sys_truncate_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG2_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_truncate },	/* 200 = truncate */
+	    (sy_call_t *)sys_truncate, 0, 0 },	/* 200 = truncate */
 	{ ns(struct sys_ftruncate_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG2_64,
-	    (sy_call_t *)sys_ftruncate },	/* 201 = ftruncate */
+	    (sy_call_t *)sys_ftruncate, 0, 0 },	/* 201 = ftruncate */
 	{ ns(struct sys___sysctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___sysctl },	/* 202 = __sysctl */
+	    (sy_call_t *)sys___sysctl, 0, 0 },	/* 202 = __sysctl */
 	{ ns(struct sys_mlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mlock },		/* 203 = mlock */
+	    (sy_call_t *)sys_mlock, 0, 0 },		/* 203 = mlock */
 	{ ns(struct sys_munlock_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_munlock },		/* 204 = munlock */
+	    (sy_call_t *)sys_munlock, 0, 0 },		/* 204 = munlock */
 	{ ns(struct sys_undelete_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_undelete },	/* 205 = undelete */
+	    (sy_call_t *)sys_undelete, 0, 0 },	/* 205 = undelete */
 	{ ns(struct compat_50_sys_futimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 206 = compat_50_futimes */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 206 = compat_50_futimes */
 	{ ns(struct sys_getpgid_args), 0,
-	    (sy_call_t *)sys_getpgid },		/* 207 = getpgid */
+	    (sy_call_t *)sys_getpgid, 0, 0 },		/* 207 = getpgid */
 	{ ns(struct sys_reboot_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_reboot },		/* 208 = reboot */
+	    (sy_call_t *)sys_reboot, 0, 0 },		/* 208 = reboot */
 	{ ns(struct sys_poll_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_poll },		/* 209 = poll */
+	    (sy_call_t *)sys_poll, 0, 0 },		/* 209 = poll */
 	{ ns(struct sys_afssys_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 210 = afssys */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 210 = afssys */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 211 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 211 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 212 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 212 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 213 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 213 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 214 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 214 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 215 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 215 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 216 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 216 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 217 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 217 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 218 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 218 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 219 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 219 = unimplemented */
 #if defined(SYSVSEM) || !defined(_KERNEL_OPT)
 	{ ns(struct compat_14_sys___semctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 220 = compat_14___semctl */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 220 = compat_14___semctl */
 	{ ns(struct sys_semget_args), 0,
-	    (sy_call_t *)sys_semget },		/* 221 = semget */
+	    (sy_call_t *)sys_semget, 0, 0 },		/* 221 = semget */
 	{ ns(struct sys_semop_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_semop },		/* 222 = semop */
+	    (sy_call_t *)sys_semop, 0, 0 },		/* 222 = semop */
 	{ ns(struct sys_semconfig_args), 0,
-	    (sy_call_t *)sys_semconfig },	/* 223 = semconfig */
+	    (sy_call_t *)sys_semconfig, 0, 0 },	/* 223 = semconfig */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 220 = excluded compat_14_semctl */
+	    sys_nosys, 0, 0 },			/* 220 = excluded compat_14_semctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 221 = excluded semget */
+	    sys_nosys, 0, 0 },			/* 221 = excluded semget */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 222 = excluded semop */
+	    sys_nosys, 0, 0 },			/* 222 = excluded semop */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 223 = excluded semconfig */
+	    sys_nosys, 0, 0 },			/* 223 = excluded semconfig */
 #endif
 #if defined(SYSVMSG) || !defined(_KERNEL_OPT)
 	{ ns(struct compat_14_sys_msgctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 224 = compat_14_msgctl */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 224 = compat_14_msgctl */
 	{ ns(struct sys_msgget_args), 0,
-	    (sy_call_t *)sys_msgget },		/* 225 = msgget */
+	    (sy_call_t *)sys_msgget, 0, 0 },		/* 225 = msgget */
 	{ ns(struct sys_msgsnd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_msgsnd },		/* 226 = msgsnd */
+	    (sy_call_t *)sys_msgsnd, 0, 0 },		/* 226 = msgsnd */
 	{ ns(struct sys_msgrcv_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_msgrcv },		/* 227 = msgrcv */
+	    (sy_call_t *)sys_msgrcv, 0, 0 },		/* 227 = msgrcv */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 224 = excluded compat_14_msgctl */
+	    sys_nosys, 0, 0 },			/* 224 = excluded compat_14_msgctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 225 = excluded msgget */
+	    sys_nosys, 0, 0 },			/* 225 = excluded msgget */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 226 = excluded msgsnd */
+	    sys_nosys, 0, 0 },			/* 226 = excluded msgsnd */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 227 = excluded msgrcv */
+	    sys_nosys, 0, 0 },			/* 227 = excluded msgrcv */
 #endif
 #if defined(SYSVSHM) || !defined(_KERNEL_OPT)
 	{ ns(struct sys_shmat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_shmat },		/* 228 = shmat */
+	    (sy_call_t *)sys_shmat, 0, 0 },		/* 228 = shmat */
 	{ ns(struct compat_14_sys_shmctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 229 = compat_14_shmctl */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 229 = compat_14_shmctl */
 	{ ns(struct sys_shmdt_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_shmdt },		/* 230 = shmdt */
+	    (sy_call_t *)sys_shmdt, 0, 0 },		/* 230 = shmdt */
 	{ ns(struct sys_shmget_args), 0,
-	    (sy_call_t *)sys_shmget },		/* 231 = shmget */
+	    (sy_call_t *)sys_shmget, 0, 0 },		/* 231 = shmget */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 228 = excluded shmat */
+	    sys_nosys, 0, 0 },			/* 228 = excluded shmat */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 229 = excluded compat_14_shmctl */
+	    sys_nosys, 0, 0 },			/* 229 = excluded compat_14_shmctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 230 = excluded shmdt */
+	    sys_nosys, 0, 0 },			/* 230 = excluded shmdt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 231 = excluded shmget */
+	    sys_nosys, 0, 0 },			/* 231 = excluded shmget */
 #endif
 	{ ns(struct compat_50_sys_clock_gettime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 232 = compat_50_clock_gettime */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 232 = compat_50_clock_gettime */
 	{ ns(struct compat_50_sys_clock_settime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 233 = compat_50_clock_settime */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 233 = compat_50_clock_settime */
 	{ ns(struct compat_50_sys_clock_getres_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 234 = compat_50_clock_getres */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 234 = compat_50_clock_getres */
 	{ ns(struct sys_timer_create_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_timer_create },	/* 235 = timer_create */
+	    (sy_call_t *)sys_timer_create, 0, 0 },	/* 235 = timer_create */
 	{ ns(struct sys_timer_delete_args), 0,
-	    (sy_call_t *)sys_timer_delete },	/* 236 = timer_delete */
+	    (sy_call_t *)sys_timer_delete, 0, 0 },	/* 236 = timer_delete */
 	{ ns(struct compat_50_sys_timer_settime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 237 = compat_50_timer_settime */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 237 = compat_50_timer_settime */
 	{ ns(struct compat_50_sys_timer_gettime_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 238 = compat_50_timer_gettime */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 238 = compat_50_timer_gettime */
 	{ ns(struct sys_timer_getoverrun_args), 0,
-	    (sy_call_t *)sys_timer_getoverrun },/* 239 = timer_getoverrun */
+	    (sy_call_t *)sys_timer_getoverrun, 0, 0 },/* 239 = timer_getoverrun */
 	{ ns(struct compat_50_sys_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 240 = compat_50_nanosleep */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 240 = compat_50_nanosleep */
 	{ ns(struct sys_fdatasync_args), 0,
-	    (sy_call_t *)sys_fdatasync },	/* 241 = fdatasync */
+	    (sy_call_t *)sys_fdatasync, 0, 0 },	/* 241 = fdatasync */
 	{ ns(struct sys_mlockall_args), 0,
-	    (sy_call_t *)sys_mlockall },	/* 242 = mlockall */
+	    (sy_call_t *)sys_mlockall, 0, 0 },	/* 242 = mlockall */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_munlockall },	/* 243 = munlockall */
+	    (sy_call_t *)sys_munlockall, 0, 0 },	/* 243 = munlockall */
 	{ ns(struct compat_50_sys___sigtimedwait_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 244 = compat_50___sigtimedwait */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 244 = compat_50___sigtimedwait */
 	{ ns(struct sys_sigqueueinfo_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_sigqueueinfo },	/* 245 = sigqueueinfo */
+	    (sy_call_t *)sys_sigqueueinfo, 0, 0 },	/* 245 = sigqueueinfo */
 	{ ns(struct sys_modctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_modctl },		/* 246 = modctl */
+	    (sy_call_t *)sys_modctl, 0, 0 },		/* 246 = modctl */
 	{ ns(struct sys__ksem_init_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 247 = _ksem_init */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 247 = _ksem_init */
 	{ ns(struct sys__ksem_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 248 = _ksem_open */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 248 = _ksem_open */
 	{ ns(struct sys__ksem_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 249 = _ksem_unlink */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 249 = _ksem_unlink */
 	{ ns(struct sys__ksem_close_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 250 = _ksem_close */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 250 = _ksem_close */
 	{ ns(struct sys__ksem_post_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 251 = _ksem_post */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 251 = _ksem_post */
 	{ ns(struct sys__ksem_wait_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 252 = _ksem_wait */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 252 = _ksem_wait */
 	{ ns(struct sys__ksem_trywait_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 253 = _ksem_trywait */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 253 = _ksem_trywait */
 	{ ns(struct sys__ksem_getvalue_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 254 = _ksem_getvalue */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 254 = _ksem_getvalue */
 	{ ns(struct sys__ksem_destroy_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 255 = _ksem_destroy */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 255 = _ksem_destroy */
 	{ ns(struct sys__ksem_timedwait_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 256 = _ksem_timedwait */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 256 = _ksem_timedwait */
 	{ ns(struct sys_mq_open_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 257 = mq_open */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 257 = mq_open */
 	{ ns(struct sys_mq_close_args), 0,
-	    (sy_call_t *)sys_nomodule },	/* 258 = mq_close */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 258 = mq_close */
 	{ ns(struct sys_mq_unlink_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 259 = mq_unlink */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 259 = mq_unlink */
 	{ ns(struct sys_mq_getattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 260 = mq_getattr */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 260 = mq_getattr */
 	{ ns(struct sys_mq_setattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 261 = mq_setattr */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 261 = mq_setattr */
 	{ ns(struct sys_mq_notify_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 262 = mq_notify */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 262 = mq_notify */
 	{ ns(struct sys_mq_send_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 263 = mq_send */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 263 = mq_send */
 	{ ns(struct sys_mq_receive_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 264 = mq_receive */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 264 = mq_receive */
 	{ ns(struct compat_50_sys_mq_timedsend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 265 = compat_50_mq_timedsend */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 265 = compat_50_mq_timedsend */
 	{ ns(struct compat_50_sys_mq_timedreceive_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 266 = compat_50_mq_timedreceive */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 266 = compat_50_mq_timedreceive */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 267 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 267 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 268 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 268 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 269 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 269 = unimplemented */
 	{ ns(struct sys___posix_rename_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_rename },	/* 270 = __posix_rename */
+	    (sy_call_t *)sys___posix_rename, 0, 0 },	/* 270 = __posix_rename */
 	{ ns(struct sys_swapctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_swapctl },		/* 271 = swapctl */
+	    (sy_call_t *)sys_swapctl, 0, 0 },		/* 271 = swapctl */
 	{ ns(struct compat_30_sys_getdents_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 272 = compat_30_getdents */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 272 = compat_30_getdents */
 	{ ns(struct sys_minherit_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_minherit },	/* 273 = minherit */
+	    (sy_call_t *)sys_minherit, 0, 0 },	/* 273 = minherit */
 	{ ns(struct sys_lchmod_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_lchmod },		/* 274 = lchmod */
+	    (sy_call_t *)sys_lchmod, 0, 0 },		/* 274 = lchmod */
 	{ ns(struct sys_lchown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_lchown },		/* 275 = lchown */
+	    (sy_call_t *)sys_lchown, 0, 0 },		/* 275 = lchown */
 	{ ns(struct compat_50_sys_lutimes_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 276 = compat_50_lutimes */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 276 = compat_50_lutimes */
 	{ ns(struct sys___msync13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___msync13 },	/* 277 = __msync13 */
+	    (sy_call_t *)sys___msync13, 0, 0 },	/* 277 = __msync13 */
 	{ ns(struct compat_30_sys___stat13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 278 = compat_30___stat13 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 278 = compat_30___stat13 */
 	{ ns(struct compat_30_sys___fstat13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 279 = compat_30___fstat13 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 279 = compat_30___fstat13 */
 	{ ns(struct compat_30_sys___lstat13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 280 = compat_30___lstat13 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 280 = compat_30___lstat13 */
 	{ ns(struct sys___sigaltstack14_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___sigaltstack14 },	/* 281 = __sigaltstack14 */
+	    (sy_call_t *)sys___sigaltstack14, 0, 0 },	/* 281 = __sigaltstack14 */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys___vfork14 },	/* 282 = __vfork14 */
+	    (sy_call_t *)sys___vfork14, 0, 0 },	/* 282 = __vfork14 */
 	{ ns(struct sys___posix_chown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_chown },	/* 283 = __posix_chown */
+	    (sy_call_t *)sys___posix_chown, 0, 0 },	/* 283 = __posix_chown */
 	{ ns(struct sys___posix_fchown_args), 0,
-	    (sy_call_t *)sys___posix_fchown },	/* 284 = __posix_fchown */
+	    (sy_call_t *)sys___posix_fchown, 0, 0 },	/* 284 = __posix_fchown */
 	{ ns(struct sys___posix_lchown_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___posix_lchown },	/* 285 = __posix_lchown */
+	    (sy_call_t *)sys___posix_lchown, 0, 0 },	/* 285 = __posix_lchown */
 	{ ns(struct sys_getsid_args), 0,
-	    (sy_call_t *)sys_getsid },		/* 286 = getsid */
+	    (sy_call_t *)sys_getsid, 0, 0 },		/* 286 = getsid */
 	{ ns(struct sys___clone_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___clone },		/* 287 = __clone */
+	    (sy_call_t *)sys___clone, 0, 0 },		/* 287 = __clone */
 	{ ns(struct sys_fktrace_args), 0,
-	    (sy_call_t *)sys_fktrace },		/* 288 = fktrace */
+	    (sy_call_t *)sys_fktrace, 0, 0 },		/* 288 = fktrace */
 	{ ns(struct sys_preadv_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG4_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_preadv },		/* 289 = preadv */
+	    (sy_call_t *)sys_preadv, 0, 0 },		/* 289 = preadv */
 	{ ns(struct sys_pwritev_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG4_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pwritev },		/* 290 = pwritev */
+	    (sy_call_t *)sys_pwritev, 0, 0 },		/* 290 = pwritev */
 	{ ns(struct compat_16_sys___sigaction14_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 291 = compat_16___sigaction14 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 291 = compat_16___sigaction14 */
 	{ ns(struct sys___sigpending14_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___sigpending14 },	/* 292 = __sigpending14 */
+	    (sy_call_t *)sys___sigpending14, 0, 0 },	/* 292 = __sigpending14 */
 	{ ns(struct sys___sigprocmask14_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___sigprocmask14 },	/* 293 = __sigprocmask14 */
+	    (sy_call_t *)sys___sigprocmask14, 0, 0 },	/* 293 = __sigprocmask14 */
 	{ ns(struct sys___sigsuspend14_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___sigsuspend14 },	/* 294 = __sigsuspend14 */
+	    (sy_call_t *)sys___sigsuspend14, 0, 0 },	/* 294 = __sigsuspend14 */
 	{ ns(struct compat_16_sys___sigreturn14_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 295 = compat_16___sigreturn14 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 295 = compat_16___sigreturn14 */
 	{ ns(struct sys___getcwd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getcwd },	/* 296 = __getcwd */
+	    (sy_call_t *)sys___getcwd, 0, 0 },	/* 296 = __getcwd */
 	{ ns(struct sys_fchroot_args), 0,
-	    (sy_call_t *)sys_fchroot },		/* 297 = fchroot */
+	    (sy_call_t *)sys_fchroot, 0, 0 },		/* 297 = fchroot */
 	{ ns(struct compat_30_sys_fhopen_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 298 = compat_30_fhopen */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 298 = compat_30_fhopen */
 	{ ns(struct compat_30_sys_fhstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 299 = compat_30_fhstat */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 299 = compat_30_fhstat */
 	{ ns(struct compat_20_sys_fhstatfs_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 300 = compat_20_fhstatfs */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 300 = compat_20_fhstatfs */
 #if defined(SYSVSEM) || !defined(_KERNEL_OPT)
 	{ ns(struct compat_50_sys_____semctl13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 301 = compat_50_____semctl13 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 301 = compat_50_____semctl13 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 301 = excluded ____semctl13 */
+	    sys_nosys, 0, 0 },			/* 301 = excluded ____semctl13 */
 #endif
 #if defined(SYSVMSG) || !defined(_KERNEL_OPT)
 	{ ns(struct compat_50_sys___msgctl13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 302 = compat_50___msgctl13 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 302 = compat_50___msgctl13 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 302 = excluded __msgctl13 */
+	    sys_nosys, 0, 0 },			/* 302 = excluded __msgctl13 */
 #endif
 #if defined(SYSVSHM) || !defined(_KERNEL_OPT)
 	{ ns(struct compat_50_sys___shmctl13_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 303 = compat_50___shmctl13 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 303 = compat_50___shmctl13 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 303 = excluded __shmctl13 */
+	    sys_nosys, 0, 0 },			/* 303 = excluded __shmctl13 */
 #endif
 	{ ns(struct sys_lchflags_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_lchflags },	/* 304 = lchflags */
+	    (sy_call_t *)sys_lchflags, 0, 0 },	/* 304 = lchflags */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_issetugid },	/* 305 = issetugid */
+	    (sy_call_t *)sys_issetugid, 0, 0 },	/* 305 = issetugid */
 	{ ns(struct sys_utrace_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_utrace },		/* 306 = utrace */
+	    (sy_call_t *)sys_utrace, 0, 0 },		/* 306 = utrace */
 	{ ns(struct sys_getcontext_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getcontext },	/* 307 = getcontext */
+	    (sy_call_t *)sys_getcontext, 0, 0 },	/* 307 = getcontext */
 	{ ns(struct sys_setcontext_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setcontext },	/* 308 = setcontext */
+	    (sy_call_t *)sys_setcontext, 0, 0 },	/* 308 = setcontext */
 	{ ns(struct sys__lwp_create_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys__lwp_create },	/* 309 = _lwp_create */
+	    (sy_call_t *)sys__lwp_create, 0, 0 },	/* 309 = _lwp_create */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys__lwp_exit },	/* 310 = _lwp_exit */
+	    (sy_call_t *)sys__lwp_exit, 0, 0 },	/* 310 = _lwp_exit */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys__lwp_self },	/* 311 = _lwp_self */
+	    (sy_call_t *)sys__lwp_self, 0, 0 },	/* 311 = _lwp_self */
 	{ ns(struct sys__lwp_wait_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys__lwp_wait },	/* 312 = _lwp_wait */
+	    (sy_call_t *)sys__lwp_wait, 0, 0 },	/* 312 = _lwp_wait */
 	{ ns(struct sys__lwp_suspend_args), 0,
-	    (sy_call_t *)sys__lwp_suspend },	/* 313 = _lwp_suspend */
+	    (sy_call_t *)sys__lwp_suspend, 0, 0 },	/* 313 = _lwp_suspend */
 	{ ns(struct sys__lwp_continue_args), 0,
-	    (sy_call_t *)sys__lwp_continue },	/* 314 = _lwp_continue */
+	    (sy_call_t *)sys__lwp_continue, 0, 0 },	/* 314 = _lwp_continue */
 	{ ns(struct sys__lwp_wakeup_args), 0,
-	    (sy_call_t *)sys__lwp_wakeup },	/* 315 = _lwp_wakeup */
+	    (sy_call_t *)sys__lwp_wakeup, 0, 0 },	/* 315 = _lwp_wakeup */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys__lwp_getprivate },	/* 316 = _lwp_getprivate */
+	    (sy_call_t *)sys__lwp_getprivate, 0, 0 },	/* 316 = _lwp_getprivate */
 	{ ns(struct sys__lwp_setprivate_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys__lwp_setprivate },	/* 317 = _lwp_setprivate */
+	    (sy_call_t *)sys__lwp_setprivate, 0, 0 },	/* 317 = _lwp_setprivate */
 	{ ns(struct sys__lwp_kill_args), 0,
-	    (sy_call_t *)sys__lwp_kill },	/* 318 = _lwp_kill */
+	    (sy_call_t *)sys__lwp_kill, 0, 0 },	/* 318 = _lwp_kill */
 	{ ns(struct sys__lwp_detach_args), 0,
-	    (sy_call_t *)sys__lwp_detach },	/* 319 = _lwp_detach */
+	    (sy_call_t *)sys__lwp_detach, 0, 0 },	/* 319 = _lwp_detach */
 	{ ns(struct compat_50_sys__lwp_park_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 320 = compat_50__lwp_park */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 320 = compat_50__lwp_park */
 	{ ns(struct sys__lwp_unpark_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys__lwp_unpark },	/* 321 = _lwp_unpark */
+	    (sy_call_t *)sys__lwp_unpark, 0, 0 },	/* 321 = _lwp_unpark */
 	{ ns(struct sys__lwp_unpark_all_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys__lwp_unpark_all },	/* 322 = _lwp_unpark_all */
+	    (sy_call_t *)sys__lwp_unpark_all, 0, 0 },	/* 322 = _lwp_unpark_all */
 	{ ns(struct sys__lwp_setname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys__lwp_setname },	/* 323 = _lwp_setname */
+	    (sy_call_t *)sys__lwp_setname, 0, 0 },	/* 323 = _lwp_setname */
 	{ ns(struct sys__lwp_getname_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys__lwp_getname },	/* 324 = _lwp_getname */
+	    (sy_call_t *)sys__lwp_getname, 0, 0 },	/* 324 = _lwp_getname */
 	{ ns(struct sys__lwp_ctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys__lwp_ctl },	/* 325 = _lwp_ctl */
+	    (sy_call_t *)sys__lwp_ctl, 0, 0 },	/* 325 = _lwp_ctl */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 326 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 326 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 327 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 327 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 328 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 328 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 329 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 329 = unimplemented */
 	{ ns(struct compat_60_sys_sa_register_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_60(sys_sa_register) },/* 330 = compat_60_sa_register */
+	    (sy_call_t *)compat_60(sys_sa_register), 0, 0 },/* 330 = compat_60_sa_register */
 	{ ns(struct compat_60_sys_sa_stacks_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)compat_60(sys_sa_stacks) },/* 331 = compat_60_sa_stacks */
+	    (sy_call_t *)compat_60(sys_sa_stacks), 0, 0 },/* 331 = compat_60_sa_stacks */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_60(sys_sa_enable) },/* 332 = compat_60_sa_enable */
+	    (sy_call_t *)compat_60(sys_sa_enable), 0, 0 },/* 332 = compat_60_sa_enable */
 	{ ns(struct compat_60_sys_sa_setconcurrency_args), 0,
-	    (sy_call_t *)compat_60(sys_sa_setconcurrency) },/* 333 = compat_60_sa_setconcurrency */
+	    (sy_call_t *)compat_60(sys_sa_setconcurrency), 0, 0 },/* 333 = compat_60_sa_setconcurrency */
 	{ 0, 0, 0,
-	    (sy_call_t *)compat_60(sys_sa_yield) },/* 334 = compat_60_sa_yield */
+	    (sy_call_t *)compat_60(sys_sa_yield), 0, 0 },/* 334 = compat_60_sa_yield */
 	{ ns(struct compat_60_sys_sa_preempt_args), 0,
-	    (sy_call_t *)compat_60(sys_sa_preempt) },/* 335 = compat_60_sa_preempt */
+	    (sy_call_t *)compat_60(sys_sa_preempt), 0, 0 },/* 335 = compat_60_sa_preempt */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 336 = obsolete sys_sa_unblockyield */
+	    sys_nosys, 0, 0 },			/* 336 = obsolete sys_sa_unblockyield */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 337 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 337 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 338 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 338 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 339 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 339 = unimplemented */
 	{ ns(struct sys___sigaction_sigtramp_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___sigaction_sigtramp },/* 340 = __sigaction_sigtramp */
+	    (sy_call_t *)sys___sigaction_sigtramp, 0, 0 },/* 340 = __sigaction_sigtramp */
 	{ ns(struct sys_pmc_get_info_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pmc_get_info },	/* 341 = pmc_get_info */
+	    (sy_call_t *)sys_pmc_get_info, 0, 0 },	/* 341 = pmc_get_info */
 	{ ns(struct sys_pmc_control_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pmc_control },	/* 342 = pmc_control */
+	    (sy_call_t *)sys_pmc_control, 0, 0 },	/* 342 = pmc_control */
 	{ ns(struct sys_rasctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_rasctl },		/* 343 = rasctl */
+	    (sy_call_t *)sys_rasctl, 0, 0 },		/* 343 = rasctl */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_kqueue },		/* 344 = kqueue */
+	    (sy_call_t *)sys_kqueue, 0, 0 },		/* 344 = kqueue */
 	{ ns(struct compat_50_sys_kevent_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 345 = compat_50_kevent */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 345 = compat_50_kevent */
 	{ ns(struct sys__sched_setparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys__sched_setparam },	/* 346 = _sched_setparam */
+	    (sy_call_t *)sys__sched_setparam, 0, 0 },	/* 346 = _sched_setparam */
 	{ ns(struct sys__sched_getparam_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys__sched_getparam },	/* 347 = _sched_getparam */
+	    (sy_call_t *)sys__sched_getparam, 0, 0 },	/* 347 = _sched_getparam */
 	{ ns(struct sys__sched_setaffinity_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys__sched_setaffinity },/* 348 = _sched_setaffinity */
+	    (sy_call_t *)sys__sched_setaffinity, 0, 0 },/* 348 = _sched_setaffinity */
 	{ ns(struct sys__sched_getaffinity_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys__sched_getaffinity },/* 349 = _sched_getaffinity */
+	    (sy_call_t *)sys__sched_getaffinity, 0, 0 },/* 349 = _sched_getaffinity */
 	{ 0, 0, 0,
-	    (sy_call_t *)sys_sched_yield },	/* 350 = sched_yield */
+	    (sy_call_t *)sys_sched_yield, 0, 0 },	/* 350 = sched_yield */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 351 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 351 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 352 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 352 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 353 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 353 = unimplemented */
 	{ ns(struct sys_fsync_range_args), SYCALL_NARGS64_VAL(2) | SYCALL_ARG3_64 | SYCALL_ARG2_64,
-	    (sy_call_t *)sys_fsync_range },	/* 354 = fsync_range */
+	    (sy_call_t *)sys_fsync_range, 0, 0 },	/* 354 = fsync_range */
 	{ ns(struct sys_uuidgen_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_uuidgen },		/* 355 = uuidgen */
+	    (sy_call_t *)sys_uuidgen, 0, 0 },		/* 355 = uuidgen */
 	{ ns(struct sys_getvfsstat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getvfsstat },	/* 356 = getvfsstat */
+	    (sy_call_t *)sys_getvfsstat, 0, 0 },	/* 356 = getvfsstat */
 	{ ns(struct sys_statvfs1_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_statvfs1 },	/* 357 = statvfs1 */
+	    (sy_call_t *)sys_statvfs1, 0, 0 },	/* 357 = statvfs1 */
 	{ ns(struct sys_fstatvfs1_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_fstatvfs1 },	/* 358 = fstatvfs1 */
+	    (sy_call_t *)sys_fstatvfs1, 0, 0 },	/* 358 = fstatvfs1 */
 	{ ns(struct compat_30_sys_fhstatvfs1_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 359 = compat_30_fhstatvfs1 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 359 = compat_30_fhstatvfs1 */
 	{ ns(struct sys_extattrctl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_extattrctl },	/* 360 = extattrctl */
+	    (sy_call_t *)sys_extattrctl, 0, 0 },	/* 360 = extattrctl */
 	{ ns(struct sys_extattr_set_file_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_extattr_set_file },/* 361 = extattr_set_file */
+	    (sy_call_t *)sys_extattr_set_file, 0, 0 },/* 361 = extattr_set_file */
 	{ ns(struct sys_extattr_get_file_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_extattr_get_file },/* 362 = extattr_get_file */
+	    (sy_call_t *)sys_extattr_get_file, 0, 0 },/* 362 = extattr_get_file */
 	{ ns(struct sys_extattr_delete_file_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_extattr_delete_file },/* 363 = extattr_delete_file */
+	    (sy_call_t *)sys_extattr_delete_file, 0, 0 },/* 363 = extattr_delete_file */
 	{ ns(struct sys_extattr_set_fd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_extattr_set_fd },	/* 364 = extattr_set_fd */
+	    (sy_call_t *)sys_extattr_set_fd, 0, 0 },	/* 364 = extattr_set_fd */
 	{ ns(struct sys_extattr_get_fd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_extattr_get_fd },	/* 365 = extattr_get_fd */
+	    (sy_call_t *)sys_extattr_get_fd, 0, 0 },	/* 365 = extattr_get_fd */
 	{ ns(struct sys_extattr_delete_fd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_extattr_delete_fd },/* 366 = extattr_delete_fd */
+	    (sy_call_t *)sys_extattr_delete_fd, 0, 0 },/* 366 = extattr_delete_fd */
 	{ ns(struct sys_extattr_set_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_extattr_set_link },/* 367 = extattr_set_link */
+	    (sy_call_t *)sys_extattr_set_link, 0, 0 },/* 367 = extattr_set_link */
 	{ ns(struct sys_extattr_get_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_extattr_get_link },/* 368 = extattr_get_link */
+	    (sy_call_t *)sys_extattr_get_link, 0, 0 },/* 368 = extattr_get_link */
 	{ ns(struct sys_extattr_delete_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_extattr_delete_link },/* 369 = extattr_delete_link */
+	    (sy_call_t *)sys_extattr_delete_link, 0, 0 },/* 369 = extattr_delete_link */
 	{ ns(struct sys_extattr_list_fd_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_extattr_list_fd },	/* 370 = extattr_list_fd */
+	    (sy_call_t *)sys_extattr_list_fd, 0, 0 },	/* 370 = extattr_list_fd */
 	{ ns(struct sys_extattr_list_file_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_extattr_list_file },/* 371 = extattr_list_file */
+	    (sy_call_t *)sys_extattr_list_file, 0, 0 },/* 371 = extattr_list_file */
 	{ ns(struct sys_extattr_list_link_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_extattr_list_link },/* 372 = extattr_list_link */
+	    (sy_call_t *)sys_extattr_list_link, 0, 0 },/* 372 = extattr_list_link */
 	{ ns(struct compat_50_sys_pselect_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 373 = compat_50_pselect */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 373 = compat_50_pselect */
 	{ ns(struct compat_50_sys_pollts_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 374 = compat_50_pollts */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 374 = compat_50_pollts */
 	{ ns(struct sys_setxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_setxattr },	/* 375 = setxattr */
+	    (sy_call_t *)sys_setxattr, 0, 0 },	/* 375 = setxattr */
 	{ ns(struct sys_lsetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_lsetxattr },	/* 376 = lsetxattr */
+	    (sy_call_t *)sys_lsetxattr, 0, 0 },	/* 376 = lsetxattr */
 	{ ns(struct sys_fsetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_fsetxattr },	/* 377 = fsetxattr */
+	    (sy_call_t *)sys_fsetxattr, 0, 0 },	/* 377 = fsetxattr */
 	{ ns(struct sys_getxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_getxattr },	/* 378 = getxattr */
+	    (sy_call_t *)sys_getxattr, 0, 0 },	/* 378 = getxattr */
 	{ ns(struct sys_lgetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_lgetxattr },	/* 379 = lgetxattr */
+	    (sy_call_t *)sys_lgetxattr, 0, 0 },	/* 379 = lgetxattr */
 	{ ns(struct sys_fgetxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_fgetxattr },	/* 380 = fgetxattr */
+	    (sy_call_t *)sys_fgetxattr, 0, 0 },	/* 380 = fgetxattr */
 	{ ns(struct sys_listxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_listxattr },	/* 381 = listxattr */
+	    (sy_call_t *)sys_listxattr, 0, 0 },	/* 381 = listxattr */
 	{ ns(struct sys_llistxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_llistxattr },	/* 382 = llistxattr */
+	    (sy_call_t *)sys_llistxattr, 0, 0 },	/* 382 = llistxattr */
 	{ ns(struct sys_flistxattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_flistxattr },	/* 383 = flistxattr */
+	    (sy_call_t *)sys_flistxattr, 0, 0 },	/* 383 = flistxattr */
 	{ ns(struct sys_removexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_removexattr },	/* 384 = removexattr */
+	    (sy_call_t *)sys_removexattr, 0, 0 },	/* 384 = removexattr */
 	{ ns(struct sys_lremovexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_lremovexattr },	/* 385 = lremovexattr */
+	    (sy_call_t *)sys_lremovexattr, 0, 0 },	/* 385 = lremovexattr */
 	{ ns(struct sys_fremovexattr_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_fremovexattr },	/* 386 = fremovexattr */
+	    (sy_call_t *)sys_fremovexattr, 0, 0 },	/* 386 = fremovexattr */
 	{ ns(struct compat_50_sys___stat30_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 387 = compat_50___stat30 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 387 = compat_50___stat30 */
 	{ ns(struct compat_50_sys___fstat30_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 388 = compat_50___fstat30 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 388 = compat_50___fstat30 */
 	{ ns(struct compat_50_sys___lstat30_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 389 = compat_50___lstat30 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 389 = compat_50___lstat30 */
 	{ ns(struct sys___getdents30_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getdents30 },	/* 390 = __getdents30 */
+	    (sy_call_t *)sys___getdents30, 0, 0 },	/* 390 = __getdents30 */
 	{ 0, 0, 0,
-	    (sy_call_t *)nullop },			/* 391 = ignored old posix_fadvise */
+	    (sy_call_t *)nullop, 0, 0 },			/* 391 = ignored old posix_fadvise */
 	{ ns(struct compat_30_sys___fhstat30_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 392 = compat_30___fhstat30 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 392 = compat_30___fhstat30 */
 	{ ns(struct compat_50_sys___ntp_gettime30_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 393 = compat_50___ntp_gettime30 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 393 = compat_50___ntp_gettime30 */
 	{ ns(struct sys___socket30_args), 0,
-	    (sy_call_t *)sys___socket30 },	/* 394 = __socket30 */
+	    (sy_call_t *)sys___socket30, 0, 0 },	/* 394 = __socket30 */
 	{ ns(struct sys___getfh30_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getfh30 },	/* 395 = __getfh30 */
+	    (sy_call_t *)sys___getfh30, 0, 0 },	/* 395 = __getfh30 */
 	{ ns(struct sys___fhopen40_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___fhopen40 },	/* 396 = __fhopen40 */
+	    (sy_call_t *)sys___fhopen40, 0, 0 },	/* 396 = __fhopen40 */
 	{ ns(struct sys___fhstatvfs140_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___fhstatvfs140 },	/* 397 = __fhstatvfs140 */
+	    (sy_call_t *)sys___fhstatvfs140, 0, 0 },	/* 397 = __fhstatvfs140 */
 	{ ns(struct compat_50_sys___fhstat40_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 398 = compat_50___fhstat40 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 398 = compat_50___fhstat40 */
 	{ ns(struct sys_aio_cancel_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 399 = aio_cancel */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 399 = aio_cancel */
 	{ ns(struct sys_aio_error_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 400 = aio_error */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 400 = aio_error */
 	{ ns(struct sys_aio_fsync_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 401 = aio_fsync */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 401 = aio_fsync */
 	{ ns(struct sys_aio_read_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 402 = aio_read */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 402 = aio_read */
 	{ ns(struct sys_aio_return_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 403 = aio_return */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 403 = aio_return */
 	{ ns(struct compat_50_sys_aio_suspend_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 404 = compat_50_aio_suspend */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 404 = compat_50_aio_suspend */
 	{ ns(struct sys_aio_write_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 405 = aio_write */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 405 = aio_write */
 	{ ns(struct sys_lio_listio_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 406 = lio_listio */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 406 = lio_listio */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 407 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 407 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 408 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 408 = unimplemented */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 409 = unimplemented */
+	    sys_nosys, 0, 0 },			/* 409 = unimplemented */
 	{ ns(struct sys___mount50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___mount50 },	/* 410 = __mount50 */
+	    (sy_call_t *)sys___mount50, 0, 0 },	/* 410 = __mount50 */
 	{ ns(struct sys_mremap_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mremap },		/* 411 = mremap */
+	    (sy_call_t *)sys_mremap, 0, 0 },		/* 411 = mremap */
 	{ ns(struct sys_pset_create_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pset_create },	/* 412 = pset_create */
+	    (sy_call_t *)sys_pset_create, 0, 0 },	/* 412 = pset_create */
 	{ ns(struct sys_pset_destroy_args), 0,
-	    (sy_call_t *)sys_pset_destroy },	/* 413 = pset_destroy */
+	    (sy_call_t *)sys_pset_destroy, 0, 0 },	/* 413 = pset_destroy */
 	{ ns(struct sys_pset_assign_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pset_assign },	/* 414 = pset_assign */
+	    (sy_call_t *)sys_pset_assign, 0, 0 },	/* 414 = pset_assign */
 	{ ns(struct sys__pset_bind_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys__pset_bind },	/* 415 = _pset_bind */
+	    (sy_call_t *)sys__pset_bind, 0, 0 },	/* 415 = _pset_bind */
 	{ ns(struct sys___posix_fadvise50_args), SYCALL_NARGS64_VAL(2) | SYCALL_ARG3_64 | SYCALL_ARG2_64,
-	    (sy_call_t *)sys___posix_fadvise50 },/* 416 = __posix_fadvise50 */
+	    (sy_call_t *)sys___posix_fadvise50, 0, 0 },/* 416 = __posix_fadvise50 */
 	{ ns(struct sys___select50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___select50 },	/* 417 = __select50 */
+	    (sy_call_t *)sys___select50, 0, 0 },	/* 417 = __select50 */
 	{ ns(struct sys___gettimeofday50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___gettimeofday50 },/* 418 = __gettimeofday50 */
+	    (sy_call_t *)sys___gettimeofday50, 0, 0 },/* 418 = __gettimeofday50 */
 	{ ns(struct sys___settimeofday50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___settimeofday50 },/* 419 = __settimeofday50 */
+	    (sy_call_t *)sys___settimeofday50, 0, 0 },/* 419 = __settimeofday50 */
 	{ ns(struct sys___utimes50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___utimes50 },	/* 420 = __utimes50 */
+	    (sy_call_t *)sys___utimes50, 0, 0 },	/* 420 = __utimes50 */
 	{ ns(struct sys___adjtime50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___adjtime50 },	/* 421 = __adjtime50 */
+	    (sy_call_t *)sys___adjtime50, 0, 0 },	/* 421 = __adjtime50 */
 	{ ns(struct sys___lfs_segwait50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 422 = __lfs_segwait50 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 422 = __lfs_segwait50 */
 	{ ns(struct sys___futimes50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___futimes50 },	/* 423 = __futimes50 */
+	    (sy_call_t *)sys___futimes50, 0, 0 },	/* 423 = __futimes50 */
 	{ ns(struct sys___lutimes50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___lutimes50 },	/* 424 = __lutimes50 */
+	    (sy_call_t *)sys___lutimes50, 0, 0 },	/* 424 = __lutimes50 */
 	{ ns(struct sys___setitimer50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___setitimer50 },	/* 425 = __setitimer50 */
+	    (sy_call_t *)sys___setitimer50, 0, 0 },	/* 425 = __setitimer50 */
 	{ ns(struct sys___getitimer50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getitimer50 },	/* 426 = __getitimer50 */
+	    (sy_call_t *)sys___getitimer50, 0, 0 },	/* 426 = __getitimer50 */
 	{ ns(struct sys___clock_gettime50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___clock_gettime50 },/* 427 = __clock_gettime50 */
+	    (sy_call_t *)sys___clock_gettime50, 0, 0 },/* 427 = __clock_gettime50 */
 	{ ns(struct sys___clock_settime50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___clock_settime50 },/* 428 = __clock_settime50 */
+	    (sy_call_t *)sys___clock_settime50, 0, 0 },/* 428 = __clock_settime50 */
 	{ ns(struct sys___clock_getres50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___clock_getres50 },/* 429 = __clock_getres50 */
+	    (sy_call_t *)sys___clock_getres50, 0, 0 },/* 429 = __clock_getres50 */
 	{ ns(struct sys___nanosleep50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___nanosleep50 },	/* 430 = __nanosleep50 */
+	    (sy_call_t *)sys___nanosleep50, 0, 0 },	/* 430 = __nanosleep50 */
 	{ ns(struct sys_____sigtimedwait50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_____sigtimedwait50 },/* 431 = ____sigtimedwait50 */
+	    (sy_call_t *)sys_____sigtimedwait50, 0, 0 },/* 431 = ____sigtimedwait50 */
 	{ ns(struct sys___mq_timedsend50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 432 = __mq_timedsend50 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 432 = __mq_timedsend50 */
 	{ ns(struct sys___mq_timedreceive50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 433 = __mq_timedreceive50 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 433 = __mq_timedreceive50 */
 	{ ns(struct compat_60_sys__lwp_park_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 434 = compat_60__lwp_park */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 434 = compat_60__lwp_park */
 	{ ns(struct sys___kevent50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___kevent50 },	/* 435 = __kevent50 */
+	    (sy_call_t *)sys___kevent50, 0, 0 },	/* 435 = __kevent50 */
 	{ ns(struct sys___pselect50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___pselect50 },	/* 436 = __pselect50 */
+	    (sy_call_t *)sys___pselect50, 0, 0 },	/* 436 = __pselect50 */
 	{ ns(struct sys___pollts50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___pollts50 },	/* 437 = __pollts50 */
+	    (sy_call_t *)sys___pollts50, 0, 0 },	/* 437 = __pollts50 */
 	{ ns(struct sys___aio_suspend50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_nomodule },	/* 438 = __aio_suspend50 */
+	    (sy_call_t *)sys_nomodule, 0, 0 },	/* 438 = __aio_suspend50 */
 	{ ns(struct sys___stat50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___stat50 },	/* 439 = __stat50 */
+	    (sy_call_t *)sys___stat50, 0, 0 },	/* 439 = __stat50 */
 	{ ns(struct sys___fstat50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___fstat50 },	/* 440 = __fstat50 */
+	    (sy_call_t *)sys___fstat50, 0, 0 },	/* 440 = __fstat50 */
 	{ ns(struct sys___lstat50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___lstat50 },	/* 441 = __lstat50 */
+	    (sy_call_t *)sys___lstat50, 0, 0 },	/* 441 = __lstat50 */
 #if defined(SYSVSEM) || !defined(_KERNEL_OPT)
 	{ ns(struct sys_____semctl50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_____semctl50 },	/* 442 = ____semctl50 */
+	    (sy_call_t *)sys_____semctl50, 0, 0 },	/* 442 = ____semctl50 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 442 = excluded ____semctl50 */
+	    sys_nosys, 0, 0 },			/* 442 = excluded ____semctl50 */
 #endif
 #if defined(SYSVSHM) || !defined(_KERNEL_OPT)
 	{ ns(struct sys___shmctl50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___shmctl50 },	/* 443 = __shmctl50 */
+	    (sy_call_t *)sys___shmctl50, 0, 0 },	/* 443 = __shmctl50 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 443 = excluded ____shmctl50 */
+	    sys_nosys, 0, 0 },			/* 443 = excluded ____shmctl50 */
 #endif
 #if defined(SYSVMSG) || !defined(_KERNEL_OPT)
 	{ ns(struct sys___msgctl50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___msgctl50 },	/* 444 = __msgctl50 */
+	    (sy_call_t *)sys___msgctl50, 0, 0 },	/* 444 = __msgctl50 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 444 = excluded ____msgctl50 */
+	    sys_nosys, 0, 0 },			/* 444 = excluded ____msgctl50 */
 #endif
 	{ ns(struct sys___getrusage50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___getrusage50 },	/* 445 = __getrusage50 */
+	    (sy_call_t *)sys___getrusage50, 0, 0 },	/* 445 = __getrusage50 */
 	{ ns(struct sys___timer_settime50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___timer_settime50 },/* 446 = __timer_settime50 */
+	    (sy_call_t *)sys___timer_settime50, 0, 0 },/* 446 = __timer_settime50 */
 	{ ns(struct sys___timer_gettime50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___timer_gettime50 },/* 447 = __timer_gettime50 */
+	    (sy_call_t *)sys___timer_gettime50, 0, 0 },/* 447 = __timer_gettime50 */
 #if defined(NTP) || !defined(_KERNEL_OPT)
 	{ ns(struct sys___ntp_gettime50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___ntp_gettime50 },	/* 448 = __ntp_gettime50 */
+	    (sy_call_t *)sys___ntp_gettime50, 0, 0 },	/* 448 = __ntp_gettime50 */
 #else
 	{ 0, 0, 0,
-	    sys_nosys },			/* 448 = excluded ___ntp_gettime50 */
+	    sys_nosys, 0, 0 },			/* 448 = excluded ___ntp_gettime50 */
 #endif
 	{ ns(struct sys___wait450_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___wait450 },	/* 449 = __wait450 */
+	    (sy_call_t *)sys___wait450, 0, 0 },	/* 449 = __wait450 */
 	{ ns(struct sys___mknod50_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG2_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___mknod50 },	/* 450 = __mknod50 */
+	    (sy_call_t *)sys___mknod50, 0, 0 },	/* 450 = __mknod50 */
 	{ ns(struct sys___fhstat50_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___fhstat50 },	/* 451 = __fhstat50 */
+	    (sy_call_t *)sys___fhstat50, 0, 0 },	/* 451 = __fhstat50 */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 452 = obsolete 5.99 quotactl */
+	    sys_nosys, 0, 0 },			/* 452 = obsolete 5.99 quotactl */
 	{ ns(struct sys_pipe2_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_pipe2 },		/* 453 = pipe2 */
+	    (sy_call_t *)sys_pipe2, 0, 0 },		/* 453 = pipe2 */
 	{ ns(struct sys_dup3_args), 0,
-	    (sy_call_t *)sys_dup3 },		/* 454 = dup3 */
+	    (sy_call_t *)sys_dup3, 0, 0 },		/* 454 = dup3 */
 	{ ns(struct sys_kqueue1_args), 0,
-	    (sy_call_t *)sys_kqueue1 },		/* 455 = kqueue1 */
+	    (sy_call_t *)sys_kqueue1, 0, 0 },		/* 455 = kqueue1 */
 	{ ns(struct sys_paccept_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_paccept },		/* 456 = paccept */
+	    (sy_call_t *)sys_paccept, 0, 0 },		/* 456 = paccept */
 	{ ns(struct sys_linkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_linkat },		/* 457 = linkat */
+	    (sy_call_t *)sys_linkat, 0, 0 },		/* 457 = linkat */
 	{ ns(struct sys_renameat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_renameat },	/* 458 = renameat */
+	    (sy_call_t *)sys_renameat, 0, 0 },	/* 458 = renameat */
 	{ ns(struct sys_mkfifoat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkfifoat },	/* 459 = mkfifoat */
+	    (sy_call_t *)sys_mkfifoat, 0, 0 },	/* 459 = mkfifoat */
 	{ ns(struct sys_mknodat_args), SYCALL_NARGS64_VAL(1) | SYCALL_ARG4_64 | SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mknodat },		/* 460 = mknodat */
+	    (sy_call_t *)sys_mknodat, 0, 0 },		/* 460 = mknodat */
 	{ ns(struct sys_mkdirat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_mkdirat },		/* 461 = mkdirat */
+	    (sy_call_t *)sys_mkdirat, 0, 0 },		/* 461 = mkdirat */
 	{ ns(struct sys_faccessat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_faccessat },	/* 462 = faccessat */
+	    (sy_call_t *)sys_faccessat, 0, 0 },	/* 462 = faccessat */
 	{ ns(struct sys_fchmodat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_fchmodat },	/* 463 = fchmodat */
+	    (sy_call_t *)sys_fchmodat, 0, 0 },	/* 463 = fchmodat */
 	{ ns(struct sys_fchownat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_fchownat },	/* 464 = fchownat */
+	    (sy_call_t *)sys_fchownat, 0, 0 },	/* 464 = fchownat */
 	{ ns(struct sys_fexecve_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_fexecve },		/* 465 = fexecve */
+	    (sy_call_t *)sys_fexecve, 0, 0 },		/* 465 = fexecve */
 	{ ns(struct sys_fstatat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_fstatat },		/* 466 = fstatat */
+	    (sy_call_t *)sys_fstatat, 0, 0 },		/* 466 = fstatat */
 	{ ns(struct sys_utimensat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_utimensat },	/* 467 = utimensat */
+	    (sy_call_t *)sys_utimensat, 0, 0 },	/* 467 = utimensat */
 	{ ns(struct sys_openat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_openat },		/* 468 = openat */
+	    (sy_call_t *)sys_openat, 0, 0 },		/* 468 = openat */
 	{ ns(struct sys_readlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_readlinkat },	/* 469 = readlinkat */
+	    (sy_call_t *)sys_readlinkat, 0, 0 },	/* 469 = readlinkat */
 	{ ns(struct sys_symlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_symlinkat },	/* 470 = symlinkat */
+	    (sy_call_t *)sys_symlinkat, 0, 0 },	/* 470 = symlinkat */
 	{ ns(struct sys_unlinkat_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_unlinkat },	/* 471 = unlinkat */
+	    (sy_call_t *)sys_unlinkat, 0, 0 },	/* 471 = unlinkat */
 	{ ns(struct sys_futimens_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_futimens },	/* 472 = futimens */
+	    (sy_call_t *)sys_futimens, 0, 0 },	/* 472 = futimens */
 	{ ns(struct sys___quotactl_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys___quotactl },	/* 473 = __quotactl */
+	    (sy_call_t *)sys___quotactl, 0, 0 },	/* 473 = __quotactl */
 	{ ns(struct sys_posix_spawn_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_posix_spawn },	/* 474 = posix_spawn */
+	    (sy_call_t *)sys_posix_spawn, 0, 0 },	/* 474 = posix_spawn */
 	{ ns(struct sys_recvmmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_recvmmsg },	/* 475 = recvmmsg */
+	    (sy_call_t *)sys_recvmmsg, 0, 0 },	/* 475 = recvmmsg */
 	{ ns(struct sys_sendmmsg_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_sendmmsg },	/* 476 = sendmmsg */
+	    (sy_call_t *)sys_sendmmsg, 0, 0 },	/* 476 = sendmmsg */
 	{ ns(struct sys_clock_nanosleep_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys_clock_nanosleep },	/* 477 = clock_nanosleep */
+	    (sy_call_t *)sys_clock_nanosleep, 0, 0 },	/* 477 = clock_nanosleep */
 	{ ns(struct sys____lwp_park60_args), SYCALL_ARG_PTR,
-	    (sy_call_t *)sys____lwp_park60 },	/* 478 = ___lwp_park60 */
+	    (sy_call_t *)sys____lwp_park60, 0, 0 },	/* 478 = ___lwp_park60 */
 	{ ns(struct sys_posix_fallocate_args), SYCALL_NARGS64_VAL(2) | SYCALL_ARG3_64 | SYCALL_ARG2_64,
-	    (sy_call_t *)sys_posix_fallocate },	/* 479 = posix_fallocate */
+	    (sy_call_t *)sys_posix_fallocate, 0, 0 },	/* 479 = posix_fallocate */
 	{ ns(struct sys_fdiscard_args), SYCALL_NARGS64_VAL(2) | SYCALL_ARG3_64 | SYCALL_ARG2_64,
-	    (sy_call_t *)sys_fdiscard },	/* 480 = fdiscard */
+	    (sy_call_t *)sys_fdiscard, 0, 0 },	/* 480 = fdiscard */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 481 = filler */
+	    sys_nosys, 0, 0 },			/* 481 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 482 = filler */
+	    sys_nosys, 0, 0 },			/* 482 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 483 = filler */
+	    sys_nosys, 0, 0 },			/* 483 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 484 = filler */
+	    sys_nosys, 0, 0 },			/* 484 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 485 = filler */
+	    sys_nosys, 0, 0 },			/* 485 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 486 = filler */
+	    sys_nosys, 0, 0 },			/* 486 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 487 = filler */
+	    sys_nosys, 0, 0 },			/* 487 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 488 = filler */
+	    sys_nosys, 0, 0 },			/* 488 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 489 = filler */
+	    sys_nosys, 0, 0 },			/* 489 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 490 = filler */
+	    sys_nosys, 0, 0 },			/* 490 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 491 = filler */
+	    sys_nosys, 0, 0 },			/* 491 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 492 = filler */
+	    sys_nosys, 0, 0 },			/* 492 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 493 = filler */
+	    sys_nosys, 0, 0 },			/* 493 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 494 = filler */
+	    sys_nosys, 0, 0 },			/* 494 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 495 = filler */
+	    sys_nosys, 0, 0 },			/* 495 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 496 = filler */
+	    sys_nosys, 0, 0 },			/* 496 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 497 = filler */
+	    sys_nosys, 0, 0 },			/* 497 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 498 = filler */
+	    sys_nosys, 0, 0 },			/* 498 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 499 = filler */
+	    sys_nosys, 0, 0 },			/* 499 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 500 = filler */
+	    sys_nosys, 0, 0 },			/* 500 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 501 = filler */
+	    sys_nosys, 0, 0 },			/* 501 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 502 = filler */
+	    sys_nosys, 0, 0 },			/* 502 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 503 = filler */
+	    sys_nosys, 0, 0 },			/* 503 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 504 = filler */
+	    sys_nosys, 0, 0 },			/* 504 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 505 = filler */
+	    sys_nosys, 0, 0 },			/* 505 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 506 = filler */
+	    sys_nosys, 0, 0 },			/* 506 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 507 = filler */
+	    sys_nosys, 0, 0 },			/* 507 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 508 = filler */
+	    sys_nosys, 0, 0 },			/* 508 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 509 = filler */
+	    sys_nosys, 0, 0 },			/* 509 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 510 = filler */
+	    sys_nosys, 0, 0 },			/* 510 = filler */
 	{ 0, 0, 0,
-	    sys_nosys },			/* 511 = filler */
+	    sys_nosys, 0, 0 },			/* 511 = filler */
 };
diff --git a/sys/kern/kern_auth.c b/sys/kern/kern_auth.c
index 6c9ca32..e4c26b4 100644
--- a/sys/kern/kern_auth.c
+++ b/sys/kern/kern_auth.c
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_auth.c,v 1.73 2013/03/18 19:35:42 plunky Exp $ */
+/* $NetBSD: kern_auth.c,v 1.75 2015/10/06 22:13:39 christos Exp $ */
 
 /*-
  * Copyright (c) 2005, 2006 Elad Efrat <elad@NetBSD.org>
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_auth.c,v 1.73 2013/03/18 19:35:42 plunky Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_auth.c,v 1.75 2015/10/06 22:13:39 christos Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -36,6 +36,7 @@ __KERNEL_RCSID(0, "$NetBSD: kern_auth.c,v 1.73 2013/03/18 19:35:42 plunky Exp $"
 #include <sys/proc.h>
 #include <sys/ucred.h>
 #include <sys/pool.h>
+#define __KAUTH_PRIVATE
 #include <sys/kauth.h>
 #include <sys/kmem.h>
 #include <sys/rwlock.h>
@@ -54,35 +55,6 @@ struct kauth_key {
 	specificdata_key_t ks_key;	/* key */
 };
 
-/* 
- * Credentials.
- *
- * A subset of this structure is used in kvm(3) (src/lib/libkvm/kvm_proc.c)
- * and should be synchronized with this structure when the update is
- * relevant.
- */
-struct kauth_cred {
-	/*
-	 * Ensure that the first part of the credential resides in its own
-	 * cache line.  Due to sharing there aren't many kauth_creds in a
-	 * typical system, but the reference counts change very often.
-	 * Keeping it separate from the rest of the data prevents false
-	 * sharing between CPUs.
-	 */
-	u_int cr_refcnt;		/* reference count */
-#if COHERENCY_UNIT > 4
-	uint8_t cr_pad[COHERENCY_UNIT - 4];
-#endif
-	uid_t cr_uid;			/* user id */
-	uid_t cr_euid;			/* effective user id */
-	uid_t cr_svuid;			/* saved effective user id */
-	gid_t cr_gid;			/* group id */
-	gid_t cr_egid;			/* effective group id */
-	gid_t cr_svgid;			/* saved effective group id */
-	u_int cr_ngroups;		/* number of groups */
-	gid_t cr_groups[NGROUPS];	/* group memberships */
-	specificdata_reference cr_sd;	/* specific data */
-};
 
 /*
  * Listener.
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c
index befccae..1302e3d 100644
--- a/sys/kern/kern_exec.c
+++ b/sys/kern/kern_exec.c
@@ -147,18 +147,10 @@ static void dump_vmcmds(const struct exec_package * const, size_t, int);
 /*
  * DTrace SDT provider definitions
  */
-SDT_PROBE_DEFINE(proc,,,exec,exec,
-	    "char *", NULL,
-	    NULL, NULL, NULL, NULL,
-	    NULL, NULL, NULL, NULL);
-SDT_PROBE_DEFINE(proc,,,exec_success,exec-success, 
-	    "char *", NULL,
-	    NULL, NULL, NULL, NULL,
-	    NULL, NULL, NULL, NULL);
-SDT_PROBE_DEFINE(proc,,,exec_failure,exec-failure, 
-	    "int", NULL,
-	    NULL, NULL, NULL, NULL,
-	    NULL, NULL, NULL, NULL);
+SDT_PROVIDER_DECLARE(proc);
+SDT_PROBE_DEFINE1(proc, kernel, , exec, "char *");
+SDT_PROBE_DEFINE1(proc, kernel, , exec__success, "char *");
+SDT_PROBE_DEFINE1(proc, kernel, , exec__failure, "int");
 
 /*
  * Exec function switch:
@@ -608,7 +600,7 @@ execve_loadvm(struct lwp *l, const char *path, char * const *args,
 	p = l->l_proc;
 	modgen = 0;
 
-	SDT_PROBE(proc,,,exec, path, 0, 0, 0, 0);
+	SDT_PROBE(proc, kernel, , exec, path, 0, 0, 0, 0);
 
 	/*
 	 * Check if we have exceeded our number of processes limit.
@@ -775,7 +767,7 @@ execve_loadvm(struct lwp *l, const char *path, char * const *args,
 		goto retry;
 	}
 
-	SDT_PROBE(proc,,,exec_failure, error, 0, 0, 0, 0);
+	SDT_PROBE(proc, kernel, , exec__failure, error, 0, 0, 0, 0);
 	return error;
 }
 
@@ -1235,7 +1227,7 @@ execve_runproc(struct lwp *l, struct execve_data * restrict data,
 
 	kmem_free(epp->ep_hdr, epp->ep_hdrlen);
 
-	SDT_PROBE(proc,,,exec_success, epp->ep_name, 0, 0, 0, 0);
+	SDT_PROBE(proc, kernel, , exec__success, epp->ep_kname, 0, 0, 0, 0);
 
 	emulexec(l, epp);
 
@@ -1286,7 +1278,7 @@ execve_runproc(struct lwp *l, struct execve_data * restrict data,
 	return EJUSTRETURN;
 
  exec_abort:
-	SDT_PROBE(proc,,,exec_failure, error, 0, 0, 0, 0);
+	SDT_PROBE(proc, kernel, , exec__failure, error, 0, 0, 0, 0);
 	rw_exit(&p->p_reflock);
 	if (!no_local_exec_lock)
 		rw_exit(&exec_lock);
diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c
index 951c878..e3f8e86 100644
--- a/sys/kern/kern_exit.c
+++ b/sys/kern/kern_exit.c
@@ -70,6 +70,7 @@
 __KERNEL_RCSID(0, "$NetBSD: kern_exit.c,v 1.244.2.2 2015/11/05 09:30:10 snj Exp $");
 
 #include "opt_ktrace.h"
+#include "opt_dtrace.h"
 #include "opt_perfctrs.h"
 #include "opt_sysv.h"
 
@@ -123,10 +124,9 @@ static void proc_free(struct proc *, struct rusage *);
 /*
  * DTrace SDT provider definitions
  */
-SDT_PROBE_DEFINE(proc,,,exit,exit,
-	    "int", NULL, 		/* reason */
-	    NULL, NULL, NULL, NULL,
-	    NULL, NULL, NULL, NULL);
+SDT_PROVIDER_DECLARE(proc);
+SDT_PROBE_DEFINE1(proc, kernel, , exit, "int");
+
 /*
  * Fill in the appropriate signal information, and signal the parent.
  */
@@ -421,7 +421,7 @@ exit1(struct lwp *l, int rv)
 	 */
 	KNOTE(&p->p_klist, NOTE_EXIT);
 
-	SDT_PROBE(proc,,,exit,
+	SDT_PROBE(proc, kernel, , exit,
 		(WCOREDUMP(rv) ? CLD_DUMPED :
 		 (WIFSIGNALED(rv) ? CLD_KILLED : CLD_EXITED)),
 		0,0,0,0);
diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c
index 8b82ad2..fc66ee5 100644
--- a/sys/kern/kern_fork.c
+++ b/sys/kern/kern_fork.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_fork.c,v 1.193 2013/11/22 21:04:11 christos Exp $	*/
+/*	$NetBSD: kern_fork.c,v 1.194 2015/10/02 16:54:15 christos Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2001, 2004, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -67,9 +67,10 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_fork.c,v 1.193 2013/11/22 21:04:11 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_fork.c,v 1.194 2015/10/02 16:54:15 christos Exp $");
 
 #include "opt_ktrace.h"
+#include "opt_dtrace.h"
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -98,11 +99,11 @@ __KERNEL_RCSID(0, "$NetBSD: kern_fork.c,v 1.193 2013/11/22 21:04:11 christos Exp
 /*
  * DTrace SDT provider definitions
  */
-SDT_PROBE_DEFINE(proc,,,create,create,
-	    "struct proc *", NULL,	/* new process */
-	    "struct proc *", NULL,	/* parent process */
-	    "int", NULL,		/* flags */
-	    NULL, NULL, NULL, NULL);
+SDT_PROVIDER_DECLARE(proc);
+SDT_PROBE_DEFINE3(proc, kernel, , create,
+    "struct proc *", /* new process */
+    "struct proc *", /* parent process */
+    "int" /* flags */);
 
 u_int	nprocs __cacheline_aligned = 1;		/* process 0 */
 
@@ -455,7 +456,7 @@ fork1(struct lwp *l1, int flags, int exitsig, void *stack, size_t stacksize,
 	 */
 	doforkhooks(p2, p1);
 
-	SDT_PROBE(proc,,,create, p2, p1, flags, 0, 0);
+	SDT_PROBE(proc, kernel, , create, p2, p1, flags, 0, 0);
 
 	/*
 	 * It's now safe for the scheduler and other processes to see the
diff --git a/sys/kern/kern_lwp.c b/sys/kern/kern_lwp.c
index 68152f7..0f31c4a 100644
--- a/sys/kern/kern_lwp.c
+++ b/sys/kern/kern_lwp.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_lwp.c,v 1.177 2013/11/25 16:29:25 christos Exp $	*/
+/*	$NetBSD: kern_lwp.c,v 1.180 2015/10/02 16:54:15 christos Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2006, 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -211,7 +211,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.177 2013/11/25 16:29:25 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.180 2015/10/02 16:54:15 christos Exp $");
 
 #include "opt_ddb.h"
 #include "opt_lockdebug.h"
@@ -251,18 +251,11 @@ struct lwplist		alllwp		__cacheline_aligned;
 static void		lwp_dtor(void *, void *);
 
 /* DTrace proc provider probes */
-SDT_PROBE_DEFINE(proc,,,lwp_create,lwp-create,
-	"struct lwp *", NULL,
-	NULL, NULL, NULL, NULL,
-	NULL, NULL, NULL, NULL);
-SDT_PROBE_DEFINE(proc,,,lwp_start,lwp-start,
-	"struct lwp *", NULL,
-	NULL, NULL, NULL, NULL,
-	NULL, NULL, NULL, NULL);
-SDT_PROBE_DEFINE(proc,,,lwp_exit,lwp-exit,
-	"struct lwp *", NULL,
-	NULL, NULL, NULL, NULL,
-	NULL, NULL, NULL, NULL);
+SDT_PROVIDER_DEFINE(proc);
+
+SDT_PROBE_DEFINE1(proc, kernel, , lwp__create, "struct lwp *");
+SDT_PROBE_DEFINE1(proc, kernel, , lwp__start, "struct lwp *");
+SDT_PROBE_DEFINE1(proc, kernel, , lwp__exit, "struct lwp *");
 
 struct turnstile turnstile0;
 struct lwp lwp0 __aligned(MIN_LWP_ALIGNMENT) = {
@@ -961,7 +954,7 @@ lwp_create(lwp_t *l1, proc_t *p2, vaddr_t uaddr, int flags,
 	}
 	mutex_exit(p2->p_lock);
 
-	SDT_PROBE(proc,,,lwp_create, l2, 0,0,0,0);
+	SDT_PROBE(proc, kernel, , lwp__create, l2, 0, 0, 0, 0);
 
 	mutex_enter(proc_lock);
 	LIST_INSERT_HEAD(&alllwp, l2, l_list);
@@ -985,7 +978,7 @@ lwp_startup(struct lwp *prev, struct lwp *new)
 {
 	KASSERTMSG(new == curlwp, "l %p curlwp %p prevlwp %p", new, curlwp, prev);
 
-	SDT_PROBE(proc,,,lwp_start, new, 0,0,0,0);
+	SDT_PROBE(proc, kernel, , lwp__start, new, 0, 0, 0, 0);
 
 	KASSERT(kpreempt_disabled());
 	if (prev != NULL) {
@@ -1028,7 +1021,7 @@ lwp_exit(struct lwp *l)
 	KASSERT(current || (l->l_stat == LSIDL && l->l_target_cpu == NULL));
 	KASSERT(p == curproc);
 
-	SDT_PROBE(proc,,,lwp_exit, l, 0,0,0,0);
+	SDT_PROBE(proc, kernel, , lwp__exit, l, 0, 0, 0, 0);
 
 	/*
 	 * Verify that we hold no locks other than the kernel lock.
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
index 6235565..b3e102a 100644
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_proc.c,v 1.193 2014/07/12 09:57:25 njoly Exp $	*/
+/*	$NetBSD: kern_proc.c,v 1.194 2015/09/24 14:33:01 christos Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_proc.c,v 1.193 2014/07/12 09:57:25 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_proc.c,v 1.194 2015/09/24 14:33:01 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_kstack.h"
@@ -95,12 +95,14 @@ __KERNEL_RCSID(0, "$NetBSD: kern_proc.c,v 1.193 2014/07/12 09:57:25 njoly Exp $"
 #include <sys/sleepq.h>
 #include <sys/atomic.h>
 #include <sys/kmem.h>
+#include <sys/namei.h>
 #include <sys/dtrace_bsd.h>
 #include <sys/sysctl.h>
 #include <sys/exec.h>
 #include <sys/cpu.h>
 
 #include <uvm/uvm_extern.h>
+#include <uvm/uvm.h>
 
 #ifdef COMPAT_NETBSD32
 #include <compat/netbsd32/netbsd32.h>
@@ -234,6 +236,8 @@ static pool_cache_t proc_cache;
 
 static kauth_listener_t proc_listener;
 
+static int fill_pathname(struct lwp *, pid_t, void *, size_t *);
+
 static int
 proc_listener_cb(kauth_cred_t cred, kauth_action_t action, void *cookie,
     void *arg0, void *arg1, void *arg2, void *arg3)
@@ -1633,18 +1637,25 @@ sysctl_doeproc(SYSCTLFN_ARGS)
 	type = rnode->sysctl_num;
 
 	if (type == KERN_PROC) {
-		if (namelen != 2 && !(namelen == 1 && name[0] == KERN_PROC_ALL))
-			return (EINVAL);
-		op = name[0];
-		if (op != KERN_PROC_ALL)
+		if (namelen == 0)
+			return EINVAL;
+		switch (op = name[0]) {
+		case KERN_PROC_ALL:
+			if (namelen != 1)
+				return EINVAL;
+			arg = 0;
+			break;
+		default:
+			if (namelen != 2)
+				return EINVAL;
 			arg = name[1];
-		else
-			arg = 0;		/* Quell compiler warning */
+			break;
+		}
 		elem_count = 0;	/* Ditto */
 		kelem_size = elem_size = sizeof(kbuf->kproc);
 	} else {
 		if (namelen != 4)
-			return (EINVAL);
+			return EINVAL;
 		op = name[0];
 		arg = name[1];
 		elem_size = name[2];
@@ -1893,6 +1904,12 @@ sysctl_kern_proc_args(SYSCTLFN_ARGS)
 	type = name[1];
 
 	switch (type) {
+	case KERN_PROC_PATHNAME:
+		sysctl_unlock();
+		error = fill_pathname(l, pid, oldp, oldlenp);
+		sysctl_relock();
+		return error;
+
 	case KERN_PROC_ARGV:
 	case KERN_PROC_NARGV:
 	case KERN_PROC_ENV:
@@ -2386,3 +2403,74 @@ fill_kproc2(struct proc *p, struct kinfo_proc2 *ki, bool zombie)
 		ki->p_uctime_usec = ut.tv_usec;
 	}
 }
+
+
+int
+proc_find_locked(struct lwp *l, struct proc **p, pid_t pid)
+{
+	int error;
+
+	mutex_enter(proc_lock);
+	if (pid == -1)
+		*p = l->l_proc;
+	else
+		*p = proc_find(pid);
+
+	if (*p == NULL) {
+		if (pid != -1)
+			mutex_exit(proc_lock);
+		return ESRCH;
+	}
+	if (pid != -1)
+		mutex_enter((*p)->p_lock);
+	mutex_exit(proc_lock);
+
+	error = kauth_authorize_process(l->l_cred,
+	    KAUTH_PROCESS_CANSEE, *p,
+	    KAUTH_ARG(KAUTH_REQ_PROCESS_CANSEE_ENTRY), NULL, NULL);
+	if (error) {
+		if (pid != -1)
+			mutex_exit((*p)->p_lock);
+	}
+	return error;
+}
+
+static int
+fill_pathname(struct lwp *l, pid_t pid, void *oldp, size_t *oldlenp)
+{
+#ifndef _RUMPKERNEL
+	int error;
+	struct proc *p;
+	char *path;
+	size_t len;
+
+	if ((error = proc_find_locked(l, &p, pid)) != 0)
+		return error;
+
+	if (p->p_textvp == NULL) {
+		if (pid != -1)
+			mutex_exit(p->p_lock);
+		return ENOENT;
+	}
+
+	path = PNBUF_GET();
+	error = vnode_to_path(path, MAXPATHLEN / 2, p->p_textvp, l, p);
+	if (error)
+		goto out;
+
+	len = strlen(path) + 1;
+	if (oldp != NULL) {
+		error = sysctl_copyout(l, path, oldp, *oldlenp);
+		if (error == 0 && *oldlenp < len)
+			error = ENOSPC;
+	}
+	*oldlenp = len;
+out:
+	PNBUF_PUT(path);
+	if (pid != -1)
+		mutex_exit(p->p_lock);
+	return error;
+#else
+	return 0;
+#endif
+}
diff --git a/sys/kern/kern_runq.c b/sys/kern/kern_runq.c
index 054253e..6319441 100644
--- a/sys/kern/kern_runq.c
+++ b/sys/kern/kern_runq.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_runq.c,v 1.43 2014/08/03 19:14:24 wiz Exp $	*/
+/*	$NetBSD: kern_runq.c,v 1.44 2015/10/07 00:32:34 christos Exp $	*/
 
 /*
  * Copyright (c) 2007, 2008 Mindaugas Rasiukevicius <rmind at NetBSD org>
@@ -27,7 +27,9 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_runq.c,v 1.43 2014/08/03 19:14:24 wiz Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_runq.c,v 1.44 2015/10/07 00:32:34 christos Exp $");
+
+#include "opt_dtrace.h"
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -121,6 +123,10 @@ static struct cpu_info *worker_ci;	/* Victim CPU */
 static struct callout balance_ch;	/* Callout of balancer */
 #endif
 
+#ifdef KDTRACE_HOOKS
+struct lwp *curthread;
+#endif
+
 void
 runq_init(void)
 {
@@ -712,6 +718,9 @@ sched_lwp_stats(struct lwp *l)
 
 	/* Scheduler-specific hook */
 	sched_pstats_hook(l, batch);
+#ifdef KDTRACE_HOOKS
+	curthread = l;
+#endif
 }
 
 /*
diff --git a/sys/kern/kern_sdt.c b/sys/kern/kern_sdt.c
index 1292fae..7a4430c 100644
--- a/sys/kern/kern_sdt.c
+++ b/sys/kern/kern_sdt.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_sdt.c,v 1.1 2010/03/01 21:10:17 darran Exp $	*/
+/*	$NetBSD: kern_sdt.c,v 1.2 2015/10/02 16:54:15 christos Exp $	*/
 
 /*-
  * Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -62,6 +62,9 @@
  * not be present. A module may be built with SDT probes in it.
  *
  */
+#ifdef _KERNEL_OPT
+#include "opt_dtrace.h"
+#endif
 
 #include <sys/cdefs.h>
 #include <sys/param.h>
@@ -71,6 +74,10 @@
 void sdt_probe_stub(u_int32_t, uintptr_t, uintptr_t,
 	uintptr_t, uintptr_t, uintptr_t);
 
+__link_set_decl(sdt_providers_set, struct sdt_provider);
+__link_set_decl(sdt_probes_set, struct sdt_probe);
+__link_set_decl(sdt_argtypes_set, struct sdt_argtype);
+
 /*
  * Hook for the DTrace probe function. The 'sdt' provider will set this
  * to dtrace_probe when it loads.
@@ -86,7 +93,20 @@ void
 sdt_probe_stub(u_int32_t id, uintptr_t arg0, uintptr_t arg1,
     uintptr_t arg2, uintptr_t arg3, uintptr_t arg4)
 {
+	struct sdt_provider * const * provider;
+	struct sdt_probe * const * probe;
+	struct sdt_argtype * const * argtype;
 	printf("%s: XXX should not be called\n", __func__);
+	printf("providers: ");
+	__link_set_foreach(provider, sdt_providers_set)
+		printf("%s ", (*provider)->name);
+	printf("\nprobes: ");
+	__link_set_foreach(probe, sdt_probes_set)
+		printf("%s ", (*probe)->name);
+	printf("\nargtypes: ");
+	__link_set_foreach(argtype, sdt_argtypes_set)
+		printf("%s ", (*argtype)->type);
+	printf("\n");
 }
 
 /*
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
index 688628a..6fb3642 100644
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -73,6 +73,7 @@
 __KERNEL_RCSID(0, "$NetBSD: kern_sig.c,v 1.319.4.1 2015/11/05 09:21:30 snj Exp $");
 
 #include "opt_ptrace.h"
+#include "opt_dtrace.h"
 #include "opt_compat_sunos.h"
 #include "opt_compat_netbsd.h"
 #include "opt_compat_netbsd32.h"
@@ -131,25 +132,19 @@ int (*coredump_vec)(struct lwp *, const char *) =
 /*
  * DTrace SDT provider definitions
  */
-SDT_PROBE_DEFINE(proc,,,signal_send,signal-send,
-	    "struct lwp *", NULL,	/* target thread */
-	    "struct proc *", NULL,	/* target process */
-	    "int", NULL, 		/* signal */
-	    NULL, NULL, NULL, NULL);
-SDT_PROBE_DEFINE(proc,,,signal_discard,signal-discard,
-	    "struct lwp *", NULL,	/* target thread */
-	    "struct proc *", NULL,	/* target process */
-	    "int", NULL, 		/* signal */
-	    NULL, NULL, NULL, NULL);
-SDT_PROBE_DEFINE(proc,,,signal_clear,signal-clear,
-	    "int", NULL,		/* signal */
-	    NULL, NULL, NULL, NULL,
-	    NULL, NULL, NULL, NULL);
-SDT_PROBE_DEFINE(proc,,,signal_handle,signal-handle,
-	    "int", NULL,		/* signal */
-	    "ksiginfo_t *", NULL,
-	    "void (*)(void)", NULL,	/* handler address */
-	    NULL, NULL, NULL, NULL);
+SDT_PROVIDER_DECLARE(proc);
+SDT_PROBE_DEFINE3(proc, kernel, , signal__send,
+    "struct lwp *", 	/* target thread */
+    "struct proc *", 	/* target process */
+    "int");		/* signal */
+SDT_PROBE_DEFINE3(proc, kernel, , signal__discard,
+    "struct lwp *",	/* target thread */
+    "struct proc *",	/* target process */
+    "int");  		/* signal */
+SDT_PROBE_DEFINE3(proc, kernel, , signal__handle,
+    "int", 		/* signal */
+    "ksiginfo_t *", 	/* signal info */
+    "void (*)(void)");	/* handler address */
 
 
 static struct pool_allocator sigactspool_allocator = {
@@ -1032,7 +1027,7 @@ sigpost(struct lwp *l, sig_t action, int prop, int sig)
 	if (l->l_refcnt == 0)
 		return 0;
 
-	SDT_PROBE(proc,,,signal_send, l, p, sig,  0, 0);
+	SDT_PROBE(proc, kernel, , signal__send, l, p, sig, 0, 0);
 
 	/*
 	 * Have the LWP check for signals.  This ensures that even if no LWP
@@ -1202,7 +1197,7 @@ kpsignal2(struct proc *p, ksiginfo_t *ksi)
 {
 	int prop, signo = ksi->ksi_signo;
 	struct sigacts *sa;
-	struct lwp *l;
+	struct lwp *l = NULL;
 	ksiginfo_t *kp;
 	lwpid_t lid;
 	sig_t action;
@@ -1246,7 +1241,7 @@ kpsignal2(struct proc *p, ksiginfo_t *ksi)
 			 * is being caught, make sure to save any ksiginfo.
 			 */
 			if ((kp = ksiginfo_alloc(p, ksi, PR_NOWAIT)) == NULL)
-				return;
+				goto discard;
 			sigput(&p->p_sigpend, p, kp);
 		}
 	} else {
@@ -1271,7 +1266,7 @@ kpsignal2(struct proc *p, ksiginfo_t *ksi)
 		 * SIG_IGN, action will be SIG_DFL here.
 		 */
 		if (sigismember(&p->p_sigctx.ps_sigignore, signo))
-			return;
+			goto discard;
 
 		else if (sigismember(&p->p_sigctx.ps_sigcatch, signo))
 			action = SIG_CATCH;
@@ -1285,7 +1280,7 @@ kpsignal2(struct proc *p, ksiginfo_t *ksi)
 			 * if sleeping, and don't clear any pending SIGCONT.
 			 */
 			if (prop & SA_TTYSTOP && p->p_pgrp->pg_jobc == 0)
-				return;
+				goto discard;
 
 			if (prop & SA_KILL && p->p_nice > NZERO)
 				p->p_nice = NZERO;
@@ -1315,14 +1310,14 @@ kpsignal2(struct proc *p, ksiginfo_t *ksi)
 	if ((prop & SA_CANTMASK) == 0 && !LIST_EMPTY(&p->p_sigwaiters) &&
 	    p->p_stat == SACTIVE && (p->p_sflag & PS_STOPPING) == 0 &&
 	    sigunwait(p, ksi))
-		return;
+		goto discard;
 
 	/*
 	 * XXXSMP Should be allocated by the caller, we're holding locks
 	 * here.
 	 */
 	if (kp == NULL && (kp = ksiginfo_alloc(p, ksi, PR_NOWAIT)) == NULL)
-		return;
+		goto discard;
 
 	/*
 	 * LWP private signals are easy - just find the LWP and post
@@ -1415,12 +1410,17 @@ deliver:
 		if (sigpost(l, action, prop, kp->ksi_signo) && !toall)
 			break;
 	}
+	signo = -1;
 out:
 	/*
 	 * If the ksiginfo wasn't used, then bin it.  XXXSMP freeing memory
 	 * with locks held.  The caller should take care of this.
 	 */
 	ksiginfo_free(kp);
+	if (signo == -1)
+		return;
+discard:
+	SDT_PROBE(proc, kernel, , signal__discard, l, p, signo, 0, 0);
 }
 
 void
@@ -1703,10 +1703,6 @@ issignal(struct lwp *l)
 
 		prop = sigprop[signo];
 
-		/* XXX no siginfo? */
-		SDT_PROBE(proc,,,signal_handle, signo, 0, 
-			SIGACTION(p, signo).sa_handler, 0, 0);
-
 		/*
 		 * Decide whether the signal should be returned.
 		 */
@@ -1839,6 +1835,8 @@ postsig(int signo)
 		mutex_enter(p->p_lock);
 	}
 
+	SDT_PROBE(proc, kernel, , signal__handle, signo, &ksi, action, 0, 0);
+
 	if (action == SIG_DFL) {
 		/*
 		 * Default action, where the default is to kill
diff --git a/sys/kern/kern_syscall.c b/sys/kern/kern_syscall.c
index a0a5e73..602a544 100644
--- a/sys/kern/kern_syscall.c
+++ b/sys/kern/kern_syscall.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_syscall.c,v 1.9 2013/12/14 06:27:57 pgoyette Exp $	*/
+/*	$NetBSD: kern_syscall.c,v 1.10 2015/03/07 16:38:07 christos Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -30,13 +30,14 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_syscall.c,v 1.9 2013/12/14 06:27:57 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_syscall.c,v 1.10 2015/03/07 16:38:07 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_modular.h"
 #include "opt_syscall_debug.h"
 #include "opt_ktrace.h"
 #include "opt_ptrace.h"
+#include "opt_dtrace.h"
 #endif
 
 /* XXX To get syscall prototypes. */
@@ -370,15 +371,22 @@ trace_is_enabled(struct proc *p)
  * a system call is actually executed.
  */
 int
-trace_enter(register_t code, const register_t *args, int narg)
+trace_enter(register_t code, const struct sysent *sy, const void *args)
 {
 	int error = 0;
 
+#ifdef KDTRACE_HOOKS
+	if (sy->sy_entry) {
+		struct emul *e = curlwp->l_proc->p_emul;
+		(*e->e_dtrace_syscall)(sy->sy_entry, code, sy, args, NULL, 0);
+	}
+#endif
+
 #ifdef SYSCALL_DEBUG
 	scdebug_call(code, args);
 #endif /* SYSCALL_DEBUG */
 
-	ktrsyscall(code, args, narg);
+	ktrsyscall(code, args, sy->sy_narg);
 
 #ifdef PTRACE
 	if ((curlwp->l_proc->p_slflag & (PSL_SYSCALL|PSL_TRACED)) ==
@@ -401,12 +409,20 @@ trace_enter(register_t code, const register_t *args, int narg)
  * system call number range for emulation the process runs under.
  */
 void
-trace_exit(register_t code, register_t rval[], int error)
+trace_exit(register_t code, const struct sysent *sy, const void *args,
+    register_t rval[], int error)
 {
-#ifdef PTRACE
+#if defined(PTRACE) || defined(KDTRACE_HOOKS)
 	struct proc *p = curlwp->l_proc;
 #endif
 
+#ifdef KDTRACE_HOOKS
+	if (sy->sy_return) {
+		(*p->p_emul->e_dtrace_syscall)(sy->sy_return, code, sy, args,
+		    rval, error);
+	}
+#endif
+
 #ifdef SYSCALL_DEBUG
 	scdebug_ret(code, error, rval);
 #endif /* SYSCALL_DEBUG */
diff --git a/sys/kern/makesyscalls.sh b/sys/kern/makesyscalls.sh
index ddc0ea4..d204ed7 100644
--- a/sys/kern/makesyscalls.sh
+++ b/sys/kern/makesyscalls.sh
@@ -1,4 +1,4 @@
-#	$NetBSD: makesyscalls.sh,v 1.145 2014/07/24 11:58:45 pooka Exp $
+#	$NetBSD: makesyscalls.sh,v 1.154 2015/09/24 14:30:52 christos Exp $
 #
 # Copyright (c) 1994, 1996, 2000 Christopher G. Demetriou
 # All rights reserved.
@@ -61,6 +61,7 @@ esac
 # source the config file.
 sys_nosys="sys_nosys"	# default is sys_nosys(), if not specified otherwise
 maxsysargs=8		# default limit is 8 (32bit) arguments
+systrace="/dev/null"
 rumpcalls="/dev/null"
 rumpcallshdr="/dev/null"
 rumpsysmap="/dev/null"
@@ -72,18 +73,24 @@ sysdcl="sysent.dcl"
 sysprotos="sys.protos"
 syscompat_pref="sysent."
 sysent="sysent.switch"
-sysnamesbottom="sysnames.bottom"
+sysnamesbottom="$sysnames.bottom"
+sysnamesfriendly="$sysnames.friendly"
 rumptypes="rumphdr.types"
 rumpprotos="rumphdr.protos"
+systracetmp="systrace.$$"
+systraceret="systraceret.$$"
 
-trap "rm $sysdcl $sysprotos $sysent $sysnamesbottom $rumpsysent $rumptypes $rumpprotos" 0
+cleanup() {
+    rm $sysdcl $sysprotos $sysent $sysnamesbottom $sysnamesfriendly $rumpsysent $rumptypes $rumpprotos $systracetmp $systraceret
+}
+trap "cleanup" 0
 
 # Awk program (must support nawk extensions)
 # Use "awk" at Berkeley, "nawk" or "gawk" elsewhere.
 awk=${AWK:-awk}
 
 # Does this awk have a "toupper" function?
-have_toupper=`$awk 'BEGIN { print toupper("true"); exit; }' 2>/dev/null`
+have_toupper="$($awk 'BEGIN { print toupper("true"); exit; }' 2>/dev/null)"
 
 # If this awk does not define "toupper" then define our own.
 if [ "$have_toupper" = TRUE ] ; then
@@ -137,6 +144,9 @@ BEGIN {
 	sysnumhdr = \"$sysnumhdr\"
 	sysarghdr = \"$sysarghdr\"
 	sysarghdrextra = \"$sysarghdrextra\"
+	systrace = \"$systrace\"
+	systracetmp = \"$systracetmp\"
+	systraceret = \"$systraceret\"
 	rumpcalls = \"$rumpcalls\"
 	rumpcallshdr = \"$rumpcallshdr\"
 	rumpsysent = \"$rumpsysent\"
@@ -154,7 +164,8 @@ BEGIN {
 	sysdcl = \"$sysdcl\"
 	syscompat_pref = \"$syscompat_pref\"
 	sysent = \"$sysent\"
-	sysnamesbottom = \"$sysnamesbottom\"
+	sysnamesbottom = \"${sysnames}.bottom\"
+	sysnamesfriendly = \"${sysnames}.friendly\"
 	rumpprotos = \"$rumpprotos\"
 	rumptypes = \"$rumptypes\"
 	sys_nosys = \"$sys_nosys\"
@@ -211,6 +222,10 @@ BEGIN {
 	printf "/* %s */\n\n", tag > rumpcallshdr
 	printf "/*\n * System call protos in rump namespace.\n *\n" > rumpcallshdr
 	printf " * DO NOT EDIT-- this file is automatically generated.\n" > rumpcallshdr
+
+	printf "/* %s */\n\n", tag > systrace
+	printf "/*\n * System call argument to DTrace register array converstion.\n *\n" > systrace
+	printf " * DO NOT EDIT-- this file is automatically generated.\n" > systrace
 }
 NR == 1 {
 	sub(/ $/, "")
@@ -276,8 +291,12 @@ NR == 1 {
 	# hide the include files from it.
 	printf "#if defined(_KERNEL_OPT)\n" > sysnames
 
+	printf "#else /* _KERNEL_OPT */\n" > sysnamesbottom
+	printf "#include <sys/null.h>\n" > sysnamesbottom
 	printf "#endif /* _KERNEL_OPT */\n\n" > sysnamesbottom
 	printf "const char *const %s[] = {\n",namesname > sysnamesbottom
+	printf "\n\n/* libc style syscall names */\n" > sysnamesfriendly
+	printf "const char *const alt%s[] = {\n", namesname > sysnamesfriendly
 
 	printf " * created from%s\n */\n\n", $0 > sysnumhdr
 	printf "#ifndef _" constprefix "SYSCALL_H_\n" > sysnumhdr
@@ -324,6 +343,17 @@ NR == 1 {
 		"\t\t<= %sMAXSYSARGS * sizeof (%s) ? 1 : -1];\n", \
 		constprefix, registertype) >sysarghdr
 
+	printf " * This file is part of the DTrace syscall provider.\n */\n\n" > systrace
+	printf "static void\nsystrace_args(register_t sysnum, const void *params, uintptr_t *uarg, size_t *n_args)\n{\n" > systrace
+	printf "\tintptr_t *iarg  = (intptr_t *)uarg;\n" > systrace
+	printf "\tswitch (sysnum) {\n" > systrace
+
+	printf "static void\nsystrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)\n{\n\tconst char *p = NULL;\n" > systracetmp
+	printf "\tswitch (sysnum) {\n" > systracetmp
+
+	printf "static void\nsystrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)\n{\n\tconst char *p = NULL;\n" > systraceret
+	printf "\tswitch (sysnum) {\n" > systraceret
+
 	# compat types from syscalls.master.  this is slightly ugly,
 	# but given that we have so few compats from over 17 years,
 	# a more complicated solution is not currently warranted.
@@ -376,6 +406,10 @@ $1 ~ /^#/ && intable {
 	print > sysnumhdr
 	print > sysprotos
 	print > sysnamesbottom
+	print > sysnamesfriendly
+	print > systrace
+	print > systracetmp
+	print > systraceret
 
 	# XXX: technically we do not want to have conditionals in rump,
 	# but it is easier to just let the cpp handle them than try to
@@ -647,7 +681,7 @@ function printrumpsysent(insysent, compatwrap) {
 		eno[1] = "rumpns_sys_nomodule"
 		flags[0] = "SYCALL_NOSYS"
 		flags[1] = "0"
-		printf("\t{ 0, 0, %s,\n\t    (sy_call_t *)%s }, \t"	\
+		printf("\t{ 0, 0, %s,\n\t    (sy_call_t *)%s, 0, 0 }, \t"	\
 		    "/* %d = %s */\n",					\
 		    flags[modular], eno[modular], syscall, funcalias)	\
 		    > rumpsysent
@@ -665,7 +699,7 @@ function printrumpsysent(insysent, compatwrap) {
 		fn="(sy_call_t *)rumpns_sys_nomodule"
 	else
 		fn="(sy_call_t *)rumpns_enosys"
-	printf("0,\n\t   %s },", fn) > rumpsysent
+	printf("0,\n\t   %s, 0, 0 },", fn) > rumpsysent
 	for (i = 0; i < (33 - length(fn)) / 8; i++)
 		printf("\t") > rumpsysent
 	printf("/* %d = %s%s */\n", syscall, compatwrap_, funcalias) > rumpsysent
@@ -697,6 +731,45 @@ function printrumpsysmap(syscall, wfn, funcalias, rumpentry) {
 	    syscall, wfn, funcalias, rumpentry) > rumpsysmap
 }
 
+function putsystrace(type, compatwrap_) {
+	printf("\t/* %s */\n\tcase %d: {\n", funcname, syscall) > systrace
+	printf("\t/* %s */\n\tcase %d:\n", funcname, syscall) > systracetmp
+	printf("\t/* %s */\n\tcase %d:\n", funcname, syscall) > systraceret
+	if (argc > 0) {
+		printf("\t\tswitch(ndx) {\n") > systracetmp
+		printf("\t\tstruct %s%s_args *p = params;\n", compatwrap_, funcname) > systrace
+		for (i = 1; i <= argc; i++) {
+			arg = argtype[i]
+			sub("__restrict$", "", arg)
+			printf("\t\tcase %d:\n\t\t\tp = \"%s\";\n\t\t\tbreak;\n", i - 1, arg) > systracetmp
+			if (arg ~ /.*p_t$/ || arg ~ /.*p$/ || arg ~ /.*_t_p$/ ||
+			    arg ~ /.*_pointer_t$/)
+				printf("\t\tuarg[%d] = (intptr_t) SCARG(p, %s).i32; /* %s */\n", \
+				     i - 1, \
+				     argname[i], arg) > systrace
+			else if (index(arg, "*") > 0 || arg == "caddr_t")
+				printf("\t\tuarg[%d] = (intptr_t) SCARG(p, %s); /* %s */\n", \
+				     i - 1, \
+				     argname[i], arg) > systrace
+			else if (substr(arg, 1, 1) == "u" || arg == "size_t")
+				printf("\t\tuarg[%d] = SCARG(p, %s); /* %s */\n", \
+				     i - 1, \
+				     argname[i], arg) > systrace
+			else
+				printf("\t\tiarg[%d] = SCARG(p, %s); /* %s */\n", \
+				     i - 1, \
+				     argname[i], arg) > systrace
+		}
+		printf("\t\tdefault:\n\t\t\tbreak;\n\t\t};\n") > systracetmp
+
+		printf("\t\tif (ndx == 0 || ndx == 1)\n") > systraceret
+		printf("\t\t\tp = \"%s\";\n", returntype) > systraceret
+		printf("\t\tbreak;\n") > systraceret
+	}
+	printf("\t\t*n_args = %d;\n\t\tbreak;\n\t}\n", argc) > systrace
+	printf("\t\tbreak;\n") > systracetmp
+}
+
 function putent(type, compatwrap) {
 	# output syscall declaration for switch table.
 	if (compatwrap == "")
@@ -708,6 +781,7 @@ function putent(type, compatwrap) {
 	else {
 		arg_type = "struct " compatwrap_ funcname "_args";
 	}
+	putsystrace(type, compatwrap_)
 	proto = "int\t" compatwrap_ funcname "(struct lwp *, const " \
 	    arg_type " *, register_t *);\n"
 	if (sysmap[proto] != 1) {
@@ -729,7 +803,7 @@ function putent(type, compatwrap) {
 	else
 		wfn = compatwrap "(" funcname ")";
 	wfn_cast="(sy_call_t *)" wfn
-	printf("%s,\n\t    %s },", sycall_flags, wfn_cast) > sysent
+	printf("%s,\n\t    %s, 0, 0 },", sycall_flags, wfn_cast) > sysent
 	for (i = 0; i < (33 - length(wfn_cast)) / 8; i++)
 		printf("\t") > sysent
 	printf("/* %d = %s%s */\n", syscall, compatwrap_, funcalias) > sysent
@@ -737,6 +811,12 @@ function putent(type, compatwrap) {
 	# output syscall name for names table
 	printf("\t/* %3d */\t\"%s%s\",\n", syscall, compatwrap_, funcalias) \
 	    > sysnamesbottom
+	if (compatwrap_ != "" || fbase == funcalias)
+		printf("\t/* %3d */\tNULL, /* %s%s */\n", syscall, \
+		    compatwrap_, funcalias) > sysnamesfriendly
+	else
+		printf("\t/* %3d */\t\"%s%s\",\n", syscall, compatwrap_, \
+		    fbase) > sysnamesfriendly
 
 	# output syscall number of header, if appropriate
 	if (type == "STD" || type == "NOARGS" || type == "INDIR" || \
@@ -922,12 +1002,14 @@ $2 == "OBSOL" || $2 == "UNIMPL" || $2 == "EXCL" || $2 == "IGNORED" {
 	else
 		sys_stub = sys_nosys;
 
-	printf("\t{ 0, 0, 0,\n\t    %s },\t\t\t/* %d = %s */\n", \
+	printf("\t{ 0, 0, 0,\n\t    %s, 0, 0 },\t\t\t/* %d = %s */\n", \
 	    sys_stub, syscall, comment) > sysent
-	printf("\t{ 0, 0, SYCALL_NOSYS,\n\t    %s },\t\t/* %d = %s */\n", \
+	printf("\t{ 0, 0, SYCALL_NOSYS,\n\t    %s, 0, 0 },\t\t/* %d = %s */\n", \
 	    "(sy_call_t *)rumpns_enosys", syscall, comment) > rumpsysent
 	printf("\t/* %3d */\t\"#%d (%s)\",\n", syscall, syscall, comment) \
 	    > sysnamesbottom
+	printf("\t/* %3d */\tNULL, /* %s */\n", syscall, comment) \
+	    > sysnamesfriendly
 	if ($2 != "UNIMPL")
 		printf("\t\t\t\t/* %d is %s */\n", syscall, comment) > sysnumhdr
 	syscall++
@@ -989,12 +1071,14 @@ END {
 			exit 1
 		}
 		while (syscall < nsysent) {
-			printf("\t{ 0, 0, 0,\n\t    %s },\t\t\t/* %d = filler */\n", \
+			printf("\t{ 0, 0, 0,\n\t    %s, 0, 0 },\t\t\t/* %d = filler */\n", \
 			    sys_nosys, syscall) > sysent
-			printf("\t{ 0, 0, SYCALL_NOSYS,\n\t    %s },\t\t/* %d = filler */\n", \
+			printf("\t{ 0, 0, SYCALL_NOSYS,\n\t    %s, 0, 0 },\t\t/* %d = filler */\n", \
 			    "(sy_call_t *)rumpns_enosys", syscall) > rumpsysent
 			printf("\t/* %3d */\t\"# filler\",\n", syscall) \
 			    > sysnamesbottom
+			printf("\t/* %3d */\tNULL, /* filler */\n", syscall) \
+			    > sysnamesfriendly
 			syscall++
 		}
 	}
@@ -1006,9 +1090,13 @@ END {
 	if (haverumpcalls)
 		printf("#endif /* !RUMP_CLIENT */\n") > sysprotos
 	printf("};\n") > sysnamesbottom
+	printf("};\n") > sysnamesfriendly
 	printf("#define\t%sMAXSYSCALL\t%d\n", constprefix, maxsyscall) > sysnumhdr
 	if (nsysent)
 		printf("#define\t%sNSYSENT\t%d\n", constprefix, nsysent) > sysnumhdr
+	printf "\tdefault:\n\t\t*n_args = 0;\n\t\tbreak;\n\t};\n}\n" > systrace
+	printf "\tdefault:\n\t\tbreak;\n\t};\n\tif (p != NULL)\n\t\tstrlcpy(desc, p, descsz);\n}\n" > systracetmp
+	printf "\tdefault:\n\t\tbreak;\n\t};\n\tif (p != NULL)\n\t\tstrlcpy(desc, p, descsz);\n}\n" > systraceret
 } '
 
 cat $sysprotos >> $sysarghdr
@@ -1017,6 +1105,7 @@ echo "#endif /* _${constprefix}SYSCALLARGS_H_ */" >> $sysarghdr
 printf "\n#endif /* _RUMP_RUMP_SYSCALLS_H_ */\n" >> $rumpprotos
 cat $sysdcl $sysent > $syssw
 cat $sysnamesbottom >> $sysnames
+cat $sysnamesfriendly >> $sysnames
 cat $rumpsysent >> $rumpcalls
 
 touch $rumptypes
@@ -1026,5 +1115,8 @@ cat $rumpprotos >> $rumpcallshdr
 
 #chmod 444 $sysnames $sysnumhdr $syssw
 
+cat $systracetmp >> $systrace
+cat $systraceret >> $systrace
+
 echo Generated following files:
-echo $sysarghdr $sysnumhdr $syssw $sysnames $rumpcalls $rumpcallshdr $rumpsysmap
+echo $sysarghdr $sysnumhdr $syssw $sysnames $systrace $rumpcalls $rumpcallshdr $rumpsysmap
diff --git a/sys/kern/sys_sig.c b/sys/kern/sys_sig.c
index 5e129db..94d6725 100644
--- a/sys/kern/sys_sig.c
+++ b/sys/kern/sys_sig.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: sys_sig.c,v 1.42 2014/02/14 16:35:11 christos Exp $	*/
+/*	$NetBSD: sys_sig.c,v 1.45 2015/10/02 16:54:15 christos Exp $	*/
 
 /*-
  * Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -66,7 +66,9 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_sig.c,v 1.42 2014/02/14 16:35:11 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_sig.c,v 1.45 2015/10/02 16:54:15 christos Exp $");
+
+#include "opt_dtrace.h"
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -78,6 +80,12 @@ __KERNEL_RCSID(0, "$NetBSD: sys_sig.c,v 1.42 2014/02/14 16:35:11 christos Exp $"
 #include <sys/wait.h>
 #include <sys/kmem.h>
 #include <sys/module.h>
+#include <sys/sdt.h>
+
+SDT_PROVIDER_DECLARE(proc);
+SDT_PROBE_DEFINE2(proc, kernel, , signal__clear,
+    "int", 		/* signal */
+    "ksiginfo_t *");	/* signal-info */
 
 int
 sys___sigaction_sigtramp(struct lwp *l,
@@ -834,7 +842,10 @@ out:
 		error = (*storeinf)(&ksi.ksi_info, SCARG(uap, info),
 		    sizeof(ksi.ksi_info));
 	}
-	if (error == 0)
+	if (error == 0) {
 		*retval = ksi.ksi_info._signo;
+		SDT_PROBE(proc, kernel, , signal__clear, *retval,
+		    &ksi, 0, 0, 0);
+	}
 	return error;
 }
diff --git a/sys/kern/sys_syscall.c b/sys/kern/sys_syscall.c
index b1953aa..7b3581b 100644
--- a/sys/kern/sys_syscall.c
+++ b/sys/kern/sys_syscall.c
@@ -56,10 +56,9 @@ SYS_SYSCALL(struct lwp *l, const struct CONCAT(SYS_SYSCALL, _args) *uap,
 	struct proc *p = l->l_proc;
 	int code;
 	int error;
-	int narg;
 #ifdef NETBSD32_SYSCALL
 	register_t args64[SYS_MAXSYSARGS];
-	int i;
+	int i, narg;
 	#define TRACE_ARGS args64
 #else
 	#define TRACE_ARGS &SCARG(uap, args[0])
@@ -77,17 +76,17 @@ SYS_SYSCALL(struct lwp *l, const struct CONCAT(SYS_SYSCALL, _args) *uap,
 	if (__predict_true(!p->p_trace_enabled))
 		return sy_call(callp, l, &uap->args, rval);
 
-	narg = callp->sy_narg;
 #ifdef NETBSD32_SYSCALL
+	narg = callp->sy_narg;
 	for (i = 0; i < narg; i++)
 		args64[i] = SCARG(uap, args[i]);
 #endif
 
-	error = trace_enter(code, TRACE_ARGS, narg);
+	error = trace_enter(code, callp, TRACE_ARGS);
 	if (__predict_false(error != 0))
 		return error;
 	error = sy_call(callp, l, &uap->args, rval);
-	trace_exit(code, rval, error);
+	trace_exit(code, callp, &uap->args, rval, error);
 	return error;
 
 	#undef TRACE_ARGS
diff --git a/sys/kern/syscalls.c b/sys/kern/syscalls.c
index 3c2d8c3..c3e2372 100644
--- a/sys/kern/syscalls.c
+++ b/sys/kern/syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: syscalls.c,v 1.278.2.1 2015/02/24 10:52:43 martin Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call names.
@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: syscalls.c,v 1.278.2.1 2015/02/24 10:52:43 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #if defined(_KERNEL_OPT)
 #include "opt_modular.h"
@@ -21,6 +21,8 @@ __KERNEL_RCSID(0, "$NetBSD: syscalls.c,v 1.278.2.1 2015/02/24 10:52:43 martin Ex
 #include <sys/mount.h>
 #include <sys/sched.h>
 #include <sys/syscallargs.h>
+#else /* _KERNEL_OPT */
+#include <sys/null.h>
 #endif /* _KERNEL_OPT */
 
 const char *const syscallnames[] = {
@@ -602,3 +604,585 @@ const char *const syscallnames[] = {
 	/* 510 */	"# filler",
 	/* 511 */	"# filler",
 };
+
+
+/* libc style syscall names */
+const char *const altsyscallnames[] = {
+	/*   0 */	NULL, /* syscall */
+	/*   1 */	NULL, /* exit */
+	/*   2 */	NULL, /* fork */
+	/*   3 */	NULL, /* read */
+	/*   4 */	NULL, /* write */
+	/*   5 */	NULL, /* open */
+	/*   6 */	NULL, /* close */
+	/*   7 */	NULL, /* compat_50_wait4 */
+	/*   8 */	NULL, /* compat_43_ocreat */
+	/*   9 */	NULL, /* link */
+	/*  10 */	NULL, /* unlink */
+	/*  11 */	NULL, /* obsolete execv */
+	/*  12 */	NULL, /* chdir */
+	/*  13 */	NULL, /* fchdir */
+	/*  14 */	NULL, /* compat_50_mknod */
+	/*  15 */	NULL, /* chmod */
+	/*  16 */	NULL, /* chown */
+	/*  17 */	"obreak",
+	/*  18 */	NULL, /* compat_20_getfsstat */
+	/*  19 */	NULL, /* compat_43_olseek */
+	/*  20 */	"getpid_with_ppid",
+	/*  21 */	NULL, /* compat_40_mount */
+	/*  22 */	NULL, /* unmount */
+	/*  23 */	NULL, /* setuid */
+	/*  24 */	"getuid_with_euid",
+	/*  25 */	NULL, /* geteuid */
+	/*  26 */	NULL, /* ptrace */
+	/*  27 */	NULL, /* recvmsg */
+	/*  28 */	NULL, /* sendmsg */
+	/*  29 */	NULL, /* recvfrom */
+	/*  30 */	NULL, /* accept */
+	/*  31 */	NULL, /* getpeername */
+	/*  32 */	NULL, /* getsockname */
+	/*  33 */	NULL, /* access */
+	/*  34 */	NULL, /* chflags */
+	/*  35 */	NULL, /* fchflags */
+	/*  36 */	NULL, /* sync */
+	/*  37 */	NULL, /* kill */
+	/*  38 */	NULL, /* compat_43_stat43 */
+	/*  39 */	NULL, /* getppid */
+	/*  40 */	NULL, /* compat_43_lstat43 */
+	/*  41 */	NULL, /* dup */
+	/*  42 */	NULL, /* pipe */
+	/*  43 */	NULL, /* getegid */
+	/*  44 */	NULL, /* profil */
+	/*  45 */	NULL, /* ktrace */
+	/*  46 */	NULL, /* compat_13_sigaction13 */
+	/*  47 */	"getgid_with_egid",
+	/*  48 */	NULL, /* compat_13_sigprocmask13 */
+	/*  49 */	NULL, /* __getlogin */
+	/*  50 */	NULL, /* __setlogin */
+	/*  51 */	NULL, /* acct */
+	/*  52 */	NULL, /* compat_13_sigpending13 */
+	/*  53 */	NULL, /* compat_13_sigaltstack13 */
+	/*  54 */	NULL, /* ioctl */
+	/*  55 */	NULL, /* compat_12_oreboot */
+	/*  56 */	NULL, /* revoke */
+	/*  57 */	NULL, /* symlink */
+	/*  58 */	NULL, /* readlink */
+	/*  59 */	NULL, /* execve */
+	/*  60 */	NULL, /* umask */
+	/*  61 */	NULL, /* chroot */
+	/*  62 */	NULL, /* compat_43_fstat43 */
+	/*  63 */	NULL, /* compat_43_ogetkerninfo */
+	/*  64 */	NULL, /* compat_43_ogetpagesize */
+	/*  65 */	NULL, /* compat_12_msync */
+	/*  66 */	NULL, /* vfork */
+	/*  67 */	NULL, /* obsolete vread */
+	/*  68 */	NULL, /* obsolete vwrite */
+	/*  69 */	NULL, /* sbrk */
+	/*  70 */	NULL, /* sstk */
+	/*  71 */	NULL, /* compat_43_ommap */
+	/*  72 */	"ovadvise",
+	/*  73 */	NULL, /* munmap */
+	/*  74 */	NULL, /* mprotect */
+	/*  75 */	NULL, /* madvise */
+	/*  76 */	NULL, /* obsolete vhangup */
+	/*  77 */	NULL, /* obsolete vlimit */
+	/*  78 */	NULL, /* mincore */
+	/*  79 */	NULL, /* getgroups */
+	/*  80 */	NULL, /* setgroups */
+	/*  81 */	NULL, /* getpgrp */
+	/*  82 */	NULL, /* setpgid */
+	/*  83 */	NULL, /* compat_50_setitimer */
+	/*  84 */	NULL, /* compat_43_owait */
+	/*  85 */	NULL, /* compat_12_oswapon */
+	/*  86 */	NULL, /* compat_50_getitimer */
+	/*  87 */	NULL, /* compat_43_ogethostname */
+	/*  88 */	NULL, /* compat_43_osethostname */
+	/*  89 */	NULL, /* compat_43_ogetdtablesize */
+	/*  90 */	NULL, /* dup2 */
+	/*  91 */	NULL, /* unimplemented getdopt */
+	/*  92 */	NULL, /* fcntl */
+	/*  93 */	NULL, /* compat_50_select */
+	/*  94 */	NULL, /* unimplemented setdopt */
+	/*  95 */	NULL, /* fsync */
+	/*  96 */	NULL, /* setpriority */
+	/*  97 */	NULL, /* compat_30_socket */
+	/*  98 */	NULL, /* connect */
+	/*  99 */	NULL, /* compat_43_oaccept */
+	/* 100 */	NULL, /* getpriority */
+	/* 101 */	NULL, /* compat_43_osend */
+	/* 102 */	NULL, /* compat_43_orecv */
+	/* 103 */	NULL, /* compat_13_sigreturn13 */
+	/* 104 */	NULL, /* bind */
+	/* 105 */	NULL, /* setsockopt */
+	/* 106 */	NULL, /* listen */
+	/* 107 */	NULL, /* obsolete vtimes */
+	/* 108 */	NULL, /* compat_43_osigvec */
+	/* 109 */	NULL, /* compat_43_osigblock */
+	/* 110 */	NULL, /* compat_43_osigsetmask */
+	/* 111 */	NULL, /* compat_13_sigsuspend13 */
+	/* 112 */	NULL, /* compat_43_osigstack */
+	/* 113 */	NULL, /* compat_43_orecvmsg */
+	/* 114 */	NULL, /* compat_43_osendmsg */
+	/* 115 */	NULL, /* obsolete vtrace */
+	/* 116 */	NULL, /* compat_50_gettimeofday */
+	/* 117 */	NULL, /* compat_50_getrusage */
+	/* 118 */	NULL, /* getsockopt */
+	/* 119 */	NULL, /* obsolete resuba */
+	/* 120 */	NULL, /* readv */
+	/* 121 */	NULL, /* writev */
+	/* 122 */	NULL, /* compat_50_settimeofday */
+	/* 123 */	NULL, /* fchown */
+	/* 124 */	NULL, /* fchmod */
+	/* 125 */	NULL, /* compat_43_orecvfrom */
+	/* 126 */	NULL, /* setreuid */
+	/* 127 */	NULL, /* setregid */
+	/* 128 */	NULL, /* rename */
+	/* 129 */	NULL, /* compat_43_otruncate */
+	/* 130 */	NULL, /* compat_43_oftruncate */
+	/* 131 */	NULL, /* flock */
+	/* 132 */	NULL, /* mkfifo */
+	/* 133 */	NULL, /* sendto */
+	/* 134 */	NULL, /* shutdown */
+	/* 135 */	NULL, /* socketpair */
+	/* 136 */	NULL, /* mkdir */
+	/* 137 */	NULL, /* rmdir */
+	/* 138 */	NULL, /* compat_50_utimes */
+	/* 139 */	NULL, /* obsolete 4.2 sigreturn */
+	/* 140 */	NULL, /* compat_50_adjtime */
+	/* 141 */	NULL, /* compat_43_ogetpeername */
+	/* 142 */	NULL, /* compat_43_ogethostid */
+	/* 143 */	NULL, /* compat_43_osethostid */
+	/* 144 */	NULL, /* compat_43_ogetrlimit */
+	/* 145 */	NULL, /* compat_43_osetrlimit */
+	/* 146 */	NULL, /* compat_43_okillpg */
+	/* 147 */	NULL, /* setsid */
+	/* 148 */	NULL, /* compat_50_quotactl */
+	/* 149 */	NULL, /* compat_43_oquota */
+	/* 150 */	NULL, /* compat_43_ogetsockname */
+	/* 151 */	NULL, /* unimplemented */
+	/* 152 */	NULL, /* unimplemented */
+	/* 153 */	NULL, /* unimplemented */
+	/* 154 */	NULL, /* unimplemented */
+	/* 155 */	NULL, /* nfssvc */
+	/* 156 */	NULL, /* compat_43_ogetdirentries */
+	/* 157 */	NULL, /* compat_20_statfs */
+	/* 158 */	NULL, /* compat_20_fstatfs */
+	/* 159 */	NULL, /* unimplemented */
+	/* 160 */	NULL, /* unimplemented */
+	/* 161 */	NULL, /* compat_30_getfh */
+	/* 162 */	NULL, /* compat_09_ogetdomainname */
+	/* 163 */	NULL, /* compat_09_osetdomainname */
+	/* 164 */	NULL, /* compat_09_ouname */
+	/* 165 */	NULL, /* sysarch */
+	/* 166 */	NULL, /* unimplemented */
+	/* 167 */	NULL, /* unimplemented */
+	/* 168 */	NULL, /* unimplemented */
+#if (defined(SYSVSEM) || !defined(_KERNEL_OPT)) && !defined(_LP64)
+	/* 169 */	NULL, /* compat_10_osemsys */
+#else
+	/* 169 */	NULL, /* excluded 1.0 semsys */
+#endif
+#if (defined(SYSVMSG) || !defined(_KERNEL_OPT)) && !defined(_LP64)
+	/* 170 */	NULL, /* compat_10_omsgsys */
+#else
+	/* 170 */	NULL, /* excluded 1.0 msgsys */
+#endif
+#if (defined(SYSVSHM) || !defined(_KERNEL_OPT)) && !defined(_LP64)
+	/* 171 */	NULL, /* compat_10_oshmsys */
+#else
+	/* 171 */	NULL, /* excluded 1.0 shmsys */
+#endif
+	/* 172 */	NULL, /* unimplemented */
+	/* 173 */	NULL, /* pread */
+	/* 174 */	NULL, /* pwrite */
+	/* 175 */	NULL, /* compat_30_ntp_gettime */
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* 176 */	NULL, /* ntp_adjtime */
+#else
+	/* 176 */	NULL, /* excluded ntp_adjtime */
+#endif
+	/* 177 */	NULL, /* unimplemented */
+	/* 178 */	NULL, /* unimplemented */
+	/* 179 */	NULL, /* unimplemented */
+	/* 180 */	NULL, /* unimplemented */
+	/* 181 */	NULL, /* setgid */
+	/* 182 */	NULL, /* setegid */
+	/* 183 */	NULL, /* seteuid */
+	/* 184 */	NULL, /* lfs_bmapv */
+	/* 185 */	NULL, /* lfs_markv */
+	/* 186 */	NULL, /* lfs_segclean */
+	/* 187 */	NULL, /* compat_50_lfs_segwait */
+	/* 188 */	NULL, /* compat_12_stat12 */
+	/* 189 */	NULL, /* compat_12_fstat12 */
+	/* 190 */	NULL, /* compat_12_lstat12 */
+	/* 191 */	NULL, /* pathconf */
+	/* 192 */	NULL, /* fpathconf */
+	/* 193 */	NULL, /* unimplemented */
+	/* 194 */	NULL, /* getrlimit */
+	/* 195 */	NULL, /* setrlimit */
+	/* 196 */	NULL, /* compat_12_getdirentries */
+	/* 197 */	NULL, /* mmap */
+	/* 198 */	NULL, /* __syscall */
+	/* 199 */	NULL, /* lseek */
+	/* 200 */	NULL, /* truncate */
+	/* 201 */	NULL, /* ftruncate */
+	/* 202 */	NULL, /* __sysctl */
+	/* 203 */	NULL, /* mlock */
+	/* 204 */	NULL, /* munlock */
+	/* 205 */	NULL, /* undelete */
+	/* 206 */	NULL, /* compat_50_futimes */
+	/* 207 */	NULL, /* getpgid */
+	/* 208 */	NULL, /* reboot */
+	/* 209 */	NULL, /* poll */
+	/* 210 */	NULL, /* afssys */
+	/* 211 */	NULL, /* unimplemented */
+	/* 212 */	NULL, /* unimplemented */
+	/* 213 */	NULL, /* unimplemented */
+	/* 214 */	NULL, /* unimplemented */
+	/* 215 */	NULL, /* unimplemented */
+	/* 216 */	NULL, /* unimplemented */
+	/* 217 */	NULL, /* unimplemented */
+	/* 218 */	NULL, /* unimplemented */
+	/* 219 */	NULL, /* unimplemented */
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* 220 */	NULL, /* compat_14___semctl */
+	/* 221 */	NULL, /* semget */
+	/* 222 */	NULL, /* semop */
+	/* 223 */	NULL, /* semconfig */
+#else
+	/* 220 */	NULL, /* excluded compat_14_semctl */
+	/* 221 */	NULL, /* excluded semget */
+	/* 222 */	NULL, /* excluded semop */
+	/* 223 */	NULL, /* excluded semconfig */
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* 224 */	NULL, /* compat_14_msgctl */
+	/* 225 */	NULL, /* msgget */
+	/* 226 */	NULL, /* msgsnd */
+	/* 227 */	NULL, /* msgrcv */
+#else
+	/* 224 */	NULL, /* excluded compat_14_msgctl */
+	/* 225 */	NULL, /* excluded msgget */
+	/* 226 */	NULL, /* excluded msgsnd */
+	/* 227 */	NULL, /* excluded msgrcv */
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* 228 */	NULL, /* shmat */
+	/* 229 */	NULL, /* compat_14_shmctl */
+	/* 230 */	NULL, /* shmdt */
+	/* 231 */	NULL, /* shmget */
+#else
+	/* 228 */	NULL, /* excluded shmat */
+	/* 229 */	NULL, /* excluded compat_14_shmctl */
+	/* 230 */	NULL, /* excluded shmdt */
+	/* 231 */	NULL, /* excluded shmget */
+#endif
+	/* 232 */	NULL, /* compat_50_clock_gettime */
+	/* 233 */	NULL, /* compat_50_clock_settime */
+	/* 234 */	NULL, /* compat_50_clock_getres */
+	/* 235 */	NULL, /* timer_create */
+	/* 236 */	NULL, /* timer_delete */
+	/* 237 */	NULL, /* compat_50_timer_settime */
+	/* 238 */	NULL, /* compat_50_timer_gettime */
+	/* 239 */	NULL, /* timer_getoverrun */
+	/* 240 */	NULL, /* compat_50_nanosleep */
+	/* 241 */	NULL, /* fdatasync */
+	/* 242 */	NULL, /* mlockall */
+	/* 243 */	NULL, /* munlockall */
+	/* 244 */	NULL, /* compat_50___sigtimedwait */
+	/* 245 */	NULL, /* sigqueueinfo */
+	/* 246 */	NULL, /* modctl */
+	/* 247 */	NULL, /* _ksem_init */
+	/* 248 */	NULL, /* _ksem_open */
+	/* 249 */	NULL, /* _ksem_unlink */
+	/* 250 */	NULL, /* _ksem_close */
+	/* 251 */	NULL, /* _ksem_post */
+	/* 252 */	NULL, /* _ksem_wait */
+	/* 253 */	NULL, /* _ksem_trywait */
+	/* 254 */	NULL, /* _ksem_getvalue */
+	/* 255 */	NULL, /* _ksem_destroy */
+	/* 256 */	NULL, /* _ksem_timedwait */
+	/* 257 */	NULL, /* mq_open */
+	/* 258 */	NULL, /* mq_close */
+	/* 259 */	NULL, /* mq_unlink */
+	/* 260 */	NULL, /* mq_getattr */
+	/* 261 */	NULL, /* mq_setattr */
+	/* 262 */	NULL, /* mq_notify */
+	/* 263 */	NULL, /* mq_send */
+	/* 264 */	NULL, /* mq_receive */
+	/* 265 */	NULL, /* compat_50_mq_timedsend */
+	/* 266 */	NULL, /* compat_50_mq_timedreceive */
+	/* 267 */	NULL, /* unimplemented */
+	/* 268 */	NULL, /* unimplemented */
+	/* 269 */	NULL, /* unimplemented */
+	/* 270 */	NULL, /* __posix_rename */
+	/* 271 */	NULL, /* swapctl */
+	/* 272 */	NULL, /* compat_30_getdents */
+	/* 273 */	NULL, /* minherit */
+	/* 274 */	NULL, /* lchmod */
+	/* 275 */	NULL, /* lchown */
+	/* 276 */	NULL, /* compat_50_lutimes */
+	/* 277 */	"msync",
+	/* 278 */	NULL, /* compat_30___stat13 */
+	/* 279 */	NULL, /* compat_30___fstat13 */
+	/* 280 */	NULL, /* compat_30___lstat13 */
+	/* 281 */	"sigaltstack",
+	/* 282 */	"vfork",
+	/* 283 */	NULL, /* __posix_chown */
+	/* 284 */	NULL, /* __posix_fchown */
+	/* 285 */	NULL, /* __posix_lchown */
+	/* 286 */	NULL, /* getsid */
+	/* 287 */	NULL, /* __clone */
+	/* 288 */	NULL, /* fktrace */
+	/* 289 */	NULL, /* preadv */
+	/* 290 */	NULL, /* pwritev */
+	/* 291 */	NULL, /* compat_16___sigaction14 */
+	/* 292 */	"sigpending",
+	/* 293 */	"sigprocmask",
+	/* 294 */	"sigsuspend",
+	/* 295 */	NULL, /* compat_16___sigreturn14 */
+	/* 296 */	NULL, /* __getcwd */
+	/* 297 */	NULL, /* fchroot */
+	/* 298 */	NULL, /* compat_30_fhopen */
+	/* 299 */	NULL, /* compat_30_fhstat */
+	/* 300 */	NULL, /* compat_20_fhstatfs */
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* 301 */	NULL, /* compat_50_____semctl13 */
+#else
+	/* 301 */	NULL, /* excluded ____semctl13 */
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* 302 */	NULL, /* compat_50___msgctl13 */
+#else
+	/* 302 */	NULL, /* excluded __msgctl13 */
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* 303 */	NULL, /* compat_50___shmctl13 */
+#else
+	/* 303 */	NULL, /* excluded __shmctl13 */
+#endif
+	/* 304 */	NULL, /* lchflags */
+	/* 305 */	NULL, /* issetugid */
+	/* 306 */	NULL, /* utrace */
+	/* 307 */	NULL, /* getcontext */
+	/* 308 */	NULL, /* setcontext */
+	/* 309 */	NULL, /* _lwp_create */
+	/* 310 */	NULL, /* _lwp_exit */
+	/* 311 */	NULL, /* _lwp_self */
+	/* 312 */	NULL, /* _lwp_wait */
+	/* 313 */	NULL, /* _lwp_suspend */
+	/* 314 */	NULL, /* _lwp_continue */
+	/* 315 */	NULL, /* _lwp_wakeup */
+	/* 316 */	NULL, /* _lwp_getprivate */
+	/* 317 */	NULL, /* _lwp_setprivate */
+	/* 318 */	NULL, /* _lwp_kill */
+	/* 319 */	NULL, /* _lwp_detach */
+	/* 320 */	NULL, /* compat_50__lwp_park */
+	/* 321 */	NULL, /* _lwp_unpark */
+	/* 322 */	NULL, /* _lwp_unpark_all */
+	/* 323 */	NULL, /* _lwp_setname */
+	/* 324 */	NULL, /* _lwp_getname */
+	/* 325 */	NULL, /* _lwp_ctl */
+	/* 326 */	NULL, /* unimplemented */
+	/* 327 */	NULL, /* unimplemented */
+	/* 328 */	NULL, /* unimplemented */
+	/* 329 */	NULL, /* unimplemented */
+	/* 330 */	NULL, /* compat_60_sa_register */
+	/* 331 */	NULL, /* compat_60_sa_stacks */
+	/* 332 */	NULL, /* compat_60_sa_enable */
+	/* 333 */	NULL, /* compat_60_sa_setconcurrency */
+	/* 334 */	NULL, /* compat_60_sa_yield */
+	/* 335 */	NULL, /* compat_60_sa_preempt */
+	/* 336 */	NULL, /* obsolete sys_sa_unblockyield */
+	/* 337 */	NULL, /* unimplemented */
+	/* 338 */	NULL, /* unimplemented */
+	/* 339 */	NULL, /* unimplemented */
+	/* 340 */	NULL, /* __sigaction_sigtramp */
+	/* 341 */	NULL, /* pmc_get_info */
+	/* 342 */	NULL, /* pmc_control */
+	/* 343 */	NULL, /* rasctl */
+	/* 344 */	NULL, /* kqueue */
+	/* 345 */	NULL, /* compat_50_kevent */
+	/* 346 */	NULL, /* _sched_setparam */
+	/* 347 */	NULL, /* _sched_getparam */
+	/* 348 */	NULL, /* _sched_setaffinity */
+	/* 349 */	NULL, /* _sched_getaffinity */
+	/* 350 */	NULL, /* sched_yield */
+	/* 351 */	NULL, /* unimplemented */
+	/* 352 */	NULL, /* unimplemented */
+	/* 353 */	NULL, /* unimplemented */
+	/* 354 */	NULL, /* fsync_range */
+	/* 355 */	NULL, /* uuidgen */
+	/* 356 */	NULL, /* getvfsstat */
+	/* 357 */	NULL, /* statvfs1 */
+	/* 358 */	NULL, /* fstatvfs1 */
+	/* 359 */	NULL, /* compat_30_fhstatvfs1 */
+	/* 360 */	NULL, /* extattrctl */
+	/* 361 */	NULL, /* extattr_set_file */
+	/* 362 */	NULL, /* extattr_get_file */
+	/* 363 */	NULL, /* extattr_delete_file */
+	/* 364 */	NULL, /* extattr_set_fd */
+	/* 365 */	NULL, /* extattr_get_fd */
+	/* 366 */	NULL, /* extattr_delete_fd */
+	/* 367 */	NULL, /* extattr_set_link */
+	/* 368 */	NULL, /* extattr_get_link */
+	/* 369 */	NULL, /* extattr_delete_link */
+	/* 370 */	NULL, /* extattr_list_fd */
+	/* 371 */	NULL, /* extattr_list_file */
+	/* 372 */	NULL, /* extattr_list_link */
+	/* 373 */	NULL, /* compat_50_pselect */
+	/* 374 */	NULL, /* compat_50_pollts */
+	/* 375 */	NULL, /* setxattr */
+	/* 376 */	NULL, /* lsetxattr */
+	/* 377 */	NULL, /* fsetxattr */
+	/* 378 */	NULL, /* getxattr */
+	/* 379 */	NULL, /* lgetxattr */
+	/* 380 */	NULL, /* fgetxattr */
+	/* 381 */	NULL, /* listxattr */
+	/* 382 */	NULL, /* llistxattr */
+	/* 383 */	NULL, /* flistxattr */
+	/* 384 */	NULL, /* removexattr */
+	/* 385 */	NULL, /* lremovexattr */
+	/* 386 */	NULL, /* fremovexattr */
+	/* 387 */	NULL, /* compat_50___stat30 */
+	/* 388 */	NULL, /* compat_50___fstat30 */
+	/* 389 */	NULL, /* compat_50___lstat30 */
+	/* 390 */	"getdents",
+	/* 391 */	NULL, /* ignored old posix_fadvise */
+	/* 392 */	NULL, /* compat_30___fhstat30 */
+	/* 393 */	NULL, /* compat_50___ntp_gettime30 */
+	/* 394 */	"socket",
+	/* 395 */	"getfh",
+	/* 396 */	"fhopen",
+	/* 397 */	"fhstatvfs1",
+	/* 398 */	NULL, /* compat_50___fhstat40 */
+	/* 399 */	NULL, /* aio_cancel */
+	/* 400 */	NULL, /* aio_error */
+	/* 401 */	NULL, /* aio_fsync */
+	/* 402 */	NULL, /* aio_read */
+	/* 403 */	NULL, /* aio_return */
+	/* 404 */	NULL, /* compat_50_aio_suspend */
+	/* 405 */	NULL, /* aio_write */
+	/* 406 */	NULL, /* lio_listio */
+	/* 407 */	NULL, /* unimplemented */
+	/* 408 */	NULL, /* unimplemented */
+	/* 409 */	NULL, /* unimplemented */
+	/* 410 */	"mount",
+	/* 411 */	NULL, /* mremap */
+	/* 412 */	NULL, /* pset_create */
+	/* 413 */	NULL, /* pset_destroy */
+	/* 414 */	NULL, /* pset_assign */
+	/* 415 */	NULL, /* _pset_bind */
+	/* 416 */	"posix_fadvise",
+	/* 417 */	"select",
+	/* 418 */	"gettimeofday",
+	/* 419 */	"settimeofday",
+	/* 420 */	"utimes",
+	/* 421 */	"adjtime",
+	/* 422 */	"lfs_segwait",
+	/* 423 */	"futimes",
+	/* 424 */	"lutimes",
+	/* 425 */	"setitimer",
+	/* 426 */	"getitimer",
+	/* 427 */	"clock_gettime",
+	/* 428 */	"clock_settime",
+	/* 429 */	"clock_getres",
+	/* 430 */	"nanosleep",
+	/* 431 */	"__sigtimedwait",
+	/* 432 */	"mq_timedsend",
+	/* 433 */	"mq_timedreceive",
+	/* 434 */	NULL, /* compat_60__lwp_park */
+	/* 435 */	"kevent",
+	/* 436 */	"pselect",
+	/* 437 */	"pollts",
+	/* 438 */	"aio_suspend",
+	/* 439 */	"stat",
+	/* 440 */	"fstat",
+	/* 441 */	"lstat",
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* 442 */	"__semctl",
+#else
+	/* 442 */	NULL, /* excluded ____semctl50 */
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* 443 */	"shmctl",
+#else
+	/* 443 */	NULL, /* excluded ____shmctl50 */
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* 444 */	"msgctl",
+#else
+	/* 444 */	NULL, /* excluded ____msgctl50 */
+#endif
+	/* 445 */	"getrusage",
+	/* 446 */	"timer_settime",
+	/* 447 */	"timer_gettime",
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* 448 */	"ntp_gettime",
+#else
+	/* 448 */	NULL, /* excluded ___ntp_gettime50 */
+#endif
+	/* 449 */	"wait4",
+	/* 450 */	"mknod",
+	/* 451 */	"fhstat",
+	/* 452 */	NULL, /* obsolete 5.99 quotactl */
+	/* 453 */	NULL, /* pipe2 */
+	/* 454 */	NULL, /* dup3 */
+	/* 455 */	NULL, /* kqueue1 */
+	/* 456 */	NULL, /* paccept */
+	/* 457 */	NULL, /* linkat */
+	/* 458 */	NULL, /* renameat */
+	/* 459 */	NULL, /* mkfifoat */
+	/* 460 */	NULL, /* mknodat */
+	/* 461 */	NULL, /* mkdirat */
+	/* 462 */	NULL, /* faccessat */
+	/* 463 */	NULL, /* fchmodat */
+	/* 464 */	NULL, /* fchownat */
+	/* 465 */	NULL, /* fexecve */
+	/* 466 */	NULL, /* fstatat */
+	/* 467 */	NULL, /* utimensat */
+	/* 468 */	NULL, /* openat */
+	/* 469 */	NULL, /* readlinkat */
+	/* 470 */	NULL, /* symlinkat */
+	/* 471 */	NULL, /* unlinkat */
+	/* 472 */	NULL, /* futimens */
+	/* 473 */	NULL, /* __quotactl */
+	/* 474 */	NULL, /* posix_spawn */
+	/* 475 */	NULL, /* recvmmsg */
+	/* 476 */	NULL, /* sendmmsg */
+	/* 477 */	NULL, /* clock_nanosleep */
+	/* 478 */	"_lwp_park",
+	/* 479 */	NULL, /* posix_fallocate */
+	/* 480 */	NULL, /* fdiscard */
+	/* 481 */	NULL, /* filler */
+	/* 482 */	NULL, /* filler */
+	/* 483 */	NULL, /* filler */
+	/* 484 */	NULL, /* filler */
+	/* 485 */	NULL, /* filler */
+	/* 486 */	NULL, /* filler */
+	/* 487 */	NULL, /* filler */
+	/* 488 */	NULL, /* filler */
+	/* 489 */	NULL, /* filler */
+	/* 490 */	NULL, /* filler */
+	/* 491 */	NULL, /* filler */
+	/* 492 */	NULL, /* filler */
+	/* 493 */	NULL, /* filler */
+	/* 494 */	NULL, /* filler */
+	/* 495 */	NULL, /* filler */
+	/* 496 */	NULL, /* filler */
+	/* 497 */	NULL, /* filler */
+	/* 498 */	NULL, /* filler */
+	/* 499 */	NULL, /* filler */
+	/* 500 */	NULL, /* filler */
+	/* 501 */	NULL, /* filler */
+	/* 502 */	NULL, /* filler */
+	/* 503 */	NULL, /* filler */
+	/* 504 */	NULL, /* filler */
+	/* 505 */	NULL, /* filler */
+	/* 506 */	NULL, /* filler */
+	/* 507 */	NULL, /* filler */
+	/* 508 */	NULL, /* filler */
+	/* 509 */	NULL, /* filler */
+	/* 510 */	NULL, /* filler */
+	/* 511 */	NULL, /* filler */
+};
diff --git a/sys/kern/syscalls.conf b/sys/kern/syscalls.conf
index 7b47749..90e3b28 100644
--- a/sys/kern/syscalls.conf
+++ b/sys/kern/syscalls.conf
@@ -1,8 +1,9 @@
-#	$NetBSD: syscalls.conf,v 1.20 2014/04/27 14:50:23 pooka Exp $
+#	$NetBSD: syscalls.conf,v 1.22 2015/03/07 16:38:07 christos Exp $
 
 sysnames="syscalls.c"
 sysnumhdr="../sys/syscall.h"
 syssw="init_sysent.c"
+systrace="systrace_args.c"
 sysarghdr="../sys/syscallargs.h"
 sysarghdrextra='#include <sys/mount.h>\n#ifndef RUMP_CLIENT\n#include <sys/sched.h>\n#endif\n#include <sys/socket.h>\n\n'
 sysalign=1
diff --git a/sys/kern/systrace_args.c b/sys/kern/systrace_args.c
new file mode 100644
index 0000000..88b3a74
--- /dev/null
+++ b/sys/kern/systrace_args.c
@@ -0,0 +1,12013 @@
+/* $NetBSD$ */
+
+/*
+ * System call argument to DTrace register array converstion.
+ *
+ * DO NOT EDIT-- this file is automatically generated.
+ * This file is part of the DTrace syscall provider.
+ */
+
+static void
+systrace_args(register_t sysnum, const void *params, uintptr_t *uarg, size_t *n_args)
+{
+	intptr_t *iarg  = (intptr_t *)uarg;
+	switch (sysnum) {
+	/* sys_syscall */
+	case 0: {
+		struct sys_syscall_args *p = params;
+		iarg[0] = SCARG(p, code); /* int */
+		iarg[1] = SCARG(p, args[SYS_MAXSYSARGS]); /* register_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_exit */
+	case 1: {
+		struct sys_exit_args *p = params;
+		iarg[0] = SCARG(p, rval); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_fork */
+	case 2: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_read */
+	case 3: {
+		struct sys_read_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* void * */
+		uarg[2] = SCARG(p, nbyte); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_write */
+	case 4: {
+		struct sys_write_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* const void * */
+		uarg[2] = SCARG(p, nbyte); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_open */
+	case 5: {
+		struct sys_open_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, flags); /* int */
+		iarg[2] = SCARG(p, mode); /* mode_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_close */
+	case 6: {
+		struct sys_close_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_wait4 */
+	case 7: {
+		struct compat_50_sys_wait4_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = (intptr_t) SCARG(p, status); /* int * */
+		iarg[2] = SCARG(p, options); /* int */
+		uarg[3] = (intptr_t) SCARG(p, rusage); /* struct rusage50 * */
+		*n_args = 4;
+		break;
+	}
+	/* sys_creat */
+	case 8: {
+		struct compat_43_sys_creat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* mode_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_link */
+	case 9: {
+		struct sys_link_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, link); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_unlink */
+	case 10: {
+		struct sys_unlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_chdir */
+	case 12: {
+		struct sys_chdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_fchdir */
+	case 13: {
+		struct sys_fchdir_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_mknod */
+	case 14: {
+		struct compat_50_sys_mknod_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* mode_t */
+		uarg[2] = SCARG(p, dev); /* uint32_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_chmod */
+	case 15: {
+		struct sys_chmod_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* mode_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_chown */
+	case 16: {
+		struct sys_chown_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_obreak */
+	case 17: {
+		struct sys_obreak_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, nsize); /* char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_getfsstat */
+	case 18: {
+		struct compat_20_sys_getfsstat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, buf); /* struct statfs12 * */
+		iarg[1] = SCARG(p, bufsize); /* long */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_lseek */
+	case 19: {
+		struct compat_43_sys_lseek_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, offset); /* long */
+		iarg[2] = SCARG(p, whence); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getpid_with_ppid */
+	case 20: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_mount */
+	case 21: {
+		struct compat_40_sys_mount_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, type); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, flags); /* int */
+		uarg[3] = (intptr_t) SCARG(p, data); /* void * */
+		*n_args = 4;
+		break;
+	}
+	/* sys_unmount */
+	case 22: {
+		struct sys_unmount_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, flags); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setuid */
+	case 23: {
+		struct sys_setuid_args *p = params;
+		uarg[0] = SCARG(p, uid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_getuid_with_euid */
+	case 24: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_geteuid */
+	case 25: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_ptrace */
+	case 26: {
+		struct sys_ptrace_args *p = params;
+		iarg[0] = SCARG(p, req); /* int */
+		iarg[1] = SCARG(p, pid); /* pid_t */
+		uarg[2] = (intptr_t) SCARG(p, addr); /* void * */
+		iarg[3] = SCARG(p, data); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* sys_recvmsg */
+	case 27: {
+		struct sys_recvmsg_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msg); /* struct msghdr * */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_sendmsg */
+	case 28: {
+		struct sys_sendmsg_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msg); /* const struct msghdr * */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_recvfrom */
+	case 29: {
+		struct sys_recvfrom_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* void * */
+		uarg[2] = SCARG(p, len); /* size_t */
+		iarg[3] = SCARG(p, flags); /* int */
+		uarg[4] = (intptr_t) SCARG(p, from); /* struct sockaddr * */
+		uarg[5] = (intptr_t) SCARG(p, fromlenaddr); /* socklen_t * */
+		*n_args = 6;
+		break;
+	}
+	/* sys_accept */
+	case 30: {
+		struct sys_accept_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* struct sockaddr * */
+		uarg[2] = (intptr_t) SCARG(p, anamelen); /* socklen_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getpeername */
+	case 31: {
+		struct sys_getpeername_args *p = params;
+		iarg[0] = SCARG(p, fdes); /* int */
+		uarg[1] = (intptr_t) SCARG(p, asa); /* struct sockaddr * */
+		uarg[2] = (intptr_t) SCARG(p, alen); /* socklen_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getsockname */
+	case 32: {
+		struct sys_getsockname_args *p = params;
+		iarg[0] = SCARG(p, fdes); /* int */
+		uarg[1] = (intptr_t) SCARG(p, asa); /* struct sockaddr * */
+		uarg[2] = (intptr_t) SCARG(p, alen); /* socklen_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_access */
+	case 33: {
+		struct sys_access_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, flags); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_chflags */
+	case 34: {
+		struct sys_chflags_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = SCARG(p, flags); /* u_long */
+		*n_args = 2;
+		break;
+	}
+	/* sys_fchflags */
+	case 35: {
+		struct sys_fchflags_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, flags); /* u_long */
+		*n_args = 2;
+		break;
+	}
+	/* sys_sync */
+	case 36: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_kill */
+	case 37: {
+		struct sys_kill_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		iarg[1] = SCARG(p, signum); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_stat */
+	case 38: {
+		struct compat_43_sys_stat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, ub); /* struct stat43 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getppid */
+	case 39: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_lstat */
+	case 40: {
+		struct compat_43_sys_lstat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, ub); /* struct stat43 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_dup */
+	case 41: {
+		struct sys_dup_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_pipe */
+	case 42: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getegid */
+	case 43: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_profil */
+	case 44: {
+		struct sys_profil_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, samples); /* char * */
+		uarg[1] = SCARG(p, size); /* size_t */
+		uarg[2] = SCARG(p, offset); /* u_long */
+		uarg[3] = SCARG(p, scale); /* u_int */
+		*n_args = 4;
+		break;
+	}
+	/* sys_ktrace */
+	case 45: {
+		struct sys_ktrace_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fname); /* const char * */
+		iarg[1] = SCARG(p, ops); /* int */
+		iarg[2] = SCARG(p, facs); /* int */
+		iarg[3] = SCARG(p, pid); /* pid_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_sigaction */
+	case 46: {
+		struct compat_13_sys_sigaction_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		uarg[1] = (intptr_t) SCARG(p, nsa); /* const struct sigaction13 * */
+		uarg[2] = (intptr_t) SCARG(p, osa); /* struct sigaction13 * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getgid_with_egid */
+	case 47: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_sigprocmask */
+	case 48: {
+		struct compat_13_sys_sigprocmask_args *p = params;
+		iarg[0] = SCARG(p, how); /* int */
+		iarg[1] = SCARG(p, mask); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys___getlogin */
+	case 49: {
+		struct sys___getlogin_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, namebuf); /* char * */
+		uarg[1] = SCARG(p, namelen); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys___setlogin */
+	case 50: {
+		struct sys___setlogin_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, namebuf); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_acct */
+	case 51: {
+		struct sys_acct_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_sigpending */
+	case 52: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_sigaltstack */
+	case 53: {
+		struct compat_13_sys_sigaltstack_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, nss); /* const struct sigaltstack13 * */
+		uarg[1] = (intptr_t) SCARG(p, oss); /* struct sigaltstack13 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_ioctl */
+	case 54: {
+		struct sys_ioctl_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, com); /* u_long */
+		uarg[2] = (intptr_t) SCARG(p, data); /* void * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_reboot */
+	case 55: {
+		struct compat_12_sys_reboot_args *p = params;
+		iarg[0] = SCARG(p, opt); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_revoke */
+	case 56: {
+		struct sys_revoke_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_symlink */
+	case 57: {
+		struct sys_symlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, link); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_readlink */
+	case 58: {
+		struct sys_readlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* char * */
+		uarg[2] = SCARG(p, count); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_execve */
+	case 59: {
+		struct sys_execve_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, argp); /* char *const * */
+		uarg[2] = (intptr_t) SCARG(p, envp); /* char *const * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_umask */
+	case 60: {
+		struct sys_umask_args *p = params;
+		iarg[0] = SCARG(p, newmask); /* mode_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_chroot */
+	case 61: {
+		struct sys_chroot_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_fstat */
+	case 62: {
+		struct compat_43_sys_fstat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sb); /* struct stat43 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getkerninfo */
+	case 63: {
+		struct compat_43_sys_getkerninfo_args *p = params;
+		iarg[0] = SCARG(p, op); /* int */
+		uarg[1] = (intptr_t) SCARG(p, where); /* char * */
+		uarg[2] = (intptr_t) SCARG(p, size); /* int * */
+		iarg[3] = SCARG(p, arg); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* sys_getpagesize */
+	case 64: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_msync */
+	case 65: {
+		struct compat_12_sys_msync_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_vfork */
+	case 66: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_sbrk */
+	case 69: {
+		struct sys_sbrk_args *p = params;
+		iarg[0] = SCARG(p, incr); /* intptr_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_sstk */
+	case 70: {
+		struct sys_sstk_args *p = params;
+		iarg[0] = SCARG(p, incr); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_mmap */
+	case 71: {
+		struct compat_43_sys_mmap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		iarg[2] = SCARG(p, prot); /* int */
+		iarg[3] = SCARG(p, flags); /* int */
+		iarg[4] = SCARG(p, fd); /* int */
+		iarg[5] = SCARG(p, pos); /* long */
+		*n_args = 6;
+		break;
+	}
+	/* sys_ovadvise */
+	case 72: {
+		struct sys_ovadvise_args *p = params;
+		iarg[0] = SCARG(p, anom); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_munmap */
+	case 73: {
+		struct sys_munmap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_mprotect */
+	case 74: {
+		struct sys_mprotect_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		iarg[2] = SCARG(p, prot); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_madvise */
+	case 75: {
+		struct sys_madvise_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		iarg[2] = SCARG(p, behav); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_mincore */
+	case 78: {
+		struct sys_mincore_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		uarg[2] = (intptr_t) SCARG(p, vec); /* char * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getgroups */
+	case 79: {
+		struct sys_getgroups_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset); /* gid_t * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setgroups */
+	case 80: {
+		struct sys_setgroups_args *p = params;
+		iarg[0] = SCARG(p, gidsetsize); /* int */
+		uarg[1] = (intptr_t) SCARG(p, gidset); /* const gid_t * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getpgrp */
+	case 81: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_setpgid */
+	case 82: {
+		struct sys_setpgid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		iarg[1] = SCARG(p, pgid); /* pid_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setitimer */
+	case 83: {
+		struct compat_50_sys_setitimer_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, itv); /* const struct itimerval50 * */
+		uarg[2] = (intptr_t) SCARG(p, oitv); /* struct itimerval50 * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_wait */
+	case 84: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_swapon */
+	case 85: {
+		struct compat_12_sys_swapon_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, name); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_getitimer */
+	case 86: {
+		struct compat_50_sys_getitimer_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, itv); /* struct itimerval50 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_gethostname */
+	case 87: {
+		struct compat_43_sys_gethostname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, hostname); /* char * */
+		uarg[1] = SCARG(p, len); /* u_int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_sethostname */
+	case 88: {
+		struct compat_43_sys_sethostname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, hostname); /* char * */
+		uarg[1] = SCARG(p, len); /* u_int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getdtablesize */
+	case 89: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_dup2 */
+	case 90: {
+		struct sys_dup2_args *p = params;
+		iarg[0] = SCARG(p, from); /* int */
+		iarg[1] = SCARG(p, to); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_fcntl */
+	case 92: {
+		struct sys_fcntl_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, arg); /* void * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_select */
+	case 93: {
+		struct compat_50_sys_select_args *p = params;
+		iarg[0] = SCARG(p, nd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, in); /* fd_set * */
+		uarg[2] = (intptr_t) SCARG(p, ou); /* fd_set * */
+		uarg[3] = (intptr_t) SCARG(p, ex); /* fd_set * */
+		uarg[4] = (intptr_t) SCARG(p, tv); /* struct timeval50 * */
+		*n_args = 5;
+		break;
+	}
+	/* sys_fsync */
+	case 95: {
+		struct sys_fsync_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_setpriority */
+	case 96: {
+		struct sys_setpriority_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, who); /* id_t */
+		iarg[2] = SCARG(p, prio); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_socket */
+	case 97: {
+		struct compat_30_sys_socket_args *p = params;
+		iarg[0] = SCARG(p, domain); /* int */
+		iarg[1] = SCARG(p, type); /* int */
+		iarg[2] = SCARG(p, protocol); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_connect */
+	case 98: {
+		struct sys_connect_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* const struct sockaddr * */
+		iarg[2] = SCARG(p, namelen); /* socklen_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_accept */
+	case 99: {
+		struct compat_43_sys_accept_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* void * */
+		uarg[2] = (intptr_t) SCARG(p, anamelen); /* socklen_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getpriority */
+	case 100: {
+		struct sys_getpriority_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, who); /* id_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_send */
+	case 101: {
+		struct compat_43_sys_send_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* void * */
+		iarg[2] = SCARG(p, len); /* int */
+		iarg[3] = SCARG(p, flags); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* sys_recv */
+	case 102: {
+		struct compat_43_sys_recv_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* void * */
+		iarg[2] = SCARG(p, len); /* int */
+		iarg[3] = SCARG(p, flags); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* sys_sigreturn */
+	case 103: {
+		struct compat_13_sys_sigreturn_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, sigcntxp); /* struct sigcontext13 * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_bind */
+	case 104: {
+		struct sys_bind_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* const struct sockaddr * */
+		iarg[2] = SCARG(p, namelen); /* socklen_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_setsockopt */
+	case 105: {
+		struct sys_setsockopt_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		iarg[1] = SCARG(p, level); /* int */
+		iarg[2] = SCARG(p, name); /* int */
+		uarg[3] = (intptr_t) SCARG(p, val); /* const void * */
+		iarg[4] = SCARG(p, valsize); /* socklen_t */
+		*n_args = 5;
+		break;
+	}
+	/* sys_listen */
+	case 106: {
+		struct sys_listen_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		iarg[1] = SCARG(p, backlog); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_sigvec */
+	case 108: {
+		struct compat_43_sys_sigvec_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		uarg[1] = (intptr_t) SCARG(p, nsv); /* struct sigvec * */
+		uarg[2] = (intptr_t) SCARG(p, osv); /* struct sigvec * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_sigblock */
+	case 109: {
+		struct compat_43_sys_sigblock_args *p = params;
+		iarg[0] = SCARG(p, mask); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_sigsetmask */
+	case 110: {
+		struct compat_43_sys_sigsetmask_args *p = params;
+		iarg[0] = SCARG(p, mask); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_sigsuspend */
+	case 111: {
+		struct compat_13_sys_sigsuspend_args *p = params;
+		iarg[0] = SCARG(p, mask); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_sigstack */
+	case 112: {
+		struct compat_43_sys_sigstack_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, nss); /* struct sigstack * */
+		uarg[1] = (intptr_t) SCARG(p, oss); /* struct sigstack * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_recvmsg */
+	case 113: {
+		struct compat_43_sys_recvmsg_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msg); /* struct omsghdr * */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_sendmsg */
+	case 114: {
+		struct compat_43_sys_sendmsg_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msg); /* void * */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_gettimeofday */
+	case 116: {
+		struct compat_50_sys_gettimeofday_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tp); /* struct timeval50 * */
+		uarg[1] = (intptr_t) SCARG(p, tzp); /* void * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getrusage */
+	case 117: {
+		struct compat_50_sys_getrusage_args *p = params;
+		iarg[0] = SCARG(p, who); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rusage); /* struct rusage50 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getsockopt */
+	case 118: {
+		struct sys_getsockopt_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		iarg[1] = SCARG(p, level); /* int */
+		iarg[2] = SCARG(p, name); /* int */
+		uarg[3] = (intptr_t) SCARG(p, val); /* void * */
+		uarg[4] = (intptr_t) SCARG(p, avalsize); /* socklen_t * */
+		*n_args = 5;
+		break;
+	}
+	/* sys_readv */
+	case 120: {
+		struct sys_readv_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, iovp); /* const struct iovec * */
+		iarg[2] = SCARG(p, iovcnt); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_writev */
+	case 121: {
+		struct sys_writev_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, iovp); /* const struct iovec * */
+		iarg[2] = SCARG(p, iovcnt); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_settimeofday */
+	case 122: {
+		struct compat_50_sys_settimeofday_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tv); /* const struct timeval50 * */
+		uarg[1] = (intptr_t) SCARG(p, tzp); /* const void * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_fchown */
+	case 123: {
+		struct sys_fchown_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_fchmod */
+	case 124: {
+		struct sys_fchmod_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, mode); /* mode_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_recvfrom */
+	case 125: {
+		struct compat_43_sys_recvfrom_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* void * */
+		uarg[2] = SCARG(p, len); /* size_t */
+		iarg[3] = SCARG(p, flags); /* int */
+		uarg[4] = (intptr_t) SCARG(p, from); /* void * */
+		uarg[5] = (intptr_t) SCARG(p, fromlenaddr); /* socklen_t * */
+		*n_args = 6;
+		break;
+	}
+	/* sys_setreuid */
+	case 126: {
+		struct sys_setreuid_args *p = params;
+		uarg[0] = SCARG(p, ruid); /* uid_t */
+		uarg[1] = SCARG(p, euid); /* uid_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setregid */
+	case 127: {
+		struct sys_setregid_args *p = params;
+		iarg[0] = SCARG(p, rgid); /* gid_t */
+		iarg[1] = SCARG(p, egid); /* gid_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_rename */
+	case 128: {
+		struct sys_rename_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, from); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, to); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_truncate */
+	case 129: {
+		struct compat_43_sys_truncate_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, length); /* long */
+		*n_args = 2;
+		break;
+	}
+	/* sys_ftruncate */
+	case 130: {
+		struct compat_43_sys_ftruncate_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, length); /* long */
+		*n_args = 2;
+		break;
+	}
+	/* sys_flock */
+	case 131: {
+		struct sys_flock_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, how); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_mkfifo */
+	case 132: {
+		struct sys_mkfifo_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* mode_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_sendto */
+	case 133: {
+		struct sys_sendto_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* const void * */
+		uarg[2] = SCARG(p, len); /* size_t */
+		iarg[3] = SCARG(p, flags); /* int */
+		uarg[4] = (intptr_t) SCARG(p, to); /* const struct sockaddr * */
+		iarg[5] = SCARG(p, tolen); /* socklen_t */
+		*n_args = 6;
+		break;
+	}
+	/* sys_shutdown */
+	case 134: {
+		struct sys_shutdown_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		iarg[1] = SCARG(p, how); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_socketpair */
+	case 135: {
+		struct sys_socketpair_args *p = params;
+		iarg[0] = SCARG(p, domain); /* int */
+		iarg[1] = SCARG(p, type); /* int */
+		iarg[2] = SCARG(p, protocol); /* int */
+		uarg[3] = (intptr_t) SCARG(p, rsv); /* int * */
+		*n_args = 4;
+		break;
+	}
+	/* sys_mkdir */
+	case 136: {
+		struct sys_mkdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* mode_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_rmdir */
+	case 137: {
+		struct sys_rmdir_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_utimes */
+	case 138: {
+		struct compat_50_sys_utimes_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, tptr); /* const struct timeval50 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_adjtime */
+	case 140: {
+		struct compat_50_sys_adjtime_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, delta); /* const struct timeval50 * */
+		uarg[1] = (intptr_t) SCARG(p, olddelta); /* struct timeval50 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getpeername */
+	case 141: {
+		struct compat_43_sys_getpeername_args *p = params;
+		iarg[0] = SCARG(p, fdes); /* int */
+		uarg[1] = (intptr_t) SCARG(p, asa); /* void * */
+		uarg[2] = (intptr_t) SCARG(p, alen); /* socklen_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_gethostid */
+	case 142: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_sethostid */
+	case 143: {
+		struct compat_43_sys_sethostid_args *p = params;
+		iarg[0] = SCARG(p, hostid); /* int32_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_getrlimit */
+	case 144: {
+		struct compat_43_sys_getrlimit_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rlp); /* struct orlimit * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setrlimit */
+	case 145: {
+		struct compat_43_sys_setrlimit_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rlp); /* const struct orlimit * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_killpg */
+	case 146: {
+		struct compat_43_sys_killpg_args *p = params;
+		iarg[0] = SCARG(p, pgid); /* int */
+		iarg[1] = SCARG(p, signum); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setsid */
+	case 147: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_quotactl */
+	case 148: {
+		struct compat_50_sys_quotactl_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, cmd); /* int */
+		iarg[2] = SCARG(p, uid); /* int */
+		uarg[3] = (intptr_t) SCARG(p, arg); /* void * */
+		*n_args = 4;
+		break;
+	}
+	/* sys_quota */
+	case 149: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_getsockname */
+	case 150: {
+		struct compat_43_sys_getsockname_args *p = params;
+		iarg[0] = SCARG(p, fdec); /* int */
+		uarg[1] = (intptr_t) SCARG(p, asa); /* void * */
+		uarg[2] = (intptr_t) SCARG(p, alen); /* socklen_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_nfssvc */
+	case 155: {
+		struct sys_nfssvc_args *p = params;
+		iarg[0] = SCARG(p, flag); /* int */
+		uarg[1] = (intptr_t) SCARG(p, argp); /* void * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getdirentries */
+	case 156: {
+		struct compat_43_sys_getdirentries_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* char * */
+		uarg[2] = SCARG(p, count); /* u_int */
+		uarg[3] = (intptr_t) SCARG(p, basep); /* long * */
+		*n_args = 4;
+		break;
+	}
+	/* sys_statfs */
+	case 157: {
+		struct compat_20_sys_statfs_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* struct statfs12 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_fstatfs */
+	case 158: {
+		struct compat_20_sys_fstatfs_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* struct statfs12 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getfh */
+	case 161: {
+		struct compat_30_sys_getfh_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fname); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, fhp); /* struct compat_30_fhandle * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getdomainname */
+	case 162: {
+		struct compat_09_sys_getdomainname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, domainname); /* char * */
+		iarg[1] = SCARG(p, len); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setdomainname */
+	case 163: {
+		struct compat_09_sys_setdomainname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, domainname); /* char * */
+		iarg[1] = SCARG(p, len); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_uname */
+	case 164: {
+		struct compat_09_sys_uname_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, name); /* struct outsname * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_sysarch */
+	case 165: {
+		struct sys_sysarch_args *p = params;
+		iarg[0] = SCARG(p, op); /* int */
+		uarg[1] = (intptr_t) SCARG(p, parms); /* void * */
+		*n_args = 2;
+		break;
+	}
+#if (defined(SYSVSEM) || !defined(_KERNEL_OPT)) && !defined(_LP64)
+	/* sys_semsys */
+	case 169: {
+		struct compat_10_sys_semsys_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, a2); /* int */
+		iarg[2] = SCARG(p, a3); /* int */
+		iarg[3] = SCARG(p, a4); /* int */
+		iarg[4] = SCARG(p, a5); /* int */
+		*n_args = 5;
+		break;
+	}
+#else
+#endif
+#if (defined(SYSVMSG) || !defined(_KERNEL_OPT)) && !defined(_LP64)
+	/* sys_msgsys */
+	case 170: {
+		struct compat_10_sys_msgsys_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, a2); /* int */
+		iarg[2] = SCARG(p, a3); /* int */
+		iarg[3] = SCARG(p, a4); /* int */
+		iarg[4] = SCARG(p, a5); /* int */
+		iarg[5] = SCARG(p, a6); /* int */
+		*n_args = 6;
+		break;
+	}
+#else
+#endif
+#if (defined(SYSVSHM) || !defined(_KERNEL_OPT)) && !defined(_LP64)
+	/* sys_shmsys */
+	case 171: {
+		struct compat_10_sys_shmsys_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		iarg[1] = SCARG(p, a2); /* int */
+		iarg[2] = SCARG(p, a3); /* int */
+		iarg[3] = SCARG(p, a4); /* int */
+		*n_args = 4;
+		break;
+	}
+#else
+#endif
+	/* sys_pread */
+	case 173: {
+		struct sys_pread_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* void * */
+		uarg[2] = SCARG(p, nbyte); /* size_t */
+		iarg[3] = SCARG(p, PAD); /* int */
+		iarg[4] = SCARG(p, offset); /* off_t */
+		*n_args = 5;
+		break;
+	}
+	/* sys_pwrite */
+	case 174: {
+		struct sys_pwrite_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* const void * */
+		uarg[2] = SCARG(p, nbyte); /* size_t */
+		iarg[3] = SCARG(p, PAD); /* int */
+		iarg[4] = SCARG(p, offset); /* off_t */
+		*n_args = 5;
+		break;
+	}
+	/* sys_ntp_gettime */
+	case 175: {
+		struct compat_30_sys_ntp_gettime_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ntvp); /* struct ntptimeval30 * */
+		*n_args = 1;
+		break;
+	}
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* sys_ntp_adjtime */
+	case 176: {
+		struct sys_ntp_adjtime_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tp); /* struct timex * */
+		*n_args = 1;
+		break;
+	}
+#else
+#endif
+	/* sys_setgid */
+	case 181: {
+		struct sys_setgid_args *p = params;
+		iarg[0] = SCARG(p, gid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_setegid */
+	case 182: {
+		struct sys_setegid_args *p = params;
+		iarg[0] = SCARG(p, egid); /* gid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_seteuid */
+	case 183: {
+		struct sys_seteuid_args *p = params;
+		uarg[0] = SCARG(p, euid); /* uid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_lfs_bmapv */
+	case 184: {
+		struct sys_lfs_bmapv_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fsidp); /* fsid_t * */
+		uarg[1] = (intptr_t) SCARG(p, blkiov); /* struct block_info * */
+		iarg[2] = SCARG(p, blkcnt); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_lfs_markv */
+	case 185: {
+		struct sys_lfs_markv_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fsidp); /* fsid_t * */
+		uarg[1] = (intptr_t) SCARG(p, blkiov); /* struct block_info * */
+		iarg[2] = SCARG(p, blkcnt); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_lfs_segclean */
+	case 186: {
+		struct sys_lfs_segclean_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fsidp); /* fsid_t * */
+		uarg[1] = SCARG(p, segment); /* u_long */
+		*n_args = 2;
+		break;
+	}
+	/* sys_lfs_segwait */
+	case 187: {
+		struct compat_50_sys_lfs_segwait_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fsidp); /* fsid_t * */
+		uarg[1] = (intptr_t) SCARG(p, tv); /* struct timeval50 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_stat */
+	case 188: {
+		struct compat_12_sys_stat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, ub); /* struct stat12 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_fstat */
+	case 189: {
+		struct compat_12_sys_fstat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sb); /* struct stat12 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_lstat */
+	case 190: {
+		struct compat_12_sys_lstat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, ub); /* struct stat12 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_pathconf */
+	case 191: {
+		struct sys_pathconf_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, name); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_fpathconf */
+	case 192: {
+		struct sys_fpathconf_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, name); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getrlimit */
+	case 194: {
+		struct sys_getrlimit_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rlp); /* struct rlimit * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_setrlimit */
+	case 195: {
+		struct sys_setrlimit_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rlp); /* const struct rlimit * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getdirentries */
+	case 196: {
+		struct compat_12_sys_getdirentries_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* char * */
+		uarg[2] = SCARG(p, count); /* u_int */
+		uarg[3] = (intptr_t) SCARG(p, basep); /* long * */
+		*n_args = 4;
+		break;
+	}
+	/* sys_mmap */
+	case 197: {
+		struct sys_mmap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		iarg[2] = SCARG(p, prot); /* int */
+		iarg[3] = SCARG(p, flags); /* int */
+		iarg[4] = SCARG(p, fd); /* int */
+		iarg[5] = SCARG(p, PAD); /* long */
+		iarg[6] = SCARG(p, pos); /* off_t */
+		*n_args = 7;
+		break;
+	}
+	/* sys___syscall */
+	case 198: {
+		struct sys___syscall_args *p = params;
+		iarg[0] = SCARG(p, code); /* quad_t */
+		iarg[1] = SCARG(p, args[SYS_MAXSYSARGS]); /* register_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_lseek */
+	case 199: {
+		struct sys_lseek_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, PAD); /* int */
+		iarg[2] = SCARG(p, offset); /* off_t */
+		iarg[3] = SCARG(p, whence); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* sys_truncate */
+	case 200: {
+		struct sys_truncate_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, PAD); /* int */
+		iarg[2] = SCARG(p, length); /* off_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_ftruncate */
+	case 201: {
+		struct sys_ftruncate_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, PAD); /* int */
+		iarg[2] = SCARG(p, length); /* off_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys___sysctl */
+	case 202: {
+		struct sys___sysctl_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, name); /* const int * */
+		uarg[1] = SCARG(p, namelen); /* u_int */
+		uarg[2] = (intptr_t) SCARG(p, oldv); /* void * */
+		uarg[3] = (intptr_t) SCARG(p, oldlenp); /* size_t * */
+		uarg[4] = (intptr_t) SCARG(p, newv); /* const void * */
+		uarg[5] = SCARG(p, newlen); /* size_t */
+		*n_args = 6;
+		break;
+	}
+	/* sys_mlock */
+	case 203: {
+		struct sys_mlock_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* const void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_munlock */
+	case 204: {
+		struct sys_munlock_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* const void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_undelete */
+	case 205: {
+		struct sys_undelete_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_futimes */
+	case 206: {
+		struct compat_50_sys_futimes_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, tptr); /* const struct timeval50 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getpgid */
+	case 207: {
+		struct sys_getpgid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_reboot */
+	case 208: {
+		struct sys_reboot_args *p = params;
+		iarg[0] = SCARG(p, opt); /* int */
+		uarg[1] = (intptr_t) SCARG(p, bootstr); /* char * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_poll */
+	case 209: {
+		struct sys_poll_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fds); /* struct pollfd * */
+		uarg[1] = SCARG(p, nfds); /* u_int */
+		iarg[2] = SCARG(p, timeout); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_afssys */
+	case 210: {
+		struct sys_afssys_args *p = params;
+		iarg[0] = SCARG(p, id); /* long */
+		iarg[1] = SCARG(p, a1); /* long */
+		iarg[2] = SCARG(p, a2); /* long */
+		iarg[3] = SCARG(p, a3); /* long */
+		iarg[4] = SCARG(p, a4); /* long */
+		iarg[5] = SCARG(p, a5); /* long */
+		iarg[6] = SCARG(p, a6); /* long */
+		*n_args = 7;
+		break;
+	}
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* sys___semctl */
+	case 220: {
+		struct compat_14_sys___semctl_args *p = params;
+		iarg[0] = SCARG(p, semid); /* int */
+		iarg[1] = SCARG(p, semnum); /* int */
+		iarg[2] = SCARG(p, cmd); /* int */
+		uarg[3] = (intptr_t) SCARG(p, arg); /* union __semun * */
+		*n_args = 4;
+		break;
+	}
+	/* sys_semget */
+	case 221: {
+		struct sys_semget_args *p = params;
+		iarg[0] = SCARG(p, key); /* key_t */
+		iarg[1] = SCARG(p, nsems); /* int */
+		iarg[2] = SCARG(p, semflg); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_semop */
+	case 222: {
+		struct sys_semop_args *p = params;
+		iarg[0] = SCARG(p, semid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sops); /* struct sembuf * */
+		uarg[2] = SCARG(p, nsops); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_semconfig */
+	case 223: {
+		struct sys_semconfig_args *p = params;
+		iarg[0] = SCARG(p, flag); /* int */
+		*n_args = 1;
+		break;
+	}
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* sys_msgctl */
+	case 224: {
+		struct compat_14_sys_msgctl_args *p = params;
+		iarg[0] = SCARG(p, msqid); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, buf); /* struct msqid_ds14 * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_msgget */
+	case 225: {
+		struct sys_msgget_args *p = params;
+		iarg[0] = SCARG(p, key); /* key_t */
+		iarg[1] = SCARG(p, msgflg); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_msgsnd */
+	case 226: {
+		struct sys_msgsnd_args *p = params;
+		iarg[0] = SCARG(p, msqid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msgp); /* const void * */
+		uarg[2] = SCARG(p, msgsz); /* size_t */
+		iarg[3] = SCARG(p, msgflg); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* sys_msgrcv */
+	case 227: {
+		struct sys_msgrcv_args *p = params;
+		iarg[0] = SCARG(p, msqid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, msgp); /* void * */
+		uarg[2] = SCARG(p, msgsz); /* size_t */
+		iarg[3] = SCARG(p, msgtyp); /* long */
+		iarg[4] = SCARG(p, msgflg); /* int */
+		*n_args = 5;
+		break;
+	}
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* sys_shmat */
+	case 228: {
+		struct sys_shmat_args *p = params;
+		iarg[0] = SCARG(p, shmid); /* int */
+		uarg[1] = (intptr_t) SCARG(p, shmaddr); /* const void * */
+		iarg[2] = SCARG(p, shmflg); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_shmctl */
+	case 229: {
+		struct compat_14_sys_shmctl_args *p = params;
+		iarg[0] = SCARG(p, shmid); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, buf); /* struct shmid_ds14 * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_shmdt */
+	case 230: {
+		struct sys_shmdt_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, shmaddr); /* const void * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_shmget */
+	case 231: {
+		struct sys_shmget_args *p = params;
+		iarg[0] = SCARG(p, key); /* key_t */
+		uarg[1] = SCARG(p, size); /* size_t */
+		iarg[2] = SCARG(p, shmflg); /* int */
+		*n_args = 3;
+		break;
+	}
+#else
+#endif
+	/* sys_clock_gettime */
+	case 232: {
+		struct compat_50_sys_clock_gettime_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp); /* struct timespec50 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_clock_settime */
+	case 233: {
+		struct compat_50_sys_clock_settime_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp); /* const struct timespec50 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_clock_getres */
+	case 234: {
+		struct compat_50_sys_clock_getres_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp); /* struct timespec50 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_timer_create */
+	case 235: {
+		struct sys_timer_create_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, evp); /* struct sigevent * */
+		uarg[2] = (intptr_t) SCARG(p, timerid); /* timer_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_timer_delete */
+	case 236: {
+		struct sys_timer_delete_args *p = params;
+		iarg[0] = SCARG(p, timerid); /* timer_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_timer_settime */
+	case 237: {
+		struct compat_50_sys_timer_settime_args *p = params;
+		iarg[0] = SCARG(p, timerid); /* timer_t */
+		iarg[1] = SCARG(p, flags); /* int */
+		uarg[2] = (intptr_t) SCARG(p, value); /* const struct itimerspec50 * */
+		uarg[3] = (intptr_t) SCARG(p, ovalue); /* struct itimerspec50 * */
+		*n_args = 4;
+		break;
+	}
+	/* sys_timer_gettime */
+	case 238: {
+		struct compat_50_sys_timer_gettime_args *p = params;
+		iarg[0] = SCARG(p, timerid); /* timer_t */
+		uarg[1] = (intptr_t) SCARG(p, value); /* struct itimerspec50 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_timer_getoverrun */
+	case 239: {
+		struct sys_timer_getoverrun_args *p = params;
+		iarg[0] = SCARG(p, timerid); /* timer_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_nanosleep */
+	case 240: {
+		struct compat_50_sys_nanosleep_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, rqtp); /* const struct timespec50 * */
+		uarg[1] = (intptr_t) SCARG(p, rmtp); /* struct timespec50 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_fdatasync */
+	case 241: {
+		struct sys_fdatasync_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_mlockall */
+	case 242: {
+		struct sys_mlockall_args *p = params;
+		iarg[0] = SCARG(p, flags); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_munlockall */
+	case 243: {
+		*n_args = 0;
+		break;
+	}
+	/* sys___sigtimedwait */
+	case 244: {
+		struct compat_50_sys___sigtimedwait_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set); /* const sigset_t * */
+		uarg[1] = (intptr_t) SCARG(p, info); /* siginfo_t * */
+		uarg[2] = (intptr_t) SCARG(p, timeout); /* struct timespec50 * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_sigqueueinfo */
+	case 245: {
+		struct sys_sigqueueinfo_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = (intptr_t) SCARG(p, info); /* const siginfo_t * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_modctl */
+	case 246: {
+		struct sys_modctl_args *p = params;
+		iarg[0] = SCARG(p, cmd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, arg); /* void * */
+		*n_args = 2;
+		break;
+	}
+	/* sys__ksem_init */
+	case 247: {
+		struct sys__ksem_init_args *p = params;
+		uarg[0] = SCARG(p, value); /* unsigned int */
+		uarg[1] = (intptr_t) SCARG(p, idp); /* intptr_t * */
+		*n_args = 2;
+		break;
+	}
+	/* sys__ksem_open */
+	case 248: {
+		struct sys__ksem_open_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, name); /* const char * */
+		iarg[1] = SCARG(p, oflag); /* int */
+		iarg[2] = SCARG(p, mode); /* mode_t */
+		uarg[3] = SCARG(p, value); /* unsigned int */
+		uarg[4] = (intptr_t) SCARG(p, idp); /* intptr_t * */
+		*n_args = 5;
+		break;
+	}
+	/* sys__ksem_unlink */
+	case 249: {
+		struct sys__ksem_unlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, name); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys__ksem_close */
+	case 250: {
+		struct sys__ksem_close_args *p = params;
+		iarg[0] = SCARG(p, id); /* intptr_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys__ksem_post */
+	case 251: {
+		struct sys__ksem_post_args *p = params;
+		iarg[0] = SCARG(p, id); /* intptr_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys__ksem_wait */
+	case 252: {
+		struct sys__ksem_wait_args *p = params;
+		iarg[0] = SCARG(p, id); /* intptr_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys__ksem_trywait */
+	case 253: {
+		struct sys__ksem_trywait_args *p = params;
+		iarg[0] = SCARG(p, id); /* intptr_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys__ksem_getvalue */
+	case 254: {
+		struct sys__ksem_getvalue_args *p = params;
+		iarg[0] = SCARG(p, id); /* intptr_t */
+		uarg[1] = (intptr_t) SCARG(p, value); /* unsigned int * */
+		*n_args = 2;
+		break;
+	}
+	/* sys__ksem_destroy */
+	case 255: {
+		struct sys__ksem_destroy_args *p = params;
+		iarg[0] = SCARG(p, id); /* intptr_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys__ksem_timedwait */
+	case 256: {
+		struct sys__ksem_timedwait_args *p = params;
+		iarg[0] = SCARG(p, id); /* intptr_t */
+		uarg[1] = (intptr_t) SCARG(p, abstime); /* const struct timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_mq_open */
+	case 257: {
+		struct sys_mq_open_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, name); /* const char * */
+		iarg[1] = SCARG(p, oflag); /* int */
+		iarg[2] = SCARG(p, mode); /* mode_t */
+		uarg[3] = (intptr_t) SCARG(p, attr); /* struct mq_attr * */
+		*n_args = 4;
+		break;
+	}
+	/* sys_mq_close */
+	case 258: {
+		struct sys_mq_close_args *p = params;
+		iarg[0] = SCARG(p, mqdes); /* mqd_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_mq_unlink */
+	case 259: {
+		struct sys_mq_unlink_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, name); /* const char * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_mq_getattr */
+	case 260: {
+		struct sys_mq_getattr_args *p = params;
+		iarg[0] = SCARG(p, mqdes); /* mqd_t */
+		uarg[1] = (intptr_t) SCARG(p, mqstat); /* struct mq_attr * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_mq_setattr */
+	case 261: {
+		struct sys_mq_setattr_args *p = params;
+		iarg[0] = SCARG(p, mqdes); /* mqd_t */
+		uarg[1] = (intptr_t) SCARG(p, mqstat); /* const struct mq_attr * */
+		uarg[2] = (intptr_t) SCARG(p, omqstat); /* struct mq_attr * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_mq_notify */
+	case 262: {
+		struct sys_mq_notify_args *p = params;
+		iarg[0] = SCARG(p, mqdes); /* mqd_t */
+		uarg[1] = (intptr_t) SCARG(p, notification); /* const struct sigevent * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_mq_send */
+	case 263: {
+		struct sys_mq_send_args *p = params;
+		iarg[0] = SCARG(p, mqdes); /* mqd_t */
+		uarg[1] = (intptr_t) SCARG(p, msg_ptr); /* const char * */
+		uarg[2] = SCARG(p, msg_len); /* size_t */
+		uarg[3] = SCARG(p, msg_prio); /* unsigned */
+		*n_args = 4;
+		break;
+	}
+	/* sys_mq_receive */
+	case 264: {
+		struct sys_mq_receive_args *p = params;
+		iarg[0] = SCARG(p, mqdes); /* mqd_t */
+		uarg[1] = (intptr_t) SCARG(p, msg_ptr); /* char * */
+		uarg[2] = SCARG(p, msg_len); /* size_t */
+		uarg[3] = (intptr_t) SCARG(p, msg_prio); /* unsigned * */
+		*n_args = 4;
+		break;
+	}
+	/* sys_mq_timedsend */
+	case 265: {
+		struct compat_50_sys_mq_timedsend_args *p = params;
+		iarg[0] = SCARG(p, mqdes); /* mqd_t */
+		uarg[1] = (intptr_t) SCARG(p, msg_ptr); /* const char * */
+		uarg[2] = SCARG(p, msg_len); /* size_t */
+		uarg[3] = SCARG(p, msg_prio); /* unsigned */
+		uarg[4] = (intptr_t) SCARG(p, abs_timeout); /* const struct timespec50 * */
+		*n_args = 5;
+		break;
+	}
+	/* sys_mq_timedreceive */
+	case 266: {
+		struct compat_50_sys_mq_timedreceive_args *p = params;
+		iarg[0] = SCARG(p, mqdes); /* mqd_t */
+		uarg[1] = (intptr_t) SCARG(p, msg_ptr); /* char * */
+		uarg[2] = SCARG(p, msg_len); /* size_t */
+		uarg[3] = (intptr_t) SCARG(p, msg_prio); /* unsigned * */
+		uarg[4] = (intptr_t) SCARG(p, abs_timeout); /* const struct timespec50 * */
+		*n_args = 5;
+		break;
+	}
+	/* sys___posix_rename */
+	case 270: {
+		struct sys___posix_rename_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, from); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, to); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_swapctl */
+	case 271: {
+		struct sys_swapctl_args *p = params;
+		iarg[0] = SCARG(p, cmd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, arg); /* void * */
+		iarg[2] = SCARG(p, misc); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getdents */
+	case 272: {
+		struct compat_30_sys_getdents_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* char * */
+		uarg[2] = SCARG(p, count); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_minherit */
+	case 273: {
+		struct sys_minherit_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		iarg[2] = SCARG(p, inherit); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_lchmod */
+	case 274: {
+		struct sys_lchmod_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* mode_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_lchown */
+	case 275: {
+		struct sys_lchown_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_lutimes */
+	case 276: {
+		struct compat_50_sys_lutimes_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, tptr); /* const struct timeval50 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___msync13 */
+	case 277: {
+		struct sys___msync13_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys___stat13 */
+	case 278: {
+		struct compat_30_sys___stat13_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, ub); /* struct stat13 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___fstat13 */
+	case 279: {
+		struct compat_30_sys___fstat13_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sb); /* struct stat13 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___lstat13 */
+	case 280: {
+		struct compat_30_sys___lstat13_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, ub); /* struct stat13 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___sigaltstack14 */
+	case 281: {
+		struct sys___sigaltstack14_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, nss); /* const struct sigaltstack * */
+		uarg[1] = (intptr_t) SCARG(p, oss); /* struct sigaltstack * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___vfork14 */
+	case 282: {
+		*n_args = 0;
+		break;
+	}
+	/* sys___posix_chown */
+	case 283: {
+		struct sys___posix_chown_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys___posix_fchown */
+	case 284: {
+		struct sys___posix_fchown_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys___posix_lchown */
+	case 285: {
+		struct sys___posix_lchown_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = SCARG(p, uid); /* uid_t */
+		iarg[2] = SCARG(p, gid); /* gid_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getsid */
+	case 286: {
+		struct sys_getsid_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys___clone */
+	case 287: {
+		struct sys___clone_args *p = params;
+		iarg[0] = SCARG(p, flags); /* int */
+		uarg[1] = (intptr_t) SCARG(p, stack); /* void * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_fktrace */
+	case 288: {
+		struct sys_fktrace_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, ops); /* int */
+		iarg[2] = SCARG(p, facs); /* int */
+		iarg[3] = SCARG(p, pid); /* pid_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_preadv */
+	case 289: {
+		struct sys_preadv_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, iovp); /* const struct iovec * */
+		iarg[2] = SCARG(p, iovcnt); /* int */
+		iarg[3] = SCARG(p, PAD); /* int */
+		iarg[4] = SCARG(p, offset); /* off_t */
+		*n_args = 5;
+		break;
+	}
+	/* sys_pwritev */
+	case 290: {
+		struct sys_pwritev_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, iovp); /* const struct iovec * */
+		iarg[2] = SCARG(p, iovcnt); /* int */
+		iarg[3] = SCARG(p, PAD); /* int */
+		iarg[4] = SCARG(p, offset); /* off_t */
+		*n_args = 5;
+		break;
+	}
+	/* sys___sigaction14 */
+	case 291: {
+		struct compat_16_sys___sigaction14_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		uarg[1] = (intptr_t) SCARG(p, nsa); /* const struct sigaction * */
+		uarg[2] = (intptr_t) SCARG(p, osa); /* struct sigaction * */
+		*n_args = 3;
+		break;
+	}
+	/* sys___sigpending14 */
+	case 292: {
+		struct sys___sigpending14_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set); /* sigset_t * */
+		*n_args = 1;
+		break;
+	}
+	/* sys___sigprocmask14 */
+	case 293: {
+		struct sys___sigprocmask14_args *p = params;
+		iarg[0] = SCARG(p, how); /* int */
+		uarg[1] = (intptr_t) SCARG(p, set); /* const sigset_t * */
+		uarg[2] = (intptr_t) SCARG(p, oset); /* sigset_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys___sigsuspend14 */
+	case 294: {
+		struct sys___sigsuspend14_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set); /* const sigset_t * */
+		*n_args = 1;
+		break;
+	}
+	/* sys___sigreturn14 */
+	case 295: {
+		struct compat_16_sys___sigreturn14_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, sigcntxp); /* struct sigcontext * */
+		*n_args = 1;
+		break;
+	}
+	/* sys___getcwd */
+	case 296: {
+		struct sys___getcwd_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, bufp); /* char * */
+		uarg[1] = SCARG(p, length); /* size_t */
+		*n_args = 2;
+		break;
+	}
+	/* sys_fchroot */
+	case 297: {
+		struct sys_fchroot_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_fhopen */
+	case 298: {
+		struct compat_30_sys_fhopen_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp); /* const struct compat_30_fhandle * */
+		iarg[1] = SCARG(p, flags); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_fhstat */
+	case 299: {
+		struct compat_30_sys_fhstat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp); /* const struct compat_30_fhandle * */
+		uarg[1] = (intptr_t) SCARG(p, sb); /* struct stat13 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_fhstatfs */
+	case 300: {
+		struct compat_20_sys_fhstatfs_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp); /* const struct compat_30_fhandle * */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* struct statfs12 * */
+		*n_args = 2;
+		break;
+	}
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* sys_____semctl13 */
+	case 301: {
+		struct compat_50_sys_____semctl13_args *p = params;
+		iarg[0] = SCARG(p, semid); /* int */
+		iarg[1] = SCARG(p, semnum); /* int */
+		iarg[2] = SCARG(p, cmd); /* int */
+		uarg[3] = (intptr_t) SCARG(p, arg); /* union __semun * */
+		*n_args = 4;
+		break;
+	}
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* sys___msgctl13 */
+	case 302: {
+		struct compat_50_sys___msgctl13_args *p = params;
+		iarg[0] = SCARG(p, msqid); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, buf); /* struct msqid_ds * */
+		*n_args = 3;
+		break;
+	}
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* sys___shmctl13 */
+	case 303: {
+		struct compat_50_sys___shmctl13_args *p = params;
+		iarg[0] = SCARG(p, shmid); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, buf); /* struct shmid_ds13 * */
+		*n_args = 3;
+		break;
+	}
+#else
+#endif
+	/* sys_lchflags */
+	case 304: {
+		struct sys_lchflags_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = SCARG(p, flags); /* u_long */
+		*n_args = 2;
+		break;
+	}
+	/* sys_issetugid */
+	case 305: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_utrace */
+	case 306: {
+		struct sys_utrace_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, label); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[2] = SCARG(p, len); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_getcontext */
+	case 307: {
+		struct sys_getcontext_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ucp); /* struct __ucontext * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_setcontext */
+	case 308: {
+		struct sys_setcontext_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ucp); /* const struct __ucontext * */
+		*n_args = 1;
+		break;
+	}
+	/* sys__lwp_create */
+	case 309: {
+		struct sys__lwp_create_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ucp); /* const struct __ucontext * */
+		uarg[1] = SCARG(p, flags); /* u_long */
+		uarg[2] = (intptr_t) SCARG(p, new_lwp); /* lwpid_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys__lwp_exit */
+	case 310: {
+		*n_args = 0;
+		break;
+	}
+	/* sys__lwp_self */
+	case 311: {
+		*n_args = 0;
+		break;
+	}
+	/* sys__lwp_wait */
+	case 312: {
+		struct sys__lwp_wait_args *p = params;
+		iarg[0] = SCARG(p, wait_for); /* lwpid_t */
+		uarg[1] = (intptr_t) SCARG(p, departed); /* lwpid_t * */
+		*n_args = 2;
+		break;
+	}
+	/* sys__lwp_suspend */
+	case 313: {
+		struct sys__lwp_suspend_args *p = params;
+		iarg[0] = SCARG(p, target); /* lwpid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys__lwp_continue */
+	case 314: {
+		struct sys__lwp_continue_args *p = params;
+		iarg[0] = SCARG(p, target); /* lwpid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys__lwp_wakeup */
+	case 315: {
+		struct sys__lwp_wakeup_args *p = params;
+		iarg[0] = SCARG(p, target); /* lwpid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys__lwp_getprivate */
+	case 316: {
+		*n_args = 0;
+		break;
+	}
+	/* sys__lwp_setprivate */
+	case 317: {
+		struct sys__lwp_setprivate_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ptr); /* void * */
+		*n_args = 1;
+		break;
+	}
+	/* sys__lwp_kill */
+	case 318: {
+		struct sys__lwp_kill_args *p = params;
+		iarg[0] = SCARG(p, target); /* lwpid_t */
+		iarg[1] = SCARG(p, signo); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys__lwp_detach */
+	case 319: {
+		struct sys__lwp_detach_args *p = params;
+		iarg[0] = SCARG(p, target); /* lwpid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys__lwp_park */
+	case 320: {
+		struct compat_50_sys__lwp_park_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ts); /* const struct timespec50 * */
+		iarg[1] = SCARG(p, unpark); /* lwpid_t */
+		uarg[2] = (intptr_t) SCARG(p, hint); /* const void * */
+		uarg[3] = (intptr_t) SCARG(p, unparkhint); /* const void * */
+		*n_args = 4;
+		break;
+	}
+	/* sys__lwp_unpark */
+	case 321: {
+		struct sys__lwp_unpark_args *p = params;
+		iarg[0] = SCARG(p, target); /* lwpid_t */
+		uarg[1] = (intptr_t) SCARG(p, hint); /* const void * */
+		*n_args = 2;
+		break;
+	}
+	/* sys__lwp_unpark_all */
+	case 322: {
+		struct sys__lwp_unpark_all_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, targets); /* const lwpid_t * */
+		uarg[1] = SCARG(p, ntargets); /* size_t */
+		uarg[2] = (intptr_t) SCARG(p, hint); /* const void * */
+		*n_args = 3;
+		break;
+	}
+	/* sys__lwp_setname */
+	case 323: {
+		struct sys__lwp_setname_args *p = params;
+		iarg[0] = SCARG(p, target); /* lwpid_t */
+		uarg[1] = (intptr_t) SCARG(p, name); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* sys__lwp_getname */
+	case 324: {
+		struct sys__lwp_getname_args *p = params;
+		iarg[0] = SCARG(p, target); /* lwpid_t */
+		uarg[1] = (intptr_t) SCARG(p, name); /* char * */
+		uarg[2] = SCARG(p, len); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys__lwp_ctl */
+	case 325: {
+		struct sys__lwp_ctl_args *p = params;
+		iarg[0] = SCARG(p, features); /* int */
+		uarg[1] = (intptr_t) SCARG(p, address); /* struct lwpctl ** */
+		*n_args = 2;
+		break;
+	}
+	/* sys_sa_register */
+	case 330: {
+		struct compat_60_sys_sa_register_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, newv); /* void * */
+		uarg[1] = (intptr_t) SCARG(p, oldv); /* void ** */
+		iarg[2] = SCARG(p, flags); /* int */
+		iarg[3] = SCARG(p, stackinfo_offset); /* ssize_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_sa_stacks */
+	case 331: {
+		struct compat_60_sys_sa_stacks_args *p = params;
+		iarg[0] = SCARG(p, num); /* int */
+		uarg[1] = (intptr_t) SCARG(p, stacks); /* stack_t * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_sa_enable */
+	case 332: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_sa_setconcurrency */
+	case 333: {
+		struct compat_60_sys_sa_setconcurrency_args *p = params;
+		iarg[0] = SCARG(p, concurrency); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_sa_yield */
+	case 334: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_sa_preempt */
+	case 335: {
+		struct compat_60_sys_sa_preempt_args *p = params;
+		iarg[0] = SCARG(p, sa_id); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys___sigaction_sigtramp */
+	case 340: {
+		struct sys___sigaction_sigtramp_args *p = params;
+		iarg[0] = SCARG(p, signum); /* int */
+		uarg[1] = (intptr_t) SCARG(p, nsa); /* const struct sigaction * */
+		uarg[2] = (intptr_t) SCARG(p, osa); /* struct sigaction * */
+		uarg[3] = (intptr_t) SCARG(p, tramp); /* const void * */
+		iarg[4] = SCARG(p, vers); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* sys_pmc_get_info */
+	case 341: {
+		struct sys_pmc_get_info_args *p = params;
+		iarg[0] = SCARG(p, ctr); /* int */
+		iarg[1] = SCARG(p, op); /* int */
+		uarg[2] = (intptr_t) SCARG(p, args); /* void * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_pmc_control */
+	case 342: {
+		struct sys_pmc_control_args *p = params;
+		iarg[0] = SCARG(p, ctr); /* int */
+		iarg[1] = SCARG(p, op); /* int */
+		uarg[2] = (intptr_t) SCARG(p, args); /* void * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_rasctl */
+	case 343: {
+		struct sys_rasctl_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, addr); /* void * */
+		uarg[1] = SCARG(p, len); /* size_t */
+		iarg[2] = SCARG(p, op); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_kqueue */
+	case 344: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_kevent */
+	case 345: {
+		struct compat_50_sys_kevent_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, changelist); /* const struct kevent * */
+		uarg[2] = SCARG(p, nchanges); /* size_t */
+		uarg[3] = (intptr_t) SCARG(p, eventlist); /* struct kevent * */
+		uarg[4] = SCARG(p, nevents); /* size_t */
+		uarg[5] = (intptr_t) SCARG(p, timeout); /* const struct timespec50 * */
+		*n_args = 6;
+		break;
+	}
+	/* sys__sched_setparam */
+	case 346: {
+		struct sys__sched_setparam_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		iarg[1] = SCARG(p, lid); /* lwpid_t */
+		iarg[2] = SCARG(p, policy); /* int */
+		uarg[3] = (intptr_t) SCARG(p, params); /* const struct sched_param * */
+		*n_args = 4;
+		break;
+	}
+	/* sys__sched_getparam */
+	case 347: {
+		struct sys__sched_getparam_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		iarg[1] = SCARG(p, lid); /* lwpid_t */
+		uarg[2] = (intptr_t) SCARG(p, policy); /* int * */
+		uarg[3] = (intptr_t) SCARG(p, params); /* struct sched_param * */
+		*n_args = 4;
+		break;
+	}
+	/* sys__sched_setaffinity */
+	case 348: {
+		struct sys__sched_setaffinity_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		iarg[1] = SCARG(p, lid); /* lwpid_t */
+		uarg[2] = SCARG(p, size); /* size_t */
+		uarg[3] = (intptr_t) SCARG(p, cpuset); /* const cpuset_t * */
+		*n_args = 4;
+		break;
+	}
+	/* sys__sched_getaffinity */
+	case 349: {
+		struct sys__sched_getaffinity_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		iarg[1] = SCARG(p, lid); /* lwpid_t */
+		uarg[2] = SCARG(p, size); /* size_t */
+		uarg[3] = (intptr_t) SCARG(p, cpuset); /* cpuset_t * */
+		*n_args = 4;
+		break;
+	}
+	/* sys_sched_yield */
+	case 350: {
+		*n_args = 0;
+		break;
+	}
+	/* sys_fsync_range */
+	case 354: {
+		struct sys_fsync_range_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, flags); /* int */
+		iarg[2] = SCARG(p, start); /* off_t */
+		iarg[3] = SCARG(p, length); /* off_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_uuidgen */
+	case 355: {
+		struct sys_uuidgen_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, store); /* struct uuid * */
+		iarg[1] = SCARG(p, count); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_getvfsstat */
+	case 356: {
+		struct sys_getvfsstat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, buf); /* struct statvfs * */
+		uarg[1] = SCARG(p, bufsize); /* size_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_statvfs1 */
+	case 357: {
+		struct sys_statvfs1_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* struct statvfs * */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_fstatvfs1 */
+	case 358: {
+		struct sys_fstatvfs1_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* struct statvfs * */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_fhstatvfs1 */
+	case 359: {
+		struct compat_30_sys_fhstatvfs1_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp); /* const struct compat_30_fhandle * */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* struct statvfs * */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_extattrctl */
+	case 360: {
+		struct sys_extattrctl_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, filename); /* const char * */
+		iarg[3] = SCARG(p, attrnamespace); /* int */
+		uarg[4] = (intptr_t) SCARG(p, attrname); /* const char * */
+		*n_args = 5;
+		break;
+	}
+	/* sys_extattr_set_file */
+	case 361: {
+		struct sys_extattr_set_file_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname); /* const char * */
+		uarg[3] = (intptr_t) SCARG(p, data); /* const void * */
+		uarg[4] = SCARG(p, nbytes); /* size_t */
+		*n_args = 5;
+		break;
+	}
+	/* sys_extattr_get_file */
+	case 362: {
+		struct sys_extattr_get_file_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname); /* const char * */
+		uarg[3] = (intptr_t) SCARG(p, data); /* void * */
+		uarg[4] = SCARG(p, nbytes); /* size_t */
+		*n_args = 5;
+		break;
+	}
+	/* sys_extattr_delete_file */
+	case 363: {
+		struct sys_extattr_delete_file_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname); /* const char * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_extattr_set_fd */
+	case 364: {
+		struct sys_extattr_set_fd_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname); /* const char * */
+		uarg[3] = (intptr_t) SCARG(p, data); /* const void * */
+		uarg[4] = SCARG(p, nbytes); /* size_t */
+		*n_args = 5;
+		break;
+	}
+	/* sys_extattr_get_fd */
+	case 365: {
+		struct sys_extattr_get_fd_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname); /* const char * */
+		uarg[3] = (intptr_t) SCARG(p, data); /* void * */
+		uarg[4] = SCARG(p, nbytes); /* size_t */
+		*n_args = 5;
+		break;
+	}
+	/* sys_extattr_delete_fd */
+	case 366: {
+		struct sys_extattr_delete_fd_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname); /* const char * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_extattr_set_link */
+	case 367: {
+		struct sys_extattr_set_link_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname); /* const char * */
+		uarg[3] = (intptr_t) SCARG(p, data); /* const void * */
+		uarg[4] = SCARG(p, nbytes); /* size_t */
+		*n_args = 5;
+		break;
+	}
+	/* sys_extattr_get_link */
+	case 368: {
+		struct sys_extattr_get_link_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname); /* const char * */
+		uarg[3] = (intptr_t) SCARG(p, data); /* void * */
+		uarg[4] = SCARG(p, nbytes); /* size_t */
+		*n_args = 5;
+		break;
+	}
+	/* sys_extattr_delete_link */
+	case 369: {
+		struct sys_extattr_delete_link_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, attrname); /* const char * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_extattr_list_fd */
+	case 370: {
+		struct sys_extattr_list_fd_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, data); /* void * */
+		uarg[3] = SCARG(p, nbytes); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_extattr_list_file */
+	case 371: {
+		struct sys_extattr_list_file_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, data); /* void * */
+		uarg[3] = SCARG(p, nbytes); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_extattr_list_link */
+	case 372: {
+		struct sys_extattr_list_link_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, attrnamespace); /* int */
+		uarg[2] = (intptr_t) SCARG(p, data); /* void * */
+		uarg[3] = SCARG(p, nbytes); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_pselect */
+	case 373: {
+		struct compat_50_sys_pselect_args *p = params;
+		iarg[0] = SCARG(p, nd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, in); /* fd_set * */
+		uarg[2] = (intptr_t) SCARG(p, ou); /* fd_set * */
+		uarg[3] = (intptr_t) SCARG(p, ex); /* fd_set * */
+		uarg[4] = (intptr_t) SCARG(p, ts); /* const struct timespec50 * */
+		uarg[5] = (intptr_t) SCARG(p, mask); /* const sigset_t * */
+		*n_args = 6;
+		break;
+	}
+	/* sys_pollts */
+	case 374: {
+		struct compat_50_sys_pollts_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fds); /* struct pollfd * */
+		uarg[1] = SCARG(p, nfds); /* u_int */
+		uarg[2] = (intptr_t) SCARG(p, ts); /* const struct timespec50 * */
+		uarg[3] = (intptr_t) SCARG(p, mask); /* const sigset_t * */
+		*n_args = 4;
+		break;
+	}
+	/* sys_setxattr */
+	case 375: {
+		struct sys_setxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* const void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* sys_lsetxattr */
+	case 376: {
+		struct sys_lsetxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* const void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* sys_fsetxattr */
+	case 377: {
+		struct sys_fsetxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* const void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* sys_getxattr */
+	case 378: {
+		struct sys_getxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_lgetxattr */
+	case 379: {
+		struct sys_lgetxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_fgetxattr */
+	case 380: {
+		struct sys_fgetxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, value); /* void * */
+		uarg[3] = SCARG(p, size); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_listxattr */
+	case 381: {
+		struct sys_listxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, list); /* char * */
+		uarg[2] = SCARG(p, size); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_llistxattr */
+	case 382: {
+		struct sys_llistxattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, list); /* char * */
+		uarg[2] = SCARG(p, size); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_flistxattr */
+	case 383: {
+		struct sys_flistxattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, list); /* char * */
+		uarg[2] = SCARG(p, size); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_removexattr */
+	case 384: {
+		struct sys_removexattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_lremovexattr */
+	case 385: {
+		struct sys_lremovexattr_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, name); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_fremovexattr */
+	case 386: {
+		struct sys_fremovexattr_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* const char * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___stat30 */
+	case 387: {
+		struct compat_50_sys___stat30_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, ub); /* struct stat30 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___fstat30 */
+	case 388: {
+		struct compat_50_sys___fstat30_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sb); /* struct stat30 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___lstat30 */
+	case 389: {
+		struct compat_50_sys___lstat30_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, ub); /* struct stat30 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___getdents30 */
+	case 390: {
+		struct sys___getdents30_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, buf); /* char * */
+		uarg[2] = SCARG(p, count); /* size_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys___fhstat30 */
+	case 392: {
+		struct compat_30_sys___fhstat30_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp); /* const struct compat_30_fhandle * */
+		uarg[1] = (intptr_t) SCARG(p, sb); /* struct stat30 * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___ntp_gettime30 */
+	case 393: {
+		struct compat_50_sys___ntp_gettime30_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ntvp); /* struct ntptimeval50 * */
+		*n_args = 1;
+		break;
+	}
+	/* sys___socket30 */
+	case 394: {
+		struct sys___socket30_args *p = params;
+		iarg[0] = SCARG(p, domain); /* int */
+		iarg[1] = SCARG(p, type); /* int */
+		iarg[2] = SCARG(p, protocol); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys___getfh30 */
+	case 395: {
+		struct sys___getfh30_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fname); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, fhp); /* void * */
+		uarg[2] = (intptr_t) SCARG(p, fh_size); /* size_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys___fhopen40 */
+	case 396: {
+		struct sys___fhopen40_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp); /* const void * */
+		uarg[1] = SCARG(p, fh_size); /* size_t */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys___fhstatvfs140 */
+	case 397: {
+		struct sys___fhstatvfs140_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp); /* const void * */
+		uarg[1] = SCARG(p, fh_size); /* size_t */
+		uarg[2] = (intptr_t) SCARG(p, buf); /* struct statvfs * */
+		iarg[3] = SCARG(p, flags); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* sys___fhstat40 */
+	case 398: {
+		struct compat_50_sys___fhstat40_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp); /* const void * */
+		uarg[1] = SCARG(p, fh_size); /* size_t */
+		uarg[2] = (intptr_t) SCARG(p, sb); /* struct stat30 * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_aio_cancel */
+	case 399: {
+		struct sys_aio_cancel_args *p = params;
+		iarg[0] = SCARG(p, fildes); /* int */
+		uarg[1] = (intptr_t) SCARG(p, aiocbp); /* struct aiocb * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_aio_error */
+	case 400: {
+		struct sys_aio_error_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, aiocbp); /* const struct aiocb * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_aio_fsync */
+	case 401: {
+		struct sys_aio_fsync_args *p = params;
+		iarg[0] = SCARG(p, op); /* int */
+		uarg[1] = (intptr_t) SCARG(p, aiocbp); /* struct aiocb * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_aio_read */
+	case 402: {
+		struct sys_aio_read_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, aiocbp); /* struct aiocb * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_aio_return */
+	case 403: {
+		struct sys_aio_return_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, aiocbp); /* struct aiocb * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_aio_suspend */
+	case 404: {
+		struct compat_50_sys_aio_suspend_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, list); /* const struct aiocb *const * */
+		iarg[1] = SCARG(p, nent); /* int */
+		uarg[2] = (intptr_t) SCARG(p, timeout); /* const struct timespec50 * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_aio_write */
+	case 405: {
+		struct sys_aio_write_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, aiocbp); /* struct aiocb * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_lio_listio */
+	case 406: {
+		struct sys_lio_listio_args *p = params;
+		iarg[0] = SCARG(p, mode); /* int */
+		uarg[1] = (intptr_t) SCARG(p, list); /* struct aiocb *const * */
+		iarg[2] = SCARG(p, nent); /* int */
+		uarg[3] = (intptr_t) SCARG(p, sig); /* struct sigevent * */
+		*n_args = 4;
+		break;
+	}
+	/* sys___mount50 */
+	case 410: {
+		struct sys___mount50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, type); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, flags); /* int */
+		uarg[3] = (intptr_t) SCARG(p, data); /* void * */
+		uarg[4] = SCARG(p, data_len); /* size_t */
+		*n_args = 5;
+		break;
+	}
+	/* sys_mremap */
+	case 411: {
+		struct sys_mremap_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, old_address); /* void * */
+		uarg[1] = SCARG(p, old_size); /* size_t */
+		uarg[2] = (intptr_t) SCARG(p, new_address); /* void * */
+		uarg[3] = SCARG(p, new_size); /* size_t */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* sys_pset_create */
+	case 412: {
+		struct sys_pset_create_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, psid); /* psetid_t * */
+		*n_args = 1;
+		break;
+	}
+	/* sys_pset_destroy */
+	case 413: {
+		struct sys_pset_destroy_args *p = params;
+		iarg[0] = SCARG(p, psid); /* psetid_t */
+		*n_args = 1;
+		break;
+	}
+	/* sys_pset_assign */
+	case 414: {
+		struct sys_pset_assign_args *p = params;
+		iarg[0] = SCARG(p, psid); /* psetid_t */
+		iarg[1] = SCARG(p, cpuid); /* cpuid_t */
+		uarg[2] = (intptr_t) SCARG(p, opsid); /* psetid_t * */
+		*n_args = 3;
+		break;
+	}
+	/* sys__pset_bind */
+	case 415: {
+		struct sys__pset_bind_args *p = params;
+		iarg[0] = SCARG(p, idtype); /* idtype_t */
+		iarg[1] = SCARG(p, first_id); /* id_t */
+		iarg[2] = SCARG(p, second_id); /* id_t */
+		iarg[3] = SCARG(p, psid); /* psetid_t */
+		uarg[4] = (intptr_t) SCARG(p, opsid); /* psetid_t * */
+		*n_args = 5;
+		break;
+	}
+	/* sys___posix_fadvise50 */
+	case 416: {
+		struct sys___posix_fadvise50_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, PAD); /* int */
+		iarg[2] = SCARG(p, offset); /* off_t */
+		iarg[3] = SCARG(p, len); /* off_t */
+		iarg[4] = SCARG(p, advice); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* sys___select50 */
+	case 417: {
+		struct sys___select50_args *p = params;
+		iarg[0] = SCARG(p, nd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, in); /* fd_set * */
+		uarg[2] = (intptr_t) SCARG(p, ou); /* fd_set * */
+		uarg[3] = (intptr_t) SCARG(p, ex); /* fd_set * */
+		uarg[4] = (intptr_t) SCARG(p, tv); /* struct timeval * */
+		*n_args = 5;
+		break;
+	}
+	/* sys___gettimeofday50 */
+	case 418: {
+		struct sys___gettimeofday50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tp); /* struct timeval * */
+		uarg[1] = (intptr_t) SCARG(p, tzp); /* void * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___settimeofday50 */
+	case 419: {
+		struct sys___settimeofday50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, tv); /* const struct timeval * */
+		uarg[1] = (intptr_t) SCARG(p, tzp); /* const void * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___utimes50 */
+	case 420: {
+		struct sys___utimes50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, tptr); /* const struct timeval * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___adjtime50 */
+	case 421: {
+		struct sys___adjtime50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, delta); /* const struct timeval * */
+		uarg[1] = (intptr_t) SCARG(p, olddelta); /* struct timeval * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___lfs_segwait50 */
+	case 422: {
+		struct sys___lfs_segwait50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fsidp); /* fsid_t * */
+		uarg[1] = (intptr_t) SCARG(p, tv); /* struct timeval * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___futimes50 */
+	case 423: {
+		struct sys___futimes50_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, tptr); /* const struct timeval * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___lutimes50 */
+	case 424: {
+		struct sys___lutimes50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, tptr); /* const struct timeval * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___setitimer50 */
+	case 425: {
+		struct sys___setitimer50_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, itv); /* const struct itimerval * */
+		uarg[2] = (intptr_t) SCARG(p, oitv); /* struct itimerval * */
+		*n_args = 3;
+		break;
+	}
+	/* sys___getitimer50 */
+	case 426: {
+		struct sys___getitimer50_args *p = params;
+		iarg[0] = SCARG(p, which); /* int */
+		uarg[1] = (intptr_t) SCARG(p, itv); /* struct itimerval * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___clock_gettime50 */
+	case 427: {
+		struct sys___clock_gettime50_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp); /* struct timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___clock_settime50 */
+	case 428: {
+		struct sys___clock_settime50_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp); /* const struct timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___clock_getres50 */
+	case 429: {
+		struct sys___clock_getres50_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* clockid_t */
+		uarg[1] = (intptr_t) SCARG(p, tp); /* struct timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___nanosleep50 */
+	case 430: {
+		struct sys___nanosleep50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, rqtp); /* const struct timespec * */
+		uarg[1] = (intptr_t) SCARG(p, rmtp); /* struct timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_____sigtimedwait50 */
+	case 431: {
+		struct sys_____sigtimedwait50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, set); /* const sigset_t * */
+		uarg[1] = (intptr_t) SCARG(p, info); /* siginfo_t * */
+		uarg[2] = (intptr_t) SCARG(p, timeout); /* struct timespec * */
+		*n_args = 3;
+		break;
+	}
+	/* sys___mq_timedsend50 */
+	case 432: {
+		struct sys___mq_timedsend50_args *p = params;
+		iarg[0] = SCARG(p, mqdes); /* mqd_t */
+		uarg[1] = (intptr_t) SCARG(p, msg_ptr); /* const char * */
+		uarg[2] = SCARG(p, msg_len); /* size_t */
+		uarg[3] = SCARG(p, msg_prio); /* unsigned */
+		uarg[4] = (intptr_t) SCARG(p, abs_timeout); /* const struct timespec * */
+		*n_args = 5;
+		break;
+	}
+	/* sys___mq_timedreceive50 */
+	case 433: {
+		struct sys___mq_timedreceive50_args *p = params;
+		iarg[0] = SCARG(p, mqdes); /* mqd_t */
+		uarg[1] = (intptr_t) SCARG(p, msg_ptr); /* char * */
+		uarg[2] = SCARG(p, msg_len); /* size_t */
+		uarg[3] = (intptr_t) SCARG(p, msg_prio); /* unsigned * */
+		uarg[4] = (intptr_t) SCARG(p, abs_timeout); /* const struct timespec * */
+		*n_args = 5;
+		break;
+	}
+	/* sys__lwp_park */
+	case 434: {
+		struct compat_60_sys__lwp_park_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ts); /* const struct timespec * */
+		iarg[1] = SCARG(p, unpark); /* lwpid_t */
+		uarg[2] = (intptr_t) SCARG(p, hint); /* const void * */
+		uarg[3] = (intptr_t) SCARG(p, unparkhint); /* const void * */
+		*n_args = 4;
+		break;
+	}
+	/* sys___kevent50 */
+	case 435: {
+		struct sys___kevent50_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, changelist); /* const struct kevent * */
+		uarg[2] = SCARG(p, nchanges); /* size_t */
+		uarg[3] = (intptr_t) SCARG(p, eventlist); /* struct kevent * */
+		uarg[4] = SCARG(p, nevents); /* size_t */
+		uarg[5] = (intptr_t) SCARG(p, timeout); /* const struct timespec * */
+		*n_args = 6;
+		break;
+	}
+	/* sys___pselect50 */
+	case 436: {
+		struct sys___pselect50_args *p = params;
+		iarg[0] = SCARG(p, nd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, in); /* fd_set * */
+		uarg[2] = (intptr_t) SCARG(p, ou); /* fd_set * */
+		uarg[3] = (intptr_t) SCARG(p, ex); /* fd_set * */
+		uarg[4] = (intptr_t) SCARG(p, ts); /* const struct timespec * */
+		uarg[5] = (intptr_t) SCARG(p, mask); /* const sigset_t * */
+		*n_args = 6;
+		break;
+	}
+	/* sys___pollts50 */
+	case 437: {
+		struct sys___pollts50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fds); /* struct pollfd * */
+		uarg[1] = SCARG(p, nfds); /* u_int */
+		uarg[2] = (intptr_t) SCARG(p, ts); /* const struct timespec * */
+		uarg[3] = (intptr_t) SCARG(p, mask); /* const sigset_t * */
+		*n_args = 4;
+		break;
+	}
+	/* sys___aio_suspend50 */
+	case 438: {
+		struct sys___aio_suspend50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, list); /* const struct aiocb *const * */
+		iarg[1] = SCARG(p, nent); /* int */
+		uarg[2] = (intptr_t) SCARG(p, timeout); /* const struct timespec * */
+		*n_args = 3;
+		break;
+	}
+	/* sys___stat50 */
+	case 439: {
+		struct sys___stat50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, ub); /* struct stat * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___fstat50 */
+	case 440: {
+		struct sys___fstat50_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, sb); /* struct stat * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___lstat50 */
+	case 441: {
+		struct sys___lstat50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, ub); /* struct stat * */
+		*n_args = 2;
+		break;
+	}
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* sys_____semctl50 */
+	case 442: {
+		struct sys_____semctl50_args *p = params;
+		iarg[0] = SCARG(p, semid); /* int */
+		iarg[1] = SCARG(p, semnum); /* int */
+		iarg[2] = SCARG(p, cmd); /* int */
+		uarg[3] = (intptr_t) SCARG(p, arg); /* union __semun * */
+		*n_args = 4;
+		break;
+	}
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* sys___shmctl50 */
+	case 443: {
+		struct sys___shmctl50_args *p = params;
+		iarg[0] = SCARG(p, shmid); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, buf); /* struct shmid_ds * */
+		*n_args = 3;
+		break;
+	}
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* sys___msgctl50 */
+	case 444: {
+		struct sys___msgctl50_args *p = params;
+		iarg[0] = SCARG(p, msqid); /* int */
+		iarg[1] = SCARG(p, cmd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, buf); /* struct msqid_ds * */
+		*n_args = 3;
+		break;
+	}
+#else
+#endif
+	/* sys___getrusage50 */
+	case 445: {
+		struct sys___getrusage50_args *p = params;
+		iarg[0] = SCARG(p, who); /* int */
+		uarg[1] = (intptr_t) SCARG(p, rusage); /* struct rusage * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___timer_settime50 */
+	case 446: {
+		struct sys___timer_settime50_args *p = params;
+		iarg[0] = SCARG(p, timerid); /* timer_t */
+		iarg[1] = SCARG(p, flags); /* int */
+		uarg[2] = (intptr_t) SCARG(p, value); /* const struct itimerspec * */
+		uarg[3] = (intptr_t) SCARG(p, ovalue); /* struct itimerspec * */
+		*n_args = 4;
+		break;
+	}
+	/* sys___timer_gettime50 */
+	case 447: {
+		struct sys___timer_gettime50_args *p = params;
+		iarg[0] = SCARG(p, timerid); /* timer_t */
+		uarg[1] = (intptr_t) SCARG(p, value); /* struct itimerspec * */
+		*n_args = 2;
+		break;
+	}
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* sys___ntp_gettime50 */
+	case 448: {
+		struct sys___ntp_gettime50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, ntvp); /* struct ntptimeval * */
+		*n_args = 1;
+		break;
+	}
+#else
+#endif
+	/* sys___wait450 */
+	case 449: {
+		struct sys___wait450_args *p = params;
+		iarg[0] = SCARG(p, pid); /* pid_t */
+		uarg[1] = (intptr_t) SCARG(p, status); /* int * */
+		iarg[2] = SCARG(p, options); /* int */
+		uarg[3] = (intptr_t) SCARG(p, rusage); /* struct rusage * */
+		*n_args = 4;
+		break;
+	}
+	/* sys___mknod50 */
+	case 450: {
+		struct sys___mknod50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[1] = SCARG(p, mode); /* mode_t */
+		iarg[2] = SCARG(p, dev); /* dev_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys___fhstat50 */
+	case 451: {
+		struct sys___fhstat50_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fhp); /* const void * */
+		uarg[1] = SCARG(p, fh_size); /* size_t */
+		uarg[2] = (intptr_t) SCARG(p, sb); /* struct stat * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_pipe2 */
+	case 453: {
+		struct sys_pipe2_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, fildes); /* int * */
+		iarg[1] = SCARG(p, flags); /* int */
+		*n_args = 2;
+		break;
+	}
+	/* sys_dup3 */
+	case 454: {
+		struct sys_dup3_args *p = params;
+		iarg[0] = SCARG(p, from); /* int */
+		iarg[1] = SCARG(p, to); /* int */
+		iarg[2] = SCARG(p, flags); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_kqueue1 */
+	case 455: {
+		struct sys_kqueue1_args *p = params;
+		iarg[0] = SCARG(p, flags); /* int */
+		*n_args = 1;
+		break;
+	}
+	/* sys_paccept */
+	case 456: {
+		struct sys_paccept_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name); /* struct sockaddr * */
+		uarg[2] = (intptr_t) SCARG(p, anamelen); /* socklen_t * */
+		uarg[3] = (intptr_t) SCARG(p, mask); /* const sigset_t * */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* sys_linkat */
+	case 457: {
+		struct sys_linkat_args *p = params;
+		iarg[0] = SCARG(p, fd1); /* int */
+		uarg[1] = (intptr_t) SCARG(p, name1); /* const char * */
+		iarg[2] = SCARG(p, fd2); /* int */
+		uarg[3] = (intptr_t) SCARG(p, name2); /* const char * */
+		iarg[4] = SCARG(p, flags); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* sys_renameat */
+	case 458: {
+		struct sys_renameat_args *p = params;
+		iarg[0] = SCARG(p, fromfd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, from); /* const char * */
+		iarg[2] = SCARG(p, tofd); /* int */
+		uarg[3] = (intptr_t) SCARG(p, to); /* const char * */
+		*n_args = 4;
+		break;
+	}
+	/* sys_mkfifoat */
+	case 459: {
+		struct sys_mkfifoat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, mode); /* mode_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_mknodat */
+	case 460: {
+		struct sys_mknodat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, mode); /* mode_t */
+		iarg[3] = SCARG(p, PAD); /* int */
+		iarg[4] = SCARG(p, dev); /* dev_t */
+		*n_args = 5;
+		break;
+	}
+	/* sys_mkdirat */
+	case 461: {
+		struct sys_mkdirat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, mode); /* mode_t */
+		*n_args = 3;
+		break;
+	}
+	/* sys_faccessat */
+	case 462: {
+		struct sys_faccessat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, amode); /* int */
+		iarg[3] = SCARG(p, flag); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* sys_fchmodat */
+	case 463: {
+		struct sys_fchmodat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, mode); /* mode_t */
+		iarg[3] = SCARG(p, flag); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* sys_fchownat */
+	case 464: {
+		struct sys_fchownat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = SCARG(p, owner); /* uid_t */
+		iarg[3] = SCARG(p, group); /* gid_t */
+		iarg[4] = SCARG(p, flag); /* int */
+		*n_args = 5;
+		break;
+	}
+	/* sys_fexecve */
+	case 465: {
+		struct sys_fexecve_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, argp); /* char *const * */
+		uarg[2] = (intptr_t) SCARG(p, envp); /* char *const * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_fstatat */
+	case 466: {
+		struct sys_fstatat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, buf); /* struct stat * */
+		iarg[3] = SCARG(p, flag); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* sys_utimensat */
+	case 467: {
+		struct sys_utimensat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, tptr); /* const struct timespec * */
+		iarg[3] = SCARG(p, flag); /* int */
+		*n_args = 4;
+		break;
+	}
+	/* sys_openat */
+	case 468: {
+		struct sys_openat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, oflags); /* int */
+		iarg[3] = SCARG(p, mode); /* mode_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_readlinkat */
+	case 469: {
+		struct sys_readlinkat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, buf); /* char * */
+		uarg[3] = SCARG(p, bufsize); /* size_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_symlinkat */
+	case 470: {
+		struct sys_symlinkat_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path1); /* const char * */
+		iarg[1] = SCARG(p, fd); /* int */
+		uarg[2] = (intptr_t) SCARG(p, path2); /* const char * */
+		*n_args = 3;
+		break;
+	}
+	/* sys_unlinkat */
+	case 471: {
+		struct sys_unlinkat_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		iarg[2] = SCARG(p, flag); /* int */
+		*n_args = 3;
+		break;
+	}
+	/* sys_futimens */
+	case 472: {
+		struct sys_futimens_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		uarg[1] = (intptr_t) SCARG(p, tptr); /* const struct timespec * */
+		*n_args = 2;
+		break;
+	}
+	/* sys___quotactl */
+	case 473: {
+		struct sys___quotactl_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[1] = (intptr_t) SCARG(p, args); /* struct quotactl_args * */
+		*n_args = 2;
+		break;
+	}
+	/* sys_posix_spawn */
+	case 474: {
+		struct sys_posix_spawn_args *p = params;
+		uarg[0] = (intptr_t) SCARG(p, pid); /* pid_t * */
+		uarg[1] = (intptr_t) SCARG(p, path); /* const char * */
+		uarg[2] = (intptr_t) SCARG(p, file_actions); /* const struct posix_spawn_file_actions * */
+		uarg[3] = (intptr_t) SCARG(p, attrp); /* const struct posix_spawnattr * */
+		uarg[4] = (intptr_t) SCARG(p, argv); /* char *const * */
+		uarg[5] = (intptr_t) SCARG(p, envp); /* char *const * */
+		*n_args = 6;
+		break;
+	}
+	/* sys_recvmmsg */
+	case 475: {
+		struct sys_recvmmsg_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, mmsg); /* struct mmsghdr * */
+		uarg[2] = SCARG(p, vlen); /* unsigned int */
+		uarg[3] = SCARG(p, flags); /* unsigned int */
+		uarg[4] = (intptr_t) SCARG(p, timeout); /* struct timespec * */
+		*n_args = 5;
+		break;
+	}
+	/* sys_sendmmsg */
+	case 476: {
+		struct sys_sendmmsg_args *p = params;
+		iarg[0] = SCARG(p, s); /* int */
+		uarg[1] = (intptr_t) SCARG(p, mmsg); /* struct mmsghdr * */
+		uarg[2] = SCARG(p, vlen); /* unsigned int */
+		uarg[3] = SCARG(p, flags); /* unsigned int */
+		*n_args = 4;
+		break;
+	}
+	/* sys_clock_nanosleep */
+	case 477: {
+		struct sys_clock_nanosleep_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* clockid_t */
+		iarg[1] = SCARG(p, flags); /* int */
+		uarg[2] = (intptr_t) SCARG(p, rqtp); /* const struct timespec * */
+		uarg[3] = (intptr_t) SCARG(p, rmtp); /* struct timespec * */
+		*n_args = 4;
+		break;
+	}
+	/* sys____lwp_park60 */
+	case 478: {
+		struct sys____lwp_park60_args *p = params;
+		iarg[0] = SCARG(p, clock_id); /* clockid_t */
+		iarg[1] = SCARG(p, flags); /* int */
+		uarg[2] = (intptr_t) SCARG(p, ts); /* const struct timespec * */
+		iarg[3] = SCARG(p, unpark); /* lwpid_t */
+		uarg[4] = (intptr_t) SCARG(p, hint); /* const void * */
+		uarg[5] = (intptr_t) SCARG(p, unparkhint); /* const void * */
+		*n_args = 6;
+		break;
+	}
+	/* sys_posix_fallocate */
+	case 479: {
+		struct sys_posix_fallocate_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, PAD); /* int */
+		iarg[2] = SCARG(p, pos); /* off_t */
+		iarg[3] = SCARG(p, len); /* off_t */
+		*n_args = 4;
+		break;
+	}
+	/* sys_fdiscard */
+	case 480: {
+		struct sys_fdiscard_args *p = params;
+		iarg[0] = SCARG(p, fd); /* int */
+		iarg[1] = SCARG(p, PAD); /* int */
+		iarg[2] = SCARG(p, pos); /* off_t */
+		iarg[3] = SCARG(p, len); /* off_t */
+		*n_args = 4;
+		break;
+	}
+	default:
+		*n_args = 0;
+		break;
+	};
+}
+static void
+systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
+{
+	const char *p = NULL;
+	switch (sysnum) {
+	/* sys_syscall */
+	case 0:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "register_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_exit */
+	case 1:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fork */
+	case 2:
+		break;
+	/* sys_read */
+	case 3:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_write */
+	case 4:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_open */
+	case 5:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_close */
+	case 6:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_wait4 */
+	case 7:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "int *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "struct rusage50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_creat */
+	case 8:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_link */
+	case 9:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_unlink */
+	case 10:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_chdir */
+	case 12:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fchdir */
+	case 13:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mknod */
+	case 14:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "mode_t";
+			break;
+		case 2:
+			p = "uint32_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_chmod */
+	case 15:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_chown */
+	case 16:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_obreak */
+	case 17:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getfsstat */
+	case 18:
+		switch(ndx) {
+		case 0:
+			p = "struct statfs12 *";
+			break;
+		case 1:
+			p = "long";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_lseek */
+	case 19:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "long";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpid_with_ppid */
+	case 20:
+		break;
+	/* sys_mount */
+	case 21:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_unmount */
+	case 22:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setuid */
+	case 23:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getuid_with_euid */
+	case 24:
+		break;
+	/* sys_geteuid */
+	case 25:
+		break;
+	/* sys_ptrace */
+	case 26:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "pid_t";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_recvmsg */
+	case 27:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct msghdr *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sendmsg */
+	case 28:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct msghdr *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_recvfrom */
+	case 29:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "struct sockaddr *";
+			break;
+		case 5:
+			p = "socklen_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_accept */
+	case 30:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct sockaddr *";
+			break;
+		case 2:
+			p = "socklen_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpeername */
+	case 31:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct sockaddr *";
+			break;
+		case 2:
+			p = "socklen_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getsockname */
+	case 32:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct sockaddr *";
+			break;
+		case 2:
+			p = "socklen_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_access */
+	case 33:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_chflags */
+	case 34:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "u_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fchflags */
+	case 35:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "u_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sync */
+	case 36:
+		break;
+	/* sys_kill */
+	case 37:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_stat */
+	case 38:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct stat43 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getppid */
+	case 39:
+		break;
+	/* sys_lstat */
+	case 40:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct stat43 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_dup */
+	case 41:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_pipe */
+	case 42:
+		break;
+	/* sys_getegid */
+	case 43:
+		break;
+	/* sys_profil */
+	case 44:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "u_long";
+			break;
+		case 3:
+			p = "u_int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_ktrace */
+	case 45:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sigaction */
+	case 46:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct sigaction13 *";
+			break;
+		case 2:
+			p = "struct sigaction13 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getgid_with_egid */
+	case 47:
+		break;
+	/* sys_sigprocmask */
+	case 48:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___getlogin */
+	case 49:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___setlogin */
+	case 50:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_acct */
+	case 51:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sigpending */
+	case 52:
+		break;
+	/* sys_sigaltstack */
+	case 53:
+		switch(ndx) {
+		case 0:
+			p = "const struct sigaltstack13 *";
+			break;
+		case 1:
+			p = "struct sigaltstack13 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_ioctl */
+	case 54:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "u_long";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_reboot */
+	case 55:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_revoke */
+	case 56:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_symlink */
+	case 57:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_readlink */
+	case 58:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_execve */
+	case 59:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "char *const *";
+			break;
+		case 2:
+			p = "char *const *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_umask */
+	case 60:
+		switch(ndx) {
+		case 0:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_chroot */
+	case 61:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fstat */
+	case 62:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct stat43 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getkerninfo */
+	case 63:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "int *";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpagesize */
+	case 64:
+		break;
+	/* sys_msync */
+	case 65:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_vfork */
+	case 66:
+		break;
+	/* sys_sbrk */
+	case 69:
+		switch(ndx) {
+		case 0:
+			p = "intptr_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sstk */
+	case 70:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mmap */
+	case 71:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "int";
+			break;
+		case 5:
+			p = "long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_ovadvise */
+	case 72:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_munmap */
+	case 73:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mprotect */
+	case 74:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_madvise */
+	case 75:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mincore */
+	case 78:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getgroups */
+	case 79:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "gid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setgroups */
+	case 80:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const gid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpgrp */
+	case 81:
+		break;
+	/* sys_setpgid */
+	case 82:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setitimer */
+	case 83:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct itimerval50 *";
+			break;
+		case 2:
+			p = "struct itimerval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_wait */
+	case 84:
+		break;
+	/* sys_swapon */
+	case 85:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getitimer */
+	case 86:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct itimerval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_gethostname */
+	case 87:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sethostname */
+	case 88:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getdtablesize */
+	case 89:
+		break;
+	/* sys_dup2 */
+	case 90:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fcntl */
+	case 92:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_select */
+	case 93:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "fd_set *";
+			break;
+		case 2:
+			p = "fd_set *";
+			break;
+		case 3:
+			p = "fd_set *";
+			break;
+		case 4:
+			p = "struct timeval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fsync */
+	case 95:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setpriority */
+	case 96:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "id_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_socket */
+	case 97:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_connect */
+	case 98:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct sockaddr *";
+			break;
+		case 2:
+			p = "socklen_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_accept */
+	case 99:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "socklen_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpriority */
+	case 100:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "id_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_send */
+	case 101:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_recv */
+	case 102:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sigreturn */
+	case 103:
+		switch(ndx) {
+		case 0:
+			p = "struct sigcontext13 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_bind */
+	case 104:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct sockaddr *";
+			break;
+		case 2:
+			p = "socklen_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setsockopt */
+	case 105:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "const void *";
+			break;
+		case 4:
+			p = "socklen_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_listen */
+	case 106:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sigvec */
+	case 108:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct sigvec *";
+			break;
+		case 2:
+			p = "struct sigvec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sigblock */
+	case 109:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sigsetmask */
+	case 110:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sigsuspend */
+	case 111:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sigstack */
+	case 112:
+		switch(ndx) {
+		case 0:
+			p = "struct sigstack *";
+			break;
+		case 1:
+			p = "struct sigstack *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_recvmsg */
+	case 113:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct omsghdr *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sendmsg */
+	case 114:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_gettimeofday */
+	case 116:
+		switch(ndx) {
+		case 0:
+			p = "struct timeval50 *";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getrusage */
+	case 117:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct rusage50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getsockopt */
+	case 118:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		case 4:
+			p = "socklen_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_readv */
+	case 120:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct iovec *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_writev */
+	case 121:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct iovec *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_settimeofday */
+	case 122:
+		switch(ndx) {
+		case 0:
+			p = "const struct timeval50 *";
+			break;
+		case 1:
+			p = "const void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fchown */
+	case 123:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fchmod */
+	case 124:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_recvfrom */
+	case 125:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "void *";
+			break;
+		case 5:
+			p = "socklen_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setreuid */
+	case 126:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setregid */
+	case 127:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		case 1:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_rename */
+	case 128:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_truncate */
+	case 129:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_ftruncate */
+	case 130:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_flock */
+	case 131:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mkfifo */
+	case 132:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sendto */
+	case 133:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "const struct sockaddr *";
+			break;
+		case 5:
+			p = "socklen_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_shutdown */
+	case 134:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_socketpair */
+	case 135:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mkdir */
+	case 136:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_rmdir */
+	case 137:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_utimes */
+	case 138:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const struct timeval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_adjtime */
+	case 140:
+		switch(ndx) {
+		case 0:
+			p = "const struct timeval50 *";
+			break;
+		case 1:
+			p = "struct timeval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpeername */
+	case 141:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "socklen_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_gethostid */
+	case 142:
+		break;
+	/* sys_sethostid */
+	case 143:
+		switch(ndx) {
+		case 0:
+			p = "int32_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getrlimit */
+	case 144:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct orlimit *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setrlimit */
+	case 145:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct orlimit *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_killpg */
+	case 146:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setsid */
+	case 147:
+		break;
+	/* sys_quotactl */
+	case 148:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_quota */
+	case 149:
+		break;
+	/* sys_getsockname */
+	case 150:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "socklen_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_nfssvc */
+	case 155:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getdirentries */
+	case 156:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "u_int";
+			break;
+		case 3:
+			p = "long *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_statfs */
+	case 157:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct statfs12 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fstatfs */
+	case 158:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct statfs12 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getfh */
+	case 161:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct compat_30_fhandle *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getdomainname */
+	case 162:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setdomainname */
+	case 163:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_uname */
+	case 164:
+		switch(ndx) {
+		case 0:
+			p = "struct outsname *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sysarch */
+	case 165:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+#if (defined(SYSVSEM) || !defined(_KERNEL_OPT)) && !defined(_LP64)
+	/* sys_semsys */
+	case 169:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#if (defined(SYSVMSG) || !defined(_KERNEL_OPT)) && !defined(_LP64)
+	/* sys_msgsys */
+	case 170:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "int";
+			break;
+		case 5:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#if (defined(SYSVSHM) || !defined(_KERNEL_OPT)) && !defined(_LP64)
+	/* sys_shmsys */
+	case 171:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* sys_pread */
+	case 173:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_pwrite */
+	case 174:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_ntp_gettime */
+	case 175:
+		switch(ndx) {
+		case 0:
+			p = "struct ntptimeval30 *";
+			break;
+		default:
+			break;
+		};
+		break;
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* sys_ntp_adjtime */
+	case 176:
+		switch(ndx) {
+		case 0:
+			p = "struct timex *";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* sys_setgid */
+	case 181:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setegid */
+	case 182:
+		switch(ndx) {
+		case 0:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_seteuid */
+	case 183:
+		switch(ndx) {
+		case 0:
+			p = "uid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_lfs_bmapv */
+	case 184:
+		switch(ndx) {
+		case 0:
+			p = "fsid_t *";
+			break;
+		case 1:
+			p = "struct block_info *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_lfs_markv */
+	case 185:
+		switch(ndx) {
+		case 0:
+			p = "fsid_t *";
+			break;
+		case 1:
+			p = "struct block_info *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_lfs_segclean */
+	case 186:
+		switch(ndx) {
+		case 0:
+			p = "fsid_t *";
+			break;
+		case 1:
+			p = "u_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_lfs_segwait */
+	case 187:
+		switch(ndx) {
+		case 0:
+			p = "fsid_t *";
+			break;
+		case 1:
+			p = "struct timeval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_stat */
+	case 188:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct stat12 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fstat */
+	case 189:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct stat12 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_lstat */
+	case 190:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct stat12 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_pathconf */
+	case 191:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fpathconf */
+	case 192:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getrlimit */
+	case 194:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct rlimit *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setrlimit */
+	case 195:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct rlimit *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getdirentries */
+	case 196:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "u_int";
+			break;
+		case 3:
+			p = "long *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mmap */
+	case 197:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "int";
+			break;
+		case 5:
+			p = "long";
+			break;
+		case 6:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___syscall */
+	case 198:
+		switch(ndx) {
+		case 0:
+			p = "quad_t";
+			break;
+		case 1:
+			p = "register_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_lseek */
+	case 199:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "off_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_truncate */
+	case 200:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_ftruncate */
+	case 201:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___sysctl */
+	case 202:
+		switch(ndx) {
+		case 0:
+			p = "const int *";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t *";
+			break;
+		case 4:
+			p = "const void *";
+			break;
+		case 5:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mlock */
+	case 203:
+		switch(ndx) {
+		case 0:
+			p = "const void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_munlock */
+	case 204:
+		switch(ndx) {
+		case 0:
+			p = "const void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_undelete */
+	case 205:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_futimes */
+	case 206:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct timeval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getpgid */
+	case 207:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_reboot */
+	case 208:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_poll */
+	case 209:
+		switch(ndx) {
+		case 0:
+			p = "struct pollfd *";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_afssys */
+	case 210:
+		switch(ndx) {
+		case 0:
+			p = "long";
+			break;
+		case 1:
+			p = "long";
+			break;
+		case 2:
+			p = "long";
+			break;
+		case 3:
+			p = "long";
+			break;
+		case 4:
+			p = "long";
+			break;
+		case 5:
+			p = "long";
+			break;
+		case 6:
+			p = "long";
+			break;
+		default:
+			break;
+		};
+		break;
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* sys___semctl */
+	case 220:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "union __semun *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_semget */
+	case 221:
+		switch(ndx) {
+		case 0:
+			p = "key_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_semop */
+	case 222:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct sembuf *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_semconfig */
+	case 223:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* sys_msgctl */
+	case 224:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "struct msqid_ds14 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_msgget */
+	case 225:
+		switch(ndx) {
+		case 0:
+			p = "key_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_msgsnd */
+	case 226:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_msgrcv */
+	case 227:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "long";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* sys_shmat */
+	case 228:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const void *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_shmctl */
+	case 229:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "struct shmid_ds14 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_shmdt */
+	case 230:
+		switch(ndx) {
+		case 0:
+			p = "const void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_shmget */
+	case 231:
+		switch(ndx) {
+		case 0:
+			p = "key_t";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* sys_clock_gettime */
+	case 232:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "struct timespec50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_clock_settime */
+	case 233:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "const struct timespec50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_clock_getres */
+	case 234:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "struct timespec50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_timer_create */
+	case 235:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "struct sigevent *";
+			break;
+		case 2:
+			p = "timer_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_timer_delete */
+	case 236:
+		switch(ndx) {
+		case 0:
+			p = "timer_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_timer_settime */
+	case 237:
+		switch(ndx) {
+		case 0:
+			p = "timer_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const struct itimerspec50 *";
+			break;
+		case 3:
+			p = "struct itimerspec50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_timer_gettime */
+	case 238:
+		switch(ndx) {
+		case 0:
+			p = "timer_t";
+			break;
+		case 1:
+			p = "struct itimerspec50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_timer_getoverrun */
+	case 239:
+		switch(ndx) {
+		case 0:
+			p = "timer_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_nanosleep */
+	case 240:
+		switch(ndx) {
+		case 0:
+			p = "const struct timespec50 *";
+			break;
+		case 1:
+			p = "struct timespec50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fdatasync */
+	case 241:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mlockall */
+	case 242:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_munlockall */
+	case 243:
+		break;
+	/* sys___sigtimedwait */
+	case 244:
+		switch(ndx) {
+		case 0:
+			p = "const sigset_t *";
+			break;
+		case 1:
+			p = "siginfo_t *";
+			break;
+		case 2:
+			p = "struct timespec50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sigqueueinfo */
+	case 245:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "const siginfo_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_modctl */
+	case 246:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__ksem_init */
+	case 247:
+		switch(ndx) {
+		case 0:
+			p = "unsigned int";
+			break;
+		case 1:
+			p = "intptr_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__ksem_open */
+	case 248:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "mode_t";
+			break;
+		case 3:
+			p = "unsigned int";
+			break;
+		case 4:
+			p = "intptr_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__ksem_unlink */
+	case 249:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__ksem_close */
+	case 250:
+		switch(ndx) {
+		case 0:
+			p = "intptr_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__ksem_post */
+	case 251:
+		switch(ndx) {
+		case 0:
+			p = "intptr_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__ksem_wait */
+	case 252:
+		switch(ndx) {
+		case 0:
+			p = "intptr_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__ksem_trywait */
+	case 253:
+		switch(ndx) {
+		case 0:
+			p = "intptr_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__ksem_getvalue */
+	case 254:
+		switch(ndx) {
+		case 0:
+			p = "intptr_t";
+			break;
+		case 1:
+			p = "unsigned int *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__ksem_destroy */
+	case 255:
+		switch(ndx) {
+		case 0:
+			p = "intptr_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__ksem_timedwait */
+	case 256:
+		switch(ndx) {
+		case 0:
+			p = "intptr_t";
+			break;
+		case 1:
+			p = "const struct timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mq_open */
+	case 257:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "mode_t";
+			break;
+		case 3:
+			p = "struct mq_attr *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mq_close */
+	case 258:
+		switch(ndx) {
+		case 0:
+			p = "mqd_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mq_unlink */
+	case 259:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mq_getattr */
+	case 260:
+		switch(ndx) {
+		case 0:
+			p = "mqd_t";
+			break;
+		case 1:
+			p = "struct mq_attr *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mq_setattr */
+	case 261:
+		switch(ndx) {
+		case 0:
+			p = "mqd_t";
+			break;
+		case 1:
+			p = "const struct mq_attr *";
+			break;
+		case 2:
+			p = "struct mq_attr *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mq_notify */
+	case 262:
+		switch(ndx) {
+		case 0:
+			p = "mqd_t";
+			break;
+		case 1:
+			p = "const struct sigevent *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mq_send */
+	case 263:
+		switch(ndx) {
+		case 0:
+			p = "mqd_t";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "unsigned";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mq_receive */
+	case 264:
+		switch(ndx) {
+		case 0:
+			p = "mqd_t";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "unsigned *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mq_timedsend */
+	case 265:
+		switch(ndx) {
+		case 0:
+			p = "mqd_t";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "unsigned";
+			break;
+		case 4:
+			p = "const struct timespec50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mq_timedreceive */
+	case 266:
+		switch(ndx) {
+		case 0:
+			p = "mqd_t";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "unsigned *";
+			break;
+		case 4:
+			p = "const struct timespec50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___posix_rename */
+	case 270:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_swapctl */
+	case 271:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getdents */
+	case 272:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_minherit */
+	case 273:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_lchmod */
+	case 274:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_lchown */
+	case 275:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_lutimes */
+	case 276:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const struct timeval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___msync13 */
+	case 277:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___stat13 */
+	case 278:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct stat13 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___fstat13 */
+	case 279:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct stat13 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___lstat13 */
+	case 280:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct stat13 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___sigaltstack14 */
+	case 281:
+		switch(ndx) {
+		case 0:
+			p = "const struct sigaltstack *";
+			break;
+		case 1:
+			p = "struct sigaltstack *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___vfork14 */
+	case 282:
+		break;
+	/* sys___posix_chown */
+	case 283:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___posix_fchown */
+	case 284:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___posix_lchown */
+	case 285:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "uid_t";
+			break;
+		case 2:
+			p = "gid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getsid */
+	case 286:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___clone */
+	case 287:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fktrace */
+	case 288:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "pid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_preadv */
+	case 289:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct iovec *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_pwritev */
+	case 290:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct iovec *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___sigaction14 */
+	case 291:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct sigaction *";
+			break;
+		case 2:
+			p = "struct sigaction *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___sigpending14 */
+	case 292:
+		switch(ndx) {
+		case 0:
+			p = "sigset_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___sigprocmask14 */
+	case 293:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const sigset_t *";
+			break;
+		case 2:
+			p = "sigset_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___sigsuspend14 */
+	case 294:
+		switch(ndx) {
+		case 0:
+			p = "const sigset_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___sigreturn14 */
+	case 295:
+		switch(ndx) {
+		case 0:
+			p = "struct sigcontext *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___getcwd */
+	case 296:
+		switch(ndx) {
+		case 0:
+			p = "char *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fchroot */
+	case 297:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fhopen */
+	case 298:
+		switch(ndx) {
+		case 0:
+			p = "const struct compat_30_fhandle *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fhstat */
+	case 299:
+		switch(ndx) {
+		case 0:
+			p = "const struct compat_30_fhandle *";
+			break;
+		case 1:
+			p = "struct stat13 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fhstatfs */
+	case 300:
+		switch(ndx) {
+		case 0:
+			p = "const struct compat_30_fhandle *";
+			break;
+		case 1:
+			p = "struct statfs12 *";
+			break;
+		default:
+			break;
+		};
+		break;
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* sys_____semctl13 */
+	case 301:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "union __semun *";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* sys___msgctl13 */
+	case 302:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "struct msqid_ds *";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* sys___shmctl13 */
+	case 303:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "struct shmid_ds13 *";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* sys_lchflags */
+	case 304:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "u_long";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_issetugid */
+	case 305:
+		break;
+	/* sys_utrace */
+	case 306:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getcontext */
+	case 307:
+		switch(ndx) {
+		case 0:
+			p = "struct __ucontext *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setcontext */
+	case 308:
+		switch(ndx) {
+		case 0:
+			p = "const struct __ucontext *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_create */
+	case 309:
+		switch(ndx) {
+		case 0:
+			p = "const struct __ucontext *";
+			break;
+		case 1:
+			p = "u_long";
+			break;
+		case 2:
+			p = "lwpid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_exit */
+	case 310:
+		break;
+	/* sys__lwp_self */
+	case 311:
+		break;
+	/* sys__lwp_wait */
+	case 312:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		case 1:
+			p = "lwpid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_suspend */
+	case 313:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_continue */
+	case 314:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_wakeup */
+	case 315:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_getprivate */
+	case 316:
+		break;
+	/* sys__lwp_setprivate */
+	case 317:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_kill */
+	case 318:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_detach */
+	case 319:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_park */
+	case 320:
+		switch(ndx) {
+		case 0:
+			p = "const struct timespec50 *";
+			break;
+		case 1:
+			p = "lwpid_t";
+			break;
+		case 2:
+			p = "const void *";
+			break;
+		case 3:
+			p = "const void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_unpark */
+	case 321:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		case 1:
+			p = "const void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_unpark_all */
+	case 322:
+		switch(ndx) {
+		case 0:
+			p = "const lwpid_t *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "const void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_setname */
+	case 323:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_getname */
+	case 324:
+		switch(ndx) {
+		case 0:
+			p = "lwpid_t";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_ctl */
+	case 325:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct lwpctl **";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sa_register */
+	case 330:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "void **";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "ssize_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sa_stacks */
+	case 331:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "stack_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sa_enable */
+	case 332:
+		break;
+	/* sys_sa_setconcurrency */
+	case 333:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sa_yield */
+	case 334:
+		break;
+	/* sys_sa_preempt */
+	case 335:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___sigaction_sigtramp */
+	case 340:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct sigaction *";
+			break;
+		case 2:
+			p = "struct sigaction *";
+			break;
+		case 3:
+			p = "const void *";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_pmc_get_info */
+	case 341:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_pmc_control */
+	case 342:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_rasctl */
+	case 343:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_kqueue */
+	case 344:
+		break;
+	/* sys_kevent */
+	case 345:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct kevent *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "struct kevent *";
+			break;
+		case 4:
+			p = "size_t";
+			break;
+		case 5:
+			p = "const struct timespec50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__sched_setparam */
+	case 346:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "lwpid_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "const struct sched_param *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__sched_getparam */
+	case 347:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "lwpid_t";
+			break;
+		case 2:
+			p = "int *";
+			break;
+		case 3:
+			p = "struct sched_param *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__sched_setaffinity */
+	case 348:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "lwpid_t";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "const cpuset_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__sched_getaffinity */
+	case 349:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "lwpid_t";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "cpuset_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sched_yield */
+	case 350:
+		break;
+	/* sys_fsync_range */
+	case 354:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "off_t";
+			break;
+		case 3:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_uuidgen */
+	case 355:
+		switch(ndx) {
+		case 0:
+			p = "struct uuid *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getvfsstat */
+	case 356:
+		switch(ndx) {
+		case 0:
+			p = "struct statvfs *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_statvfs1 */
+	case 357:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct statvfs *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fstatvfs1 */
+	case 358:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct statvfs *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fhstatvfs1 */
+	case 359:
+		switch(ndx) {
+		case 0:
+			p = "const struct compat_30_fhandle *";
+			break;
+		case 1:
+			p = "struct statvfs *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_extattrctl */
+	case 360:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const char *";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_extattr_set_file */
+	case 361:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const char *";
+			break;
+		case 3:
+			p = "const void *";
+			break;
+		case 4:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_extattr_get_file */
+	case 362:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const char *";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		case 4:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_extattr_delete_file */
+	case 363:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_extattr_set_fd */
+	case 364:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const char *";
+			break;
+		case 3:
+			p = "const void *";
+			break;
+		case 4:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_extattr_get_fd */
+	case 365:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const char *";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		case 4:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_extattr_delete_fd */
+	case 366:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_extattr_set_link */
+	case 367:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const char *";
+			break;
+		case 3:
+			p = "const void *";
+			break;
+		case 4:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_extattr_get_link */
+	case 368:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const char *";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		case 4:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_extattr_delete_link */
+	case 369:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_extattr_list_fd */
+	case 370:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_extattr_list_file */
+	case 371:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_extattr_list_link */
+	case 372:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_pselect */
+	case 373:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "fd_set *";
+			break;
+		case 2:
+			p = "fd_set *";
+			break;
+		case 3:
+			p = "fd_set *";
+			break;
+		case 4:
+			p = "const struct timespec50 *";
+			break;
+		case 5:
+			p = "const sigset_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_pollts */
+	case 374:
+		switch(ndx) {
+		case 0:
+			p = "struct pollfd *";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		case 2:
+			p = "const struct timespec50 *";
+			break;
+		case 3:
+			p = "const sigset_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_setxattr */
+	case 375:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "const void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_lsetxattr */
+	case 376:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "const void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fsetxattr */
+	case 377:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "const void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_getxattr */
+	case 378:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_lgetxattr */
+	case 379:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fgetxattr */
+	case 380:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_listxattr */
+	case 381:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_llistxattr */
+	case 382:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_flistxattr */
+	case 383:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_removexattr */
+	case 384:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_lremovexattr */
+	case 385:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fremovexattr */
+	case 386:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___stat30 */
+	case 387:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct stat30 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___fstat30 */
+	case 388:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct stat30 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___lstat30 */
+	case 389:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct stat30 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___getdents30 */
+	case 390:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___fhstat30 */
+	case 392:
+		switch(ndx) {
+		case 0:
+			p = "const struct compat_30_fhandle *";
+			break;
+		case 1:
+			p = "struct stat30 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___ntp_gettime30 */
+	case 393:
+		switch(ndx) {
+		case 0:
+			p = "struct ntptimeval50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___socket30 */
+	case 394:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___getfh30 */
+	case 395:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		case 2:
+			p = "size_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___fhopen40 */
+	case 396:
+		switch(ndx) {
+		case 0:
+			p = "const void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___fhstatvfs140 */
+	case 397:
+		switch(ndx) {
+		case 0:
+			p = "const void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "struct statvfs *";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___fhstat40 */
+	case 398:
+		switch(ndx) {
+		case 0:
+			p = "const void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "struct stat30 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_aio_cancel */
+	case 399:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct aiocb *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_aio_error */
+	case 400:
+		switch(ndx) {
+		case 0:
+			p = "const struct aiocb *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_aio_fsync */
+	case 401:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct aiocb *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_aio_read */
+	case 402:
+		switch(ndx) {
+		case 0:
+			p = "struct aiocb *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_aio_return */
+	case 403:
+		switch(ndx) {
+		case 0:
+			p = "struct aiocb *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_aio_suspend */
+	case 404:
+		switch(ndx) {
+		case 0:
+			p = "const struct aiocb *const *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const struct timespec50 *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_aio_write */
+	case 405:
+		switch(ndx) {
+		case 0:
+			p = "struct aiocb *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_lio_listio */
+	case 406:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct aiocb *const *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "struct sigevent *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___mount50 */
+	case 410:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "void *";
+			break;
+		case 4:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mremap */
+	case 411:
+		switch(ndx) {
+		case 0:
+			p = "void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "void *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_pset_create */
+	case 412:
+		switch(ndx) {
+		case 0:
+			p = "psetid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_pset_destroy */
+	case 413:
+		switch(ndx) {
+		case 0:
+			p = "psetid_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_pset_assign */
+	case 414:
+		switch(ndx) {
+		case 0:
+			p = "psetid_t";
+			break;
+		case 1:
+			p = "cpuid_t";
+			break;
+		case 2:
+			p = "psetid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__pset_bind */
+	case 415:
+		switch(ndx) {
+		case 0:
+			p = "idtype_t";
+			break;
+		case 1:
+			p = "id_t";
+			break;
+		case 2:
+			p = "id_t";
+			break;
+		case 3:
+			p = "psetid_t";
+			break;
+		case 4:
+			p = "psetid_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___posix_fadvise50 */
+	case 416:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "off_t";
+			break;
+		case 3:
+			p = "off_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___select50 */
+	case 417:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "fd_set *";
+			break;
+		case 2:
+			p = "fd_set *";
+			break;
+		case 3:
+			p = "fd_set *";
+			break;
+		case 4:
+			p = "struct timeval *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___gettimeofday50 */
+	case 418:
+		switch(ndx) {
+		case 0:
+			p = "struct timeval *";
+			break;
+		case 1:
+			p = "void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___settimeofday50 */
+	case 419:
+		switch(ndx) {
+		case 0:
+			p = "const struct timeval *";
+			break;
+		case 1:
+			p = "const void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___utimes50 */
+	case 420:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const struct timeval *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___adjtime50 */
+	case 421:
+		switch(ndx) {
+		case 0:
+			p = "const struct timeval *";
+			break;
+		case 1:
+			p = "struct timeval *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___lfs_segwait50 */
+	case 422:
+		switch(ndx) {
+		case 0:
+			p = "fsid_t *";
+			break;
+		case 1:
+			p = "struct timeval *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___futimes50 */
+	case 423:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct timeval *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___lutimes50 */
+	case 424:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "const struct timeval *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___setitimer50 */
+	case 425:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct itimerval *";
+			break;
+		case 2:
+			p = "struct itimerval *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___getitimer50 */
+	case 426:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct itimerval *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___clock_gettime50 */
+	case 427:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "struct timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___clock_settime50 */
+	case 428:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "const struct timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___clock_getres50 */
+	case 429:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "struct timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___nanosleep50 */
+	case 430:
+		switch(ndx) {
+		case 0:
+			p = "const struct timespec *";
+			break;
+		case 1:
+			p = "struct timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_____sigtimedwait50 */
+	case 431:
+		switch(ndx) {
+		case 0:
+			p = "const sigset_t *";
+			break;
+		case 1:
+			p = "siginfo_t *";
+			break;
+		case 2:
+			p = "struct timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___mq_timedsend50 */
+	case 432:
+		switch(ndx) {
+		case 0:
+			p = "mqd_t";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "unsigned";
+			break;
+		case 4:
+			p = "const struct timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___mq_timedreceive50 */
+	case 433:
+		switch(ndx) {
+		case 0:
+			p = "mqd_t";
+			break;
+		case 1:
+			p = "char *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "unsigned *";
+			break;
+		case 4:
+			p = "const struct timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys__lwp_park */
+	case 434:
+		switch(ndx) {
+		case 0:
+			p = "const struct timespec *";
+			break;
+		case 1:
+			p = "lwpid_t";
+			break;
+		case 2:
+			p = "const void *";
+			break;
+		case 3:
+			p = "const void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___kevent50 */
+	case 435:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct kevent *";
+			break;
+		case 2:
+			p = "size_t";
+			break;
+		case 3:
+			p = "struct kevent *";
+			break;
+		case 4:
+			p = "size_t";
+			break;
+		case 5:
+			p = "const struct timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___pselect50 */
+	case 436:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "fd_set *";
+			break;
+		case 2:
+			p = "fd_set *";
+			break;
+		case 3:
+			p = "fd_set *";
+			break;
+		case 4:
+			p = "const struct timespec *";
+			break;
+		case 5:
+			p = "const sigset_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___pollts50 */
+	case 437:
+		switch(ndx) {
+		case 0:
+			p = "struct pollfd *";
+			break;
+		case 1:
+			p = "u_int";
+			break;
+		case 2:
+			p = "const struct timespec *";
+			break;
+		case 3:
+			p = "const sigset_t *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___aio_suspend50 */
+	case 438:
+		switch(ndx) {
+		case 0:
+			p = "const struct aiocb *const *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const struct timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___stat50 */
+	case 439:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct stat *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___fstat50 */
+	case 440:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct stat *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___lstat50 */
+	case 441:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct stat *";
+			break;
+		default:
+			break;
+		};
+		break;
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* sys_____semctl50 */
+	case 442:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "union __semun *";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* sys___shmctl50 */
+	case 443:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "struct shmid_ds *";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* sys___msgctl50 */
+	case 444:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "struct msqid_ds *";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* sys___getrusage50 */
+	case 445:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct rusage *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___timer_settime50 */
+	case 446:
+		switch(ndx) {
+		case 0:
+			p = "timer_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const struct itimerspec *";
+			break;
+		case 3:
+			p = "struct itimerspec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___timer_gettime50 */
+	case 447:
+		switch(ndx) {
+		case 0:
+			p = "timer_t";
+			break;
+		case 1:
+			p = "struct itimerspec *";
+			break;
+		default:
+			break;
+		};
+		break;
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* sys___ntp_gettime50 */
+	case 448:
+		switch(ndx) {
+		case 0:
+			p = "struct ntptimeval *";
+			break;
+		default:
+			break;
+		};
+		break;
+#else
+#endif
+	/* sys___wait450 */
+	case 449:
+		switch(ndx) {
+		case 0:
+			p = "pid_t";
+			break;
+		case 1:
+			p = "int *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "struct rusage *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___mknod50 */
+	case 450:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "mode_t";
+			break;
+		case 2:
+			p = "dev_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___fhstat50 */
+	case 451:
+		switch(ndx) {
+		case 0:
+			p = "const void *";
+			break;
+		case 1:
+			p = "size_t";
+			break;
+		case 2:
+			p = "struct stat *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_pipe2 */
+	case 453:
+		switch(ndx) {
+		case 0:
+			p = "int *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_dup3 */
+	case 454:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_kqueue1 */
+	case 455:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_paccept */
+	case 456:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct sockaddr *";
+			break;
+		case 2:
+			p = "socklen_t *";
+			break;
+		case 3:
+			p = "const sigset_t *";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_linkat */
+	case 457:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "const char *";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_renameat */
+	case 458:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mkfifoat */
+	case 459:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mknodat */
+	case 460:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "mode_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		case 4:
+			p = "dev_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_mkdirat */
+	case 461:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_faccessat */
+	case 462:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fchmodat */
+	case 463:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "mode_t";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fchownat */
+	case 464:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "uid_t";
+			break;
+		case 3:
+			p = "gid_t";
+			break;
+		case 4:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fexecve */
+	case 465:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "char *const *";
+			break;
+		case 2:
+			p = "char *const *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fstatat */
+	case 466:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "struct stat *";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_utimensat */
+	case 467:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "const struct timespec *";
+			break;
+		case 3:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_openat */
+	case 468:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		case 3:
+			p = "mode_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_readlinkat */
+	case 469:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "char *";
+			break;
+		case 3:
+			p = "size_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_symlinkat */
+	case 470:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const char *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_unlinkat */
+	case 471:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_futimens */
+	case 472:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "const struct timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys___quotactl */
+	case 473:
+		switch(ndx) {
+		case 0:
+			p = "const char *";
+			break;
+		case 1:
+			p = "struct quotactl_args *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_posix_spawn */
+	case 474:
+		switch(ndx) {
+		case 0:
+			p = "pid_t *";
+			break;
+		case 1:
+			p = "const char *";
+			break;
+		case 2:
+			p = "const struct posix_spawn_file_actions *";
+			break;
+		case 3:
+			p = "const struct posix_spawnattr *";
+			break;
+		case 4:
+			p = "char *const *";
+			break;
+		case 5:
+			p = "char *const *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_recvmmsg */
+	case 475:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct mmsghdr *";
+			break;
+		case 2:
+			p = "unsigned int";
+			break;
+		case 3:
+			p = "unsigned int";
+			break;
+		case 4:
+			p = "struct timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_sendmmsg */
+	case 476:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "struct mmsghdr *";
+			break;
+		case 2:
+			p = "unsigned int";
+			break;
+		case 3:
+			p = "unsigned int";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_clock_nanosleep */
+	case 477:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const struct timespec *";
+			break;
+		case 3:
+			p = "struct timespec *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys____lwp_park60 */
+	case 478:
+		switch(ndx) {
+		case 0:
+			p = "clockid_t";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "const struct timespec *";
+			break;
+		case 3:
+			p = "lwpid_t";
+			break;
+		case 4:
+			p = "const void *";
+			break;
+		case 5:
+			p = "const void *";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_posix_fallocate */
+	case 479:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "off_t";
+			break;
+		case 3:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	/* sys_fdiscard */
+	case 480:
+		switch(ndx) {
+		case 0:
+			p = "int";
+			break;
+		case 1:
+			p = "int";
+			break;
+		case 2:
+			p = "off_t";
+			break;
+		case 3:
+			p = "off_t";
+			break;
+		default:
+			break;
+		};
+		break;
+	default:
+		break;
+	};
+	if (p != NULL)
+		strlcpy(desc, p, descsz);
+}
+static void
+systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
+{
+	const char *p = NULL;
+	switch (sysnum) {
+	/* sys_syscall */
+	case 0:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_exit */
+	case 1:
+		if (ndx == 0 || ndx == 1)
+			p = "void";
+		break;
+	/* sys_fork */
+	case 2:
+	/* sys_read */
+	case 3:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_write */
+	case 4:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_open */
+	case 5:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_close */
+	case 6:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_wait4 */
+	case 7:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_creat */
+	case 8:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_link */
+	case 9:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_unlink */
+	case 10:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_chdir */
+	case 12:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fchdir */
+	case 13:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mknod */
+	case 14:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_chmod */
+	case 15:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_chown */
+	case 16:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_obreak */
+	case 17:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getfsstat */
+	case 18:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_lseek */
+	case 19:
+		if (ndx == 0 || ndx == 1)
+			p = "long";
+		break;
+	/* sys_getpid_with_ppid */
+	case 20:
+	/* sys_mount */
+	case 21:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_unmount */
+	case 22:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setuid */
+	case 23:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getuid_with_euid */
+	case 24:
+	/* sys_geteuid */
+	case 25:
+	/* sys_ptrace */
+	case 26:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_recvmsg */
+	case 27:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_sendmsg */
+	case 28:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_recvfrom */
+	case 29:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_accept */
+	case 30:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getpeername */
+	case 31:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getsockname */
+	case 32:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_access */
+	case 33:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_chflags */
+	case 34:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fchflags */
+	case 35:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sync */
+	case 36:
+	/* sys_kill */
+	case 37:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_stat */
+	case 38:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getppid */
+	case 39:
+	/* sys_lstat */
+	case 40:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_dup */
+	case 41:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_pipe */
+	case 42:
+	/* sys_getegid */
+	case 43:
+	/* sys_profil */
+	case 44:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_ktrace */
+	case 45:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sigaction */
+	case 46:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getgid_with_egid */
+	case 47:
+	/* sys_sigprocmask */
+	case 48:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___getlogin */
+	case 49:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___setlogin */
+	case 50:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_acct */
+	case 51:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sigpending */
+	case 52:
+	/* sys_sigaltstack */
+	case 53:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_ioctl */
+	case 54:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_reboot */
+	case 55:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_revoke */
+	case 56:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_symlink */
+	case 57:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_readlink */
+	case 58:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_execve */
+	case 59:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_umask */
+	case 60:
+		if (ndx == 0 || ndx == 1)
+			p = "mode_t";
+		break;
+	/* sys_chroot */
+	case 61:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fstat */
+	case 62:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getkerninfo */
+	case 63:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getpagesize */
+	case 64:
+	/* sys_msync */
+	case 65:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_vfork */
+	case 66:
+	/* sys_sbrk */
+	case 69:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sstk */
+	case 70:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mmap */
+	case 71:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_ovadvise */
+	case 72:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_munmap */
+	case 73:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mprotect */
+	case 74:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_madvise */
+	case 75:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mincore */
+	case 78:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getgroups */
+	case 79:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setgroups */
+	case 80:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getpgrp */
+	case 81:
+	/* sys_setpgid */
+	case 82:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setitimer */
+	case 83:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_wait */
+	case 84:
+	/* sys_swapon */
+	case 85:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getitimer */
+	case 86:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_gethostname */
+	case 87:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sethostname */
+	case 88:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getdtablesize */
+	case 89:
+	/* sys_dup2 */
+	case 90:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fcntl */
+	case 92:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_select */
+	case 93:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fsync */
+	case 95:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setpriority */
+	case 96:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_socket */
+	case 97:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_connect */
+	case 98:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_accept */
+	case 99:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getpriority */
+	case 100:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_send */
+	case 101:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_recv */
+	case 102:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sigreturn */
+	case 103:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_bind */
+	case 104:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setsockopt */
+	case 105:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_listen */
+	case 106:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sigvec */
+	case 108:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sigblock */
+	case 109:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sigsetmask */
+	case 110:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sigsuspend */
+	case 111:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sigstack */
+	case 112:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_recvmsg */
+	case 113:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sendmsg */
+	case 114:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_gettimeofday */
+	case 116:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getrusage */
+	case 117:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getsockopt */
+	case 118:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_readv */
+	case 120:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_writev */
+	case 121:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_settimeofday */
+	case 122:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fchown */
+	case 123:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fchmod */
+	case 124:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_recvfrom */
+	case 125:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setreuid */
+	case 126:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setregid */
+	case 127:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_rename */
+	case 128:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_truncate */
+	case 129:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_ftruncate */
+	case 130:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_flock */
+	case 131:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mkfifo */
+	case 132:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sendto */
+	case 133:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_shutdown */
+	case 134:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_socketpair */
+	case 135:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mkdir */
+	case 136:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_rmdir */
+	case 137:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_utimes */
+	case 138:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_adjtime */
+	case 140:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getpeername */
+	case 141:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_gethostid */
+	case 142:
+	/* sys_sethostid */
+	case 143:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getrlimit */
+	case 144:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setrlimit */
+	case 145:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_killpg */
+	case 146:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setsid */
+	case 147:
+	/* sys_quotactl */
+	case 148:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_quota */
+	case 149:
+	/* sys_getsockname */
+	case 150:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_nfssvc */
+	case 155:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getdirentries */
+	case 156:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_statfs */
+	case 157:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fstatfs */
+	case 158:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getfh */
+	case 161:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getdomainname */
+	case 162:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setdomainname */
+	case 163:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_uname */
+	case 164:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sysarch */
+	case 165:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#if (defined(SYSVSEM) || !defined(_KERNEL_OPT)) && !defined(_LP64)
+	/* sys_semsys */
+	case 169:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+#if (defined(SYSVMSG) || !defined(_KERNEL_OPT)) && !defined(_LP64)
+	/* sys_msgsys */
+	case 170:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+#if (defined(SYSVSHM) || !defined(_KERNEL_OPT)) && !defined(_LP64)
+	/* sys_shmsys */
+	case 171:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* sys_pread */
+	case 173:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_pwrite */
+	case 174:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_ntp_gettime */
+	case 175:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* sys_ntp_adjtime */
+	case 176:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* sys_setgid */
+	case 181:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setegid */
+	case 182:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_seteuid */
+	case 183:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_lfs_bmapv */
+	case 184:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_lfs_markv */
+	case 185:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_lfs_segclean */
+	case 186:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_lfs_segwait */
+	case 187:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_stat */
+	case 188:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fstat */
+	case 189:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_lstat */
+	case 190:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_pathconf */
+	case 191:
+		if (ndx == 0 || ndx == 1)
+			p = "long";
+		break;
+	/* sys_fpathconf */
+	case 192:
+		if (ndx == 0 || ndx == 1)
+			p = "long";
+		break;
+	/* sys_getrlimit */
+	case 194:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setrlimit */
+	case 195:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getdirentries */
+	case 196:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mmap */
+	case 197:
+		if (ndx == 0 || ndx == 1)
+			p = "void *";
+		break;
+	/* sys___syscall */
+	case 198:
+		if (ndx == 0 || ndx == 1)
+			p = "quad_t";
+		break;
+	/* sys_lseek */
+	case 199:
+		if (ndx == 0 || ndx == 1)
+			p = "off_t";
+		break;
+	/* sys_truncate */
+	case 200:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_ftruncate */
+	case 201:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___sysctl */
+	case 202:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mlock */
+	case 203:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_munlock */
+	case 204:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_undelete */
+	case 205:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_futimes */
+	case 206:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getpgid */
+	case 207:
+		if (ndx == 0 || ndx == 1)
+			p = "pid_t";
+		break;
+	/* sys_reboot */
+	case 208:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_poll */
+	case 209:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_afssys */
+	case 210:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* sys___semctl */
+	case 220:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_semget */
+	case 221:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_semop */
+	case 222:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_semconfig */
+	case 223:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* sys_msgctl */
+	case 224:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_msgget */
+	case 225:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_msgsnd */
+	case 226:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_msgrcv */
+	case 227:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* sys_shmat */
+	case 228:
+		if (ndx == 0 || ndx == 1)
+			p = "void *";
+		break;
+	/* sys_shmctl */
+	case 229:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_shmdt */
+	case 230:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_shmget */
+	case 231:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* sys_clock_gettime */
+	case 232:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_clock_settime */
+	case 233:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_clock_getres */
+	case 234:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_timer_create */
+	case 235:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_timer_delete */
+	case 236:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_timer_settime */
+	case 237:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_timer_gettime */
+	case 238:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_timer_getoverrun */
+	case 239:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_nanosleep */
+	case 240:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fdatasync */
+	case 241:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mlockall */
+	case 242:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_munlockall */
+	case 243:
+	/* sys___sigtimedwait */
+	case 244:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sigqueueinfo */
+	case 245:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_modctl */
+	case 246:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__ksem_init */
+	case 247:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__ksem_open */
+	case 248:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__ksem_unlink */
+	case 249:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__ksem_close */
+	case 250:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__ksem_post */
+	case 251:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__ksem_wait */
+	case 252:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__ksem_trywait */
+	case 253:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__ksem_getvalue */
+	case 254:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__ksem_destroy */
+	case 255:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__ksem_timedwait */
+	case 256:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mq_open */
+	case 257:
+		if (ndx == 0 || ndx == 1)
+			p = "mqd_t";
+		break;
+	/* sys_mq_close */
+	case 258:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mq_unlink */
+	case 259:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mq_getattr */
+	case 260:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mq_setattr */
+	case 261:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mq_notify */
+	case 262:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mq_send */
+	case 263:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mq_receive */
+	case 264:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_mq_timedsend */
+	case 265:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mq_timedreceive */
+	case 266:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys___posix_rename */
+	case 270:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_swapctl */
+	case 271:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getdents */
+	case 272:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_minherit */
+	case 273:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_lchmod */
+	case 274:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_lchown */
+	case 275:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_lutimes */
+	case 276:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___msync13 */
+	case 277:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___stat13 */
+	case 278:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___fstat13 */
+	case 279:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___lstat13 */
+	case 280:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___sigaltstack14 */
+	case 281:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___vfork14 */
+	case 282:
+	/* sys___posix_chown */
+	case 283:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___posix_fchown */
+	case 284:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___posix_lchown */
+	case 285:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getsid */
+	case 286:
+		if (ndx == 0 || ndx == 1)
+			p = "pid_t";
+		break;
+	/* sys___clone */
+	case 287:
+		if (ndx == 0 || ndx == 1)
+			p = "pid_t";
+		break;
+	/* sys_fktrace */
+	case 288:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_preadv */
+	case 289:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_pwritev */
+	case 290:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys___sigaction14 */
+	case 291:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___sigpending14 */
+	case 292:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___sigprocmask14 */
+	case 293:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___sigsuspend14 */
+	case 294:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___sigreturn14 */
+	case 295:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___getcwd */
+	case 296:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fchroot */
+	case 297:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fhopen */
+	case 298:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fhstat */
+	case 299:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fhstatfs */
+	case 300:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* sys_____semctl13 */
+	case 301:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* sys___msgctl13 */
+	case 302:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* sys___shmctl13 */
+	case 303:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* sys_lchflags */
+	case 304:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_issetugid */
+	case 305:
+	/* sys_utrace */
+	case 306:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getcontext */
+	case 307:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setcontext */
+	case 308:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__lwp_create */
+	case 309:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__lwp_exit */
+	case 310:
+	/* sys__lwp_self */
+	case 311:
+	/* sys__lwp_wait */
+	case 312:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__lwp_suspend */
+	case 313:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__lwp_continue */
+	case 314:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__lwp_wakeup */
+	case 315:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__lwp_getprivate */
+	case 316:
+	/* sys__lwp_setprivate */
+	case 317:
+		if (ndx == 0 || ndx == 1)
+			p = "void";
+		break;
+	/* sys__lwp_kill */
+	case 318:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__lwp_detach */
+	case 319:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__lwp_park */
+	case 320:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__lwp_unpark */
+	case 321:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__lwp_unpark_all */
+	case 322:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys__lwp_setname */
+	case 323:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__lwp_getname */
+	case 324:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__lwp_ctl */
+	case 325:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sa_register */
+	case 330:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sa_stacks */
+	case 331:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sa_enable */
+	case 332:
+	/* sys_sa_setconcurrency */
+	case 333:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sa_yield */
+	case 334:
+	/* sys_sa_preempt */
+	case 335:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___sigaction_sigtramp */
+	case 340:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_pmc_get_info */
+	case 341:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_pmc_control */
+	case 342:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_rasctl */
+	case 343:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_kqueue */
+	case 344:
+	/* sys_kevent */
+	case 345:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__sched_setparam */
+	case 346:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__sched_getparam */
+	case 347:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__sched_setaffinity */
+	case 348:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__sched_getaffinity */
+	case 349:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sched_yield */
+	case 350:
+	/* sys_fsync_range */
+	case 354:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_uuidgen */
+	case 355:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getvfsstat */
+	case 356:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_statvfs1 */
+	case 357:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fstatvfs1 */
+	case 358:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fhstatvfs1 */
+	case 359:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_extattrctl */
+	case 360:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_extattr_set_file */
+	case 361:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_extattr_get_file */
+	case 362:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_extattr_delete_file */
+	case 363:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_extattr_set_fd */
+	case 364:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_extattr_get_fd */
+	case 365:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_extattr_delete_fd */
+	case 366:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_extattr_set_link */
+	case 367:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_extattr_get_link */
+	case 368:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_extattr_delete_link */
+	case 369:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_extattr_list_fd */
+	case 370:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_extattr_list_file */
+	case 371:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_extattr_list_link */
+	case 372:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_pselect */
+	case 373:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_pollts */
+	case 374:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_setxattr */
+	case 375:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_lsetxattr */
+	case 376:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fsetxattr */
+	case 377:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_getxattr */
+	case 378:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_lgetxattr */
+	case 379:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fgetxattr */
+	case 380:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_listxattr */
+	case 381:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_llistxattr */
+	case 382:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_flistxattr */
+	case 383:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_removexattr */
+	case 384:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_lremovexattr */
+	case 385:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fremovexattr */
+	case 386:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___stat30 */
+	case 387:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___fstat30 */
+	case 388:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___lstat30 */
+	case 389:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___getdents30 */
+	case 390:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___fhstat30 */
+	case 392:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___ntp_gettime30 */
+	case 393:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___socket30 */
+	case 394:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___getfh30 */
+	case 395:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___fhopen40 */
+	case 396:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___fhstatvfs140 */
+	case 397:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___fhstat40 */
+	case 398:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_aio_cancel */
+	case 399:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_aio_error */
+	case 400:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_aio_fsync */
+	case 401:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_aio_read */
+	case 402:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_aio_return */
+	case 403:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_aio_suspend */
+	case 404:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_aio_write */
+	case 405:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_lio_listio */
+	case 406:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___mount50 */
+	case 410:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mremap */
+	case 411:
+		if (ndx == 0 || ndx == 1)
+			p = "void *";
+		break;
+	/* sys_pset_create */
+	case 412:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_pset_destroy */
+	case 413:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_pset_assign */
+	case 414:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys__pset_bind */
+	case 415:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___posix_fadvise50 */
+	case 416:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___select50 */
+	case 417:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___gettimeofday50 */
+	case 418:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___settimeofday50 */
+	case 419:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___utimes50 */
+	case 420:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___adjtime50 */
+	case 421:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___lfs_segwait50 */
+	case 422:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___futimes50 */
+	case 423:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___lutimes50 */
+	case 424:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___setitimer50 */
+	case 425:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___getitimer50 */
+	case 426:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___clock_gettime50 */
+	case 427:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___clock_settime50 */
+	case 428:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___clock_getres50 */
+	case 429:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___nanosleep50 */
+	case 430:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_____sigtimedwait50 */
+	case 431:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___mq_timedsend50 */
+	case 432:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___mq_timedreceive50 */
+	case 433:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys__lwp_park */
+	case 434:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___kevent50 */
+	case 435:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___pselect50 */
+	case 436:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___pollts50 */
+	case 437:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___aio_suspend50 */
+	case 438:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___stat50 */
+	case 439:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___fstat50 */
+	case 440:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___lstat50 */
+	case 441:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
+	/* sys_____semctl50 */
+	case 442:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
+	/* sys___shmctl50 */
+	case 443:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
+	/* sys___msgctl50 */
+	case 444:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* sys___getrusage50 */
+	case 445:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___timer_settime50 */
+	case 446:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___timer_gettime50 */
+	case 447:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#if defined(NTP) || !defined(_KERNEL_OPT)
+	/* sys___ntp_gettime50 */
+	case 448:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+#else
+#endif
+	/* sys___wait450 */
+	case 449:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___mknod50 */
+	case 450:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___fhstat50 */
+	case 451:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_pipe2 */
+	case 453:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_dup3 */
+	case 454:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_kqueue1 */
+	case 455:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_paccept */
+	case 456:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_linkat */
+	case 457:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_renameat */
+	case 458:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mkfifoat */
+	case 459:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mknodat */
+	case 460:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_mkdirat */
+	case 461:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_faccessat */
+	case 462:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fchmodat */
+	case 463:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fchownat */
+	case 464:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fexecve */
+	case 465:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fstatat */
+	case 466:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_utimensat */
+	case 467:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_openat */
+	case 468:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_readlinkat */
+	case 469:
+		if (ndx == 0 || ndx == 1)
+			p = "ssize_t";
+		break;
+	/* sys_symlinkat */
+	case 470:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_unlinkat */
+	case 471:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_futimens */
+	case 472:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys___quotactl */
+	case 473:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_posix_spawn */
+	case 474:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_recvmmsg */
+	case 475:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_sendmmsg */
+	case 476:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_clock_nanosleep */
+	case 477:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys____lwp_park60 */
+	case 478:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_posix_fallocate */
+	case 479:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	/* sys_fdiscard */
+	case 480:
+		if (ndx == 0 || ndx == 1)
+			p = "int";
+		break;
+	default:
+		break;
+	};
+	if (p != NULL)
+		strlcpy(desc, p, descsz);
+}
diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c
index 13a7e92..ed10a11 100644
--- a/sys/kern/vfs_cache.c
+++ b/sys/kern/vfs_cache.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_cache.c,v 1.99 2014/06/16 12:28:10 joerg Exp $	*/
+/*	$NetBSD: vfs_cache.c,v 1.108 2015/10/02 16:54:15 christos Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -58,7 +58,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_cache.c,v 1.99 2014/06/16 12:28:10 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_cache.c,v 1.108 2015/10/02 16:54:15 christos Exp $");
 
 #include "opt_ddb.h"
 #include "opt_revcache.h"
@@ -78,6 +78,7 @@ __KERNEL_RCSID(0, "$NetBSD: vfs_cache.c,v 1.99 2014/06/16 12:28:10 joerg Exp $")
 #include <sys/kernel.h>
 #include <sys/cpu.h>
 #include <sys/evcnt.h>
+#include <sys/sdt.h>
 
 #define NAMECACHE_ENTER_REVERSE
 /*
@@ -170,6 +171,29 @@ static void cache_reclaim(void);
 static int cache_ctor(void *, void *, int);
 static void cache_dtor(void *, void *);
 
+SDT_PROVIDER_DEFINE(vfs);
+
+SDT_PROBE_DEFINE1(vfs, namecache, invalidate, done, "struct vnode *");
+SDT_PROBE_DEFINE1(vfs, namecache, purge, parents, "struct vnode *");
+SDT_PROBE_DEFINE1(vfs, namecache, purge, children, "struct vnode *");
+SDT_PROBE_DEFINE2(vfs, namecache, purge, name, "char *", "size_t");
+SDT_PROBE_DEFINE1(vfs, namecache, purge, vfs, "struct mount *");
+SDT_PROBE_DEFINE3(vfs, namecache, lookup, hit, "struct vnode *",
+    "char *", "size_t");
+SDT_PROBE_DEFINE3(vfs, namecache, lookup, miss, "struct vnode *",
+    "char *", "size_t");
+SDT_PROBE_DEFINE3(vfs, namecache, lookup, toolong, "struct vnode *",
+    "char *", "size_t");
+SDT_PROBE_DEFINE2(vfs, namecache, revlookup, success, "struct vnode *",
+     "struct vnode *");
+SDT_PROBE_DEFINE2(vfs, namecache, revlookup, fail, "struct vnode *",
+     "int");
+SDT_PROBE_DEFINE2(vfs, namecache, prune, done, "int", "int");
+SDT_PROBE_DEFINE3(vfs, namecache, enter, toolong, "struct vnode *",
+    "char *", "size_t");
+SDT_PROBE_DEFINE3(vfs, namecache, enter, done, "struct vnode *",
+    "char *", "size_t");
+
 /*
  * Compute the hash for an entry.
  *
@@ -196,6 +220,9 @@ cache_invalidate(struct namecache *ncp)
 	KASSERT(mutex_owned(&ncp->nc_lock));
 
 	if (ncp->nc_dvp != NULL) {
+		SDT_PROBE(vfs, namecache, invalidate, done, ncp->nc_dvp,
+		    0, 0, 0, 0);
+
 		ncp->nc_vp = NULL;
 		ncp->nc_dvp = NULL;
 		do {
@@ -308,12 +335,16 @@ cache_lookup_entry(const struct vnode *dvp, const char *name, size_t namelen)
 	    	mutex_enter(&ncp->nc_lock);
 		if (__predict_true(ncp->nc_dvp == dvp)) {
 			ncp->nc_hittime = hardclock_ticks;
+			SDT_PROBE(vfs, namecache, lookup, hit, dvp,
+			    name, namelen, 0, 0);
 			return ncp;
 		}
 		/* Raced: entry has been nullified. */
 		mutex_exit(&ncp->nc_lock);
 	}
 
+	SDT_PROBE(vfs, namecache, lookup, miss, dvp,
+	    name, namelen, 0, 0);
 	return NULL;
 }
 
@@ -390,6 +421,8 @@ cache_lookup(struct vnode *dvp, const char *name, size_t namelen,
 	cpup = curcpu()->ci_data.cpu_nch;
 	if (__predict_false(namelen > NCHNAMLEN)) {
 		mutex_enter(&cpup->cpu_lock);
+		SDT_PROBE(vfs, namecache, lookup, toolong, dvp,
+		    name, namelen, 0, 0);
 		COUNT(cpup->cpu_stats, ncs_long);
 		mutex_exit(&cpup->cpu_lock);
 		/* found nothing */
@@ -629,6 +662,8 @@ cache_revlookup(struct vnode *vp, struct vnode **dvpp, char **bpp, char *bufp)
 					*dvpp = NULL;
 					mutex_exit(&ncp->nc_lock);
 					mutex_exit(namecache_lock);
+					SDT_PROBE(vfs, namecache, revlookup,
+					    fail, vp, ERANGE, 0, 0, 0);
 					return (ERANGE);
 				}
 				memcpy(bp, ncp->nc_name, nlen);
@@ -644,9 +679,13 @@ cache_revlookup(struct vnode *vp, struct vnode **dvpp, char **bpp, char *bufp)
 				if (bufp)
 					(*bpp) += nlen;
 				*dvpp = NULL;
+				SDT_PROBE(vfs, namecache, revlookup, fail, vp,
+				    error, 0, 0, 0);
 				return -1;
 			}
 			*dvpp = dvp;
+			SDT_PROBE(vfs, namecache, revlookup, success, vp, dvp,
+			    0, 0, 0);
 			return (0);
 		}
 		mutex_exit(&ncp->nc_lock);
@@ -676,9 +715,12 @@ cache_enter(struct vnode *dvp, struct vnode *vp,
 	/* First, check whether we can/should add a cache entry. */
 	if ((cnflags & MAKEENTRY) == 0 ||
 	    __predict_false(namelen > NCHNAMLEN || !doingcache)) {
+		SDT_PROBE(vfs, namecache, enter, toolong, vp, name, namelen,
+		    0, 0);
 		return;
 	}
 
+	SDT_PROBE(vfs, namecache, enter, done, vp, name, namelen, 0, 0);
 	if (numcache > desiredvnodes) {
 		mutex_enter(namecache_lock);
 		cache_ev_forced.ev_count++;
@@ -899,6 +941,8 @@ cache_purge1(struct vnode *vp, const char *name, size_t namelen, int flags)
 
 	mutex_enter(namecache_lock);
 	if (flags & PURGE_PARENTS) {
+		SDT_PROBE(vfs, namecache, purge, parents, vp, 0, 0, 0, 0);
+
 		for (ncp = LIST_FIRST(&vp->v_nclist); ncp != NULL;
 		    ncp = ncnext) {
 			ncnext = LIST_NEXT(ncp, nc_vlist);
@@ -909,6 +953,7 @@ cache_purge1(struct vnode *vp, const char *name, size_t namelen, int flags)
 		}
 	}
 	if (flags & PURGE_CHILDREN) {
+		SDT_PROBE(vfs, namecache, purge, children, vp, 0, 0, 0, 0);
 		for (ncp = LIST_FIRST(&vp->v_dnclist); ncp != NULL;
 		    ncp = ncnext) {
 			ncnext = LIST_NEXT(ncp, nc_dvlist);
@@ -919,6 +964,7 @@ cache_purge1(struct vnode *vp, const char *name, size_t namelen, int flags)
 		}
 	}
 	if (name != NULL) {
+		SDT_PROBE(vfs, namecache, purge, name, name, namelen, 0, 0, 0);
 		ncp = cache_lookup_entry(vp, name, namelen);
 		if (ncp) {
 			cache_invalidate(ncp);
@@ -938,6 +984,7 @@ cache_purgevfs(struct mount *mp)
 {
 	struct namecache *ncp, *nxtcp;
 
+	SDT_PROBE(vfs, namecache, purge, vfs, mp, 0, 0, 0, 0);
 	mutex_enter(namecache_lock);
 	for (ncp = TAILQ_FIRST(&nclruhead); ncp != NULL; ncp = nxtcp) {
 		nxtcp = TAILQ_NEXT(ncp, nc_lru);
@@ -967,6 +1014,7 @@ cache_prune(int incache, int target)
 
 	KASSERT(mutex_owned(namecache_lock));
 
+	SDT_PROBE(vfs, namecache, prune, done, incache, target, 0, 0, 0);
 	items = 0;
 	tryharder = 0;
 	recent = hardclock_ticks - hz * cache_hottime;
diff --git a/sys/modules/dtrace/Makefile b/sys/modules/dtrace/Makefile
index 88614ae..b26c631 100644
--- a/sys/modules/dtrace/Makefile
+++ b/sys/modules/dtrace/Makefile
@@ -1,8 +1,14 @@
-#	$NetBSD: Makefile,v 1.4 2012/12/02 01:05:17 chs Exp $
+#	$NetBSD: Makefile,v 1.6 2015/03/08 17:11:57 christos Exp $
 # $FreeBSD: src/sys/modules/dtrace/Makefile,v 1.6.2.1 2009/08/03 08:13:06 kensmith Exp $
 
 .include <bsd.own.mk>
 
-SUBDIR=		dtrace sdt fbt profile
+SUBDIR=		dtrace sdt fbt lockstat profile syscall
+SUBDIR+=	linux_syscall
+
+.if ${MACHINE_ARCH} == "x86_64"
+SUBDIR+=	netbsd32_syscall
+SUBDIR+=	linux32_syscall
+.endif
 
 .include <bsd.subdir.mk>
diff --git a/sys/modules/dtrace/fbt/Makefile b/sys/modules/dtrace/fbt/Makefile
index f2d0962..5acef5e 100644
--- a/sys/modules/dtrace/fbt/Makefile
+++ b/sys/modules/dtrace/fbt/Makefile
@@ -4,7 +4,7 @@
 
 .PATH: ${NETBSDSRCDIR}/external/cddl/osnet/dev/fbt
 
-KMOD=		fbt
+KMOD=		dtrace_fbt
 SRCS=		fbt.c
 
 CPPFLAGS+=	-I${NETBSDSRCDIR}/external/cddl/osnet/sys \
diff --git a/sys/modules/dtrace/linux32_syscall/Makefile b/sys/modules/dtrace/linux32_syscall/Makefile
new file mode 100644
index 0000000..ddb1071
--- /dev/null
+++ b/sys/modules/dtrace/linux32_syscall/Makefile
@@ -0,0 +1,15 @@
+# $FreeBSD: src/sys/modules/dtrace/sdt/Makefile,v 1.1.4.1 2009/08/03 08:13:06 kensmith Exp $
+
+.include "../../Makefile.inc"
+
+.PATH: ${NETBSDSRCDIR}/external/cddl/osnet/dev/systrace
+
+KMOD=		dtrace_syscall_linux32
+SRCS=		systrace.c
+
+CPPFLAGS+=	-I${NETBSDSRCDIR}/external/cddl/osnet/sys \
+		-I${NETBSDSRCDIR}/external/cddl/osnet/dist/uts/common 
+
+CPPFLAGS+=	-Wno-unknown-pragmas
+
+.include <bsd.kmodule.mk>
diff --git a/sys/modules/dtrace/linux32_syscall/emultrace.h b/sys/modules/dtrace/linux32_syscall/emultrace.h
new file mode 100644
index 0000000..f827873
--- /dev/null
+++ b/sys/modules/dtrace/linux32_syscall/emultrace.h
@@ -0,0 +1,22 @@
+/*
+ * The syscall arguments are processed into a DTrace argument array
+ * using a generated function. See sys/kern/makesyscalls.sh.
+ */
+#define COMPAT_NETBSD32
+
+#include <compat/netbsd32/netbsd32.h>
+#include <compat/netbsd32/netbsd32_syscallargs.h>
+
+#include <compat/linux/common/linux_types.h>
+#include <compat/linux/common/linux_mmap.h>
+#include <compat/linux/common/linux_signal.h>
+#include <compat/linux/linux_syscallargs.h>
+
+#include <compat/linux32/common/linux32_types.h>
+#include <compat/linux32/common/linux32_signal.h>
+#include <compat/linux32/linux32_syscall.h>
+#include <compat/linux32/linux32_syscallargs.h>
+#include <compat/linux32/linux32_systrace_args.c>
+
+#define emulname	linux32
+#define EMULNAME	LINUX32
diff --git a/sys/modules/dtrace/linux_syscall/Makefile b/sys/modules/dtrace/linux_syscall/Makefile
new file mode 100644
index 0000000..45706f1
--- /dev/null
+++ b/sys/modules/dtrace/linux_syscall/Makefile
@@ -0,0 +1,15 @@
+# $FreeBSD: src/sys/modules/dtrace/sdt/Makefile,v 1.1.4.1 2009/08/03 08:13:06 kensmith Exp $
+
+.include "../../Makefile.inc"
+
+.PATH: ${NETBSDSRCDIR}/external/cddl/osnet/dev/systrace
+
+KMOD=		dtrace_syscall_linux
+SRCS=		systrace.c
+
+CPPFLAGS+=	-I${NETBSDSRCDIR}/external/cddl/osnet/sys \
+		-I${NETBSDSRCDIR}/external/cddl/osnet/dist/uts/common 
+
+CPPFLAGS+=	-Wno-unknown-pragmas
+
+.include <bsd.kmodule.mk>
diff --git a/sys/modules/dtrace/linux_syscall/emultrace.h b/sys/modules/dtrace/linux_syscall/emultrace.h
new file mode 100644
index 0000000..9a71e9e
--- /dev/null
+++ b/sys/modules/dtrace/linux_syscall/emultrace.h
@@ -0,0 +1,13 @@
+/*
+ * The syscall arguments are processed into a DTrace argument array
+ * using a generated function. See sys/kern/makesyscalls.sh.
+ */
+#include <compat/linux/common/linux_types.h>
+#include <compat/linux/common/linux_mmap.h>
+#include <compat/linux/common/linux_signal.h>
+#include <compat/linux/linux_syscall.h>
+#include <compat/linux/linux_syscallargs.h>
+#include <compat/linux/linux_systrace_args.c>
+
+#define emulname	linux
+#define EMULNAME	LINUX
diff --git a/sys/modules/dtrace/lockstat/Makefile b/sys/modules/dtrace/lockstat/Makefile
new file mode 100644
index 0000000..efa24b1
--- /dev/null
+++ b/sys/modules/dtrace/lockstat/Makefile
@@ -0,0 +1,17 @@
+#	$NetBSD: Makefile,v 1.2 2015/09/10 19:57:48 riz Exp $
+
+.include "../../Makefile.inc"
+
+.PATH: ${NETBSDSRCDIR}/external/cddl/osnet/dev/lockstat
+
+KMOD=		dtrace_lockstat
+SRCS=		lockstat.c
+
+CPPFLAGS+=	-I${NETBSDSRCDIR}/external/cddl/osnet/sys
+CPPFLAGS+=	-I${NETBSDSRCDIR}/external/cddl/osnet/dist/uts/common
+CPPFLAGS+=	-DKDTRACE_HOOKS
+.if (!empty(MACHINE_ARCH:Mearm*) || !empty(MACHINE_ARCH:Marm*))
+CPPFLAGS+=	-D__HAVE_CPU_COUNTER
+.endif
+
+.include <bsd.kmodule.mk>
diff --git a/sys/modules/dtrace/netbsd32_syscall/Makefile b/sys/modules/dtrace/netbsd32_syscall/Makefile
new file mode 100644
index 0000000..33244c8
--- /dev/null
+++ b/sys/modules/dtrace/netbsd32_syscall/Makefile
@@ -0,0 +1,15 @@
+# $FreeBSD: src/sys/modules/dtrace/sdt/Makefile,v 1.1.4.1 2009/08/03 08:13:06 kensmith Exp $
+
+.include "../../Makefile.inc"
+
+.PATH: ${NETBSDSRCDIR}/external/cddl/osnet/dev/systrace
+
+KMOD=		dtrace_syscall_netbsd32
+SRCS=		systrace.c
+
+CPPFLAGS+=	-I${NETBSDSRCDIR}/external/cddl/osnet/sys \
+		-I${NETBSDSRCDIR}/external/cddl/osnet/dist/uts/common 
+
+CPPFLAGS+=	-Wno-unknown-pragmas
+
+.include <bsd.kmodule.mk>
diff --git a/sys/modules/dtrace/netbsd32_syscall/emultrace.h b/sys/modules/dtrace/netbsd32_syscall/emultrace.h
new file mode 100644
index 0000000..9c21d0b
--- /dev/null
+++ b/sys/modules/dtrace/netbsd32_syscall/emultrace.h
@@ -0,0 +1,13 @@
+/*
+ * The syscall arguments are processed into a DTrace argument array
+ * using a generated function. See sys/kern/makesyscalls.sh.
+ */
+#define COMPAT_NETBSD32
+
+#include <compat/netbsd32/netbsd32.h>
+#include <compat/netbsd32/netbsd32_syscall.h>
+#include <compat/netbsd32/netbsd32_syscallargs.h>
+#include <compat/netbsd32/netbsd32_systrace_args.c>
+
+#define emulname	netbsd32
+#define EMULNAME	NETBSD32
diff --git a/sys/modules/dtrace/profile/Makefile b/sys/modules/dtrace/profile/Makefile
index 530a41c..53851dd 100644
--- a/sys/modules/dtrace/profile/Makefile
+++ b/sys/modules/dtrace/profile/Makefile
@@ -1,10 +1,10 @@
-# $NetBSD: Makefile,v 1.1 2012/12/02 01:05:17 chs Exp $
+# $NetBSD: Makefile,v 1.2 2014/09/18 19:45:24 wiz Exp $
 
 .include "../../Makefile.inc"
 
 .PATH: ${NETBSDSRCDIR}/external/cddl/osnet/dev/profile
 
-KMOD=		profile
+KMOD=		dtrace_profile
 SRCS=		profile.c
 
 CPPFLAGS+=	-I${NETBSDSRCDIR}/external/cddl/osnet/sys \
diff --git a/sys/modules/dtrace/sdt/Makefile b/sys/modules/dtrace/sdt/Makefile
index d864c2f..9f96f71 100644
--- a/sys/modules/dtrace/sdt/Makefile
+++ b/sys/modules/dtrace/sdt/Makefile
@@ -4,7 +4,7 @@
 
 .PATH: ${NETBSDSRCDIR}/external/cddl/osnet/dev/sdt
 
-KMOD=		sdt
+KMOD=		dtrace_sdt
 SRCS=		sdt.c
 
 CPPFLAGS+=	-I${NETBSDSRCDIR}/external/cddl/osnet/sys \
diff --git a/sys/modules/dtrace/syscall/Makefile b/sys/modules/dtrace/syscall/Makefile
new file mode 100644
index 0000000..c6a7040
--- /dev/null
+++ b/sys/modules/dtrace/syscall/Makefile
@@ -0,0 +1,15 @@
+# $FreeBSD: src/sys/modules/dtrace/sdt/Makefile,v 1.1.4.1 2009/08/03 08:13:06 kensmith Exp $
+
+.include "../../Makefile.inc"
+
+.PATH: ${NETBSDSRCDIR}/external/cddl/osnet/dev/systrace
+
+KMOD=		dtrace_syscall
+SRCS=		systrace.c
+
+CPPFLAGS+=	-I${NETBSDSRCDIR}/external/cddl/osnet/sys \
+		-I${NETBSDSRCDIR}/external/cddl/osnet/dist/uts/common 
+
+CPPFLAGS+=	-Wno-unknown-pragmas
+
+.include <bsd.kmodule.mk>
diff --git a/sys/modules/dtrace/syscall/emultrace.h b/sys/modules/dtrace/syscall/emultrace.h
new file mode 100644
index 0000000..cbe6237
--- /dev/null
+++ b/sys/modules/dtrace/syscall/emultrace.h
@@ -0,0 +1,10 @@
+/*
+ * The syscall arguments are processed into a DTrace argument array
+ * using a generated function. See sys/kern/makesyscalls.sh.
+ */
+#include <sys/syscall.h>
+#include <kern/systrace_args.c>
+
+#define emulname	netbsd
+#define EMULNAME	NETBSD
+#define NATIVE
diff --git a/sys/rump/include/rump/rump_syscalls.h b/sys/rump/include/rump/rump_syscalls.h
index a97a0a1..5eff44d 100644
--- a/sys/rump/include/rump/rump_syscalls.h
+++ b/sys/rump/include/rump/rump_syscalls.h
@@ -1,4 +1,4 @@
-/* $NetBSD: rump_syscalls.h,v 1.79.2.1 2015/02/24 10:52:43 martin Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call protos in rump namespace.
diff --git a/sys/rump/librump/rumpkern/rump_syscalls.c b/sys/rump/librump/rumpkern/rump_syscalls.c
index 501bcfd..bef164b 100644
--- a/sys/rump/librump/rumpkern/rump_syscalls.c
+++ b/sys/rump/librump/rumpkern/rump_syscalls.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rump_syscalls.c,v 1.104.2.1 2015/02/24 10:52:43 martin Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call vector and marshalling for rump.
@@ -15,7 +15,7 @@
 
 #ifdef __NetBSD__
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rump_syscalls.c,v 1.104.2.1 2015/02/24 10:52:43 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #include <sys/fstypes.h>
 #include <sys/proc.h>
@@ -6407,1117 +6407,1117 @@ int rumpns_enosys(void);
 
 struct sysent rump_sysent[] = {
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 0 = syscall */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 0 = syscall */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 1 = exit */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 1 = exit */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 2 = fork */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 2 = fork */
 	{ ns(struct sys_read_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 3 = read */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 3 = read */
 	{ ns(struct sys_write_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 4 = write */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 4 = write */
 	{ ns(struct sys_open_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 5 = open */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 5 = open */
 	{ ns(struct sys_close_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 6 = close */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 6 = close */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 7 = wait4 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 7 = wait4 */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 8 = ocreat */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 8 = ocreat */
 	{ ns(struct sys_link_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 9 = link */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 9 = link */
 	{ ns(struct sys_unlink_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 10 = unlink */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 10 = unlink */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 11 = obsolete execv */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 11 = obsolete execv */
 	{ ns(struct sys_chdir_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 12 = chdir */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 12 = chdir */
 	{ ns(struct sys_fchdir_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 13 = fchdir */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 13 = fchdir */
 	{ ns(struct compat_50_sys_mknod_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 14 = compat_50_mknod */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 14 = compat_50_mknod */
 	{ ns(struct sys_chmod_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 15 = chmod */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 15 = chmod */
 	{ ns(struct sys_chown_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 16 = chown */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 16 = chown */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 17 = break */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 17 = break */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 18 = getfsstat */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 18 = getfsstat */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 19 = olseek */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 19 = olseek */
 	{ 0, 0, 0,
-	   (sy_call_t *)rumpns_enosys },	/* 20 = getpid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 20 = getpid */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 21 = mount */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 21 = mount */
 	{ ns(struct sys_unmount_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 22 = unmount */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 22 = unmount */
 	{ ns(struct sys_setuid_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 23 = setuid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 23 = setuid */
 	{ 0, 0, 0,
-	   (sy_call_t *)rumpns_enosys },	/* 24 = getuid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 24 = getuid */
 	{ 0, 0, 0,
-	   (sy_call_t *)rumpns_enosys },	/* 25 = geteuid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 25 = geteuid */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 26 = ptrace */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 26 = ptrace */
 	{ ns(struct sys_recvmsg_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 27 = recvmsg */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 27 = recvmsg */
 	{ ns(struct sys_sendmsg_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 28 = sendmsg */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 28 = sendmsg */
 	{ ns(struct sys_recvfrom_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 29 = recvfrom */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 29 = recvfrom */
 	{ ns(struct sys_accept_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 30 = accept */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 30 = accept */
 	{ ns(struct sys_getpeername_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 31 = getpeername */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 31 = getpeername */
 	{ ns(struct sys_getsockname_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 32 = getsockname */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 32 = getsockname */
 	{ ns(struct sys_access_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 33 = access */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 33 = access */
 	{ ns(struct sys_chflags_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 34 = chflags */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 34 = chflags */
 	{ ns(struct sys_fchflags_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 35 = fchflags */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 35 = fchflags */
 	{ 0, 0, 0,
-	   (sy_call_t *)rumpns_enosys },	/* 36 = sync */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 36 = sync */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 37 = kill */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 37 = kill */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 38 = stat43 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 38 = stat43 */
 	{ 0, 0, 0,
-	   (sy_call_t *)rumpns_enosys },	/* 39 = getppid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 39 = getppid */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 40 = lstat43 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 40 = lstat43 */
 	{ ns(struct sys_dup_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 41 = dup */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 41 = dup */
 	{ 0, 0, 0,
-	   (sy_call_t *)rumpns_enosys },	/* 42 = pipe */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 42 = pipe */
 	{ 0, 0, 0,
-	   (sy_call_t *)rumpns_enosys },	/* 43 = getegid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 43 = getegid */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 44 = profil */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 44 = profil */
 	{ ns(struct sys_ktrace_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 45 = ktrace */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 45 = ktrace */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 46 = sigaction13 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 46 = sigaction13 */
 	{ 0, 0, 0,
-	   (sy_call_t *)rumpns_enosys },	/* 47 = getgid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 47 = getgid */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 48 = sigprocmask13 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 48 = sigprocmask13 */
 	{ ns(struct sys___getlogin_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 49 = __getlogin */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 49 = __getlogin */
 	{ ns(struct sys___setlogin_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 50 = __setlogin */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 50 = __setlogin */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 51 = acct */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 51 = acct */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 52 = sigpending13 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 52 = sigpending13 */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 53 = sigaltstack13 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 53 = sigaltstack13 */
 	{ ns(struct sys_ioctl_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 54 = ioctl */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 54 = ioctl */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 55 = oreboot */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 55 = oreboot */
 	{ ns(struct sys_revoke_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 56 = revoke */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 56 = revoke */
 	{ ns(struct sys_symlink_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 57 = symlink */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 57 = symlink */
 	{ ns(struct sys_readlink_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 58 = readlink */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 58 = readlink */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 59 = execve */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 59 = execve */
 	{ ns(struct sys_umask_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 60 = umask */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 60 = umask */
 	{ ns(struct sys_chroot_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 61 = chroot */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 61 = chroot */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 62 = fstat43 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 62 = fstat43 */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 63 = ogetkerninfo */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 63 = ogetkerninfo */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 64 = ogetpagesize */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 64 = ogetpagesize */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 65 = msync */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 65 = msync */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 66 = vfork */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 66 = vfork */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 67 = obsolete vread */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 67 = obsolete vread */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 68 = obsolete vwrite */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 68 = obsolete vwrite */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 69 = sbrk */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 69 = sbrk */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 70 = sstk */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 70 = sstk */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 71 = ommap */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 71 = ommap */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 72 = vadvise */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 72 = vadvise */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 73 = munmap */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 73 = munmap */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 74 = mprotect */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 74 = mprotect */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 75 = madvise */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 75 = madvise */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 76 = obsolete vhangup */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 76 = obsolete vhangup */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 77 = obsolete vlimit */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 77 = obsolete vlimit */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 78 = mincore */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 78 = mincore */
 	{ ns(struct sys_getgroups_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 79 = getgroups */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 79 = getgroups */
 	{ ns(struct sys_setgroups_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 80 = setgroups */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 80 = setgroups */
 	{ 0, 0, 0,
-	   (sy_call_t *)rumpns_enosys },	/* 81 = getpgrp */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 81 = getpgrp */
 	{ ns(struct sys_setpgid_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 82 = setpgid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 82 = setpgid */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 83 = setitimer */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 83 = setitimer */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 84 = owait */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 84 = owait */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 85 = oswapon */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 85 = oswapon */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 86 = getitimer */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 86 = getitimer */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 87 = ogethostname */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 87 = ogethostname */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 88 = osethostname */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 88 = osethostname */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 89 = ogetdtablesize */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 89 = ogetdtablesize */
 	{ ns(struct sys_dup2_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 90 = dup2 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 90 = dup2 */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 91 = unimplemented getdopt */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 91 = unimplemented getdopt */
 	{ ns(struct sys_fcntl_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 92 = fcntl */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 92 = fcntl */
 	{ ns(struct compat_50_sys_select_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 93 = compat_50_select */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 93 = compat_50_select */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 94 = unimplemented setdopt */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 94 = unimplemented setdopt */
 	{ ns(struct sys_fsync_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 95 = fsync */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 95 = fsync */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 96 = setpriority */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 96 = setpriority */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 97 = socket */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 97 = socket */
 	{ ns(struct sys_connect_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 98 = connect */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 98 = connect */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 99 = oaccept */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 99 = oaccept */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 100 = getpriority */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 100 = getpriority */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 101 = osend */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 101 = osend */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 102 = orecv */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 102 = orecv */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 103 = sigreturn13 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 103 = sigreturn13 */
 	{ ns(struct sys_bind_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 104 = bind */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 104 = bind */
 	{ ns(struct sys_setsockopt_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 105 = setsockopt */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 105 = setsockopt */
 	{ ns(struct sys_listen_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 106 = listen */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 106 = listen */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 107 = obsolete vtimes */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 107 = obsolete vtimes */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 108 = osigvec */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 108 = osigvec */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 109 = osigblock */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 109 = osigblock */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 110 = osigsetmask */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 110 = osigsetmask */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 111 = sigsuspend13 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 111 = sigsuspend13 */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 112 = osigstack */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 112 = osigstack */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 113 = orecvmsg */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 113 = orecvmsg */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 114 = osendmsg */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 114 = osendmsg */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 115 = obsolete vtrace */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 115 = obsolete vtrace */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 116 = gettimeofday */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 116 = gettimeofday */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 117 = getrusage */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 117 = getrusage */
 	{ ns(struct sys_getsockopt_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 118 = getsockopt */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 118 = getsockopt */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 119 = obsolete resuba */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 119 = obsolete resuba */
 	{ ns(struct sys_readv_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 120 = readv */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 120 = readv */
 	{ ns(struct sys_writev_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 121 = writev */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 121 = writev */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 122 = settimeofday */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 122 = settimeofday */
 	{ ns(struct sys_fchown_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 123 = fchown */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 123 = fchown */
 	{ ns(struct sys_fchmod_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 124 = fchmod */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 124 = fchmod */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 125 = orecvfrom */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 125 = orecvfrom */
 	{ ns(struct sys_setreuid_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 126 = setreuid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 126 = setreuid */
 	{ ns(struct sys_setregid_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 127 = setregid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 127 = setregid */
 	{ ns(struct sys_rename_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 128 = rename */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 128 = rename */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 129 = otruncate */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 129 = otruncate */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 130 = oftruncate */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 130 = oftruncate */
 	{ ns(struct sys_flock_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 131 = flock */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 131 = flock */
 	{ ns(struct sys_mkfifo_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 132 = mkfifo */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 132 = mkfifo */
 	{ ns(struct sys_sendto_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 133 = sendto */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 133 = sendto */
 	{ ns(struct sys_shutdown_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 134 = shutdown */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 134 = shutdown */
 	{ ns(struct sys_socketpair_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 135 = socketpair */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 135 = socketpair */
 	{ ns(struct sys_mkdir_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 136 = mkdir */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 136 = mkdir */
 	{ ns(struct sys_rmdir_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 137 = rmdir */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 137 = rmdir */
 	{ ns(struct compat_50_sys_utimes_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 138 = compat_50_utimes */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 138 = compat_50_utimes */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 139 = obsolete 4.2 sigreturn */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 139 = obsolete 4.2 sigreturn */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 140 = adjtime */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 140 = adjtime */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 141 = ogetpeername */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 141 = ogetpeername */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 142 = ogethostid */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 142 = ogethostid */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 143 = osethostid */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 143 = osethostid */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 144 = ogetrlimit */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 144 = ogetrlimit */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 145 = osetrlimit */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 145 = osetrlimit */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 146 = okillpg */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 146 = okillpg */
 	{ 0, 0, 0,
-	   (sy_call_t *)rumpns_enosys },	/* 147 = setsid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 147 = setsid */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 148 = quotactl */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 148 = quotactl */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 149 = oquota */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 149 = oquota */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 150 = ogetsockname */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 150 = ogetsockname */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 151 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 151 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 152 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 152 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 153 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 153 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 154 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 154 = unimplemented */
 	{ ns(struct sys_nfssvc_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 155 = nfssvc */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 155 = nfssvc */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 156 = ogetdirentries */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 156 = ogetdirentries */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 157 = statfs */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 157 = statfs */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 158 = fstatfs */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 158 = fstatfs */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 159 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 159 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 160 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 160 = unimplemented */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 161 = getfh */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 161 = getfh */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 162 = ogetdomainname */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 162 = ogetdomainname */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 163 = osetdomainname */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 163 = osetdomainname */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 164 = ouname */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 164 = ouname */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 165 = sysarch */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 165 = sysarch */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 166 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 166 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 167 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 167 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 168 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 168 = unimplemented */
 #if (defined(SYSVSEM) || !defined(_KERNEL_OPT)) && !defined(_LP64)
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 169 = osemsys */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 169 = osemsys */
 #else
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 169 = excluded 1.0 semsys */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 169 = excluded 1.0 semsys */
 #endif
 #if (defined(SYSVMSG) || !defined(_KERNEL_OPT)) && !defined(_LP64)
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 170 = omsgsys */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 170 = omsgsys */
 #else
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 170 = excluded 1.0 msgsys */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 170 = excluded 1.0 msgsys */
 #endif
 #if (defined(SYSVSHM) || !defined(_KERNEL_OPT)) && !defined(_LP64)
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 171 = oshmsys */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 171 = oshmsys */
 #else
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 171 = excluded 1.0 shmsys */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 171 = excluded 1.0 shmsys */
 #endif
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 172 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 172 = unimplemented */
 	{ ns(struct sys_pread_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 173 = pread */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 173 = pread */
 	{ ns(struct sys_pwrite_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 174 = pwrite */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 174 = pwrite */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 175 = ntp_gettime */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 175 = ntp_gettime */
 #if defined(NTP) || !defined(_KERNEL_OPT)
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 176 = ntp_adjtime */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 176 = ntp_adjtime */
 #else
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 176 = excluded ntp_adjtime */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 176 = excluded ntp_adjtime */
 #endif
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 177 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 177 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 178 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 178 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 179 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 179 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 180 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 180 = unimplemented */
 	{ ns(struct sys_setgid_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 181 = setgid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 181 = setgid */
 	{ ns(struct sys_setegid_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 182 = setegid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 182 = setegid */
 	{ ns(struct sys_seteuid_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 183 = seteuid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 183 = seteuid */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 184 = lfs_bmapv */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 184 = lfs_bmapv */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 185 = lfs_markv */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 185 = lfs_markv */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 186 = lfs_segclean */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 186 = lfs_segclean */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 187 = lfs_segwait */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 187 = lfs_segwait */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 188 = stat12 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 188 = stat12 */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 189 = fstat12 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 189 = fstat12 */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 190 = lstat12 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 190 = lstat12 */
 	{ ns(struct sys_pathconf_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 191 = pathconf */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 191 = pathconf */
 	{ ns(struct sys_fpathconf_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 192 = fpathconf */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 192 = fpathconf */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 193 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 193 = unimplemented */
 	{ ns(struct sys_getrlimit_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 194 = getrlimit */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 194 = getrlimit */
 	{ ns(struct sys_setrlimit_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 195 = setrlimit */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 195 = setrlimit */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 196 = getdirentries */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 196 = getdirentries */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 197 = mmap */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 197 = mmap */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 198 = __syscall */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 198 = __syscall */
 	{ ns(struct sys_lseek_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 199 = lseek */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 199 = lseek */
 	{ ns(struct sys_truncate_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 200 = truncate */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 200 = truncate */
 	{ ns(struct sys_ftruncate_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 201 = ftruncate */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 201 = ftruncate */
 	{ ns(struct sys___sysctl_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 202 = __sysctl */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 202 = __sysctl */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 203 = mlock */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 203 = mlock */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 204 = munlock */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 204 = munlock */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 205 = undelete */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 205 = undelete */
 	{ ns(struct compat_50_sys_futimes_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 206 = compat_50_futimes */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 206 = compat_50_futimes */
 	{ ns(struct sys_getpgid_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 207 = getpgid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 207 = getpgid */
 	{ ns(struct sys_reboot_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 208 = reboot */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 208 = reboot */
 	{ ns(struct sys_poll_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 209 = poll */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 209 = poll */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 210 = afssys */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 210 = afssys */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 211 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 211 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 212 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 212 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 213 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 213 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 214 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 214 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 215 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 215 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 216 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 216 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 217 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 217 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 218 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 218 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 219 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 219 = unimplemented */
 #if defined(SYSVSEM) || !defined(_KERNEL_OPT)
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 220 = __semctl */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 220 = __semctl */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 221 = semget */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 221 = semget */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 222 = semop */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 222 = semop */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 223 = semconfig */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 223 = semconfig */
 #else
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 220 = excluded compat_14_semctl */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 220 = excluded compat_14_semctl */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 221 = excluded semget */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 221 = excluded semget */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 222 = excluded semop */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 222 = excluded semop */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 223 = excluded semconfig */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 223 = excluded semconfig */
 #endif
 #if defined(SYSVMSG) || !defined(_KERNEL_OPT)
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 224 = msgctl */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 224 = msgctl */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 225 = msgget */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 225 = msgget */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 226 = msgsnd */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 226 = msgsnd */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 227 = msgrcv */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 227 = msgrcv */
 #else
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 224 = excluded compat_14_msgctl */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 224 = excluded compat_14_msgctl */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 225 = excluded msgget */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 225 = excluded msgget */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 226 = excluded msgsnd */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 226 = excluded msgsnd */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 227 = excluded msgrcv */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 227 = excluded msgrcv */
 #endif
 #if defined(SYSVSHM) || !defined(_KERNEL_OPT)
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 228 = shmat */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 228 = shmat */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 229 = shmctl */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 229 = shmctl */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 230 = shmdt */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 230 = shmdt */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 231 = shmget */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 231 = shmget */
 #else
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 228 = excluded shmat */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 228 = excluded shmat */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 229 = excluded compat_14_shmctl */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 229 = excluded compat_14_shmctl */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 230 = excluded shmdt */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 230 = excluded shmdt */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 231 = excluded shmget */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 231 = excluded shmget */
 #endif
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 232 = clock_gettime */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 232 = clock_gettime */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 233 = clock_settime */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 233 = clock_settime */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 234 = clock_getres */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 234 = clock_getres */
 	{ ns(struct sys_timer_create_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 235 = timer_create */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 235 = timer_create */
 	{ ns(struct sys_timer_delete_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 236 = timer_delete */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 236 = timer_delete */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 237 = timer_settime */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 237 = timer_settime */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 238 = timer_gettime */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 238 = timer_gettime */
 	{ ns(struct sys_timer_getoverrun_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 239 = timer_getoverrun */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 239 = timer_getoverrun */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 240 = nanosleep */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 240 = nanosleep */
 	{ ns(struct sys_fdatasync_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 241 = fdatasync */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 241 = fdatasync */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 242 = mlockall */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 242 = mlockall */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 243 = munlockall */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 243 = munlockall */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 244 = __sigtimedwait */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 244 = __sigtimedwait */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 245 = sigqueueinfo */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 245 = sigqueueinfo */
 	{ ns(struct sys_modctl_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 246 = modctl */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 246 = modctl */
 	{ ns(struct sys__ksem_init_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 247 = _ksem_init */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 247 = _ksem_init */
 	{ ns(struct sys__ksem_open_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 248 = _ksem_open */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 248 = _ksem_open */
 	{ ns(struct sys__ksem_unlink_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 249 = _ksem_unlink */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 249 = _ksem_unlink */
 	{ ns(struct sys__ksem_close_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 250 = _ksem_close */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 250 = _ksem_close */
 	{ ns(struct sys__ksem_post_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 251 = _ksem_post */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 251 = _ksem_post */
 	{ ns(struct sys__ksem_wait_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 252 = _ksem_wait */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 252 = _ksem_wait */
 	{ ns(struct sys__ksem_trywait_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 253 = _ksem_trywait */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 253 = _ksem_trywait */
 	{ ns(struct sys__ksem_getvalue_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 254 = _ksem_getvalue */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 254 = _ksem_getvalue */
 	{ ns(struct sys__ksem_destroy_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 255 = _ksem_destroy */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 255 = _ksem_destroy */
 	{ ns(struct sys__ksem_timedwait_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 256 = _ksem_timedwait */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 256 = _ksem_timedwait */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 257 = mq_open */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 257 = mq_open */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 258 = mq_close */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 258 = mq_close */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 259 = mq_unlink */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 259 = mq_unlink */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 260 = mq_getattr */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 260 = mq_getattr */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 261 = mq_setattr */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 261 = mq_setattr */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 262 = mq_notify */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 262 = mq_notify */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 263 = mq_send */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 263 = mq_send */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 264 = mq_receive */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 264 = mq_receive */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 265 = mq_timedsend */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 265 = mq_timedsend */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 266 = mq_timedreceive */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 266 = mq_timedreceive */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 267 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 267 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 268 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 268 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 269 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 269 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 270 = __posix_rename */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 270 = __posix_rename */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 271 = swapctl */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 271 = swapctl */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 272 = getdents */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 272 = getdents */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 273 = minherit */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 273 = minherit */
 	{ ns(struct sys_lchmod_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 274 = lchmod */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 274 = lchmod */
 	{ ns(struct sys_lchown_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 275 = lchown */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 275 = lchown */
 	{ ns(struct compat_50_sys_lutimes_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 276 = compat_50_lutimes */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 276 = compat_50_lutimes */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 277 = __msync13 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 277 = __msync13 */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 278 = __stat13 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 278 = __stat13 */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 279 = __fstat13 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 279 = __fstat13 */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 280 = __lstat13 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 280 = __lstat13 */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 281 = __sigaltstack14 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 281 = __sigaltstack14 */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 282 = __vfork14 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 282 = __vfork14 */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 283 = __posix_chown */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 283 = __posix_chown */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 284 = __posix_fchown */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 284 = __posix_fchown */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 285 = __posix_lchown */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 285 = __posix_lchown */
 	{ ns(struct sys_getsid_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 286 = getsid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 286 = getsid */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 287 = __clone */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 287 = __clone */
 	{ ns(struct sys_fktrace_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 288 = fktrace */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 288 = fktrace */
 	{ ns(struct sys_preadv_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 289 = preadv */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 289 = preadv */
 	{ ns(struct sys_pwritev_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 290 = pwritev */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 290 = pwritev */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 291 = __sigaction14 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 291 = __sigaction14 */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 292 = __sigpending14 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 292 = __sigpending14 */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 293 = __sigprocmask14 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 293 = __sigprocmask14 */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 294 = __sigsuspend14 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 294 = __sigsuspend14 */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 295 = __sigreturn14 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 295 = __sigreturn14 */
 	{ ns(struct sys___getcwd_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 296 = __getcwd */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 296 = __getcwd */
 	{ ns(struct sys_fchroot_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 297 = fchroot */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 297 = fchroot */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 298 = fhopen */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 298 = fhopen */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 299 = fhstat */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 299 = fhstat */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 300 = fhstatfs */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 300 = fhstatfs */
 #if defined(SYSVSEM) || !defined(_KERNEL_OPT)
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 301 = ____semctl13 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 301 = ____semctl13 */
 #else
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 301 = excluded ____semctl13 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 301 = excluded ____semctl13 */
 #endif
 #if defined(SYSVMSG) || !defined(_KERNEL_OPT)
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 302 = __msgctl13 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 302 = __msgctl13 */
 #else
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 302 = excluded __msgctl13 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 302 = excluded __msgctl13 */
 #endif
 #if defined(SYSVSHM) || !defined(_KERNEL_OPT)
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 303 = __shmctl13 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 303 = __shmctl13 */
 #else
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 303 = excluded __shmctl13 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 303 = excluded __shmctl13 */
 #endif
 	{ ns(struct sys_lchflags_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 304 = lchflags */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 304 = lchflags */
 	{ 0, 0, 0,
-	   (sy_call_t *)rumpns_enosys },	/* 305 = issetugid */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 305 = issetugid */
 	{ ns(struct sys_utrace_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 306 = utrace */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 306 = utrace */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 307 = getcontext */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 307 = getcontext */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 308 = setcontext */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 308 = setcontext */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 309 = _lwp_create */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 309 = _lwp_create */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 310 = _lwp_exit */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 310 = _lwp_exit */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 311 = _lwp_self */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 311 = _lwp_self */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 312 = _lwp_wait */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 312 = _lwp_wait */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 313 = _lwp_suspend */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 313 = _lwp_suspend */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 314 = _lwp_continue */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 314 = _lwp_continue */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 315 = _lwp_wakeup */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 315 = _lwp_wakeup */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 316 = _lwp_getprivate */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 316 = _lwp_getprivate */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 317 = _lwp_setprivate */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 317 = _lwp_setprivate */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 318 = _lwp_kill */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 318 = _lwp_kill */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 319 = _lwp_detach */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 319 = _lwp_detach */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 320 = _lwp_park */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 320 = _lwp_park */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 321 = _lwp_unpark */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 321 = _lwp_unpark */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 322 = _lwp_unpark_all */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 322 = _lwp_unpark_all */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 323 = _lwp_setname */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 323 = _lwp_setname */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 324 = _lwp_getname */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 324 = _lwp_getname */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 325 = _lwp_ctl */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 325 = _lwp_ctl */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 326 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 326 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 327 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 327 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 328 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 328 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 329 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 329 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 330 = sa_register */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 330 = sa_register */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 331 = sa_stacks */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 331 = sa_stacks */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 332 = sa_enable */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 332 = sa_enable */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 333 = sa_setconcurrency */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 333 = sa_setconcurrency */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 334 = sa_yield */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 334 = sa_yield */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 335 = sa_preempt */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 335 = sa_preempt */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 336 = obsolete sys_sa_unblockyield */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 336 = obsolete sys_sa_unblockyield */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 337 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 337 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 338 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 338 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 339 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 339 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 340 = __sigaction_sigtramp */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 340 = __sigaction_sigtramp */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 341 = pmc_get_info */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 341 = pmc_get_info */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 342 = pmc_control */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 342 = pmc_control */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 343 = rasctl */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 343 = rasctl */
 	{ 0, 0, 0,
-	   (sy_call_t *)rumpns_enosys },	/* 344 = kqueue */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 344 = kqueue */
 	{ ns(struct compat_50_sys_kevent_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 345 = compat_50_kevent */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 345 = compat_50_kevent */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 346 = _sched_setparam */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 346 = _sched_setparam */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 347 = _sched_getparam */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 347 = _sched_getparam */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 348 = _sched_setaffinity */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 348 = _sched_setaffinity */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 349 = _sched_getaffinity */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 349 = _sched_getaffinity */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 350 = sched_yield */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 350 = sched_yield */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 351 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 351 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 352 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 352 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 353 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 353 = unimplemented */
 	{ ns(struct sys_fsync_range_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 354 = fsync_range */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 354 = fsync_range */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 355 = uuidgen */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 355 = uuidgen */
 	{ ns(struct sys_getvfsstat_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 356 = getvfsstat */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 356 = getvfsstat */
 	{ ns(struct sys_statvfs1_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 357 = statvfs1 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 357 = statvfs1 */
 	{ ns(struct sys_fstatvfs1_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 358 = fstatvfs1 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 358 = fstatvfs1 */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 359 = fhstatvfs1 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 359 = fhstatvfs1 */
 	{ ns(struct sys_extattrctl_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 360 = extattrctl */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 360 = extattrctl */
 	{ ns(struct sys_extattr_set_file_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 361 = extattr_set_file */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 361 = extattr_set_file */
 	{ ns(struct sys_extattr_get_file_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 362 = extattr_get_file */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 362 = extattr_get_file */
 	{ ns(struct sys_extattr_delete_file_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 363 = extattr_delete_file */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 363 = extattr_delete_file */
 	{ ns(struct sys_extattr_set_fd_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 364 = extattr_set_fd */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 364 = extattr_set_fd */
 	{ ns(struct sys_extattr_get_fd_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 365 = extattr_get_fd */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 365 = extattr_get_fd */
 	{ ns(struct sys_extattr_delete_fd_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 366 = extattr_delete_fd */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 366 = extattr_delete_fd */
 	{ ns(struct sys_extattr_set_link_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 367 = extattr_set_link */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 367 = extattr_set_link */
 	{ ns(struct sys_extattr_get_link_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 368 = extattr_get_link */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 368 = extattr_get_link */
 	{ ns(struct sys_extattr_delete_link_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 369 = extattr_delete_link */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 369 = extattr_delete_link */
 	{ ns(struct sys_extattr_list_fd_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 370 = extattr_list_fd */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 370 = extattr_list_fd */
 	{ ns(struct sys_extattr_list_file_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 371 = extattr_list_file */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 371 = extattr_list_file */
 	{ ns(struct sys_extattr_list_link_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 372 = extattr_list_link */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 372 = extattr_list_link */
 	{ ns(struct compat_50_sys_pselect_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 373 = compat_50_pselect */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 373 = compat_50_pselect */
 	{ ns(struct compat_50_sys_pollts_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 374 = compat_50_pollts */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 374 = compat_50_pollts */
 	{ ns(struct sys_setxattr_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 375 = setxattr */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 375 = setxattr */
 	{ ns(struct sys_lsetxattr_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 376 = lsetxattr */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 376 = lsetxattr */
 	{ ns(struct sys_fsetxattr_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 377 = fsetxattr */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 377 = fsetxattr */
 	{ ns(struct sys_getxattr_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 378 = getxattr */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 378 = getxattr */
 	{ ns(struct sys_lgetxattr_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 379 = lgetxattr */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 379 = lgetxattr */
 	{ ns(struct sys_fgetxattr_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 380 = fgetxattr */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 380 = fgetxattr */
 	{ ns(struct sys_listxattr_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 381 = listxattr */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 381 = listxattr */
 	{ ns(struct sys_llistxattr_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 382 = llistxattr */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 382 = llistxattr */
 	{ ns(struct sys_flistxattr_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 383 = flistxattr */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 383 = flistxattr */
 	{ ns(struct sys_removexattr_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 384 = removexattr */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 384 = removexattr */
 	{ ns(struct sys_lremovexattr_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 385 = lremovexattr */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 385 = lremovexattr */
 	{ ns(struct sys_fremovexattr_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 386 = fremovexattr */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 386 = fremovexattr */
 	{ ns(struct compat_50_sys___stat30_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 387 = compat_50___stat30 */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 387 = compat_50___stat30 */
 	{ ns(struct compat_50_sys___fstat30_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 388 = compat_50___fstat30 */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 388 = compat_50___fstat30 */
 	{ ns(struct compat_50_sys___lstat30_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 389 = compat_50___lstat30 */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 389 = compat_50___lstat30 */
 	{ ns(struct sys___getdents30_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 390 = __getdents30 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 390 = __getdents30 */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 391 = ignored old posix_fadvise */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 391 = ignored old posix_fadvise */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 392 = __fhstat30 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 392 = __fhstat30 */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 393 = __ntp_gettime30 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 393 = __ntp_gettime30 */
 	{ ns(struct sys___socket30_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 394 = __socket30 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 394 = __socket30 */
 	{ ns(struct sys___getfh30_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 395 = __getfh30 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 395 = __getfh30 */
 	{ ns(struct sys___fhopen40_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 396 = __fhopen40 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 396 = __fhopen40 */
 	{ ns(struct sys___fhstatvfs140_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 397 = __fhstatvfs140 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 397 = __fhstatvfs140 */
 	{ ns(struct compat_50_sys___fhstat40_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 398 = compat_50___fhstat40 */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 398 = compat_50___fhstat40 */
 	{ ns(struct sys_aio_cancel_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 399 = aio_cancel */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 399 = aio_cancel */
 	{ ns(struct sys_aio_error_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 400 = aio_error */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 400 = aio_error */
 	{ ns(struct sys_aio_fsync_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 401 = aio_fsync */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 401 = aio_fsync */
 	{ ns(struct sys_aio_read_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 402 = aio_read */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 402 = aio_read */
 	{ ns(struct sys_aio_return_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 403 = aio_return */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 403 = aio_return */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 404 = aio_suspend */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 404 = aio_suspend */
 	{ ns(struct sys_aio_write_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 405 = aio_write */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 405 = aio_write */
 	{ ns(struct sys_lio_listio_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 406 = lio_listio */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 406 = lio_listio */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 407 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 407 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 408 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 408 = unimplemented */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 409 = unimplemented */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 409 = unimplemented */
 	{ ns(struct sys___mount50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 410 = __mount50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 410 = __mount50 */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 411 = mremap */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 411 = mremap */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 412 = pset_create */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 412 = pset_create */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 413 = pset_destroy */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 413 = pset_destroy */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 414 = pset_assign */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 414 = pset_assign */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 415 = _pset_bind */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 415 = _pset_bind */
 	{ ns(struct sys___posix_fadvise50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 416 = __posix_fadvise50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 416 = __posix_fadvise50 */
 	{ ns(struct sys___select50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 417 = __select50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 417 = __select50 */
 	{ ns(struct sys___gettimeofday50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 418 = __gettimeofday50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 418 = __gettimeofday50 */
 	{ ns(struct sys___settimeofday50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 419 = __settimeofday50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 419 = __settimeofday50 */
 	{ ns(struct sys___utimes50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 420 = __utimes50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 420 = __utimes50 */
 	{ ns(struct sys___adjtime50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 421 = __adjtime50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 421 = __adjtime50 */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 422 = __lfs_segwait50 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 422 = __lfs_segwait50 */
 	{ ns(struct sys___futimes50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 423 = __futimes50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 423 = __futimes50 */
 	{ ns(struct sys___lutimes50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 424 = __lutimes50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 424 = __lutimes50 */
 	{ ns(struct sys___setitimer50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 425 = __setitimer50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 425 = __setitimer50 */
 	{ ns(struct sys___getitimer50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 426 = __getitimer50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 426 = __getitimer50 */
 	{ ns(struct sys___clock_gettime50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 427 = __clock_gettime50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 427 = __clock_gettime50 */
 	{ ns(struct sys___clock_settime50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 428 = __clock_settime50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 428 = __clock_settime50 */
 	{ ns(struct sys___clock_getres50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 429 = __clock_getres50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 429 = __clock_getres50 */
 	{ ns(struct sys___nanosleep50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 430 = __nanosleep50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 430 = __nanosleep50 */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 431 = ____sigtimedwait50 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 431 = ____sigtimedwait50 */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 432 = __mq_timedsend50 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 432 = __mq_timedsend50 */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 433 = __mq_timedreceive50 */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 433 = __mq_timedreceive50 */
 	{ 0, 0, 0,
-	    (sy_call_t *)rumpns_sys_nomodule }, 	/* 434 = _lwp_park */
+	    (sy_call_t *)rumpns_sys_nomodule, 0, 0 }, 	/* 434 = _lwp_park */
 	{ ns(struct sys___kevent50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 435 = __kevent50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 435 = __kevent50 */
 	{ ns(struct sys___pselect50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 436 = __pselect50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 436 = __pselect50 */
 	{ ns(struct sys___pollts50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 437 = __pollts50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 437 = __pollts50 */
 	{ ns(struct sys___aio_suspend50_args), 0,
-	   (sy_call_t *)rumpns_sys_nomodule },	/* 438 = __aio_suspend50 */
+	   (sy_call_t *)rumpns_sys_nomodule, 0, 0 },	/* 438 = __aio_suspend50 */
 	{ ns(struct sys___stat50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 439 = __stat50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 439 = __stat50 */
 	{ ns(struct sys___fstat50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 440 = __fstat50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 440 = __fstat50 */
 	{ ns(struct sys___lstat50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 441 = __lstat50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 441 = __lstat50 */
 #if defined(SYSVSEM) || !defined(_KERNEL_OPT)
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 442 = ____semctl50 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 442 = ____semctl50 */
 #else
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 442 = excluded ____semctl50 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 442 = excluded ____semctl50 */
 #endif
 #if defined(SYSVSHM) || !defined(_KERNEL_OPT)
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 443 = __shmctl50 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 443 = __shmctl50 */
 #else
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 443 = excluded ____shmctl50 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 443 = excluded ____shmctl50 */
 #endif
 #if defined(SYSVMSG) || !defined(_KERNEL_OPT)
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 444 = __msgctl50 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 444 = __msgctl50 */
 #else
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 444 = excluded ____msgctl50 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 444 = excluded ____msgctl50 */
 #endif
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 445 = __getrusage50 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 445 = __getrusage50 */
 	{ ns(struct sys___timer_settime50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 446 = __timer_settime50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 446 = __timer_settime50 */
 	{ ns(struct sys___timer_gettime50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 447 = __timer_gettime50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 447 = __timer_gettime50 */
 #if defined(NTP) || !defined(_KERNEL_OPT)
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 448 = __ntp_gettime50 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 448 = __ntp_gettime50 */
 #else
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 448 = excluded ___ntp_gettime50 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 448 = excluded ___ntp_gettime50 */
 #endif
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 449 = __wait450 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 449 = __wait450 */
 	{ ns(struct sys___mknod50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 450 = __mknod50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 450 = __mknod50 */
 	{ ns(struct sys___fhstat50_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 451 = __fhstat50 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 451 = __fhstat50 */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 452 = obsolete 5.99 quotactl */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 452 = obsolete 5.99 quotactl */
 	{ ns(struct sys_pipe2_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 453 = pipe2 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 453 = pipe2 */
 	{ ns(struct sys_dup3_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 454 = dup3 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 454 = dup3 */
 	{ ns(struct sys_kqueue1_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 455 = kqueue1 */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 455 = kqueue1 */
 	{ ns(struct sys_paccept_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 456 = paccept */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 456 = paccept */
 	{ ns(struct sys_linkat_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 457 = linkat */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 457 = linkat */
 	{ ns(struct sys_renameat_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 458 = renameat */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 458 = renameat */
 	{ ns(struct sys_mkfifoat_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 459 = mkfifoat */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 459 = mkfifoat */
 	{ ns(struct sys_mknodat_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 460 = mknodat */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 460 = mknodat */
 	{ ns(struct sys_mkdirat_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 461 = mkdirat */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 461 = mkdirat */
 	{ ns(struct sys_faccessat_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 462 = faccessat */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 462 = faccessat */
 	{ ns(struct sys_fchmodat_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 463 = fchmodat */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 463 = fchmodat */
 	{ ns(struct sys_fchownat_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 464 = fchownat */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 464 = fchownat */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 465 = fexecve */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 465 = fexecve */
 	{ ns(struct sys_fstatat_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 466 = fstatat */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 466 = fstatat */
 	{ ns(struct sys_utimensat_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 467 = utimensat */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 467 = utimensat */
 	{ ns(struct sys_openat_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 468 = openat */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 468 = openat */
 	{ ns(struct sys_readlinkat_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 469 = readlinkat */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 469 = readlinkat */
 	{ ns(struct sys_symlinkat_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 470 = symlinkat */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 470 = symlinkat */
 	{ ns(struct sys_unlinkat_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 471 = unlinkat */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 471 = unlinkat */
 	{ ns(struct sys_futimens_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 472 = futimens */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 472 = futimens */
 	{ ns(struct sys___quotactl_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 473 = __quotactl */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 473 = __quotactl */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 474 = posix_spawn */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 474 = posix_spawn */
 	{ ns(struct sys_recvmmsg_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 475 = recvmmsg */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 475 = recvmmsg */
 	{ ns(struct sys_sendmmsg_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 476 = sendmmsg */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 476 = sendmmsg */
 	{ ns(struct sys_clock_nanosleep_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 477 = clock_nanosleep */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 477 = clock_nanosleep */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys }, 	/* 478 = ___lwp_park60 */
+	    (sy_call_t *)rumpns_enosys, 0, 0 }, 	/* 478 = ___lwp_park60 */
 	{ ns(struct sys_posix_fallocate_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 479 = posix_fallocate */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 479 = posix_fallocate */
 	{ ns(struct sys_fdiscard_args), 0,
-	   (sy_call_t *)rumpns_enosys },	/* 480 = fdiscard */
+	   (sy_call_t *)rumpns_enosys, 0, 0 },	/* 480 = fdiscard */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 481 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 481 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 482 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 482 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 483 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 483 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 484 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 484 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 485 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 485 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 486 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 486 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 487 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 487 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 488 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 488 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 489 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 489 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 490 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 490 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 491 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 491 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 492 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 492 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 493 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 493 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 494 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 494 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 495 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 495 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 496 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 496 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 497 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 497 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 498 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 498 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 499 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 499 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 500 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 500 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 501 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 501 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 502 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 502 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 503 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 503 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 504 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 504 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 505 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 505 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 506 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 506 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 507 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 507 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 508 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 508 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 509 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 509 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 510 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 510 = filler */
 	{ 0, 0, SYCALL_NOSYS,
-	    (sy_call_t *)rumpns_enosys },		/* 511 = filler */
+	    (sy_call_t *)rumpns_enosys, 0, 0 },		/* 511 = filler */
 };
 CTASSERT(__arraycount(rump_sysent) == SYS_NSYSENT);
 __strong_alias(rumpns_sysent,rump_sysent);
diff --git a/sys/sys/kauth.h b/sys/sys/kauth.h
index 6e53424..747b63a 100644
--- a/sys/sys/kauth.h
+++ b/sys/sys/kauth.h
@@ -1,4 +1,4 @@
-/* $NetBSD: kauth.h,v 1.71 2013/03/18 19:35:46 plunky Exp $ */
+/* $NetBSD: kauth.h,v 1.73 2015/10/06 22:13:39 christos Exp $ */
 
 /*-
  * Copyright (c) 2005, 2006 Elad Efrat <elad@NetBSD.org>  
@@ -54,6 +54,38 @@ typedef int (*kauth_scope_callback_t)(kauth_cred_t, kauth_action_t,
 				      void *, void *, void *, void *, void *);
 typedef	struct kauth_key       *kauth_key_t;
 
+#ifdef __KAUTH_PRIVATE	/* For the debugger */
+/* 
+ * Credentials.
+ *
+ * A subset of this structure is used in kvm(3) (src/lib/libkvm/kvm_proc.c)
+ * and should be synchronized with this structure when the update is
+ * relevant.
+ */
+struct kauth_cred {
+	/*
+	 * Ensure that the first part of the credential resides in its own
+	 * cache line.  Due to sharing there aren't many kauth_creds in a
+	 * typical system, but the reference counts change very often.
+	 * Keeping it separate from the rest of the data prevents false
+	 * sharing between CPUs.
+	 */
+	u_int cr_refcnt;		/* reference count */
+#if COHERENCY_UNIT > 4
+	uint8_t cr_pad[COHERENCY_UNIT - 4];
+#endif
+	uid_t cr_uid;			/* user id */
+	uid_t cr_euid;			/* effective user id */
+	uid_t cr_svuid;			/* saved effective user id */
+	gid_t cr_gid;			/* group id */
+	gid_t cr_egid;			/* effective group id */
+	gid_t cr_svgid;			/* saved effective group id */
+	u_int cr_ngroups;		/* number of groups */
+	gid_t cr_groups[NGROUPS];	/* group memberships */
+	specificdata_reference cr_sd;	/* specific data */
+};
+#endif
+
 /*
  * Possible return values for a listener.
  */
diff --git a/sys/sys/module.h b/sys/sys/module.h
index d5c0be9..1651767 100644
--- a/sys/sys/module.h
+++ b/sys/sys/module.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: module.h,v 1.35 2014/04/23 23:25:45 pooka Exp $	*/
+/*	$NetBSD: module.h,v 1.36 2015/03/07 03:19:06 christos Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -114,11 +114,11 @@ struct modinfo_chain {
 };
 LIST_HEAD(modinfo_boot_chain, modinfo_chain);
 #define _MODULE_REGISTER(name)						\
-static void modctor_##name(void) __attribute__((constructor));		\
-static void modctor_##name(void)					\
+static void __CONCAT(modctor_,name)(void) __attribute__((__constructor__));\
+static void __CONCAT(modctor_,name)(void)				\
 {									\
 	static struct modinfo_chain mc = {				\
-		.mc_info = &name##_modinfo,				\
+		.mc_info = &__CONCAT(name,_modinfo),			\
 	};								\
 	extern struct modinfo_boot_chain modinfo_boot_chain;		\
 	LIST_INSERT_HEAD(&modinfo_boot_chain, &mc, mc_entries);		\
@@ -126,17 +126,17 @@ static void modctor_##name(void)					\
 
 #else /* RUMP_USE_CTOR */
 
-#define _MODULE_REGISTER(name) __link_set_add_rodata(modules, name##_modinfo);
+#define _MODULE_REGISTER(name) __link_set_add_rodata(modules, __CONCAT(name,_modinfo));
 
 #endif /* RUMP_USE_CTOR */
 
 #define	MODULE(class, name, required)				\
-static int name##_modcmd(modcmd_t, void *);			\
-static const modinfo_t name##_modinfo = {			\
+static int __CONCAT(name,_modcmd)(modcmd_t, void *);		\
+static const modinfo_t __CONCAT(name,_modinfo) = {		\
 	.mi_version = __NetBSD_Version__,			\
 	.mi_class = (class),					\
-	.mi_modcmd = name##_modcmd,				\
-	.mi_name = #name,					\
+	.mi_modcmd = __CONCAT(name,_modcmd),			\
+	.mi_name = __STRING(name),				\
 	.mi_required = (required)				\
 }; 								\
 _MODULE_REGISTER(name)
diff --git a/sys/sys/param.h b/sys/sys/param.h
index f543bef..2fb8ef0 100644
--- a/sys/sys/param.h
+++ b/sys/sys/param.h
@@ -63,7 +63,7 @@
  *	2.99.9		(299000900)
  */
 
-#define	__NetBSD_Version__	700000001	/* NetBSD 7.0_STABLE */
+#define	__NetBSD_Version__	700000002	/* NetBSD 7.0_STABLE */
 
 #define __NetBSD_Prereq__(M,m,p) (((((M) * 100000000) + \
     (m) * 1000000) + (p) * 100) <= __NetBSD_Version__)
diff --git a/sys/sys/proc.h b/sys/sys/proc.h
index dd34d8e..d2bde67 100644
--- a/sys/sys/proc.h
+++ b/sys/sys/proc.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: proc.h,v 1.320 2014/02/21 22:06:48 skrll Exp $	*/
+/*	$NetBSD: proc.h,v 1.323 2015/09/24 14:33:31 christos Exp $	*/
 
 /*-
  * Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -177,6 +177,11 @@ struct emul {
 
 	size_t		e_ucsize;	/* size of ucontext_t */
 	void		(*e_startlwp)(void *);
+
+	/* Dtrace syscall probe */
+	void 		(*e_dtrace_syscall)(uint32_t, register_t,
+			    const struct sysent *, const void *,
+			    const register_t *, int);
 };
 
 /*
@@ -453,6 +458,7 @@ extern const struct proclist_desc proclists[];
 
 extern struct pool	ptimer_pool;	/* Memory pool for ptimers */
 
+int		proc_find_locked(struct lwp *, struct proc **, pid_t);
 proc_t *	proc_find_raw(pid_t);
 proc_t *	proc_find(pid_t);		/* Find process by ID */
 struct pgrp *	pgrp_find(pid_t);		/* Find process group by ID */
diff --git a/sys/sys/sdt.h b/sys/sys/sdt.h
index 2f0bf53..5acedc9 100644
--- a/sys/sys/sdt.h
+++ b/sys/sys/sdt.h
@@ -1,12 +1,5 @@
-/*	$NetBSD: sdt.h,v 1.4 2013/10/07 07:11:40 dholland Exp $	*/
-
 /*-
- * Copyright (c) 2010 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by CoyotePoint Systems, Inc. It was developed under contract to 
- * CoyotePoint by Darran Hunt.
+ * Copyright 2006-2008 John Birrell <jb@FreeBSD.org>
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -16,47 +9,359 @@
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
  *
+ * $FreeBSD: head/sys/sys/sdt.h 270990 2014-09-02 23:43:06Z markj $
+ *
+ * Statically Defined Tracing (SDT) definitions.
  *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef _SDT_H_
-#define _SDT_H_
+#ifndef _SYS_SDT_H
+#define	_SYS_SDT_H
+
+#ifndef _KERNEL
+
+#define	_DTRACE_VERSION	1
+
+#define	DTRACE_PROBE(prov, name) {				\
+	extern void __dtrace_##prov##___##name(void);		\
+	__dtrace_##prov##___##name();				\
+}
+
+#define	DTRACE_PROBE1(prov, name, arg1) {			\
+	extern void __dtrace_##prov##___##name(unsigned long);	\
+	__dtrace_##prov##___##name((unsigned long)arg1);	\
+}
+
+#define	DTRACE_PROBE2(prov, name, arg1, arg2) {			\
+	extern void __dtrace_##prov##___##name(unsigned long,	\
+	    unsigned long);					\
+	__dtrace_##prov##___##name((unsigned long)arg1,		\
+	    (unsigned long)arg2);				\
+}
+
+#define	DTRACE_PROBE3(prov, name, arg1, arg2, arg3) {		\
+	extern void __dtrace_##prov##___##name(unsigned long,	\
+	    unsigned long, unsigned long);			\
+	__dtrace_##prov##___##name((unsigned long)arg1,		\
+	    (unsigned long)arg2, (unsigned long)arg3);		\
+}
+
+#define	DTRACE_PROBE4(prov, name, arg1, arg2, arg3, arg4) {	\
+	extern void __dtrace_##prov##___##name(unsigned long,	\
+	    unsigned long, unsigned long, unsigned long);	\
+	__dtrace_##prov##___##name((unsigned long)arg1,		\
+	    (unsigned long)arg2, (unsigned long)arg3,		\
+	    (unsigned long)arg4);				\
+}
+
+#define	DTRACE_PROBE5(prov, name, arg1, arg2, arg3, arg4, arg5) {	\
+	extern void __dtrace_##prov##___##name(unsigned long,		\
+	    unsigned long, unsigned long, unsigned long, unsigned long);\
+	__dtrace_##prov##___##name((unsigned long)arg1,			\
+	    (unsigned long)arg2, (unsigned long)arg3,			\
+	    (unsigned long)arg4, (unsigned long)arg5);			\
+}
+
+#else /* _KERNEL */
+
+#include <sys/cdefs.h>
+
+#ifndef KDTRACE_HOOKS
+
+#define SDT_PROVIDER_DEFINE(prov)
+#define SDT_PROVIDER_DECLARE(prov)
+#define SDT_PROBE_DEFINE(prov, mod, func, name)
+#define SDT_PROBE_DECLARE(prov, mod, func, name)
+#define SDT_PROBE(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4)
+#define SDT_PROBE_ARGTYPE(prov, mod, func, name, num, type, xtype)
+
+#define	SDT_PROBE_DEFINE0(prov, mod, func, name)
+#define	SDT_PROBE_DEFINE1(prov, mod, func, name, arg0)
+#define	SDT_PROBE_DEFINE2(prov, mod, func, name, arg0, arg1)
+#define	SDT_PROBE_DEFINE3(prov, mod, func, name, arg0, arg1, arg2)
+#define	SDT_PROBE_DEFINE4(prov, mod, func, name, arg0, arg1, arg2, arg3)
+#define	SDT_PROBE_DEFINE5(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4)
+#define	SDT_PROBE_DEFINE6(prov, mod, func, name, arg0, arg1, arg2,      \
+    arg3, arg4, arg5)
+#define	SDT_PROBE_DEFINE7(prov, mod, func, name, arg0, arg1, arg2,      \
+    arg3, arg4, arg5, arg6)
+
+#define	SDT_PROBE0(prov, mod, func, name)
+#define	SDT_PROBE1(prov, mod, func, name, arg0)
+#define	SDT_PROBE2(prov, mod, func, name, arg0, arg1)
+#define	SDT_PROBE3(prov, mod, func, name, arg0, arg1, arg2)
+#define	SDT_PROBE4(prov, mod, func, name, arg0, arg1, arg2, arg3)
+#define	SDT_PROBE5(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4)
+#define	SDT_PROBE6(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4, arg5)
+#define	SDT_PROBE7(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4, arg5,  \
+    arg6)
+
+#define	SDT_PROBE_DEFINE0_XLATE(prov, mod, func, name)
+#define	SDT_PROBE_DEFINE1_XLATE(prov, mod, func, name, arg0, xarg0)
+#define	SDT_PROBE_DEFINE2_XLATE(prov, mod, func, name, arg0, xarg0,     \
+    arg1, xarg1)
+#define	SDT_PROBE_DEFINE3_XLATE(prov, mod, func, name, arg0, xarg0,     \
+    arg1, xarg1, arg2, xarg2)
+#define SDT_PROBE_DEFINE4_XLATE(prov, mod, func, name, arg0, xarg0,     \
+    arg1, xarg1, arg2, xarg2, arg3, xarg3)
+#define	SDT_PROBE_DEFINE5_XLATE(prov, mod, func, name, arg0, xarg0,     \
+    arg1, xarg1, arg2, xarg2, arg3, xarg3, arg4, xarg4)
+#define	SDT_PROBE_DEFINE6_XLATE(prov, mod, func, name, arg0, xarg0,     \
+    arg1,  xarg1, arg2, xarg2, arg3, xarg3, arg4, xarg4, arg5, xarg5)
+#define	SDT_PROBE_DEFINE7_XLATE(prov, mod, func, name, arg0, xarg0,     \
+    arg1, xarg1, arg2, xarg2, arg3, xarg3, arg4, xarg4, arg5, xarg5, arg6,     \
+    xarg6)
+
+#define	DTRACE_PROBE(name)
+#define	DTRACE_PROBE1(name, type0, arg0)
+#define	DTRACE_PROBE2(name, type0, arg0, type1, arg1)
+#define	DTRACE_PROBE3(name, type0, arg0, type1, arg1, type2, arg2)
+#define	DTRACE_PROBE4(name, type0, arg0, type1, arg1, type2, arg2, type3, arg3)
+#define	DTRACE_PROBE5(name, type0, arg0, type1, arg1, type2, arg2, type3, arg3,\
+    type4, arg4)
+
+#else
+
+#define SDT_PROVIDER_DEFINE(prov)						\
+	struct sdt_provider sdt_provider_##prov[1] = {				\
+		{ #prov, { NULL, NULL }, 0, 0 }					\
+	};									\
+	__link_set_add_data(sdt_providers_set, sdt_provider_##prov);
+
+#define SDT_PROVIDER_DECLARE(prov)						\
+	extern struct sdt_provider sdt_provider_##prov[1]
+
+#define SDT_PROBE_DEFINE(prov, mod, func, name)					\
+	struct sdt_probe sdt_##prov##_##mod##_##func##_##name[1] = {		\
+		{ sizeof(struct sdt_probe), sdt_provider_##prov,		\
+		    { NULL, NULL }, { NULL, NULL }, #mod, #func, #name, 0, 0,	\
+		    NULL }							\
+	};									\
+	__link_set_add_data(sdt_probes_set, sdt_##prov##_##mod##_##func##_##name);
+
+#define SDT_PROBE_DECLARE(prov, mod, func, name)				\
+	extern struct sdt_probe sdt_##prov##_##mod##_##func##_##name[1]
+
+#define SDT_PROBE(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4)	do {	\
+	if (sdt_##prov##_##mod##_##func##_##name->id)				\
+		(*sdt_probe_func)(sdt_##prov##_##mod##_##func##_##name->id,	\
+		    (uintptr_t) arg0, (uintptr_t) arg1, (uintptr_t) arg2,	\
+		    (uintptr_t) arg3, (uintptr_t) arg4);			\
+} while (0)
+
+#define SDT_PROBE_ARGTYPE(prov, mod, func, name, num, type, xtype)		\
+	static struct sdt_argtype sdta_##prov##_##mod##_##func##_##name##num[1]	\
+	    = { { num, type, xtype, { NULL, NULL },				\
+	    sdt_##prov##_##mod##_##func##_##name }				\
+	};									\
+	__link_set_add_data(sdt_argtypes_set, sdta_##prov##_##mod##_##func##_##name##num);
+
+#define	SDT_PROBE_DEFINE0(prov, mod, func, name)			\
+	SDT_PROBE_DEFINE(prov, mod, func, name)
+
+#define	SDT_PROBE_DEFINE1(prov, mod, func, name, arg0)			\
+	SDT_PROBE_DEFINE(prov, mod, func, name);			\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0, NULL)
 
-/* should be stdint.h, but this works transparently for both user and kernel */
-#include <sys/stdint.h>
+#define	SDT_PROBE_DEFINE2(prov, mod, func, name, arg0, arg1)		\
+	SDT_PROBE_DEFINE(prov, mod, func, name);			\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 1, arg1, NULL)
 
-#if defined(_KERNEL_OPT)
-#include "opt_dtrace.h"
-#endif
+#define	SDT_PROBE_DEFINE3(prov, mod, func, name, arg0, arg1, arg2)\
+	SDT_PROBE_DEFINE(prov, mod, func, name);			\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 1, arg1, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 2, arg2, NULL)
 
-#define SDT_MAX_PROVIDER	1024	/* max number of SDT providers */
-#define SDT_MAX_ARGS		5	/* max number of probe arguments */
-#define SDT_MAX_NAME_SIZE	64	/* max size of provider name */
+#define	SDT_PROBE_DEFINE4(prov, mod, func, name, arg0, arg1, arg2, arg3) \
+	SDT_PROBE_DEFINE(prov, mod, func, name);			\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 1, arg1, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 2, arg2, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 3, arg3, NULL)
 
-typedef struct {
-    int		created;	/* boolean: probe created? */
-    int		enabled;	/* boolean: probe enabled? */
-    int		id;		/* dtrace provided probe id */
-    const char	*provider;	/* provider name */
-    const char	*module;	/* module name */
-    const char	*function;	/* function name */
-    const char	*name;		/* probe name */
-    const char	*argv[SDT_MAX_ARGS];	/* probe argument types */
-    const char	*argx[SDT_MAX_ARGS];	/* probe argument xlate types */
-} sdt_probe_t;
+#define	SDT_PROBE_DEFINE5(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4) \
+	SDT_PROBE_DEFINE(prov, mod, func, name);			\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 1, arg1, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 2, arg2, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 3, arg3, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 4, arg4, NULL)
 
+#define	SDT_PROBE_DEFINE6(prov, mod, func, name, arg0, arg1, arg2, arg3,\
+    arg4, arg5) \
+	SDT_PROBE_DEFINE(prov, mod, func, name);			\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 1, arg1, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 2, arg2, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 3, arg3, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 4, arg4, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 5, arg5, NULL)
+
+#define	SDT_PROBE_DEFINE7(prov, mod, func, name, arg0, arg1, arg2, arg3,\
+    arg4, arg5, arg6) \
+	SDT_PROBE_DEFINE(prov, mod, func, name);			\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 1, arg1, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 2, arg2, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 3, arg3, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 4, arg4, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 5, arg5, NULL);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 6, arg6, NULL)
+
+#define	SDT_PROBE_DEFINE0_XLATE(prov, mod, func, name)		\
+	SDT_PROBE_DEFINE(prov, mod, func, name)
+
+#define	SDT_PROBE_DEFINE1_XLATE(prov, mod, func, name, arg0, xarg0) \
+	SDT_PROBE_DEFINE(prov, mod, func, name);			\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0, xarg0)
+
+#define	SDT_PROBE_DEFINE2_XLATE(prov, mod, func, name, arg0, xarg0, \
+    arg1,  xarg1)							\
+	SDT_PROBE_DEFINE(prov, mod, func, name);			\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0, xarg0);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 1, arg1, xarg1)
+
+#define	SDT_PROBE_DEFINE3_XLATE(prov, mod, func, name, arg0, xarg0, \
+    arg1, xarg1, arg2, xarg2)						\
+	SDT_PROBE_DEFINE(prov, mod, func, name);			\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0, xarg0);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 1, arg1, xarg1);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 2, arg2, xarg2)
+
+#define	SDT_PROBE_DEFINE4_XLATE(prov, mod, func, name, arg0, xarg0, \
+    arg1, xarg1, arg2, xarg2, arg3, xarg3)				\
+	SDT_PROBE_DEFINE(prov, mod, func, name);			\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0, xarg0);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 1, arg1, xarg1);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 2, arg2, xarg2);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 3, arg3, xarg3)
+
+#define	SDT_PROBE_DEFINE5_XLATE(prov, mod, func, name, arg0, xarg0, \
+    arg1, xarg1, arg2, xarg2, arg3, xarg3, arg4, xarg4)			\
+	SDT_PROBE_DEFINE(prov, mod, func, name);			\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0, xarg0);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 1, arg1, xarg1);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 2, arg2, xarg2);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 3, arg3, xarg3);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 4, arg4, xarg4)
+
+#define	SDT_PROBE_DEFINE6_XLATE(prov, mod, func, name, arg0, xarg0, \
+    arg1, xarg1, arg2, xarg2, arg3, xarg3, arg4, xarg4, arg5, xarg5)	\
+	SDT_PROBE_DEFINE(prov, mod, func, name);			\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0, xarg0);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 1, arg1, xarg1);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 2, arg2, xarg2);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 3, arg3, xarg3);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 4, arg4, xarg4);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 5, arg5, xarg5)
+
+#define	SDT_PROBE_DEFINE7_XLATE(prov, mod, func, name, arg0, xarg0, \
+    arg1, xarg1, arg2, xarg2, arg3, xarg3, arg4, xarg4, arg5, xarg5, arg6, \
+    xarg6)								\
+	SDT_PROBE_DEFINE(prov, mod, func, name);			\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0, xarg0);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 1, arg1, xarg1);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 2, arg2, xarg2);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 3, arg3, xarg3);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 4, arg4, xarg4);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 5, arg5, xarg5);	\
+	SDT_PROBE_ARGTYPE(prov, mod, func, name, 6, arg6, xarg6)
+
+#define	SDT_PROBE0(prov, mod, func, name)				\
+	SDT_PROBE(prov, mod, func, name, 0, 0, 0, 0, 0)
+#define	SDT_PROBE1(prov, mod, func, name, arg0)				\
+	SDT_PROBE(prov, mod, func, name, arg0, 0, 0, 0, 0)
+#define	SDT_PROBE2(prov, mod, func, name, arg0, arg1)			\
+	SDT_PROBE(prov, mod, func, name, arg0, arg1, 0, 0, 0)
+#define	SDT_PROBE3(prov, mod, func, name, arg0, arg1, arg2)		\
+	SDT_PROBE(prov, mod, func, name, arg0, arg1, arg2,  0, 0)
+#define	SDT_PROBE4(prov, mod, func, name, arg0, arg1, arg2, arg3)	\
+	SDT_PROBE(prov, mod, func, name, arg0, arg1, arg2, arg3, 0)
+#define	SDT_PROBE5(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4) \
+	SDT_PROBE(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4)
+#define	SDT_PROBE6(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4, arg5)  \
+	do {								       \
+		if (sdt_##prov##_##mod##_##func##_##name->id)		       \
+			(*(void (*)(uint32_t, uintptr_t, uintptr_t, uintptr_t, \
+			    uintptr_t, uintptr_t, uintptr_t))sdt_probe_func)(  \
+			    sdt_##prov##_##mod##_##func##_##name->id,	       \
+			    (uintptr_t)arg0, (uintptr_t)arg1, (uintptr_t)arg2, \
+			    (uintptr_t)arg3, (uintptr_t)arg4, (uintptr_t)arg5);\
+	} while (0)
+#define	SDT_PROBE7(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4, arg5,  \
+    arg6)								       \
+	do {								       \
+		if (sdt_##prov##_##mod##_##func##_##name->id)		       \
+			(*(void (*)(uint32_t, uintptr_t, uintptr_t, uintptr_t, \
+			    uintptr_t, uintptr_t, uintptr_t, uintptr_t))       \
+			    sdt_probe_func)(				       \
+			    sdt_##prov##_##mod##_##func##_##name->id,	       \
+			    (uintptr_t)arg0, (uintptr_t)arg1, (uintptr_t)arg2, \
+			    (uintptr_t)arg3, (uintptr_t)arg4, (uintptr_t)arg5, \
+			    (uintptr_t)arg6);				       \
+	} while (0)
+
+#define	DTRACE_PROBE_IMPL_START(name, arg0, arg1, arg2, arg3, arg4)	do { \
+	static SDT_PROBE_DEFINE(sdt, , , name);				     \
+	SDT_PROBE(sdt, , , name, arg0, arg1, arg2, arg3, arg4);
+#define DTRACE_PROBE_IMPL_END	} while (0)
+
+#define DTRACE_PROBE(name)						\
+	DTRACE_PROBE_IMPL_START(name, 0, 0, 0, 0, 0)			\
+	DTRACE_PROBE_IMPL_END
+
+#define DTRACE_PROBE1(name, type0, arg0)				\
+	DTRACE_PROBE_IMPL_START(name, arg0, 0, 0, 0, 0) 		\
+	SDT_PROBE_ARGTYPE(sdt, , , name, 0, #type0, NULL);		\
+	DTRACE_PROBE_IMPL_END
+
+#define DTRACE_PROBE2(name, type0, arg0, type1, arg1)			\
+	DTRACE_PROBE_IMPL_START(name, arg0, arg1, 0, 0, 0) 		\
+	SDT_PROBE_ARGTYPE(sdt, , , name, 0, #type0, NULL);		\
+	SDT_PROBE_ARGTYPE(sdt, , , name, 1, #type1, NULL);		\
+	DTRACE_PROBE_IMPL_END
+
+#define DTRACE_PROBE3(name, type0, arg0, type1, arg1, type2, arg2)	\
+	DTRACE_PROBE_IMPL_START(name, arg0, arg1, arg2, 0, 0)	 	\
+	SDT_PROBE_ARGTYPE(sdt, , , name, 0, #type0, NULL);		\
+	SDT_PROBE_ARGTYPE(sdt, , , name, 1, #type1, NULL);		\
+	SDT_PROBE_ARGTYPE(sdt, , , name, 2, #type2, NULL);		\
+	DTRACE_PROBE_IMPL_END
+
+#define DTRACE_PROBE4(name, type0, arg0, type1, arg1, type2, arg2, type3, arg3)	\
+	DTRACE_PROBE_IMPL_START(name, arg0, arg1, arg2, arg3, 0) 	\
+	SDT_PROBE_ARGTYPE(sdt, , , name, 0, #type0, NULL);		\
+	SDT_PROBE_ARGTYPE(sdt, , , name, 1, #type1, NULL);		\
+	SDT_PROBE_ARGTYPE(sdt, , , name, 2, #type2, NULL);		\
+	SDT_PROBE_ARGTYPE(sdt, , , name, 3, #type3, NULL);		\
+	DTRACE_PROBE_IMPL_END
+
+#define DTRACE_PROBE5(name, type0, arg0, type1, arg1, type2, arg2, type3, arg3,	\
+    type4, arg4)								\
+	DTRACE_PROBE_IMPL_START(name, arg0, arg1, arg2, arg3, arg4) 	\
+	SDT_PROBE_ARGTYPE(sdt, , , name, 0, #type0, NULL);		\
+	SDT_PROBE_ARGTYPE(sdt, , , name, 1, #type1, NULL);		\
+	SDT_PROBE_ARGTYPE(sdt, , , name, 2, #type2, NULL);		\
+	SDT_PROBE_ARGTYPE(sdt, , , name, 3, #type3, NULL);		\
+	SDT_PROBE_ARGTYPE(sdt, , , name, 4, #type4, NULL);		\
+	DTRACE_PROBE_IMPL_END
+
+#endif /* KDTRACE_HOOKS */
 
 /*
  * This type definition must match that of dtrace_probe. It is defined this
@@ -66,67 +371,54 @@ typedef	void (*sdt_probe_func_t)(uint32_t, uintptr_t arg0, uintptr_t arg1,
     uintptr_t arg2, uintptr_t arg3, uintptr_t arg4);
 
 /*
- * The hook for the probe function. See kern_sdt.c which defaults this to
- * it's own stub. The 'sdt' provider will set it to dtrace_probe when it
- * loads.
+ * The 'sdt' provider will set it to dtrace_probe when it loads.
  */
 extern sdt_probe_func_t	sdt_probe_func;
 
+struct sdt_probe;
+struct sdt_provider;
+struct linker_file;
 
-#define SDT_NAME(prov, mod, func, name) \
-    	prov##_##mod##_##func##_##name
+struct sdt_argtype {
+	int		ndx;		/* Argument index. */
+	const char	*type;		/* Argument type string. */
+	const char	*xtype;		/* Translated argument type. */
+	TAILQ_ENTRY(sdt_argtype)
+			argtype_entry;	/* Argument type list entry. */
+	struct sdt_probe *probe;	/* Ptr to the probe structure. */
+};
 
-#ifdef KDTRACE_HOOKS
-/*
- * SDT_PROBE_DEFINE(prov, mod, func, name, sname,
- *		    arg0, argx0, arg1, argx1,
- *		    arg2, argx2, arg3, argx3, arg4, argx4)
- *
- * 	prov	- provider name
- * 	mod	- module name
- * 	func	- function name
- * 	name	- probe name
- * 	sname	- probe name as exposed to userland
- * 	arg0 - arg4, argument types as strings, or NULL.
- * 	argx0 - argx4, translation types for arg0 - arg4
- *
- * 	e.g. SDT_PROBE_DEFINE(l7, l7lb, l7lb_create_node, 
- * 				"void *", NULL, 
- * 				NULL, NULL, NULL, NULL,
- * 				NULL, NULL, NULL NULL, )
- *
- *	This is used in the target module to define probes to be used.
- *	The translation type should be set to NULL if not used.
- */
-#define SDT_PROBE_DEFINE(prov, mod, func, name, sname, \
-	    arg0, argx0, arg1, argx1, arg2, argx2, \
-	    arg3, argx3, arg4, argx4) \
-    	sdt_probe_t SDT_NAME(prov, mod, func, name) = { \
-	    0, 0, 0, #prov, #mod, #func, #sname, \
-	    { arg0, arg1, arg2, arg3, arg4 }, \
-	    { NULL, NULL, NULL, NULL, NULL } \
-	}
-
-/* Use this in this module to declare probes defined in the kernel. */
-#define SDT_PROBE_DECLARE(prov, mod, func, name) \
-    	extern sdt_probe_t SDT_NAME(prov, mod, func, name);
-
-/* Use this in the target modules to provide instrumentation points */
-#define SDT_PROBE(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4) \
-    	if (__predict_false(SDT_NAME(prov, mod, func, name).enabled)) { \
-	    	(*sdt_probe_func)(SDT_NAME(prov, mod, func, name).id, \
-		    (uintptr_t)(arg0), (uintptr_t)(arg1), (uintptr_t)(arg2), \
-		    (uintptr_t)(arg3), (uintptr_t)(arg4)); \
-	}
-#else
-#define SDT_PROBE_DEFINE(prov, mod, func, name, sname, \
-	    arg0, argx0, arg1, argx1, arg2, argx2, \
-	    arg3, argx3, arg4, argx4)
-#define SDT_PROBE_DECLARE(prov, mod, func, name)
-#define SDT_PROBE(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4) 
-#endif
+struct sdt_probe {
+	int		version;	/* Set to sizeof(struct sdt_probe). */
+	struct sdt_provider *prov;	/* Ptr to the provider structure. */
+	TAILQ_ENTRY(sdt_probe)
+			probe_entry;	/* SDT probe list entry. */
+	TAILQ_HEAD(argtype_list_head, sdt_argtype) argtype_list;
+	const char	*mod;
+	const char	*func;
+	const char	*name;
+	id_t		id;		/* DTrace probe ID. */
+	int		n_args;		/* Number of arguments. */
+	struct linker_file *sdtp_lf;	/* Module in which we're defined. */
+};
+
+struct sdt_provider {
+	const char *name;		/* Provider name. */
+	TAILQ_ENTRY(sdt_provider)
+			prov_entry;	/* SDT provider list entry. */
+	uintptr_t	id;		/* DTrace provider ID. */
+	int		sdt_refs;	/* Number of module references. */
+};
+
+void sdt_probe_stub(uint32_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t,
+    uintptr_t);
 
-void sdt_init(void *);
+SDT_PROVIDER_DECLARE(sdt);
+
+void sdt_init(void *); 
 void sdt_exit(void);
 
-#endif
+
+#endif /* _KERNEL */
+
+#endif /* _SYS_SDT_H */
diff --git a/sys/sys/syscall.h b/sys/sys/syscall.h
index 5208e76..121b9e7 100644
--- a/sys/sys/syscall.h
+++ b/sys/sys/syscall.h
@@ -1,4 +1,4 @@
-/* $NetBSD: syscall.h,v 1.274.2.1 2015/02/24 10:52:42 martin Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call numbers.
diff --git a/sys/sys/syscallargs.h b/sys/sys/syscallargs.h
index 339fc79..ea2e158 100644
--- a/sys/sys/syscallargs.h
+++ b/sys/sys/syscallargs.h
@@ -1,4 +1,4 @@
-/* $NetBSD: syscallargs.h,v 1.257.2.1 2015/02/24 10:52:42 martin Exp $ */
+/* $NetBSD$ */
 
 /*
  * System call argument lists.
diff --git a/sys/sys/syscallvar.h b/sys/sys/syscallvar.h
index f396f88..5d4f085 100644
--- a/sys/sys/syscallvar.h
+++ b/sys/sys/syscallvar.h
@@ -36,6 +36,10 @@
 #error nothing of interest to userspace here
 #endif
 
+#if defined(_KERNEL) && defined(_KERNEL_OPT)
+#include "opt_dtrace.h"
+#endif
+
 #include <sys/systm.h>
 #include <sys/proc.h>
 
@@ -72,8 +76,13 @@ sy_invoke(const struct sysent *sy, struct lwp *l, const void *uap,
 	    (sy->sy_flags & SYCALL_INDIRECT) == 0;
 	int error;
 
-	if (__predict_true(!do_trace)
-	    || (error = trace_enter(code, uap, sy->sy_narg)) == 0) {
+#ifdef KDTRACE_HOOKS
+#define KDTRACE_ENTRY(a)	(a)
+#else
+#define KDTRACE_ENTRY(a)	(0)
+#endif
+	if (__predict_true(!(do_trace || KDTRACE_ENTRY(sy->sy_entry)))
+	    || (error = trace_enter(code, sy, uap)) == 0) {
 		rval[0] = 0;
 #if !defined(__mips__) && !defined(__m68k__)
 		/*
@@ -85,13 +94,14 @@ sy_invoke(const struct sysent *sy, struct lwp *l, const void *uap,
 		error = sy_call(sy, l, uap, rval);
 	}
 
-	if (__predict_false(do_trace)) {
-		trace_exit(code, rval, error);
+	if (__predict_false(do_trace || KDTRACE_ENTRY(sy->sy_return))) {
+		trace_exit(code, sy, uap, rval, error);
 	}
 	return error;
 }
 
 /* inclusion in the kernel currently depends on SYSCALL_DEBUG */
 extern const char * const syscallnames[];
+extern const char * const altsyscallnames[];
 
 #endif	/* _SYS_SYSCALLVAR_H_ */
diff --git a/sys/sys/sysctl.h b/sys/sys/sysctl.h
index e6cdf50..0c04b32 100644
--- a/sys/sys/sysctl.h
+++ b/sys/sys/sysctl.h
@@ -676,6 +676,7 @@ struct kinfo_lwp {
 #define	KERN_PROC_NARGV		2	/* number of strings in above */
 #define	KERN_PROC_ENV		3	/* environ */
 #define	KERN_PROC_NENV		4	/* number of strings in above */
+#define	KERN_PROC_PATHNAME 	5	/* path to executable */
 
 /*
  * KERN_SYSVIPC subtypes
@@ -826,6 +827,67 @@ struct evcnt_sysctl {
 #define	KERN_EVCNT_COUNT_NONZERO	1
 
 /*
+ * CTL_VM identifiers
+ */
+#define VM_PROC		1		/* internal */
+#define VM_PROC_MAP	1		/* struct kinfo_vmentry */
+
+/*
+ * The vm.proc.map sysctl allows a process to dump the VM layout of
+ * another process as a series of entries.
+ */
+#define	KVME_TYPE_NONE		0
+#define	KVME_TYPE_OBJECT	1
+#define	KVME_TYPE_VNODE		2
+#define	KVME_TYPE_KERN		3
+#define	KVME_TYPE_DEVICE	4
+#define	KVME_TYPE_ANON		5
+#define	KVME_TYPE_SUBMAP	6
+#define	KVME_TYPE_UNKNOWN	255
+
+#define	KVME_PROT_READ		0x00000001
+#define	KVME_PROT_WRITE		0x00000002
+#define	KVME_PROT_EXEC		0x00000004
+
+#define	KVME_FLAG_COW		0x00000001
+#define	KVME_FLAG_NEEDS_COPY	0x00000002
+#define	KVME_FLAG_NOCOREDUMP	0x00000004
+#define	KVME_FLAG_PAGEABLE	0x00000008
+#define	KVME_FLAG_GROWS_UP	0x00000010
+#define	KVME_FLAG_GROWS_DOWN	0x00000020
+
+struct kinfo_vmentry {
+	uint64_t kve_start;			/* Starting address. */
+	uint64_t kve_end;			/* Finishing address. */
+	uint64_t kve_offset;			/* Mapping offset in object */
+
+	uint32_t kve_type;			/* Type of map entry. */
+	uint32_t kve_flags;			/* Flags on map entry. */
+
+	uint32_t kve_count;			/* Number of pages/entries */
+	uint32_t kve_wired_count;		/* Number of wired pages */
+
+	uint32_t kve_advice;			/* Advice */
+	uint32_t kve_attributes;		/* Map attribute */
+
+	uint32_t kve_protection;		/* Protection bitmask. */
+	uint32_t kve_max_protection;		/* Max protection bitmask */
+
+	uint32_t kve_ref_count;			/* VM obj ref count. */
+	uint32_t kve_inheritance;		/* Inheritance */
+
+	uint64_t kve_vn_fileid;			/* inode number if vnode */
+	uint64_t kve_vn_size;			/* File size. */
+	uint64_t kve_vn_fsid;			/* dev_t of vnode location */
+	uint64_t kve_vn_rdev;			/* Device id if device. */
+
+	uint32_t kve_vn_type;			/* Vnode type. */
+	uint32_t kve_vn_mode;			/* File mode. */
+
+	char	 kve_path[PATH_MAX];		/* Path to VM obj, if any. */
+};
+
+/*
  * CTL_HW identifiers
  */
 #define	HW_MACHINE	 1		/* string: machine class */
diff --git a/sys/sys/systm.h b/sys/sys/systm.h
index 201552f..1778af6 100644
--- a/sys/sys/systm.h
+++ b/sys/sys/systm.h
@@ -1,4 +1,4 @@
-/*	$NetBSD: systm.h,v 1.266 2014/08/03 12:49:32 wiz Exp $	*/
+/*	$NetBSD: systm.h,v 1.267 2015/03/07 16:34:55 christos Exp $	*/
 
 /*-
  * Copyright (c) 1982, 1988, 1991, 1993
@@ -57,6 +57,7 @@
 struct clockframe;
 struct lwp;
 struct proc;
+struct sysent;
 struct timeval;
 struct tty;
 struct uio;
@@ -120,6 +121,8 @@ extern struct sysent {		/* system call table */
 	short	sy_argsize;	/* total size of arguments */
 	int	sy_flags;	/* flags. see below */
 	sy_call_t *sy_call;     /* implementing function */
+	uint32_t sy_entry;	/* DTrace entry ID for systrace. */
+	uint32_t sy_return;	/* DTrace return ID for systrace. */
 } sysent[];
 extern int nsysent;
 #if	BYTE_ORDER == BIG_ENDIAN
@@ -388,8 +391,9 @@ void	doforkhooks(struct proc *, struct proc *);
  */
 #ifdef _KERNEL
 bool	trace_is_enabled(struct proc *);
-int	trace_enter(register_t, const register_t *, int);
-void	trace_exit(register_t, register_t [], int);
+int	trace_enter(register_t, const struct sysent *, const void *);
+void	trace_exit(register_t, const struct sysent *, const void *,
+    register_t [], int);
 #endif
 
 int	uiomove(void *, size_t, struct uio *);
diff --git a/sys/uvm/uvm_map.c b/sys/uvm/uvm_map.c
index c02b90d..40590bc 100644
--- a/sys/uvm/uvm_map.c
+++ b/sys/uvm/uvm_map.c
@@ -81,10 +81,11 @@ __KERNEL_RCSID(0, "$NetBSD: uvm_map.c,v 1.330.2.1 2015/01/23 16:31:06 martin Exp
 #include <sys/kernel.h>
 #include <sys/mount.h>
 #include <sys/vnode.h>
+#include <sys/filedesc.h>
 #include <sys/lockdebug.h>
 #include <sys/atomic.h>
-#ifndef __USER_VA0_IS_SAFE
 #include <sys/sysctl.h>
+#ifndef __USER_VA0_IS_SAFE
 #include <sys/kauth.h>
 #include "opt_user_va0_disable_default.h"
 #endif
@@ -4779,15 +4780,179 @@ sysctl_user_va0_disable(SYSCTLFN_ARGS)
 	user_va0_disable = !!t;
 	return 0;
 }
+#endif
+
+static int
+fill_vmentry(struct lwp *l, struct proc *p, struct kinfo_vmentry *kve,
+    struct vm_map *m, struct vm_map_entry *e)
+{
+#ifndef _RUMPKERNEL
+	int error;
+
+	memset(kve, 0, sizeof(*kve));
+	KASSERT(e != NULL);
+	if (UVM_ET_ISOBJ(e)) {
+		struct uvm_object *uobj = e->object.uvm_obj;
+		KASSERT(uobj != NULL);
+		kve->kve_ref_count = uobj->uo_refs;
+		kve->kve_count = uobj->uo_npages;
+		if (UVM_OBJ_IS_VNODE(uobj)) {
+			struct vattr va;
+			struct vnode *vp = (struct vnode *)uobj;
+			vn_lock(vp, LK_SHARED | LK_RETRY);
+			error = VOP_GETATTR(vp, &va, l->l_cred);
+			VOP_UNLOCK(vp);
+			kve->kve_type = KVME_TYPE_VNODE;
+			if (error == 0) {
+				kve->kve_vn_size = vp->v_size;
+				kve->kve_vn_type = (int)vp->v_type;
+				kve->kve_vn_mode = va.va_mode;
+				kve->kve_vn_rdev = va.va_rdev;
+				kve->kve_vn_fileid = va.va_fileid;
+				kve->kve_vn_fsid = va.va_fsid;
+				error = vnode_to_path(kve->kve_path,
+				    sizeof(kve->kve_path) / 2, vp, l, p);
+#ifdef DIAGNOSTIC
+				if (error)
+					printf("%s: vp %p error %d\n", __func__,
+						vp, error);
+#endif
+			}
+		} else if (UVM_OBJ_IS_KERN_OBJECT(uobj)) {
+			kve->kve_type = KVME_TYPE_KERN;
+		} else if (UVM_OBJ_IS_DEVICE(uobj)) {
+			kve->kve_type = KVME_TYPE_DEVICE;
+		} else if (UVM_OBJ_IS_AOBJ(uobj)) {
+			kve->kve_type = KVME_TYPE_ANON;
+		} else {
+			kve->kve_type = KVME_TYPE_OBJECT;
+		}
+	} else if (UVM_ET_ISSUBMAP(e)) {
+		struct vm_map *map = e->object.sub_map;
+		KASSERT(map != NULL);
+		kve->kve_ref_count = map->ref_count;
+		kve->kve_count = map->nentries;
+		kve->kve_type = KVME_TYPE_SUBMAP;
+	} else
+		kve->kve_type = KVME_TYPE_UNKNOWN;
+
+	kve->kve_start = e->start;
+	kve->kve_end = e->end;
+	kve->kve_offset = e->offset;
+	kve->kve_wired_count = e->wired_count;
+	kve->kve_inheritance = e->inheritance;
+	kve->kve_attributes = e->map_attrib;
+	kve->kve_advice = e->advice;
+#define PROT(p) (((p) & VM_PROT_READ) ? KVME_PROT_READ : 0) | \
+	(((p) & VM_PROT_WRITE) ? KVME_PROT_WRITE : 0) | \
+	(((p) & VM_PROT_EXECUTE) ? KVME_PROT_EXEC : 0)
+	kve->kve_protection = PROT(e->protection);
+	kve->kve_max_protection = PROT(e->max_protection);
+	kve->kve_flags |= (e->etype & UVM_ET_COPYONWRITE)
+	    ? KVME_FLAG_COW : 0;
+	kve->kve_flags |= (e->etype & UVM_ET_NEEDSCOPY)
+	    ? KVME_FLAG_NEEDS_COPY : 0;
+	kve->kve_flags |= (m->flags & VM_MAP_TOPDOWN)
+	    ? KVME_FLAG_GROWS_DOWN : KVME_FLAG_GROWS_UP;
+	kve->kve_flags |= (m->flags & VM_MAP_PAGEABLE)
+	    ? KVME_FLAG_PAGEABLE : 0;
+#endif
+	return 0;
+}
+
+static int
+fill_vmentries(struct lwp *l, pid_t pid, u_int elem_size, void *oldp,
+    size_t *oldlenp)
+{
+	int error;
+	struct proc *p;
+	struct kinfo_vmentry vme;
+	struct vmspace *vm;
+	struct vm_map *map;
+	struct vm_map_entry *entry;
+	char *dp;
+	size_t count;
+
+	count = 0;
+
+	if ((error = proc_find_locked(l, &p, pid)) != 0)
+		return error;
+
+	if ((error = proc_vmspace_getref(p, &vm)) != 0)
+		goto out;
+
+	map = &vm->vm_map;
+	vm_map_lock_read(map);
+
+	dp = oldp;
+	for (entry = map->header.next; entry != &map->header;
+	    entry = entry->next) {
+		if (oldp && (dp - (char *)oldp) < *oldlenp + elem_size) {
+			error = fill_vmentry(l, p, &vme, map, entry);
+			if (error)
+				break;
+			error = sysctl_copyout(l, &vme, dp,
+			    min(elem_size, sizeof(vme)));
+			if (error)
+				break;
+			dp += elem_size;
+		}
+		count++;
+	}
+	vm_map_unlock_read(map);
+	uvmspace_free(vm);
+out:
+	if (pid != -1)
+		mutex_exit(p->p_lock);
+	if (error == 0) {
+		count *= elem_size;
+		if (oldp != NULL && *oldlenp < count)
+			error = ENOSPC;
+		*oldlenp = count;
+	}
+	return error;
+}
+
+static int
+sysctl_vmproc(SYSCTLFN_ARGS)
+{
+	int error;
+
+	if (namelen == 1 && name[0] == CTL_QUERY)
+		return (sysctl_query(SYSCTLFN_CALL(rnode)));
+
+	if (namelen == 0)
+		return EINVAL;
+
+	switch (name[0]) {
+	case VM_PROC_MAP:
+		if (namelen != 3)
+			return EINVAL;
+		sysctl_unlock();
+		error = fill_vmentries(l, name[1], name[2],
+		    oldp, oldlenp);
+		sysctl_relock();
+		return error;
+	default:
+		return EINVAL;
+	}
+}
 
 SYSCTL_SETUP(sysctl_uvmmap_setup, "sysctl uvmmap setup")
 {
 
+	sysctl_createv(clog, 0, NULL, NULL,
+		       CTLFLAG_PERMANENT,
+		       CTLTYPE_STRUCT, "proc",
+		       SYSCTL_DESCR("Process vm information"),
+		       sysctl_vmproc, 0, NULL, 0,
+		       CTL_VM, VM_PROC, CTL_EOL);
+#ifndef __USER_VA0_IS_SAFE
         sysctl_createv(clog, 0, NULL, NULL,
                        CTLFLAG_PERMANENT|CTLFLAG_READWRITE,
                        CTLTYPE_INT, "user_va0_disable",
                        SYSCTL_DESCR("Disable VA 0"),
                        sysctl_user_va0_disable, 0, &user_va0_disable, 0,
                        CTL_VM, CTL_CREATE, CTL_EOL);
-}
 #endif
+}
diff --git a/usr.bin/kdump/Makefile b/usr.bin/kdump/Makefile
index 95e5275..2708fe7 100644
--- a/usr.bin/kdump/Makefile
+++ b/usr.bin/kdump/Makefile
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.30 2011/09/21 17:48:51 christos Exp $
+#	$NetBSD: Makefile,v 1.31 2015/09/26 03:31:11 christos Exp $
 #	@(#)Makefile	8.1 (Berkeley) 6/6/93
 
 .include <bsd.own.mk>		# for MKDYNAMICROOT & NETBSDSRCDIR
@@ -6,7 +6,6 @@
 USE_FORT?= yes	# cryptographic software
 
 PROG=	kdump
-CPPFLAGS+=-I${NETBSDSRCDIR}/usr.bin/ktrace -I${NETBSDSRCDIR}/sys
 SRCS=	kdump.c subr.c setemul.c siginfo.c
 .PATH:	${NETBSDSRCDIR}/usr.bin/ktrace
 CLEANFILES+=siginfo.c
@@ -18,6 +17,8 @@ LDSTATIC?=-static
 .include "Makefile.ioctl-c"
 .include "Makefile.siginfo-c"
 
+CPPFLAGS+=-I${NETBSDSRCDIR}/usr.bin/ktrace -I${NETBSDSRCDIR}/sys
+
 LDADD+=-lutil
 DPADD+=${LIBUTIL}
 
diff --git a/usr.bin/kdump/Makefile.ioctl-c b/usr.bin/kdump/Makefile.ioctl-c
index c6e985e..ded2485 100644
--- a/usr.bin/kdump/Makefile.ioctl-c
+++ b/usr.bin/kdump/Makefile.ioctl-c
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.ioctl-c,v 1.25 2013/04/06 13:48:12 uebayasi Exp $
+#	$NetBSD: Makefile.ioctl-c,v 1.29 2015/09/26 03:31:11 christos Exp $
 
 # NOTE: <bsd.own.mk> needs to be previously .included for NETBSDSRCDIR
 
@@ -14,10 +14,13 @@ SETFILES:=${SETBASE}/mi
 SETFILES:= ${SETFILES} ${SETBASE}/${md}
 .endif
 .endfor
+.if ${MKDTRACE} != 'no"
+EXTRAS=	${NETBSDSRCDIR}/external/cddl/osnet/dist/uts/common/sys/dtrace.h
+.endif
 
 .if !make(cleandir) && !make(obj) && !make(includes) && !make(install)
 DEPFILEGLOB = ${TOOL_SED} -ne '/\/usr\/include\/.*\.h[ 	]/{s/[ 	]obsolete$$//;t' -e 's/xenio//;t' -e 's,\.\([^ 	]*\).*,${DESTDIR}\1,;p;}' ${SETFILES}
-DEPFILES != ${DEPFILEGLOB} | xargs egrep -l '(_IO\(|_IOR\(|_IOW\(|_IOWR\()' 2>/dev/null || :
+DEPFILES != (${DEPFILEGLOB}; echo ${EXTRAS}) | xargs egrep -l '(_IO\(|_IOR\(|_IOW\(|_IOWR\()' 2>/dev/null || :
 .endif
 
 ${PROG}-ioctl.c: mkioctls Makefile ${DEPFILES} ${SETFILES}
@@ -29,5 +32,9 @@ ${PROG}-ioctl.c: mkioctls Makefile ${DEPFILES} ${SETFILES}
 SRCS+=		${PROG}-ioctl.c
 CLEANFILES+=	${PROG}-ioctl.c
 DPSRCS+=	${PROG}-ioctl.c
+.if ${MKDTRACE} != 'no"
+CPPFLAGS+=	-I${NETBSDSRCDIR}/external/cddl/osnet/sys
+CPPFLAGS+=	-I${NETBSDSRCDIR}/external/cddl/osnet/dist/uts/common
+.endif
 
 ${DEPFILES}: .PRECIOUS
diff --git a/usr.bin/ktruss/Makefile b/usr.bin/ktruss/Makefile
index 2dd8e04..3a80775 100644
--- a/usr.bin/ktruss/Makefile
+++ b/usr.bin/ktruss/Makefile
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.28 2009/12/14 05:23:39 christos Exp $
+#	$NetBSD: Makefile,v 1.29 2015/09/26 13:31:27 christos Exp $
 
 NOMAN=		# defined
 
@@ -6,8 +6,6 @@ NOMAN=		# defined
 
 PROG=		ktruss
 SRCS=		ktrace.c dump.c subr.c misc.c setemul.c
-CPPFLAGS+=	-I. -I${NETBSDSRCDIR}/usr.bin/ktrace -I${NETBSDSRCDIR}/sys \
-		-I${NETBSDSRCDIR}/usr.bin/kdump -DKTRUSS
 CLEANFILES+=	misc.c misc.h
 
 .if (${MKDYNAMICROOT} == "no")
@@ -30,6 +28,10 @@ misc.c misc.h: ${DESTDIR}/usr/include/sys/errno.h makeerrnos.sh \
 	    ${DESTDIR}/usr/include/sys/signal.h misc
 
 .include "${NETBSDSRCDIR}/usr.bin/kdump/Makefile.ioctl-c"
+
+CPPFLAGS+=	-I. -I${NETBSDSRCDIR}/usr.bin/ktrace -I${NETBSDSRCDIR}/sys \
+		-I${NETBSDSRCDIR}/usr.bin/kdump -DKTRUSS
+
 .include <bsd.prog.mk>
 
 .PATH: ${NETBSDSRCDIR}/usr.bin/ktrace ${NETBSDSRCDIR}/usr.bin/kdump
